@cpp-linter/clang-tidy-win32-x64 19.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/{19 → 23}/include/__clang_cuda_device_functions.h +15 -1
- package/lib/clang/{19 → 23}/include/__clang_cuda_intrinsics.h +288 -20
- package/lib/clang/{19 → 23}/include/__clang_cuda_math.h +5 -0
- package/lib/clang/{19 → 23}/include/__clang_cuda_math_forward_declares.h +5 -0
- package/lib/clang/{19 → 23}/include/__clang_cuda_runtime_wrapper.h +28 -5
- package/lib/clang/{19 → 23}/include/__clang_cuda_texture_intrinsics.h +437 -2
- 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/{19 → 23}/include/__clang_hip_cmath.h +15 -9
- package/lib/clang/{19 → 23}/include/__clang_hip_libdevice_declares.h +24 -139
- package/lib/clang/{19 → 23}/include/__clang_hip_math.h +115 -34
- package/lib/clang/{19 → 23}/include/__clang_hip_runtime_wrapper.h +12 -1
- package/lib/clang/23/include/__clang_spirv_builtins.h +217 -0
- 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/{19/include/float.h → 23/include/__float_float.h} +14 -34
- 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/{19 → 23}/include/__stdarg_va_arg.h +2 -2
- package/lib/clang/{19 → 23}/include/adcintrin.h +5 -0
- package/lib/clang/{19 → 23}/include/adxintrin.h +5 -0
- package/lib/clang/{19 → 23}/include/altivec.h +169 -96
- package/lib/clang/23/include/amdgpuintrin.h +164 -0
- package/lib/clang/23/include/amdhsa_abi.h +83 -0
- package/lib/clang/23/include/amo.h +220 -0
- package/lib/clang/23/include/amxavx512intrin.h +596 -0
- package/lib/clang/{19 → 23}/include/amxcomplexintrin.h +4 -6
- package/lib/clang/{19 → 23}/include/amxfp16intrin.h +35 -0
- package/lib/clang/23/include/amxfp8intrin.h +230 -0
- package/lib/clang/{19 → 23}/include/amxintrin.h +3 -35
- package/lib/clang/23/include/amxmovrsintrin.h +48 -0
- package/lib/clang/23/include/andes_vector.h +21 -0
- package/lib/clang/23/include/arm64_neon.h +21 -0
- package/lib/clang/{19 → 23}/include/arm64intr.h +10 -0
- package/lib/clang/{19 → 23}/include/arm_acle.h +67 -89
- package/lib/clang/{19 → 23}/include/arm_fp16.h +89 -89
- package/lib/clang/{19 → 23}/include/arm_neon.h +43614 -38901
- package/lib/clang/{19 → 23}/include/arm_sme.h +1028 -94
- package/lib/clang/{19 → 23}/include/arm_sve.h +7331 -5170
- package/lib/clang/{19 → 23}/include/arm_vector_types.h +87 -0
- package/lib/clang/23/include/avx10_2_512bf16intrin.h +568 -0
- package/lib/clang/23/include/avx10_2_512convertintrin.h +322 -0
- package/lib/clang/23/include/avx10_2_512minmaxintrin.h +127 -0
- package/lib/clang/23/include/avx10_2_512niintrin.h +314 -0
- package/lib/clang/23/include/avx10_2_512satcvtdsintrin.h +307 -0
- package/lib/clang/23/include/avx10_2_512satcvtintrin.h +301 -0
- package/lib/clang/23/include/avx10_2bf16intrin.h +1094 -0
- package/lib/clang/23/include/avx10_2convertintrin.h +3257 -0
- package/lib/clang/23/include/avx10_2copyintrin.h +66 -0
- package/lib/clang/23/include/avx10_2minmaxintrin.h +232 -0
- package/lib/clang/23/include/avx10_2niintrin.h +409 -0
- package/lib/clang/23/include/avx10_2satcvtdsintrin.h +376 -0
- package/lib/clang/23/include/avx10_2satcvtintrin.h +312 -0
- package/lib/clang/{19 → 23}/include/avx2intrin.h +284 -378
- package/lib/clang/{19 → 23}/include/avx512bf16intrin.h +25 -16
- package/lib/clang/{19 → 23}/include/avx512bitalgintrin.h +21 -32
- package/lib/clang/23/include/avx512bmmintrin.h +174 -0
- package/lib/clang/23/include/avx512bmmvlintrin.h +245 -0
- package/lib/clang/{19 → 23}/include/avx512bwintrin.h +405 -534
- package/lib/clang/23/include/avx512cdintrin.h +112 -0
- package/lib/clang/{19 → 23}/include/avx512dqintrin.h +132 -161
- package/lib/clang/{19 → 23}/include/avx512fintrin.h +1068 -1496
- package/lib/clang/{19 → 23}/include/avx512fp16intrin.h +126 -129
- package/lib/clang/23/include/avx512ifmaintrin.h +68 -0
- package/lib/clang/23/include/avx512ifmavlintrin.h +138 -0
- package/lib/clang/{19 → 23}/include/avx512vbmi2intrin.h +55 -48
- package/lib/clang/{19 → 23}/include/avx512vbmiintrin.h +19 -27
- package/lib/clang/{19 → 23}/include/avx512vbmivlintrin.h +35 -49
- package/lib/clang/{19 → 23}/include/avx512vlbf16intrin.h +32 -22
- package/lib/clang/{19 → 23}/include/avx512vlbitalgintrin.h +41 -57
- package/lib/clang/{19 → 23}/include/avx512vlbwintrin.h +494 -609
- package/lib/clang/23/include/avx512vlcdintrin.h +202 -0
- package/lib/clang/{19 → 23}/include/avx512vldqintrin.h +110 -127
- package/lib/clang/{19 → 23}/include/avx512vlfp16intrin.h +130 -111
- package/lib/clang/{19 → 23}/include/avx512vlintrin.h +1025 -1395
- package/lib/clang/{19 → 23}/include/avx512vlvbmi2intrin.h +102 -95
- package/lib/clang/{19 → 23}/include/avx512vlvnniintrin.h +50 -52
- package/lib/clang/{19 → 23}/include/avx512vlvp2intersectintrin.h +2 -2
- package/lib/clang/{19 → 23}/include/avx512vnniintrin.h +42 -45
- package/lib/clang/{19 → 23}/include/avx512vp2intersectintrin.h +2 -3
- package/lib/clang/{19 → 23}/include/avx512vpopcntdqintrin.h +10 -4
- package/lib/clang/{19 → 23}/include/avx512vpopcntdqvlintrin.h +20 -10
- package/lib/clang/{19 → 23}/include/avxifmaintrin.h +16 -0
- package/lib/clang/{19 → 23}/include/avxintrin.h +186 -248
- package/lib/clang/{19 → 23}/include/avxvnniint16intrin.h +130 -152
- package/lib/clang/{19 → 23}/include/avxvnniint8intrin.h +68 -85
- package/lib/clang/{19 → 23}/include/avxvnniintrin.h +39 -26
- package/lib/clang/{19 → 23}/include/bmi2intrin.h +15 -17
- package/lib/clang/{19 → 23}/include/bmiintrin.h +31 -41
- package/lib/clang/{19 → 23}/include/cmpccxaddintrin.h +1 -1
- package/lib/clang/{19 → 23}/include/cpuid.h +137 -37
- package/lib/clang/{19 → 23}/include/crc32intrin.h +10 -8
- package/lib/clang/23/include/cuda_wrappers/__utility/declval.h +28 -0
- package/lib/clang/23/include/cuda_wrappers/bits/c++config.h +61 -0
- package/lib/clang/23/include/cuda_wrappers/cmath +44 -0
- package/lib/clang/{19 → 23}/include/cuda_wrappers/new +2 -0
- package/lib/clang/{19 → 23}/include/emmintrin.h +306 -272
- package/lib/clang/23/include/endian.h +91 -0
- package/lib/clang/{19 → 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/{19 → 23}/include/fmaintrin.h +96 -66
- package/lib/clang/{19 → 23}/include/gfniintrin.h +39 -12
- package/lib/clang/23/include/gpuintrin.h +348 -0
- package/lib/clang/{19 → 23}/include/hexagon_types.h +31 -24
- package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics.h +222 -0
- package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics_gen.inc +3869 -0
- package/lib/clang/23/include/hlsl/hlsl_basic_types.h +370 -0
- package/lib/clang/23/include/hlsl/hlsl_compat_overloads.h +559 -0
- package/lib/clang/23/include/hlsl/hlsl_detail.h +56 -0
- package/lib/clang/23/include/hlsl/hlsl_inline_intrinsics_gen.inc +546 -0
- package/lib/clang/23/include/hlsl/hlsl_intrinsic_helpers.h +170 -0
- package/lib/clang/23/include/hlsl/hlsl_intrinsics.h +331 -0
- package/lib/clang/23/include/hlsl/hlsl_spirv.h +28 -0
- package/lib/clang/23/include/hlsl.h +38 -0
- package/lib/clang/{19 → 23}/include/hvx_hexagon_protos.h +1041 -803
- package/lib/clang/{19 → 23}/include/immintrin.h +35 -185
- package/lib/clang/{19 → 23}/include/intrin.h +62 -21
- package/lib/clang/{19 → 23}/include/intrin0.h +10 -1
- package/lib/clang/{19 → 23}/include/keylockerintrin.h +0 -9
- package/lib/clang/{19 → 23}/include/larchintrin.h +24 -8
- package/lib/clang/{19 → 23}/include/lasxintrin.h +140 -25
- package/lib/clang/{19 → 23}/include/limits.h +7 -4
- package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/assert.h +3 -5
- package/lib/clang/23/include/llvm_libc_wrappers/ctype.h +29 -0
- package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/inttypes.h +3 -5
- package/lib/clang/23/include/llvm_libc_wrappers/stdio.h +52 -0
- package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/stdlib.h +3 -16
- package/lib/clang/23/include/llvm_libc_wrappers/string.h +29 -0
- package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/time.h +4 -10
- package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
- package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
- package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
- package/lib/clang/{19 → 23}/include/lsxintrin.h +27 -25
- package/lib/clang/{19 → 23}/include/lzcntintrin.h +13 -8
- package/lib/clang/{19 → 23}/include/mmintrin.h +241 -256
- package/lib/clang/{19 → 23}/include/module.modulemap +54 -9
- package/lib/clang/23/include/movrs_avx10_2_512intrin.h +98 -0
- package/lib/clang/23/include/movrs_avx10_2intrin.h +174 -0
- package/lib/clang/23/include/movrsintrin.h +59 -0
- package/lib/clang/23/include/nvptxintrin.h +208 -0
- package/lib/clang/{19 → 23}/include/opencl-c-base.h +28 -92
- package/lib/clang/{19 → 23}/include/opencl-c.h +506 -140
- package/lib/clang/{19 → 23}/include/openmp_wrappers/__clang_openmp_device_functions.h +18 -5
- package/lib/clang/{19 → 23}/include/openmp_wrappers/complex +7 -1
- package/lib/clang/{19 → 23}/include/openmp_wrappers/complex.h +6 -0
- package/lib/clang/{19 → 23}/include/openmp_wrappers/complex_cmath.h +7 -2
- package/lib/clang/{19 → 23}/include/openmp_wrappers/math.h +10 -0
- package/lib/clang/{19 → 23}/include/pmmintrin.h +24 -23
- package/lib/clang/{19 → 23}/include/popcntintrin.h +7 -7
- package/lib/clang/{19 → 23}/include/prfchwintrin.h +10 -13
- package/lib/clang/{19 → 23}/include/ptrauth.h +169 -14
- package/lib/clang/{19 → 23}/include/riscv_bitmanip.h +7 -0
- package/lib/clang/23/include/riscv_corev_alu.h +130 -0
- package/lib/clang/{19 → 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/{19 → 23}/include/riscv_ntlh.h +2 -0
- package/lib/clang/23/include/riscv_packed_simd.h +644 -0
- package/lib/clang/{19 → 23}/include/riscv_vector.h +43 -5
- package/lib/clang/{19 → 23}/include/shaintrin.h +3 -2
- package/lib/clang/{19 → 23}/include/sifive_vector.h +76 -2
- package/lib/clang/23/include/sm4evexintrin.h +32 -0
- package/lib/clang/{19 → 23}/include/smmintrin.h +80 -56
- package/lib/clang/23/include/spirvintrin.h +167 -0
- package/lib/clang/{19 → 23}/include/stdalign.h +0 -5
- package/lib/clang/23/include/stdcountof.h +15 -0
- package/lib/clang/23/include/stddefer.h +19 -0
- package/lib/clang/{19 → 23}/include/stdint.h +23 -143
- package/lib/clang/{19 → 23}/include/tbmintrin.h +25 -37
- package/lib/clang/{19 → 23}/include/tmmintrin.h +125 -130
- package/lib/clang/{19 → 23}/include/vaesintrin.h +1 -2
- package/lib/clang/{19 → 23}/include/vecintrin.h +1783 -60
- package/lib/clang/{19 → 23}/include/wasm_simd128.h +184 -21
- package/lib/clang/{19 → 23}/include/x86gprintrin.h +0 -14
- package/lib/clang/{19 → 23}/include/x86intrin.h +0 -18
- package/lib/clang/{19 → 23}/include/xmmintrin.h +190 -221
- package/lib/clang/{19 → 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/19/include/__clang_cuda_complex_builtins.h +0 -285
- package/lib/clang/19/include/avx512cdintrin.h +0 -125
- package/lib/clang/19/include/avx512ifmaintrin.h +0 -70
- package/lib/clang/19/include/avx512ifmavlintrin.h +0 -111
- package/lib/clang/19/include/avx512vlcdintrin.h +0 -230
- package/lib/clang/19/include/cuda_wrappers/cmath +0 -90
- package/lib/clang/19/include/fma4intrin.h +0 -218
- package/lib/clang/19/include/hlsl/hlsl_basic_types.h +0 -74
- package/lib/clang/19/include/hlsl/hlsl_intrinsics.h +0 -1697
- package/lib/clang/19/include/hlsl.h +0 -15
- package/lib/clang/19/include/llvm_libc_wrappers/ctype.h +0 -102
- package/lib/clang/19/include/llvm_libc_wrappers/stdio.h +0 -80
- package/lib/clang/19/include/llvm_libc_wrappers/string.h +0 -96
- /package/lib/clang/{19 → 23}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{19 → 23}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{19 → 23}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{19 → 23}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stdarg___gnuc_va_list.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stdarg___va_copy.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stdarg_header_macro.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stdarg_va_copy.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stdarg_va_list.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_header_macro.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_null.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_nullptr_t.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_offsetof.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_ptrdiff_t.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_rsize_t.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_size_t.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_unreachable.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_wchar_t.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_wint_t.h +0 -0
- /package/lib/clang/{19 → 23}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{19 → 23}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{19 → 23}/include/ammintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/arm_bf16.h +0 -0
- /package/lib/clang/{19 → 23}/include/arm_cde.h +0 -0
- /package/lib/clang/{19 → 23}/include/arm_cmse.h +0 -0
- /package/lib/clang/{19 → 23}/include/arm_mve.h +0 -0
- /package/lib/clang/{19 → 23}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{19 → 23}/include/armintr.h +0 -0
- /package/lib/clang/{19 → 23}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/builtins.h +0 -0
- /package/lib/clang/{19 → 23}/include/cet.h +0 -0
- /package/lib/clang/{19 → 23}/include/cetintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/clwbintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/clzerointrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{19 → 23}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{19 → 23}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{19 → 23}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{19 → 23}/include/hresetintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/htmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ia32intrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/inttypes.h +0 -0
- /package/lib/clang/{19 → 23}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/iso646.h +0 -0
- /package/lib/clang/{19 → 23}/include/lwpintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/mm3dnow.h +0 -0
- /package/lib/clang/{19 → 23}/include/mm_malloc.h +0 -0
- /package/lib/clang/{19 → 23}/include/movdirintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/msa.h +0 -0
- /package/lib/clang/{19 → 23}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/nmmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{19 → 23}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{19 → 23}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/pkuintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/nmmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/smmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/raointintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/rtmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/s390intrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/serializeintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/sgxintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/sha512intrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/sm3intrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/sm4intrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/stdarg.h +0 -0
- /package/lib/clang/{19 → 23}/include/stdatomic.h +0 -0
- /package/lib/clang/{19 → 23}/include/stdbool.h +0 -0
- /package/lib/clang/{19 → 23}/include/stdckdint.h +0 -0
- /package/lib/clang/{19 → 23}/include/stddef.h +0 -0
- /package/lib/clang/{19 → 23}/include/stdnoreturn.h +0 -0
- /package/lib/clang/{19 → 23}/include/tgmath.h +0 -0
- /package/lib/clang/{19 → 23}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/uintrintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/unwind.h +0 -0
- /package/lib/clang/{19 → 23}/include/usermsrintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/vadefs.h +0 -0
- /package/lib/clang/{19 → 23}/include/varargs.h +0 -0
- /package/lib/clang/{19 → 23}/include/velintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{19 → 23}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{19 → 23}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/wmmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/xtestintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/yvals_core.h +0 -0
- /package/lib/clang/{19 → 23}/include/zos_wrappers/builtins.h +0 -0
|
@@ -70,6 +70,11 @@ __DEVICE__ double floor(double);
|
|
|
70
70
|
__DEVICE__ float floor(float);
|
|
71
71
|
__DEVICE__ double fma(double, double, double);
|
|
72
72
|
__DEVICE__ float fma(float, float, float);
|
|
73
|
+
#ifdef _MSC_VER
|
|
74
|
+
// long double fma variant is not actually supported by CUDA (PTX).
|
|
75
|
+
// However, MS-STL requires that this is forward declared anyways.
|
|
76
|
+
__DEVICE__ long double fma(long double, long double, long double);
|
|
77
|
+
#endif
|
|
73
78
|
__DEVICE__ double fmax(double, double);
|
|
74
79
|
__DEVICE__ float fmax(float, float);
|
|
75
80
|
__DEVICE__ double fmin(double, double);
|
|
@@ -34,16 +34,29 @@
|
|
|
34
34
|
// Define __CUDACC__ early as libstdc++ standard headers with GNU extensions
|
|
35
35
|
// enabled depend on it to avoid using __float128, which is unsupported in
|
|
36
36
|
// CUDA.
|
|
37
|
-
#define __CUDACC__
|
|
37
|
+
#define __CUDACC__ 1
|
|
38
38
|
|
|
39
39
|
// Include some standard headers to avoid CUDA headers including them
|
|
40
40
|
// while some required macros (like __THROW) are in a weird state.
|
|
41
|
+
#include <climits>
|
|
41
42
|
#include <cmath>
|
|
42
43
|
#include <cstdlib>
|
|
43
44
|
#include <stdlib.h>
|
|
44
45
|
#include <string.h>
|
|
45
46
|
#undef __CUDACC__
|
|
46
47
|
|
|
48
|
+
// math_functions.h from CUDA 13.2+ defines _NV_RSQRT_SPECIFIER.
|
|
49
|
+
// Clang does not include it, so we need to define it ourselves.
|
|
50
|
+
#if defined(__GNUC__) && defined(__GLIBC_PREREQ)
|
|
51
|
+
#if __GLIBC_PREREQ(2, 42)
|
|
52
|
+
#define _NV_RSQRT_SPECIFIER noexcept(true)
|
|
53
|
+
#endif
|
|
54
|
+
#endif
|
|
55
|
+
|
|
56
|
+
#ifndef _NV_RSQRT_SPECIFIER
|
|
57
|
+
#define _NV_RSQRT_SPECIFIER
|
|
58
|
+
#endif
|
|
59
|
+
|
|
47
60
|
// Preserve common macros that will be changed below by us or by CUDA
|
|
48
61
|
// headers.
|
|
49
62
|
#pragma push_macro("__THROW")
|
|
@@ -90,7 +103,7 @@
|
|
|
90
103
|
#if CUDA_VERSION < 9000
|
|
91
104
|
#define __CUDABE__
|
|
92
105
|
#else
|
|
93
|
-
#define __CUDACC__
|
|
106
|
+
#define __CUDACC__ 1
|
|
94
107
|
#define __CUDA_LIBDEVICE__
|
|
95
108
|
#endif
|
|
96
109
|
// Disables definitions of device-side runtime support stubs in
|
|
@@ -107,7 +120,7 @@
|
|
|
107
120
|
#define nv_weak weak
|
|
108
121
|
#undef __CUDABE__
|
|
109
122
|
#undef __CUDA_LIBDEVICE__
|
|
110
|
-
#define __CUDACC__
|
|
123
|
+
#define __CUDACC__ 1
|
|
111
124
|
#include "cuda_runtime.h"
|
|
112
125
|
|
|
113
126
|
#pragma pop_macro("nv_weak")
|
|
@@ -253,7 +266,7 @@ static inline __device__ void __brkpt(int __c) { __brkpt(); }
|
|
|
253
266
|
// branch of #if/else inside.
|
|
254
267
|
#define __host__
|
|
255
268
|
#undef __CUDABE__
|
|
256
|
-
#define __CUDACC__
|
|
269
|
+
#define __CUDACC__ 1
|
|
257
270
|
#if CUDA_VERSION >= 9000
|
|
258
271
|
// Some atomic functions became compiler builtins in CUDA-9 , so we need their
|
|
259
272
|
// declarations.
|
|
@@ -384,7 +397,13 @@ __host__ __device__ void __nv_tex_surf_handler(const char *name, T *ptr,
|
|
|
384
397
|
// will continue to fail as it does now.
|
|
385
398
|
#endif // CUDA_VERSION
|
|
386
399
|
#endif // __cplusplus >= 201103L && CUDA_VERSION >= 9000
|
|
400
|
+
#include "surface_indirect_functions.h"
|
|
401
|
+
#if CUDA_VERSION < 13000
|
|
402
|
+
// Direct texture fetch functions had been deprecated since CUDA-11.
|
|
403
|
+
// The file in CUDA-12 only carried unused texture types, and is no longer
|
|
404
|
+
// needed.
|
|
387
405
|
#include "texture_fetch_functions.h"
|
|
406
|
+
#endif // CUDA_VERSION < 13000
|
|
388
407
|
#include "texture_indirect_functions.h"
|
|
389
408
|
|
|
390
409
|
// Restore state of __CUDA_ARCH__ and __THROW we had on entry.
|
|
@@ -393,7 +412,7 @@ __host__ __device__ void __nv_tex_surf_handler(const char *name, T *ptr,
|
|
|
393
412
|
|
|
394
413
|
// Set up compiler macros expected to be seen during compilation.
|
|
395
414
|
#undef __CUDABE__
|
|
396
|
-
#define __CUDACC__
|
|
415
|
+
#define __CUDACC__ 1
|
|
397
416
|
|
|
398
417
|
extern "C" {
|
|
399
418
|
// Device-side CUDA system calls.
|
|
@@ -499,5 +518,9 @@ extern "C" unsigned __cudaPushCallConfiguration(dim3 gridDim, dim3 blockDim,
|
|
|
499
518
|
void *stream = 0);
|
|
500
519
|
#endif
|
|
501
520
|
|
|
521
|
+
// Enable libcudacxx cooperative groups cluster functionality when using the
|
|
522
|
+
// Clang CUDA runtime wrapper.
|
|
523
|
+
#define _CG_CLUSTER_INTRINSICS_AVAILABLE 1
|
|
524
|
+
|
|
502
525
|
#endif // __CUDA__
|
|
503
526
|
#endif // __CLANG_CUDA_RUNTIME_WRAPPER_H__
|
|
@@ -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__
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
//===---- __clang_gpu_builtin_vars.h - GPU built-in variables --------------===
|
|
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
|
+
#ifndef __CLANG_GPU_BUILTIN_VARS_H__
|
|
10
|
+
#define __CLANG_GPU_BUILTIN_VARS_H__
|
|
11
|
+
|
|
12
|
+
#if defined(__HIP__) || defined(__CUDA__)
|
|
13
|
+
|
|
14
|
+
#include <gpuintrin.h>
|
|
15
|
+
|
|
16
|
+
// The warpSize is a runtime value rather than a compile-time constant.
|
|
17
|
+
static inline __attribute__((device)) const struct {
|
|
18
|
+
__attribute__((device, always_inline, const)) operator int() const noexcept {
|
|
19
|
+
return __gpu_num_lanes();
|
|
20
|
+
}
|
|
21
|
+
} warpSize{};
|
|
22
|
+
|
|
23
|
+
// Make sure nobody can create instances of the coordinate types, take their
|
|
24
|
+
// address, copy, or assign them.
|
|
25
|
+
#pragma push_macro("__GPU_DISALLOW_BUILTINVAR_ACCESS")
|
|
26
|
+
#define __GPU_DISALLOW_BUILTINVAR_ACCESS(__tag) \
|
|
27
|
+
__attribute__((device)) __tag() = delete; \
|
|
28
|
+
__attribute__((device)) __tag(const __tag &) = delete; \
|
|
29
|
+
__attribute__((device)) void operator=(const __tag &) const = delete; \
|
|
30
|
+
__attribute__((device)) __tag *operator&() const = delete
|
|
31
|
+
|
|
32
|
+
#pragma push_macro("__GPU_COORD_BUILTIN")
|
|
33
|
+
#define __GPU_COORD_BUILTIN(__tag, __fx, __fy, __fz) \
|
|
34
|
+
struct __tag { \
|
|
35
|
+
__declspec(property(get = __get_x)) unsigned int x; \
|
|
36
|
+
__declspec(property(get = __get_y)) unsigned int y; \
|
|
37
|
+
__declspec(property(get = __get_z)) unsigned int z; \
|
|
38
|
+
__attribute__((device, always_inline)) unsigned int __get_x() const { \
|
|
39
|
+
return __fx; \
|
|
40
|
+
} \
|
|
41
|
+
__attribute__((device, always_inline)) unsigned int __get_y() const { \
|
|
42
|
+
return __fy; \
|
|
43
|
+
} \
|
|
44
|
+
__attribute__((device, always_inline)) unsigned int __get_z() const { \
|
|
45
|
+
return __fz; \
|
|
46
|
+
} \
|
|
47
|
+
\
|
|
48
|
+
private: \
|
|
49
|
+
__GPU_DISALLOW_BUILTINVAR_ACCESS(__tag); \
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
__GPU_COORD_BUILTIN(__gpu_builtin_threadIdx_t, __gpu_thread_id_x(),
|
|
53
|
+
__gpu_thread_id_y(), __gpu_thread_id_z());
|
|
54
|
+
__GPU_COORD_BUILTIN(__gpu_builtin_blockIdx_t, __gpu_block_id_x(),
|
|
55
|
+
__gpu_block_id_y(), __gpu_block_id_z());
|
|
56
|
+
__GPU_COORD_BUILTIN(__gpu_builtin_blockDim_t, __gpu_num_threads_x(),
|
|
57
|
+
__gpu_num_threads_y(), __gpu_num_threads_z());
|
|
58
|
+
__GPU_COORD_BUILTIN(__gpu_builtin_gridDim_t, __gpu_num_blocks_x(),
|
|
59
|
+
__gpu_num_blocks_y(), __gpu_num_blocks_z());
|
|
60
|
+
|
|
61
|
+
#pragma pop_macro("__GPU_COORD_BUILTIN")
|
|
62
|
+
#pragma pop_macro("__GPU_DISALLOW_BUILTINVAR_ACCESS")
|
|
63
|
+
|
|
64
|
+
static inline const
|
|
65
|
+
__attribute__((device)) __gpu_builtin_threadIdx_t threadIdx{};
|
|
66
|
+
static inline const __attribute__((device)) __gpu_builtin_blockIdx_t blockIdx{};
|
|
67
|
+
static inline const __attribute__((device)) __gpu_builtin_blockDim_t blockDim{};
|
|
68
|
+
static inline const __attribute__((device)) __gpu_builtin_gridDim_t gridDim{};
|
|
69
|
+
|
|
70
|
+
#endif // device compile
|
|
71
|
+
#endif // __CLANG_GPU_BUILTIN_VARS_H__
|