@cpp-linter/clang-tidy-win32-x64 20.1.0 → 22.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/22/include/__clang_cuda_complex_builtins.h +229 -0
  4. package/lib/clang/{20 → 22}/include/__clang_cuda_device_functions.h +1 -1
  5. package/lib/clang/{20 → 22}/include/__clang_cuda_intrinsics.h +295 -8
  6. package/lib/clang/{20 → 22}/include/__clang_cuda_runtime_wrapper.h +19 -0
  7. package/lib/clang/{20 → 22}/include/__clang_cuda_texture_intrinsics.h +437 -2
  8. package/lib/clang/{20 → 22}/include/__clang_hip_cmath.h +9 -8
  9. package/lib/clang/{20 → 22}/include/__clang_hip_libdevice_declares.h +29 -42
  10. package/lib/clang/{20 → 22}/include/__clang_hip_math.h +107 -31
  11. package/lib/clang/{20 → 22}/include/__clang_hip_runtime_wrapper.h +6 -0
  12. package/lib/clang/22/include/__clang_spirv_builtins.h +217 -0
  13. package/lib/clang/{20/include/float.h → 22/include/__float_float.h} +14 -34
  14. package/lib/clang/22/include/__float_header_macro.h +12 -0
  15. package/lib/clang/22/include/__float_infinity_nan.h +20 -0
  16. package/lib/clang/{20 → 22}/include/__stdarg_va_arg.h +2 -2
  17. package/lib/clang/{20 → 22}/include/altivec.h +82 -79
  18. package/lib/clang/{20 → 22}/include/amdgpuintrin.h +23 -26
  19. package/lib/clang/22/include/amo.h +131 -0
  20. package/lib/clang/{20 → 22}/include/amxavx512intrin.h +216 -2
  21. package/lib/clang/{20 → 22}/include/amxcomplexintrin.h +4 -6
  22. package/lib/clang/{20 → 22}/include/amxintrin.h +0 -2
  23. package/lib/clang/22/include/andes_vector.h +16 -0
  24. package/lib/clang/{20 → 22}/include/arm_acle.h +48 -68
  25. package/lib/clang/{20 → 22}/include/arm_fp16.h +89 -89
  26. package/lib/clang/{20 → 22}/include/arm_neon.h +22413 -19759
  27. package/lib/clang/{20 → 22}/include/arm_sme.h +702 -8
  28. package/lib/clang/{20 → 22}/include/arm_sve.h +6346 -5626
  29. package/lib/clang/{20 → 22}/include/avx10_2_512bf16intrin.h +19 -12
  30. package/lib/clang/{20 → 22}/include/avx10_2_512convertintrin.h +25 -23
  31. package/lib/clang/{20 → 22}/include/avx10_2_512niintrin.h +31 -31
  32. package/lib/clang/{20 → 22}/include/avx10_2_512satcvtdsintrin.h +29 -25
  33. package/lib/clang/{20 → 22}/include/avx10_2_512satcvtintrin.h +84 -84
  34. package/lib/clang/{20 → 22}/include/avx10_2bf16intrin.h +54 -45
  35. package/lib/clang/22/include/avx10_2convertintrin.h +3257 -0
  36. package/lib/clang/{20 → 22}/include/avx10_2copyintrin.h +1 -1
  37. package/lib/clang/{20 → 22}/include/avx10_2minmaxintrin.h +18 -63
  38. package/lib/clang/22/include/avx10_2niintrin.h +409 -0
  39. package/lib/clang/22/include/avx10_2satcvtdsintrin.h +376 -0
  40. package/lib/clang/22/include/avx10_2satcvtintrin.h +312 -0
  41. package/lib/clang/{20 → 22}/include/avx2intrin.h +275 -377
  42. package/lib/clang/{20 → 22}/include/avx512bf16intrin.h +25 -16
  43. package/lib/clang/{20 → 22}/include/avx512bitalgintrin.h +19 -30
  44. package/lib/clang/{20 → 22}/include/avx512bwintrin.h +386 -505
  45. package/lib/clang/22/include/avx512cdintrin.h +112 -0
  46. package/lib/clang/{20 → 22}/include/avx512dqintrin.h +132 -161
  47. package/lib/clang/{20 → 22}/include/avx512fintrin.h +1015 -1424
  48. package/lib/clang/{20 → 22}/include/avx512fp16intrin.h +114 -111
  49. package/lib/clang/22/include/avx512ifmaintrin.h +68 -0
  50. package/lib/clang/22/include/avx512ifmavlintrin.h +138 -0
  51. package/lib/clang/{20 → 22}/include/avx512vbmi2intrin.h +43 -32
  52. package/lib/clang/{20 → 22}/include/avx512vbmiintrin.h +19 -27
  53. package/lib/clang/{20 → 22}/include/avx512vbmivlintrin.h +35 -49
  54. package/lib/clang/{20 → 22}/include/avx512vlbf16intrin.h +32 -22
  55. package/lib/clang/{20 → 22}/include/avx512vlbitalgintrin.h +37 -53
  56. package/lib/clang/{20 → 22}/include/avx512vlbwintrin.h +470 -573
  57. package/lib/clang/22/include/avx512vlcdintrin.h +202 -0
  58. package/lib/clang/{20 → 22}/include/avx512vldqintrin.h +110 -127
  59. package/lib/clang/{20 → 22}/include/avx512vlfp16intrin.h +130 -111
  60. package/lib/clang/{20 → 22}/include/avx512vlintrin.h +945 -1299
  61. package/lib/clang/{20 → 22}/include/avx512vlvbmi2intrin.h +78 -63
  62. package/lib/clang/{20 → 22}/include/avx512vlvnniintrin.h +21 -18
  63. package/lib/clang/{20 → 22}/include/avx512vlvp2intersectintrin.h +2 -2
  64. package/lib/clang/{20 → 22}/include/avx512vnniintrin.h +10 -10
  65. package/lib/clang/{20 → 22}/include/avx512vp2intersectintrin.h +1 -2
  66. package/lib/clang/{20 → 22}/include/avx512vpopcntdqintrin.h +8 -10
  67. package/lib/clang/{20 → 22}/include/avx512vpopcntdqvlintrin.h +17 -15
  68. package/lib/clang/{20 → 22}/include/avxifmaintrin.h +16 -0
  69. package/lib/clang/{20 → 22}/include/avxintrin.h +165 -241
  70. package/lib/clang/{20 → 22}/include/avxvnniint16intrin.h +118 -99
  71. package/lib/clang/{20 → 22}/include/avxvnniint8intrin.h +56 -32
  72. package/lib/clang/{20 → 22}/include/avxvnniintrin.h +16 -8
  73. package/lib/clang/{20 → 22}/include/bmiintrin.h +0 -4
  74. package/lib/clang/{20 → 22}/include/cpuid.h +125 -26
  75. package/lib/clang/22/include/cuda_wrappers/__utility/declval.h +28 -0
  76. package/lib/clang/22/include/cuda_wrappers/bits/c++config.h +61 -0
  77. package/lib/clang/{20 → 22}/include/cuda_wrappers/cmath +0 -50
  78. package/lib/clang/{20 → 22}/include/emmintrin.h +168 -168
  79. package/lib/clang/{20 → 22}/include/f16cintrin.h +23 -9
  80. package/lib/clang/22/include/float.h +48 -0
  81. package/lib/clang/22/include/fma4intrin.h +220 -0
  82. package/lib/clang/{20 → 22}/include/fmaintrin.h +96 -66
  83. package/lib/clang/{20 → 22}/include/gfniintrin.h +21 -16
  84. package/lib/clang/{20 → 22}/include/gpuintrin.h +117 -11
  85. package/lib/clang/{20 → 22}/include/hexagon_types.h +23 -20
  86. package/lib/clang/{20/include/hlsl/hlsl_intrinsics.h → 22/include/hlsl/hlsl_alias_intrinsics.h} +643 -296
  87. package/lib/clang/22/include/hlsl/hlsl_basic_types.h +370 -0
  88. package/lib/clang/22/include/hlsl/hlsl_compat_overloads.h +520 -0
  89. package/lib/clang/22/include/hlsl/hlsl_detail.h +54 -0
  90. package/lib/clang/22/include/hlsl/hlsl_intrinsic_helpers.h +190 -0
  91. package/lib/clang/22/include/hlsl/hlsl_intrinsics.h +794 -0
  92. package/lib/clang/22/include/hlsl/hlsl_spirv.h +28 -0
  93. package/lib/clang/{20 → 22}/include/hlsl.h +12 -0
  94. package/lib/clang/{20 → 22}/include/hvx_hexagon_protos.h +649 -860
  95. package/lib/clang/{20 → 22}/include/immintrin.h +0 -236
  96. package/lib/clang/{20 → 22}/include/intrin.h +25 -4
  97. package/lib/clang/{20 → 22}/include/keylockerintrin.h +0 -9
  98. package/lib/clang/{20 → 22}/include/lasxintrin.h +113 -0
  99. package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/assert.h +3 -5
  100. package/lib/clang/22/include/llvm_libc_wrappers/ctype.h +28 -0
  101. package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/inttypes.h +3 -5
  102. package/lib/clang/22/include/llvm_libc_wrappers/stdio.h +52 -0
  103. package/lib/clang/22/include/llvm_libc_wrappers/stdlib.h +32 -0
  104. package/lib/clang/22/include/llvm_libc_wrappers/string.h +28 -0
  105. package/lib/clang/{20 → 22}/include/llvm_libc_wrappers/time.h +4 -10
  106. package/lib/clang/{20 → 22}/include/lzcntintrin.h +6 -4
  107. package/lib/clang/{20 → 22}/include/mmintrin.h +188 -257
  108. package/lib/clang/{20 → 22}/include/module.modulemap +36 -4
  109. package/lib/clang/{20 → 22}/include/movrs_avx10_2_512intrin.h +2 -2
  110. package/lib/clang/{20 → 22}/include/movrs_avx10_2intrin.h +4 -4
  111. package/lib/clang/{20 → 22}/include/movrsintrin.h +1 -1
  112. package/lib/clang/{20 → 22}/include/nvptxintrin.h +48 -31
  113. package/lib/clang/{20 → 22}/include/opencl-c-base.h +18 -93
  114. package/lib/clang/{20 → 22}/include/opencl-c.h +360 -55
  115. package/lib/clang/{20 → 22}/include/pmmintrin.h +12 -24
  116. package/lib/clang/{20 → 22}/include/prfchwintrin.h +10 -13
  117. package/lib/clang/{20 → 22}/include/ptrauth.h +73 -2
  118. package/lib/clang/{20 → 22}/include/riscv_corev_alu.h +4 -4
  119. package/lib/clang/22/include/riscv_mips.h +34 -0
  120. package/lib/clang/22/include/riscv_nds.h +89 -0
  121. package/lib/clang/{20 → 22}/include/riscv_vector.h +0 -4
  122. package/lib/clang/{20 → 22}/include/shaintrin.h +3 -2
  123. package/lib/clang/{20 → 22}/include/sifive_vector.h +58 -2
  124. package/lib/clang/{20 → 22}/include/sm4evexintrin.h +2 -2
  125. package/lib/clang/{20 → 22}/include/smmintrin.h +77 -59
  126. package/lib/clang/22/include/spirvintrin.h +194 -0
  127. package/lib/clang/22/include/stdcountof.h +15 -0
  128. package/lib/clang/22/include/stddefer.h +19 -0
  129. package/lib/clang/{20 → 22}/include/stdint.h +18 -129
  130. package/lib/clang/{20 → 22}/include/tmmintrin.h +116 -147
  131. package/lib/clang/{20 → 22}/include/vaesintrin.h +1 -2
  132. package/lib/clang/{20 → 22}/include/vecintrin.h +5 -0
  133. package/lib/clang/{20 → 22}/include/x86gprintrin.h +0 -14
  134. package/lib/clang/{20 → 22}/include/x86intrin.h +0 -18
  135. package/lib/clang/{20 → 22}/include/xmmintrin.h +47 -72
  136. package/lib/clang/{20 → 22}/include/xopintrin.h +20 -10
  137. package/package.json +6 -6
  138. package/lib/clang/20/include/__clang_cuda_complex_builtins.h +0 -285
  139. package/lib/clang/20/include/amxbf16transposeintrin.h +0 -94
  140. package/lib/clang/20/include/amxcomplextransposeintrin.h +0 -303
  141. package/lib/clang/20/include/amxfp16transposeintrin.h +0 -94
  142. package/lib/clang/20/include/amxmovrstransposeintrin.h +0 -200
  143. package/lib/clang/20/include/amxtf32transposeintrin.h +0 -105
  144. package/lib/clang/20/include/amxtransposeintrin.h +0 -248
  145. package/lib/clang/20/include/avx10_2convertintrin.h +0 -589
  146. package/lib/clang/20/include/avx10_2niintrin.h +0 -2075
  147. package/lib/clang/20/include/avx10_2satcvtdsintrin.h +0 -496
  148. package/lib/clang/20/include/avx10_2satcvtintrin.h +0 -444
  149. package/lib/clang/20/include/avx512cdintrin.h +0 -125
  150. package/lib/clang/20/include/avx512ifmaintrin.h +0 -70
  151. package/lib/clang/20/include/avx512ifmavlintrin.h +0 -111
  152. package/lib/clang/20/include/avx512vlcdintrin.h +0 -230
  153. package/lib/clang/20/include/fma4intrin.h +0 -218
  154. package/lib/clang/20/include/hlsl/hlsl_basic_types.h +0 -120
  155. package/lib/clang/20/include/hlsl/hlsl_detail.h +0 -84
  156. package/lib/clang/20/include/llvm_libc_wrappers/ctype.h +0 -140
  157. package/lib/clang/20/include/llvm_libc_wrappers/stdio.h +0 -80
  158. package/lib/clang/20/include/llvm_libc_wrappers/stdlib.h +0 -53
  159. package/lib/clang/20/include/llvm_libc_wrappers/string.h +0 -96
  160. /package/lib/clang/{20 → 22}/include/__clang_cuda_builtin_vars.h +0 -0
  161. /package/lib/clang/{20 → 22}/include/__clang_cuda_cmath.h +0 -0
  162. /package/lib/clang/{20 → 22}/include/__clang_cuda_libdevice_declares.h +0 -0
  163. /package/lib/clang/{20 → 22}/include/__clang_cuda_math.h +0 -0
  164. /package/lib/clang/{20 → 22}/include/__clang_cuda_math_forward_declares.h +0 -0
  165. /package/lib/clang/{20 → 22}/include/__clang_hip_stdlib.h +0 -0
  166. /package/lib/clang/{20 → 22}/include/__stdarg___gnuc_va_list.h +0 -0
  167. /package/lib/clang/{20 → 22}/include/__stdarg___va_copy.h +0 -0
  168. /package/lib/clang/{20 → 22}/include/__stdarg_header_macro.h +0 -0
  169. /package/lib/clang/{20 → 22}/include/__stdarg_va_copy.h +0 -0
  170. /package/lib/clang/{20 → 22}/include/__stdarg_va_list.h +0 -0
  171. /package/lib/clang/{20 → 22}/include/__stddef_header_macro.h +0 -0
  172. /package/lib/clang/{20 → 22}/include/__stddef_max_align_t.h +0 -0
  173. /package/lib/clang/{20 → 22}/include/__stddef_null.h +0 -0
  174. /package/lib/clang/{20 → 22}/include/__stddef_nullptr_t.h +0 -0
  175. /package/lib/clang/{20 → 22}/include/__stddef_offsetof.h +0 -0
  176. /package/lib/clang/{20 → 22}/include/__stddef_ptrdiff_t.h +0 -0
  177. /package/lib/clang/{20 → 22}/include/__stddef_rsize_t.h +0 -0
  178. /package/lib/clang/{20 → 22}/include/__stddef_size_t.h +0 -0
  179. /package/lib/clang/{20 → 22}/include/__stddef_unreachable.h +0 -0
  180. /package/lib/clang/{20 → 22}/include/__stddef_wchar_t.h +0 -0
  181. /package/lib/clang/{20 → 22}/include/__stddef_wint_t.h +0 -0
  182. /package/lib/clang/{20 → 22}/include/__wmmintrin_aes.h +0 -0
  183. /package/lib/clang/{20 → 22}/include/__wmmintrin_pclmul.h +0 -0
  184. /package/lib/clang/{20 → 22}/include/adcintrin.h +0 -0
  185. /package/lib/clang/{20 → 22}/include/adxintrin.h +0 -0
  186. /package/lib/clang/{20 → 22}/include/ammintrin.h +0 -0
  187. /package/lib/clang/{20 → 22}/include/amxfp16intrin.h +0 -0
  188. /package/lib/clang/{20 → 22}/include/amxfp8intrin.h +0 -0
  189. /package/lib/clang/{20 → 22}/include/amxmovrsintrin.h +0 -0
  190. /package/lib/clang/{20 → 22}/include/amxtf32intrin.h +0 -0
  191. /package/lib/clang/{20 → 22}/include/arm64intr.h +0 -0
  192. /package/lib/clang/{20 → 22}/include/arm_bf16.h +0 -0
  193. /package/lib/clang/{20 → 22}/include/arm_cde.h +0 -0
  194. /package/lib/clang/{20 → 22}/include/arm_cmse.h +0 -0
  195. /package/lib/clang/{20 → 22}/include/arm_mve.h +0 -0
  196. /package/lib/clang/{20 → 22}/include/arm_neon_sve_bridge.h +0 -0
  197. /package/lib/clang/{20 → 22}/include/arm_vector_types.h +0 -0
  198. /package/lib/clang/{20 → 22}/include/armintr.h +0 -0
  199. /package/lib/clang/{20 → 22}/include/avx10_2_512minmaxintrin.h +0 -0
  200. /package/lib/clang/{20 → 22}/include/avxneconvertintrin.h +0 -0
  201. /package/lib/clang/{20 → 22}/include/bmi2intrin.h +0 -0
  202. /package/lib/clang/{20 → 22}/include/builtins.h +0 -0
  203. /package/lib/clang/{20 → 22}/include/cet.h +0 -0
  204. /package/lib/clang/{20 → 22}/include/cetintrin.h +0 -0
  205. /package/lib/clang/{20 → 22}/include/cldemoteintrin.h +0 -0
  206. /package/lib/clang/{20 → 22}/include/clflushoptintrin.h +0 -0
  207. /package/lib/clang/{20 → 22}/include/clwbintrin.h +0 -0
  208. /package/lib/clang/{20 → 22}/include/clzerointrin.h +0 -0
  209. /package/lib/clang/{20 → 22}/include/cmpccxaddintrin.h +0 -0
  210. /package/lib/clang/{20 → 22}/include/crc32intrin.h +0 -0
  211. /package/lib/clang/{20 → 22}/include/cuda_wrappers/algorithm +0 -0
  212. /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/basic_string.h +0 -0
  213. /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  214. /package/lib/clang/{20 → 22}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  215. /package/lib/clang/{20 → 22}/include/cuda_wrappers/complex +0 -0
  216. /package/lib/clang/{20 → 22}/include/cuda_wrappers/new +0 -0
  217. /package/lib/clang/{20 → 22}/include/enqcmdintrin.h +0 -0
  218. /package/lib/clang/{20 → 22}/include/fxsrintrin.h +0 -0
  219. /package/lib/clang/{20 → 22}/include/hexagon_circ_brev_intrinsics.h +0 -0
  220. /package/lib/clang/{20 → 22}/include/hexagon_protos.h +0 -0
  221. /package/lib/clang/{20 → 22}/include/hresetintrin.h +0 -0
  222. /package/lib/clang/{20 → 22}/include/htmintrin.h +0 -0
  223. /package/lib/clang/{20 → 22}/include/htmxlintrin.h +0 -0
  224. /package/lib/clang/{20 → 22}/include/ia32intrin.h +0 -0
  225. /package/lib/clang/{20 → 22}/include/intrin0.h +0 -0
  226. /package/lib/clang/{20 → 22}/include/inttypes.h +0 -0
  227. /package/lib/clang/{20 → 22}/include/invpcidintrin.h +0 -0
  228. /package/lib/clang/{20 → 22}/include/iso646.h +0 -0
  229. /package/lib/clang/{20 → 22}/include/larchintrin.h +0 -0
  230. /package/lib/clang/{20 → 22}/include/limits.h +0 -0
  231. /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload.h +0 -0
  232. /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload_device.h +0 -0
  233. /package/lib/clang/{20 → 22}/include/llvm_offload_wrappers/__llvm_offload_host.h +0 -0
  234. /package/lib/clang/{20 → 22}/include/lsxintrin.h +0 -0
  235. /package/lib/clang/{20 → 22}/include/lwpintrin.h +0 -0
  236. /package/lib/clang/{20 → 22}/include/mm3dnow.h +0 -0
  237. /package/lib/clang/{20 → 22}/include/mm_malloc.h +0 -0
  238. /package/lib/clang/{20 → 22}/include/movdirintrin.h +0 -0
  239. /package/lib/clang/{20 → 22}/include/msa.h +0 -0
  240. /package/lib/clang/{20 → 22}/include/mwaitxintrin.h +0 -0
  241. /package/lib/clang/{20 → 22}/include/nmmintrin.h +0 -0
  242. /package/lib/clang/{20 → 22}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
  243. /package/lib/clang/{20 → 22}/include/openmp_wrappers/cmath +0 -0
  244. /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex +0 -0
  245. /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex.h +0 -0
  246. /package/lib/clang/{20 → 22}/include/openmp_wrappers/complex_cmath.h +0 -0
  247. /package/lib/clang/{20 → 22}/include/openmp_wrappers/math.h +0 -0
  248. /package/lib/clang/{20 → 22}/include/openmp_wrappers/new +0 -0
  249. /package/lib/clang/{20 → 22}/include/pconfigintrin.h +0 -0
  250. /package/lib/clang/{20 → 22}/include/pkuintrin.h +0 -0
  251. /package/lib/clang/{20 → 22}/include/popcntintrin.h +0 -0
  252. /package/lib/clang/{20 → 22}/include/ppc_wrappers/bmi2intrin.h +0 -0
  253. /package/lib/clang/{20 → 22}/include/ppc_wrappers/bmiintrin.h +0 -0
  254. /package/lib/clang/{20 → 22}/include/ppc_wrappers/emmintrin.h +0 -0
  255. /package/lib/clang/{20 → 22}/include/ppc_wrappers/immintrin.h +0 -0
  256. /package/lib/clang/{20 → 22}/include/ppc_wrappers/mm_malloc.h +0 -0
  257. /package/lib/clang/{20 → 22}/include/ppc_wrappers/mmintrin.h +0 -0
  258. /package/lib/clang/{20 → 22}/include/ppc_wrappers/nmmintrin.h +0 -0
  259. /package/lib/clang/{20 → 22}/include/ppc_wrappers/pmmintrin.h +0 -0
  260. /package/lib/clang/{20 → 22}/include/ppc_wrappers/smmintrin.h +0 -0
  261. /package/lib/clang/{20 → 22}/include/ppc_wrappers/tmmintrin.h +0 -0
  262. /package/lib/clang/{20 → 22}/include/ppc_wrappers/x86gprintrin.h +0 -0
  263. /package/lib/clang/{20 → 22}/include/ppc_wrappers/x86intrin.h +0 -0
  264. /package/lib/clang/{20 → 22}/include/ppc_wrappers/xmmintrin.h +0 -0
  265. /package/lib/clang/{20 → 22}/include/prfchiintrin.h +0 -0
  266. /package/lib/clang/{20 → 22}/include/ptwriteintrin.h +0 -0
  267. /package/lib/clang/{20 → 22}/include/raointintrin.h +0 -0
  268. /package/lib/clang/{20 → 22}/include/rdpruintrin.h +0 -0
  269. /package/lib/clang/{20 → 22}/include/rdseedintrin.h +0 -0
  270. /package/lib/clang/{20 → 22}/include/riscv_bitmanip.h +0 -0
  271. /package/lib/clang/{20 → 22}/include/riscv_crypto.h +0 -0
  272. /package/lib/clang/{20 → 22}/include/riscv_ntlh.h +0 -0
  273. /package/lib/clang/{20 → 22}/include/rtmintrin.h +0 -0
  274. /package/lib/clang/{20 → 22}/include/s390intrin.h +0 -0
  275. /package/lib/clang/{20 → 22}/include/serializeintrin.h +0 -0
  276. /package/lib/clang/{20 → 22}/include/sgxintrin.h +0 -0
  277. /package/lib/clang/{20 → 22}/include/sha512intrin.h +0 -0
  278. /package/lib/clang/{20 → 22}/include/sm3intrin.h +0 -0
  279. /package/lib/clang/{20 → 22}/include/sm4intrin.h +0 -0
  280. /package/lib/clang/{20 → 22}/include/stdalign.h +0 -0
  281. /package/lib/clang/{20 → 22}/include/stdarg.h +0 -0
  282. /package/lib/clang/{20 → 22}/include/stdatomic.h +0 -0
  283. /package/lib/clang/{20 → 22}/include/stdbool.h +0 -0
  284. /package/lib/clang/{20 → 22}/include/stdckdint.h +0 -0
  285. /package/lib/clang/{20 → 22}/include/stddef.h +0 -0
  286. /package/lib/clang/{20 → 22}/include/stdnoreturn.h +0 -0
  287. /package/lib/clang/{20 → 22}/include/tbmintrin.h +0 -0
  288. /package/lib/clang/{20 → 22}/include/tgmath.h +0 -0
  289. /package/lib/clang/{20 → 22}/include/tsxldtrkintrin.h +0 -0
  290. /package/lib/clang/{20 → 22}/include/uintrintrin.h +0 -0
  291. /package/lib/clang/{20 → 22}/include/unwind.h +0 -0
  292. /package/lib/clang/{20 → 22}/include/usermsrintrin.h +0 -0
  293. /package/lib/clang/{20 → 22}/include/vadefs.h +0 -0
  294. /package/lib/clang/{20 → 22}/include/varargs.h +0 -0
  295. /package/lib/clang/{20 → 22}/include/velintrin.h +0 -0
  296. /package/lib/clang/{20 → 22}/include/velintrin_approx.h +0 -0
  297. /package/lib/clang/{20 → 22}/include/velintrin_gen.h +0 -0
  298. /package/lib/clang/{20 → 22}/include/vpclmulqdqintrin.h +0 -0
  299. /package/lib/clang/{20 → 22}/include/waitpkgintrin.h +0 -0
  300. /package/lib/clang/{20 → 22}/include/wasm_simd128.h +0 -0
  301. /package/lib/clang/{20 → 22}/include/wbnoinvdintrin.h +0 -0
  302. /package/lib/clang/{20 → 22}/include/wmmintrin.h +0 -0
  303. /package/lib/clang/{20 → 22}/include/xsavecintrin.h +0 -0
  304. /package/lib/clang/{20 → 22}/include/xsaveintrin.h +0 -0
  305. /package/lib/clang/{20 → 22}/include/xsaveoptintrin.h +0 -0
  306. /package/lib/clang/{20 → 22}/include/xsavesintrin.h +0 -0
  307. /package/lib/clang/{20 → 22}/include/xtestintrin.h +0 -0
  308. /package/lib/clang/{20 → 22}/include/yvals_core.h +0 -0
  309. /package/lib/clang/{20 → 22}/include/zos_wrappers/builtins.h +0 -0
