@cpp-linter/clang-tidy-win32-x64 20.1.0 → 22.1.8
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/22/include/__clang_cuda_complex_builtins.h +229 -0
- package/lib/clang/{20 → 22}/include/__clang_cuda_device_functions.h +1 -1
- package/lib/clang/{20 → 22}/include/__clang_cuda_intrinsics.h +295 -8
- package/lib/clang/{20 → 22}/include/__clang_cuda_runtime_wrapper.h +19 -0
- package/lib/clang/{20 → 22}/include/__clang_cuda_texture_intrinsics.h +437 -2
- package/lib/clang/{20 → 22}/include/__clang_hip_cmath.h +9 -8
- package/lib/clang/{20 → 22}/include/__clang_hip_libdevice_declares.h +29 -42
- package/lib/clang/{20 → 22}/include/__clang_hip_math.h +107 -31
- package/lib/clang/{20 → 22}/include/__clang_hip_runtime_wrapper.h +6 -0
- package/lib/clang/22/include/__clang_spirv_builtins.h +217 -0
- package/lib/clang/{20/include/float.h → 22/include/__float_float.h} +14 -34
- package/lib/clang/22/include/__float_header_macro.h +12 -0
- package/lib/clang/22/include/__float_infinity_nan.h +20 -0
- package/lib/clang/{20 → 22}/include/__stdarg_va_arg.h +2 -2
- package/lib/clang/{20 → 22}/include/altivec.h +82 -79
- package/lib/clang/{20 → 22}/include/amdgpuintrin.h +23 -26
- package/lib/clang/22/include/amo.h +131 -0
- package/lib/clang/{20 → 22}/include/amxavx512intrin.h +216 -2
- package/lib/clang/{20 → 22}/include/amxcomplexintrin.h +4 -6
- package/lib/clang/{20 → 22}/include/amxintrin.h +0 -2
- package/lib/clang/22/include/andes_vector.h +16 -0
- package/lib/clang/{20 → 22}/include/arm_acle.h +48 -68
- package/lib/clang/{20 → 22}/include/arm_fp16.h +89 -89
- package/lib/clang/{20 → 22}/include/arm_neon.h +22413 -19759
- package/lib/clang/{20 → 22}/include/arm_sme.h +702 -8
- package/lib/clang/{20 → 22}/include/arm_sve.h +6346 -5626
- package/lib/clang/{20 → 22}/include/avx10_2_512bf16intrin.h +19 -12
- package/lib/clang/{20 → 22}/include/avx10_2_512convertintrin.h +25 -23
- package/lib/clang/{20 → 22}/include/avx10_2_512niintrin.h +31 -31
- package/lib/clang/{20 → 22}/include/avx10_2_512satcvtdsintrin.h +29 -25
- package/lib/clang/{20 → 22}/include/avx10_2_512satcvtintrin.h +84 -84
- package/lib/clang/{20 → 22}/include/avx10_2bf16intrin.h +54 -45
- package/lib/clang/22/include/avx10_2convertintrin.h +3257 -0
- package/lib/clang/{20 → 22}/include/avx10_2copyintrin.h +1 -1
- package/lib/clang/{20 → 22}/include/avx10_2minmaxintrin.h +18 -63
- package/lib/clang/22/include/avx10_2niintrin.h +409 -0
- package/lib/clang/22/include/avx10_2satcvtdsintrin.h +376 -0
- package/lib/clang/22/include/avx10_2satcvtintrin.h +312 -0
- package/lib/clang/{20 → 22}/include/avx2intrin.h +275 -377
- package/lib/clang/{20 → 22}/include/avx512bf16intrin.h +25 -16
- package/lib/clang/{20 → 22}/include/avx512bitalgintrin.h +19 -30
- package/lib/clang/{20 → 22}/include/avx512bwintrin.h +386 -505
- package/lib/clang/22/include/avx512cdintrin.h +112 -0
- package/lib/clang/{20 → 22}/include/avx512dqintrin.h +132 -161
- package/lib/clang/{20 → 22}/include/avx512fintrin.h +1015 -1424
- package/lib/clang/{20 → 22}/include/avx512fp16intrin.h +114 -111
- package/lib/clang/22/include/avx512ifmaintrin.h +68 -0
- package/lib/clang/22/include/avx512ifmavlintrin.h +138 -0
- package/lib/clang/{20 → 22}/include/avx512vbmi2intrin.h +43 -32
- package/lib/clang/{20 → 22}/include/avx512vbmiintrin.h +19 -27
- package/lib/clang/{20 → 22}/include/avx512vbmivlintrin.h +35 -49
- package/lib/clang/{20 → 22}/include/avx512vlbf16intrin.h +32 -22
- package/lib/clang/{20 → 22}/include/avx512vlbitalgintrin.h +37 -53
- package/lib/clang/{20 → 22}/include/avx512vlbwintrin.h +470 -573
- package/lib/clang/22/include/avx512vlcdintrin.h +202 -0
- package/lib/clang/{20 → 22}/include/avx512vldqintrin.h +110 -127
- package/lib/clang/{20 → 22}/include/avx512vlfp16intrin.h +130 -111
- package/lib/clang/{20 → 22}/include/avx512vlintrin.h +945 -1299
- package/lib/clang/{20 → 22}/include/avx512vlvbmi2intrin.h +78 -63
- package/lib/clang/{20 → 22}/include/avx512vlvnniintrin.h +21 -18
- package/lib/clang/{20 → 22}/include/avx512vlvp2intersectintrin.h +2 -2
- package/lib/clang/{20 → 22}/include/avx512vnniintrin.h +10 -10
- package/lib/clang/{20 → 22}/include/avx512vp2intersectintrin.h +1 -2
- package/lib/clang/{20 → 22}/include/avx512vpopcntdqintrin.h +8 -10
- package/lib/clang/{20 → 22}/include/avx512vpopcntdqvlintrin.h +17 -15
- package/lib/clang/{20 → 22}/include/avxifmaintrin.h +16 -0
- package/lib/clang/{20 → 22}/include/avxintrin.h +165 -241
- package/lib/clang/{20 → 22}/include/avxvnniint16intrin.h +118 -99
- package/lib/clang/{20 → 22}/include/avxvnniint8intrin.h +56 -32
- package/lib/clang/{20 → 22}/include/avxvnniintrin.h +16 -8
- package/lib/clang/{20 → 22}/include/bmiintrin.h +0 -4
- package/lib/clang/{20 → 22}/include/cpuid.h +125 -26
- package/lib/clang/22/include/cuda_wrappers/__utility/declval.h +28 -0
- package/lib/clang/22/include/cuda_wrappers/bits/c++config.h +61 -0
- package/lib/clang/{20 → 22}/include/cuda_wrappers/cmath +0 -50
- package/lib/clang/{20 → 22}/include/emmintrin.h +168 -168
- package/lib/clang/{20 → 22}/include/f16cintrin.h +23 -9
- package/lib/clang/22/include/float.h +48 -0
- package/lib/clang/22/include/fma4intrin.h +220 -0
- package/lib/clang/{20 → 22}/include/fmaintrin.h +96 -66
- package/lib/clang/{20 → 22}/include/gfniintrin.h +21 -16
- package/lib/clang/{20 → 22}/include/gpuintrin.h +117 -11
- package/lib/clang/{20 → 22}/include/hexagon_types.h +23 -20
- package/lib/clang/{20/include/hlsl/hlsl_intrinsics.h → 22/include/hlsl/hlsl_alias_intrinsics.h} +643 -296
- package/lib/clang/22/include/hlsl/hlsl_basic_types.h +370 -0
- package/lib/clang/22/include/hlsl/hlsl_compat_overloads.h +520 -0
- package/lib/clang/22/include/hlsl/hlsl_detail.h +54 -0
- package/lib/clang/22/include/hlsl/hlsl_intrinsic_helpers.h +190 -0
- package/lib/clang/22/include/hlsl/hlsl_intrinsics.h +794 -0
- package/lib/clang/22/include/hlsl/hlsl_spirv.h +28 -0
- package/lib/clang/{20 → 22}/include/hlsl.h +12 -0
- package/lib/clang/{20 → 22}/include/hvx_hexagon_protos.h +649 -860
- package/lib/clang/{20 → 22}/include/immintrin.h +0 -236
- package/lib/clang/{20 → 22}/include/intrin.h +25 -4
- package/lib/clang/{20 → 22}/include/keylockerintrin.h +0 -9
- package/lib/clang/{20 → 22}/include/lasxintrin.h +113 -0
- package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/assert.h +3 -5
- package/lib/clang/22/include/llvm_libc_wrappers/ctype.h +28 -0
- package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/inttypes.h +3 -5
- package/lib/clang/22/include/llvm_libc_wrappers/stdio.h +52 -0
- package/lib/clang/22/include/llvm_libc_wrappers/stdlib.h +32 -0
- package/lib/clang/22/include/llvm_libc_wrappers/string.h +28 -0
- package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/time.h +4 -10
- package/lib/clang/{20 → 22}/include/lzcntintrin.h +6 -4
- package/lib/clang/{20 → 22}/include/mmintrin.h +188 -257
- package/lib/clang/{20 → 22}/include/module.modulemap +36 -4
- package/lib/clang/{20 → 22}/include/movrs_avx10_2_512intrin.h +2 -2
- package/lib/clang/{20 → 22}/include/movrs_avx10_2intrin.h +4 -4
- package/lib/clang/{20 → 22}/include/movrsintrin.h +1 -1
- package/lib/clang/{20 → 22}/include/nvptxintrin.h +48 -31
- package/lib/clang/{20 → 22}/include/opencl-c-base.h +18 -93
- package/lib/clang/{20 → 22}/include/opencl-c.h +360 -55
- package/lib/clang/{20 → 22}/include/pmmintrin.h +12 -24
- package/lib/clang/{20 → 22}/include/prfchwintrin.h +10 -13
- package/lib/clang/{20 → 22}/include/ptrauth.h +73 -2
- package/lib/clang/{20 → 22}/include/riscv_corev_alu.h +4 -4
- package/lib/clang/22/include/riscv_mips.h +34 -0
- package/lib/clang/22/include/riscv_nds.h +89 -0
- package/lib/clang/{20 → 22}/include/riscv_vector.h +0 -4
- package/lib/clang/{20 → 22}/include/shaintrin.h +3 -2
- package/lib/clang/{20 → 22}/include/sifive_vector.h +58 -2
- package/lib/clang/{20 → 22}/include/sm4evexintrin.h +2 -2
- package/lib/clang/{20 → 22}/include/smmintrin.h +77 -59
- package/lib/clang/22/include/spirvintrin.h +194 -0
- package/lib/clang/22/include/stdcountof.h +15 -0
- package/lib/clang/22/include/stddefer.h +19 -0
- package/lib/clang/{20 → 22}/include/stdint.h +18 -129
- package/lib/clang/{20 → 22}/include/tmmintrin.h +116 -147
- package/lib/clang/{20 → 22}/include/vaesintrin.h +1 -2
- package/lib/clang/{20 → 22}/include/vecintrin.h +5 -0
- package/lib/clang/{20 → 22}/include/x86gprintrin.h +0 -14
- package/lib/clang/{20 → 22}/include/x86intrin.h +0 -18
- package/lib/clang/{20 → 22}/include/xmmintrin.h +47 -72
- package/lib/clang/{20 → 22}/include/xopintrin.h +20 -10
- package/package.json +6 -6
- package/lib/clang/20/include/__clang_cuda_complex_builtins.h +0 -285
- package/lib/clang/20/include/amxbf16transposeintrin.h +0 -94
- package/lib/clang/20/include/amxcomplextransposeintrin.h +0 -303
- package/lib/clang/20/include/amxfp16transposeintrin.h +0 -94
- package/lib/clang/20/include/amxmovrstransposeintrin.h +0 -200
- package/lib/clang/20/include/amxtf32transposeintrin.h +0 -105
- package/lib/clang/20/include/amxtransposeintrin.h +0 -248
- package/lib/clang/20/include/avx10_2convertintrin.h +0 -589
- package/lib/clang/20/include/avx10_2niintrin.h +0 -2075
- package/lib/clang/20/include/avx10_2satcvtdsintrin.h +0 -496
- package/lib/clang/20/include/avx10_2satcvtintrin.h +0 -444
- package/lib/clang/20/include/avx512cdintrin.h +0 -125
- package/lib/clang/20/include/avx512ifmaintrin.h +0 -70
- package/lib/clang/20/include/avx512ifmavlintrin.h +0 -111
- package/lib/clang/20/include/avx512vlcdintrin.h +0 -230
- package/lib/clang/20/include/fma4intrin.h +0 -218
- package/lib/clang/20/include/hlsl/hlsl_basic_types.h +0 -120
- package/lib/clang/20/include/hlsl/hlsl_detail.h +0 -84
- package/lib/clang/20/include/llvm_libc_wrappers/ctype.h +0 -140
- package/lib/clang/20/include/llvm_libc_wrappers/stdio.h +0 -80
- package/lib/clang/20/include/llvm_libc_wrappers/stdlib.h +0 -53
- package/lib/clang/20/include/llvm_libc_wrappers/string.h +0 -96
- /package/lib/clang/{20 → 22}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{20 → 22}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{20 → 22}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{20 → 22}/include/__clang_cuda_math.h +0 -0
- /package/lib/clang/{20 → 22}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{20 → 22}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stdarg___gnuc_va_list.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stdarg___va_copy.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stdarg_header_macro.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stdarg_va_copy.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stdarg_va_list.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stddef_header_macro.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stddef_null.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stddef_nullptr_t.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stddef_offsetof.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stddef_ptrdiff_t.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stddef_rsize_t.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stddef_size_t.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stddef_unreachable.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stddef_wchar_t.h +0 -0
- /package/lib/clang/{20 → 22}/include/__stddef_wint_t.h +0 -0
- /package/lib/clang/{20 → 22}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{20 → 22}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{20 → 22}/include/adcintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/adxintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ammintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/amxfp16intrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/amxfp8intrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/amxmovrsintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/amxtf32intrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/arm64intr.h +0 -0
- /package/lib/clang/{20 → 22}/include/arm_bf16.h +0 -0
- /package/lib/clang/{20 → 22}/include/arm_cde.h +0 -0
- /package/lib/clang/{20 → 22}/include/arm_cmse.h +0 -0
- /package/lib/clang/{20 → 22}/include/arm_mve.h +0 -0
- /package/lib/clang/{20 → 22}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{20 → 22}/include/arm_vector_types.h +0 -0
- /package/lib/clang/{20 → 22}/include/armintr.h +0 -0
- /package/lib/clang/{20 → 22}/include/avx10_2_512minmaxintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/bmi2intrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/builtins.h +0 -0
- /package/lib/clang/{20 → 22}/include/cet.h +0 -0
- /package/lib/clang/{20 → 22}/include/cetintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/clwbintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/clzerointrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/cmpccxaddintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/crc32intrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{20 → 22}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{20 → 22}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{20 → 22}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{20 → 22}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{20 → 22}/include/hresetintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/htmintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ia32intrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/intrin0.h +0 -0
- /package/lib/clang/{20 → 22}/include/inttypes.h +0 -0
- /package/lib/clang/{20 → 22}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/iso646.h +0 -0
- /package/lib/clang/{20 → 22}/include/larchintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/limits.h +0 -0
- /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload.h +0 -0
- /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload_device.h +0 -0
- /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload_host.h +0 -0
- /package/lib/clang/{20 → 22}/include/lsxintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/lwpintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/mm3dnow.h +0 -0
- /package/lib/clang/{20 → 22}/include/mm_malloc.h +0 -0
- /package/lib/clang/{20 → 22}/include/movdirintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/msa.h +0 -0
- /package/lib/clang/{20 → 22}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/nmmintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
- /package/lib/clang/{20 → 22}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{20 → 22}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{20 → 22}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{20 → 22}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/pkuintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/popcntintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{20 → 22}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ppc_wrappers/nmmintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ppc_wrappers/smmintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/raointintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/riscv_bitmanip.h +0 -0
- /package/lib/clang/{20 → 22}/include/riscv_crypto.h +0 -0
- /package/lib/clang/{20 → 22}/include/riscv_ntlh.h +0 -0
- /package/lib/clang/{20 → 22}/include/rtmintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/s390intrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/serializeintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/sgxintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/sha512intrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/sm3intrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/sm4intrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/stdalign.h +0 -0
- /package/lib/clang/{20 → 22}/include/stdarg.h +0 -0
- /package/lib/clang/{20 → 22}/include/stdatomic.h +0 -0
- /package/lib/clang/{20 → 22}/include/stdbool.h +0 -0
- /package/lib/clang/{20 → 22}/include/stdckdint.h +0 -0
- /package/lib/clang/{20 → 22}/include/stddef.h +0 -0
- /package/lib/clang/{20 → 22}/include/stdnoreturn.h +0 -0
- /package/lib/clang/{20 → 22}/include/tbmintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/tgmath.h +0 -0
- /package/lib/clang/{20 → 22}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/uintrintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/unwind.h +0 -0
- /package/lib/clang/{20 → 22}/include/usermsrintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/vadefs.h +0 -0
- /package/lib/clang/{20 → 22}/include/varargs.h +0 -0
- /package/lib/clang/{20 → 22}/include/velintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{20 → 22}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{20 → 22}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/wasm_simd128.h +0 -0
- /package/lib/clang/{20 → 22}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/wmmintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/xtestintrin.h +0 -0
- /package/lib/clang/{20 → 22}/include/yvals_core.h +0 -0
- /package/lib/clang/{20 → 22}/include/zos_wrappers/builtins.h +0 -0
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
#pragma push_macro("__Args")
|
|
29
29
|
#pragma push_macro("__ID")
|
|
30
30
|
#pragma push_macro("__IDV")
|
|
31
|
+
#pragma push_macro("__OP_TYPE_SURFACE")
|
|
31
32
|
#pragma push_macro("__IMPL_2DGATHER")
|
|
32
33
|
#pragma push_macro("__IMPL_ALIAS")
|
|
33
34
|
#pragma push_macro("__IMPL_ALIASI")
|
|
@@ -45,6 +46,63 @@
|
|
|
45
46
|
#pragma push_macro("__IMPL_SI")
|
|
46
47
|
#pragma push_macro("__L")
|
|
47
48
|
#pragma push_macro("__STRIP_PARENS")
|
|
49
|
+
#pragma push_macro("__SURF_WRITE_V2")
|
|
50
|
+
#pragma push_macro("__SW_ASM_ARGS")
|
|
51
|
+
#pragma push_macro("__SW_ASM_ARGS1")
|
|
52
|
+
#pragma push_macro("__SW_ASM_ARGS2")
|
|
53
|
+
#pragma push_macro("__SW_ASM_ARGS4")
|
|
54
|
+
#pragma push_macro("__SURF_WRITE_V2")
|
|
55
|
+
#pragma push_macro("__SURF_READ_V2")
|
|
56
|
+
#pragma push_macro("__SW_ASM_ARGS")
|
|
57
|
+
#pragma push_macro("__SW_ASM_ARGS1")
|
|
58
|
+
#pragma push_macro("__SW_ASM_ARGS2")
|
|
59
|
+
#pragma push_macro("__SW_ASM_ARGS4")
|
|
60
|
+
#pragma push_macro("__SURF_READ1D");
|
|
61
|
+
#pragma push_macro("__SURF_READ2D");
|
|
62
|
+
#pragma push_macro("__SURF_READ3D");
|
|
63
|
+
#pragma push_macro("__SURF_READ1DLAYERED");
|
|
64
|
+
#pragma push_macro("__SURF_READ2DLAYERED");
|
|
65
|
+
#pragma push_macro("__SURF_READCUBEMAP");
|
|
66
|
+
#pragma push_macro("__SURF_READCUBEMAPLAYERED");
|
|
67
|
+
#pragma push_macro("__1DV1");
|
|
68
|
+
#pragma push_macro("__1DV2");
|
|
69
|
+
#pragma push_macro("__1DV4");
|
|
70
|
+
#pragma push_macro("__2DV1");
|
|
71
|
+
#pragma push_macro("__2DV2");
|
|
72
|
+
#pragma push_macro("__2DV4");
|
|
73
|
+
#pragma push_macro("__1DLAYERV1");
|
|
74
|
+
#pragma push_macro("__1DLAYERV2");
|
|
75
|
+
#pragma push_macro("__1DLAYERV4");
|
|
76
|
+
#pragma push_macro("__3DV1");
|
|
77
|
+
#pragma push_macro("__3DV2");
|
|
78
|
+
#pragma push_macro("__3DV4");
|
|
79
|
+
#pragma push_macro("__2DLAYERV1");
|
|
80
|
+
#pragma push_macro("__2DLAYERV2");
|
|
81
|
+
#pragma push_macro("__2DLAYERV4");
|
|
82
|
+
#pragma push_macro("__CUBEMAPV1");
|
|
83
|
+
#pragma push_macro("__CUBEMAPV2");
|
|
84
|
+
#pragma push_macro("__CUBEMAPV4");
|
|
85
|
+
#pragma push_macro("__CUBEMAPLAYERV1");
|
|
86
|
+
#pragma push_macro("__CUBEMAPLAYERV2");
|
|
87
|
+
#pragma push_macro("__CUBEMAPLAYERV4");
|
|
88
|
+
#pragma push_macro("__SURF_READXD_ALL");
|
|
89
|
+
#pragma push_macro("__SURF_WRITE1D_V2");
|
|
90
|
+
#pragma push_macro("__SURF_WRITE1DLAYERED_V2");
|
|
91
|
+
#pragma push_macro("__SURF_WRITE2D_V2");
|
|
92
|
+
#pragma push_macro("__SURF_WRITE2DLAYERED_V2");
|
|
93
|
+
#pragma push_macro("__SURF_WRITE3D_V2");
|
|
94
|
+
#pragma push_macro("__SURF_CUBEMAPWRITE_V2");
|
|
95
|
+
#pragma push_macro("__SURF_CUBEMAPLAYEREDWRITE_V2");
|
|
96
|
+
#pragma push_macro("__SURF_WRITEXD_V2_ALL");
|
|
97
|
+
#pragma push_macro("__1DV1");
|
|
98
|
+
#pragma push_macro("__1DV2");
|
|
99
|
+
#pragma push_macro("__1DV4");
|
|
100
|
+
#pragma push_macro("__2DV1");
|
|
101
|
+
#pragma push_macro("__2DV2");
|
|
102
|
+
#pragma push_macro("__2DV4");
|
|
103
|
+
#pragma push_macro("__3DV1");
|
|
104
|
+
#pragma push_macro("__3DV2");
|
|
105
|
+
#pragma push_macro("__3DV4");
|
|
48
106
|
|
|
49
107
|
// Put all functions into anonymous namespace so they have internal linkage.
|
|
50
108
|
// The device-only function here must be internal in order to avoid ODR
|
|
@@ -186,6 +244,21 @@ template <class __T> struct __TypeInfoT {
|
|
|
186
244
|
using __fetch_t = typename __TypeInfoT<__base_t>::__fetch_t;
|
|
187
245
|
};
|
|
188
246
|
|
|
247
|
+
// Tag structs to distinguish operation types
|
|
248
|
+
struct __texture_op_tag {};
|
|
249
|
+
struct __surface_op_tag {};
|
|
250
|
+
|
|
251
|
+
// Template specialization to determine operation type based on tag value
|
|
252
|
+
template <class __op> struct __op_type_traits {
|
|
253
|
+
using type = __texture_op_tag;
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
// Specialize for known surface operation tags
|
|
257
|
+
#define __OP_TYPE_SURFACE(__op) \
|
|
258
|
+
template <> struct __op_type_traits<__op> { \
|
|
259
|
+
using type = __surface_op_tag; \
|
|
260
|
+
}
|
|
261
|
+
|
|
189
262
|
// Classes that implement specific texture ops.
|
|
190
263
|
template <class __op> struct __tex_fetch_v4;
|
|
191
264
|
|
|
@@ -649,6 +722,302 @@ template <class __DestT, class __SrcT> struct __convert {
|
|
|
649
722
|
}
|
|
650
723
|
};
|
|
651
724
|
|
|
725
|
+
// There are a couple of layers here. First, __op_type_traits is used to
|
|
726
|
+
// dispatch to either surface write calls, or to the texture read calls.
|
|
727
|
+
//
|
|
728
|
+
// Then, that dispatches to __tex_fetch_impl below, which dispatches by both tag
|
|
729
|
+
// and datatype to the appropriate
|
|
730
|
+
// __surf_read_write_v2.
|
|
731
|
+
// TODO(austin): Do the reads too.
|
|
732
|
+
|
|
733
|
+
// Mark which of the ids we should be dispatching to surface write calls.
|
|
734
|
+
__OP_TYPE_SURFACE(__ID("__isurf1Dread"));
|
|
735
|
+
__OP_TYPE_SURFACE(__ID("__isurf2Dread"));
|
|
736
|
+
__OP_TYPE_SURFACE(__ID("__isurf3Dread"));
|
|
737
|
+
__OP_TYPE_SURFACE(__ID("__isurf1DLayeredread"));
|
|
738
|
+
__OP_TYPE_SURFACE(__ID("__isurf2DLayeredread"));
|
|
739
|
+
__OP_TYPE_SURFACE(__ID("__isurfCubemapread"));
|
|
740
|
+
__OP_TYPE_SURFACE(__ID("__isurfCubemapLayeredread"));
|
|
741
|
+
__OP_TYPE_SURFACE(__ID("__isurf1Dwrite_v2"));
|
|
742
|
+
__OP_TYPE_SURFACE(__ID("__isurf2Dwrite_v2"));
|
|
743
|
+
__OP_TYPE_SURFACE(__ID("__isurf3Dwrite_v2"));
|
|
744
|
+
__OP_TYPE_SURFACE(__ID("__isurf1DLayeredwrite_v2"));
|
|
745
|
+
__OP_TYPE_SURFACE(__ID("__isurf2DLayeredwrite_v2"));
|
|
746
|
+
__OP_TYPE_SURFACE(__ID("__isurfCubemapwrite_v2"));
|
|
747
|
+
__OP_TYPE_SURFACE(__ID("__isurfCubemapLayeredwrite_v2"));
|
|
748
|
+
|
|
749
|
+
template <class __op, typename __type> struct __surf_read_write_v2;
|
|
750
|
+
|
|
751
|
+
// For the various write calls, we need to be able to generate variations with
|
|
752
|
+
// different IDs, different numbers of arguments, and different numbers of
|
|
753
|
+
// outputs.
|
|
754
|
+
|
|
755
|
+
#define __SURF_WRITE_V2(__op, __asm_dim, __asmtype, __type, __index_op_args, \
|
|
756
|
+
__index_args, __index_asm_args, __asm_op_args, \
|
|
757
|
+
__asm_args) \
|
|
758
|
+
template <> struct __surf_read_write_v2<__op, __type> { \
|
|
759
|
+
static __device__ void __run(__type *__ptr, cudaSurfaceObject_t obj, \
|
|
760
|
+
__L(__index_args), \
|
|
761
|
+
cudaSurfaceBoundaryMode mode) { \
|
|
762
|
+
switch (mode) { \
|
|
763
|
+
case cudaBoundaryModeZero: \
|
|
764
|
+
asm volatile("sust.b." __asm_dim "." __asmtype \
|
|
765
|
+
".zero [%0, " __index_op_args "], " __asm_op_args ";" \
|
|
766
|
+
: \
|
|
767
|
+
: "l"(obj), __L(__index_asm_args), __L(__asm_args)); \
|
|
768
|
+
break; \
|
|
769
|
+
case cudaBoundaryModeClamp: \
|
|
770
|
+
asm volatile("sust.b." __asm_dim "." __asmtype \
|
|
771
|
+
".clamp [%0, " __index_op_args "], " __asm_op_args ";" \
|
|
772
|
+
: \
|
|
773
|
+
: "l"(obj), __L(__index_asm_args), __L(__asm_args)); \
|
|
774
|
+
break; \
|
|
775
|
+
case cudaBoundaryModeTrap: \
|
|
776
|
+
asm volatile("sust.b." __asm_dim "." __asmtype \
|
|
777
|
+
".trap [%0, " __index_op_args "], " __asm_op_args ";" \
|
|
778
|
+
: \
|
|
779
|
+
: "l"(obj), __L(__index_asm_args), __L(__asm_args)); \
|
|
780
|
+
break; \
|
|
781
|
+
} \
|
|
782
|
+
} \
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
#define __SURF_READ_V2(__op, __asm_dim, __asmtype, __type, __asm_op_args, \
|
|
786
|
+
__asm_args, __index_args, __index_asm_args) \
|
|
787
|
+
template <> struct __surf_read_write_v2<__op, __type> { \
|
|
788
|
+
static __device__ void __run(__type *__ptr, cudaSurfaceObject_t obj, \
|
|
789
|
+
__L(__index_args), \
|
|
790
|
+
cudaSurfaceBoundaryMode mode) { \
|
|
791
|
+
switch (mode) { \
|
|
792
|
+
case cudaBoundaryModeZero: \
|
|
793
|
+
asm("suld.b." __asm_dim "." __asmtype ".zero " __asm_op_args ";" \
|
|
794
|
+
: __L(__asm_args) \
|
|
795
|
+
: "l"(obj), __L(__index_asm_args)); \
|
|
796
|
+
break; \
|
|
797
|
+
case cudaBoundaryModeClamp: \
|
|
798
|
+
asm("suld.b." __asm_dim "." __asmtype ".clamp " __asm_op_args ";" \
|
|
799
|
+
: __L(__asm_args) \
|
|
800
|
+
: "l"(obj), __L(__index_asm_args)); \
|
|
801
|
+
break; \
|
|
802
|
+
case cudaBoundaryModeTrap: \
|
|
803
|
+
asm("suld.b." __asm_dim "." __asmtype ".trap " __asm_op_args ";" \
|
|
804
|
+
: __L(__asm_args) \
|
|
805
|
+
: "l"(obj), __L(__index_asm_args)); \
|
|
806
|
+
break; \
|
|
807
|
+
} \
|
|
808
|
+
} \
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
// Amazing, the read side should follow the same flow, I just need to change the
|
|
812
|
+
// generated assembly calls, and the rest should fall in line.
|
|
813
|
+
|
|
814
|
+
#define __SW_ASM_ARGS(__type) (__type(*__ptr))
|
|
815
|
+
#define __SW_ASM_ARGS1(__type) (__type(__ptr->x))
|
|
816
|
+
#define __SW_ASM_ARGS2(__type) (__type(__ptr->x), __type(__ptr->y))
|
|
817
|
+
#define __SW_ASM_ARGS4(__type) \
|
|
818
|
+
(__type(__ptr->x), __type(__ptr->y), __type(__ptr->z), __type(__ptr->w))
|
|
819
|
+
|
|
820
|
+
#define __SURF_READ1D(__asmtype, __type, __asm_op_args, __asm_args) \
|
|
821
|
+
__SURF_READ_V2(__ID("__isurf1Dread"), "1d", __asmtype, __type, \
|
|
822
|
+
__asm_op_args, __asm_args, (int x), ("r"(x)))
|
|
823
|
+
#define __SURF_READ2D(__asmtype, __type, __asm_op_args, __asm_args) \
|
|
824
|
+
__SURF_READ_V2(__ID("__isurf2Dread"), "2d", __asmtype, __type, \
|
|
825
|
+
__asm_op_args, __asm_args, (int x, int y), ("r"(x), "r"(y)))
|
|
826
|
+
#define __SURF_READ3D(__asmtype, __type, __asm_op_args, __asm_args) \
|
|
827
|
+
__SURF_READ_V2(__ID("__isurf3Dread"), "3d", __asmtype, __type, \
|
|
828
|
+
__asm_op_args, __asm_args, (int x, int y, int z), \
|
|
829
|
+
("r"(x), "r"(y), "r"(z)))
|
|
830
|
+
|
|
831
|
+
#define __SURF_READ1DLAYERED(__asmtype, __type, __asm_op_args, __asm_args) \
|
|
832
|
+
__SURF_READ_V2(__ID("__isurf1DLayeredread"), "a1d", __asmtype, __type, \
|
|
833
|
+
__asm_op_args, __asm_args, (int x, int layer), \
|
|
834
|
+
("r"(x), "r"(layer)))
|
|
835
|
+
#define __SURF_READ2DLAYERED(__asmtype, __type, __asm_op_args, __asm_args) \
|
|
836
|
+
__SURF_READ_V2(__ID("__isurf2DLayeredread"), "a2d", __asmtype, __type, \
|
|
837
|
+
__asm_op_args, __asm_args, (int x, int y, int layer), \
|
|
838
|
+
("r"(x), "r"(y), "r"(layer)))
|
|
839
|
+
#define __SURF_READCUBEMAP(__asmtype, __type, __asm_op_args, __asm_args) \
|
|
840
|
+
__SURF_READ_V2(__ID("__isurfCubemapread"), "a2d", __asmtype, __type, \
|
|
841
|
+
__asm_op_args, __asm_args, (int x, int y, int face), \
|
|
842
|
+
("r"(x), "r"(y), "r"(face)))
|
|
843
|
+
#define __SURF_READCUBEMAPLAYERED(__asmtype, __type, __asm_op_args, \
|
|
844
|
+
__asm_args) \
|
|
845
|
+
__SURF_READ_V2(__ID("__isurfCubemapLayeredread"), "a2d", __asmtype, __type, \
|
|
846
|
+
__asm_op_args, __asm_args, (int x, int y, int layerface), \
|
|
847
|
+
("r"(x), "r"(y), "r"(layerface)))
|
|
848
|
+
|
|
849
|
+
#define __1DV1 "{%0}, [%1, {%2}]"
|
|
850
|
+
#define __1DV2 "{%0, %1}, [%2, {%3}]"
|
|
851
|
+
#define __1DV4 "{%0, %1, %2, %3}, [%4, {%5}]"
|
|
852
|
+
|
|
853
|
+
#define __2DV1 "{%0}, [%1, {%2, %3}]"
|
|
854
|
+
#define __2DV2 "{%0, %1}, [%2, {%3, %4}]"
|
|
855
|
+
#define __2DV4 "{%0, %1, %2, %3}, [%4, {%5, %6}]"
|
|
856
|
+
|
|
857
|
+
#define __1DLAYERV1 "{%0}, [%1, {%3, %2}]"
|
|
858
|
+
#define __1DLAYERV2 "{%0, %1}, [%2, {%4, %3}]"
|
|
859
|
+
#define __1DLAYERV4 "{%0, %1, %2, %3}, [%4, {%6, %5}]"
|
|
860
|
+
|
|
861
|
+
#define __3DV1 "{%0}, [%1, {%2, %3, %4, %4}]"
|
|
862
|
+
#define __3DV2 "{%0, %1}, [%2, {%3, %4, %5, %5}]"
|
|
863
|
+
#define __3DV4 "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}]"
|
|
864
|
+
|
|
865
|
+
#define __2DLAYERV1 "{%0}, [%1, {%4, %2, %3, %3}]"
|
|
866
|
+
#define __2DLAYERV2 "{%0, %1}, [%2, {%5, %3, %4, %4}]"
|
|
867
|
+
#define __2DLAYERV4 "{%0, %1, %2, %3}, [%4, {%7, %5, %6, %6}]"
|
|
868
|
+
|
|
869
|
+
#define __CUBEMAPV1 "{%0}, [%1, {%4, %2, %3, %3}]"
|
|
870
|
+
#define __CUBEMAPV2 "{%0, %1}, [%2, {%5, %3, %4, %4}]"
|
|
871
|
+
#define __CUBEMAPV4 "{%0, %1, %2, %3}, [%4, {%7, %5, %6, %6}]"
|
|
872
|
+
|
|
873
|
+
#define __CUBEMAPLAYERV1 "{%0}, [%1, {%4, %2, %3, %3}]"
|
|
874
|
+
#define __CUBEMAPLAYERV2 "{%0, %1}, [%2, {%5, %3, %4, %4}]"
|
|
875
|
+
#define __CUBEMAPLAYERV4 "{%0, %1, %2, %3}, [%4, {%7, %5, %6, %6}]"
|
|
876
|
+
|
|
877
|
+
#define __SURF_READXD_ALL(__xdv1, __xdv2, __xdv4, __surf_readxd_v2) \
|
|
878
|
+
__surf_readxd_v2("b8", char, __xdv1, __SW_ASM_ARGS("=h")); \
|
|
879
|
+
__surf_readxd_v2("b8", signed char, __xdv1, __SW_ASM_ARGS("=h")); \
|
|
880
|
+
__surf_readxd_v2("b8", char1, __xdv1, __SW_ASM_ARGS1("=h")); \
|
|
881
|
+
__surf_readxd_v2("b8", unsigned char, __xdv1, __SW_ASM_ARGS("=h")); \
|
|
882
|
+
__surf_readxd_v2("b8", uchar1, __xdv1, __SW_ASM_ARGS1("=h")); \
|
|
883
|
+
__surf_readxd_v2("b16", short, __xdv1, __SW_ASM_ARGS("=h")); \
|
|
884
|
+
__surf_readxd_v2("b16", short1, __xdv1, __SW_ASM_ARGS1("=h")); \
|
|
885
|
+
__surf_readxd_v2("b16", unsigned short, __xdv1, __SW_ASM_ARGS("=h")); \
|
|
886
|
+
__surf_readxd_v2("b16", ushort1, __xdv1, __SW_ASM_ARGS1("=h")); \
|
|
887
|
+
__surf_readxd_v2("b32", int, __xdv1, __SW_ASM_ARGS("=r")); \
|
|
888
|
+
__surf_readxd_v2("b32", int1, __xdv1, __SW_ASM_ARGS1("=r")); \
|
|
889
|
+
__surf_readxd_v2("b32", unsigned int, __xdv1, __SW_ASM_ARGS("=r")); \
|
|
890
|
+
__surf_readxd_v2("b32", uint1, __xdv1, __SW_ASM_ARGS1("=r")); \
|
|
891
|
+
__surf_readxd_v2("b64", long long, __xdv1, __SW_ASM_ARGS("=l")); \
|
|
892
|
+
__surf_readxd_v2("b64", longlong1, __xdv1, __SW_ASM_ARGS1("=l")); \
|
|
893
|
+
__surf_readxd_v2("b64", unsigned long long, __xdv1, __SW_ASM_ARGS("=l")); \
|
|
894
|
+
__surf_readxd_v2("b64", ulonglong1, __xdv1, __SW_ASM_ARGS1("=l")); \
|
|
895
|
+
__surf_readxd_v2("b32", float, __xdv1, __SW_ASM_ARGS("=r")); \
|
|
896
|
+
__surf_readxd_v2("b32", float1, __xdv1, __SW_ASM_ARGS1("=r")); \
|
|
897
|
+
\
|
|
898
|
+
__surf_readxd_v2("v2.b8", char2, __xdv2, __SW_ASM_ARGS2("=h")); \
|
|
899
|
+
__surf_readxd_v2("v2.b8", uchar2, __xdv2, __SW_ASM_ARGS2("=h")); \
|
|
900
|
+
__surf_readxd_v2("v2.b16", short2, __xdv2, __SW_ASM_ARGS2("=h")); \
|
|
901
|
+
__surf_readxd_v2("v2.b16", ushort2, __xdv2, __SW_ASM_ARGS2("=h")); \
|
|
902
|
+
__surf_readxd_v2("v2.b32", int2, __xdv2, __SW_ASM_ARGS2("=r")); \
|
|
903
|
+
__surf_readxd_v2("v2.b32", uint2, __xdv2, __SW_ASM_ARGS2("=r")); \
|
|
904
|
+
__surf_readxd_v2("v2.b64", longlong2, __xdv2, __SW_ASM_ARGS2("=l")); \
|
|
905
|
+
__surf_readxd_v2("v2.b64", ulonglong2, __xdv2, __SW_ASM_ARGS2("=l")); \
|
|
906
|
+
__surf_readxd_v2("v2.b32", float2, __xdv2, __SW_ASM_ARGS2("=r")); \
|
|
907
|
+
\
|
|
908
|
+
__surf_readxd_v2("v4.b8", char4, __xdv4, __SW_ASM_ARGS4("=h")); \
|
|
909
|
+
__surf_readxd_v2("v4.b8", uchar4, __xdv4, __SW_ASM_ARGS4("=h")); \
|
|
910
|
+
__surf_readxd_v2("v4.b16", short4, __xdv4, __SW_ASM_ARGS4("=h")); \
|
|
911
|
+
__surf_readxd_v2("v4.b16", ushort4, __xdv4, __SW_ASM_ARGS4("=h")); \
|
|
912
|
+
__surf_readxd_v2("v4.b32", int4, __xdv4, __SW_ASM_ARGS4("=r")); \
|
|
913
|
+
__surf_readxd_v2("v4.b32", uint4, __xdv4, __SW_ASM_ARGS4("=r")); \
|
|
914
|
+
__surf_readxd_v2("v4.b32", float4, __xdv4, __SW_ASM_ARGS4("=r"))
|
|
915
|
+
|
|
916
|
+
__SURF_READXD_ALL(__1DV1, __1DV2, __1DV4, __SURF_READ1D);
|
|
917
|
+
__SURF_READXD_ALL(__2DV1, __2DV2, __2DV4, __SURF_READ2D);
|
|
918
|
+
__SURF_READXD_ALL(__3DV1, __3DV2, __3DV4, __SURF_READ3D);
|
|
919
|
+
__SURF_READXD_ALL(__1DLAYERV1, __1DLAYERV2, __1DLAYERV4, __SURF_READ1DLAYERED);
|
|
920
|
+
__SURF_READXD_ALL(__2DLAYERV1, __2DLAYERV2, __2DLAYERV4, __SURF_READ2DLAYERED);
|
|
921
|
+
__SURF_READXD_ALL(__CUBEMAPV1, __CUBEMAPV2, __CUBEMAPV4, __SURF_READCUBEMAP);
|
|
922
|
+
__SURF_READXD_ALL(__CUBEMAPLAYERV1, __CUBEMAPLAYERV2, __CUBEMAPLAYERV4,
|
|
923
|
+
__SURF_READCUBEMAPLAYERED);
|
|
924
|
+
|
|
925
|
+
#define __SURF_WRITE1D_V2(__asmtype, __type, __asm_op_args, __asm_args) \
|
|
926
|
+
__SURF_WRITE_V2(__ID("__isurf1Dwrite_v2"), "1d", __asmtype, __type, "{%1}", \
|
|
927
|
+
(int x), ("r"(x)), __asm_op_args, __asm_args)
|
|
928
|
+
#define __SURF_WRITE1DLAYERED_V2(__asmtype, __type, __asm_op_args, __asm_args) \
|
|
929
|
+
__SURF_WRITE_V2(__ID("__isurf1DLayeredwrite_v2"), "a1d", __asmtype, __type, \
|
|
930
|
+
"{%2, %1}", (int x, int layer), ("r"(x), "r"(layer)), \
|
|
931
|
+
__asm_op_args, __asm_args)
|
|
932
|
+
#define __SURF_WRITE2D_V2(__asmtype, __type, __asm_op_args, __asm_args) \
|
|
933
|
+
__SURF_WRITE_V2(__ID("__isurf2Dwrite_v2"), "2d", __asmtype, __type, \
|
|
934
|
+
"{%1, %2}", (int x, int y), ("r"(x), "r"(y)), __asm_op_args, \
|
|
935
|
+
__asm_args)
|
|
936
|
+
#define __SURF_WRITE2DLAYERED_V2(__asmtype, __type, __asm_op_args, __asm_args) \
|
|
937
|
+
__SURF_WRITE_V2(__ID("__isurf2DLayeredwrite_v2"), "a2d", __asmtype, __type, \
|
|
938
|
+
"{%3, %1, %2, %2}", (int x, int y, int layer), \
|
|
939
|
+
("r"(x), "r"(y), "r"(layer)), __asm_op_args, __asm_args)
|
|
940
|
+
#define __SURF_WRITE3D_V2(__asmtype, __type, __asm_op_args, __asm_args) \
|
|
941
|
+
__SURF_WRITE_V2(__ID("__isurf3Dwrite_v2"), "3d", __asmtype, __type, \
|
|
942
|
+
"{%1, %2, %3, %3}", (int x, int y, int z), \
|
|
943
|
+
("r"(x), "r"(y), "r"(z)), __asm_op_args, __asm_args)
|
|
944
|
+
|
|
945
|
+
#define __SURF_CUBEMAPWRITE_V2(__asmtype, __type, __asm_op_args, __asm_args) \
|
|
946
|
+
__SURF_WRITE_V2(__ID("__isurfCubemapwrite_v2"), "a2d", __asmtype, __type, \
|
|
947
|
+
"{%3, %1, %2, %2}", (int x, int y, int face), \
|
|
948
|
+
("r"(x), "r"(y), "r"(face)), __asm_op_args, __asm_args)
|
|
949
|
+
#define __SURF_CUBEMAPLAYEREDWRITE_V2(__asmtype, __type, __asm_op_args, \
|
|
950
|
+
__asm_args) \
|
|
951
|
+
__SURF_WRITE_V2(__ID("__isurfCubemapLayeredwrite_v2"), "a2d", __asmtype, \
|
|
952
|
+
__type, "{%3, %1, %2, %2}", (int x, int y, int layerface), \
|
|
953
|
+
("r"(x), "r"(y), "r"(layerface)), __asm_op_args, __asm_args)
|
|
954
|
+
|
|
955
|
+
#define __SURF_WRITEXD_V2_ALL(__xdv1, __xdv2, __xdv4, __surf_writexd_v2) \
|
|
956
|
+
__surf_writexd_v2("b8", char, __xdv1, __SW_ASM_ARGS("h")); \
|
|
957
|
+
__surf_writexd_v2("b8", signed char, __xdv1, __SW_ASM_ARGS("h")); \
|
|
958
|
+
__surf_writexd_v2("b8", char1, __xdv1, __SW_ASM_ARGS1("h")); \
|
|
959
|
+
__surf_writexd_v2("b8", unsigned char, __xdv1, __SW_ASM_ARGS("h")); \
|
|
960
|
+
__surf_writexd_v2("b8", uchar1, __xdv1, __SW_ASM_ARGS1("h")); \
|
|
961
|
+
__surf_writexd_v2("b16", short, __xdv1, __SW_ASM_ARGS("h")); \
|
|
962
|
+
__surf_writexd_v2("b16", short1, __xdv1, __SW_ASM_ARGS1("h")); \
|
|
963
|
+
__surf_writexd_v2("b16", unsigned short, __xdv1, __SW_ASM_ARGS("h")); \
|
|
964
|
+
__surf_writexd_v2("b16", ushort1, __xdv1, __SW_ASM_ARGS1("h")); \
|
|
965
|
+
__surf_writexd_v2("b32", int, __xdv1, __SW_ASM_ARGS("r")); \
|
|
966
|
+
__surf_writexd_v2("b32", int1, __xdv1, __SW_ASM_ARGS1("r")); \
|
|
967
|
+
__surf_writexd_v2("b32", unsigned int, __xdv1, __SW_ASM_ARGS("r")); \
|
|
968
|
+
__surf_writexd_v2("b32", uint1, __xdv1, __SW_ASM_ARGS1("r")); \
|
|
969
|
+
__surf_writexd_v2("b64", long long, __xdv1, __SW_ASM_ARGS("l")); \
|
|
970
|
+
__surf_writexd_v2("b64", longlong1, __xdv1, __SW_ASM_ARGS1("l")); \
|
|
971
|
+
__surf_writexd_v2("b64", unsigned long long, __xdv1, __SW_ASM_ARGS("l")); \
|
|
972
|
+
__surf_writexd_v2("b64", ulonglong1, __xdv1, __SW_ASM_ARGS1("l")); \
|
|
973
|
+
__surf_writexd_v2("b32", float, __xdv1, __SW_ASM_ARGS("r")); \
|
|
974
|
+
__surf_writexd_v2("b32", float1, __xdv1, __SW_ASM_ARGS1("r")); \
|
|
975
|
+
\
|
|
976
|
+
__surf_writexd_v2("v2.b8", char2, __xdv2, __SW_ASM_ARGS2("h")); \
|
|
977
|
+
__surf_writexd_v2("v2.b8", uchar2, __xdv2, __SW_ASM_ARGS2("h")); \
|
|
978
|
+
__surf_writexd_v2("v2.b16", short2, __xdv2, __SW_ASM_ARGS2("h")); \
|
|
979
|
+
__surf_writexd_v2("v2.b16", ushort2, __xdv2, __SW_ASM_ARGS2("h")); \
|
|
980
|
+
__surf_writexd_v2("v2.b32", int2, __xdv2, __SW_ASM_ARGS2("r")); \
|
|
981
|
+
__surf_writexd_v2("v2.b32", uint2, __xdv2, __SW_ASM_ARGS2("r")); \
|
|
982
|
+
__surf_writexd_v2("v2.b64", longlong2, __xdv2, __SW_ASM_ARGS2("l")); \
|
|
983
|
+
__surf_writexd_v2("v2.b64", ulonglong2, __xdv2, __SW_ASM_ARGS2("l")); \
|
|
984
|
+
__surf_writexd_v2("v2.b32", float2, __xdv2, __SW_ASM_ARGS2("r")); \
|
|
985
|
+
\
|
|
986
|
+
__surf_writexd_v2("v4.b8", char4, __xdv4, __SW_ASM_ARGS4("h")); \
|
|
987
|
+
__surf_writexd_v2("v4.b8", uchar4, __xdv4, __SW_ASM_ARGS4("h")); \
|
|
988
|
+
__surf_writexd_v2("v4.b16", short4, __xdv4, __SW_ASM_ARGS4("h")); \
|
|
989
|
+
__surf_writexd_v2("v4.b16", ushort4, __xdv4, __SW_ASM_ARGS4("h")); \
|
|
990
|
+
__surf_writexd_v2("v4.b32", int4, __xdv4, __SW_ASM_ARGS4("r")); \
|
|
991
|
+
__surf_writexd_v2("v4.b32", uint4, __xdv4, __SW_ASM_ARGS4("r")); \
|
|
992
|
+
__surf_writexd_v2("v4.b32", float4, __xdv4, __SW_ASM_ARGS4("r"))
|
|
993
|
+
|
|
994
|
+
#define __1DV1 "{%2}"
|
|
995
|
+
#define __1DV2 "{%2, %3}"
|
|
996
|
+
#define __1DV4 "{%2, %3, %4, %5}"
|
|
997
|
+
|
|
998
|
+
#define __2DV1 "{%3}"
|
|
999
|
+
#define __2DV2 "{%3, %4}"
|
|
1000
|
+
#define __2DV4 "{%3, %4, %5, %6}"
|
|
1001
|
+
|
|
1002
|
+
#define __3DV1 "{%4}"
|
|
1003
|
+
#define __3DV2 "{%4, %5}"
|
|
1004
|
+
#define __3DV4 "{%4, %5, %6, %7}"
|
|
1005
|
+
|
|
1006
|
+
__SURF_WRITEXD_V2_ALL(__1DV1, __1DV2, __1DV4, __SURF_WRITE1D_V2);
|
|
1007
|
+
__SURF_WRITEXD_V2_ALL(__2DV1, __2DV2, __2DV4, __SURF_WRITE2D_V2);
|
|
1008
|
+
__SURF_WRITEXD_V2_ALL(__3DV1, __3DV2, __3DV4, __SURF_WRITE3D_V2);
|
|
1009
|
+
__SURF_WRITEXD_V2_ALL(__2DV1, __2DV2, __2DV4, __SURF_WRITE1DLAYERED_V2);
|
|
1010
|
+
__SURF_WRITEXD_V2_ALL(__3DV1, __3DV2, __3DV4, __SURF_WRITE2DLAYERED_V2);
|
|
1011
|
+
__SURF_WRITEXD_V2_ALL(__3DV1, __3DV2, __3DV4, __SURF_CUBEMAPWRITE_V2);
|
|
1012
|
+
__SURF_WRITEXD_V2_ALL(__3DV1, __3DV2, __3DV4, __SURF_CUBEMAPLAYEREDWRITE_V2);
|
|
1013
|
+
|
|
1014
|
+
template <class __op, class __DataT, class... __Args>
|
|
1015
|
+
__device__ static void __tex_fetch_impl(__surface_op_tag, __DataT *__ptr,
|
|
1016
|
+
cudaSurfaceObject_t __handle,
|
|
1017
|
+
__Args... __args) {
|
|
1018
|
+
__surf_read_write_v2<__op, __DataT>::__run(__ptr, __handle, __args...);
|
|
1019
|
+
}
|
|
1020
|
+
|
|
652
1021
|
// These are the top-level function overloads the __nv_tex_surf_handler expands
|
|
653
1022
|
// to. Each overload deals with one of the several ways __nv_tex_surf_handler
|
|
654
1023
|
// is called by CUDA headers. In the end, each of the overloads does the same
|
|
@@ -659,13 +1028,21 @@ template <class __DestT, class __SrcT> struct __convert {
|
|
|
659
1028
|
// __nv_tex_surf_handler("__tex...", &ret, cudaTextureObject_t handle, args...);
|
|
660
1029
|
// Data type and return type are based on ret.
|
|
661
1030
|
template <class __op, class __T, class... __Args>
|
|
662
|
-
__device__ static void
|
|
663
|
-
|
|
1031
|
+
__device__ static void __tex_fetch_impl(__texture_op_tag, __T *__ptr,
|
|
1032
|
+
cudaTextureObject_t __handle,
|
|
1033
|
+
__Args... __args) {
|
|
664
1034
|
using __FetchT = typename __TypeInfoT<__T>::__fetch_t;
|
|
665
1035
|
*__ptr = __convert<__T, __FetchT>::__run(
|
|
666
1036
|
__tex_fetch_v4<__op>::template __run<__FetchT>(__handle, __args...));
|
|
667
1037
|
}
|
|
668
1038
|
|
|
1039
|
+
template <class __op, class __T, class... __Args>
|
|
1040
|
+
__device__ static void __tex_fetch(__T *__ptr, cudaTextureObject_t __handle,
|
|
1041
|
+
__Args... __args) {
|
|
1042
|
+
using op_type = typename __op_type_traits<__op>::type;
|
|
1043
|
+
__tex_fetch_impl<__op>(op_type{}, __ptr, __handle, __args...);
|
|
1044
|
+
}
|
|
1045
|
+
|
|
669
1046
|
#if CUDA_VERSION < 12000
|
|
670
1047
|
// texture<> objects get magically converted into a texture reference. However,
|
|
671
1048
|
// there's no way to convert them to cudaTextureObject_t on C++ level. So, we
|
|
@@ -722,6 +1099,7 @@ __tex_fetch(__DataT *, __RetT *__ptr,
|
|
|
722
1099
|
#pragma pop_macro("__Args")
|
|
723
1100
|
#pragma pop_macro("__ID")
|
|
724
1101
|
#pragma pop_macro("__IDV")
|
|
1102
|
+
#pragma pop_macro("__OP_TYPE_SURFACE")
|
|
725
1103
|
#pragma pop_macro("__IMPL_2DGATHER")
|
|
726
1104
|
#pragma pop_macro("__IMPL_ALIAS")
|
|
727
1105
|
#pragma pop_macro("__IMPL_ALIASI")
|
|
@@ -739,4 +1117,61 @@ __tex_fetch(__DataT *, __RetT *__ptr,
|
|
|
739
1117
|
#pragma pop_macro("__IMPL_SI")
|
|
740
1118
|
#pragma pop_macro("__L")
|
|
741
1119
|
#pragma pop_macro("__STRIP_PARENS")
|
|
1120
|
+
#pragma pop_macro("__SURF_WRITE_V2")
|
|
1121
|
+
#pragma pop_macro("__SW_ASM_ARGS")
|
|
1122
|
+
#pragma pop_macro("__SW_ASM_ARGS1")
|
|
1123
|
+
#pragma pop_macro("__SW_ASM_ARGS2")
|
|
1124
|
+
#pragma pop_macro("__SW_ASM_ARGS4")
|
|
1125
|
+
#pragma pop_macro("__SURF_WRITE_V2")
|
|
1126
|
+
#pragma pop_macro("__SURF_READ_V2")
|
|
1127
|
+
#pragma pop_macro("__SW_ASM_ARGS")
|
|
1128
|
+
#pragma pop_macro("__SW_ASM_ARGS1")
|
|
1129
|
+
#pragma pop_macro("__SW_ASM_ARGS2")
|
|
1130
|
+
#pragma pop_macro("__SW_ASM_ARGS4")
|
|
1131
|
+
#pragma pop_macro("__SURF_READ1D");
|
|
1132
|
+
#pragma pop_macro("__SURF_READ2D");
|
|
1133
|
+
#pragma pop_macro("__SURF_READ3D");
|
|
1134
|
+
#pragma pop_macro("__SURF_READ1DLAYERED");
|
|
1135
|
+
#pragma pop_macro("__SURF_READ2DLAYERED");
|
|
1136
|
+
#pragma pop_macro("__SURF_READCUBEMAP");
|
|
1137
|
+
#pragma pop_macro("__SURF_READCUBEMAPLAYERED");
|
|
1138
|
+
#pragma pop_macro("__1DV1");
|
|
1139
|
+
#pragma pop_macro("__1DV2");
|
|
1140
|
+
#pragma pop_macro("__1DV4");
|
|
1141
|
+
#pragma pop_macro("__2DV1");
|
|
1142
|
+
#pragma pop_macro("__2DV2");
|
|
1143
|
+
#pragma pop_macro("__2DV4");
|
|
1144
|
+
#pragma pop_macro("__1DLAYERV1");
|
|
1145
|
+
#pragma pop_macro("__1DLAYERV2");
|
|
1146
|
+
#pragma pop_macro("__1DLAYERV4");
|
|
1147
|
+
#pragma pop_macro("__3DV1");
|
|
1148
|
+
#pragma pop_macro("__3DV2");
|
|
1149
|
+
#pragma pop_macro("__3DV4");
|
|
1150
|
+
#pragma pop_macro("__2DLAYERV1");
|
|
1151
|
+
#pragma pop_macro("__2DLAYERV2");
|
|
1152
|
+
#pragma pop_macro("__2DLAYERV4");
|
|
1153
|
+
#pragma pop_macro("__CUBEMAPV1");
|
|
1154
|
+
#pragma pop_macro("__CUBEMAPV2");
|
|
1155
|
+
#pragma pop_macro("__CUBEMAPV4");
|
|
1156
|
+
#pragma pop_macro("__CUBEMAPLAYERV1");
|
|
1157
|
+
#pragma pop_macro("__CUBEMAPLAYERV2");
|
|
1158
|
+
#pragma pop_macro("__CUBEMAPLAYERV4");
|
|
1159
|
+
#pragma pop_macro("__SURF_READXD_ALL");
|
|
1160
|
+
#pragma pop_macro("__SURF_WRITE1D_V2");
|
|
1161
|
+
#pragma pop_macro("__SURF_WRITE1DLAYERED_V2");
|
|
1162
|
+
#pragma pop_macro("__SURF_WRITE2D_V2");
|
|
1163
|
+
#pragma pop_macro("__SURF_WRITE2DLAYERED_V2");
|
|
1164
|
+
#pragma pop_macro("__SURF_WRITE3D_V2");
|
|
1165
|
+
#pragma pop_macro("__SURF_CUBEMAPWRITE_V2");
|
|
1166
|
+
#pragma pop_macro("__SURF_CUBEMAPLAYEREDWRITE_V2");
|
|
1167
|
+
#pragma pop_macro("__SURF_WRITEXD_V2_ALL");
|
|
1168
|
+
#pragma pop_macro("__1DV1");
|
|
1169
|
+
#pragma pop_macro("__1DV2");
|
|
1170
|
+
#pragma pop_macro("__1DV4");
|
|
1171
|
+
#pragma pop_macro("__2DV1");
|
|
1172
|
+
#pragma pop_macro("__2DV2");
|
|
1173
|
+
#pragma pop_macro("__2DV4");
|
|
1174
|
+
#pragma pop_macro("__3DV1");
|
|
1175
|
+
#pragma pop_macro("__3DV2");
|
|
1176
|
+
#pragma pop_macro("__3DV4");
|
|
742
1177
|
#endif // __CLANG_CUDA_TEXTURE_INTRINSICS_H__
|
|
@@ -448,7 +448,7 @@ class __promote : public __promote_imp<_A1, _A2, _A3> {};
|
|
|
448
448
|
} // namespace __hip
|
|
449
449
|
|
|
450
450
|
// __HIP_OVERLOAD1 is used to resolve function calls with integer argument to
|
|
451
|
-
// avoid compilation error due to
|
|
451
|
+
// avoid compilation error due to ambiguity. e.g. floor(5) is resolved with
|
|
452
452
|
// floor(double).
|
|
453
453
|
#define __HIP_OVERLOAD1(__retty, __fn) \
|
|
454
454
|
template <typename __T> \
|
|
@@ -459,17 +459,18 @@ class __promote : public __promote_imp<_A1, _A2, _A3> {};
|
|
|
459
459
|
}
|
|
460
460
|
|
|
461
461
|
// __HIP_OVERLOAD2 is used to resolve function calls with mixed float/double
|
|
462
|
-
// or integer argument to avoid compilation error due to
|
|
462
|
+
// or integer argument to avoid compilation error due to ambiguity. e.g.
|
|
463
463
|
// max(5.0f, 6.0) is resolved with max(double, double).
|
|
464
464
|
#if __cplusplus >= 201103L
|
|
465
465
|
#define __HIP_OVERLOAD2(__retty, __fn) \
|
|
466
466
|
template <typename __T1, typename __T2> \
|
|
467
|
-
__DEVICE__ __CONSTEXPR__
|
|
468
|
-
__hip::is_arithmetic<__T1>::value &&
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
467
|
+
__DEVICE__ __CONSTEXPR__ \
|
|
468
|
+
typename __hip_enable_if<__hip::is_arithmetic<__T1>::value && \
|
|
469
|
+
__hip::is_arithmetic<__T2>::value, \
|
|
470
|
+
__retty>::type \
|
|
471
|
+
__fn(__T1 __x, __T2 __y) { \
|
|
472
|
+
typedef typename __hip::__promote<__T1, __T2>::type __arg_type; \
|
|
473
|
+
return __fn((__arg_type)__x, (__arg_type)__y); \
|
|
473
474
|
}
|
|
474
475
|
#else
|
|
475
476
|
#define __HIP_OVERLOAD2(__retty, __fn) \
|