@cpp-linter/clang-tidy-win32-x64 15.0.2 → 16.0.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 (197) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_texture_intrinsics.h +2 -0
  4. package/lib/clang/{15.0.2 → 16}/include/__clang_hip_libdevice_declares.h +5 -0
  5. package/lib/clang/{15.0.2 → 16}/include/__clang_hip_math.h +10 -13
  6. package/lib/clang/{15.0.2 → 16}/include/__clang_hip_runtime_wrapper.h +1 -0
  7. package/lib/clang/16/include/__clang_hip_stdlib.h +43 -0
  8. package/lib/clang/{15.0.2 → 16}/include/altivec.h +14 -14
  9. package/lib/clang/16/include/amxfp16intrin.h +58 -0
  10. package/lib/clang/{15.0.2 → 16}/include/amxintrin.h +32 -0
  11. package/lib/clang/{15.0.2 → 16}/include/arm_acle.h +76 -75
  12. package/lib/clang/{15.0.2 → 16}/include/arm_fp16.h +1 -1
  13. package/lib/clang/{15.0.2 → 16}/include/arm_neon.h +26428 -26598
  14. package/lib/clang/{15.0.2 → 16}/include/arm_neon_sve_bridge.h +0 -2
  15. package/lib/clang/{15.0.2 → 16}/include/arm_sve.h +7784 -7936
  16. package/lib/clang/{15.0.2 → 16}/include/avx512bf16intrin.h +18 -15
  17. package/lib/clang/{15.0.2 → 16}/include/avx512fintrin.h +2 -2
  18. package/lib/clang/{15.0.2 → 16}/include/avx512fp16intrin.h +6 -9
  19. package/lib/clang/{15.0.2 → 16}/include/avx512ifmavlintrin.h +13 -27
  20. package/lib/clang/{15.0.2 → 16}/include/avx512vlbf16intrin.h +31 -38
  21. package/lib/clang/{15.0.2 → 16}/include/avx512vlbwintrin.h +352 -0
  22. package/lib/clang/{15.0.2 → 16}/include/avx512vlfp16intrin.h +3 -0
  23. package/lib/clang/16/include/avxifmaintrin.h +177 -0
  24. package/lib/clang/{15.0.2 → 16}/include/avxintrin.h +12 -2
  25. package/lib/clang/16/include/avxneconvertintrin.h +484 -0
  26. package/lib/clang/16/include/avxvnniint8intrin.h +471 -0
  27. package/lib/clang/16/include/cmpccxaddintrin.h +70 -0
  28. package/lib/clang/{15.0.2 → 16}/include/cpuid.h +11 -1
  29. package/lib/clang/16/include/cuda_wrappers/cmath +90 -0
  30. package/lib/clang/{15.0.2 → 16}/include/emmintrin.h +11 -1
  31. package/lib/clang/{15.0.2 → 16}/include/float.h +17 -10
  32. package/lib/clang/{15.0.2 → 16}/include/gfniintrin.h +7 -5
  33. package/lib/clang/{15.0.2 → 16}/include/hlsl/hlsl_basic_types.h +3 -0
  34. package/lib/clang/16/include/hlsl/hlsl_intrinsics.h +223 -0
  35. package/lib/clang/{15.0.2 → 16}/include/immintrin.h +41 -9
  36. package/lib/clang/16/include/larchintrin.h +234 -0
  37. package/lib/clang/{15.0.2 → 16}/include/limits.h +3 -2
  38. package/lib/clang/{15.0.2 → 16}/include/opencl-c-base.h +19 -0
  39. package/lib/clang/{15.0.2 → 16}/include/opencl-c.h +175 -145
  40. package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/emmintrin.h +2 -2
  41. package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/mm_malloc.h +1 -1
  42. package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/mmintrin.h +2 -2
  43. package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/pmmintrin.h +2 -2
  44. package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/smmintrin.h +2 -2
  45. package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/tmmintrin.h +2 -2
  46. package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/xmmintrin.h +2 -2
  47. package/lib/clang/16/include/prfchiintrin.h +61 -0
  48. package/lib/clang/16/include/raointintrin.h +203 -0
  49. package/lib/clang/{15.0.2 → 16}/include/riscv_vector.h +62 -53
  50. package/lib/clang/{15.0.2 → 16}/include/smmintrin.h +2 -2
  51. package/lib/clang/{15.0.2 → 16}/include/stdarg.h +23 -7
  52. package/lib/clang/{15.0.2 → 16}/include/stdatomic.h +6 -3
  53. package/lib/clang/{15.0.2 → 16}/include/stdbool.h +2 -2
  54. package/lib/clang/{15.0.2 → 16}/include/stddef.h +8 -1
  55. package/lib/clang/{15.0.2 → 16}/include/stdint.h +158 -40
  56. package/lib/clang/{15.0.2 → 16}/include/stdnoreturn.h +1 -1
  57. package/lib/clang/{15.0.2 → 16}/include/unwind.h +2 -1
  58. package/lib/clang/{15.0.2 → 16}/include/velintrin.h +1 -1
  59. package/lib/clang/{15.0.2 → 16}/include/x86gprintrin.h +19 -7
  60. package/lib/clang/{15.0.2 → 16}/include/xmmintrin.h +1 -2
  61. package/package.json +6 -6
  62. package/lib/clang/15.0.2/include/hlsl/hlsl_intrinsics.h +0 -15
  63. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_builtin_vars.h +0 -0
  64. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_cmath.h +0 -0
  65. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_complex_builtins.h +0 -0
  66. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_device_functions.h +0 -0
  67. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_intrinsics.h +0 -0
  68. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_libdevice_declares.h +0 -0
  69. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_math.h +0 -0
  70. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_math_forward_declares.h +0 -0
  71. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_runtime_wrapper.h +0 -0
  72. /package/lib/clang/{15.0.2 → 16}/include/__clang_hip_cmath.h +0 -0
  73. /package/lib/clang/{15.0.2 → 16}/include/__stddef_max_align_t.h +0 -0
  74. /package/lib/clang/{15.0.2 → 16}/include/__wmmintrin_aes.h +0 -0
  75. /package/lib/clang/{15.0.2 → 16}/include/__wmmintrin_pclmul.h +0 -0
  76. /package/lib/clang/{15.0.2 → 16}/include/adxintrin.h +0 -0
  77. /package/lib/clang/{15.0.2 → 16}/include/ammintrin.h +0 -0
  78. /package/lib/clang/{15.0.2 → 16}/include/arm64intr.h +0 -0
  79. /package/lib/clang/{15.0.2 → 16}/include/arm_bf16.h +0 -0
  80. /package/lib/clang/{15.0.2 → 16}/include/arm_cde.h +0 -0
  81. /package/lib/clang/{15.0.2 → 16}/include/arm_cmse.h +0 -0
  82. /package/lib/clang/{15.0.2 → 16}/include/arm_mve.h +0 -0
  83. /package/lib/clang/{15.0.2 → 16}/include/armintr.h +0 -0
  84. /package/lib/clang/{15.0.2 → 16}/include/avx2intrin.h +0 -0
  85. /package/lib/clang/{15.0.2 → 16}/include/avx512bitalgintrin.h +0 -0
  86. /package/lib/clang/{15.0.2 → 16}/include/avx512bwintrin.h +0 -0
  87. /package/lib/clang/{15.0.2 → 16}/include/avx512cdintrin.h +0 -0
  88. /package/lib/clang/{15.0.2 → 16}/include/avx512dqintrin.h +0 -0
  89. /package/lib/clang/{15.0.2 → 16}/include/avx512erintrin.h +0 -0
  90. /package/lib/clang/{15.0.2 → 16}/include/avx512ifmaintrin.h +0 -0
  91. /package/lib/clang/{15.0.2 → 16}/include/avx512pfintrin.h +0 -0
  92. /package/lib/clang/{15.0.2 → 16}/include/avx512vbmi2intrin.h +0 -0
  93. /package/lib/clang/{15.0.2 → 16}/include/avx512vbmiintrin.h +0 -0
  94. /package/lib/clang/{15.0.2 → 16}/include/avx512vbmivlintrin.h +0 -0
  95. /package/lib/clang/{15.0.2 → 16}/include/avx512vlbitalgintrin.h +0 -0
  96. /package/lib/clang/{15.0.2 → 16}/include/avx512vlcdintrin.h +0 -0
  97. /package/lib/clang/{15.0.2 → 16}/include/avx512vldqintrin.h +0 -0
  98. /package/lib/clang/{15.0.2 → 16}/include/avx512vlintrin.h +0 -0
  99. /package/lib/clang/{15.0.2 → 16}/include/avx512vlvbmi2intrin.h +0 -0
  100. /package/lib/clang/{15.0.2 → 16}/include/avx512vlvnniintrin.h +0 -0
  101. /package/lib/clang/{15.0.2 → 16}/include/avx512vlvp2intersectintrin.h +0 -0
  102. /package/lib/clang/{15.0.2 → 16}/include/avx512vnniintrin.h +0 -0
  103. /package/lib/clang/{15.0.2 → 16}/include/avx512vp2intersectintrin.h +0 -0
  104. /package/lib/clang/{15.0.2 → 16}/include/avx512vpopcntdqintrin.h +0 -0
  105. /package/lib/clang/{15.0.2 → 16}/include/avx512vpopcntdqvlintrin.h +0 -0
  106. /package/lib/clang/{15.0.2 → 16}/include/avxvnniintrin.h +0 -0
  107. /package/lib/clang/{15.0.2 → 16}/include/bmi2intrin.h +0 -0
  108. /package/lib/clang/{15.0.2 → 16}/include/bmiintrin.h +0 -0
  109. /package/lib/clang/{15.0.2 → 16}/include/builtins.h +0 -0
  110. /package/lib/clang/{15.0.2 → 16}/include/cet.h +0 -0
  111. /package/lib/clang/{15.0.2 → 16}/include/cetintrin.h +0 -0
  112. /package/lib/clang/{15.0.2 → 16}/include/cldemoteintrin.h +0 -0
  113. /package/lib/clang/{15.0.2 → 16}/include/clflushoptintrin.h +0 -0
  114. /package/lib/clang/{15.0.2 → 16}/include/clwbintrin.h +0 -0
  115. /package/lib/clang/{15.0.2 → 16}/include/clzerointrin.h +0 -0
  116. /package/lib/clang/{15.0.2 → 16}/include/crc32intrin.h +0 -0
  117. /package/lib/clang/{15.0.2 → 16}/include/cuda_wrappers/algorithm +0 -0
  118. /package/lib/clang/{15.0.2 → 16}/include/cuda_wrappers/complex +0 -0
  119. /package/lib/clang/{15.0.2 → 16}/include/cuda_wrappers/new +0 -0
  120. /package/lib/clang/{15.0.2 → 16}/include/enqcmdintrin.h +0 -0
  121. /package/lib/clang/{15.0.2 → 16}/include/f16cintrin.h +0 -0
  122. /package/lib/clang/{15.0.2 → 16}/include/fma4intrin.h +0 -0
  123. /package/lib/clang/{15.0.2 → 16}/include/fmaintrin.h +0 -0
  124. /package/lib/clang/{15.0.2 → 16}/include/fxsrintrin.h +0 -0
  125. /package/lib/clang/{15.0.2 → 16}/include/hexagon_circ_brev_intrinsics.h +0 -0
  126. /package/lib/clang/{15.0.2 → 16}/include/hexagon_protos.h +0 -0
  127. /package/lib/clang/{15.0.2 → 16}/include/hexagon_types.h +0 -0
  128. /package/lib/clang/{15.0.2 → 16}/include/hlsl.h +0 -0
  129. /package/lib/clang/{15.0.2 → 16}/include/hresetintrin.h +0 -0
  130. /package/lib/clang/{15.0.2 → 16}/include/htmintrin.h +0 -0
  131. /package/lib/clang/{15.0.2 → 16}/include/htmxlintrin.h +0 -0
  132. /package/lib/clang/{15.0.2 → 16}/include/hvx_hexagon_protos.h +0 -0
  133. /package/lib/clang/{15.0.2 → 16}/include/ia32intrin.h +0 -0
  134. /package/lib/clang/{15.0.2 → 16}/include/intrin.h +0 -0
  135. /package/lib/clang/{15.0.2 → 16}/include/inttypes.h +0 -0
  136. /package/lib/clang/{15.0.2 → 16}/include/invpcidintrin.h +0 -0
  137. /package/lib/clang/{15.0.2 → 16}/include/iso646.h +0 -0
  138. /package/lib/clang/{15.0.2 → 16}/include/keylockerintrin.h +0 -0
  139. /package/lib/clang/{15.0.2 → 16}/include/lwpintrin.h +0 -0
  140. /package/lib/clang/{15.0.2 → 16}/include/lzcntintrin.h +0 -0
  141. /package/lib/clang/{15.0.2 → 16}/include/mm3dnow.h +0 -0
  142. /package/lib/clang/{15.0.2 → 16}/include/mm_malloc.h +0 -0
  143. /package/lib/clang/{15.0.2 → 16}/include/mmintrin.h +0 -0
  144. /package/lib/clang/{15.0.2 → 16}/include/module.modulemap +0 -0
  145. /package/lib/clang/{15.0.2 → 16}/include/movdirintrin.h +0 -0
  146. /package/lib/clang/{15.0.2 → 16}/include/msa.h +0 -0
  147. /package/lib/clang/{15.0.2 → 16}/include/mwaitxintrin.h +0 -0
  148. /package/lib/clang/{15.0.2 → 16}/include/nmmintrin.h +0 -0
  149. /package/lib/clang/{15.0.2 → 16}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
  150. /package/lib/clang/{15.0.2 → 16}/include/openmp_wrappers/cmath +0 -0
  151. /package/lib/clang/{15.0.2 → 16}/include/openmp_wrappers/complex +0 -0
  152. /package/lib/clang/{15.0.2 → 16}/include/openmp_wrappers/complex.h +0 -0
  153. /package/lib/clang/{15.0.2 → 16}/include/openmp_wrappers/complex_cmath.h +0 -0
  154. /package/lib/clang/{15.0.2 → 16}/include/openmp_wrappers/math.h +0 -0
  155. /package/lib/clang/{15.0.2 → 16}/include/openmp_wrappers/new +0 -0
  156. /package/lib/clang/{15.0.2 → 16}/include/pconfigintrin.h +0 -0
  157. /package/lib/clang/{15.0.2 → 16}/include/pkuintrin.h +0 -0
  158. /package/lib/clang/{15.0.2 → 16}/include/pmmintrin.h +0 -0
  159. /package/lib/clang/{15.0.2 → 16}/include/popcntintrin.h +0 -0
  160. /package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/bmi2intrin.h +0 -0
  161. /package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/bmiintrin.h +0 -0
  162. /package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/immintrin.h +0 -0
  163. /package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/x86gprintrin.h +0 -0
  164. /package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/x86intrin.h +0 -0
  165. /package/lib/clang/{15.0.2 → 16}/include/prfchwintrin.h +0 -0
  166. /package/lib/clang/{15.0.2 → 16}/include/ptwriteintrin.h +0 -0
  167. /package/lib/clang/{15.0.2 → 16}/include/rdpruintrin.h +0 -0
  168. /package/lib/clang/{15.0.2 → 16}/include/rdseedintrin.h +0 -0
  169. /package/lib/clang/{15.0.2 → 16}/include/rtmintrin.h +0 -0
  170. /package/lib/clang/{15.0.2 → 16}/include/s390intrin.h +0 -0
  171. /package/lib/clang/{15.0.2 → 16}/include/serializeintrin.h +0 -0
  172. /package/lib/clang/{15.0.2 → 16}/include/sgxintrin.h +0 -0
  173. /package/lib/clang/{15.0.2 → 16}/include/shaintrin.h +0 -0
  174. /package/lib/clang/{15.0.2 → 16}/include/stdalign.h +0 -0
  175. /package/lib/clang/{15.0.2 → 16}/include/tbmintrin.h +0 -0
  176. /package/lib/clang/{15.0.2 → 16}/include/tgmath.h +0 -0
  177. /package/lib/clang/{15.0.2 → 16}/include/tmmintrin.h +0 -0
  178. /package/lib/clang/{15.0.2 → 16}/include/tsxldtrkintrin.h +0 -0
  179. /package/lib/clang/{15.0.2 → 16}/include/uintrintrin.h +0 -0
  180. /package/lib/clang/{15.0.2 → 16}/include/vadefs.h +0 -0
  181. /package/lib/clang/{15.0.2 → 16}/include/vaesintrin.h +0 -0
  182. /package/lib/clang/{15.0.2 → 16}/include/varargs.h +0 -0
  183. /package/lib/clang/{15.0.2 → 16}/include/vecintrin.h +0 -0
  184. /package/lib/clang/{15.0.2 → 16}/include/velintrin_approx.h +0 -0
  185. /package/lib/clang/{15.0.2 → 16}/include/velintrin_gen.h +0 -0
  186. /package/lib/clang/{15.0.2 → 16}/include/vpclmulqdqintrin.h +0 -0
  187. /package/lib/clang/{15.0.2 → 16}/include/waitpkgintrin.h +0 -0
  188. /package/lib/clang/{15.0.2 → 16}/include/wasm_simd128.h +0 -0
  189. /package/lib/clang/{15.0.2 → 16}/include/wbnoinvdintrin.h +0 -0
  190. /package/lib/clang/{15.0.2 → 16}/include/wmmintrin.h +0 -0
  191. /package/lib/clang/{15.0.2 → 16}/include/x86intrin.h +0 -0
  192. /package/lib/clang/{15.0.2 → 16}/include/xopintrin.h +0 -0
  193. /package/lib/clang/{15.0.2 → 16}/include/xsavecintrin.h +0 -0
  194. /package/lib/clang/{15.0.2 → 16}/include/xsaveintrin.h +0 -0
  195. /package/lib/clang/{15.0.2 → 16}/include/xsaveoptintrin.h +0 -0
  196. /package/lib/clang/{15.0.2 → 16}/include/xsavesintrin.h +0 -0
  197. /package/lib/clang/{15.0.2 → 16}/include/xtestintrin.h +0 -0