@@ -15,8 +15,20 @@
15
15
  #define __FMAINTRIN_H
16
16
 
17
17
  /* Define the default attributes for the functions in this file. */
18
- #define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128)))
19
- #define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(256)))
18
+ #define __DEFAULT_FN_ATTRS128 \
19
+ __attribute__((__always_inline__, __nodebug__, __target__("fma"), \
20
+ __min_vector_width__(128)))
21
+ #define __DEFAULT_FN_ATTRS256 \
22
+ __attribute__((__always_inline__, __nodebug__, __target__("fma"), \
23
+ __min_vector_width__(256)))
24
+
25
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
26
+ #define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128 constexpr
27
+ #define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256 constexpr
28
+ #else
29
+ #define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128
30
+ #define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256
31
+ #endif
20
32
 
21
33
  /// Computes a multiply-add of 128-bit vectors of [4 x float].
22
34
  /// For each element, computes <c> (__A * __B) + __C </c>.
@@ -32,10 +44,11 @@
32
44
  /// \param __C
33
45
  /// A 128-bit vector of [4 x float] containing the addend.
34
46
  /// \returns A 128-bit vector of [4 x float] containing the result.
35
- static __inline__ __m128 __DEFAULT_FN_ATTRS128
47
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR
36
48
  _mm_fmadd_ps(__m128 __A, __m128 __B, __m128 __C)
