@cpp-linter/clang-tidy-win32-x64 19.1.0 → 21.1.0

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 (285) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/{19 → 21}/include/__clang_cuda_device_functions.h +14 -0
  4. package/lib/clang/{19 → 21}/include/__clang_cuda_intrinsics.h +295 -8
  5. package/lib/clang/{19 → 21}/include/__clang_cuda_math.h +5 -0
  6. package/lib/clang/{19 → 21}/include/__clang_cuda_runtime_wrapper.h +1 -0
  7. package/lib/clang/{19 → 21}/include/__clang_cuda_texture_intrinsics.h +437 -2
  8. package/lib/clang/{19 → 21}/include/__clang_hip_cmath.h +15 -9
  9. package/lib/clang/{19 → 21}/include/__clang_hip_libdevice_declares.h +12 -20
  10. package/lib/clang/{19 → 21}/include/__clang_hip_math.h +110 -29
  11. package/lib/clang/{19 → 21}/include/__clang_hip_runtime_wrapper.h +3 -0
  12. package/lib/clang/21/include/__clang_spirv_builtins.h +217 -0
  13. package/lib/clang/{19 → 21}/include/__stdarg_va_arg.h +2 -2
  14. package/lib/clang/{19 → 21}/include/adcintrin.h +5 -0
  15. package/lib/clang/{19 → 21}/include/adxintrin.h +5 -0
  16. package/lib/clang/{19 → 21}/include/altivec.h +90 -87
  17. package/lib/clang/21/include/amdgpuintrin.h +191 -0
  18. package/lib/clang/21/include/amxavx512intrin.h +382 -0
  19. package/lib/clang/21/include/amxbf16transposeintrin.h +94 -0
  20. package/lib/clang/{19 → 21}/include/amxcomplexintrin.h +4 -6
  21. package/lib/clang/21/include/amxcomplextransposeintrin.h +303 -0
  22. package/lib/clang/{19 → 21}/include/amxfp16intrin.h +35 -0
  23. package/lib/clang/21/include/amxfp16transposeintrin.h +94 -0
  24. package/lib/clang/21/include/amxfp8intrin.h +230 -0
  25. package/lib/clang/{19 → 21}/include/amxintrin.h +5 -35
  26. package/lib/clang/21/include/amxmovrsintrin.h +48 -0
  27. package/lib/clang/21/include/amxmovrstransposeintrin.h +200 -0
  28. package/lib/clang/21/include/amxtf32intrin.h +108 -0
  29. package/lib/clang/21/include/amxtf32transposeintrin.h +105 -0
  30. package/lib/clang/21/include/amxtransposeintrin.h +248 -0
  31. package/lib/clang/{19/include/hlsl.h → 21/include/andes_vector.h} +7 -6
  32. package/lib/clang/{19 → 21}/include/arm_acle.h +29 -62
  33. package/lib/clang/{19 → 21}/include/arm_fp16.h +89 -89
  34. package/lib/clang/{19 → 21}/include/arm_neon.h +24549 -20140
  35. package/lib/clang/{19 → 21}/include/arm_sme.h +1016 -94
  36. package/lib/clang/{19 → 21}/include/arm_sve.h +4633 -3272
  37. package/lib/clang/{19 → 21}/include/arm_vector_types.h +87 -0
  38. package/lib/clang/21/include/avx10_2_512bf16intrin.h +561 -0
  39. package/lib/clang/21/include/avx10_2_512convertintrin.h +322 -0
  40. package/lib/clang/21/include/avx10_2_512minmaxintrin.h +127 -0
  41. package/lib/clang/21/include/avx10_2_512niintrin.h +314 -0
  42. package/lib/clang/21/include/avx10_2_512satcvtdsintrin.h +307 -0
  43. package/lib/clang/21/include/avx10_2_512satcvtintrin.h +301 -0
  44. package/lib/clang/21/include/avx10_2bf16intrin.h +1085 -0
  45. package/lib/clang/21/include/avx10_2convertintrin.h +3257 -0
  46. package/lib/clang/21/include/avx10_2copyintrin.h +66 -0
  47. package/lib/clang/21/include/avx10_2minmaxintrin.h +232 -0
  48. package/lib/clang/21/include/avx10_2niintrin.h +409 -0
  49. package/lib/clang/21/include/avx10_2satcvtdsintrin.h +376 -0
  50. package/lib/clang/21/include/avx10_2satcvtintrin.h +312 -0
  51. package/lib/clang/{19 → 21}/include/avx2intrin.h +9 -0
  52. package/lib/clang/{19 → 21}/include/avx512bitalgintrin.h +2 -2
  53. package/lib/clang/{19 → 21}/include/avx512fintrin.h +22 -14
  54. package/lib/clang/{19 → 21}/include/avx512fp16intrin.h +2 -1
  55. package/lib/clang/{19 → 21}/include/avx512vlbitalgintrin.h +4 -4
  56. package/lib/clang/{19 → 21}/include/avx512vpopcntdqintrin.h +12 -4
  57. package/lib/clang/{19 → 21}/include/avx512vpopcntdqvlintrin.h +16 -8
  58. package/lib/clang/{19 → 21}/include/avxintrin.h +30 -16
  59. package/lib/clang/{19 → 21}/include/avxvnniint16intrin.h +36 -77
  60. package/lib/clang/{19 → 21}/include/avxvnniint8intrin.h +36 -77
  61. package/lib/clang/{19 → 21}/include/bmi2intrin.h +15 -17
  62. package/lib/clang/{19 → 21}/include/bmiintrin.h +31 -41
  63. package/lib/clang/{19 → 21}/include/cmpccxaddintrin.h +1 -1
  64. package/lib/clang/{19 → 21}/include/cpuid.h +36 -33
  65. package/lib/clang/21/include/cuda_wrappers/bits/c++config.h +61 -0
  66. package/lib/clang/21/include/cuda_wrappers/cmath +44 -0
  67. package/lib/clang/{19 → 21}/include/cuda_wrappers/new +2 -0
  68. package/lib/clang/{19 → 21}/include/emmintrin.h +141 -107
  69. package/lib/clang/{19 → 21}/include/float.h +2 -11
  70. package/lib/clang/{19 → 21}/include/gfniintrin.h +32 -10
  71. package/lib/clang/21/include/gpuintrin.h +328 -0
  72. package/lib/clang/{19 → 21}/include/hexagon_types.h +8 -4
  73. package/lib/clang/{19/include/hlsl/hlsl_intrinsics.h → 21/include/hlsl/hlsl_alias_intrinsics.h} +1214 -100
  74. package/lib/clang/{19 → 21}/include/hlsl/hlsl_basic_types.h +47 -1
  75. package/lib/clang/21/include/hlsl/hlsl_compat_overloads.h +427 -0
  76. package/lib/clang/21/include/hlsl/hlsl_detail.h +54 -0
  77. package/lib/clang/21/include/hlsl/hlsl_intrinsic_helpers.h +144 -0
  78. package/lib/clang/21/include/hlsl/hlsl_intrinsics.h +526 -0
  79. package/lib/clang/21/include/hlsl/hlsl_spirv.h +28 -0
  80. package/lib/clang/21/include/hlsl.h +38 -0
  81. package/lib/clang/{19 → 21}/include/hvx_hexagon_protos.h +427 -0
  82. package/lib/clang/{19 → 21}/include/immintrin.h +45 -185
  83. package/lib/clang/{19 → 21}/include/intrin.h +41 -14
  84. package/lib/clang/{19 → 21}/include/intrin0.h +10 -1
  85. package/lib/clang/{19 → 21}/include/keylockerintrin.h +0 -9
  86. package/lib/clang/{19 → 21}/include/larchintrin.h +22 -8
  87. package/lib/clang/{19 → 21}/include/lasxintrin.h +27 -25
  88. package/lib/clang/{19 → 21}/include/limits.h +7 -4
  89. package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/ctype.h +38 -0
  90. package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/stdlib.h +9 -1
  91. package/lib/clang/21/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  92. package/lib/clang/21/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  93. package/lib/clang/21/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  94. package/lib/clang/{19 → 21}/include/lsxintrin.h +27 -25
  95. package/lib/clang/{19 → 21}/include/lzcntintrin.h +13 -8
  96. package/lib/clang/{19 → 21}/include/mmintrin.h +209 -155
  97. package/lib/clang/{19 → 21}/include/module.modulemap +15 -4
  98. package/lib/clang/21/include/movrs_avx10_2_512intrin.h +98 -0
  99. package/lib/clang/21/include/movrs_avx10_2intrin.h +174 -0
  100. package/lib/clang/21/include/movrsintrin.h +59 -0
  101. package/lib/clang/21/include/nvptxintrin.h +219 -0
  102. package/lib/clang/{19 → 21}/include/opencl-c-base.h +23 -1
  103. package/lib/clang/{19 → 21}/include/opencl-c.h +298 -39
  104. package/lib/clang/{19 → 21}/include/openmp_wrappers/__clang_openmp_device_functions.h +4 -5
  105. package/lib/clang/{19 → 21}/include/openmp_wrappers/complex_cmath.h +7 -2
  106. package/lib/clang/{19 → 21}/include/pmmintrin.h +16 -3
  107. package/lib/clang/{19 → 21}/include/popcntintrin.h +7 -7
  108. package/lib/clang/{19 → 21}/include/prfchwintrin.h +10 -13
  109. package/lib/clang/{19 → 21}/include/ptrauth.h +65 -2
  110. package/lib/clang/21/include/riscv_corev_alu.h +128 -0
  111. package/lib/clang/{19 → 21}/include/riscv_vector.h +0 -5
  112. package/lib/clang/{19 → 21}/include/shaintrin.h +3 -2
  113. package/lib/clang/21/include/sm4evexintrin.h +32 -0
  114. package/lib/clang/{19 → 21}/include/smmintrin.h +6 -0
  115. package/lib/clang/{19 → 21}/include/stdalign.h +0 -5
  116. package/lib/clang/21/include/stdcountof.h +15 -0
  117. package/lib/clang/{19 → 21}/include/stdint.h +18 -129
  118. package/lib/clang/{19 → 21}/include/tbmintrin.h +25 -37
  119. package/lib/clang/{19 → 21}/include/tmmintrin.h +64 -38
  120. package/lib/clang/{19 → 21}/include/vecintrin.h +1784 -61
  121. package/lib/clang/{19 → 21}/include/wasm_simd128.h +167 -21
  122. package/lib/clang/{19 → 21}/include/x86gprintrin.h +0 -14
  123. package/lib/clang/{19 → 21}/include/x86intrin.h +0 -18
  124. package/lib/clang/{19 → 21}/include/xmmintrin.h +173 -179
  125. package/package.json +6 -6
  126. package/lib/clang/19/include/cuda_wrappers/cmath +0 -90
  127. /package/lib/clang/{19 → 21}/include/__clang_cuda_builtin_vars.h +0 -0
  128. /package/lib/clang/{19 → 21}/include/__clang_cuda_cmath.h +0 -0
  129. /package/lib/clang/{19 → 21}/include/__clang_cuda_complex_builtins.h +0 -0
  130. /package/lib/clang/{19 → 21}/include/__clang_cuda_libdevice_declares.h +0 -0
  131. /package/lib/clang/{19 → 21}/include/__clang_cuda_math_forward_declares.h +0 -0
  132. /package/lib/clang/{19 → 21}/include/__clang_hip_stdlib.h +0 -0
  133. /package/lib/clang/{19 → 21}/include/__stdarg___gnuc_va_list.h +0 -0
  134. /package/lib/clang/{19 → 21}/include/__stdarg___va_copy.h +0 -0
  135. /package/lib/clang/{19 → 21}/include/__stdarg_header_macro.h +0 -0
  136. /package/lib/clang/{19 → 21}/include/__stdarg_va_copy.h +0 -0
  137. /package/lib/clang/{19 → 21}/include/__stdarg_va_list.h +0 -0
  138. /package/lib/clang/{19 → 21}/include/__stddef_header_macro.h +0 -0
  139. /package/lib/clang/{19 → 21}/include/__stddef_max_align_t.h +0 -0
  140. /package/lib/clang/{19 → 21}/include/__stddef_null.h +0 -0
  141. /package/lib/clang/{19 → 21}/include/__stddef_nullptr_t.h +0 -0
  142. /package/lib/clang/{19 → 21}/include/__stddef_offsetof.h +0 -0
  143. /package/lib/clang/{19 → 21}/include/__stddef_ptrdiff_t.h +0 -0
  144. /package/lib/clang/{19 → 21}/include/__stddef_rsize_t.h +0 -0
  145. /package/lib/clang/{19 → 21}/include/__stddef_size_t.h +0 -0
  146. /package/lib/clang/{19 → 21}/include/__stddef_unreachable.h +0 -0
  147. /package/lib/clang/{19 → 21}/include/__stddef_wchar_t.h +0 -0
  148. /package/lib/clang/{19 → 21}/include/__stddef_wint_t.h +0 -0
  149. /package/lib/clang/{19 → 21}/include/__wmmintrin_aes.h +0 -0
  150. /package/lib/clang/{19 → 21}/include/__wmmintrin_pclmul.h +0 -0
  151. /package/lib/clang/{19 → 21}/include/ammintrin.h +0 -0
  152. /package/lib/clang/{19 → 21}/include/arm64intr.h +0 -0
  153. /package/lib/clang/{19 → 21}/include/arm_bf16.h +0 -0
  154. /package/lib/clang/{19 → 21}/include/arm_cde.h +0 -0
  155. /package/lib/clang/{19 → 21}/include/arm_cmse.h +0 -0
  156. /package/lib/clang/{19 → 21}/include/arm_mve.h +0 -0
  157. /package/lib/clang/{19 → 21}/include/arm_neon_sve_bridge.h +0 -0
  158. /package/lib/clang/{19 → 21}/include/armintr.h +0 -0
  159. /package/lib/clang/{19 → 21}/include/avx512bf16intrin.h +0 -0
  160. /package/lib/clang/{19 → 21}/include/avx512bwintrin.h +0 -0
  161. /package/lib/clang/{19 → 21}/include/avx512cdintrin.h +0 -0
  162. /package/lib/clang/{19 → 21}/include/avx512dqintrin.h +0 -0
  163. /package/lib/clang/{19 → 21}/include/avx512ifmaintrin.h +0 -0
  164. /package/lib/clang/{19 → 21}/include/avx512ifmavlintrin.h +0 -0
  165. /package/lib/clang/{19 → 21}/include/avx512vbmi2intrin.h +0 -0
  166. /package/lib/clang/{19 → 21}/include/avx512vbmiintrin.h +0 -0
  167. /package/lib/clang/{19 → 21}/include/avx512vbmivlintrin.h +0 -0
  168. /package/lib/clang/{19 → 21}/include/avx512vlbf16intrin.h +0 -0
  169. /package/lib/clang/{19 → 21}/include/avx512vlbwintrin.h +0 -0
  170. /package/lib/clang/{19 → 21}/include/avx512vlcdintrin.h +0 -0
  171. /package/lib/clang/{19 → 21}/include/avx512vldqintrin.h +0 -0
  172. /package/lib/clang/{19 → 21}/include/avx512vlfp16intrin.h +0 -0
  173. /package/lib/clang/{19 → 21}/include/avx512vlintrin.h +0 -0
  174. /package/lib/clang/{19 → 21}/include/avx512vlvbmi2intrin.h +0 -0
  175. /package/lib/clang/{19 → 21}/include/avx512vlvnniintrin.h +0 -0
  176. /package/lib/clang/{19 → 21}/include/avx512vlvp2intersectintrin.h +0 -0
  177. /package/lib/clang/{19 → 21}/include/avx512vnniintrin.h +0 -0
  178. /package/lib/clang/{19 → 21}/include/avx512vp2intersectintrin.h +0 -0
  179. /package/lib/clang/{19 → 21}/include/avxifmaintrin.h +0 -0
  180. /package/lib/clang/{19 → 21}/include/avxneconvertintrin.h +0 -0
  181. /package/lib/clang/{19 → 21}/include/avxvnniintrin.h +0 -0
  182. /package/lib/clang/{19 → 21}/include/builtins.h +0 -0
  183. /package/lib/clang/{19 → 21}/include/cet.h +0 -0
  184. /package/lib/clang/{19 → 21}/include/cetintrin.h +0 -0
  185. /package/lib/clang/{19 → 21}/include/cldemoteintrin.h +0 -0
  186. /package/lib/clang/{19 → 21}/include/clflushoptintrin.h +0 -0
  187. /package/lib/clang/{19 → 21}/include/clwbintrin.h +0 -0
  188. /package/lib/clang/{19 → 21}/include/clzerointrin.h +0 -0
  189. /package/lib/clang/{19 → 21}/include/crc32intrin.h +0 -0
  190. /package/lib/clang/{19 → 21}/include/cuda_wrappers/algorithm +0 -0
  191. /package/lib/clang/{19 → 21}/include/cuda_wrappers/bits/basic_string.h +0 -0
  192. /package/lib/clang/{19 → 21}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  193. /package/lib/clang/{19 → 21}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  194. /package/lib/clang/{19 → 21}/include/cuda_wrappers/complex +0 -0
  195. /package/lib/clang/{19 → 21}/include/enqcmdintrin.h +0 -0
  196. /package/lib/clang/{19 → 21}/include/f16cintrin.h +0 -0
  197. /package/lib/clang/{19 → 21}/include/fma4intrin.h +0 -0
  198. /package/lib/clang/{19 → 21}/include/fmaintrin.h +0 -0
  199. /package/lib/clang/{19 → 21}/include/fxsrintrin.h +0 -0
  200. /package/lib/clang/{19 → 21}/include/hexagon_circ_brev_intrinsics.h +0 -0
  201. /package/lib/clang/{19 → 21}/include/hexagon_protos.h +0 -0
  202. /package/lib/clang/{19 → 21}/include/hresetintrin.h +0 -0
  203. /package/lib/clang/{19 → 21}/include/htmintrin.h +0 -0
  204. /package/lib/clang/{19 → 21}/include/htmxlintrin.h +0 -0
  205. /package/lib/clang/{19 → 21}/include/ia32intrin.h +0 -0
  206. /package/lib/clang/{19 → 21}/include/inttypes.h +0 -0
  207. /package/lib/clang/{19 → 21}/include/invpcidintrin.h +0 -0
  208. /package/lib/clang/{19 → 21}/include/iso646.h +0 -0
  209. /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/assert.h +0 -0
  210. /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/inttypes.h +0 -0
  211. /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/stdio.h +0 -0
  212. /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/string.h +0 -0
  213. /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/time.h +0 -0
  214. /package/lib/clang/{19 → 21}/include/lwpintrin.h +0 -0
  215. /package/lib/clang/{19 → 21}/include/mm3dnow.h +0 -0
  216. /package/lib/clang/{19 → 21}/include/mm_malloc.h +0 -0
  217. /package/lib/clang/{19 → 21}/include/movdirintrin.h +0 -0
  218. /package/lib/clang/{19 → 21}/include/msa.h +0 -0
  219. /package/lib/clang/{19 → 21}/include/mwaitxintrin.h +0 -0
  220. /package/lib/clang/{19 → 21}/include/nmmintrin.h +0 -0
  221. /package/lib/clang/{19 → 21}/include/openmp_wrappers/cmath +0 -0
  222. /package/lib/clang/{19 → 21}/include/openmp_wrappers/complex +0 -0
  223. /package/lib/clang/{19 → 21}/include/openmp_wrappers/complex.h +0 -0
  224. /package/lib/clang/{19 → 21}/include/openmp_wrappers/math.h +0 -0
  225. /package/lib/clang/{19 → 21}/include/openmp_wrappers/new +0 -0
  226. /package/lib/clang/{19 → 21}/include/pconfigintrin.h +0 -0
  227. /package/lib/clang/{19 → 21}/include/pkuintrin.h +0 -0
  228. /package/lib/clang/{19 → 21}/include/ppc_wrappers/bmi2intrin.h +0 -0
  229. /package/lib/clang/{19 → 21}/include/ppc_wrappers/bmiintrin.h +0 -0
  230. /package/lib/clang/{19 → 21}/include/ppc_wrappers/emmintrin.h +0 -0
  231. /package/lib/clang/{19 → 21}/include/ppc_wrappers/immintrin.h +0 -0
  232. /package/lib/clang/{19 → 21}/include/ppc_wrappers/mm_malloc.h +0 -0
  233. /package/lib/clang/{19 → 21}/include/ppc_wrappers/mmintrin.h +0 -0
  234. /package/lib/clang/{19 → 21}/include/ppc_wrappers/nmmintrin.h +0 -0
  235. /package/lib/clang/{19 → 21}/include/ppc_wrappers/pmmintrin.h +0 -0
  236. /package/lib/clang/{19 → 21}/include/ppc_wrappers/smmintrin.h +0 -0
  237. /package/lib/clang/{19 → 21}/include/ppc_wrappers/tmmintrin.h +0 -0
  238. /package/lib/clang/{19 → 21}/include/ppc_wrappers/x86gprintrin.h +0 -0
  239. /package/lib/clang/{19 → 21}/include/ppc_wrappers/x86intrin.h +0 -0
  240. /package/lib/clang/{19 → 21}/include/ppc_wrappers/xmmintrin.h +0 -0
  241. /package/lib/clang/{19 → 21}/include/prfchiintrin.h +0 -0
  242. /package/lib/clang/{19 → 21}/include/ptwriteintrin.h +0 -0
  243. /package/lib/clang/{19 → 21}/include/raointintrin.h +0 -0
  244. /package/lib/clang/{19 → 21}/include/rdpruintrin.h +0 -0
  245. /package/lib/clang/{19 → 21}/include/rdseedintrin.h +0 -0
  246. /package/lib/clang/{19 → 21}/include/riscv_bitmanip.h +0 -0
  247. /package/lib/clang/{19 → 21}/include/riscv_crypto.h +0 -0
  248. /package/lib/clang/{19 → 21}/include/riscv_ntlh.h +0 -0
  249. /package/lib/clang/{19 → 21}/include/rtmintrin.h +0 -0
  250. /package/lib/clang/{19 → 21}/include/s390intrin.h +0 -0
  251. /package/lib/clang/{19 → 21}/include/serializeintrin.h +0 -0
  252. /package/lib/clang/{19 → 21}/include/sgxintrin.h +0 -0
  253. /package/lib/clang/{19 → 21}/include/sha512intrin.h +0 -0
  254. /package/lib/clang/{19 → 21}/include/sifive_vector.h +0 -0
  255. /package/lib/clang/{19 → 21}/include/sm3intrin.h +0 -0
  256. /package/lib/clang/{19 → 21}/include/sm4intrin.h +0 -0
  257. /package/lib/clang/{19 → 21}/include/stdarg.h +0 -0
  258. /package/lib/clang/{19 → 21}/include/stdatomic.h +0 -0
  259. /package/lib/clang/{19 → 21}/include/stdbool.h +0 -0
  260. /package/lib/clang/{19 → 21}/include/stdckdint.h +0 -0
  261. /package/lib/clang/{19 → 21}/include/stddef.h +0 -0
  262. /package/lib/clang/{19 → 21}/include/stdnoreturn.h +0 -0
  263. /package/lib/clang/{19 → 21}/include/tgmath.h +0 -0
  264. /package/lib/clang/{19 → 21}/include/tsxldtrkintrin.h +0 -0
  265. /package/lib/clang/{19 → 21}/include/uintrintrin.h +0 -0
  266. /package/lib/clang/{19 → 21}/include/unwind.h +0 -0
  267. /package/lib/clang/{19 → 21}/include/usermsrintrin.h +0 -0
  268. /package/lib/clang/{19 → 21}/include/vadefs.h +0 -0
  269. /package/lib/clang/{19 → 21}/include/vaesintrin.h +0 -0
  270. /package/lib/clang/{19 → 21}/include/varargs.h +0 -0
  271. /package/lib/clang/{19 → 21}/include/velintrin.h +0 -0
  272. /package/lib/clang/{19 → 21}/include/velintrin_approx.h +0 -0
  273. /package/lib/clang/{19 → 21}/include/velintrin_gen.h +0 -0
  274. /package/lib/clang/{19 → 21}/include/vpclmulqdqintrin.h +0 -0
  275. /package/lib/clang/{19 → 21}/include/waitpkgintrin.h +0 -0
  276. /package/lib/clang/{19 → 21}/include/wbnoinvdintrin.h +0 -0
  277. /package/lib/clang/{19 → 21}/include/wmmintrin.h +0 -0
  278. /package/lib/clang/{19 → 21}/include/xopintrin.h +0 -0
  279. /package/lib/clang/{19 → 21}/include/xsavecintrin.h +0 -0
  280. /package/lib/clang/{19 → 21}/include/xsaveintrin.h +0 -0
  281. /package/lib/clang/{19 → 21}/include/xsaveoptintrin.h +0 -0
  282. /package/lib/clang/{19 → 21}/include/xsavesintrin.h +0 -0
  283. /package/lib/clang/{19 → 21}/include/xtestintrin.h +0 -0
  284. /package/lib/clang/{19 → 21}/include/yvals_core.h +0 -0
  285. /package/lib/clang/{19 → 21}/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__