@@ -36,7 +36,7 @@
36
36
  #ifndef EMMINTRIN_H_
37
37
  #define EMMINTRIN_H_
38
38
 
39
- #if defined(__ppc64__) && \
39
+ #if defined(__powerpc64__) && \
40
40
  (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX))
41
41
 
42
42
  #include <altivec.h>
@@ -2262,7 +2262,7 @@ extern __inline __m128d
2262
2262
 
2263
2263
  #else
2264
2264
  #include_next <emmintrin.h>
2265
- #endif /* defined(__ppc64__) &&
2265
+ #endif /* defined(__powerpc64__) && \
2266
2266
  * (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX)) */
2267
2267
 
2268
2268
  #endif /* EMMINTRIN_H_ */
@@ -10,7 +10,7 @@
10
10
  #ifndef _MM_MALLOC_H_INCLUDED
11
11
  #define _MM_MALLOC_H_INCLUDED
12
12
 
13
- #if defined(__ppc64__) && \
13
+ #if defined(__powerpc64__) && \
14
14
  (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX))
15
15
 
16
16
  #include <stdlib.h>
@@ -35,7 +35,7 @@
35
35
  #ifndef _MMINTRIN_H_INCLUDED
36
36
  #define _MMINTRIN_H_INCLUDED
37
37
 