37
49
  {
38
- return (__m128)__builtin_ia32_vfmaddps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
50
+ return (__m128)__builtin_elementwise_fma((__v4sf)__A, (__v4sf)__B,
51
+ (__v4sf)__C);
39
52
  }
40
53
 
41
54
  /// Computes a multiply-add of 128-bit vectors of [2 x double].
@@ -52,10 +65,11 @@ _mm_fmadd_ps(__m128 __A, __m128 __B, __m128 __C)
52
65
  /// \param __C
53
66
  /// A 128-bit vector of [2 x double] containing the addend.
54
67
  /// \returns A 128-bit [2 x double] vector containing the result.
55
- static __inline__ __m128d __DEFAULT_FN_ATTRS128
68
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR
56
69
  _mm_fmadd_pd(__m128d __A, __m128d __B, __m128d __C)
57
70
  {
58
- return (__m128d)__builtin_ia32_vfmaddpd((__v2df)__A, (__v2df)__B, (__v2df)__C);
71
+ return (__m128d)__builtin_elementwise_fma((__v2df)__A, (__v2df)__B,
72
+ (__v2df)__C);
59
73
  }
60
74
 
61
75
  /// Computes a scalar multiply-add of the single-precision values in the
@@ -81,10 +95,10 @@ _mm_fmadd_pd(__m128d __A, __m128d __B, __m128d __C)
81
95
  /// 32 bits.