@@ -395,7 +395,12 @@ template <class _Tp> struct __numeric_type {
395
395
  // No support for long double, use double instead.
396
396
  static double __test(long double);
397
397
 
398
- typedef decltype(__test(declval<_Tp>())) type;
398
+ template <typename _U>
399
+ static auto __test_impl(int) -> decltype(__test(declval<_U>()));
400
+
401
+ template <typename _U> static void __test_impl(...);
402
+
403
+ typedef decltype(__test_impl<_Tp>(0)) type;
399
404
  static const bool value = !is_same<type, void>::value;
400
405
  };
401
406
 
@@ -443,7 +448,7 @@ class __promote : public __promote_imp<_A1, _A2, _A3> {};
443
448
  } // namespace __hip
444
449
 
445
450
  // __HIP_OVERLOAD1 is used to resolve function calls with integer argument to
446
- // 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
447
452
  // floor(double).
448
453
  #define __HIP_OVERLOAD1(__retty, __fn) \
449
454
  template <typename __T> \
@@ -454,17 +459,18 @@ class __promote : public __promote_imp<_A1, _A2, _A3> {};
454
459
  }
455
460
 
456
461
  // __HIP_OVERLOAD2 is used to resolve function calls with mixed float/double
457
- // 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.
458
463
  // max(5.0f, 6.0) is resolved with max(double, double).
