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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/23/include/__clang_cuda_complex_builtins.h +236 -0
  4. package/lib/clang/{19 → 23}/include/__clang_cuda_device_functions.h +15 -1
  5. package/lib/clang/{19 → 23}/include/__clang_cuda_intrinsics.h +288 -20
  6. package/lib/clang/{19 → 23}/include/__clang_cuda_math.h +5 -0
  7. package/lib/clang/{19 → 23}/include/__clang_cuda_math_forward_declares.h +5 -0
  8. package/lib/clang/{19 → 23}/include/__clang_cuda_runtime_wrapper.h +28 -5
  9. package/lib/clang/{19 → 23}/include/__clang_cuda_texture_intrinsics.h +437 -2
  10. package/lib/clang/23/include/__clang_gpu_builtin_vars.h +71 -0
  11. package/lib/clang/23/include/__clang_gpu_device_functions.h +411 -0
  12. package/lib/clang/23/include/__clang_gpu_intrinsics.h +242 -0
  13. package/lib/clang/{19 → 23}/include/__clang_hip_cmath.h +15 -9
  14. package/lib/clang/{19 → 23}/include/__clang_hip_libdevice_declares.h +24 -139
  15. package/lib/clang/{19 → 23}/include/__clang_hip_math.h +115 -34
  16. package/lib/clang/{19 → 23}/include/__clang_hip_runtime_wrapper.h +12 -1
  17. package/lib/clang/23/include/__clang_spirv_builtins.h +217 -0
  18. package/lib/clang/23/include/__clang_spirv_libdevice_declares.h +170 -0
  19. package/lib/clang/23/include/__clang_spirv_math.h +719 -0
  20. package/lib/clang/{19/include/float.h → 23/include/__float_float.h} +14 -34
  21. package/lib/clang/23/include/__float_header_macro.h +12 -0
  22. package/lib/clang/23/include/__float_infinity_nan.h +20 -0
  23. package/lib/clang/{19 → 23}/include/__stdarg_va_arg.h +2 -2
  24. package/lib/clang/{19 → 23}/include/adcintrin.h +5 -0
  25. package/lib/clang/{19 → 23}/include/adxintrin.h +5 -0
  26. package/lib/clang/{19 → 23}/include/altivec.h +169 -96
  27. package/lib/clang/23/include/amdgpuintrin.h +164 -0
  28. package/lib/clang/23/include/amdhsa_abi.h +83 -0
  29. package/lib/clang/23/include/amo.h +220 -0
  30. package/lib/clang/23/include/amxavx512intrin.h +596 -0
  31. package/lib/clang/{19 → 23}/include/amxcomplexintrin.h +4 -6
  32. package/lib/clang/{19 → 23}/include/amxfp16intrin.h +35 -0
  33. package/lib/clang/23/include/amxfp8intrin.h +230 -0
  34. package/lib/clang/{19 → 23}/include/amxintrin.h +3 -35
  35. package/lib/clang/23/include/amxmovrsintrin.h +48 -0
  36. package/lib/clang/23/include/andes_vector.h +21 -0
  37. package/lib/clang/23/include/arm64_neon.h +21 -0
  38. package/lib/clang/{19 → 23}/include/arm64intr.h +10 -0
  39. package/lib/clang/{19 → 23}/include/arm_acle.h +67 -89
  40. package/lib/clang/{19 → 23}/include/arm_fp16.h +89 -89
  41. package/lib/clang/{19 → 23}/include/arm_neon.h +43614 -38901
  42. package/lib/clang/{19 → 23}/include/arm_sme.h +1028 -94
  43. package/lib/clang/{19 → 23}/include/arm_sve.h +7331 -5170
  44. package/lib/clang/{19 → 23}/include/arm_vector_types.h +87 -0
  45. package/lib/clang/23/include/avx10_2_512bf16intrin.h +568 -0
  46. package/lib/clang/23/include/avx10_2_512convertintrin.h +322 -0
  47. package/lib/clang/23/include/avx10_2_512minmaxintrin.h +127 -0
  48. package/lib/clang/23/include/avx10_2_512niintrin.h +314 -0
  49. package/lib/clang/23/include/avx10_2_512satcvtdsintrin.h +307 -0
  50. package/lib/clang/23/include/avx10_2_512satcvtintrin.h +301 -0
  51. package/lib/clang/23/include/avx10_2bf16intrin.h +1094 -0
  52. package/lib/clang/23/include/avx10_2convertintrin.h +3257 -0
  53. package/lib/clang/23/include/avx10_2copyintrin.h +66 -0
  54. package/lib/clang/23/include/avx10_2minmaxintrin.h +232 -0
  55. package/lib/clang/23/include/avx10_2niintrin.h +409 -0
  56. package/lib/clang/23/include/avx10_2satcvtdsintrin.h +376 -0
  57. package/lib/clang/23/include/avx10_2satcvtintrin.h +312 -0
  58. package/lib/clang/{19 → 23}/include/avx2intrin.h +284 -378
  59. package/lib/clang/{19 → 23}/include/avx512bf16intrin.h +25 -16
  60. package/lib/clang/{19 → 23}/include/avx512bitalgintrin.h +21 -32
  61. package/lib/clang/23/include/avx512bmmintrin.h +174 -0
  62. package/lib/clang/23/include/avx512bmmvlintrin.h +245 -0
  63. package/lib/clang/{19 → 23}/include/avx512bwintrin.h +405 -534
  64. package/lib/clang/23/include/avx512cdintrin.h +112 -0
  65. package/lib/clang/{19 → 23}/include/avx512dqintrin.h +132 -161
  66. package/lib/clang/{19 → 23}/include/avx512fintrin.h +1068 -1496
  67. package/lib/clang/{19 → 23}/include/avx512fp16intrin.h +126 -129
  68. package/lib/clang/23/include/avx512ifmaintrin.h +68 -0
  69. package/lib/clang/23/include/avx512ifmavlintrin.h +138 -0
  70. package/lib/clang/{19 → 23}/include/avx512vbmi2intrin.h +55 -48
  71. package/lib/clang/{19 → 23}/include/avx512vbmiintrin.h +19 -27
  72. package/lib/clang/{19 → 23}/include/avx512vbmivlintrin.h +35 -49
  73. package/lib/clang/{19 → 23}/include/avx512vlbf16intrin.h +32 -22
  74. package/lib/clang/{19 → 23}/include/avx512vlbitalgintrin.h +41 -57
  75. package/lib/clang/{19 → 23}/include/avx512vlbwintrin.h +494 -609
  76. package/lib/clang/23/include/avx512vlcdintrin.h +202 -0
  77. package/lib/clang/{19 → 23}/include/avx512vldqintrin.h +110 -127
  78. package/lib/clang/{19 → 23}/include/avx512vlfp16intrin.h +130 -111
  79. package/lib/clang/{19 → 23}/include/avx512vlintrin.h +1025 -1395
  80. package/lib/clang/{19 → 23}/include/avx512vlvbmi2intrin.h +102 -95
  81. package/lib/clang/{19 → 23}/include/avx512vlvnniintrin.h +50 -52
  82. package/lib/clang/{19 → 23}/include/avx512vlvp2intersectintrin.h +2 -2
  83. package/lib/clang/{19 → 23}/include/avx512vnniintrin.h +42 -45
  84. package/lib/clang/{19 → 23}/include/avx512vp2intersectintrin.h +2 -3
  85. package/lib/clang/{19 → 23}/include/avx512vpopcntdqintrin.h +10 -4
  86. package/lib/clang/{19 → 23}/include/avx512vpopcntdqvlintrin.h +20 -10
  87. package/lib/clang/{19 → 23}/include/avxifmaintrin.h +16 -0
  88. package/lib/clang/{19 → 23}/include/avxintrin.h +186 -248
  89. package/lib/clang/{19 → 23}/include/avxvnniint16intrin.h +130 -152
  90. package/lib/clang/{19 → 23}/include/avxvnniint8intrin.h +68 -85
  91. package/lib/clang/{19 → 23}/include/avxvnniintrin.h +39 -26
  92. package/lib/clang/{19 → 23}/include/bmi2intrin.h +15 -17
  93. package/lib/clang/{19 → 23}/include/bmiintrin.h +31 -41
  94. package/lib/clang/{19 → 23}/include/cmpccxaddintrin.h +1 -1
  95. package/lib/clang/{19 → 23}/include/cpuid.h +137 -37
  96. package/lib/clang/{19 → 23}/include/crc32intrin.h +10 -8
  97. package/lib/clang/23/include/cuda_wrappers/__utility/declval.h +28 -0
  98. package/lib/clang/23/include/cuda_wrappers/bits/c++config.h +61 -0
  99. package/lib/clang/23/include/cuda_wrappers/cmath +44 -0
  100. package/lib/clang/{19 → 23}/include/cuda_wrappers/new +2 -0
  101. package/lib/clang/{19 → 23}/include/emmintrin.h +306 -272
  102. package/lib/clang/23/include/endian.h +91 -0
  103. package/lib/clang/{19 → 23}/include/f16cintrin.h +23 -9
  104. package/lib/clang/23/include/float.h +48 -0
  105. package/lib/clang/23/include/fma4intrin.h +220 -0
  106. package/lib/clang/{19 → 23}/include/fmaintrin.h +96 -66
  107. package/lib/clang/{19 → 23}/include/gfniintrin.h +39 -12
  108. package/lib/clang/23/include/gpuintrin.h +348 -0
  109. package/lib/clang/{19 → 23}/include/hexagon_types.h +31 -24
  110. package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics.h +222 -0
  111. package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics_gen.inc +3869 -0
  112. package/lib/clang/23/include/hlsl/hlsl_basic_types.h +370 -0
  113. package/lib/clang/23/include/hlsl/hlsl_compat_overloads.h +559 -0
  114. package/lib/clang/23/include/hlsl/hlsl_detail.h +56 -0
  115. package/lib/clang/23/include/hlsl/hlsl_inline_intrinsics_gen.inc +546 -0
  116. package/lib/clang/23/include/hlsl/hlsl_intrinsic_helpers.h +170 -0
  117. package/lib/clang/23/include/hlsl/hlsl_intrinsics.h +331 -0
  118. package/lib/clang/23/include/hlsl/hlsl_spirv.h +28 -0
  119. package/lib/clang/23/include/hlsl.h +38 -0
  120. package/lib/clang/{19 → 23}/include/hvx_hexagon_protos.h +1041 -803
  121. package/lib/clang/{19 → 23}/include/immintrin.h +35 -185
  122. package/lib/clang/{19 → 23}/include/intrin.h +62 -21
  123. package/lib/clang/{19 → 23}/include/intrin0.h +10 -1
  124. package/lib/clang/{19 → 23}/include/keylockerintrin.h +0 -9
  125. package/lib/clang/{19 → 23}/include/larchintrin.h +24 -8
  126. package/lib/clang/{19 → 23}/include/lasxintrin.h +140 -25
  127. package/lib/clang/{19 → 23}/include/limits.h +7 -4
  128. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/assert.h +3 -5
  129. package/lib/clang/23/include/llvm_libc_wrappers/ctype.h +29 -0
  130. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/inttypes.h +3 -5
  131. package/lib/clang/23/include/llvm_libc_wrappers/stdio.h +52 -0
  132. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/stdlib.h +3 -16
  133. package/lib/clang/23/include/llvm_libc_wrappers/string.h +29 -0
  134. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/time.h +4 -10
  135. package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  136. package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  137. package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  138. package/lib/clang/{19 → 23}/include/lsxintrin.h +27 -25
  139. package/lib/clang/{19 → 23}/include/lzcntintrin.h +13 -8
  140. package/lib/clang/{19 → 23}/include/mmintrin.h +241 -256
  141. package/lib/clang/{19 → 23}/include/module.modulemap +54 -9
  142. package/lib/clang/23/include/movrs_avx10_2_512intrin.h +98 -0
  143. package/lib/clang/23/include/movrs_avx10_2intrin.h +174 -0
  144. package/lib/clang/23/include/movrsintrin.h +59 -0
  145. package/lib/clang/23/include/nvptxintrin.h +208 -0
  146. package/lib/clang/{19 → 23}/include/opencl-c-base.h +28 -92
  147. package/lib/clang/{19 → 23}/include/opencl-c.h +506 -140
  148. package/lib/clang/{19 → 23}/include/openmp_wrappers/__clang_openmp_device_functions.h +18 -5
  149. package/lib/clang/{19 → 23}/include/openmp_wrappers/complex +7 -1
  150. package/lib/clang/{19 → 23}/include/openmp_wrappers/complex.h +6 -0
  151. package/lib/clang/{19 → 23}/include/openmp_wrappers/complex_cmath.h +7 -2
  152. package/lib/clang/{19 → 23}/include/openmp_wrappers/math.h +10 -0
  153. package/lib/clang/{19 → 23}/include/pmmintrin.h +24 -23
  154. package/lib/clang/{19 → 23}/include/popcntintrin.h +7 -7
  155. package/lib/clang/{19 → 23}/include/prfchwintrin.h +10 -13
  156. package/lib/clang/{19 → 23}/include/ptrauth.h +169 -14
  157. package/lib/clang/{19 → 23}/include/riscv_bitmanip.h +7 -0
  158. package/lib/clang/23/include/riscv_corev_alu.h +130 -0
  159. package/lib/clang/{19 → 23}/include/riscv_crypto.h +8 -0
  160. package/lib/clang/23/include/riscv_mips.h +36 -0
  161. package/lib/clang/23/include/riscv_nds.h +92 -0
  162. package/lib/clang/{19 → 23}/include/riscv_ntlh.h +2 -0
  163. package/lib/clang/23/include/riscv_packed_simd.h +644 -0
  164. package/lib/clang/{19 → 23}/include/riscv_vector.h +43 -5
  165. package/lib/clang/{19 → 23}/include/shaintrin.h +3 -2
  166. package/lib/clang/{19 → 23}/include/sifive_vector.h +76 -2
  167. package/lib/clang/23/include/sm4evexintrin.h +32 -0
  168. package/lib/clang/{19 → 23}/include/smmintrin.h +80 -56
  169. package/lib/clang/23/include/spirvintrin.h +167 -0
  170. package/lib/clang/{19 → 23}/include/stdalign.h +0 -5
  171. package/lib/clang/23/include/stdcountof.h +15 -0
  172. package/lib/clang/23/include/stddefer.h +19 -0
  173. package/lib/clang/{19 → 23}/include/stdint.h +23 -143
  174. package/lib/clang/{19 → 23}/include/tbmintrin.h +25 -37
  175. package/lib/clang/{19 → 23}/include/tmmintrin.h +125 -130
  176. package/lib/clang/{19 → 23}/include/vaesintrin.h +1 -2
  177. package/lib/clang/{19 → 23}/include/vecintrin.h +1783 -60
  178. package/lib/clang/{19 → 23}/include/wasm_simd128.h +184 -21
  179. package/lib/clang/{19 → 23}/include/x86gprintrin.h +0 -14
  180. package/lib/clang/{19 → 23}/include/x86intrin.h +0 -18
  181. package/lib/clang/{19 → 23}/include/xmmintrin.h +190 -221
  182. package/lib/clang/{19 → 23}/include/xopintrin.h +20 -10
  183. package/lib/clang/23/include/zos_wrappers/grp.h +19 -0
  184. package/lib/clang/23/include/zos_wrappers/locale.h +19 -0
  185. package/lib/clang/23/include/zos_wrappers/math.h +31 -0
  186. package/lib/clang/23/include/zos_wrappers/poll.h +19 -0
  187. package/lib/clang/23/include/zos_wrappers/stdlib.h +20 -0
  188. package/lib/clang/23/include/zos_wrappers/string.h +19 -0
  189. package/lib/clang/23/include/zos_wrappers/time.h +19 -0
  190. package/lib/clang/23/include/zos_wrappers/variant.h +19 -0
  191. package/package.json +6 -6
  192. package/lib/clang/19/include/__clang_cuda_complex_builtins.h +0 -285
  193. package/lib/clang/19/include/avx512cdintrin.h +0 -125
  194. package/lib/clang/19/include/avx512ifmaintrin.h +0 -70
  195. package/lib/clang/19/include/avx512ifmavlintrin.h +0 -111
  196. package/lib/clang/19/include/avx512vlcdintrin.h +0 -230
  197. package/lib/clang/19/include/cuda_wrappers/cmath +0 -90
  198. package/lib/clang/19/include/fma4intrin.h +0 -218
  199. package/lib/clang/19/include/hlsl/hlsl_basic_types.h +0 -74
  200. package/lib/clang/19/include/hlsl/hlsl_intrinsics.h +0 -1697
  201. package/lib/clang/19/include/hlsl.h +0 -15
  202. package/lib/clang/19/include/llvm_libc_wrappers/ctype.h +0 -102
  203. package/lib/clang/19/include/llvm_libc_wrappers/stdio.h +0 -80
  204. package/lib/clang/19/include/llvm_libc_wrappers/string.h +0 -96
  205. /package/lib/clang/{19 → 23}/include/__clang_cuda_builtin_vars.h +0 -0
  206. /package/lib/clang/{19 → 23}/include/__clang_cuda_cmath.h +0 -0
  207. /package/lib/clang/{19 → 23}/include/__clang_cuda_libdevice_declares.h +0 -0
  208. /package/lib/clang/{19 → 23}/include/__clang_hip_stdlib.h +0 -0
  209. /package/lib/clang/{19 → 23}/include/__stdarg___gnuc_va_list.h +0 -0
  210. /package/lib/clang/{19 → 23}/include/__stdarg___va_copy.h +0 -0
  211. /package/lib/clang/{19 → 23}/include/__stdarg_header_macro.h +0 -0
  212. /package/lib/clang/{19 → 23}/include/__stdarg_va_copy.h +0 -0
  213. /package/lib/clang/{19 → 23}/include/__stdarg_va_list.h +0 -0
  214. /package/lib/clang/{19 → 23}/include/__stddef_header_macro.h +0 -0
  215. /package/lib/clang/{19 → 23}/include/__stddef_max_align_t.h +0 -0
  216. /package/lib/clang/{19 → 23}/include/__stddef_null.h +0 -0
  217. /package/lib/clang/{19 → 23}/include/__stddef_nullptr_t.h +0 -0
  218. /package/lib/clang/{19 → 23}/include/__stddef_offsetof.h +0 -0
  219. /package/lib/clang/{19 → 23}/include/__stddef_ptrdiff_t.h +0 -0
  220. /package/lib/clang/{19 → 23}/include/__stddef_rsize_t.h +0 -0
  221. /package/lib/clang/{19 → 23}/include/__stddef_size_t.h +0 -0
  222. /package/lib/clang/{19 → 23}/include/__stddef_unreachable.h +0 -0
  223. /package/lib/clang/{19 → 23}/include/__stddef_wchar_t.h +0 -0
  224. /package/lib/clang/{19 → 23}/include/__stddef_wint_t.h +0 -0
  225. /package/lib/clang/{19 → 23}/include/__wmmintrin_aes.h +0 -0
  226. /package/lib/clang/{19 → 23}/include/__wmmintrin_pclmul.h +0 -0
  227. /package/lib/clang/{19 → 23}/include/ammintrin.h +0 -0
  228. /package/lib/clang/{19 → 23}/include/arm_bf16.h +0 -0
  229. /package/lib/clang/{19 → 23}/include/arm_cde.h +0 -0
  230. /package/lib/clang/{19 → 23}/include/arm_cmse.h +0 -0
  231. /package/lib/clang/{19 → 23}/include/arm_mve.h +0 -0
  232. /package/lib/clang/{19 → 23}/include/arm_neon_sve_bridge.h +0 -0
  233. /package/lib/clang/{19 → 23}/include/armintr.h +0 -0
  234. /package/lib/clang/{19 → 23}/include/avxneconvertintrin.h +0 -0
  235. /package/lib/clang/{19 → 23}/include/builtins.h +0 -0
  236. /package/lib/clang/{19 → 23}/include/cet.h +0 -0
  237. /package/lib/clang/{19 → 23}/include/cetintrin.h +0 -0
  238. /package/lib/clang/{19 → 23}/include/cldemoteintrin.h +0 -0
  239. /package/lib/clang/{19 → 23}/include/clflushoptintrin.h +0 -0
  240. /package/lib/clang/{19 → 23}/include/clwbintrin.h +0 -0
  241. /package/lib/clang/{19 → 23}/include/clzerointrin.h +0 -0
  242. /package/lib/clang/{19 → 23}/include/cuda_wrappers/algorithm +0 -0
  243. /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/basic_string.h +0 -0
  244. /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  245. /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  246. /package/lib/clang/{19 → 23}/include/cuda_wrappers/complex +0 -0
  247. /package/lib/clang/{19 → 23}/include/enqcmdintrin.h +0 -0
  248. /package/lib/clang/{19 → 23}/include/fxsrintrin.h +0 -0
  249. /package/lib/clang/{19 → 23}/include/hexagon_circ_brev_intrinsics.h +0 -0
  250. /package/lib/clang/{19 → 23}/include/hexagon_protos.h +0 -0
  251. /package/lib/clang/{19 → 23}/include/hresetintrin.h +0 -0
  252. /package/lib/clang/{19 → 23}/include/htmintrin.h +0 -0
  253. /package/lib/clang/{19 → 23}/include/htmxlintrin.h +0 -0
  254. /package/lib/clang/{19 → 23}/include/ia32intrin.h +0 -0
  255. /package/lib/clang/{19 → 23}/include/inttypes.h +0 -0
  256. /package/lib/clang/{19 → 23}/include/invpcidintrin.h +0 -0
  257. /package/lib/clang/{19 → 23}/include/iso646.h +0 -0
  258. /package/lib/clang/{19 → 23}/include/lwpintrin.h +0 -0
  259. /package/lib/clang/{19 → 23}/include/mm3dnow.h +0 -0
  260. /package/lib/clang/{19 → 23}/include/mm_malloc.h +0 -0
  261. /package/lib/clang/{19 → 23}/include/movdirintrin.h +0 -0
  262. /package/lib/clang/{19 → 23}/include/msa.h +0 -0
  263. /package/lib/clang/{19 → 23}/include/mwaitxintrin.h +0 -0
  264. /package/lib/clang/{19 → 23}/include/nmmintrin.h +0 -0
  265. /package/lib/clang/{19 → 23}/include/openmp_wrappers/cmath +0 -0
  266. /package/lib/clang/{19 → 23}/include/openmp_wrappers/new +0 -0
  267. /package/lib/clang/{19 → 23}/include/pconfigintrin.h +0 -0
  268. /package/lib/clang/{19 → 23}/include/pkuintrin.h +0 -0
  269. /package/lib/clang/{19 → 23}/include/ppc_wrappers/bmi2intrin.h +0 -0
  270. /package/lib/clang/{19 → 23}/include/ppc_wrappers/bmiintrin.h +0 -0
  271. /package/lib/clang/{19 → 23}/include/ppc_wrappers/emmintrin.h +0 -0
  272. /package/lib/clang/{19 → 23}/include/ppc_wrappers/immintrin.h +0 -0
  273. /package/lib/clang/{19 → 23}/include/ppc_wrappers/mm_malloc.h +0 -0
  274. /package/lib/clang/{19 → 23}/include/ppc_wrappers/mmintrin.h +0 -0
  275. /package/lib/clang/{19 → 23}/include/ppc_wrappers/nmmintrin.h +0 -0
  276. /package/lib/clang/{19 → 23}/include/ppc_wrappers/pmmintrin.h +0 -0
  277. /package/lib/clang/{19 → 23}/include/ppc_wrappers/smmintrin.h +0 -0
  278. /package/lib/clang/{19 → 23}/include/ppc_wrappers/tmmintrin.h +0 -0
  279. /package/lib/clang/{19 → 23}/include/ppc_wrappers/x86gprintrin.h +0 -0
  280. /package/lib/clang/{19 → 23}/include/ppc_wrappers/x86intrin.h +0 -0
  281. /package/lib/clang/{19 → 23}/include/ppc_wrappers/xmmintrin.h +0 -0
  282. /package/lib/clang/{19 → 23}/include/prfchiintrin.h +0 -0
  283. /package/lib/clang/{19 → 23}/include/ptwriteintrin.h +0 -0
  284. /package/lib/clang/{19 → 23}/include/raointintrin.h +0 -0
  285. /package/lib/clang/{19 → 23}/include/rdpruintrin.h +0 -0
  286. /package/lib/clang/{19 → 23}/include/rdseedintrin.h +0 -0
  287. /package/lib/clang/{19 → 23}/include/rtmintrin.h +0 -0
  288. /package/lib/clang/{19 → 23}/include/s390intrin.h +0 -0
  289. /package/lib/clang/{19 → 23}/include/serializeintrin.h +0 -0
  290. /package/lib/clang/{19 → 23}/include/sgxintrin.h +0 -0
  291. /package/lib/clang/{19 → 23}/include/sha512intrin.h +0 -0
  292. /package/lib/clang/{19 → 23}/include/sm3intrin.h +0 -0
  293. /package/lib/clang/{19 → 23}/include/sm4intrin.h +0 -0
  294. /package/lib/clang/{19 → 23}/include/stdarg.h +0 -0
  295. /package/lib/clang/{19 → 23}/include/stdatomic.h +0 -0
  296. /package/lib/clang/{19 → 23}/include/stdbool.h +0 -0
  297. /package/lib/clang/{19 → 23}/include/stdckdint.h +0 -0
  298. /package/lib/clang/{19 → 23}/include/stddef.h +0 -0
  299. /package/lib/clang/{19 → 23}/include/stdnoreturn.h +0 -0
  300. /package/lib/clang/{19 → 23}/include/tgmath.h +0 -0
  301. /package/lib/clang/{19 → 23}/include/tsxldtrkintrin.h +0 -0
  302. /package/lib/clang/{19 → 23}/include/uintrintrin.h +0 -0
  303. /package/lib/clang/{19 → 23}/include/unwind.h +0 -0
  304. /package/lib/clang/{19 → 23}/include/usermsrintrin.h +0 -0
  305. /package/lib/clang/{19 → 23}/include/vadefs.h +0 -0
  306. /package/lib/clang/{19 → 23}/include/varargs.h +0 -0
  307. /package/lib/clang/{19 → 23}/include/velintrin.h +0 -0
  308. /package/lib/clang/{19 → 23}/include/velintrin_approx.h +0 -0
  309. /package/lib/clang/{19 → 23}/include/velintrin_gen.h +0 -0
  310. /package/lib/clang/{19 → 23}/include/vpclmulqdqintrin.h +0 -0
  311. /package/lib/clang/{19 → 23}/include/waitpkgintrin.h +0 -0
  312. /package/lib/clang/{19 → 23}/include/wbnoinvdintrin.h +0 -0
  313. /package/lib/clang/{19 → 23}/include/wmmintrin.h +0 -0
  314. /package/lib/clang/{19 → 23}/include/xsavecintrin.h +0 -0
  315. /package/lib/clang/{19 → 23}/include/xsaveintrin.h +0 -0
  316. /package/lib/clang/{19 → 23}/include/xsaveoptintrin.h +0 -0
  317. /package/lib/clang/{19 → 23}/include/xsavesintrin.h +0 -0
  318. /package/lib/clang/{19 → 23}/include/xtestintrin.h +0 -0
  319. /package/lib/clang/{19 → 23}/include/yvals_core.h +0 -0
  320. /package/lib/clang/{19 → 23}/include/zos_wrappers/builtins.h +0 -0