82
96
  /// \returns A 128-bit vector of [4 x float] containing the result in the low
83
97
  /// 32 bits and a copy of \a __A[127:32] in the upper 96 bits.
84
- static __inline__ __m128 __DEFAULT_FN_ATTRS128
85
- _mm_fmadd_ss(__m128 __A, __m128 __B, __m128 __C)
86
- {
87
- return (__m128)__builtin_ia32_vfmaddss3((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
98
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR
99
+ _mm_fmadd_ss(__m128 __A, __m128 __B, __m128 __C) {
100
+ __A[0] = __builtin_elementwise_fma(__A[0], __B[0], __C[0]);
101
+ return __A;
88
102
  }
89
103
 
90
104
  /// Computes a scalar multiply-add of the double-precision values in the
@@ -110,10 +124,10 @@ _mm_fmadd_ss(__m128 __A, __m128 __B, __m128 __C)
110
124
  /// 64 bits.
111
125
  /// \returns A 128-bit vector of [2 x double] containing the result in the low
112
126
  /// 64 bits and a copy of \a __A[127:64] in the upper 64 bits.
113
- static __inline__ __m128d __DEFAULT_FN_ATTRS128
114
- _mm_fmadd_sd(__m128d __A, __m128d __B, __m128d __C)
115
- {
116
- return (__m128d)__builtin_ia32_vfmaddsd3((__v2df)__A, (__v2df)__B, (__v2df)__C);
127
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR
128
+ _mm_fmadd_sd(__m128d __A, __m128d __B, __m128d __C) {
129
+ __A[0] = __builtin_elementwise_fma(__A[0], __B[0], __C[0]);
130
+ return __A;
117
131
  }
118
132
 
119
133
  /// Computes a multiply-subtract of 128-bit vectors of [4 x float].
@@ -130,10 +144,11 @@ _mm_fmadd_sd(__m128d __A, __m128d __B, __m128d __C)
130
144
  /// \param __C
131
145
  /// A 128-bit vector of [4 x float] containing the subtrahend.
132
146
  /// \returns A 128-bit vector of [4 x float] containing the result.
133
- static __inline__ __m128 __DEFAULT_FN_ATTRS128
147
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR
134
148
  _mm_fmsub_ps(__m128 __A, __m128 __B, __m128 __C)
135
149
  {
136
- return (__m128)__builtin_ia32_vfmaddps((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C);
150
+ return (__m128)__builtin_elementwise_fma((__v4sf)__A, (__v4sf)__B,
151
+ -(__v4sf)__C);
137
152
  }
138
153
 
139
154
  /// Computes a multiply-subtract of 128-bit vectors of [2 x double].
@@ -150,10 +165,11 @@ _mm_fmsub_ps(__m128 __A, __m128 __B, __m128 __C)
150
165
  /// \param __C
151
166
  /// A 128-bit vector of [2 x double] containing the addend.
152
167
  /// \returns A 128-bit vector of [2 x double] containing the result.
153
- static __inline__ __m128d __DEFAULT_FN_ATTRS128
168
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR
154
169
  _mm_fmsub_pd(__m128d __A, __m128d __B, __m128d __C)
155
170
  {
156
- return (__m128d)__builtin_ia32_vfmaddpd((__v2df)__A, (__v2df)__B, -(__v2df)__C);
171
+ return (__m128d)__builtin_elementwise_fma((__v2df)__A, (__v2df)__B,
172
+ -(__v2df)__C);
157
173
  }
158
174
 
159
175
  /// Computes a scalar multiply-subtract of the single-precision values in
@@ -179,10 +195,10 @@ _mm_fmsub_pd(__m128d __A, __m128d __B, __m128d __C)
179
195
  /// 32 bits.
180
196
  /// \returns A 128-bit vector of [4 x float] containing the result in the low
181
197
  /// 32 bits, and a copy of \a __A[127:32] in the upper 96 bits.
182
- static __inline__ __m128 __DEFAULT_FN_ATTRS128
183
- _mm_fmsub_ss(__m128 __A, __m128 __B, __m128 __C)
184
- {
185
- return (__m128)__builtin_ia32_vfmaddss3((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C);
198
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR
199
+ _mm_fmsub_ss(__m128 __A, __m128 __B, __m128 __C) {
200
+ __A[0] = __builtin_elementwise_fma(__A[0], __B[0], -__C[0]);
201
+ return __A;
186
202
  }
187
203
 
188
204
  /// Computes a scalar multiply-subtract of the double-precision values in
@@ -208,10 +224,10 @@ _mm_fmsub_ss(__m128 __A, __m128 __B, __m128 __C)
208
224
  /// 64 bits.
209
225
  /// \returns A 128-bit vector of [2 x double] containing the result in the low
210
226
  /// 64 bits, and a copy of \a __A[127:64] in the upper 64 bits.
211
- static __inline__ __m128d __DEFAULT_FN_ATTRS128
212
- _mm_fmsub_sd(__m128d __A, __m128d __B, __m128d __C)
213
- {
214
- return (__m128d)__builtin_ia32_vfmaddsd3((__v2df)__A, (__v2df)__B, -(__v2df)__C);
227
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR
228
+ _mm_fmsub_sd(__m128d __A, __m128d __B, __m128d __C) {
229
+ __A[0] = __builtin_elementwise_fma(__A[0], __B[0], -__C[0]);
230
+ return __A;
215
231
  }
216
232
 
217
233
  /// Computes a negated multiply-add of 128-bit vectors of [4 x float].
@@ -228,10 +244,11 @@ _mm_fmsub_sd(__m128d __A, __m128d __B, __m128d __C)
228
244
  /// \param __C
229
245
  /// A 128-bit vector of [4 x float] containing the addend.
230
246
  /// \returns A 128-bit [4 x float] vector containing the result.
231
- static __inline__ __m128 __DEFAULT_FN_ATTRS128
247
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR
232
248
  _mm_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C)
233
249
  {
234
- return (__m128)__builtin_ia32_vfmaddps(-(__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
250
+ return (__m128)__builtin_elementwise_fma(-(__v4sf)__A, (__v4sf)__B,
251
+ (__v4sf)__C);
235
252
  }
236
253
 
237
254
  /// Computes a negated multiply-add of 128-bit vectors of [2 x double].
@@ -248,10 +265,11 @@ _mm_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C)
248
265
  /// \param __C
249
266
  /// A 128-bit vector of [2 x double] containing the addend.
250
267
  /// \returns A 128-bit vector of [2 x double] containing the result.
251
- static __inline__ __m128d __DEFAULT_FN_ATTRS128
268
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR
252
269
  _mm_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C)
253
270
  {
254
- return (__m128d)__builtin_ia32_vfmaddpd(-(__v2df)__A, (__v2df)__B, (__v2df)__C);
271
+ return (__m128d)__builtin_elementwise_fma(-(__v2df)__A, (__v2df)__B,
272
+ (__v2df)__C);
255
273
  }
256
274
 
257
275
  /// Computes a scalar negated multiply-add of the single-precision values in
@@ -277,10 +295,10 @@ _mm_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C)
277
295
  /// 32 bits.
278
296
  /// \returns A 128-bit vector of [4 x float] containing the result in the low
279
297
  /// 32 bits, and a copy of \a __A[127:32] in the upper 96 bits.
280
- static __inline__ __m128 __DEFAULT_FN_ATTRS128
281
- _mm_fnmadd_ss(__m128 __A, __m128 __B, __m128 __C)
282
- {
283
- return (__m128)__builtin_ia32_vfmaddss3((__v4sf)__A, -(__v4sf)__B, (__v4sf)__C);
298
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR
299
+ _mm_fnmadd_ss(__m128 __A, __m128 __B, __m128 __C) {
300
+ __A[0] = __builtin_elementwise_fma(__A[0], -__B[0], __C[0]);
301
+ return __A;
284
302
  }
285
303
 
286
304
  /// Computes a scalar negated multiply-add of the double-precision values
@@ -306,10 +324,10 @@ _mm_fnmadd_ss(__m128 __A, __m128 __B, __m128 __C)
306
324
  /// 64 bits.
307
325
  /// \returns A 128-bit vector of [2 x double] containing the result in the low
308
326
  /// 64 bits, and a copy of \a __A[127:64] in the upper 64 bits.
309
- static __inline__ __m128d __DEFAULT_FN_ATTRS128
310
- _mm_fnmadd_sd(__m128d __A, __m128d __B, __m128d __C)
311
- {
312
- return (__m128d)__builtin_ia32_vfmaddsd3((__v2df)__A, -(__v2df)__B, (__v2df)__C);
327
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR
328
+ _mm_fnmadd_sd(__m128d __A, __m128d __B, __m128d __C) {
329
+ __A[0] = __builtin_elementwise_fma(__A[0], -__B[0], __C[0]);
330
+ return __A;
313
331
  }
314
332
 
315
333
  /// Computes a negated multiply-subtract of 128-bit vectors of [4 x float].
@@ -326,10 +344,11 @@ _mm_fnmadd_sd(__m128d __A, __m128d __B, __m128d __C)
326
344
  /// \param __C
327
345
  /// A 128-bit vector of [4 x float] containing the subtrahend.
328
346
  /// \returns A 128-bit vector of [4 x float] containing the result.
329
- static __inline__ __m128 __DEFAULT_FN_ATTRS128
347
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR
330
348
  _mm_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C)
331
349
  {
332
- return (__m128)__builtin_ia32_vfmaddps(-(__v4sf)__A, (__v4sf)__B, -(__v4sf)__C);
350
+ return (__m128)__builtin_elementwise_fma(-(__v4sf)__A, (__v4sf)__B,
351
+ -(__v4sf)__C);
333
352
  }
334
353
 
335
354
  /// Computes a negated multiply-subtract of 128-bit vectors of [2 x double].
@@ -346,10 +365,11 @@ _mm_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C)
346
365
  /// \param __C
347
366
  /// A 128-bit vector of [2 x double] containing the subtrahend.
348
367
  /// \returns A 128-bit vector of [2 x double] containing the result.
349
- static __inline__ __m128d __DEFAULT_FN_ATTRS128
368
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR
350
369
  _mm_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C)
351
370
  {
352
- return (__m128d)__builtin_ia32_vfmaddpd(-(__v2df)__A, (__v2df)__B, -(__v2df)__C);
371
+ return (__m128d)__builtin_elementwise_fma(-(__v2df)__A, (__v2df)__B,
372
+ -(__v2df)__C);
353
373
  }
354
374
 
355
375
  /// Computes a scalar negated multiply-subtract of the single-precision
@@ -375,10 +395,10 @@ _mm_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C)
375
395
  /// 32 bits.
376
396
  /// \returns A 128-bit vector of [4 x float] containing the result in the low
377
397
  /// 32 bits, and a copy of \a __A[127:32] in the upper 96 bits.
378
- static __inline__ __m128 __DEFAULT_FN_ATTRS128
379
- _mm_fnmsub_ss(__m128 __A, __m128 __B, __m128 __C)
380
- {
381
- return (__m128)__builtin_ia32_vfmaddss3((__v4sf)__A, -(__v4sf)__B, -(__v4sf)__C);
398
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR
399
+ _mm_fnmsub_ss(__m128 __A, __m128 __B, __m128 __C) {
400
+ __A[0] = __builtin_elementwise_fma(__A[0], -__B[0], -__C[0]);
401
+ return __A;
382
402
  }
383
403
 
384
404
  /// Computes a scalar negated multiply-subtract of the double-precision
@@ -404,10 +424,10 @@ _mm_fnmsub_ss(__m128 __A, __m128 __B, __m128 __C)
404
424
  /// 64 bits.
405
425
  /// \returns A 128-bit vector of [2 x double] containing the result in the low
406
426
  /// 64 bits, and a copy of \a __A[127:64] in the upper 64 bits.
407
- static __inline__ __m128d __DEFAULT_FN_ATTRS128
408
- _mm_fnmsub_sd(__m128d __A, __m128d __B, __m128d __C)
409
- {
410
- return (__m128d)__builtin_ia32_vfmaddsd3((__v2df)__A, -(__v2df)__B, -(__v2df)__C);
427
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR
428
+ _mm_fnmsub_sd(__m128d __A, __m128d __B, __m128d __C) {
429
+ __A[0] = __builtin_elementwise_fma(__A[0], -__B[0], -__C[0]);
430
+ return __A;
411
431
  }
412
432
 
413
433
  /// Computes a multiply with alternating add/subtract of 128-bit vectors of
@@ -528,10 +548,11 @@ _mm_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C)
528
548
  /// \param __C
529
549
  /// A 256-bit vector of [8 x float] containing the addend.
530
550
  /// \returns A 256-bit vector of [8 x float] containing the result.
531
- static __inline__ __m256 __DEFAULT_FN_ATTRS256
551
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR
532
552
  _mm256_fmadd_ps(__m256 __A, __m256 __B, __m256 __C)
533
553
  {
534
- return (__m256)__builtin_ia32_vfmaddps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C);
554
+ return (__m256)__builtin_elementwise_fma((__v8sf)__A, (__v8sf)__B,
555
+ (__v8sf)__C);
535
556
  }
536
557
 
537
558
  /// Computes a multiply-add of 256-bit vectors of [4 x double].
@@ -548,10 +569,11 @@ _mm256_fmadd_ps(__m256 __A, __m256 __B, __m256 __C)
548
569
  /// \param __C
549
570
  /// A 256-bit vector of [4 x double] containing the addend.
550
571
  /// \returns A 256-bit vector of [4 x double] containing the result.
551
- static __inline__ __m256d __DEFAULT_FN_ATTRS256
572
+ static __inline__ __m256d __DEFAULT_FN_ATTRS256_CONSTEXPR
552
573
  _mm256_fmadd_pd(__m256d __A, __m256d __B, __m256d __C)
553
574
  {
554
- return (__m256d)__builtin_ia32_vfmaddpd256((__v4df)__A, (__v4df)__B, (__v4df)__C);
575
+ return (__m256d)__builtin_elementwise_fma((__v4df)__A, (__v4df)__B,
576
+ (__v4df)__C);
555
577
  }
556
578
 
557
579
  /// Computes a multiply-subtract of 256-bit vectors of [8 x float].
@@ -568,10 +590,11 @@ _mm256_fmadd_pd(__m256d __A, __m256d __B, __m256d __C)
568
590
  /// \param __C
569
591
  /// A 256-bit vector of [8 x float] containing the subtrahend.
570
592
  /// \returns A 256-bit vector of [8 x float] containing the result.
571
- static __inline__ __m256 __DEFAULT_FN_ATTRS256
593
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR
572
594
  _mm256_fmsub_ps(__m256 __A, __m256 __B, __m256 __C)
573
595
  {
574
- return (__m256)__builtin_ia32_vfmaddps256((__v8sf)__A, (__v8sf)__B, -(__v8sf)__C);
596
+ return (__m256)__builtin_elementwise_fma((__v8sf)__A, (__v8sf)__B,
597
+ -(__v8sf)__C);
575
598
  }
576
599
 
577
600
  /// Computes a multiply-subtract of 256-bit vectors of [4 x double].
@@ -588,10 +611,11 @@ _mm256_fmsub_ps(__m256 __A, __m256 __B, __m256 __C)
588
611
  /// \param __C
589
612
  /// A 256-bit vector of [4 x double] containing the subtrahend.
590
613
  /// \returns A 256-bit vector of [4 x double] containing the result.
591
- static __inline__ __m256d __DEFAULT_FN_ATTRS256
614
+ static __inline__ __m256d __DEFAULT_FN_ATTRS256_CONSTEXPR
592
615
  _mm256_fmsub_pd(__m256d __A, __m256d __B, __m256d __C)
593
616
  {
594
- return (__m256d)__builtin_ia32_vfmaddpd256((__v4df)__A, (__v4df)__B, -(__v4df)__C);
617
+ return (__m256d)__builtin_elementwise_fma((__v4df)__A, (__v4df)__B,
618
+ -(__v4df)__C);
595
619
  }
596
620
 
597
621
  /// Computes a negated multiply-add of 256-bit vectors of [8 x float].
@@ -608,10 +632,11 @@ _mm256_fmsub_pd(__m256d __A, __m256d __B, __m256d __C)
608
632
  /// \param __C
609
633
  /// A 256-bit vector of [8 x float] containing the addend.
610
634
  /// \returns A 256-bit vector of [8 x float] containing the result.
611
- static __inline__ __m256 __DEFAULT_FN_ATTRS256
635
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR
612
636
  _mm256_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C)
613
637
  {
614
- return (__m256)__builtin_ia32_vfmaddps256(-(__v8sf)__A, (__v8sf)__B, (__v8sf)__C);
638
+ return (__m256)__builtin_elementwise_fma(-(__v8sf)__A, (__v8sf)__B,
639
+ (__v8sf)__C);
615
640
  }
616
641
 
617
642
  /// Computes a negated multiply-add of 256-bit vectors of [4 x double].
@@ -628,10 +653,11 @@ _mm256_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C)
628
653
  /// \param __C
629
654
  /// A 256-bit vector of [4 x double] containing the addend.
630
655
  /// \returns A 256-bit vector of [4 x double] containing the result.
631
- static __inline__ __m256d __DEFAULT_FN_ATTRS256
656
+ static __inline__ __m256d __DEFAULT_FN_ATTRS256_CONSTEXPR
632
657
  _mm256_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C)
633
658
  {
634
- return (__m256d)__builtin_ia32_vfmaddpd256(-(__v4df)__A, (__v4df)__B, (__v4df)__C);
659
+ return (__m256d)__builtin_elementwise_fma(-(__v4df)__A, (__v4df)__B,
660
+ (__v4df)__C);
635
661
  }
636
662
 
637
663
  /// Computes a negated multiply-subtract of 256-bit vectors of [8 x float].
@@ -648,10 +674,11 @@ _mm256_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C)
648
674
  /// \param __C
