@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.
Files changed (309) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/22/include/__clang_cuda_complex_builtins.h +229 -0
  4. package/lib/clang/{20 → 22}/include/__clang_cuda_device_functions.h +1 -1
  5. package/lib/clang/{20 → 22}/include/__clang_cuda_intrinsics.h +295 -8
  6. package/lib/clang/{20 → 22}/include/__clang_cuda_runtime_wrapper.h +19 -0
  7. package/lib/clang/{20 → 22}/include/__clang_cuda_texture_intrinsics.h +437 -2
  8. package/lib/clang/{20 → 22}/include/__clang_hip_cmath.h +9 -8
  9. package/lib/clang/{20 → 22}/include/__clang_hip_libdevice_declares.h +29 -42
  10. package/lib/clang/{20 → 22}/include/__clang_hip_math.h +107 -31
  11. package/lib/clang/{20 → 22}/include/__clang_hip_runtime_wrapper.h +6 -0
  12. package/lib/clang/22/include/__clang_spirv_builtins.h +217 -0
  13. package/lib/clang/{20/include/float.h → 22/include/__float_float.h} +14 -34
  14. package/lib/clang/22/include/__float_header_macro.h +12 -0
  15. package/lib/clang/22/include/__float_infinity_nan.h +20 -0
  16. package/lib/clang/{20 → 22}/include/__stdarg_va_arg.h +2 -2
  17. package/lib/clang/{20 → 22}/include/altivec.h +82 -79
  18. package/lib/clang/{20 → 22}/include/amdgpuintrin.h +23 -26
  19. package/lib/clang/22/include/amo.h +131 -0
  20. package/lib/clang/{20 → 22}/include/amxavx512intrin.h +216 -2
  21. package/lib/clang/{20 → 22}/include/amxcomplexintrin.h +4 -6
  22. package/lib/clang/{20 → 22}/include/amxintrin.h +0 -2
  23. package/lib/clang/22/include/andes_vector.h +16 -0
  24. package/lib/clang/{20 → 22}/include/arm_acle.h +48 -68
  25. package/lib/clang/{20 → 22}/include/arm_fp16.h +89 -89
  26. package/lib/clang/{20 → 22}/include/arm_neon.h +22413 -19759
  27. package/lib/clang/{20 → 22}/include/arm_sme.h +702 -8
  28. package/lib/clang/{20 → 22}/include/arm_sve.h +6346 -5626
  29. package/lib/clang/{20 → 22}/include/avx10_2_512bf16intrin.h +19 -12
  30. package/lib/clang/{20 → 22}/include/avx10_2_512convertintrin.h +25 -23
  31. package/lib/clang/{20 → 22}/include/avx10_2_512niintrin.h +31 -31
  32. package/lib/clang/{20 → 22}/include/avx10_2_512satcvtdsintrin.h +29 -25
  33. package/lib/clang/{20 → 22}/include/avx10_2_512satcvtintrin.h +84 -84
  34. package/lib/clang/{20 → 22}/include/avx10_2bf16intrin.h +54 -45
  35. package/lib/clang/22/include/avx10_2convertintrin.h +3257 -0
  36. package/lib/clang/{20 → 22}/include/avx10_2copyintrin.h +1 -1
  37. package/lib/clang/{20 → 22}/include/avx10_2minmaxintrin.h +18 -63
  38. package/lib/clang/22/include/avx10_2niintrin.h +409 -0
  39. package/lib/clang/22/include/avx10_2satcvtdsintrin.h +376 -0
  40. package/lib/clang/22/include/avx10_2satcvtintrin.h +312 -0
  41. package/lib/clang/{20 → 22}/include/avx2intrin.h +275 -377
  42. package/lib/clang/{20 → 22}/include/avx512bf16intrin.h +25 -16
  43. package/lib/clang/{20 → 22}/include/avx512bitalgintrin.h +19 -30
  44. package/lib/clang/{20 → 22}/include/avx512bwintrin.h +386 -505
  45. package/lib/clang/22/include/avx512cdintrin.h +112 -0
  46. package/lib/clang/{20 → 22}/include/avx512dqintrin.h +132 -161
  47. package/lib/clang/{20 → 22}/include/avx512fintrin.h +1015 -1424
  48. package/lib/clang/{20 → 22}/include/avx512fp16intrin.h +114 -111
  49. package/lib/clang/22/include/avx512ifmaintrin.h +68 -0
  50. package/lib/clang/22/include/avx512ifmavlintrin.h +138 -0
  51. package/lib/clang/{20 → 22}/include/avx512vbmi2intrin.h +43 -32
  52. package/lib/clang/{20 → 22}/include/avx512vbmiintrin.h +19 -27
  53. package/lib/clang/{20 → 22}/include/avx512vbmivlintrin.h +35 -49
  54. package/lib/clang/{20 → 22}/include/avx512vlbf16intrin.h +32 -22
  55. package/lib/clang/{20 → 22}/include/avx512vlbitalgintrin.h +37 -53
  56. package/lib/clang/{20 → 22}/include/avx512vlbwintrin.h +470 -573
  57. package/lib/clang/22/include/avx512vlcdintrin.h +202 -0
  58. package/lib/clang/{20 → 22}/include/avx512vldqintrin.h +110 -127
  59. package/lib/clang/{20 → 22}/include/avx512vlfp16intrin.h +130 -111
  60. package/lib/clang/{20 → 22}/include/avx512vlintrin.h +945 -1299
  61. package/lib/clang/{20 → 22}/include/avx512vlvbmi2intrin.h +78 -63
  62. package/lib/clang/{20 → 22}/include/avx512vlvnniintrin.h +21 -18
  63. package/lib/clang/{20 → 22}/include/avx512vlvp2intersectintrin.h +2 -2
  64. package/lib/clang/{20 → 22}/include/avx512vnniintrin.h +10 -10
  65. package/lib/clang/{20 → 22}/include/avx512vp2intersectintrin.h +1 -2
  66. package/lib/clang/{20 → 22}/include/avx512vpopcntdqintrin.h +8 -10
  67. package/lib/clang/{20 → 22}/include/avx512vpopcntdqvlintrin.h +17 -15
  68. package/lib/clang/{20 → 22}/include/avxifmaintrin.h +16 -0
  69. package/lib/clang/{20 → 22}/include/avxintrin.h +165 -241
  70. package/lib/clang/{20 → 22}/include/avxvnniint16intrin.h +118 -99
  71. package/lib/clang/{20 → 22}/include/avxvnniint8intrin.h +56 -32
  72. package/lib/clang/{20 → 22}/include/avxvnniintrin.h +16 -8
  73. package/lib/clang/{20 → 22}/include/bmiintrin.h +0 -4
  74. package/lib/clang/{20 → 22}/include/cpuid.h +125 -26
  75. package/lib/clang/22/include/cuda_wrappers/__utility/declval.h +28 -0
  76. package/lib/clang/22/include/cuda_wrappers/bits/c++config.h +61 -0
  77. package/lib/clang/{20 → 22}/include/cuda_wrappers/cmath +0 -50
  78. package/lib/clang/{20 → 22}/include/emmintrin.h +168 -168
  79. package/lib/clang/{20 → 22}/include/f16cintrin.h +23 -9
  80. package/lib/clang/22/include/float.h +48 -0
  81. package/lib/clang/22/include/fma4intrin.h +220 -0
  82. package/lib/clang/{20 → 22}/include/fmaintrin.h +96 -66
  83. package/lib/clang/{20 → 22}/include/gfniintrin.h +21 -16
  84. package/lib/clang/{20 → 22}/include/gpuintrin.h +117 -11
  85. package/lib/clang/{20 → 22}/include/hexagon_types.h +23 -20
  86. package/lib/clang/{20/include/hlsl/hlsl_intrinsics.h → 22/include/hlsl/hlsl_alias_intrinsics.h} +643 -296
  87. package/lib/clang/22/include/hlsl/hlsl_basic_types.h +370 -0
  88. package/lib/clang/22/include/hlsl/hlsl_compat_overloads.h +520 -0
  89. package/lib/clang/22/include/hlsl/hlsl_detail.h +54 -0
  90. package/lib/clang/22/include/hlsl/hlsl_intrinsic_helpers.h +190 -0
  91. package/lib/clang/22/include/hlsl/hlsl_intrinsics.h +794 -0
  92. package/lib/clang/22/include/hlsl/hlsl_spirv.h +28 -0
  93. package/lib/clang/{20 → 22}/include/hlsl.h +12 -0
  94. package/lib/clang/{20 → 22}/include/hvx_hexagon_protos.h +649 -860
  95. package/lib/clang/{20 → 22}/include/immintrin.h +0 -236
  96. package/lib/clang/{20 → 22}/include/intrin.h +25 -4
  97. package/lib/clang/{20 → 22}/include/keylockerintrin.h +0 -9
  98. package/lib/clang/{20 → 22}/include/lasxintrin.h +113 -0
  99. package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/assert.h +3 -5
  100. package/lib/clang/22/include/llvm_libc_wrappers/ctype.h +28 -0
  101. package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/inttypes.h +3 -5
  102. package/lib/clang/22/include/llvm_libc_wrappers/stdio.h +52 -0
  103. package/lib/clang/22/include/llvm_libc_wrappers/stdlib.h +32 -0
  104. package/lib/clang/22/include/llvm_libc_wrappers/string.h +28 -0
  105. package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/time.h +4 -10
  106. package/lib/clang/{20 → 22}/include/lzcntintrin.h +6 -4
  107. package/lib/clang/{20 → 22}/include/mmintrin.h +188 -257
  108. package/lib/clang/{20 → 22}/include/module.modulemap +36 -4
  109. package/lib/clang/{20 → 22}/include/movrs_avx10_2_512intrin.h +2 -2
  110. package/lib/clang/{20 → 22}/include/movrs_avx10_2intrin.h +4 -4
  111. package/lib/clang/{20 → 22}/include/movrsintrin.h +1 -1
  112. package/lib/clang/{20 → 22}/include/nvptxintrin.h +48 -31
  113. package/lib/clang/{20 → 22}/include/opencl-c-base.h +18 -93
  114. package/lib/clang/{20 → 22}/include/opencl-c.h +360 -55
  115. package/lib/clang/{20 → 22}/include/pmmintrin.h +12 -24
  116. package/lib/clang/{20 → 22}/include/prfchwintrin.h +10 -13
  117. package/lib/clang/{20 → 22}/include/ptrauth.h +73 -2
  118. package/lib/clang/{20 → 22}/include/riscv_corev_alu.h +4 -4
  119. package/lib/clang/22/include/riscv_mips.h +34 -0
  120. package/lib/clang/22/include/riscv_nds.h +89 -0
  121. package/lib/clang/{20 → 22}/include/riscv_vector.h +0 -4
  122. package/lib/clang/{20 → 22}/include/shaintrin.h +3 -2
  123. package/lib/clang/{20 → 22}/include/sifive_vector.h +58 -2
  124. package/lib/clang/{20 → 22}/include/sm4evexintrin.h +2 -2
  125. package/lib/clang/{20 → 22}/include/smmintrin.h +77 -59
  126. package/lib/clang/22/include/spirvintrin.h +194 -0
  127. package/lib/clang/22/include/stdcountof.h +15 -0
  128. package/lib/clang/22/include/stddefer.h +19 -0
  129. package/lib/clang/{20 → 22}/include/stdint.h +18 -129
  130. package/lib/clang/{20 → 22}/include/tmmintrin.h +116 -147
  131. package/lib/clang/{20 → 22}/include/vaesintrin.h +1 -2
  132. package/lib/clang/{20 → 22}/include/vecintrin.h +5 -0
  133. package/lib/clang/{20 → 22}/include/x86gprintrin.h +0 -14
  134. package/lib/clang/{20 → 22}/include/x86intrin.h +0 -18
  135. package/lib/clang/{20 → 22}/include/xmmintrin.h +47 -72
  136. package/lib/clang/{20 → 22}/include/xopintrin.h +20 -10
  137. package/package.json +6 -6
  138. package/lib/clang/20/include/__clang_cuda_complex_builtins.h +0 -285
  139. package/lib/clang/20/include/amxbf16transposeintrin.h +0 -94
  140. package/lib/clang/20/include/amxcomplextransposeintrin.h +0 -303
  141. package/lib/clang/20/include/amxfp16transposeintrin.h +0 -94
  142. package/lib/clang/20/include/amxmovrstransposeintrin.h +0 -200
  143. package/lib/clang/20/include/amxtf32transposeintrin.h +0 -105
  144. package/lib/clang/20/include/amxtransposeintrin.h +0 -248
  145. package/lib/clang/20/include/avx10_2convertintrin.h +0 -589
  146. package/lib/clang/20/include/avx10_2niintrin.h +0 -2075
  147. package/lib/clang/20/include/avx10_2satcvtdsintrin.h +0 -496
  148. package/lib/clang/20/include/avx10_2satcvtintrin.h +0 -444
  149. package/lib/clang/20/include/avx512cdintrin.h +0 -125
  150. package/lib/clang/20/include/avx512ifmaintrin.h +0 -70
  151. package/lib/clang/20/include/avx512ifmavlintrin.h +0 -111
  152. package/lib/clang/20/include/avx512vlcdintrin.h +0 -230
  153. package/lib/clang/20/include/fma4intrin.h +0 -218
  154. package/lib/clang/20/include/hlsl/hlsl_basic_types.h +0 -120
  155. package/lib/clang/20/include/hlsl/hlsl_detail.h +0 -84
  156. package/lib/clang/20/include/llvm_libc_wrappers/ctype.h +0 -140
  157. package/lib/clang/20/include/llvm_libc_wrappers/stdio.h +0 -80
  158. package/lib/clang/20/include/llvm_libc_wrappers/stdlib.h +0 -53
  159. package/lib/clang/20/include/llvm_libc_wrappers/string.h +0 -96
  160. /package/lib/clang/{20 → 22}/include/__clang_cuda_builtin_vars.h +0 -0
  161. /package/lib/clang/{20 → 22}/include/__clang_cuda_cmath.h +0 -0
  162. /package/lib/clang/{20 → 22}/include/__clang_cuda_libdevice_declares.h +0 -0
  163. /package/lib/clang/{20 → 22}/include/__clang_cuda_math.h +0 -0
  164. /package/lib/clang/{20 → 22}/include/__clang_cuda_math_forward_declares.h +0 -0
  165. /package/lib/clang/{20 → 22}/include/__clang_hip_stdlib.h +0 -0
  166. /package/lib/clang/{20 → 22}/include/__stdarg___gnuc_va_list.h +0 -0
  167. /package/lib/clang/{20 → 22}/include/__stdarg___va_copy.h +0 -0
  168. /package/lib/clang/{20 → 22}/include/__stdarg_header_macro.h +0 -0
  169. /package/lib/clang/{20 → 22}/include/__stdarg_va_copy.h +0 -0
  170. /package/lib/clang/{20 → 22}/include/__stdarg_va_list.h +0 -0
  171. /package/lib/clang/{20 → 22}/include/__stddef_header_macro.h +0 -0
  172. /package/lib/clang/{20 → 22}/include/__stddef_max_align_t.h +0 -0
  173. /package/lib/clang/{20 → 22}/include/__stddef_null.h +0 -0
  174. /package/lib/clang/{20 → 22}/include/__stddef_nullptr_t.h +0 -0
  175. /package/lib/clang/{20 → 22}/include/__stddef_offsetof.h +0 -0
  176. /package/lib/clang/{20 → 22}/include/__stddef_ptrdiff_t.h +0 -0
  177. /package/lib/clang/{20 → 22}/include/__stddef_rsize_t.h +0 -0
  178. /package/lib/clang/{20 → 22}/include/__stddef_size_t.h +0 -0
  179. /package/lib/clang/{20 → 22}/include/__stddef_unreachable.h +0 -0
  180. /package/lib/clang/{20 → 22}/include/__stddef_wchar_t.h +0 -0
  181. /package/lib/clang/{20 → 22}/include/__stddef_wint_t.h +0 -0
  182. /package/lib/clang/{20 → 22}/include/__wmmintrin_aes.h +0 -0
  183. /package/lib/clang/{20 → 22}/include/__wmmintrin_pclmul.h +0 -0
  184. /package/lib/clang/{20 → 22}/include/adcintrin.h +0 -0
  185. /package/lib/clang/{20 → 22}/include/adxintrin.h +0 -0
  186. /package/lib/clang/{20 → 22}/include/ammintrin.h +0 -0
  187. /package/lib/clang/{20 → 22}/include/amxfp16intrin.h +0 -0
  188. /package/lib/clang/{20 → 22}/include/amxfp8intrin.h +0 -0
  189. /package/lib/clang/{20 → 22}/include/amxmovrsintrin.h +0 -0
  190. /package/lib/clang/{20 → 22}/include/amxtf32intrin.h +0 -0
  191. /package/lib/clang/{20 → 22}/include/arm64intr.h +0 -0
  192. /package/lib/clang/{20 → 22}/include/arm_bf16.h +0 -0
  193. /package/lib/clang/{20 → 22}/include/arm_cde.h +0 -0
  194. /package/lib/clang/{20 → 22}/include/arm_cmse.h +0 -0
  195. /package/lib/clang/{20 → 22}/include/arm_mve.h +0 -0
  196. /package/lib/clang/{20 → 22}/include/arm_neon_sve_bridge.h +0 -0
  197. /package/lib/clang/{20 → 22}/include/arm_vector_types.h +0 -0
  198. /package/lib/clang/{20 → 22}/include/armintr.h +0 -0
  199. /package/lib/clang/{20 → 22}/include/avx10_2_512minmaxintrin.h +0 -0
  200. /package/lib/clang/{20 → 22}/include/avxneconvertintrin.h +0 -0
  201. /package/lib/clang/{20 → 22}/include/bmi2intrin.h +0 -0
  202. /package/lib/clang/{20 → 22}/include/builtins.h +0 -0
  203. /package/lib/clang/{20 → 22}/include/cet.h +0 -0
  204. /package/lib/clang/{20 → 22}/include/cetintrin.h +0 -0
  205. /package/lib/clang/{20 → 22}/include/cldemoteintrin.h +0 -0
  206. /package/lib/clang/{20 → 22}/include/clflushoptintrin.h +0 -0
  207. /package/lib/clang/{20 → 22}/include/clwbintrin.h +0 -0
  208. /package/lib/clang/{20 → 22}/include/clzerointrin.h +0 -0
  209. /package/lib/clang/{20 → 22}/include/cmpccxaddintrin.h +0 -0
  210. /package/lib/clang/{20 → 22}/include/crc32intrin.h +0 -0
  211. /package/lib/clang/{20 → 22}/include/cuda_wrappers/algorithm +0 -0
  212. /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/basic_string.h +0 -0
  213. /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  214. /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  215. /package/lib/clang/{20 → 22}/include/cuda_wrappers/complex +0 -0
  216. /package/lib/clang/{20 → 22}/include/cuda_wrappers/new +0 -0
  217. /package/lib/clang/{20 → 22}/include/enqcmdintrin.h +0 -0
  218. /package/lib/clang/{20 → 22}/include/fxsrintrin.h +0 -0
  219. /package/lib/clang/{20 → 22}/include/hexagon_circ_brev_intrinsics.h +0 -0
  220. /package/lib/clang/{20 → 22}/include/hexagon_protos.h +0 -0
  221. /package/lib/clang/{20 → 22}/include/hresetintrin.h +0 -0
  222. /package/lib/clang/{20 → 22}/include/htmintrin.h +0 -0
  223. /package/lib/clang/{20 → 22}/include/htmxlintrin.h +0 -0
  224. /package/lib/clang/{20 → 22}/include/ia32intrin.h +0 -0
  225. /package/lib/clang/{20 → 22}/include/intrin0.h +0 -0
  226. /package/lib/clang/{20 → 22}/include/inttypes.h +0 -0
  227. /package/lib/clang/{20 → 22}/include/invpcidintrin.h +0 -0
  228. /package/lib/clang/{20 → 22}/include/iso646.h +0 -0
  229. /package/lib/clang/{20 → 22}/include/larchintrin.h +0 -0
  230. /package/lib/clang/{20 → 22}/include/limits.h +0 -0
  231. /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload.h +0 -0
  232. /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload_device.h +0 -0
  233. /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload_host.h +0 -0
  234. /package/lib/clang/{20 → 22}/include/lsxintrin.h +0 -0
  235. /package/lib/clang/{20 → 22}/include/lwpintrin.h +0 -0
  236. /package/lib/clang/{20 → 22}/include/mm3dnow.h +0 -0
  237. /package/lib/clang/{20 → 22}/include/mm_malloc.h +0 -0
  238. /package/lib/clang/{20 → 22}/include/movdirintrin.h +0 -0
  239. /package/lib/clang/{20 → 22}/include/msa.h +0 -0
  240. /package/lib/clang/{20 → 22}/include/mwaitxintrin.h +0 -0
  241. /package/lib/clang/{20 → 22}/include/nmmintrin.h +0 -0
  242. /package/lib/clang/{20 → 22}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
  243. /package/lib/clang/{20 → 22}/include/openmp_wrappers/cmath +0 -0
  244. /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex +0 -0
  245. /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex.h +0 -0
  246. /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex_cmath.h +0 -0
  247. /package/lib/clang/{20 → 22}/include/openmp_wrappers/math.h +0 -0
  248. /package/lib/clang/{20 → 22}/include/openmp_wrappers/new +0 -0
  249. /package/lib/clang/{20 → 22}/include/pconfigintrin.h +0 -0
  250. /package/lib/clang/{20 → 22}/include/pkuintrin.h +0 -0
  251. /package/lib/clang/{20 → 22}/include/popcntintrin.h +0 -0
  252. /package/lib/clang/{20 → 22}/include/ppc_wrappers/bmi2intrin.h +0 -0
  253. /package/lib/clang/{20 → 22}/include/ppc_wrappers/bmiintrin.h +0 -0
  254. /package/lib/clang/{20 → 22}/include/ppc_wrappers/emmintrin.h +0 -0
  255. /package/lib/clang/{20 → 22}/include/ppc_wrappers/immintrin.h +0 -0
  256. /package/lib/clang/{20 → 22}/include/ppc_wrappers/mm_malloc.h +0 -0
  257. /package/lib/clang/{20 → 22}/include/ppc_wrappers/mmintrin.h +0 -0
  258. /package/lib/clang/{20 → 22}/include/ppc_wrappers/nmmintrin.h +0 -0
  259. /package/lib/clang/{20 → 22}/include/ppc_wrappers/pmmintrin.h +0 -0
  260. /package/lib/clang/{20 → 22}/include/ppc_wrappers/smmintrin.h +0 -0
  261. /package/lib/clang/{20 → 22}/include/ppc_wrappers/tmmintrin.h +0 -0
  262. /package/lib/clang/{20 → 22}/include/ppc_wrappers/x86gprintrin.h +0 -0
  263. /package/lib/clang/{20 → 22}/include/ppc_wrappers/x86intrin.h +0 -0
  264. /package/lib/clang/{20 → 22}/include/ppc_wrappers/xmmintrin.h +0 -0
  265. /package/lib/clang/{20 → 22}/include/prfchiintrin.h +0 -0
  266. /package/lib/clang/{20 → 22}/include/ptwriteintrin.h +0 -0
  267. /package/lib/clang/{20 → 22}/include/raointintrin.h +0 -0
  268. /package/lib/clang/{20 → 22}/include/rdpruintrin.h +0 -0
  269. /package/lib/clang/{20 → 22}/include/rdseedintrin.h +0 -0
  270. /package/lib/clang/{20 → 22}/include/riscv_bitmanip.h +0 -0
  271. /package/lib/clang/{20 → 22}/include/riscv_crypto.h +0 -0
  272. /package/lib/clang/{20 → 22}/include/riscv_ntlh.h +0 -0
  273. /package/lib/clang/{20 → 22}/include/rtmintrin.h +0 -0
  274. /package/lib/clang/{20 → 22}/include/s390intrin.h +0 -0
  275. /package/lib/clang/{20 → 22}/include/serializeintrin.h +0 -0
  276. /package/lib/clang/{20 → 22}/include/sgxintrin.h +0 -0
  277. /package/lib/clang/{20 → 22}/include/sha512intrin.h +0 -0
  278. /package/lib/clang/{20 → 22}/include/sm3intrin.h +0 -0
  279. /package/lib/clang/{20 → 22}/include/sm4intrin.h +0 -0
  280. /package/lib/clang/{20 → 22}/include/stdalign.h +0 -0
  281. /package/lib/clang/{20 → 22}/include/stdarg.h +0 -0
  282. /package/lib/clang/{20 → 22}/include/stdatomic.h +0 -0
  283. /package/lib/clang/{20 → 22}/include/stdbool.h +0 -0
  284. /package/lib/clang/{20 → 22}/include/stdckdint.h +0 -0
  285. /package/lib/clang/{20 → 22}/include/stddef.h +0 -0
  286. /package/lib/clang/{20 → 22}/include/stdnoreturn.h +0 -0
  287. /package/lib/clang/{20 → 22}/include/tbmintrin.h +0 -0
  288. /package/lib/clang/{20 → 22}/include/tgmath.h +0 -0
  289. /package/lib/clang/{20 → 22}/include/tsxldtrkintrin.h +0 -0
  290. /package/lib/clang/{20 → 22}/include/uintrintrin.h +0 -0
  291. /package/lib/clang/{20 → 22}/include/unwind.h +0 -0
  292. /package/lib/clang/{20 → 22}/include/usermsrintrin.h +0 -0
  293. /package/lib/clang/{20 → 22}/include/vadefs.h +0 -0
  294. /package/lib/clang/{20 → 22}/include/varargs.h +0 -0
  295. /package/lib/clang/{20 → 22}/include/velintrin.h +0 -0
  296. /package/lib/clang/{20 → 22}/include/velintrin_approx.h +0 -0
  297. /package/lib/clang/{20 → 22}/include/velintrin_gen.h +0 -0
  298. /package/lib/clang/{20 → 22}/include/vpclmulqdqintrin.h +0 -0
  299. /package/lib/clang/{20 → 22}/include/waitpkgintrin.h +0 -0
  300. /package/lib/clang/{20 → 22}/include/wasm_simd128.h +0 -0
  301. /package/lib/clang/{20 → 22}/include/wbnoinvdintrin.h +0 -0
  302. /package/lib/clang/{20 → 22}/include/wmmintrin.h +0 -0
  303. /package/lib/clang/{20 → 22}/include/xsavecintrin.h +0 -0
  304. /package/lib/clang/{20 → 22}/include/xsaveintrin.h +0 -0
  305. /package/lib/clang/{20 → 22}/include/xsaveoptintrin.h +0 -0
  306. /package/lib/clang/{20 → 22}/include/xsavesintrin.h +0 -0
  307. /package/lib/clang/{20 → 22}/include/xtestintrin.h +0 -0
  308. /package/lib/clang/{20 → 22}/include/yvals_core.h +0 -0
  309. /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 __tex_fetch(__T *__ptr, cudaTextureObject_t __handle,
663
- __Args... __args) {
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 ambibuity. e.g. floor(5) is resolved with
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 ambibuity. e.g.
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__ typename __hip_enable_if< \
468
- __hip::is_arithmetic<__T1>::value && __hip::is_arithmetic<__T2>::value, \
469
- typename __hip::__promote<__T1, __T2>::type>::type \
470
- __fn(__T1 __x, __T2 __y) { \
471
- typedef typename __hip::__promote<__T1, __T2>::type __result_type; \
472
- return __fn((__result_type)__x, (__result_type)__y); \
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) \