38
- #if defined(__ppc64__) && \
38
+ #if defined(__powerpc64__) && \
39
39
  (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX))
40
40
 
41
41
  #include <altivec.h>
@@ -1447,7 +1447,7 @@ extern __inline __m64
1447
1447
 
1448
1448
  #else
1449
1449
  #include_next <mmintrin.h>
1450
- #endif /* defined(__ppc64__) &&
1450
+ #endif /* defined(__powerpc64__) && \
1451
1451
  * (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX)) */
1452
1452
 
1453
1453
  #endif /* _MMINTRIN_H_INCLUDED */
@@ -39,7 +39,7 @@
39
39
  #ifndef PMMINTRIN_H_
40
40
  #define PMMINTRIN_H_
41
41
 
42
- #if defined(__ppc64__) && \
42
+ #if defined(__powerpc64__) && \
43
43
  (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX))
44
44
 
45
45
  /* We need definitions from the SSE2 and SSE header files*/
@@ -139,7 +139,7 @@ extern __inline __m128i
139
139
 
140
140
  #else
141
141
  #include_next <pmmintrin.h>
142
- #endif /* defined(__ppc64__) &&
142
+ #endif /* defined(__powerpc64__) && \
143
143
  * (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX)) */
144
144
 
145
145
  #endif /* PMMINTRIN_H_ */