649
675
  /// A 256-bit vector of [8 x float] containing the subtrahend.
650
676
  /// \returns A 256-bit vector of [8 x float] containing the result.
651
- static __inline__ __m256 __DEFAULT_FN_ATTRS256
677
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR
652
678
  _mm256_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C)
653
679
  {
654
- return (__m256)__builtin_ia32_vfmaddps256(-(__v8sf)__A, (__v8sf)__B, -(__v8sf)__C);
680
+ return (__m256)__builtin_elementwise_fma(-(__v8sf)__A, (__v8sf)__B,
681
+ -(__v8sf)__C);
655
682
  }
656
683
 
657
684
  /// Computes a negated multiply-subtract of 256-bit vectors of [4 x double].
@@ -668,10 +695,11 @@ _mm256_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C)
668
695
  /// \param __C
669
696
  /// A 256-bit vector of [4 x double] containing the subtrahend.
670
697
  /// \returns A 256-bit vector of [4 x double] containing the result.
671
- static __inline__ __m256d __DEFAULT_FN_ATTRS256
698
+ static __inline__ __m256d __DEFAULT_FN_ATTRS256_CONSTEXPR
672
699
  _mm256_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C)
673
700
  {
674
- return (__m256d)__builtin_ia32_vfmaddpd256(-(__v4df)__A, (__v4df)__B, -(__v4df)__C);
701
+ return (__m256d)__builtin_elementwise_fma(-(__v4df)__A, (__v4df)__B,
702
+ -(__v4df)__C);
675
703
  }
