@cpp-linter/clang-tidy-win32-x64 21.1.0 → 23.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/clang-tidy.exe +2 -2
- package/lib/clang/23/include/__clang_cuda_complex_builtins.h +236 -0
- package/lib/clang/{21 → 23}/include/__clang_cuda_device_functions.h +1 -1
- package/lib/clang/{21 → 23}/include/__clang_cuda_intrinsics.h +207 -226
- package/lib/clang/{21 → 23}/include/__clang_cuda_math_forward_declares.h +5 -0
- package/lib/clang/{21 → 23}/include/__clang_cuda_runtime_wrapper.h +27 -5
- package/lib/clang/23/include/__clang_gpu_builtin_vars.h +71 -0
- package/lib/clang/23/include/__clang_gpu_device_functions.h +411 -0
- package/lib/clang/23/include/__clang_gpu_intrinsics.h +242 -0
- package/lib/clang/{21 → 23}/include/__clang_hip_libdevice_declares.h +14 -121
- package/lib/clang/{21 → 23}/include/__clang_hip_math.h +5 -5
- package/lib/clang/{21 → 23}/include/__clang_hip_runtime_wrapper.h +9 -1
- package/lib/clang/{21 → 23}/include/__clang_spirv_builtins.h +12 -12
- package/lib/clang/23/include/__clang_spirv_libdevice_declares.h +170 -0
- package/lib/clang/23/include/__clang_spirv_math.h +719 -0
- package/lib/clang/{21/include/float.h → 23/include/__float_float.h} +13 -24
- package/lib/clang/23/include/__float_header_macro.h +12 -0
- package/lib/clang/23/include/__float_infinity_nan.h +20 -0
- package/lib/clang/{21 → 23}/include/altivec.h +79 -9
- package/lib/clang/{21 → 23}/include/amdgpuintrin.h +2 -29
- package/lib/clang/23/include/amdhsa_abi.h +83 -0
- package/lib/clang/23/include/amo.h +220 -0
- package/lib/clang/{21 → 23}/include/amxavx512intrin.h +215 -1
- package/lib/clang/{21 → 23}/include/amxintrin.h +0 -2
- package/lib/clang/{21 → 23}/include/andes_vector.h +5 -0
- package/lib/clang/23/include/arm64_neon.h +21 -0
- package/lib/clang/{21 → 23}/include/arm64intr.h +10 -0
- package/lib/clang/{21 → 23}/include/arm_acle.h +38 -27
- package/lib/clang/{21 → 23}/include/arm_neon.h +4140 -3836
- package/lib/clang/{21 → 23}/include/arm_sme.h +20 -8
- package/lib/clang/{21 → 23}/include/arm_sve.h +4582 -3782
- package/lib/clang/{21 → 23}/include/avx10_2_512bf16intrin.h +19 -12
- package/lib/clang/{21 → 23}/include/avx10_2_512convertintrin.h +1 -1
- package/lib/clang/{21 → 23}/include/avx10_2_512niintrin.h +25 -25
- package/lib/clang/{21 → 23}/include/avx10_2_512satcvtdsintrin.h +1 -1
- package/lib/clang/{21 → 23}/include/avx10_2bf16intrin.h +54 -45
- package/lib/clang/{21 → 23}/include/avx10_2convertintrin.h +2 -2
- package/lib/clang/{21 → 23}/include/avx10_2copyintrin.h +1 -1
- package/lib/clang/{21 → 23}/include/avx10_2niintrin.h +2 -2
- package/lib/clang/{21 → 23}/include/avx10_2satcvtdsintrin.h +2 -2
- package/lib/clang/{21 → 23}/include/avx2intrin.h +279 -382
- package/lib/clang/{21 → 23}/include/avx512bf16intrin.h +25 -16
- package/lib/clang/{21 → 23}/include/avx512bitalgintrin.h +19 -30
- package/lib/clang/23/include/avx512bmmintrin.h +174 -0
- package/lib/clang/23/include/avx512bmmvlintrin.h +245 -0
- package/lib/clang/{21 → 23}/include/avx512bwintrin.h +405 -534
- package/lib/clang/23/include/avx512cdintrin.h +112 -0
- package/lib/clang/{21 → 23}/include/avx512dqintrin.h +132 -161
- package/lib/clang/{21 → 23}/include/avx512fintrin.h +1049 -1485
- package/lib/clang/{21 → 23}/include/avx512fp16intrin.h +124 -128
- package/lib/clang/23/include/avx512ifmaintrin.h +68 -0
- package/lib/clang/23/include/avx512ifmavlintrin.h +138 -0
- package/lib/clang/{21 → 23}/include/avx512vbmi2intrin.h +55 -48
- package/lib/clang/{21 → 23}/include/avx512vbmiintrin.h +19 -27
- package/lib/clang/{21 → 23}/include/avx512vbmivlintrin.h +35 -49
- package/lib/clang/{21 → 23}/include/avx512vlbf16intrin.h +32 -22
- package/lib/clang/{21 → 23}/include/avx512vlbitalgintrin.h +37 -53
- package/lib/clang/{21 → 23}/include/avx512vlbwintrin.h +494 -609
- package/lib/clang/23/include/avx512vlcdintrin.h +202 -0
- package/lib/clang/{21 → 23}/include/avx512vldqintrin.h +110 -127
- package/lib/clang/{21 → 23}/include/avx512vlfp16intrin.h +130 -111
- package/lib/clang/{21 → 23}/include/avx512vlintrin.h +1025 -1395
- package/lib/clang/{21 → 23}/include/avx512vlvbmi2intrin.h +102 -95
- package/lib/clang/{21 → 23}/include/avx512vlvnniintrin.h +50 -52
- package/lib/clang/{21 → 23}/include/avx512vlvp2intersectintrin.h +2 -2
- package/lib/clang/{21 → 23}/include/avx512vnniintrin.h +42 -45
- package/lib/clang/{21 → 23}/include/avx512vp2intersectintrin.h +2 -3
- package/lib/clang/{21 → 23}/include/avx512vpopcntdqintrin.h +8 -10
- package/lib/clang/{21 → 23}/include/avx512vpopcntdqvlintrin.h +17 -15
- package/lib/clang/{21 → 23}/include/avxifmaintrin.h +16 -0
- package/lib/clang/{21 → 23}/include/avxintrin.h +165 -241
- package/lib/clang/{21 → 23}/include/avxvnniint16intrin.h +118 -99
- package/lib/clang/{21 → 23}/include/avxvnniint8intrin.h +56 -32
- package/lib/clang/{21 → 23}/include/avxvnniintrin.h +39 -26
- package/lib/clang/{21 → 23}/include/cpuid.h +101 -4
- package/lib/clang/{21 → 23}/include/crc32intrin.h +10 -8
- package/lib/clang/23/include/cuda_wrappers/__utility/declval.h +28 -0
- package/lib/clang/{21 → 23}/include/emmintrin.h +176 -176
- package/lib/clang/23/include/endian.h +91 -0
- package/lib/clang/{21 → 23}/include/f16cintrin.h +23 -9
- package/lib/clang/23/include/float.h +48 -0
- package/lib/clang/23/include/fma4intrin.h +220 -0
- package/lib/clang/{21 → 23}/include/fmaintrin.h +96 -66
- package/lib/clang/{21 → 23}/include/gfniintrin.h +21 -16
- package/lib/clang/{21 → 23}/include/gpuintrin.h +129 -109
- package/lib/clang/{21 → 23}/include/hexagon_types.h +23 -20
- package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics.h +222 -0
- package/lib/clang/{21/include/hlsl/hlsl_alias_intrinsics.h → 23/include/hlsl/hlsl_alias_intrinsics_gen.inc} +2090 -1032
- package/lib/clang/23/include/hlsl/hlsl_basic_types.h +370 -0
- package/lib/clang/{21 → 23}/include/hlsl/hlsl_compat_overloads.h +150 -18
- package/lib/clang/{21 → 23}/include/hlsl/hlsl_detail.h +6 -4
- package/lib/clang/23/include/hlsl/hlsl_inline_intrinsics_gen.inc +546 -0
- package/lib/clang/{21 → 23}/include/hlsl/hlsl_intrinsic_helpers.h +71 -45
- package/lib/clang/23/include/hlsl/hlsl_intrinsics.h +331 -0
- package/lib/clang/{21 → 23}/include/hvx_hexagon_protos.h +724 -913
- package/lib/clang/{21 → 23}/include/immintrin.h +4 -14
- package/lib/clang/{21 → 23}/include/intrin.h +24 -10
- package/lib/clang/{21 → 23}/include/larchintrin.h +2 -0
- package/lib/clang/{21 → 23}/include/lasxintrin.h +113 -0
- package/lib/clang/{21 → 23}/include/llvm_libc_wrappers/assert.h +3 -5
- package/lib/clang/23/include/llvm_libc_wrappers/ctype.h +29 -0
- package/lib/clang/{21 → 23}/include/llvm_libc_wrappers/inttypes.h +3 -5
- package/lib/clang/23/include/llvm_libc_wrappers/stdio.h +52 -0
- package/lib/clang/23/include/llvm_libc_wrappers/stdlib.h +32 -0
- package/lib/clang/23/include/llvm_libc_wrappers/string.h +29 -0
- package/lib/clang/{21 → 23}/include/llvm_libc_wrappers/time.h +4 -10
- package/lib/clang/{21 → 23}/include/mmintrin.h +188 -257
- package/lib/clang/{21 → 23}/include/module.modulemap +39 -5
- package/lib/clang/{21 → 23}/include/movrs_avx10_2_512intrin.h +2 -2
- package/lib/clang/{21 → 23}/include/movrs_avx10_2intrin.h +4 -4
- package/lib/clang/{21 → 23}/include/nvptxintrin.h +15 -26
- package/lib/clang/{21 → 23}/include/opencl-c-base.h +7 -93
- package/lib/clang/{21 → 23}/include/opencl-c.h +225 -118
- package/lib/clang/{21 → 23}/include/openmp_wrappers/__clang_openmp_device_functions.h +14 -0
- package/lib/clang/{21 → 23}/include/openmp_wrappers/complex +7 -1
- package/lib/clang/{21 → 23}/include/openmp_wrappers/complex.h +6 -0
- package/lib/clang/{21 → 23}/include/openmp_wrappers/math.h +10 -0
- package/lib/clang/{21 → 23}/include/pmmintrin.h +12 -24
- package/lib/clang/{21 → 23}/include/ptrauth.h +104 -12
- package/lib/clang/{21 → 23}/include/riscv_bitmanip.h +7 -0
- package/lib/clang/{21 → 23}/include/riscv_corev_alu.h +2 -0
- package/lib/clang/{21 → 23}/include/riscv_crypto.h +8 -0
- package/lib/clang/23/include/riscv_mips.h +36 -0
- package/lib/clang/23/include/riscv_nds.h +92 -0
- package/lib/clang/{21 → 23}/include/riscv_ntlh.h +2 -0
- package/lib/clang/23/include/riscv_packed_simd.h +644 -0
- package/lib/clang/{21 → 23}/include/riscv_vector.h +43 -0
- package/lib/clang/{21 → 23}/include/sifive_vector.h +76 -2
- package/lib/clang/{21 → 23}/include/sm4evexintrin.h +2 -2
- package/lib/clang/{21 → 23}/include/smmintrin.h +77 -59
- package/lib/clang/23/include/spirvintrin.h +167 -0
- package/lib/clang/23/include/stddefer.h +19 -0
- package/lib/clang/{21 → 23}/include/stdint.h +5 -14
- package/lib/clang/{21 → 23}/include/tmmintrin.h +116 -147
- package/lib/clang/{21 → 23}/include/vaesintrin.h +1 -2
- package/lib/clang/{21 → 23}/include/vecintrin.h +1 -1
- package/lib/clang/{21 → 23}/include/wasm_simd128.h +17 -0
- package/lib/clang/{21 → 23}/include/xmmintrin.h +50 -75
- package/lib/clang/{21 → 23}/include/xopintrin.h +20 -10
- package/lib/clang/23/include/zos_wrappers/grp.h +19 -0
- package/lib/clang/23/include/zos_wrappers/locale.h +19 -0
- package/lib/clang/23/include/zos_wrappers/math.h +31 -0
- package/lib/clang/23/include/zos_wrappers/poll.h +19 -0
- package/lib/clang/23/include/zos_wrappers/stdlib.h +20 -0
- package/lib/clang/23/include/zos_wrappers/string.h +19 -0
- package/lib/clang/23/include/zos_wrappers/time.h +19 -0
- package/lib/clang/23/include/zos_wrappers/variant.h +19 -0
- package/package.json +6 -6
- package/lib/clang/21/include/__clang_cuda_complex_builtins.h +0 -285
- package/lib/clang/21/include/amxbf16transposeintrin.h +0 -94
- package/lib/clang/21/include/amxcomplextransposeintrin.h +0 -303
- package/lib/clang/21/include/amxfp16transposeintrin.h +0 -94
- package/lib/clang/21/include/amxmovrstransposeintrin.h +0 -200
- package/lib/clang/21/include/amxtf32intrin.h +0 -108
- package/lib/clang/21/include/amxtf32transposeintrin.h +0 -105
- package/lib/clang/21/include/amxtransposeintrin.h +0 -248
- package/lib/clang/21/include/avx512cdintrin.h +0 -125
- package/lib/clang/21/include/avx512ifmaintrin.h +0 -70
- package/lib/clang/21/include/avx512ifmavlintrin.h +0 -111
- package/lib/clang/21/include/avx512vlcdintrin.h +0 -230
- package/lib/clang/21/include/fma4intrin.h +0 -218
- package/lib/clang/21/include/hlsl/hlsl_basic_types.h +0 -120
- package/lib/clang/21/include/hlsl/hlsl_intrinsics.h +0 -526
- package/lib/clang/21/include/llvm_libc_wrappers/ctype.h +0 -140
- package/lib/clang/21/include/llvm_libc_wrappers/stdio.h +0 -80
- package/lib/clang/21/include/llvm_libc_wrappers/stdlib.h +0 -53
- package/lib/clang/21/include/llvm_libc_wrappers/string.h +0 -96
- /package/lib/clang/{21 → 23}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{21 → 23}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{21 → 23}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{21 → 23}/include/__clang_cuda_math.h +0 -0
- /package/lib/clang/{21 → 23}/include/__clang_cuda_texture_intrinsics.h +0 -0
- /package/lib/clang/{21 → 23}/include/__clang_hip_cmath.h +0 -0
- /package/lib/clang/{21 → 23}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stdarg___gnuc_va_list.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stdarg___va_copy.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stdarg_header_macro.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stdarg_va_arg.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stdarg_va_copy.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stdarg_va_list.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_header_macro.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_null.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_nullptr_t.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_offsetof.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_ptrdiff_t.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_rsize_t.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_size_t.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_unreachable.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_wchar_t.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_wint_t.h +0 -0
- /package/lib/clang/{21 → 23}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{21 → 23}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{21 → 23}/include/adcintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/adxintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ammintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/amxcomplexintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/amxfp16intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/amxfp8intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/amxmovrsintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/arm_bf16.h +0 -0
- /package/lib/clang/{21 → 23}/include/arm_cde.h +0 -0
- /package/lib/clang/{21 → 23}/include/arm_cmse.h +0 -0
- /package/lib/clang/{21 → 23}/include/arm_fp16.h +0 -0
- /package/lib/clang/{21 → 23}/include/arm_mve.h +0 -0
- /package/lib/clang/{21 → 23}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{21 → 23}/include/arm_vector_types.h +0 -0
- /package/lib/clang/{21 → 23}/include/armintr.h +0 -0
- /package/lib/clang/{21 → 23}/include/avx10_2_512minmaxintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/avx10_2_512satcvtintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/avx10_2minmaxintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/avx10_2satcvtintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/bmi2intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/bmiintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/builtins.h +0 -0
- /package/lib/clang/{21 → 23}/include/cet.h +0 -0
- /package/lib/clang/{21 → 23}/include/cetintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/clwbintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/clzerointrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/cmpccxaddintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/bits/c++config.h +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/cmath +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{21 → 23}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{21 → 23}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{21 → 23}/include/hlsl/hlsl_spirv.h +0 -0
- /package/lib/clang/{21 → 23}/include/hlsl.h +0 -0
- /package/lib/clang/{21 → 23}/include/hresetintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/htmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ia32intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/intrin0.h +0 -0
- /package/lib/clang/{21 → 23}/include/inttypes.h +0 -0
- /package/lib/clang/{21 → 23}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/iso646.h +0 -0
- /package/lib/clang/{21 → 23}/include/keylockerintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/limits.h +0 -0
- /package/lib/clang/{21 → 23}/include/llvm_offload_wrappers/__llvm_offload.h +0 -0
- /package/lib/clang/{21 → 23}/include/llvm_offload_wrappers/__llvm_offload_device.h +0 -0
- /package/lib/clang/{21 → 23}/include/llvm_offload_wrappers/__llvm_offload_host.h +0 -0
- /package/lib/clang/{21 → 23}/include/lsxintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/lwpintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/mm3dnow.h +0 -0
- /package/lib/clang/{21 → 23}/include/mm_malloc.h +0 -0
- /package/lib/clang/{21 → 23}/include/movdirintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/movrsintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/msa.h +0 -0
- /package/lib/clang/{21 → 23}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/nmmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{21 → 23}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{21 → 23}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{21 → 23}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/pkuintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/popcntintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/nmmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/smmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/prfchwintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/raointintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/rtmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/s390intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/serializeintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/sgxintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/sha512intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/shaintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/sm3intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/sm4intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/stdalign.h +0 -0
- /package/lib/clang/{21 → 23}/include/stdarg.h +0 -0
- /package/lib/clang/{21 → 23}/include/stdatomic.h +0 -0
- /package/lib/clang/{21 → 23}/include/stdbool.h +0 -0
- /package/lib/clang/{21 → 23}/include/stdckdint.h +0 -0
- /package/lib/clang/{21 → 23}/include/stdcountof.h +0 -0
- /package/lib/clang/{21 → 23}/include/stddef.h +0 -0
- /package/lib/clang/{21 → 23}/include/stdnoreturn.h +0 -0
- /package/lib/clang/{21 → 23}/include/tbmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/tgmath.h +0 -0
- /package/lib/clang/{21 → 23}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/uintrintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/unwind.h +0 -0
- /package/lib/clang/{21 → 23}/include/usermsrintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/vadefs.h +0 -0
- /package/lib/clang/{21 → 23}/include/varargs.h +0 -0
- /package/lib/clang/{21 → 23}/include/velintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{21 → 23}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{21 → 23}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/wmmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/x86gprintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/x86intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/xtestintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/yvals_core.h +0 -0
- /package/lib/clang/{21 → 23}/include/zos_wrappers/builtins.h +0 -0
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
/*===-- __clang_cuda_complex_builtins - CUDA impls of runtime complex fns ---===
|
|
2
|
-
*
|
|
3
|
-
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
-
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
-
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
-
*
|
|
7
|
-
*===-----------------------------------------------------------------------===
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
#ifndef __CLANG_CUDA_COMPLEX_BUILTINS
|
|
11
|
-
#define __CLANG_CUDA_COMPLEX_BUILTINS
|
|
12
|
-
|
|
13
|
-
// This header defines __muldc3, __mulsc3, __divdc3, and __divsc3. These are
|
|
14
|
-
// libgcc functions that clang assumes are available when compiling c99 complex
|
|
15
|
-
// operations. (These implementations come from libc++, and have been modified
|
|
16
|
-
// to work with CUDA and OpenMP target offloading [in C and C++ mode].)
|
|
17
|
-
|
|
18
|
-
#pragma push_macro("__DEVICE__")
|
|
19
|
-
#if defined(__OPENMP_NVPTX__) || defined(__OPENMP_AMDGCN__)
|
|
20
|
-
#pragma omp declare target
|
|
21
|
-
#define __DEVICE__ __attribute__((noinline, nothrow, cold, weak))
|
|
22
|
-
#else
|
|
23
|
-
#define __DEVICE__ __device__ inline
|
|
24
|
-
#endif
|
|
25
|
-
|
|
26
|
-
// To make the algorithms available for C and C++ in CUDA and OpenMP we select
|
|
27
|
-
// different but equivalent function versions. TODO: For OpenMP we currently
|
|
28
|
-
// select the native builtins as the overload support for templates is lacking.
|
|
29
|
-
#if !defined(__OPENMP_NVPTX__) && !defined(__OPENMP_AMDGCN__)
|
|
30
|
-
#define _ISNANd std::isnan
|
|
31
|
-
#define _ISNANf std::isnan
|
|
32
|
-
#define _ISINFd std::isinf
|
|
33
|
-
#define _ISINFf std::isinf
|
|
34
|
-
#define _ISFINITEd std::isfinite
|
|
35
|
-
#define _ISFINITEf std::isfinite
|
|
36
|
-
#define _COPYSIGNd std::copysign
|
|
37
|
-
#define _COPYSIGNf std::copysign
|
|
38
|
-
#define _SCALBNd std::scalbn
|
|
39
|
-
#define _SCALBNf std::scalbn
|
|
40
|
-
#define _ABSd std::abs
|
|
41
|
-
#define _ABSf std::abs
|
|
42
|
-
#define _LOGBd std::logb
|
|
43
|
-
#define _LOGBf std::logb
|
|
44
|
-
// Rather than pulling in std::max from algorithm everytime, use available ::max.
|
|
45
|
-
#define _fmaxd max
|
|
46
|
-
#define _fmaxf max
|
|
47
|
-
#else
|
|
48
|
-
#ifdef __AMDGCN__
|
|
49
|
-
#define _ISNANd __ocml_isnan_f64
|
|
50
|
-
#define _ISNANf __ocml_isnan_f32
|
|
51
|
-
#define _ISINFd __ocml_isinf_f64
|
|
52
|
-
#define _ISINFf __ocml_isinf_f32
|
|
53
|
-
#define _ISFINITEd __ocml_isfinite_f64
|
|
54
|
-
#define _ISFINITEf __ocml_isfinite_f32
|
|
55
|
-
#define _COPYSIGNd __ocml_copysign_f64
|
|
56
|
-
#define _COPYSIGNf __ocml_copysign_f32
|
|
57
|
-
#define _SCALBNd __ocml_scalbn_f64
|
|
58
|
-
#define _SCALBNf __ocml_scalbn_f32
|
|
59
|
-
#define _ABSd __ocml_fabs_f64
|
|
60
|
-
#define _ABSf __ocml_fabs_f32
|
|
61
|
-
#define _LOGBd __ocml_logb_f64
|
|
62
|
-
#define _LOGBf __ocml_logb_f32
|
|
63
|
-
#define _fmaxd __ocml_fmax_f64
|
|
64
|
-
#define _fmaxf __ocml_fmax_f32
|
|
65
|
-
#else
|
|
66
|
-
#define _ISNANd __nv_isnand
|
|
67
|
-
#define _ISNANf __nv_isnanf
|
|
68
|
-
#define _ISINFd __nv_isinfd
|
|
69
|
-
#define _ISINFf __nv_isinff
|
|
70
|
-
#define _ISFINITEd __nv_isfinited
|
|
71
|
-
#define _ISFINITEf __nv_finitef
|
|
72
|
-
#define _COPYSIGNd __nv_copysign
|
|
73
|
-
#define _COPYSIGNf __nv_copysignf
|
|
74
|
-
#define _SCALBNd __nv_scalbn
|
|
75
|
-
#define _SCALBNf __nv_scalbnf
|
|
76
|
-
#define _ABSd __nv_fabs
|
|
77
|
-
#define _ABSf __nv_fabsf
|
|
78
|
-
#define _LOGBd __nv_logb
|
|
79
|
-
#define _LOGBf __nv_logbf
|
|
80
|
-
#define _fmaxd __nv_fmax
|
|
81
|
-
#define _fmaxf __nv_fmaxf
|
|
82
|
-
#endif
|
|
83
|
-
#endif
|
|
84
|
-
|
|
85
|
-
#if defined(__cplusplus)
|
|
86
|
-
extern "C" {
|
|
87
|
-
#endif
|
|
88
|
-
|
|
89
|
-
__DEVICE__ double _Complex __muldc3(double __a, double __b, double __c,
|
|
90
|
-
double __d) {
|
|
91
|
-
double __ac = __a * __c;
|
|
92
|
-
double __bd = __b * __d;
|
|
93
|
-
double __ad = __a * __d;
|
|
94
|
-
double __bc = __b * __c;
|
|
95
|
-
double _Complex z;
|
|
96
|
-
__real__(z) = __ac - __bd;
|
|
97
|
-
__imag__(z) = __ad + __bc;
|
|
98
|
-
if (_ISNANd(__real__(z)) && _ISNANd(__imag__(z))) {
|
|
99
|
-
int __recalc = 0;
|
|
100
|
-
if (_ISINFd(__a) || _ISINFd(__b)) {
|
|
101
|
-
__a = _COPYSIGNd(_ISINFd(__a) ? 1 : 0, __a);
|
|
102
|
-
__b = _COPYSIGNd(_ISINFd(__b) ? 1 : 0, __b);
|
|
103
|
-
if (_ISNANd(__c))
|
|
104
|
-
__c = _COPYSIGNd(0, __c);
|
|
105
|
-
if (_ISNANd(__d))
|
|
106
|
-
__d = _COPYSIGNd(0, __d);
|
|
107
|
-
__recalc = 1;
|
|
108
|
-
}
|
|
109
|
-
if (_ISINFd(__c) || _ISINFd(__d)) {
|
|
110
|
-
__c = _COPYSIGNd(_ISINFd(__c) ? 1 : 0, __c);
|
|
111
|
-
__d = _COPYSIGNd(_ISINFd(__d) ? 1 : 0, __d);
|
|
112
|
-
if (_ISNANd(__a))
|
|
113
|
-
__a = _COPYSIGNd(0, __a);
|
|
114
|
-
if (_ISNANd(__b))
|
|
115
|
-
__b = _COPYSIGNd(0, __b);
|
|
116
|
-
__recalc = 1;
|
|
117
|
-
}
|
|
118
|
-
if (!__recalc &&
|
|
119
|
-
(_ISINFd(__ac) || _ISINFd(__bd) || _ISINFd(__ad) || _ISINFd(__bc))) {
|
|
120
|
-
if (_ISNANd(__a))
|
|
121
|
-
__a = _COPYSIGNd(0, __a);
|
|
122
|
-
if (_ISNANd(__b))
|
|
123
|
-
__b = _COPYSIGNd(0, __b);
|
|
124
|
-
if (_ISNANd(__c))
|
|
125
|
-
__c = _COPYSIGNd(0, __c);
|
|
126
|
-
if (_ISNANd(__d))
|
|
127
|
-
__d = _COPYSIGNd(0, __d);
|
|
128
|
-
__recalc = 1;
|
|
129
|
-
}
|
|
130
|
-
if (__recalc) {
|
|
131
|
-
// Can't use std::numeric_limits<double>::infinity() -- that doesn't have
|
|
132
|
-
// a device overload (and isn't constexpr before C++11, naturally).
|
|
133
|
-
__real__(z) = __builtin_huge_val() * (__a * __c - __b * __d);
|
|
134
|
-
__imag__(z) = __builtin_huge_val() * (__a * __d + __b * __c);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
return z;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
__DEVICE__ float _Complex __mulsc3(float __a, float __b, float __c, float __d) {
|
|
141
|
-
float __ac = __a * __c;
|
|
142
|
-
float __bd = __b * __d;
|
|
143
|
-
float __ad = __a * __d;
|
|
144
|
-
float __bc = __b * __c;
|
|
145
|
-
float _Complex z;
|
|
146
|
-
__real__(z) = __ac - __bd;
|
|
147
|
-
__imag__(z) = __ad + __bc;
|
|
148
|
-
if (_ISNANf(__real__(z)) && _ISNANf(__imag__(z))) {
|
|
149
|
-
int __recalc = 0;
|
|
150
|
-
if (_ISINFf(__a) || _ISINFf(__b)) {
|
|
151
|
-
__a = _COPYSIGNf(_ISINFf(__a) ? 1 : 0, __a);
|
|
152
|
-
__b = _COPYSIGNf(_ISINFf(__b) ? 1 : 0, __b);
|
|
153
|
-
if (_ISNANf(__c))
|
|
154
|
-
__c = _COPYSIGNf(0, __c);
|
|
155
|
-
if (_ISNANf(__d))
|
|
156
|
-
__d = _COPYSIGNf(0, __d);
|
|
157
|
-
__recalc = 1;
|
|
158
|
-
}
|
|
159
|
-
if (_ISINFf(__c) || _ISINFf(__d)) {
|
|
160
|
-
__c = _COPYSIGNf(_ISINFf(__c) ? 1 : 0, __c);
|
|
161
|
-
__d = _COPYSIGNf(_ISINFf(__d) ? 1 : 0, __d);
|
|
162
|
-
if (_ISNANf(__a))
|
|
163
|
-
__a = _COPYSIGNf(0, __a);
|
|
164
|
-
if (_ISNANf(__b))
|
|
165
|
-
__b = _COPYSIGNf(0, __b);
|
|
166
|
-
__recalc = 1;
|
|
167
|
-
}
|
|
168
|
-
if (!__recalc &&
|
|
169
|
-
(_ISINFf(__ac) || _ISINFf(__bd) || _ISINFf(__ad) || _ISINFf(__bc))) {
|
|
170
|
-
if (_ISNANf(__a))
|
|
171
|
-
__a = _COPYSIGNf(0, __a);
|
|
172
|
-
if (_ISNANf(__b))
|
|
173
|
-
__b = _COPYSIGNf(0, __b);
|
|
174
|
-
if (_ISNANf(__c))
|
|
175
|
-
__c = _COPYSIGNf(0, __c);
|
|
176
|
-
if (_ISNANf(__d))
|
|
177
|
-
__d = _COPYSIGNf(0, __d);
|
|
178
|
-
__recalc = 1;
|
|
179
|
-
}
|
|
180
|
-
if (__recalc) {
|
|
181
|
-
__real__(z) = __builtin_huge_valf() * (__a * __c - __b * __d);
|
|
182
|
-
__imag__(z) = __builtin_huge_valf() * (__a * __d + __b * __c);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
return z;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
__DEVICE__ double _Complex __divdc3(double __a, double __b, double __c,
|
|
189
|
-
double __d) {
|
|
190
|
-
int __ilogbw = 0;
|
|
191
|
-
// Can't use std::max, because that's defined in <algorithm>, and we don't
|
|
192
|
-
// want to pull that in for every compile. The CUDA headers define
|
|
193
|
-
// ::max(float, float) and ::max(double, double), which is sufficient for us.
|
|
194
|
-
double __logbw = _LOGBd(_fmaxd(_ABSd(__c), _ABSd(__d)));
|
|
195
|
-
if (_ISFINITEd(__logbw)) {
|
|
196
|
-
__ilogbw = (int)__logbw;
|
|
197
|
-
__c = _SCALBNd(__c, -__ilogbw);
|
|
198
|
-
__d = _SCALBNd(__d, -__ilogbw);
|
|
199
|
-
}
|
|
200
|
-
double __denom = __c * __c + __d * __d;
|
|
201
|
-
double _Complex z;
|
|
202
|
-
__real__(z) = _SCALBNd((__a * __c + __b * __d) / __denom, -__ilogbw);
|
|
203
|
-
__imag__(z) = _SCALBNd((__b * __c - __a * __d) / __denom, -__ilogbw);
|
|
204
|
-
if (_ISNANd(__real__(z)) && _ISNANd(__imag__(z))) {
|
|
205
|
-
if ((__denom == 0.0) && (!_ISNANd(__a) || !_ISNANd(__b))) {
|
|
206
|
-
__real__(z) = _COPYSIGNd(__builtin_huge_val(), __c) * __a;
|
|
207
|
-
__imag__(z) = _COPYSIGNd(__builtin_huge_val(), __c) * __b;
|
|
208
|
-
} else if ((_ISINFd(__a) || _ISINFd(__b)) && _ISFINITEd(__c) &&
|
|
209
|
-
_ISFINITEd(__d)) {
|
|
210
|
-
__a = _COPYSIGNd(_ISINFd(__a) ? 1.0 : 0.0, __a);
|
|
211
|
-
__b = _COPYSIGNd(_ISINFd(__b) ? 1.0 : 0.0, __b);
|
|
212
|
-
__real__(z) = __builtin_huge_val() * (__a * __c + __b * __d);
|
|
213
|
-
__imag__(z) = __builtin_huge_val() * (__b * __c - __a * __d);
|
|
214
|
-
} else if (_ISINFd(__logbw) && __logbw > 0.0 && _ISFINITEd(__a) &&
|
|
215
|
-
_ISFINITEd(__b)) {
|
|
216
|
-
__c = _COPYSIGNd(_ISINFd(__c) ? 1.0 : 0.0, __c);
|
|
217
|
-
__d = _COPYSIGNd(_ISINFd(__d) ? 1.0 : 0.0, __d);
|
|
218
|
-
__real__(z) = 0.0 * (__a * __c + __b * __d);
|
|
219
|
-
__imag__(z) = 0.0 * (__b * __c - __a * __d);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
return z;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
__DEVICE__ float _Complex __divsc3(float __a, float __b, float __c, float __d) {
|
|
226
|
-
int __ilogbw = 0;
|
|
227
|
-
float __logbw = _LOGBf(_fmaxf(_ABSf(__c), _ABSf(__d)));
|
|
228
|
-
if (_ISFINITEf(__logbw)) {
|
|
229
|
-
__ilogbw = (int)__logbw;
|
|
230
|
-
__c = _SCALBNf(__c, -__ilogbw);
|
|
231
|
-
__d = _SCALBNf(__d, -__ilogbw);
|
|
232
|
-
}
|
|
233
|
-
float __denom = __c * __c + __d * __d;
|
|
234
|
-
float _Complex z;
|
|
235
|
-
__real__(z) = _SCALBNf((__a * __c + __b * __d) / __denom, -__ilogbw);
|
|
236
|
-
__imag__(z) = _SCALBNf((__b * __c - __a * __d) / __denom, -__ilogbw);
|
|
237
|
-
if (_ISNANf(__real__(z)) && _ISNANf(__imag__(z))) {
|
|
238
|
-
if ((__denom == 0) && (!_ISNANf(__a) || !_ISNANf(__b))) {
|
|
239
|
-
__real__(z) = _COPYSIGNf(__builtin_huge_valf(), __c) * __a;
|
|
240
|
-
__imag__(z) = _COPYSIGNf(__builtin_huge_valf(), __c) * __b;
|
|
241
|
-
} else if ((_ISINFf(__a) || _ISINFf(__b)) && _ISFINITEf(__c) &&
|
|
242
|
-
_ISFINITEf(__d)) {
|
|
243
|
-
__a = _COPYSIGNf(_ISINFf(__a) ? 1 : 0, __a);
|
|
244
|
-
__b = _COPYSIGNf(_ISINFf(__b) ? 1 : 0, __b);
|
|
245
|
-
__real__(z) = __builtin_huge_valf() * (__a * __c + __b * __d);
|
|
246
|
-
__imag__(z) = __builtin_huge_valf() * (__b * __c - __a * __d);
|
|
247
|
-
} else if (_ISINFf(__logbw) && __logbw > 0 && _ISFINITEf(__a) &&
|
|
248
|
-
_ISFINITEf(__b)) {
|
|
249
|
-
__c = _COPYSIGNf(_ISINFf(__c) ? 1 : 0, __c);
|
|
250
|
-
__d = _COPYSIGNf(_ISINFf(__d) ? 1 : 0, __d);
|
|
251
|
-
__real__(z) = 0 * (__a * __c + __b * __d);
|
|
252
|
-
__imag__(z) = 0 * (__b * __c - __a * __d);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
return z;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
#if defined(__cplusplus)
|
|
259
|
-
} // extern "C"
|
|
260
|
-
#endif
|
|
261
|
-
|
|
262
|
-
#undef _ISNANd
|
|
263
|
-
#undef _ISNANf
|
|
264
|
-
#undef _ISINFd
|
|
265
|
-
#undef _ISINFf
|
|
266
|
-
#undef _COPYSIGNd
|
|
267
|
-
#undef _COPYSIGNf
|
|
268
|
-
#undef _ISFINITEd
|
|
269
|
-
#undef _ISFINITEf
|
|
270
|
-
#undef _SCALBNd
|
|
271
|
-
#undef _SCALBNf
|
|
272
|
-
#undef _ABSd
|
|
273
|
-
#undef _ABSf
|
|
274
|
-
#undef _LOGBd
|
|
275
|
-
#undef _LOGBf
|
|
276
|
-
#undef _fmaxd
|
|
277
|
-
#undef _fmaxf
|
|
278
|
-
|
|
279
|
-
#if defined(__OPENMP_NVPTX__) || defined(__OPENMP_AMDGCN__)
|
|
280
|
-
#pragma omp end declare target
|
|
281
|
-
#endif
|
|
282
|
-
|
|
283
|
-
#pragma pop_macro("__DEVICE__")
|
|
284
|
-
|
|
285
|
-
#endif // __CLANG_CUDA_COMPLEX_BUILTINS
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/*===----- amxbf16transposeintrin.h - AMX-BF16 and AMX-TRANSPOSE ------------===
|
|
2
|
-
*
|
|
3
|
-
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
-
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
-
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
-
*
|
|
7
|
-
*===------------------------------------------------------------------------===
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
#ifndef __IMMINTRIN_H
|
|
11
|
-
#error \
|
|
12
|
-
"Never use <amxbf16transposeintrin.h> directly; use <immintrin.h> instead."
|
|
13
|
-
#endif /* __IMMINTRIN_H */
|
|
14
|
-
|
|
15
|
-
#ifndef __AMX_BF16TRANSPOSEINTRIN_H
|
|
16
|
-
#define __AMX_BF16TRANSPOSEINTRIN_H
|
|
17
|
-
#ifdef __x86_64__
|
|
18
|
-
|
|
19
|
-
/* Define the default attributes for the functions in this file. */
|
|
20
|
-
#define __DEFAULT_FN_ATTRS \
|
|
21
|
-
__attribute__((__always_inline__, __nodebug__, \
|
|
22
|
-
__target__("amx-bf16,amx-transpose")))
|
|
23
|
-
|
|
24
|
-
/// Compute transpose and dot-product of BF16 (16-bit) floating-point pairs in
|
|
25
|
-
/// tiles \a a and \a b, accumulating the intermediate single-precision
|
|
26
|
-
/// (32-bit) floating-point elements with elements in \a dst, and store the
|
|
27
|
-
/// 32-bit result back to tile \a dst.
|
|
28
|
-
///
|
|
29
|
-
/// \headerfile <immintrin.h>
|
|
30
|
-
///
|
|
31
|
-
/// \code
|
|
32
|
-
/// void _tile_tdpbf16ps (__tile dst, __tile a, __tile b)
|
|
33
|
-
/// \endcode
|
|
34
|
-
///
|
|
35
|
-
/// \code{.operation}
|
|
36
|
-
/// FOR m := 0 TO dst.rows - 1
|
|
37
|
-
/// tmp := dst.row[m]
|
|
38
|
-
/// FOR k := 0 TO (a.colsb / 4) - 1
|
|
39
|
-
/// FOR n := 0 TO (dst.colsb / 4) - 1
|
|
40
|
-
/// tmp.bf32[n] += FP32(a.row[m].bf16[2*k+0]) *
|
|
41
|
-
/// FP32(b.row[k].bf16[2*n+0])
|
|
42
|
-
/// tmp.bf32[n] += FP32(a.row[m].bf16[2*k+1]) *
|
|
43
|
-
/// FP32(b.row[k].bf16[2*n+1])
|
|
44
|
-
/// ENDFOR
|
|
45
|
-
/// ENDFOR
|
|
46
|
-
/// write_row_and_zero(dst, m, tmp, dst.colsb)
|
|
47
|
-
/// ENDFOR
|
|
48
|
-
/// zero_upper_rows(dst, dst.rows)
|
|
49
|
-
/// zero_tileconfig_start()
|
|
50
|
-
/// \endcode
|
|
51
|
-
///
|
|
52
|
-
/// This intrinsic corresponds to the \c TTDPBF16PS instruction.
|
|
53
|
-
///
|
|
54
|
-
/// \param dst
|
|
55
|
-
/// The destination tile. Max size is 1024 Bytes.
|
|
56
|
-
/// \param a
|
|
57
|
-
/// The 1st source tile. Max size is 1024 Bytes.
|
|
58
|
-
/// \param b
|
|
59
|
-
/// The 2nd source tile. Max size is 1024 Bytes.
|
|
60
|
-
#define _tile_tdpbf16ps(dst, a, b) __builtin_ia32_ttdpbf16ps((dst), (a), (b))
|
|
61
|
-
|
|
62
|
-
/// This is internal intrinsic. C/C++ user should avoid calling it directly.
|
|
63
|
-
static __inline__ _tile1024i __DEFAULT_FN_ATTRS
|
|
64
|
-
_tile_tdpbf16ps_internal(unsigned short m, unsigned short n, unsigned short k,
|
|
65
|
-
_tile1024i dst, _tile1024i src1, _tile1024i src2) {
|
|
66
|
-
return __builtin_ia32_ttdpbf16ps_internal(m, n, k, dst, src1, src2);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/// Compute transpose and dot-product of BF16 (16-bit) floating-point pairs in
|
|
70
|
-
/// tiles src0 and src1, accumulating the intermediate single-precision
|
|
71
|
-
/// (32-bit) floating-point elements with elements in "dst", and store the
|
|
72
|
-
/// 32-bit result back to tile "dst".
|
|
73
|
-
///
|
|
74
|
-
/// \headerfile <immintrin.h>
|
|
75
|
-
///
|
|
76
|
-
/// This intrinsic corresponds to the <c> TTDPBF16PS </c> instruction.
|
|
77
|
-
///
|
|
78
|
-
/// \param dst
|
|
79
|
-
/// The destination tile. Max size is 1024 Bytes.
|
|
80
|
-
/// \param src0
|
|
81
|
-
/// The 1st source tile. Max size is 1024 Bytes.
|
|
82
|
-
/// \param src1
|
|
83
|
-
/// The 2nd source tile. Max size is 1024 Bytes.
|
|
84
|
-
__DEFAULT_FN_ATTRS
|
|
85
|
-
static __inline__ void __tile_tdpbf16ps(__tile1024i *dst, __tile1024i src0,
|
|
86
|
-
__tile1024i src1) {
|
|
87
|
-
dst->tile = _tile_tdpbf16ps_internal(src0.row, src1.col, src0.col, dst->tile,
|
|
88
|
-
src0.tile, src1.tile);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
#undef __DEFAULT_FN_ATTRS
|
|
92
|
-
|
|
93
|
-
#endif /* __x86_64__ */
|
|
94
|
-
#endif /* __AMX_BF16TRANSPOSEINTRIN_H */
|
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
/*===----- amxcomplextransposeintrin.h - AMX-COMPLEX and AMX-TRANSPOSE ------===
|
|
2
|
-
*
|
|
3
|
-
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
-
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
-
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
-
*
|
|
7
|
-
*===------------------------------------------------------------------------===
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
#ifndef __IMMINTRIN_H
|
|
11
|
-
#error \
|
|
12
|
-
"Never use <amxcomplextransposeintrin.h> directly; include <immintrin.h> instead."
|
|
13
|
-
#endif // __IMMINTRIN_H
|
|
14
|
-
|
|
15
|
-
#ifndef __AMX_COMPLEXTRANSPOSEINTRIN_H
|
|
16
|
-
#define __AMX_COMPLEXTRANSPOSEINTRIN_H
|
|
17
|
-
#ifdef __x86_64__
|
|
18
|
-
|
|
19
|
-
#define __DEFAULT_FN_ATTRS \
|
|
20
|
-
__attribute__((__always_inline__, __nodebug__, \
|
|
21
|
-
__target__("amx-complex,amx-transpose")))
|
|
22
|
-
|
|
23
|
-
/// Perform matrix multiplication of two tiles containing complex elements and
|
|
24
|
-
/// accumulate the results into a packed single precision tile. Each dword
|
|
25
|
-
/// element in input tiles \a a and \a b is interpreted as a complex number
|
|
26
|
-
/// with FP16 real part and FP16 imaginary part.
|
|
27
|
-
/// Calculates the imaginary part of the result. For each possible combination
|
|
28
|
-
/// of (transposed column of \a a, column of \a b), it performs a set of
|
|
29
|
-
/// multiplication and accumulations on all corresponding complex numbers
|
|
30
|
-
/// (one from \a a and one from \a b). The imaginary part of the \a a element
|
|
31
|
-
/// is multiplied with the real part of the corresponding \a b element, and
|
|
32
|
-
/// the real part of the \a a element is multiplied with the imaginary part
|
|
33
|
-
/// of the corresponding \a b elements. The two accumulated results are
|
|
34
|
-
/// added, and then accumulated into the corresponding row and column of
|
|
35
|
-
/// \a dst.
|
|
36
|
-
///
|
|
37
|
-
/// \headerfile <x86intrin.h>
|
|
38
|
-
///
|
|
39
|
-
/// \code
|
|
40
|
-
/// void _tile_tcmmimfp16ps(__tile dst, __tile a, __tile b);
|
|
41
|
-
/// \endcode
|
|
42
|
-
///
|
|
43
|
-
/// \code{.operation}
|
|
44
|
-
/// FOR m := 0 TO dst.rows - 1
|
|
45
|
-
/// tmp := dst.row[m]
|
|
46
|
-
/// FOR k := 0 TO a.rows - 1
|
|
47
|
-
/// FOR n := 0 TO (dst.colsb / 4) - 1
|
|
48
|
-
/// tmp.fp32[n] += FP32(a.row[m].fp16[2*k+0]) * FP32(b.row[k].fp16[2*n+1])
|
|
49
|
-
/// tmp.fp32[n] += FP32(a.row[m].fp16[2*k+1]) * FP32(b.row[k].fp16[2*n+0])
|
|
50
|
-
/// ENDFOR
|
|
51
|
-
/// ENDFOR
|
|
52
|
-
/// write_row_and_zero(dst, m, tmp, dst.colsb)
|
|
53
|
-
/// ENDFOR
|
|
54
|
-
/// zero_upper_rows(dst, dst.rows)
|
|
55
|
-
/// zero_tileconfig_start()
|
|
56
|
-
/// \endcode
|
|
57
|
-
///
|
|
58
|
-
/// This intrinsic corresponds to the \c TTCMMIMFP16PS instruction.
|
|
59
|
-
///
|
|
60
|
-
/// \param dst
|
|
61
|
-
/// The destination tile. Max size is 1024 Bytes.
|
|
62
|
-
/// \param a
|
|
63
|
-
/// The 1st source tile. Max size is 1024 Bytes.
|
|
64
|
-
/// \param b
|
|
65
|
-
/// The 2nd source tile. Max size is 1024 Bytes.
|
|
66
|
-
#define _tile_tcmmimfp16ps(dst, a, b) \
|
|
67
|
-
__builtin_ia32_ttcmmimfp16ps((dst), (a), (b))
|
|
68
|
-
|
|
69
|
-
/// Perform matrix multiplication of two tiles containing complex elements and
|
|
70
|
-
/// accumulate the results into a packed single precision tile. Each dword
|
|
71
|
-
/// element in input tiles \a a and \a b is interpreted as a complex number
|
|
72
|
-
/// with FP16 real part and FP16 imaginary part.
|
|
73
|
-
/// Calculates the real part of the result. For each possible combination
|
|
74
|
-
/// of (rtransposed colum of \a a, column of \a b), it performs a set of
|
|
75
|
-
/// multiplication and accumulations on all corresponding complex numbers
|
|
76
|
-
/// (one from \a a and one from \a b). The real part of the \a a element is
|
|
77
|
-
/// multiplied with the real part of the corresponding \a b element, and the
|
|
78
|
-
/// negated imaginary part of the \a a element is multiplied with the
|
|
79
|
-
/// imaginary part of the corresponding \a b elements. The two accumulated
|
|
80
|
-
/// results are added, and then accumulated into the corresponding row and
|
|
81
|
-
/// column of \a dst.
|
|
82
|
-
///
|
|
83
|
-
/// \headerfile <x86intrin.h>
|
|
84
|
-
///
|
|
85
|
-
/// \code
|
|
86
|
-
/// void _tile_tcmmrlfp16ps(__tile dst, __tile a, __tile b);
|
|
87
|
-
/// \endcode
|
|
88
|
-
///
|
|
89
|
-
/// \code{.operation}
|
|
90
|
-
/// FOR m := 0 TO dst.rows - 1
|
|
91
|
-
/// tmp := dst.row[m]
|
|
92
|
-
/// FOR k := 0 TO a.rows - 1
|
|
93
|
-
/// FOR n := 0 TO (dst.colsb / 4) - 1
|
|
94
|
-
/// tmp.fp32[n] += FP32(a.row[m].fp16[2*k+0]) * FP32(b.row[k].fp16[2*n+0])
|
|
95
|
-
/// tmp.fp32[n] += FP32(-a.row[m].fp16[2*k+1]) * FP32(b.row[k].fp16[2*n+1])
|
|
96
|
-
/// ENDFOR
|
|
97
|
-
/// ENDFOR
|
|
98
|
-
/// write_row_and_zero(dst, m, tmp, dst.colsb)
|
|
99
|
-
/// ENDFOR
|
|
100
|
-
/// zero_upper_rows(dst, dst.rows)
|
|
101
|
-
/// zero_tileconfig_start()
|
|
102
|
-
/// \endcode
|
|
103
|
-
///
|
|
104
|
-
/// This intrinsic corresponds to the \c TTCMMIMFP16PS instruction.
|
|
105
|
-
///
|
|
106
|
-
/// \param dst
|
|
107
|
-
/// The destination tile. Max size is 1024 Bytes.
|
|
108
|
-
/// \param a
|
|
109
|
-
/// The 1st source tile. Max size is 1024 Bytes.
|
|
110
|
-
/// \param b
|
|
111
|
-
/// The 2nd source tile. Max size is 1024 Bytes.
|
|
112
|
-
#define _tile_tcmmrlfp16ps(dst, a, b) \
|
|
113
|
-
__builtin_ia32_ttcmmrlfp16ps((dst), (a), (b))
|
|
114
|
-
|
|
115
|
-
/// Perform matrix conjugate transpose and multiplication of two tiles
|
|
116
|
-
/// containing complex elements and accumulate the results into a packed
|
|
117
|
-
/// single precision tile. Each dword element in input tiles \a a and \a b
|
|
118
|
-
/// is interpreted as a complex number with FP16 real part and FP16 imaginary
|
|
119
|
-
/// part.
|
|
120
|
-
/// Calculates the imaginary part of the result. For each possible combination
|
|
121
|
-
/// of (transposed column of \a a, column of \a b), it performs a set of
|
|
122
|
-
/// multiplication and accumulations on all corresponding complex numbers
|
|
123
|
-
/// (one from \a a and one from \a b). The negated imaginary part of the \a a
|
|
124
|
-
/// element is multiplied with the real part of the corresponding \a b
|
|
125
|
-
/// element, and the real part of the \a a element is multiplied with the
|
|
126
|
-
/// imaginary part of the corresponding \a b elements. The two accumulated
|
|
127
|
-
/// results are added, and then accumulated into the corresponding row and
|
|
128
|
-
/// column of \a dst.
|
|
129
|
-
///
|
|
130
|
-
/// \headerfile <x86intrin.h>
|
|
131
|
-
///
|
|
132
|
-
/// \code
|
|
133
|
-
/// void _tile_conjtcmmimfp16ps(__tile dst, __tile a, __tile b);
|
|
134
|
-
/// \endcode
|
|
135
|
-
///
|
|
136
|
-
/// \code{.operation}
|
|
137
|
-
/// FOR m := 0 TO dst.rows - 1
|
|
138
|
-
/// tmp := dst.row[m]
|
|
139
|
-
/// FOR k := 0 TO a.rows - 1
|
|
140
|
-
/// FOR n := 0 TO (dst.colsb / 4) - 1
|
|
141
|
-
/// tmp.fp32[n] += FP32(a.row[m].fp16[2*k+0]) * FP32(b.row[k].fp16[2*n+1])
|
|
142
|
-
/// tmp.fp32[n] += FP32(-a.row[m].fp16[2*k+1]) * FP32(b.row[k].fp16[2*n+0])
|
|
143
|
-
/// ENDFOR
|
|
144
|
-
/// ENDFOR
|
|
145
|
-
/// write_row_and_zero(dst, m, tmp, dst.colsb)
|
|
146
|
-
/// ENDFOR
|
|
147
|
-
/// zero_upper_rows(dst, dst.rows)
|
|
148
|
-
/// zero_tileconfig_start()
|
|
149
|
-
/// \endcode
|
|
150
|
-
///
|
|
151
|
-
/// This intrinsic corresponds to the \c TCONJTCMMIMFP16PS instruction.
|
|
152
|
-
///
|
|
153
|
-
/// \param dst
|
|
154
|
-
/// The destination tile. Max size is 1024 Bytes.
|
|
155
|
-
/// \param a
|
|
156
|
-
/// The 1st source tile. Max size is 1024 Bytes.
|
|
157
|
-
/// \param b
|
|
158
|
-
/// The 2nd source tile. Max size is 1024 Bytes.
|
|
159
|
-
#define _tile_conjtcmmimfp16ps(dst, a, b) \
|
|
160
|
-
__builtin_ia32_tconjtcmmimfp16ps((dst), (a), (b))
|
|
161
|
-
|
|
162
|
-
/// Perform conjugate transpose of an FP16-pair of complex elements from \a a
|
|
163
|
-
/// and writes the result to \a dst.
|
|
164
|
-
///
|
|
165
|
-
/// \headerfile <x86intrin.h>
|
|
166
|
-
///
|
|
167
|
-
/// \code
|
|
168
|
-
/// void _tile_conjtfp16(__tile dst, __tile a);
|
|
169
|
-
/// \endcode
|
|
170
|
-
///
|
|
171
|
-
/// \code{.operation}
|
|
172
|
-
/// FOR i := 0 TO dst.rows - 1
|
|
173
|
-
/// FOR j := 0 TO (dst.colsb / 4) - 1
|
|
174
|
-
/// tmp.fp16[2*j+0] := a.row[j].fp16[2*i+0]
|
|
175
|
-
/// tmp.fp16[2*j+1] := -a.row[j].fp16[2*i+1]
|
|
176
|
-
/// ENDFOR
|
|
177
|
-
/// write_row_and_zero(dst, i, tmp, dst.colsb)
|
|
178
|
-
/// ENDFOR
|
|
179
|
-
/// zero_upper_rows(dst, dst.rows)
|
|
180
|
-
/// zero_tileconfig_start()
|
|
181
|
-
/// \endcode
|
|
182
|
-
///
|
|
183
|
-
/// This intrinsic corresponds to the \c TCONJTFP16 instruction.
|
|
184
|
-
///
|
|
185
|
-
/// \param dst
|
|
186
|
-
/// The destination tile. Max size is 1024 Bytes.
|
|
187
|
-
/// \param a
|
|
188
|
-
/// The source tile. Max size is 1024 Bytes.
|
|
189
|
-
#define _tile_conjtfp16(dst, a) __builtin_ia32_tconjtfp16((dst), (a))
|
|
190
|
-
|
|
191
|
-
static __inline__ _tile1024i __DEFAULT_FN_ATTRS _tile_tcmmimfp16ps_internal(
|
|
192
|
-
unsigned short m, unsigned short n, unsigned short k, _tile1024i dst,
|
|
193
|
-
_tile1024i src1, _tile1024i src2) {
|
|
194
|
-
return __builtin_ia32_ttcmmimfp16ps_internal(m, n, k, dst, src1, src2);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
static __inline__ _tile1024i __DEFAULT_FN_ATTRS _tile_tcmmrlfp16ps_internal(
|
|
198
|
-
unsigned short m, unsigned short n, unsigned short k, _tile1024i dst,
|
|
199
|
-
_tile1024i src1, _tile1024i src2) {
|
|
200
|
-
return __builtin_ia32_ttcmmrlfp16ps_internal(m, n, k, dst, src1, src2);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
static __inline__ _tile1024i __DEFAULT_FN_ATTRS _tile_conjtcmmimfp16ps_internal(
|
|
204
|
-
unsigned short m, unsigned short n, unsigned short k, _tile1024i dst,
|
|
205
|
-
_tile1024i src1, _tile1024i src2) {
|
|
206
|
-
return __builtin_ia32_tconjtcmmimfp16ps_internal(m, n, k, dst, src1, src2);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
static __inline__ _tile1024i __DEFAULT_FN_ATTRS
|
|
210
|
-
_tile_conjtfp16_internal(unsigned short m, unsigned short n, _tile1024i src) {
|
|
211
|
-
return __builtin_ia32_tconjtfp16_internal(m, n, src);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
/// Perform matrix multiplication of two tiles containing complex elements and
|
|
215
|
-
/// accumulate the results into a packed single precision tile. Each dword
|
|
216
|
-
/// element in input tiles src0 and src1 is interpreted as a complex number
|
|
217
|
-
/// with FP16 real part and FP16 imaginary part.
|
|
218
|
-
/// This function calculates the imaginary part of the result.
|
|
219
|
-
///
|
|
220
|
-
/// \headerfile <immintrin.h>
|
|
221
|
-
///
|
|
222
|
-
/// This intrinsic corresponds to the <c> TTCMMIMFP16PS </c> instruction.
|
|
223
|
-
///
|
|
224
|
-
/// \param dst
|
|
225
|
-
/// The destination tile. Max size is 1024 Bytes.
|
|
226
|
-
/// \param src0
|
|
227
|
-
/// The 1st source tile. Max size is 1024 Bytes.
|
|
228
|
-
/// \param src1
|
|
229
|
-
/// The 2nd source tile. Max size is 1024 Bytes.
|
|
230
|
-
__DEFAULT_FN_ATTRS
|
|
231
|
-
static void __tile_tcmmimfp16ps(__tile1024i *dst, __tile1024i src0,
|
|
232
|
-
__tile1024i src1) {
|
|
233
|
-
dst->tile = _tile_tcmmimfp16ps_internal(src0.row, src1.col, src0.col,
|
|
234
|
-
dst->tile, src0.tile, src1.tile);
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
/// Perform matrix multiplication of two tiles containing complex elements and
|
|
238
|
-
/// accumulate the results into a packed single precision tile. Each dword
|
|
239
|
-
/// element in input tiles src0 and src1 is interpreted as a complex number
|
|
240
|
-
/// with FP16 real part and FP16 imaginary part.
|
|
241
|
-
/// This function calculates the real part of the result.
|
|
242
|
-
///
|
|
243
|
-
/// \headerfile <immintrin.h>
|
|
244
|
-
///
|
|
245
|
-
/// This intrinsic corresponds to the <c> TTCMMRLFP16PS </c> instruction.
|
|
246
|
-
///
|
|
247
|
-
/// \param dst
|
|
248
|
-
/// The destination tile. Max size is 1024 Bytes.
|
|
249
|
-
/// \param src0
|
|
250
|
-
/// The 1st source tile. Max size is 1024 Bytes.
|
|
251
|
-
/// \param src1
|
|
252
|
-
/// The 2nd source tile. Max size is 1024 Bytes.
|
|
253
|
-
__DEFAULT_FN_ATTRS
|
|
254
|
-
static void __tile_tcmmrlfp16ps(__tile1024i *dst, __tile1024i src0,
|
|
255
|
-
__tile1024i src1) {
|
|
256
|
-
dst->tile = _tile_tcmmrlfp16ps_internal(src0.row, src1.col, src0.col,
|
|
257
|
-
dst->tile, src0.tile, src1.tile);
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
/// Perform matrix conjugate transpose and multiplication of two tiles
|
|
261
|
-
/// containing complex elements and accumulate the results into a packed
|
|
262
|
-
/// single precision tile. Each dword element in input tiles src0 and src1
|
|
263
|
-
/// is interpreted as a complex number with FP16 real part and FP16 imaginary
|
|
264
|
-
/// part.
|
|
265
|
-
/// This function calculates the imaginary part of the result.
|
|
266
|
-
///
|
|
267
|
-
/// \headerfile <immintrin.h>
|
|
268
|
-
///
|
|
269
|
-
/// This intrinsic corresponds to the <c> TCONJTCMMIMFP16PS </c> instruction.
|
|
270
|
-
///
|
|
271
|
-
/// \param dst
|
|
272
|
-
/// The destination tile. Max size is 1024 Bytes.
|
|
273
|
-
/// \param src0
|
|
274
|
-
/// The 1st source tile. Max size is 1024 Bytes.
|
|
275
|
-
/// \param src1
|
|
276
|
-
/// The 2nd source tile. Max size is 1024 Bytes.
|
|
277
|
-
__DEFAULT_FN_ATTRS
|
|
278
|
-
static void __tile_conjtcmmimfp16ps(__tile1024i *dst, __tile1024i src0,
|
|
279
|
-
__tile1024i src1) {
|
|
280
|
-
dst->tile = _tile_conjtcmmimfp16ps_internal(src0.row, src1.col, src0.col,
|
|
281
|
-
dst->tile, src0.tile, src1.tile);
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
/// Perform conjugate transpose of an FP16-pair of complex elements from src and
|
|
285
|
-
/// writes the result to dst.
|
|
286
|
-
///
|
|
287
|
-
/// \headerfile <immintrin.h>
|
|
288
|
-
///
|
|
289
|
-
/// This intrinsic corresponds to the <c> TCONJTFP16 </c> instruction.
|
|
290
|
-
///
|
|
291
|
-
/// \param dst
|
|
292
|
-
/// The destination tile. Max size is 1024 Bytes.
|
|
293
|
-
/// \param src
|
|
294
|
-
/// The source tile. Max size is 1024 Bytes.
|
|
295
|
-
__DEFAULT_FN_ATTRS
|
|
296
|
-
static void __tile_conjtfp16(__tile1024i *dst, __tile1024i src) {
|
|
297
|
-
dst->tile = _tile_conjtfp16_internal(src.row, src.col, src.tile);
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
#undef __DEFAULT_FN_ATTRS
|
|
301
|
-
|
|
302
|
-
#endif // __x86_64__
|
|
303
|
-
#endif // __AMX_COMPLEXTRANSPOSEINTRIN_H
|