@@ -29,7 +29,7 @@
29
29
  #ifndef SMMINTRIN_H_
30
30
  #define SMMINTRIN_H_
31
31
 
32
- #if defined(__ppc64__) && \
32
+ #if defined(__powerpc64__) && \
33
33
  (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX))
34
34
 
35
35
  #include <altivec.h>
@@ -657,7 +657,7 @@ extern __inline __m128i
657
657
 
658
658
  #else
659
659
  #include_next <smmintrin.h>
660
- #endif /* defined(__ppc64__) &&
660
+ #endif /* defined(__powerpc64__) && \
661
661
  * (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX)) */
662
662
 
663
663
  #endif /* SMMINTRIN_H_ */
@@ -25,7 +25,7 @@
25
25
  #ifndef TMMINTRIN_H_
26
26
  #define TMMINTRIN_H_
27
27
 
28
- #if defined(__ppc64__) && \
28
+ #if defined(__powerpc64__) && \
29
29
  (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX))
30
30
 
31
31
  #include <altivec.h>
@@ -447,7 +447,7 @@ extern __inline __m64
447
447
 
448
448
  #else
449
449
  #include_next <tmmintrin.h>
450
- #endif /* defined(__ppc64__) &&
450
+ #endif /* defined(__powerpc64__) && \
451
451
  * (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX)) */
452
452
 
453
453
  #endif /* TMMINTRIN_H_ */
@@ -35,7 +35,7 @@
35
35
  #ifndef XMMINTRIN_H_
36
36
  #define XMMINTRIN_H_
37
37
 
38
- #if defined(__ppc64__) && \
38
+ #if defined(__powerpc64__) && \
39
39
  (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX))
40
40
 
41
41
  /* Define four value permute mask */
@@ -1821,7 +1821,7 @@ extern __inline void
1821
1821
 
1822
1822
  #else
1823
1823
  #include_next <xmmintrin.h>
1824
- #endif /* defined(__ppc64__) &&
1824
+ #endif /* defined(__powerpc64__) && \
1825
1825
  * (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX)) */
1826
1826
 
1827
1827
  #endif /* XMMINTRIN_H_ */