676
704
 
677
705
  /// Computes a multiply with alternating add/subtract of 256-bit vectors of
@@ -792,5 +820,7 @@ _mm256_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C)
792
820
 
793
821
  #undef __DEFAULT_FN_ATTRS128
794
822
  #undef __DEFAULT_FN_ATTRS256
823
+ #undef __DEFAULT_FN_ATTRS128_CONSTEXPR
824
+ #undef __DEFAULT_FN_ATTRS256_CONSTEXPR
795
825
 
796
826
  #endif /* __FMAINTRIN_H */
@@ -14,29 +14,36 @@
14
14
  #ifndef __GFNIINTRIN_H
15
15
  #define __GFNIINTRIN_H
16
16
 
17
- #if defined(__EVEX512__) && !defined(__AVX10_1_512__)
18
17
  /* Default attributes for simple form (no masking). */
18
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
19
19
  #define __DEFAULT_FN_ATTRS \
20
- __attribute__((__always_inline__, __nodebug__, \
21
- __target__("gfni,no-evex512"), __min_vector_width__(128)))
20
+ __attribute__((__always_inline__, __nodebug__, __target__("gfni"), \
21
+ __min_vector_width__(128))) constexpr
22
22
 
23
23
  /* Default attributes for YMM unmasked form. */