@@ -17,7 +17,12 @@
17
17
  /* Allow using the tzcnt intrinsics even for non-BMI targets. Since the TZCNT
18
18
  instruction behaves as BSF on non-BMI targets, there is code that expects
19
19
  to use it as a potentially faster version of BSF. */
20
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
21
+ #define __RELAXED_FN_ATTRS \
22
+ __attribute__((__always_inline__, __nodebug__)) constexpr
23
+ #else
20
24
  #define __RELAXED_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
25
+ #endif
21
26
 
22
27
  /// Counts the number of trailing zero bits in the operand.
23
28
  ///
@@ -31,8 +36,7 @@
31
36
  /// bits in the operand.
32
37
  /// \see _tzcnt_u16
33
38
  static __inline__ unsigned short __RELAXED_FN_ATTRS
34
- __tzcnt_u16(unsigned short __X)
35
- {
39
+ __tzcnt_u16(unsigned short __X) {
36
40
  return __builtin_ia32_tzcnt_u16(__X);
37
41
  }
38
42
 
@@ -65,8 +69,7 @@ __tzcnt_u16(unsigned short __X)
65
69
  /// bits in the operand.
66
70
  /// \see { _mm_tzcnt_32 _tzcnt_u32 }
67
71
  static __inline__ unsigned int __RELAXED_FN_ATTRS
68
- __tzcnt_u32(unsigned int __X)
69
- {
72
+ __tzcnt_u32(unsigned int __X) {
70
73
  return __builtin_ia32_tzcnt_u32(__X);
71
74
  }
72
75
 
@@ -82,8 +85,7 @@ __tzcnt_u32(unsigned int __X)
82
85
  /// the operand.
83
86
  /// \see { __tzcnt_u32 _tzcnt_u32 }
84
87
  static __inline__ int __RELAXED_FN_ATTRS
85
- _mm_tzcnt_32(unsigned int __X)
86
- {
88
+ _mm_tzcnt_32(unsigned int __X) {
87
89
  return (int)__builtin_ia32_tzcnt_u32(__X);
88
90
  }
89
91
 
@@ -118,8 +120,7 @@ _mm_tzcnt_32(unsigned int __X)
118
120
  /// bits in the operand.
119
121
  /// \see { _mm_tzcnt_64 _tzcnt_u64 }
120
122
  static __inline__ unsigned long long __RELAXED_FN_ATTRS
121
- __tzcnt_u64(unsigned long long __X)
122
- {
123
+ __tzcnt_u64(unsigned long long __X) {
123
124
  return __builtin_ia32_tzcnt_u64(__X);
124
125
  }
125
126
 
@@ -135,8 +136,7 @@ __tzcnt_u64(unsigned long long __X)
135
136
  /// the operand.
136
137
  /// \see { __tzcnt_u64 _tzcnt_u64 }
137
138
  static __inline__ long long __RELAXED_FN_ATTRS
138
- _mm_tzcnt_64(unsigned long long __X)
139
- {
139
+ _mm_tzcnt_64(unsigned long long __X) {
140
140
  return (long long)__builtin_ia32_tzcnt_u64(__X);
141
141
  }
142
142
 
@@ -161,10 +161,14 @@ _mm_tzcnt_64(unsigned long long __X)
161
161
 
162
162
  #undef __RELAXED_FN_ATTRS
163
163
 
164
- #if !defined(__SCE__) || __has_feature(modules) || defined(__BMI__)
165
-
166
164
  /* Define the default attributes for the functions in this file. */
167
- #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("bmi")))
165
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
166
+ #define __DEFAULT_FN_ATTRS \
167
+ __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) constexpr
168
+ #else
169
+ #define __DEFAULT_FN_ATTRS \
170
+ __attribute__((__always_inline__, __nodebug__, __target__("bmi")))
171
+ #endif
168
172
 
169
173
  /// Performs a bitwise AND of the second operand with the one's
170
174
  /// complement of the first operand.
@@ -181,8 +185,7 @@ _mm_tzcnt_64(unsigned long long __X)
181
185
  /// operand with the one's complement of the first operand.
182
186
  /// \see _andn_u32
183
187
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
184
- __andn_u32(unsigned int __X, unsigned int __Y)
185
- {
188
+ __andn_u32(unsigned int __X, unsigned int __Y) {
186
189
  return ~__X & __Y;
187
190
  }
188
191
 
@@ -224,8 +227,7 @@ __andn_u32(unsigned int __X, unsigned int __Y)
224
227
  /// extracted bits.
225
228
  /// \see _bextr_u32
226
229
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
227
- __bextr_u32(unsigned int __X, unsigned int __Y)
228
- {
230
+ __bextr_u32(unsigned int __X, unsigned int __Y) {
229
231
  return __builtin_ia32_bextr_u32(__X, __Y);
230
232
  }
231
233
 
@@ -249,9 +251,8 @@ __bextr_u32(unsigned int __X, unsigned int __Y)
249
251
  /// extracted bits.
250
252
  /// \see __bextr_u32
251
253
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
252
- _bextr_u32(unsigned int __X, unsigned int __Y, unsigned int __Z)
253
- {
254
- return __builtin_ia32_bextr_u32 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8)));
254
+ _bextr_u32(unsigned int __X, unsigned int __Y, unsigned int __Z) {
255
+ return __builtin_ia32_bextr_u32(__X, ((__Y & 0xff) | ((__Z & 0xff) << 8)));
255
256
  }
256
257
 
257
258
  /* Intel-specified, single-leading-underscore version of BEXTR2 */
@@ -289,8 +290,7 @@ _bextr2_u32(unsigned int __X, unsigned int __Y) {
289
290
  /// the source operand.
290
291
  /// \see _blsi_u32
291
292
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
292
- __blsi_u32(unsigned int __X)
293
- {
293
+ __blsi_u32(unsigned int __X) {
294
294
  return __X & -__X;
295
295
  }
296
296
 
@@ -325,8 +325,7 @@ __blsi_u32(unsigned int __X)
325
325
  /// \returns An unsigned integer containing the newly created mask.
326
326
  /// \see _blsmsk_u32
327
327
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
328
- __blsmsk_u32(unsigned int __X)
329
- {
328
+ __blsmsk_u32(unsigned int __X) {
330
329
  return __X ^ (__X - 1);
331
330
  }
332
331
 
@@ -361,8 +360,7 @@ __blsmsk_u32(unsigned int __X)
361
360
  /// operand.
362
361
  /// \see _blsr_u32
363
362
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
364
- __blsr_u32(unsigned int __X)
365
- {
363
+ __blsr_u32(unsigned int __X) {
366
364
  return __X & (__X - 1);
367
365
  }
368
366
 
@@ -401,8 +399,7 @@ __blsr_u32(unsigned int __X)
401
399
  /// operand with the one's complement of the first operand.
402
400
  /// \see _andn_u64
403
401
  static __inline__ unsigned long long __DEFAULT_FN_ATTRS
404
- __andn_u64 (unsigned long long __X, unsigned long long __Y)
405
- {
402
+ __andn_u64 (unsigned long long __X, unsigned long long __Y) {
406
403
  return ~__X & __Y;
407
404
  }
408
405
 
@@ -445,8 +442,7 @@ __andn_u64 (unsigned long long __X, unsigned long long __Y)
445
442
  /// extracted bits.
446
443
  /// \see _bextr_u64
447
444
  static __inline__ unsigned long long __DEFAULT_FN_ATTRS
448
- __bextr_u64(unsigned long long __X, unsigned long long __Y)
449
- {
445
+ __bextr_u64(unsigned long long __X, unsigned long long __Y) {
450
446
  return __builtin_ia32_bextr_u64(__X, __Y);
451
447
  }
452
448
 
@@ -470,9 +466,8 @@ __bextr_u64(unsigned long long __X, unsigned long long __Y)
470
466
  /// extracted bits.
471
467
  /// \see __bextr_u64
472
468
  static __inline__ unsigned long long __DEFAULT_FN_ATTRS
473
- _bextr_u64(unsigned long long __X, unsigned int __Y, unsigned int __Z)
474
- {
475
- return __builtin_ia32_bextr_u64 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8)));
469
+ _bextr_u64(unsigned long long __X, unsigned int __Y, unsigned int __Z) {
470
+ return __builtin_ia32_bextr_u64(__X, ((__Y & 0xff) | ((__Z & 0xff) << 8)));
476
471
  }
477
472
 
478
473
  /* Intel-specified, single-leading-underscore version of BEXTR2 */
@@ -510,8 +505,7 @@ _bextr2_u64(unsigned long long __X, unsigned long long __Y) {
510
505
  /// bits from the source operand.
511
506
  /// \see _blsi_u64
512
507
  static __inline__ unsigned long long __DEFAULT_FN_ATTRS
513
- __blsi_u64(unsigned long long __X)
514
- {
508
+ __blsi_u64(unsigned long long __X) {
515
509
  return __X & -__X;
516
510
  }
517
511
 
@@ -546,8 +540,7 @@ __blsi_u64(unsigned long long __X)
546
540
  /// \returns An unsigned 64-bit integer containing the newly created mask.
547
541
  /// \see _blsmsk_u64
548
542
  static __inline__ unsigned long long __DEFAULT_FN_ATTRS
549
- __blsmsk_u64(unsigned long long __X)
550
- {
543
+ __blsmsk_u64(unsigned long long __X) {
551
544
  return __X ^ (__X - 1);
552
545
  }
553
546
 
@@ -582,8 +575,7 @@ __blsmsk_u64(unsigned long long __X)
582
575
  /// source operand.
583
576
  /// \see _blsr_u64
584
577
  static __inline__ unsigned long long __DEFAULT_FN_ATTRS
585
- __blsr_u64(unsigned long long __X)
586
- {
578
+ __blsr_u64(unsigned long long __X) {
587
579
  return __X & (__X - 1);
588
580
  }
589
581
 
@@ -609,6 +601,4 @@ __blsr_u64(unsigned long long __X)
609
601
 
610
602
  #undef __DEFAULT_FN_ATTRS
611
603
 
612
- #endif /* !defined(__SCE__) || __has_feature(modules) || defined(__BMI__) */
613
-
614
604
  #endif /* __BMIINTRIN_H */
@@ -63,7 +63,7 @@ typedef enum {
63
63
  (int)(__D))))
64
64
 
65
65
  #define _cmpccxadd_epi64(__A, __B, __C, __D) \
66
- ((long long)(__builtin_ia32_cmpccxadd64((void *)(__A), (long long)(__B), \
66
+ ((long long)(__builtin_ia32_cmpccxadd64((__A), (long long)(__B), \
67
67
  (long long)(__C), (int)(__D))))
68
68
 
69
69
  #endif // __x86_64__
@@ -187,17 +187,18 @@
187
187
  #define bit_ENQCMD 0x20000000
188
188
 
189
189
  /* Features in %edx for leaf 7 sub-leaf 0 */
190
- #define bit_AVX5124VNNIW 0x00000004
191
- #define bit_AVX5124FMAPS 0x00000008
192
- #define bit_UINTR 0x00000020
193
- #define bit_SERIALIZE 0x00004000
194
- #define bit_TSXLDTRK 0x00010000
195
- #define bit_PCONFIG 0x00040000
196
- #define bit_IBT 0x00100000
197
- #define bit_AMXBF16 0x00400000
198
- #define bit_AVX512FP16 0x00800000
199
- #define bit_AMXTILE 0x01000000
200
- #define bit_AMXINT8 0x02000000
190
+ #define bit_AVX5124VNNIW 0x00000004
191
+ #define bit_AVX5124FMAPS 0x00000008
192
+ #define bit_UINTR 0x00000020
193
+ #define bit_AVX512VP2INTERSECT 0x00000100
194
+ #define bit_SERIALIZE 0x00004000
195
+ #define bit_TSXLDTRK 0x00010000
196
+ #define bit_PCONFIG 0x00040000
197
+ #define bit_IBT 0x00100000
198
+ #define bit_AMXBF16 0x00400000
199
+ #define bit_AVX512FP16 0x00800000
200
+ #define bit_AMXTILE 0x01000000
201
+ #define bit_AMXINT8 0x02000000
201
202
 
202
203
  /* Features in %eax for leaf 7 sub-leaf 1 */
203
204
  #define bit_SHA512 0x00000001
@@ -252,10 +253,6 @@
252
253
  #define bit_RDPRU 0x00000010
253
254
  #define bit_WBNOINVD 0x00000200
254
255
 
255
- /* Features in %ebx for leaf 0x24 */
256
- #define bit_AVX10_256 0x00020000
257
- #define bit_AVX10_512 0x00040000
258
-
259
256
  #ifdef __i386__
260
257
  #define __cpuid(__leaf, __eax, __ebx, __ecx, __edx) \
261
258
  __asm("cpuid" : "=a"(__eax), "=b" (__ebx), "=c"(__ecx), "=d"(__edx) \
@@ -266,21 +263,39 @@
266
263
  : "0"(__leaf), "2"(__count))
267
264
  #else
268
265
  /* x86-64 uses %rbx as the base register, so preserve it. */
269
- #define __cpuid(__leaf, __eax, __ebx, __ecx, __edx) \
270
- __asm(" xchgq %%rbx,%q1\n" \
271
- " cpuid\n" \
272
- " xchgq %%rbx,%q1" \
273
- : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \
266
+ #define __cpuid(__leaf, __eax, __ebx, __ecx, __edx) \
267
+ __asm(" xchg{q|} {%%|}rbx,%q1\n" \
268
+ " cpuid\n" \
269
+ " xchg{q|} {%%|}rbx,%q1" \
270
+ : "=a"(__eax), "=r"(__ebx), "=c"(__ecx), "=d"(__edx) \
274
271
  : "0"(__leaf))
275
272
 
276
- #define __cpuid_count(__leaf, __count, __eax, __ebx, __ecx, __edx) \
277
- __asm(" xchgq %%rbx,%q1\n" \
278
- " cpuid\n" \
279
- " xchgq %%rbx,%q1" \
280
- : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \
273
+ #define __cpuid_count(__leaf, __count, __eax, __ebx, __ecx, __edx) \
274
+ __asm(" xchg{q|} {%%|}rbx,%q1\n" \
275
+ " cpuid\n" \
276
+ " xchg{q|} {%%|}rbx,%q1" \
277
+ : "=a"(__eax), "=r"(__ebx), "=c"(__ecx), "=d"(__edx) \
281
278
  : "0"(__leaf), "2"(__count))
282
279
  #endif
283
280
 
281
+ /// Queries the processor to determine the highest supported \c CPUID leaf.
282
+ /// This intrinsic is only available on x86 and x64.
283
+ ///
284
+ /// \headerfile <cpuid.h>
285
+ ///
286
+ /// This intrinsic corresponds to the <c> CPUID </c> instruction.
287
+ ///
288
+ /// \param __leaf
289
+ /// \a __leaf can be either 0x0 or 0x8000000. If \a __leaf == 0x0, the
290
+ /// highest supported value for basic \c CPUID information is returned.
291
+ /// If \a __leaf == 0x8000000, the highest supported value for extended
292
+ /// \c CPUID information is returned.
293
+ /// \param __sig
294
+ /// If the \a __sig pointer is non-null, the first four bytes of the
295
+ /// signature (as found in the \c EBX register) are returned in the
296
+ /// location pointed to by \a __sig.
297
+ /// \returns Returns 0 if \c CPUID is supported; otherwise returns the value
298
+ /// that \c CPUID returns in the \c EAX register.
284
299
  static __inline unsigned int __get_cpuid_max (unsigned int __leaf,
285
300
  unsigned int *__sig)
286
301
  {
@@ -288,20 +303,22 @@ static __inline unsigned int __get_cpuid_max (unsigned int __leaf,
288
303
  #ifdef __i386__
289
304
  int __cpuid_supported;
290
305
 
291
- __asm(" pushfl\n"
292
- " popl %%eax\n"
293
- " movl %%eax,%%ecx\n"
294
- " xorl $0x00200000,%%eax\n"
295
- " pushl %%eax\n"
296
- " popfl\n"
297
- " pushfl\n"
298
- " popl %%eax\n"
299
- " movl $0,%0\n"
300
- " cmpl %%eax,%%ecx\n"
306
+ __asm(" pushf{l|d}\n"
307
+ " pop{l|} {%%|}eax\n"
308
+ " mov{l|} {%%eax,%%ecx|ecx,eax}\n"
309
+ " xor{l|} {$0x00200000,%%eax|eax,0x00200000}\n"
310
+ " push{l|} {%%|}eax\n"
311
+ " popf{l|d}\n"
312
+ " pushf{l|d}\n"
313
+ " pop{l|} {%%|}eax\n"
314
+ " mov{l|} {$0,%0|%0,0}\n"
315
+ " cmp{l|} {%%eax,%%ecx|ecx,eax}\n"
301
316
  " je 1f\n"
302
- " movl $1,%0\n"
317
+ " mov{l|} {$1,%0|%0,1}\n"
303
318
  "1:"
304
- : "=r" (__cpuid_supported) : : "eax", "ecx");
319
+ : "=r"(__cpuid_supported)
320
+ :
321
+ : "eax", "ecx");
305
322
  if (!__cpuid_supported)
306
323
  return 0;
307
324
  #endif
@@ -312,6 +329,32 @@ static __inline unsigned int __get_cpuid_max (unsigned int __leaf,
312
329
  return __eax;
313
330
  }
314
331
 
332
+ /// For the requested \c CPUID leaf, queries the processor for information
333
+ /// about the CPU type and CPU features (such as processor vendor, supported
334
+ /// instruction sets, CPU capabilities, cache sizes, CPU model and family, and
335
+ /// other hardware details). This intrinsic is only available on x86 and x64.
336
+ ///
337
+ /// \headerfile <cpuid.h>
338
+ ///
339
+ /// This intrinsic corresponds to the <c> CPUID </c> instruction.
340
+ ///
341
+ /// \param __leaf
342
+ /// An unsigned integer that identifies the level (also called "leaf") at
343
+ /// which the \c CPUID instruction will be executed.
344
+ /// \param __eax
345
+ /// A pointer to an integer that corresponds to the \c EAX register where
346
+ /// \c CPUID stores output results.
347
+ /// \param __ebx
348
+ /// A pointer to an integer that corresponds to the \c EBX register where
349
+ /// \c CPUID stores output results.
350
+ /// \param __ecx
351
+ /// A pointer to an integer that corresponds to the \c ECX register where
352
+ /// \c CPUID stores output results.
353
+ /// \param __edx
354
+ /// A pointer to an integer that corresponds to the \c EDX register where
355
+ /// \c CPUID stores output results.
356
+ /// \returns Returns 1 if the requested \c CPUID leaf is supported; otherwise
357
+ /// returns 0.
315
358
  static __inline int __get_cpuid (unsigned int __leaf, unsigned int *__eax,
316
359
  unsigned int *__ebx, unsigned int *__ecx,
317
360
  unsigned int *__edx)
@@ -325,6 +368,36 @@ static __inline int __get_cpuid (unsigned int __leaf, unsigned int *__eax,
325
368
  return 1;
326
369
  }
327
370
 
371
+ /// For the requested \c CPUID leaf and subleaf, queries the processor for
372
+ /// information about the CPU type and CPU features (such as processor vendor,
373
+ /// supported instruction sets, CPU capabilities, cache sizes, CPU model and
374
+ /// family, and other hardware details). This intrinsic is only available on
375
+ /// x86 and x64.
376
+ ///
377
+ /// \headerfile <cpuid.h>
378
+ ///
379
+ /// This intrinsic corresponds to the <c> CPUID </c> instruction.
380
+ ///
381
+ /// \param __leaf
382
+ /// An unsigned integer that identifies the level (also called "leaf") at
383
+ /// which the \c CPUID instruction will be executed.
384
+ /// \param __subleaf
385
+ /// An unsigned integer that identifies the sublevel (also called
386
+ /// "subleaf") at which the \c CPUID instruction will be executed.
387
+ /// \param __eax
388
+ /// A pointer to an integer that corresponds to the \c EAX register where
389
+ /// \c CPUID stores output results.
390
+ /// \param __ebx
391
+ /// A pointer to an integer that corresponds to the \c EBX register where
392
+ /// \c CPUID stores output results.
393
+ /// \param __ecx
394
+ /// A pointer to an integer that corresponds to the \c ECX register where
395
+ /// \c CPUID stores output results.
396
+ /// \param __edx
397
+ /// A pointer to an integer that corresponds to the \c EDX register where
398
+ /// \c CPUID stores output results.
399
+ /// \returns Returns 1 if the requested \c CPUID leaf is supported; otherwise
400
+ /// returns 0.
328
401
  static __inline int __get_cpuid_count (unsigned int __leaf,
329
402
  unsigned int __subleaf,
330
403
  unsigned int *__eax, unsigned int *__ebx,
@@ -342,10 +415,37 @@ static __inline int __get_cpuid_count (unsigned int __leaf,
342
415
  // In some configurations, __cpuidex is defined as a builtin (primarily
343
416
  // -fms-extensions) which will conflict with the __cpuidex definition below.
344
417
  #if !(__has_builtin(__cpuidex))
418
+ // In some cases, offloading will set the host as the aux triple and define the
419
+ // builtin. Given __has_builtin does not detect builtins on aux triples, we need
420
+ // to explicitly check for some offloading cases.
421
+ #if !defined(__NVPTX__) && !defined(__AMDGPU__) && !defined(__SPIRV__)
422
+ /// Executes the \c CPUID instruction with the specified leaf and subleaf
423
+ /// values, and returns the results from the CPU's registers. This intrinsic
424
+ /// is only available on x86 and x64.
425
+ ///
426
+ /// \headerfile <cpuid.h>
427
+ ///
428
+ /// This intrinsic corresponds to the <c> CPUID </c> instruction.
429
+ ///
430
+ /// \param __cpu_info
431
+ /// An output array of four integers:
432
+ /// <ul>
433
+ /// <li>\a __cpuInfo[0] receives the value of the \c EAX register.</li>
434
+ /// <li>\a __cpuInfo[1] receives the value of the \c EBX register.</li>
435
+ /// <li>\a __cpuInfo[2] receives the value of the \c ECX register.</li>
436
+ /// <li>\a __cpuInfo[3] receives the value of the \c EDX register.</li>
437
+ /// </ul>
438
+ /// \param __leaf
439
+ /// An unsigned integer that identifies the level (also called the "leaf")
440
+ /// at which the \c CPUID instruction will be executed.
441
+ /// \param __subleaf
442
+ /// An unsigned integer that identifies the sublevel (also called the
443
+ /// "subleaf") at which the \c CPUID instruction will be executed.
345
444
  static __inline void __cpuidex(int __cpu_info[4], int __leaf, int __subleaf) {
346
445
  __cpuid_count(__leaf, __subleaf, __cpu_info[0], __cpu_info[1], __cpu_info[2],
347
446
  __cpu_info[3]);
348
447
  }
349
448
  #endif
449
+ #endif
350
450
 
351
451
  #endif /* __CPUID_H */
@@ -10,8 +10,14 @@
10
10
  #ifndef __CRC32INTRIN_H
11
11
  #define __CRC32INTRIN_H
12
12
 
13
+ /// We only declare crc32 as a constexpr if we are compiling C++ code
14
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
15
+ #define __DEFAULT_FN_ATTRS \
16
+ __attribute__((__always_inline__, __nodebug__, __target__("crc32"))) constexpr
17
+ #else
13
18
  #define __DEFAULT_FN_ATTRS \
14
19
  __attribute__((__always_inline__, __nodebug__, __target__("crc32")))
20
+ #endif
15
21
 
16
22
  /// Adds the unsigned integer operand to the CRC-32C checksum of the
17
23
  /// unsigned char operand.
@@ -28,8 +34,7 @@
28
34
  /// \returns The result of adding operand \a __C to the CRC-32C checksum of
29
35
  /// operand \a __D.
30
36
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
31
- _mm_crc32_u8(unsigned int __C, unsigned char __D)
32
- {
37
+ _mm_crc32_u8(unsigned int __C, unsigned char __D) {
33
38
  return __builtin_ia32_crc32qi(__C, __D);
34
39
  }
35
40
 
@@ -48,8 +53,7 @@ _mm_crc32_u8(unsigned int __C, unsigned char __D)
48
53
  /// \returns The result of adding operand \a __C to the CRC-32C checksum of
49
54
  /// operand \a __D.
50
55
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
51
- _mm_crc32_u16(unsigned int __C, unsigned short __D)
52
- {
56
+ _mm_crc32_u16(unsigned int __C, unsigned short __D) {
53
57
  return __builtin_ia32_crc32hi(__C, __D);
54
58
  }
55
59
 
@@ -68,8 +72,7 @@ _mm_crc32_u16(unsigned int __C, unsigned short __D)
68
72
  /// \returns The result of adding operand \a __C to the CRC-32C checksum of
69
73
  /// operand \a __D.
70
74
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
71
- _mm_crc32_u32(unsigned int __C, unsigned int __D)
72
- {
75
+ _mm_crc32_u32(unsigned int __C, unsigned int __D) {
73
76
  return __builtin_ia32_crc32si(__C, __D);
74
77
  }
75
78
 
@@ -89,8 +92,7 @@ _mm_crc32_u32(unsigned int __C, unsigned int __D)
89
92
  /// \returns The result of adding operand \a __C to the CRC-32C checksum of
90
93
  /// operand \a __D.
91
94
  static __inline__ unsigned long long __DEFAULT_FN_ATTRS
92
- _mm_crc32_u64(unsigned long long __C, unsigned long long __D)
93
- {
95
+ _mm_crc32_u64(unsigned long long __C, unsigned long long __D) {
94
96
  return __builtin_ia32_crc32di(__C, __D);
95
97
  }
96
98
  #endif /* __x86_64__ */
@@ -0,0 +1,28 @@
1
+ #ifndef __CUDA_WRAPPERS_UTILITY_DECLVAL_H__
2
+ #define __CUDA_WRAPPERS_UTILITY_DECLVAL_H__
3
+
4
+ #include_next <__utility/declval.h>
5
+
6
+ // The stuff below is the exact copy of the <__utility/declval.h>,
7
+ // but with __device__ attribute applied to the functions, so it works on a GPU.
8
+
9
+ _LIBCPP_BEGIN_NAMESPACE_STD
10
+
11
+ // Suppress deprecation notice for volatile-qualified return type resulting
12
+ // from volatile-qualified types _Tp.
13
+ _LIBCPP_SUPPRESS_DEPRECATED_PUSH
14
+ template <class _Tp> __attribute__((device)) _Tp &&__declval(int);
15
+ template <class _Tp> __attribute__((device)) _Tp __declval(long);
16
+ _LIBCPP_SUPPRESS_DEPRECATED_POP
17
+
18
+ template <class _Tp>
19
+ __attribute__((device)) _LIBCPP_HIDE_FROM_ABI decltype(std::__declval<_Tp>(0))
20
+ declval() _NOEXCEPT {
21
+ static_assert(!__is_same(_Tp, _Tp),
22
+ "std::declval can only be used in an unevaluated context. "
23
+ "It's likely that your current usage is trying to extract a "
24
+ "value from the function.");
25
+ }
26
+
27
+ _LIBCPP_END_NAMESPACE_STD
28
+ #endif // __CUDA_WRAPPERS_UTILITY_DECLVAL_H__
@@ -0,0 +1,61 @@
1
+ // libstdc++ uses the non-constexpr function std::__glibcxx_assert_fail()
2
+ // to trigger compilation errors when the __glibcxx_assert(cond) macro
3
+ // is used in a constexpr context.
4
+ // Compilation fails when using code from the libstdc++ (such as std::array) on
5
+ // device code, since these assertions invoke a non-constexpr host function from
6
+ // device code.
7
+ //
8
+ // To work around this issue, we declare our own device version of the function
9
+
10
+ #ifndef __CLANG_CUDA_WRAPPERS_BITS_CPP_CONFIG
11
+ #define __CLANG_CUDA_WRAPPERS_BITS_CPP_CONFIG
12
+
13
+ #include_next <bits/c++config.h>
14
+
15
+ #ifdef _LIBCPP_BEGIN_NAMESPACE_STD
16
+ _LIBCPP_BEGIN_NAMESPACE_STD
17
+ #else
18
+ namespace std {
19
+ #ifdef _GLIBCXX_BEGIN_NAMESPACE_VERSION
20
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION
21
+ #endif
22
+
23
+ #pragma push_macro("CUDA_NOEXCEPT")
24
+ #if __cplusplus >= 201103L
25
+ #define CUDA_NOEXCEPT noexcept
26
+ #else
27
+ #define CUDA_NOEXCEPT
28
+ #endif
29
+
30
+ __attribute__((device, noreturn)) inline void
31
+ __glibcxx_assert_fail(const char *file, int line, const char *function,
32
+ const char *condition) CUDA_NOEXCEPT {
33
+ #ifdef _GLIBCXX_VERBOSE_ASSERT
34
+ if (file && function && condition)
35
+ __builtin_printf("%s:%d: %s: Assertion '%s' failed.\n", file, line,
36
+ function, condition);
37
+ else if (function)
38
+ __builtin_printf("%s: Undefined behavior detected.\n", function);
39
+ #endif
40
+ __builtin_abort();
41
+ }
42
+
43
+ #endif
44
+ __attribute__((device, noreturn, __always_inline__,
45
+ __visibility__("default"))) inline void
46
+ __glibcxx_assert_fail() CUDA_NOEXCEPT {
47
+ __builtin_abort();
48
+ }
49
+
50
+ #pragma pop_macro("CUDA_NOEXCEPT")
51
+
52
+ #ifdef _LIBCPP_END_NAMESPACE_STD
53
+ _LIBCPP_END_NAMESPACE_STD
54
+ #else
55
+ #ifdef _GLIBCXX_BEGIN_NAMESPACE_VERSION
56
+ _GLIBCXX_END_NAMESPACE_VERSION
57
+ #endif
58
+ } // namespace std
59
+ #endif
60
+
61
+ #endif
@@ -0,0 +1,44 @@
1
+ /*===---- cmath - CUDA wrapper for <cmath> ---------------------------------===
2
+ *
3
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ * of this software and associated documentation files (the "Software"), to deal
5
+ * in the Software without restriction, including without limitation the rights
6
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ * copies of the Software, and to permit persons to whom the Software is
8
+ * furnished to do so, subject to the following conditions:
9
+ *
10
+ * The above copyright notice and this permission notice shall be included in
11
+ * all copies or substantial portions of the Software.
12
+ *
13
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ * THE SOFTWARE.
20
+ *
21
+ *===-----------------------------------------------------------------------===
22
+ */
23
+
24
+ #ifndef __CLANG_CUDA_WRAPPERS_CMATH
25
+ #define __CLANG_CUDA_WRAPPERS_CMATH
26
+
27
+ #if __has_include_next(<cmath>)
28
+ #include_next <cmath>
29
+ #else
30
+ #error "Could not find standard C++ header 'cmath'. Add -v to your compilation command to check the include paths being searched. You may need to install the appropriate standard C++ library package corresponding to the search path."
31
+ #endif
32
+
33
+ #if defined(_LIBCPP_STD_VER)
34
+
35
+ // libc++ will need long double variants of these functions, but CUDA does not
36
+ // provide them. We'll provide their declarations, which should allow the
37
+ // headers to parse, but would not allow accidental use of them on a GPU.
38
+
39
+ __attribute__((device)) long double logb(long double);
40
+ __attribute__((device)) long double scalbn(long double, int);
41
+
42
+ #endif // _LIBCPP_STD_VER
43
+
44
+ #endif // include guard
@@ -91,12 +91,14 @@ __device__ inline void operator delete[](void *ptr,
91
91
  #endif
92
92
 
93
93
  // Device overrides for placement new and delete.
94
+ #if !(_LIBCPP_STD_VER >= 26 || __cpp_lib_constexpr_new >= 202406L)
94
95
  __device__ inline void *operator new(__SIZE_TYPE__, void *__ptr) CUDA_NOEXCEPT {
95
96
  return __ptr;
96
97
  }
97
98
  __device__ inline void *operator new[](__SIZE_TYPE__, void *__ptr) CUDA_NOEXCEPT {
98
99
  return __ptr;
99
100
  }
101
+ #endif
100
102
  __device__ inline void operator delete(void *, void *) CUDA_NOEXCEPT {}
101
103
  __device__ inline void operator delete[](void *, void *) CUDA_NOEXCEPT {}
102
104