@@ -0,0 +1,61 @@
1
+ /*===---- prfchiintrin.h - PREFETCHI intrinsic -----------------------------===
2
+ *
3
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ * See https://llvm.org/LICENSE.txt for license information.
5
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ *
7
+ *===-----------------------------------------------------------------------===
8
+ */
9
+
10
+ #ifndef __PRFCHIINTRIN_H
11
+ #define __PRFCHIINTRIN_H
12
+
13
+ #ifdef __x86_64__
14
+
15
+ /* Define the default attributes for the functions in this file. */
16
+ #define __DEFAULT_FN_ATTRS \
17
+ __attribute__((__always_inline__, __nodebug__, __target__("prefetchi")))
18
+
19
+ /// Loads an instruction sequence containing the specified memory address into
20
+ /// all level cache.
21
+ ///
22
+ /// Note that the effect of this intrinsic is dependent on the processor
23
+ /// implementation.
24
+ ///
25
+ /// \headerfile <x86intrin.h>
26
+ ///
27
+ /// This intrinsic corresponds to the \c PREFETCHIT0 instruction.
28
+ ///
29
+ /// \param __P
30
+ /// A pointer specifying the memory address to be prefetched.
31
+ static __inline__ void __DEFAULT_FN_ATTRS
32
+ _m_prefetchit0(volatile const void *__P) {
33
+ #pragma clang diagnostic push
34
+ #pragma clang diagnostic ignored "-Wcast-qual"
35
+ __builtin_ia32_prefetchi((const void *)__P, 3 /* _MM_HINT_T0 */);
36
+ #pragma clang diagnostic pop
37
+ }
38
+
39
+ /// Loads an instruction sequence containing the specified memory address into
40
+ /// all but the first-level cache.
41
+ ///
42
+ /// Note that the effect of this intrinsic is dependent on the processor
43
+ /// implementation.
44
+ ///
45
+ /// \headerfile <x86intrin.h>
46
+ ///
47
+ /// This intrinsic corresponds to the \c PREFETCHIT1 instruction.
48
+ ///
49
+ /// \param __P
50
+ /// A pointer specifying the memory address to be prefetched.
51
+ static __inline__ void __DEFAULT_FN_ATTRS
52
+ _m_prefetchit1(volatile const void *__P) {
53
+ #pragma clang diagnostic push
54
+ #pragma clang diagnostic ignored "-Wcast-qual"
55
+ __builtin_ia32_prefetchi((const void *)__P, 2 /* _MM_HINT_T1 */);
56
+ #pragma clang diagnostic pop
57
+ }
58
+ #endif /* __x86_64__ */
59
+ #undef __DEFAULT_FN_ATTRS
60
+
61
+ #endif /* __PRFCHWINTRIN_H */
@@ -0,0 +1,203 @@
1
+ /*===----------------------- raointintrin.h - RAOINT ------------------------===
2
+ *
3
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ * See https://llvm.org/LICENSE.txt for license information.
5
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ *
7
+ *===-----------------------------------------------------------------------===
8
+ */
9
+
10
+ #ifndef __X86GPRINTRIN_H
11
+ #error "Never use <raointintrin.h> directly; include <x86gprintrin.h> instead."
12
+ #endif // __X86GPRINTRIN_H
13
+
14
+ #ifndef __RAOINTINTRIN_H
15
+ #define __RAOINTINTRIN_H
16
+
17
+ #define __DEFAULT_FN_ATTRS \
18
+ __attribute__((__always_inline__, __nodebug__, __target__("raoint")))
19
+
20
+ /// Atomically add a 32-bit value at memory operand \a __A and a 32-bit \a __B,
21
+ /// and store the result to the same memory location.
22
+ ///
23
+ /// This intrinsic should be used for contention or weak ordering. It may
24
+ /// result in bad performance for hot data used by single thread only.
25
+ ///
26
+ /// \headerfile <x86intrin.h>
27
+ ///
28
+ /// This intrinsic corresponds to the \c AADD instruction.
29
+ ///
30
+ /// \param __A
31
+ /// A pointer to a 32-bit memory location.
32
+ /// \param __B
33
+ /// A 32-bit integer value.
34
+ ///
35
+ /// \code{.operation}
36
+ /// MEM[__A+31:__A] := MEM[__A+31:__A] + __B[31:0]
37
+ /// \endcode
38
+ static __inline__ void __DEFAULT_FN_ATTRS _aadd_i32(int *__A, int __B) {
39
+ __builtin_ia32_aadd32((int *)__A, __B);
40
+ }
41
+
42
+ /// Atomically and a 32-bit value at memory operand \a __A and a 32-bit \a __B,
43
+ /// and store the result to the same memory location.
44
+ ///
45
+ /// This intrinsic should be used for contention or weak ordering. It may
46
+ /// result in bad performance for hot data used by single thread only.
47
+ ///
48
+ /// \headerfile <x86intrin.h>
49
+ ///
50
+ /// This intrinsic corresponds to the \c AAND instruction.
51
+ ///
52
+ /// \param __A
53
+ /// A pointer to a 32-bit memory location.
54
+ /// \param __B
55
+ /// A 32-bit integer value.
56
+ ///
57
+ /// \code{.operation}
58
+ /// MEM[__A+31:__A] := MEM[__A+31:__A] AND __B[31:0]
59
+ /// \endcode
60
+ static __inline__ void __DEFAULT_FN_ATTRS _aand_i32(int *__A, int __B) {
61
+ __builtin_ia32_aand32((int *)__A, __B);
62
+ }
63
+
64
+ /// Atomically or a 32-bit value at memory operand \a __A and a 32-bit \a __B,
65
+ /// and store the result to the same memory location.
66
+ ///
67
+ /// This intrinsic should be used for contention or weak ordering. It may
68
+ /// result in bad performance for hot data used by single thread only.
69
+ ///
70
+ /// \headerfile <x86intrin.h>
71
+ ///
72
+ /// This intrinsic corresponds to the \c AOR instruction.
73
+ ///
74
+ /// \param __A
75
+ /// A pointer to a 32-bit memory location.
76
+ /// \param __B
77
+ /// A 32-bit integer value.
78
+ ///
79
+ /// \code{.operation}
80
+ /// MEM[__A+31:__A] := MEM[__A+31:__A] OR __B[31:0]
81
+ /// \endcode
82
+ static __inline__ void __DEFAULT_FN_ATTRS _aor_i32(int *__A, int __B) {
83
+ __builtin_ia32_aor32((int *)__A, __B);
84
+ }
85
+
86
+ /// Atomically xor a 32-bit value at memory operand \a __A and a 32-bit \a __B,
87
+ /// and store the result to the same memory location.
88
+ ///
89
+ /// This intrinsic should be used for contention or weak ordering. It may
90
+ /// result in bad performance for hot data used by single thread only.
91
+ ///
92
+ /// \headerfile <x86intrin.h>
93
+ ///
94
+ /// This intrinsic corresponds to the \c AXOR instruction.
95
+ ///
96
+ /// \param __A
97
+ /// A pointer to a 32-bit memory location.
98
+ /// \param __B
99
+ /// A 32-bit integer value.
100
+ ///
101
+ /// \code{.operation}
102
+ /// MEM[__A+31:__A] := MEM[__A+31:__A] XOR __B[31:0]
103
+ /// \endcode
104
+ static __inline__ void __DEFAULT_FN_ATTRS _axor_i32(int *__A, int __B) {
105
+ __builtin_ia32_axor32((int *)__A, __B);
106
+ }
107
+
108
+ #ifdef __x86_64__
109
+ /// Atomically add a 64-bit value at memory operand \a __A and a 64-bit \a __B,
110
+ /// and store the result to the same memory location.
111
+ ///
112
+ /// This intrinsic should be used for contention or weak ordering. It may
113
+ /// result in bad performance for hot data used by single thread only.
114
+ ///
115
+ /// \headerfile <x86intrin.h>
116
+ ///
117
+ /// This intrinsic corresponds to the \c AADD instruction.
118
+ ///
119
+ /// \param __A
120
+ /// A pointer to a 64-bit memory location.
121
+ /// \param __B
122
+ /// A 64-bit integer value.
123
+ ///
124
+ /// \code{.operation}
125
+ /// MEM[__A+63:__A] := MEM[__A+63:__A] + __B[63:0]
126
+ /// \endcode
127
+ static __inline__ void __DEFAULT_FN_ATTRS _aadd_i64(long long *__A,
128
+ long long __B) {
129
+ __builtin_ia32_aadd64((long long *)__A, __B);
130
+ }
131
+
132
+ /// Atomically and a 64-bit value at memory operand \a __A and a 64-bit \a __B,
133
+ /// and store the result to the same memory location.
134
+ ///
135
+ /// This intrinsic should be used for contention or weak ordering. It may
136
+ /// result in bad performance for hot data used by single thread only.
137
+ ///
138
+ /// \headerfile <x86intrin.h>
139
+ ///
140
+ /// This intrinsic corresponds to the \c AAND instruction.
141
+ ///
142
+ /// \param __A
143
+ /// A pointer to a 64-bit memory location.
144
+ /// \param __B
145
+ /// A 64-bit integer value.
146
+ ///
147
+ /// \code{.operation}
148
+ /// MEM[__A+63:__A] := MEM[__A+63:__A] AND __B[63:0]
149
+ /// \endcode
150
+ static __inline__ void __DEFAULT_FN_ATTRS _aand_i64(long long *__A,
151
+ long long __B) {
152
+ __builtin_ia32_aand64((long long *)__A, __B);
153
+ }
154
+
155
+ /// Atomically or a 64-bit value at memory operand \a __A and a 64-bit \a __B,
156
+ /// and store the result to the same memory location.
157
+ ///
158
+ /// This intrinsic should be used for contention or weak ordering. It may
159
+ /// result in bad performance for hot data used by single thread only.
160
+ ///
161
+ /// \headerfile <x86intrin.h>
162
+ ///
163
+ /// This intrinsic corresponds to the \c AOR instruction.
164
+ ///
165
+ /// \param __A
166
+ /// A pointer to a 64-bit memory location.
167
+ /// \param __B
168
+ /// A 64-bit integer value.
169
+ ///
170
+ /// \code{.operation}
171
+ /// MEM[__A+63:__A] := MEM[__A+63:__A] OR __B[63:0]
172
+ /// \endcode
173
+ static __inline__ void __DEFAULT_FN_ATTRS _aor_i64(long long *__A,
174
+ long long __B) {
175
+ __builtin_ia32_aor64((long long *)__A, __B);
176
+ }
177
+
178
+ /// Atomically xor a 64-bit value at memory operand \a __A and a 64-bit \a __B,
179
+ /// and store the result to the same memory location.
180
+ ///
181
+ /// This intrinsic should be used for contention or weak ordering. It may
182
+ /// result in bad performance for hot data used by single thread only.
183
+ ///
184
+ /// \headerfile <x86intrin.h>
185
+ ///
186
+ /// This intrinsic corresponds to the \c AXOR instruction.
187
+ ///
188
+ /// \param __A
189
+ /// A pointer to a 64-bit memory location.
190
+ /// \param __B
191
+ /// A 64-bit integer value.
192
+ ///
193
+ /// \code{.operation}
194
+ /// MEM[__A+63:__A] := MEM[__A+63:__A] XOR __B[63:0]
195
+ /// \endcode
196
+ static __inline__ void __DEFAULT_FN_ATTRS _axor_i64(long long *__A,
197
+ long long __B) {
198
+ __builtin_ia32_axor64((long long *)__A, __B);
199
+ }
200
+ #endif // __x86_64__
201
+
202
+ #undef __DEFAULT_FN_ATTRS
203
+ #endif // __RAOINTINTRIN_H
@@ -25,6 +25,8 @@ extern "C" {
25
25
  #pragma clang riscv intrinsic vector
26
26
 
27
27
 
28
+ #define __riscv_vlenb() __builtin_rvv_vlenb()
29
+
28
30
  enum RVV_CSR {
29
31
  RVV_VSTART = 0,
30
32
  RVV_VXSAT,
@@ -33,7 +35,7 @@ enum RVV_CSR {
33
35
  };
34
36
 
35
37
  static __inline__ __attribute__((__always_inline__, __nodebug__))
36
- unsigned long vread_csr(enum RVV_CSR __csr) {
38
+ unsigned long __riscv_vread_csr(enum RVV_CSR __csr) {
37
39
  unsigned long __rv = 0;
38
40
  switch (__csr) {
39
41
  case RVV_VSTART:
@@ -53,7 +55,7 @@ unsigned long vread_csr(enum RVV_CSR __csr) {
53
55
  }
54
56
 
55
57
  static __inline__ __attribute__((__always_inline__, __nodebug__))
56
- void vwrite_csr(enum RVV_CSR __csr, unsigned long __value) {
58
+ void __riscv_vwrite_csr(enum RVV_CSR __csr, unsigned long __value) {
57
59
  switch (__csr) {
58
60
  case RVV_VSTART:
59
61
  __asm__ __volatile__ ("csrw\tvstart, %z0" : : "rJ"(__value) : "memory");
@@ -70,57 +72,64 @@ void vwrite_csr(enum RVV_CSR __csr, unsigned long __value) {
70
72
  }
71
73
  }
72
74
 
73
- #define vsetvl_e8mf8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 5)
74
- #define vsetvl_e8mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 6)
75
- #define vsetvl_e8mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 7)
76
- #define vsetvl_e8m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 0)
77
- #define vsetvl_e8m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 1)
78
- #define vsetvl_e8m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 2)
79
- #define vsetvl_e8m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 3)
80
-
81
- #define vsetvl_e16mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 6)
82
- #define vsetvl_e16mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 7)
83
- #define vsetvl_e16m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 0)
84
- #define vsetvl_e16m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 1)
85
- #define vsetvl_e16m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 2)
86
- #define vsetvl_e16m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 3)
87
-
88
- #define vsetvl_e32mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 7)
89
- #define vsetvl_e32m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 0)
90
- #define vsetvl_e32m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 1)
91
- #define vsetvl_e32m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 2)
92
- #define vsetvl_e32m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 3)
93
-
94
- #define vsetvl_e64m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 0)
95
- #define vsetvl_e64m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 1)
96
- #define vsetvl_e64m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 2)
97
- #define vsetvl_e64m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 3)
98
-
99
- #define vsetvlmax_e8mf8() __builtin_rvv_vsetvlimax(0, 5)
100
- #define vsetvlmax_e8mf4() __builtin_rvv_vsetvlimax(0, 6)
101
- #define vsetvlmax_e8mf2() __builtin_rvv_vsetvlimax(0, 7)
102
- #define vsetvlmax_e8m1() __builtin_rvv_vsetvlimax(0, 0)
103
- #define vsetvlmax_e8m2() __builtin_rvv_vsetvlimax(0, 1)
104
- #define vsetvlmax_e8m4() __builtin_rvv_vsetvlimax(0, 2)
105
- #define vsetvlmax_e8m8() __builtin_rvv_vsetvlimax(0, 3)
106
-
107
- #define vsetvlmax_e16mf4() __builtin_rvv_vsetvlimax(1, 6)
108
- #define vsetvlmax_e16mf2() __builtin_rvv_vsetvlimax(1, 7)
109
- #define vsetvlmax_e16m1() __builtin_rvv_vsetvlimax(1, 0)
110
- #define vsetvlmax_e16m2() __builtin_rvv_vsetvlimax(1, 1)
111
- #define vsetvlmax_e16m4() __builtin_rvv_vsetvlimax(1, 2)
112
- #define vsetvlmax_e16m8() __builtin_rvv_vsetvlimax(1, 3)
113
-
114
- #define vsetvlmax_e32mf2() __builtin_rvv_vsetvlimax(2, 7)
115
- #define vsetvlmax_e32m1() __builtin_rvv_vsetvlimax(2, 0)
116
- #define vsetvlmax_e32m2() __builtin_rvv_vsetvlimax(2, 1)
117
- #define vsetvlmax_e32m4() __builtin_rvv_vsetvlimax(2, 2)
118
- #define vsetvlmax_e32m8() __builtin_rvv_vsetvlimax(2, 3)
119
-
120
- #define vsetvlmax_e64m1() __builtin_rvv_vsetvlimax(3, 0)
121
- #define vsetvlmax_e64m2() __builtin_rvv_vsetvlimax(3, 1)
122
- #define vsetvlmax_e64m4() __builtin_rvv_vsetvlimax(3, 2)
123
- #define vsetvlmax_e64m8() __builtin_rvv_vsetvlimax(3, 3)
75
+ #define __riscv_vsetvl_e8mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 6)
76
+ #define __riscv_vsetvl_e8mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 7)
77
+ #define __riscv_vsetvl_e8m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 0)
78
+ #define __riscv_vsetvl_e8m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 1)
79
+ #define __riscv_vsetvl_e8m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 2)
80
+ #define __riscv_vsetvl_e8m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 3)
81
+
82
+ #define __riscv_vsetvl_e16mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 7)
83
+ #define __riscv_vsetvl_e16m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 0)
84
+ #define __riscv_vsetvl_e16m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 1)
85
+ #define __riscv_vsetvl_e16m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 2)
86
+ #define __riscv_vsetvl_e16m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 3)
87
+
88
+ #define __riscv_vsetvl_e32m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 0)
89
+ #define __riscv_vsetvl_e32m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 1)
90
+ #define __riscv_vsetvl_e32m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 2)
91
+ #define __riscv_vsetvl_e32m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 3)
92
+
93
+ #if __riscv_v_elen >= 64
94
+ #define __riscv_vsetvl_e8mf8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 5)
95
+ #define __riscv_vsetvl_e16mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 6)
96
+ #define __riscv_vsetvl_e32mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 7)
97
+
98
+ #define __riscv_vsetvl_e64m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 0)
99
+ #define __riscv_vsetvl_e64m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 1)
100
+ #define __riscv_vsetvl_e64m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 2)
101
+ #define __riscv_vsetvl_e64m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 3)
102
+ #endif
103
+
104
+ #define __riscv_vsetvlmax_e8mf4() __builtin_rvv_vsetvlimax(0, 6)
105
+ #define __riscv_vsetvlmax_e8mf2() __builtin_rvv_vsetvlimax(0, 7)
106
+ #define __riscv_vsetvlmax_e8m1() __builtin_rvv_vsetvlimax(0, 0)
107
+ #define __riscv_vsetvlmax_e8m2() __builtin_rvv_vsetvlimax(0, 1)
108
+ #define __riscv_vsetvlmax_e8m4() __builtin_rvv_vsetvlimax(0, 2)
109
+ #define __riscv_vsetvlmax_e8m8() __builtin_rvv_vsetvlimax(0, 3)
110
+
111
+ #define __riscv_vsetvlmax_e16mf2() __builtin_rvv_vsetvlimax(1, 7)
112
+ #define __riscv_vsetvlmax_e16m1() __builtin_rvv_vsetvlimax(1, 0)
113
+ #define __riscv_vsetvlmax_e16m2() __builtin_rvv_vsetvlimax(1, 1)
114
+ #define __riscv_vsetvlmax_e16m4() __builtin_rvv_vsetvlimax(1, 2)
115
+ #define __riscv_vsetvlmax_e16m8() __builtin_rvv_vsetvlimax(1, 3)
116
+
117
+ #define __riscv_vsetvlmax_e32m1() __builtin_rvv_vsetvlimax(2, 0)
118
+ #define __riscv_vsetvlmax_e32m2() __builtin_rvv_vsetvlimax(2, 1)
119
+ #define __riscv_vsetvlmax_e32m4() __builtin_rvv_vsetvlimax(2, 2)
120
+ #define __riscv_vsetvlmax_e32m8() __builtin_rvv_vsetvlimax(2, 3)
121
+
122
+ #if __riscv_v_elen >= 64
123
+ #define __riscv_vsetvlmax_e8mf8() __builtin_rvv_vsetvlimax(0, 5)
124
+ #define __riscv_vsetvlmax_e16mf4() __builtin_rvv_vsetvlimax(1, 6)
125
+ #define __riscv_vsetvlmax_e32mf2() __builtin_rvv_vsetvlimax(2, 7)
126
+
127
+ #define __riscv_vsetvlmax_e64m1() __builtin_rvv_vsetvlimax(3, 0)
128
+ #define __riscv_vsetvlmax_e64m2() __builtin_rvv_vsetvlimax(3, 1)
129
+ #define __riscv_vsetvlmax_e64m4() __builtin_rvv_vsetvlimax(3, 2)
130
+ #define __riscv_vsetvlmax_e64m8() __builtin_rvv_vsetvlimax(3, 3)
131
+ #endif
132
+
124
133
  typedef __rvv_bool64_t vbool64_t;
125
134
  typedef __rvv_bool32_t vbool32_t;
126
135
  typedef __rvv_bool16_t vbool16_t;
@@ -818,7 +818,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epu32(__m128i __V1,
818
818
  /// parameter, is copied to the result.
819
819
  /// \param N
820
820
  /// Specifies which bits from operand \a Y will be copied, which bits in the
821
- /// result they will be be copied to, and which bits in the result will be
821
+ /// result they will be copied to, and which bits in the result will be
822
822
  /// cleared. The following assignments are made: \n
823
823
  /// Bits [7:6] specify the bits to copy from operand \a Y: \n
824
824
  /// 00: Selects bits [31:0] from operand \a Y. \n
@@ -1145,7 +1145,7 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_testnzc_si128(__m128i __M,
1145
1145
  /// A 128-bit integer vector containing the bits to be tested.
1146
1146
  /// \returns TRUE if the bits specified in the operand are all set to 1; FALSE
1147
1147
  /// otherwise.
1148
- #define _mm_test_all_ones(V) _mm_testc_si128((V), _mm_cmpeq_epi32((V), (V)))
1148
+ #define _mm_test_all_ones(V) _mm_testc_si128((V), _mm_set1_epi32(-1))
1149
1149
 
1150
1150
  /// Tests whether the specified bits in a 128-bit integer vector are
1151
1151
  /// neither all zeros nor all ones.
@@ -8,13 +8,30 @@
8
8
  */
9
9
 
10
10
  #ifndef __STDARG_H
11
- #define __STDARG_H
12
11
 
12
+ #ifndef __GNUC_VA_LIST
13
+ #define __GNUC_VA_LIST
14
+ typedef __builtin_va_list __gnuc_va_list;
15
+ #endif
16
+
17
+ #ifdef __need___va_list
18
+ #undef __need___va_list
19
+ #else
20
+ #define __STDARG_H
13
21
  #ifndef _VA_LIST
14
22
  typedef __builtin_va_list va_list;
15
23
  #define _VA_LIST
16
24
  #endif
25
+
26
+ /* FIXME: This is using the placeholder dates Clang produces for these macros
27
+ in C2x mode; switch to the correct values once they've been published. */
28
+ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202000L
29
+ /* C2x does not require the second parameter for va_start. */
30
+ #define va_start(ap, ...) __builtin_va_start(ap, 0)
31
+ #else
32
+ /* Versions before C2x do require the second parameter. */
17
33
  #define va_start(ap, param) __builtin_va_start(ap, param)
34
+ #endif
18
35
  #define va_end(ap) __builtin_va_end(ap)
19
36
  #define va_arg(ap, type) __builtin_va_arg(ap, type)
20
37
 
@@ -23,13 +40,12 @@ typedef __builtin_va_list va_list;
23
40
  */
24
41
  #define __va_copy(d,s) __builtin_va_copy(d,s)
25
42
 
26
- #if __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L || !defined(__STRICT_ANSI__)
43
+ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
44
+ (defined(__cplusplus) && __cplusplus >= 201103L) || \
45
+ !defined(__STRICT_ANSI__)
27
46
  #define va_copy(dest, src) __builtin_va_copy(dest, src)
28
47
  #endif
29
48
 
30
- #ifndef __GNUC_VA_LIST
31
- #define __GNUC_VA_LIST 1
32
- typedef __builtin_va_list __gnuc_va_list;
33
- #endif
34
-
35
49
  #endif /* __STDARG_H */
50
+
51
+ #endif /* not __STDARG_H */
@@ -15,10 +15,12 @@
15
15
  *
16
16
  * Exclude the MSVC path as well as the MSVC header as of the 14.31.30818
17
17
  * explicitly disallows `stdatomic.h` in the C mode via an `#error`. Fallback
18
- * to the clang resource header until that is fully supported.
18
+ * to the clang resource header until that is fully supported. The
19
+ * `stdatomic.h` header requires C++ 23 or newer.
19
20
  */
20
21
  #if __STDC_HOSTED__ && \
21
- __has_include_next(<stdatomic.h>) && !(defined(_MSC_VER) && !defined(__cplusplus))
22
+ __has_include_next(<stdatomic.h>) && \
23
+ (!defined(_MSC_VER) || (defined(__cplusplus) && __cplusplus >= 202002L))
22
24
  # include_next <stdatomic.h>
23
25
  #else
24
26
 
@@ -45,7 +47,8 @@ extern "C" {
45
47
  /* 7.17.2 Initialization */
46
48
 
47
49
  #define ATOMIC_VAR_INIT(value) (value)
48
- #if (__STDC_VERSION__ >= 201710L || __cplusplus >= 202002L) && \
50
+ #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201710L) || \
51
+ (defined(__cplusplus) && __cplusplus >= 202002L)) && \
49
52
  !defined(_CLANG_DISABLE_CRT_DEPRECATION_WARNINGS)
50
53
  /* ATOMIC_VAR_INIT was deprecated in C17 and C++20. */
51
54
  #pragma clang deprecated(ATOMIC_VAR_INIT)
@@ -12,7 +12,7 @@
12
12
 
13
13
  #define __bool_true_false_are_defined 1
14
14
 
15
- #if __STDC_VERSION__ > 201710L
15
+ #if defined(__STDC_VERSION__) && __STDC_VERSION__ > 201710L
16
16
  /* FIXME: We should be issuing a deprecation warning here, but cannot yet due
17
17
  * to system headers which include this header file unconditionally.
18
18
  */
@@ -23,7 +23,7 @@
23
23
  #elif defined(__GNUC__) && !defined(__STRICT_ANSI__)
24
24
  /* Define _Bool as a GNU extension. */
25
25
  #define _Bool bool
26
- #if __cplusplus < 201103L
26
+ #if defined(__cplusplus) && __cplusplus < 201103L
27
27
  /* For C++98, define bool, false, true as a GNU extension. */
28
28
  #define bool bool
29
29
  #define false false
@@ -97,8 +97,15 @@ using ::std::nullptr_t;
97
97
  #undef __need_NULL
98
98
  #endif /* defined(__need_NULL) */
99
99
 
100
+ /* FIXME: This is using the placeholder dates Clang produces for these macros
101
+ in C2x mode; switch to the correct values once they've been published. */
102
+ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202000L
103
+ typedef typeof(nullptr) nullptr_t;
104
+ #endif /* defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202000L */
105
+
100
106
  #if defined(__need_STDDEF_H_misc)
101
- #if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L
107
+ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
108
+ (defined(__cplusplus) && __cplusplus >= 201103L)
102
109
  #include "__stddef_max_align_t.h"
103
110
  #endif
104
111
  #define offsetof(t, d) __builtin_offsetof(t, d)