24
24
  #define __DEFAULT_FN_ATTRS_Y \
25
- __attribute__((__always_inline__, __nodebug__, \
26
- __target__("avx,gfni,no-evex512"), \
27
- __min_vector_width__(256)))
25
+ __attribute__((__always_inline__, __nodebug__, __target__("avx,gfni"), \
26
+ __min_vector_width__(256))) constexpr
28
27
 
29
28
  /* Default attributes for VLX masked forms. */
30
29
  #define __DEFAULT_FN_ATTRS_VL128 \
31
30
  __attribute__((__always_inline__, __nodebug__, \
32
- __target__("avx512bw,avx512vl,gfni,no-evex512"), \
33
- __min_vector_width__(128)))
31
+ __target__("avx512bw,avx512vl,gfni"), \
32
+ __min_vector_width__(128))) constexpr
34
33
  #define __DEFAULT_FN_ATTRS_VL256 \
35
34
  __attribute__((__always_inline__, __nodebug__, \
36
- __target__("avx512bw,avx512vl,gfni,no-evex512"), \
37
- __min_vector_width__(256)))
35
+ __target__("avx512bw,avx512vl,gfni"), \
36
+ __min_vector_width__(256))) constexpr
37
+
38
+ /* Default attributes for ZMM unmasked forms. */
39
+ #define __DEFAULT_FN_ATTRS_Z \
40
+ __attribute__((__always_inline__, __nodebug__, __target__("avx512f,gfni"), \
41
+ __min_vector_width__(512))) constexpr
42
+ /* Default attributes for ZMM masked forms. */
43
+ #define __DEFAULT_FN_ATTRS_Z_MASK \
44
+ __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,gfni"), \
45
+ __min_vector_width__(512))) constexpr
38
46
  #else
39
- /* Default attributes for simple form (no masking). */
40
47
  #define __DEFAULT_FN_ATTRS \
41
48
  __attribute__((__always_inline__, __nodebug__, __target__("gfni"), \
42
49
  __min_vector_width__(128)))
@@ -55,18 +62,16 @@
55
62
  __attribute__((__always_inline__, __nodebug__, \
56
63
  __target__("avx512bw,avx512vl,gfni"), \
57
64
  __min_vector_width__(256)))
58
- #endif
59
65
 
60
66
  /* Default attributes for ZMM unmasked forms. */
61
67
  #define __DEFAULT_FN_ATTRS_Z \
62
- __attribute__((__always_inline__, __nodebug__, \
63
- __target__("avx512f,evex512,gfni"), \
68
+ __attribute__((__always_inline__, __nodebug__, __target__("avx512f,gfni"), \
64
69
  __min_vector_width__(512)))
65
70
  /* Default attributes for ZMM masked forms. */
66
71
  #define __DEFAULT_FN_ATTRS_Z_MASK \
67
- __attribute__((__always_inline__, __nodebug__, \
68
- __target__("avx512bw,evex512,gfni"), \
72
+ __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,gfni"), \
69
73
  __min_vector_width__(512)))
74
+ #endif
70
75
 
71
76
  #define _mm_gf2p8affineinv_epi64_epi8(A, B, I) \
72
77
  ((__m128i)__builtin_ia32_vgf2p8affineinvqb_v16qi((__v16qi)(__m128i)(A), \
@@ -25,21 +25,47 @@
25
25
  #endif
26
26
  #endif
27
27
 
28
+ #include <stdint.h>
29
+
30
+ #if !defined(__cplusplus)
31
+ _Pragma("push_macro(\"bool\")");
32
+ #define bool _Bool
33
+ #endif
34
+
35
+ _Pragma("omp begin declare target device_type(nohost)");
36
+ _Pragma("omp begin declare variant match(device = {kind(gpu)})");
37
+
38
+ // Forward declare a few functions for the implementation header.
39
+
40
+ // Returns a bitmask marking all lanes that have the same value of __x.
41
+ _DEFAULT_FN_ATTRS static __inline__ uint64_t
42
+ __gpu_match_any_u32_impl(uint64_t __lane_mask, uint32_t __x);
43
+
44
+ // Returns a bitmask marking all lanes that have the same value of __x.
45
+ _DEFAULT_FN_ATTRS static __inline__ uint64_t
46
+ __gpu_match_any_u64_impl(uint64_t __lane_mask, uint64_t __x);
47
+
48
+ // Returns the current lane mask if every lane contains __x.
49
+ _DEFAULT_FN_ATTRS static __inline__ uint64_t
50
+ __gpu_match_all_u32_impl(uint64_t __lane_mask, uint32_t __x);
51
+
52
+ // Returns the current lane mask if every lane contains __x.
53
+ _DEFAULT_FN_ATTRS static __inline__ uint64_t
54
+ __gpu_match_all_u64_impl(uint64_t __lane_mask, uint64_t __x);
55
+
56
+ _Pragma("omp end declare variant");
57
+ _Pragma("omp end declare target");
58
+
28
59
  #if defined(__NVPTX__)
29
60
  #include <nvptxintrin.h>
30
61
  #elif defined(__AMDGPU__)
31
62
  #include <amdgpuintrin.h>
63
+ #elif defined(__SPIRV__)
64
+ #include <spirvintrin.h>
32
65
  #elif !defined(_OPENMP)
33
66
  #error "This header is only meant to be used on GPU architectures."
34
67
  #endif
35
68
 
36
- #include <stdint.h>
37
-
38
- #if !defined(__cplusplus)
39
- _Pragma("push_macro(\"bool\")");
40
- #define bool _Bool
41
- #endif
42
-
43
69
  _Pragma("omp begin declare target device_type(nohost)");
44
70
  _Pragma("omp begin declare variant match(device = {kind(gpu)})");
45
71
 
@@ -57,7 +83,7 @@ _DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_num_blocks(int __dim) {
57
83
  case 2:
58
84
  return __gpu_num_blocks_z();
59
85
  default:
60
- __builtin_unreachable();
86
+ return 1;
61
87
  }
62
88
  }
63
89
 
@@ -71,7 +97,7 @@ _DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_block_id(int __dim) {
71
97
  case 2:
72
98
  return __gpu_block_id_z();
73
99
  default:
74
- __builtin_unreachable();
100
+ return 0;
75
101
  }
76
102
  }
77
103
 
@@ -85,7 +111,7 @@ _DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_num_threads(int __dim) {
85
111
  case 2:
86
112
  return __gpu_num_threads_z();
87
113
  default:
88
- __builtin_unreachable();
114
+ return 1;
89
115
  }
90
116
  }
91
117
 
@@ -99,7 +125,7 @@ _DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_thread_id(int __dim) {
99
125
  case 2:
100
126
  return __gpu_thread_id_z();
101
127
  default:
102
- __builtin_unreachable();
128
+ return 0;
103
129
  }
104
130
  }