459
464
  #if __cplusplus >= 201103L
460
465
  #define __HIP_OVERLOAD2(__retty, __fn) \
461
466
  template <typename __T1, typename __T2> \
462
- __DEVICE__ __CONSTEXPR__ typename __hip_enable_if< \
463
- __hip::is_arithmetic<__T1>::value && __hip::is_arithmetic<__T2>::value, \
464
- typename __hip::__promote<__T1, __T2>::type>::type \
465
- __fn(__T1 __x, __T2 __y) { \
466
- typedef typename __hip::__promote<__T1, __T2>::type __result_type; \
467
- 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); \
468
474
  }
469
475
  #else
470
476
  #define __HIP_OVERLOAD2(__retty, __fn) \
@@ -14,6 +14,8 @@
14
14
  #include "hip/hip_version.h"
15
15
  #endif // __has_include("hip/hip_version.h")
16
16
 
17
+ #define __PRIVATE_AS __attribute__((opencl_private))
18
+
17
19
  #ifdef __cplusplus
18
20
  extern "C" {
19
21
  #endif
@@ -55,8 +57,7 @@ __device__ __attribute__((const)) float __ocml_fmax_f32(float, float);
55
57
  __device__ __attribute__((const)) float __ocml_fmin_f32(float, float);
56
58
  __device__ __attribute__((const)) __device__ float __ocml_fmod_f32(float,
57
59
  float);
58
- __device__ float __ocml_frexp_f32(float,
59
- __attribute__((address_space(5))) int *);
60
+ __device__ float __ocml_frexp_f32(float, __PRIVATE_AS int *);
60
61
  __device__ __attribute__((const)) float __ocml_hypot_f32(float, float);
61
62
  __device__ __attribute__((const)) int __ocml_ilogb_f32(float);
62
63
  __device__ __attribute__((const)) int __ocml_isfinite_f32(float);
@@ -74,8 +75,7 @@ __device__ __attribute__((pure)) float __ocml_native_log2_f32(float);
74
75
  __device__ __attribute__((const)) float __ocml_logb_f32(float);
75
76
  __device__ __attribute__((pure)) float __ocml_log_f32(float);
76
77
  __device__ __attribute__((pure)) float __ocml_native_log_f32(float);
77
- __device__ float __ocml_modf_f32(float,
78
- __attribute__((address_space(5))) float *);
78
+ __device__ float __ocml_modf_f32(float, __PRIVATE_AS float *);
79
79
  __device__ __attribute__((const)) float __ocml_nearbyint_f32(float);
80
80
  __device__ __attribute__((const)) float __ocml_nextafter_f32(float, float);
81
81
  __device__ __attribute__((const)) float __ocml_len3_f32(float, float, float);
@@ -87,8 +87,7 @@ __device__ __attribute__((pure)) float __ocml_pow_f32(float, float);
87
87
  __device__ __attribute__((pure)) float __ocml_pown_f32(float, int);
88
88
  __device__ __attribute__((pure)) float __ocml_rcbrt_f32(float);
89
89
  __device__ __attribute__((const)) float __ocml_remainder_f32(float, float);
90
- __device__ float __ocml_remquo_f32(float, float,
91
- __attribute__((address_space(5))) int *);
90
+ __device__ float __ocml_remquo_f32(float, float, __PRIVATE_AS int *);
92
91
  __device__ __attribute__((const)) float __ocml_rhypot_f32(float, float);
93
92
  __device__ __attribute__((const)) float __ocml_rint_f32(float);
94
93
  __device__ __attribute__((const)) float __ocml_rlen3_f32(float, float, float);
@@ -99,10 +98,8 @@ __device__ __attribute__((pure)) float __ocml_rsqrt_f32(float);
99
98
  __device__ __attribute__((const)) float __ocml_scalb_f32(float, float);
100
99
  __device__ __attribute__((const)) float __ocml_scalbn_f32(float, int);
101
100
  __device__ __attribute__((const)) int __ocml_signbit_f32(float);
102
- __device__ float __ocml_sincos_f32(float,
103
- __attribute__((address_space(5))) float *);
104
- __device__ float __ocml_sincospi_f32(float,
105
- __attribute__((address_space(5))) float *);
101
+ __device__ float __ocml_sincos_f32(float, __PRIVATE_AS float *);
102
+ __device__ float __ocml_sincospi_f32(float, __PRIVATE_AS float *);
106
103
  __device__ float __ocml_sin_f32(float);
107
104
  __device__ float __ocml_native_sin_f32(float);
108
105
  __device__ __attribute__((pure)) float __ocml_sinh_f32(float);
@@ -176,8 +173,7 @@ __device__ __attribute__((const)) double __ocml_fma_f64(double, double, double);
176
173
  __device__ __attribute__((const)) double __ocml_fmax_f64(double, double);
177
174
  __device__ __attribute__((const)) double __ocml_fmin_f64(double, double);
178
175
  __device__ __attribute__((const)) double __ocml_fmod_f64(double, double);
179
- __device__ double __ocml_frexp_f64(double,
180
- __attribute__((address_space(5))) int *);
176
+ __device__ double __ocml_frexp_f64(double, __PRIVATE_AS int *);
181
177
  __device__ __attribute__((const)) double __ocml_hypot_f64(double, double);
182
178
  __device__ __attribute__((const)) int __ocml_ilogb_f64(double);
183
179
  __device__ __attribute__((const)) int __ocml_isfinite_f64(double);
@@ -192,8 +188,7 @@ __device__ __attribute__((pure)) double __ocml_log1p_f64(double);
192
188
  __device__ __attribute__((pure)) double __ocml_log2_f64(double);
193
189
  __device__ __attribute__((const)) double __ocml_logb_f64(double);
194
190
  __device__ __attribute__((pure)) double __ocml_log_f64(double);
195
- __device__ double __ocml_modf_f64(double,
196
- __attribute__((address_space(5))) double *);
191
+ __device__ double __ocml_modf_f64(double, __PRIVATE_AS double *);
197
192
  __device__ __attribute__((const)) double __ocml_nearbyint_f64(double);
198
193
  __device__ __attribute__((const)) double __ocml_nextafter_f64(double, double);
199
194
  __device__ __attribute__((const)) double __ocml_len3_f64(double, double,
@@ -206,8 +201,7 @@ __device__ __attribute__((pure)) double __ocml_pow_f64(double, double);
206
201
  __device__ __attribute__((pure)) double __ocml_pown_f64(double, int);
207
202
  __device__ __attribute__((pure)) double __ocml_rcbrt_f64(double);
208
203
  __device__ __attribute__((const)) double __ocml_remainder_f64(double, double);
209
- __device__ double __ocml_remquo_f64(double, double,
210
- __attribute__((address_space(5))) int *);
204
+ __device__ double __ocml_remquo_f64(double, double, __PRIVATE_AS int *);
211
205
  __device__ __attribute__((const)) double __ocml_rhypot_f64(double, double);
212
206
  __device__ __attribute__((const)) double __ocml_rint_f64(double);
213
207
  __device__ __attribute__((const)) double __ocml_rlen3_f64(double, double,
@@ -219,10 +213,8 @@ __device__ __attribute__((pure)) double __ocml_rsqrt_f64(double);
219
213
  __device__ __attribute__((const)) double __ocml_scalb_f64(double, double);
220
214
  __device__ __attribute__((const)) double __ocml_scalbn_f64(double, int);
221
215
  __device__ __attribute__((const)) int __ocml_signbit_f64(double);
222
- __device__ double __ocml_sincos_f64(double,
223
- __attribute__((address_space(5))) double *);
224
- __device__ double
225
- __ocml_sincospi_f64(double, __attribute__((address_space(5))) double *);
216
+ __device__ double __ocml_sincos_f64(double, __PRIVATE_AS double *);
217
+ __device__ double __ocml_sincospi_f64(double, __PRIVATE_AS double *);
226
218
  __device__ double __ocml_sin_f64(double);
227
219
  __device__ __attribute__((pure)) double __ocml_sinh_f64(double);
228
220
  __device__ double __ocml_sinpi_f64(double);