105
131
 
@@ -115,6 +141,16 @@ __gpu_is_first_in_lane(uint64_t __lane_mask) {
115
141
  return __gpu_lane_id() == __gpu_first_lane_id(__lane_mask);
116
142
  }
117
143
 
144
+ // Copies the value from the first active thread to the rest.
145
+ _DEFAULT_FN_ATTRS static __inline__ uint64_t
146
+ __gpu_read_first_lane_u64(uint64_t __lane_mask, uint64_t __x) {
147
+ uint32_t __hi = (uint32_t)(__x >> 32ull);
148
+ uint32_t __lo = (uint32_t)(__x & 0xFFFFFFFFull);
149
+ return ((uint64_t)__gpu_read_first_lane_u32(__lane_mask, __hi) << 32ull) |
150
+ ((uint64_t)__gpu_read_first_lane_u32(__lane_mask, __lo) &
151
+ 0xFFFFFFFFull);
152
+ }
153
+
118
154
  // Gets the first floating point value from the active lanes.
119
155
  _DEFAULT_FN_ATTRS static __inline__ float
120
156
  __gpu_read_first_lane_f32(uint64_t __lane_mask, float __x) {
@@ -131,6 +167,18 @@ __gpu_read_first_lane_f64(uint64_t __lane_mask, double __x) {
131
167
  __builtin_bit_cast(uint64_t, __x)));
132
168
  }
133
169
 
170
+ // Shuffles the the lanes according to the given index.
171
+ _DEFAULT_FN_ATTRS static __inline__ uint64_t
172
+ __gpu_shuffle_idx_u64(uint64_t __lane_mask, uint32_t __idx, uint64_t __x,
173
+ uint32_t __width) {
174
+ uint32_t __hi = (uint32_t)(__x >> 32ull);
175
+ uint32_t __lo = (uint32_t)(__x & 0xFFFFFFFF);
176
+ uint32_t __mask = (uint32_t)__lane_mask;
177
+ return ((uint64_t)__gpu_shuffle_idx_u32(__mask, __idx, __hi, __width)
178
+ << 32ull) |
179
+ ((uint64_t)__gpu_shuffle_idx_u32(__mask, __idx, __lo, __width));
180
+ }
181
+
134
182
  // Shuffles the the lanes according to the given index.
135
183
  _DEFAULT_FN_ATTRS static __inline__ float
136
184
  __gpu_shuffle_idx_f32(uint64_t __lane_mask, uint32_t __idx, float __x,
@@ -212,6 +260,64 @@ __DO_LANE_SUM(float, f32); // float __gpu_lane_sum_f32(m, x)
212
260
  __DO_LANE_SUM(double, f64); // double __gpu_lane_sum_f64(m, x)
213
261
  #undef __DO_LANE_SUM
214
262
 
263
+ // Returns a bitmask marking all lanes that have the same value of __x.
264
+ _DEFAULT_FN_ATTRS static __inline__ uint64_t
265
+ __gpu_match_any_u32_impl(uint64_t __lane_mask, uint32_t __x) {
266
+ uint64_t __match_mask = 0;
267
+
268
+ bool __done = 0;
269
+ for (uint64_t __active_mask = __lane_mask; __active_mask;
270
+ __active_mask = __gpu_ballot(__lane_mask, !__done)) {
271
+ if (!__done) {
272
+ uint32_t __first = __gpu_read_first_lane_u32(__active_mask, __x);
273
+ if (__first == __x) {
274
+ __match_mask = __gpu_lane_mask();
275
+ __done = 1;
276
+ }
277
+ }
278
+ }
279
+ __gpu_sync_lane(__lane_mask);
280
+ return __match_mask;
281
+ }
282
+
283
+ // Returns a bitmask marking all lanes that have the same value of __x.
284
+ _DEFAULT_FN_ATTRS static __inline__ uint64_t
285
+ __gpu_match_any_u64_impl(uint64_t __lane_mask, uint64_t __x) {
286
+ uint64_t __match_mask = 0;
287
+
288
+ bool __done = 0;
289
+ for (uint64_t __active_mask = __lane_mask; __active_mask;
290
+ __active_mask = __gpu_ballot(__lane_mask, !__done)) {
291
+ if (!__done) {
292
+ uint64_t __first = __gpu_read_first_lane_u64(__active_mask, __x);
293
+ if (__first == __x) {
294
+ __match_mask = __gpu_lane_mask();
295
+ __done = 1;
296
+ }
297
+ }
298
+ }
299
+ __gpu_sync_lane(__lane_mask);
300
+ return __match_mask;
301
+ }
302
+
303
+ // Returns the current lane mask if every lane contains __x.
304
+ _DEFAULT_FN_ATTRS static __inline__ uint64_t
305
+ __gpu_match_all_u32_impl(uint64_t __lane_mask, uint32_t __x) {
306
+ uint32_t __first = __gpu_read_first_lane_u32(__lane_mask, __x);
307
+ uint64_t __ballot = __gpu_ballot(__lane_mask, __x == __first);
308
+ __gpu_sync_lane(__lane_mask);
309
+ return __ballot == __gpu_lane_mask() ? __gpu_lane_mask() : 0ull;
310
+ }
311
+
312
+ // Returns the current lane mask if every lane contains __x.
313
+ _DEFAULT_FN_ATTRS static __inline__ uint64_t
314
+ __gpu_match_all_u64_impl(uint64_t __lane_mask, uint64_t __x) {
315
+ uint64_t __first = __gpu_read_first_lane_u64(__lane_mask, __x);
316
+ uint64_t __ballot = __gpu_ballot(__lane_mask, __x == __first);
317
+ __gpu_sync_lane(__lane_mask);
318
+ return __ballot == __gpu_lane_mask() ? __gpu_lane_mask() : 0ull;
319
+ }
320
+
215
321
  _Pragma("omp end declare variant");
216
322
  _Pragma("omp end declare target");
217
323