@cpp-linter/clang-tidy-darwin-x64 21.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 (326) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy +2 -2
  3. package/lib/clang/23/include/__clang_cuda_complex_builtins.h +236 -0
  4. package/lib/clang/{21 → 23}/include/__clang_cuda_device_functions.h +1 -1
  5. package/lib/clang/{21 → 23}/include/__clang_cuda_intrinsics.h +207 -226
  6. package/lib/clang/{21 → 23}/include/__clang_cuda_math_forward_declares.h +5 -0
  7. package/lib/clang/{21 → 23}/include/__clang_cuda_runtime_wrapper.h +27 -5
  8. package/lib/clang/23/include/__clang_gpu_builtin_vars.h +71 -0
  9. package/lib/clang/23/include/__clang_gpu_device_functions.h +411 -0
  10. package/lib/clang/23/include/__clang_gpu_intrinsics.h +242 -0
  11. package/lib/clang/{21 → 23}/include/__clang_hip_libdevice_declares.h +14 -121
  12. package/lib/clang/{21 → 23}/include/__clang_hip_math.h +5 -5
  13. package/lib/clang/{21 → 23}/include/__clang_hip_runtime_wrapper.h +9 -1
  14. package/lib/clang/{21 → 23}/include/__clang_spirv_builtins.h +12 -12
  15. package/lib/clang/23/include/__clang_spirv_libdevice_declares.h +170 -0
  16. package/lib/clang/23/include/__clang_spirv_math.h +719 -0
  17. package/lib/clang/{21/include/float.h → 23/include/__float_float.h} +13 -24
  18. package/lib/clang/23/include/__float_header_macro.h +12 -0
  19. package/lib/clang/23/include/__float_infinity_nan.h +20 -0
  20. package/lib/clang/{21 → 23}/include/altivec.h +79 -9
  21. package/lib/clang/{21 → 23}/include/amdgpuintrin.h +2 -29
  22. package/lib/clang/23/include/amdhsa_abi.h +83 -0
  23. package/lib/clang/23/include/amo.h +220 -0
  24. package/lib/clang/{21 → 23}/include/amxavx512intrin.h +215 -1
  25. package/lib/clang/{21 → 23}/include/amxintrin.h +0 -2
  26. package/lib/clang/{21 → 23}/include/andes_vector.h +5 -0
  27. package/lib/clang/23/include/arm64_neon.h +21 -0
  28. package/lib/clang/{21 → 23}/include/arm64intr.h +10 -0
  29. package/lib/clang/{21 → 23}/include/arm_acle.h +38 -27
  30. package/lib/clang/{21 → 23}/include/arm_neon.h +4140 -3836
  31. package/lib/clang/{21 → 23}/include/arm_sme.h +20 -8
  32. package/lib/clang/{21 → 23}/include/arm_sve.h +4582 -3782
  33. package/lib/clang/{21 → 23}/include/avx10_2_512bf16intrin.h +19 -12
  34. package/lib/clang/{21 → 23}/include/avx10_2_512convertintrin.h +1 -1
  35. package/lib/clang/{21 → 23}/include/avx10_2_512niintrin.h +25 -25
  36. package/lib/clang/{21 → 23}/include/avx10_2_512satcvtdsintrin.h +1 -1
  37. package/lib/clang/{21 → 23}/include/avx10_2bf16intrin.h +54 -45
  38. package/lib/clang/{21 → 23}/include/avx10_2convertintrin.h +2 -2
  39. package/lib/clang/{21 → 23}/include/avx10_2copyintrin.h +1 -1
  40. package/lib/clang/{21 → 23}/include/avx10_2niintrin.h +2 -2
  41. package/lib/clang/{21 → 23}/include/avx10_2satcvtdsintrin.h +2 -2
  42. package/lib/clang/{21 → 23}/include/avx2intrin.h +279 -382
  43. package/lib/clang/{21 → 23}/include/avx512bf16intrin.h +25 -16
  44. package/lib/clang/{21 → 23}/include/avx512bitalgintrin.h +19 -30
  45. package/lib/clang/23/include/avx512bmmintrin.h +174 -0
  46. package/lib/clang/23/include/avx512bmmvlintrin.h +245 -0
  47. package/lib/clang/{21 → 23}/include/avx512bwintrin.h +405 -534
  48. package/lib/clang/23/include/avx512cdintrin.h +112 -0
  49. package/lib/clang/{21 → 23}/include/avx512dqintrin.h +132 -161
  50. package/lib/clang/{21 → 23}/include/avx512fintrin.h +1049 -1485
  51. package/lib/clang/{21 → 23}/include/avx512fp16intrin.h +124 -128
  52. package/lib/clang/23/include/avx512ifmaintrin.h +68 -0
  53. package/lib/clang/23/include/avx512ifmavlintrin.h +138 -0
  54. package/lib/clang/{21 → 23}/include/avx512vbmi2intrin.h +55 -48
  55. package/lib/clang/{21 → 23}/include/avx512vbmiintrin.h +19 -27
  56. package/lib/clang/{21 → 23}/include/avx512vbmivlintrin.h +35 -49
  57. package/lib/clang/{21 → 23}/include/avx512vlbf16intrin.h +32 -22
  58. package/lib/clang/{21 → 23}/include/avx512vlbitalgintrin.h +37 -53
  59. package/lib/clang/{21 → 23}/include/avx512vlbwintrin.h +494 -609
  60. package/lib/clang/23/include/avx512vlcdintrin.h +202 -0
  61. package/lib/clang/{21 → 23}/include/avx512vldqintrin.h +110 -127
  62. package/lib/clang/{21 → 23}/include/avx512vlfp16intrin.h +130 -111
  63. package/lib/clang/{21 → 23}/include/avx512vlintrin.h +1025 -1395
  64. package/lib/clang/{21 → 23}/include/avx512vlvbmi2intrin.h +102 -95
  65. package/lib/clang/{21 → 23}/include/avx512vlvnniintrin.h +50 -52
  66. package/lib/clang/{21 → 23}/include/avx512vlvp2intersectintrin.h +2 -2
  67. package/lib/clang/{21 → 23}/include/avx512vnniintrin.h +42 -45
  68. package/lib/clang/{21 → 23}/include/avx512vp2intersectintrin.h +2 -3
  69. package/lib/clang/{21 → 23}/include/avx512vpopcntdqintrin.h +8 -10
  70. package/lib/clang/{21 → 23}/include/avx512vpopcntdqvlintrin.h +17 -15
  71. package/lib/clang/{21 → 23}/include/avxifmaintrin.h +16 -0
  72. package/lib/clang/{21 → 23}/include/avxintrin.h +165 -241
  73. package/lib/clang/{21 → 23}/include/avxvnniint16intrin.h +118 -99
  74. package/lib/clang/{21 → 23}/include/avxvnniint8intrin.h +56 -32
  75. package/lib/clang/{21 → 23}/include/avxvnniintrin.h +39 -26
  76. package/lib/clang/{21 → 23}/include/cpuid.h +101 -4
  77. package/lib/clang/{21 → 23}/include/crc32intrin.h +10 -8
  78. package/lib/clang/23/include/cuda_wrappers/__utility/declval.h +28 -0
  79. package/lib/clang/{21 → 23}/include/emmintrin.h +176 -176
  80. package/lib/clang/23/include/endian.h +91 -0
  81. package/lib/clang/{21 → 23}/include/f16cintrin.h +23 -9
  82. package/lib/clang/23/include/float.h +48 -0
  83. package/lib/clang/23/include/fma4intrin.h +220 -0
  84. package/lib/clang/{21 → 23}/include/fmaintrin.h +96 -66
  85. package/lib/clang/{21 → 23}/include/gfniintrin.h +21 -16
  86. package/lib/clang/{21 → 23}/include/gpuintrin.h +129 -109
  87. package/lib/clang/{21 → 23}/include/hexagon_types.h +23 -20
  88. package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics.h +222 -0
  89. package/lib/clang/{21/include/hlsl/hlsl_alias_intrinsics.h → 23/include/hlsl/hlsl_alias_intrinsics_gen.inc} +2090 -1032
  90. package/lib/clang/23/include/hlsl/hlsl_basic_types.h +370 -0
  91. package/lib/clang/{21 → 23}/include/hlsl/hlsl_compat_overloads.h +150 -18
  92. package/lib/clang/{21 → 23}/include/hlsl/hlsl_detail.h +6 -4
  93. package/lib/clang/23/include/hlsl/hlsl_inline_intrinsics_gen.inc +546 -0
  94. package/lib/clang/{21 → 23}/include/hlsl/hlsl_intrinsic_helpers.h +71 -45
  95. package/lib/clang/23/include/hlsl/hlsl_intrinsics.h +331 -0
  96. package/lib/clang/{21 → 23}/include/hvx_hexagon_protos.h +724 -913
  97. package/lib/clang/{21 → 23}/include/immintrin.h +4 -14
  98. package/lib/clang/{21 → 23}/include/intrin.h +24 -10
  99. package/lib/clang/{21 → 23}/include/larchintrin.h +2 -0
  100. package/lib/clang/{21 → 23}/include/lasxintrin.h +113 -0
  101. package/lib/clang/{21 → 23}/include/llvm_libc_wrappers/assert.h +3 -5
  102. package/lib/clang/23/include/llvm_libc_wrappers/ctype.h +29 -0
  103. package/lib/clang/{21 → 23}/include/llvm_libc_wrappers/inttypes.h +3 -5
  104. package/lib/clang/23/include/llvm_libc_wrappers/stdio.h +52 -0
  105. package/lib/clang/23/include/llvm_libc_wrappers/stdlib.h +32 -0
  106. package/lib/clang/23/include/llvm_libc_wrappers/string.h +29 -0
  107. package/lib/clang/{21 → 23}/include/llvm_libc_wrappers/time.h +4 -10
  108. package/lib/clang/{21 → 23}/include/mmintrin.h +188 -257
  109. package/lib/clang/{21 → 23}/include/module.modulemap +39 -5
  110. package/lib/clang/{21 → 23}/include/movrs_avx10_2_512intrin.h +2 -2
  111. package/lib/clang/{21 → 23}/include/movrs_avx10_2intrin.h +4 -4
  112. package/lib/clang/{21 → 23}/include/nvptxintrin.h +15 -26
  113. package/lib/clang/{21 → 23}/include/opencl-c-base.h +7 -93
  114. package/lib/clang/{21 → 23}/include/opencl-c.h +225 -118
  115. package/lib/clang/{21 → 23}/include/openmp_wrappers/__clang_openmp_device_functions.h +14 -0
  116. package/lib/clang/{21 → 23}/include/openmp_wrappers/complex +7 -1
  117. package/lib/clang/{21 → 23}/include/openmp_wrappers/complex.h +6 -0
  118. package/lib/clang/{21 → 23}/include/openmp_wrappers/math.h +10 -0
  119. package/lib/clang/{21 → 23}/include/pmmintrin.h +12 -24
  120. package/lib/clang/{21 → 23}/include/ptrauth.h +104 -12
  121. package/lib/clang/{21 → 23}/include/riscv_bitmanip.h +7 -0
  122. package/lib/clang/{21 → 23}/include/riscv_corev_alu.h +2 -0
  123. package/lib/clang/{21 → 23}/include/riscv_crypto.h +8 -0
  124. package/lib/clang/23/include/riscv_mips.h +36 -0
  125. package/lib/clang/23/include/riscv_nds.h +92 -0
  126. package/lib/clang/{21 → 23}/include/riscv_ntlh.h +2 -0
  127. package/lib/clang/23/include/riscv_packed_simd.h +644 -0
  128. package/lib/clang/{21 → 23}/include/riscv_vector.h +43 -0
  129. package/lib/clang/{21 → 23}/include/sifive_vector.h +76 -2
  130. package/lib/clang/{21 → 23}/include/sm4evexintrin.h +2 -2
  131. package/lib/clang/{21 → 23}/include/smmintrin.h +77 -59
  132. package/lib/clang/23/include/spirvintrin.h +167 -0
  133. package/lib/clang/23/include/stddefer.h +19 -0
  134. package/lib/clang/{21 → 23}/include/stdint.h +5 -14
  135. package/lib/clang/{21 → 23}/include/tmmintrin.h +116 -147
  136. package/lib/clang/{21 → 23}/include/vaesintrin.h +1 -2
  137. package/lib/clang/{21 → 23}/include/vecintrin.h +1 -1
  138. package/lib/clang/{21 → 23}/include/wasm_simd128.h +17 -0
  139. package/lib/clang/{21 → 23}/include/xmmintrin.h +50 -75
  140. package/lib/clang/{21 → 23}/include/xopintrin.h +20 -10
  141. package/lib/clang/23/include/zos_wrappers/grp.h +19 -0
  142. package/lib/clang/23/include/zos_wrappers/locale.h +19 -0
  143. package/lib/clang/23/include/zos_wrappers/math.h +31 -0
  144. package/lib/clang/23/include/zos_wrappers/poll.h +19 -0
  145. package/lib/clang/23/include/zos_wrappers/stdlib.h +20 -0
  146. package/lib/clang/23/include/zos_wrappers/string.h +19 -0
  147. package/lib/clang/23/include/zos_wrappers/time.h +19 -0
  148. package/lib/clang/23/include/zos_wrappers/variant.h +19 -0
  149. package/package.json +6 -6
  150. package/lib/clang/21/include/__clang_cuda_complex_builtins.h +0 -285
  151. package/lib/clang/21/include/amxbf16transposeintrin.h +0 -94
  152. package/lib/clang/21/include/amxcomplextransposeintrin.h +0 -303
  153. package/lib/clang/21/include/amxfp16transposeintrin.h +0 -94
  154. package/lib/clang/21/include/amxmovrstransposeintrin.h +0 -200
  155. package/lib/clang/21/include/amxtf32intrin.h +0 -108
  156. package/lib/clang/21/include/amxtf32transposeintrin.h +0 -105
  157. package/lib/clang/21/include/amxtransposeintrin.h +0 -248
  158. package/lib/clang/21/include/avx512cdintrin.h +0 -125
  159. package/lib/clang/21/include/avx512ifmaintrin.h +0 -70
  160. package/lib/clang/21/include/avx512ifmavlintrin.h +0 -111
  161. package/lib/clang/21/include/avx512vlcdintrin.h +0 -230
  162. package/lib/clang/21/include/fma4intrin.h +0 -218
  163. package/lib/clang/21/include/hlsl/hlsl_basic_types.h +0 -120
  164. package/lib/clang/21/include/hlsl/hlsl_intrinsics.h +0 -526
  165. package/lib/clang/21/include/llvm_libc_wrappers/ctype.h +0 -140
  166. package/lib/clang/21/include/llvm_libc_wrappers/stdio.h +0 -80
  167. package/lib/clang/21/include/llvm_libc_wrappers/stdlib.h +0 -53
  168. package/lib/clang/21/include/llvm_libc_wrappers/string.h +0 -96
  169. /package/lib/clang/{21 → 23}/include/__clang_cuda_builtin_vars.h +0 -0
  170. /package/lib/clang/{21 → 23}/include/__clang_cuda_cmath.h +0 -0
  171. /package/lib/clang/{21 → 23}/include/__clang_cuda_libdevice_declares.h +0 -0
  172. /package/lib/clang/{21 → 23}/include/__clang_cuda_math.h +0 -0
  173. /package/lib/clang/{21 → 23}/include/__clang_cuda_texture_intrinsics.h +0 -0
  174. /package/lib/clang/{21 → 23}/include/__clang_hip_cmath.h +0 -0
  175. /package/lib/clang/{21 → 23}/include/__clang_hip_stdlib.h +0 -0
  176. /package/lib/clang/{21 → 23}/include/__stdarg___gnuc_va_list.h +0 -0
  177. /package/lib/clang/{21 → 23}/include/__stdarg___va_copy.h +0 -0
  178. /package/lib/clang/{21 → 23}/include/__stdarg_header_macro.h +0 -0
  179. /package/lib/clang/{21 → 23}/include/__stdarg_va_arg.h +0 -0
  180. /package/lib/clang/{21 → 23}/include/__stdarg_va_copy.h +0 -0
  181. /package/lib/clang/{21 → 23}/include/__stdarg_va_list.h +0 -0
  182. /package/lib/clang/{21 → 23}/include/__stddef_header_macro.h +0 -0
  183. /package/lib/clang/{21 → 23}/include/__stddef_max_align_t.h +0 -0
  184. /package/lib/clang/{21 → 23}/include/__stddef_null.h +0 -0
  185. /package/lib/clang/{21 → 23}/include/__stddef_nullptr_t.h +0 -0
  186. /package/lib/clang/{21 → 23}/include/__stddef_offsetof.h +0 -0
  187. /package/lib/clang/{21 → 23}/include/__stddef_ptrdiff_t.h +0 -0
  188. /package/lib/clang/{21 → 23}/include/__stddef_rsize_t.h +0 -0
  189. /package/lib/clang/{21 → 23}/include/__stddef_size_t.h +0 -0
  190. /package/lib/clang/{21 → 23}/include/__stddef_unreachable.h +0 -0
  191. /package/lib/clang/{21 → 23}/include/__stddef_wchar_t.h +0 -0
  192. /package/lib/clang/{21 → 23}/include/__stddef_wint_t.h +0 -0
  193. /package/lib/clang/{21 → 23}/include/__wmmintrin_aes.h +0 -0
  194. /package/lib/clang/{21 → 23}/include/__wmmintrin_pclmul.h +0 -0
  195. /package/lib/clang/{21 → 23}/include/adcintrin.h +0 -0
  196. /package/lib/clang/{21 → 23}/include/adxintrin.h +0 -0
  197. /package/lib/clang/{21 → 23}/include/ammintrin.h +0 -0
  198. /package/lib/clang/{21 → 23}/include/amxcomplexintrin.h +0 -0
  199. /package/lib/clang/{21 → 23}/include/amxfp16intrin.h +0 -0
  200. /package/lib/clang/{21 → 23}/include/amxfp8intrin.h +0 -0
  201. /package/lib/clang/{21 → 23}/include/amxmovrsintrin.h +0 -0
  202. /package/lib/clang/{21 → 23}/include/arm_bf16.h +0 -0
  203. /package/lib/clang/{21 → 23}/include/arm_cde.h +0 -0
  204. /package/lib/clang/{21 → 23}/include/arm_cmse.h +0 -0
  205. /package/lib/clang/{21 → 23}/include/arm_fp16.h +0 -0
  206. /package/lib/clang/{21 → 23}/include/arm_mve.h +0 -0
  207. /package/lib/clang/{21 → 23}/include/arm_neon_sve_bridge.h +0 -0
  208. /package/lib/clang/{21 → 23}/include/arm_vector_types.h +0 -0
  209. /package/lib/clang/{21 → 23}/include/armintr.h +0 -0
  210. /package/lib/clang/{21 → 23}/include/avx10_2_512minmaxintrin.h +0 -0
  211. /package/lib/clang/{21 → 23}/include/avx10_2_512satcvtintrin.h +0 -0
  212. /package/lib/clang/{21 → 23}/include/avx10_2minmaxintrin.h +0 -0
  213. /package/lib/clang/{21 → 23}/include/avx10_2satcvtintrin.h +0 -0
  214. /package/lib/clang/{21 → 23}/include/avxneconvertintrin.h +0 -0
  215. /package/lib/clang/{21 → 23}/include/bmi2intrin.h +0 -0
  216. /package/lib/clang/{21 → 23}/include/bmiintrin.h +0 -0
  217. /package/lib/clang/{21 → 23}/include/builtins.h +0 -0
  218. /package/lib/clang/{21 → 23}/include/cet.h +0 -0
  219. /package/lib/clang/{21 → 23}/include/cetintrin.h +0 -0
  220. /package/lib/clang/{21 → 23}/include/cldemoteintrin.h +0 -0
  221. /package/lib/clang/{21 → 23}/include/clflushoptintrin.h +0 -0
  222. /package/lib/clang/{21 → 23}/include/clwbintrin.h +0 -0
  223. /package/lib/clang/{21 → 23}/include/clzerointrin.h +0 -0
  224. /package/lib/clang/{21 → 23}/include/cmpccxaddintrin.h +0 -0
  225. /package/lib/clang/{21 → 23}/include/cuda_wrappers/algorithm +0 -0
  226. /package/lib/clang/{21 → 23}/include/cuda_wrappers/bits/basic_string.h +0 -0
  227. /package/lib/clang/{21 → 23}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  228. /package/lib/clang/{21 → 23}/include/cuda_wrappers/bits/c++config.h +0 -0
  229. /package/lib/clang/{21 → 23}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  230. /package/lib/clang/{21 → 23}/include/cuda_wrappers/cmath +0 -0
  231. /package/lib/clang/{21 → 23}/include/cuda_wrappers/complex +0 -0
  232. /package/lib/clang/{21 → 23}/include/cuda_wrappers/new +0 -0
  233. /package/lib/clang/{21 → 23}/include/enqcmdintrin.h +0 -0
  234. /package/lib/clang/{21 → 23}/include/fxsrintrin.h +0 -0
  235. /package/lib/clang/{21 → 23}/include/hexagon_circ_brev_intrinsics.h +0 -0
  236. /package/lib/clang/{21 → 23}/include/hexagon_protos.h +0 -0
  237. /package/lib/clang/{21 → 23}/include/hlsl/hlsl_spirv.h +0 -0
  238. /package/lib/clang/{21 → 23}/include/hlsl.h +0 -0
  239. /package/lib/clang/{21 → 23}/include/hresetintrin.h +0 -0
  240. /package/lib/clang/{21 → 23}/include/htmintrin.h +0 -0
  241. /package/lib/clang/{21 → 23}/include/htmxlintrin.h +0 -0
  242. /package/lib/clang/{21 → 23}/include/ia32intrin.h +0 -0
  243. /package/lib/clang/{21 → 23}/include/intrin0.h +0 -0
  244. /package/lib/clang/{21 → 23}/include/inttypes.h +0 -0
  245. /package/lib/clang/{21 → 23}/include/invpcidintrin.h +0 -0
  246. /package/lib/clang/{21 → 23}/include/iso646.h +0 -0
  247. /package/lib/clang/{21 → 23}/include/keylockerintrin.h +0 -0
  248. /package/lib/clang/{21 → 23}/include/limits.h +0 -0
  249. /package/lib/clang/{21 → 23}/include/llvm_offload_wrappers/__llvm_offload.h +0 -0
  250. /package/lib/clang/{21 → 23}/include/llvm_offload_wrappers/__llvm_offload_device.h +0 -0
  251. /package/lib/clang/{21 → 23}/include/llvm_offload_wrappers/__llvm_offload_host.h +0 -0
  252. /package/lib/clang/{21 → 23}/include/lsxintrin.h +0 -0
  253. /package/lib/clang/{21 → 23}/include/lwpintrin.h +0 -0
  254. /package/lib/clang/{21 → 23}/include/lzcntintrin.h +0 -0
  255. /package/lib/clang/{21 → 23}/include/mm3dnow.h +0 -0
  256. /package/lib/clang/{21 → 23}/include/mm_malloc.h +0 -0
  257. /package/lib/clang/{21 → 23}/include/movdirintrin.h +0 -0
  258. /package/lib/clang/{21 → 23}/include/movrsintrin.h +0 -0
  259. /package/lib/clang/{21 → 23}/include/msa.h +0 -0
  260. /package/lib/clang/{21 → 23}/include/mwaitxintrin.h +0 -0
  261. /package/lib/clang/{21 → 23}/include/nmmintrin.h +0 -0
  262. /package/lib/clang/{21 → 23}/include/openmp_wrappers/cmath +0 -0
  263. /package/lib/clang/{21 → 23}/include/openmp_wrappers/complex_cmath.h +0 -0
  264. /package/lib/clang/{21 → 23}/include/openmp_wrappers/new +0 -0
  265. /package/lib/clang/{21 → 23}/include/pconfigintrin.h +0 -0
  266. /package/lib/clang/{21 → 23}/include/pkuintrin.h +0 -0
  267. /package/lib/clang/{21 → 23}/include/popcntintrin.h +0 -0
  268. /package/lib/clang/{21 → 23}/include/ppc_wrappers/bmi2intrin.h +0 -0
  269. /package/lib/clang/{21 → 23}/include/ppc_wrappers/bmiintrin.h +0 -0
  270. /package/lib/clang/{21 → 23}/include/ppc_wrappers/emmintrin.h +0 -0
  271. /package/lib/clang/{21 → 23}/include/ppc_wrappers/immintrin.h +0 -0
  272. /package/lib/clang/{21 → 23}/include/ppc_wrappers/mm_malloc.h +0 -0
  273. /package/lib/clang/{21 → 23}/include/ppc_wrappers/mmintrin.h +0 -0
  274. /package/lib/clang/{21 → 23}/include/ppc_wrappers/nmmintrin.h +0 -0
  275. /package/lib/clang/{21 → 23}/include/ppc_wrappers/pmmintrin.h +0 -0
  276. /package/lib/clang/{21 → 23}/include/ppc_wrappers/smmintrin.h +0 -0
  277. /package/lib/clang/{21 → 23}/include/ppc_wrappers/tmmintrin.h +0 -0
  278. /package/lib/clang/{21 → 23}/include/ppc_wrappers/x86gprintrin.h +0 -0
  279. /package/lib/clang/{21 → 23}/include/ppc_wrappers/x86intrin.h +0 -0
  280. /package/lib/clang/{21 → 23}/include/ppc_wrappers/xmmintrin.h +0 -0
  281. /package/lib/clang/{21 → 23}/include/prfchiintrin.h +0 -0
  282. /package/lib/clang/{21 → 23}/include/prfchwintrin.h +0 -0
  283. /package/lib/clang/{21 → 23}/include/ptwriteintrin.h +0 -0
  284. /package/lib/clang/{21 → 23}/include/raointintrin.h +0 -0
  285. /package/lib/clang/{21 → 23}/include/rdpruintrin.h +0 -0
  286. /package/lib/clang/{21 → 23}/include/rdseedintrin.h +0 -0
  287. /package/lib/clang/{21 → 23}/include/rtmintrin.h +0 -0
  288. /package/lib/clang/{21 → 23}/include/s390intrin.h +0 -0
  289. /package/lib/clang/{21 → 23}/include/serializeintrin.h +0 -0
  290. /package/lib/clang/{21 → 23}/include/sgxintrin.h +0 -0
  291. /package/lib/clang/{21 → 23}/include/sha512intrin.h +0 -0
  292. /package/lib/clang/{21 → 23}/include/shaintrin.h +0 -0
  293. /package/lib/clang/{21 → 23}/include/sm3intrin.h +0 -0
  294. /package/lib/clang/{21 → 23}/include/sm4intrin.h +0 -0
  295. /package/lib/clang/{21 → 23}/include/stdalign.h +0 -0
  296. /package/lib/clang/{21 → 23}/include/stdarg.h +0 -0
  297. /package/lib/clang/{21 → 23}/include/stdatomic.h +0 -0
  298. /package/lib/clang/{21 → 23}/include/stdbool.h +0 -0
  299. /package/lib/clang/{21 → 23}/include/stdckdint.h +0 -0
  300. /package/lib/clang/{21 → 23}/include/stdcountof.h +0 -0
  301. /package/lib/clang/{21 → 23}/include/stddef.h +0 -0
  302. /package/lib/clang/{21 → 23}/include/stdnoreturn.h +0 -0
  303. /package/lib/clang/{21 → 23}/include/tbmintrin.h +0 -0
  304. /package/lib/clang/{21 → 23}/include/tgmath.h +0 -0
  305. /package/lib/clang/{21 → 23}/include/tsxldtrkintrin.h +0 -0
  306. /package/lib/clang/{21 → 23}/include/uintrintrin.h +0 -0
  307. /package/lib/clang/{21 → 23}/include/unwind.h +0 -0
  308. /package/lib/clang/{21 → 23}/include/usermsrintrin.h +0 -0
  309. /package/lib/clang/{21 → 23}/include/vadefs.h +0 -0
  310. /package/lib/clang/{21 → 23}/include/varargs.h +0 -0
  311. /package/lib/clang/{21 → 23}/include/velintrin.h +0 -0
  312. /package/lib/clang/{21 → 23}/include/velintrin_approx.h +0 -0
  313. /package/lib/clang/{21 → 23}/include/velintrin_gen.h +0 -0
  314. /package/lib/clang/{21 → 23}/include/vpclmulqdqintrin.h +0 -0
  315. /package/lib/clang/{21 → 23}/include/waitpkgintrin.h +0 -0
  316. /package/lib/clang/{21 → 23}/include/wbnoinvdintrin.h +0 -0
  317. /package/lib/clang/{21 → 23}/include/wmmintrin.h +0 -0
  318. /package/lib/clang/{21 → 23}/include/x86gprintrin.h +0 -0
  319. /package/lib/clang/{21 → 23}/include/x86intrin.h +0 -0
  320. /package/lib/clang/{21 → 23}/include/xsavecintrin.h +0 -0
  321. /package/lib/clang/{21 → 23}/include/xsaveintrin.h +0 -0
  322. /package/lib/clang/{21 → 23}/include/xsaveoptintrin.h +0 -0
  323. /package/lib/clang/{21 → 23}/include/xsavesintrin.h +0 -0
  324. /package/lib/clang/{21 → 23}/include/xtestintrin.h +0 -0
  325. /package/lib/clang/{21 → 23}/include/yvals_core.h +0 -0
  326. /package/lib/clang/{21 → 23}/include/zos_wrappers/builtins.h +0 -0
@@ -19,12 +19,19 @@ typedef __bf16 __v32bf __attribute__((__vector_size__(64), __aligned__(64)));
19
19
  typedef __bf16 __m512bh __attribute__((__vector_size__(64), __aligned__(64)));
20
20
  typedef __bf16 __bfloat16 __attribute__((deprecated("use __bf16 instead")));
21
21
 
22
- #define __DEFAULT_FN_ATTRS512 \
23
- __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16,evex512"), \
22
+ #define __DEFAULT_FN_ATTRS512 \
23
+ __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16"), \
24
24
  __min_vector_width__(512)))
25
25
  #define __DEFAULT_FN_ATTRS \
26
- __attribute__((__always_inline__, __nodebug__, \
27
- __target__("avx512bf16,no-evex512")))
26
+ __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16")))
27
+
28
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
29
+ #define __DEFAULT_FN_ATTRS512_CONSTEXPR __DEFAULT_FN_ATTRS512 constexpr
30
+ #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
31
+ #else
32
+ #define __DEFAULT_FN_ATTRS512_CONSTEXPR __DEFAULT_FN_ATTRS512
33
+ #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS
34
+ #endif
28
35
 
29
36
  /// Convert One BF16 Data to One Single Float Data.
30
37
  ///
@@ -36,8 +43,8 @@ typedef __bf16 __bfloat16 __attribute__((deprecated("use __bf16 instead")));
36
43
  /// A bfloat data.
37
44
  /// \returns A float data whose sign field and exponent field keep unchanged,
38
45
  /// and fraction field is extended to 23 bits.
39
- static __inline__ float __DEFAULT_FN_ATTRS _mm_cvtsbh_ss(__bf16 __A) {
40
- return __builtin_ia32_cvtsbf162ss_32(__A);
46
+ static __inline__ float __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtsbh_ss(__bf16 __A) {
47
+ return (float)(__A);
41
48
  }
42
49
 
43
50
  /// Convert Two Packed Single Data to One Packed BF16 Data.
@@ -236,9 +243,9 @@ _mm512_maskz_dpbf16_ps(__mmask16 __U, __m512 __D, __m512bh __A, __m512bh __B) {
236
243
  /// \param __A
237
244
  /// A 256-bit vector of [16 x bfloat].
238
245
  /// \returns A 512-bit vector of [16 x float] come from conversion of __A
239
- static __inline__ __m512 __DEFAULT_FN_ATTRS512 _mm512_cvtpbh_ps(__m256bh __A) {
240
- return _mm512_castsi512_ps((__m512i)_mm512_slli_epi32(
241
- (__m512i)_mm512_cvtepi16_epi32((__m256i)__A), 16));
246
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
247
+ _mm512_cvtpbh_ps(__m256bh __A) {
248
+ return (__m512) __builtin_convertvector(__A, __v16sf);
242
249
  }
243
250
 
244
251
  /// Convert Packed BF16 Data to Packed float Data using zeroing mask.
@@ -251,10 +258,11 @@ static __inline__ __m512 __DEFAULT_FN_ATTRS512 _mm512_cvtpbh_ps(__m256bh __A) {
251
258
  /// \param __A
252
259
  /// A 256-bit vector of [16 x bfloat].
253
260
  /// \returns A 512-bit vector of [16 x float] come from conversion of __A
254
- static __inline__ __m512 __DEFAULT_FN_ATTRS512
261
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
255
262
  _mm512_maskz_cvtpbh_ps(__mmask16 __U, __m256bh __A) {
256
- return _mm512_castsi512_ps((__m512i)_mm512_slli_epi32(
257
- (__m512i)_mm512_maskz_cvtepi16_epi32((__mmask16)__U, (__m256i)__A), 16));
263
+ return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
264
+ (__v16sf)_mm512_cvtpbh_ps(__A),
265
+ (__v16sf)_mm512_setzero_ps());
258
266
  }
259
267
 
260
268
  /// Convert Packed BF16 Data to Packed float Data using merging mask.
@@ -269,15 +277,16 @@ _mm512_maskz_cvtpbh_ps(__mmask16 __U, __m256bh __A) {
269
277
  /// \param __A
270
278
  /// A 256-bit vector of [16 x bfloat].
271
279
  /// \returns A 512-bit vector of [16 x float] come from conversion of __A
272
- static __inline__ __m512 __DEFAULT_FN_ATTRS512
280
+ static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
273
281
  _mm512_mask_cvtpbh_ps(__m512 __S, __mmask16 __U, __m256bh __A) {
274
- return _mm512_castsi512_ps((__m512i)_mm512_mask_slli_epi32(
275
- (__m512i)__S, (__mmask16)__U,
276
- (__m512i)_mm512_cvtepi16_epi32((__m256i)__A), 16));
282
+ return (__m512)__builtin_ia32_selectps_512(
283
+ (__mmask16)__U, (__v16sf)_mm512_cvtpbh_ps(__A), (__v16sf)__S);
277
284
  }
278
285
 
279
286
  #undef __DEFAULT_FN_ATTRS
287
+ #undef __DEFAULT_FN_ATTRS_CONSTEXPR
280
288
  #undef __DEFAULT_FN_ATTRS512
289
+ #undef __DEFAULT_FN_ATTRS512_CONSTEXPR
281
290
 
282
291
  #endif
283
292
  #endif
@@ -15,53 +15,44 @@
15
15
  #define __AVX512BITALGINTRIN_H
16
16
 
17
17
  /* Define the default attributes for the functions in this file. */
18
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
18
19
  #define __DEFAULT_FN_ATTRS \
19
- __attribute__((__always_inline__, __nodebug__, \
20
- __target__("avx512bitalg,evex512"), \
20
+ __attribute__((__always_inline__, __nodebug__, __target__("avx512bitalg"), \
21
+ __min_vector_width__(512))) constexpr
22
+ #else
23
+ #define __DEFAULT_FN_ATTRS \
24
+ __attribute__((__always_inline__, __nodebug__, __target__("avx512bitalg"), \
21
25
  __min_vector_width__(512)))
26
+ #endif
22
27
 
23
- static __inline__ __m512i __DEFAULT_FN_ATTRS
24
- _mm512_popcnt_epi16(__m512i __A)
25
- {
28
+ static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_popcnt_epi16(__m512i __A) {
26
29
  return (__m512i)__builtin_elementwise_popcount((__v32hu)__A);
27
30
  }
28
31
 
29
32
  static __inline__ __m512i __DEFAULT_FN_ATTRS
30
- _mm512_mask_popcnt_epi16(__m512i __A, __mmask32 __U, __m512i __B)
31
- {
32
- return (__m512i) __builtin_ia32_selectw_512((__mmask32) __U,
33
- (__v32hi) _mm512_popcnt_epi16(__B),
34
- (__v32hi) __A);
33
+ _mm512_mask_popcnt_epi16(__m512i __A, __mmask32 __U, __m512i __B) {
34
+ return (__m512i)__builtin_ia32_selectw_512(
35
+ (__mmask32)__U, (__v32hi)_mm512_popcnt_epi16(__B), (__v32hi)__A);
35
36
  }
36
37
 
37
38
  static __inline__ __m512i __DEFAULT_FN_ATTRS
38
- _mm512_maskz_popcnt_epi16(__mmask32 __U, __m512i __B)
39
- {
40
- return _mm512_mask_popcnt_epi16((__m512i) _mm512_setzero_si512(),
41
- __U,
42
- __B);
39
+ _mm512_maskz_popcnt_epi16(__mmask32 __U, __m512i __B) {
40
+ return _mm512_mask_popcnt_epi16((__m512i)_mm512_setzero_si512(), __U, __B);
43
41
  }
44
42
 
45
- static __inline__ __m512i __DEFAULT_FN_ATTRS
46
- _mm512_popcnt_epi8(__m512i __A)
47
- {
43
+ static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_popcnt_epi8(__m512i __A) {
48
44
  return (__m512i)__builtin_elementwise_popcount((__v64qu)__A);
49
45
  }
50
46
 
51
47
  static __inline__ __m512i __DEFAULT_FN_ATTRS
52
- _mm512_mask_popcnt_epi8(__m512i __A, __mmask64 __U, __m512i __B)
53
- {
54
- return (__m512i) __builtin_ia32_selectb_512((__mmask64) __U,
55
- (__v64qi) _mm512_popcnt_epi8(__B),
56
- (__v64qi) __A);
48
+ _mm512_mask_popcnt_epi8(__m512i __A, __mmask64 __U, __m512i __B) {
49
+ return (__m512i)__builtin_ia32_selectb_512(
50
+ (__mmask64)__U, (__v64qi)_mm512_popcnt_epi8(__B), (__v64qi)__A);
57
51
  }
58
52
 
59
53
  static __inline__ __m512i __DEFAULT_FN_ATTRS
60
- _mm512_maskz_popcnt_epi8(__mmask64 __U, __m512i __B)
61
- {
62
- return _mm512_mask_popcnt_epi8((__m512i) _mm512_setzero_si512(),
63
- __U,
64
- __B);
54
+ _mm512_maskz_popcnt_epi8(__mmask64 __U, __m512i __B) {
55
+ return _mm512_mask_popcnt_epi8((__m512i)_mm512_setzero_si512(), __U, __B);
65
56
  }
66
57
 
67
58
  static __inline__ __mmask64 __DEFAULT_FN_ATTRS
@@ -80,7 +71,5 @@ _mm512_bitshuffle_epi64_mask(__m512i __A, __m512i __B)
80
71
  __B);
81
72
  }
82
73
 
83
-
84
74
  #undef __DEFAULT_FN_ATTRS
85
-
86
75
  #endif
@@ -0,0 +1,174 @@
1
+ /*===-------- avx512bmmintrin.h - AVX512BMM intrinsics *------------------===
2
+ *
3
+ *
4
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5
+ * See https://llvm.org/LICENSE.txt for license information.
6
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7
+ *
8
+ *===---------------------------------------------------------------------===
9
+ */
10
+
11
+ #ifndef __IMMINTRIN_H
12
+ #error "Never use <avx512bmmintrin.h> directly; include <immintrin.h> instead."
13
+ #endif
14
+
15
+ #ifndef _AVX512BMMINTRIN_H
16
+ #define _AVX512BMMINTRIN_H
17
+
18
+ /* Define the default attributes for the functions in this file. */
19
+ #define __DEFAULT_FN_ATTRS \
20
+ __attribute__((__always_inline__, __nodebug__, __target__("avx512bmm"), \
21
+ __min_vector_width__(512)))
22
+
23
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
24
+ #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
25
+ #else
26
+ #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS
27
+ #endif
28
+
29
+ /// Multiplies two 16x16 bit matrices using OR reduction and ORs the product
30
+ /// into a third 16x16 bit matrix (which is also the destination).
31
+ ///
32
+ /// For the 512-bit ZMM form, each register contains two 16x16 (256-bit)
33
+ /// matrices in bits [255:0] and [511:256]. The operation performs:
34
+ /// \code{.operation}
35
+ /// for i in 0 to 15
36
+ /// for j in 0 to 15
37
+ /// reduction_bit = __C[16*i+j]
38
+ /// for k in 0 to 15
39
+ /// reduction_bit |= __A[16*i+k] & __B[16*k+j]
40
+ /// end for k
41
+ /// dest[16*i+j] = reduction_bit
42
+ /// end for j
43
+ /// end for i
44
+ /// \endcode
45
+ ///
46
+ /// \headerfile <immintrin.h>
47
+ ///
48
+ /// This intrinsic corresponds to the <c> VBMACOR16X16X16 </c> instruction.
49
+ ///
50
+ /// \param __A
51
+ /// A 512-bit vector containing two 16x16 bit matrices (one per 256-bit
52
+ /// lane).
53
+ /// \param __B
54
+ /// A 512-bit vector containing two 16x16 bit matrices (one per 256-bit
55
+ /// lane).
56
+ /// \param __C
57
+ /// A 512-bit accumulator vector containing the initial values to OR with.
58
+ /// \returns A 512-bit vector containing the accumulated result for each lane.
59
+ /// \note This instruction does not support masking.
60
+ static __inline __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
61
+ _mm512_bmacor16x16x16(__m512i __A, __m512i __B, __m512i __C) {
62
+ return (__m512i)__builtin_ia32_bmacor16x16x16_v32hi(
63
+ (__v32hi)__A, (__v32hi)__B, (__v32hi)__C);
64
+ }
65
+
66
+ /// Multiplies two 16x16 bit matrices using XOR reduction and XORs the product
67
+ /// into a third 16x16 bit matrix (which is also the destination).
68
+ ///
69
+ /// For the 512-bit ZMM form, each register contains two 16x16 (256-bit)
70
+ /// matrices in bits [255:0] and [511:256]. The operation performs:
71
+ /// \code{.operation}
72
+ /// for i in 0 to 15
73
+ /// for j in 0 to 15
74
+ /// reduction_bit = __C[16*i+j]
75
+ /// for k in 0 to 15
76
+ /// reduction_bit ^= __A[16*i+k] & __B[16*k+j]
77
+ /// end for k
78
+ /// dest[16*i+j] = reduction_bit
79
+ /// end for j
80
+ /// end for i
81
+ /// \endcode
82
+ ///
83
+ /// \headerfile <immintrin.h>
84
+ ///
85
+ /// This intrinsic corresponds to the <c> VBMACXOR16X16X16 </c> instruction.
86
+ ///
87
+ /// \param __A
88
+ /// A 512-bit vector containing two 16x16 bit matrices (one per 256-bit
89
+ /// lane).
90
+ /// \param __B
91
+ /// A 512-bit vector containing two 16x16 bit matrices (one per 256-bit
92
+ /// lane).
93
+ /// \param __C
94
+ /// A 512-bit accumulator vector containing the initial values to XOR with.
95
+ /// \returns A 512-bit vector containing the accumulated result for each lane.
96
+ /// \note This instruction does not support masking.
97
+ static __inline __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
98
+ _mm512_bmacxor16x16x16(__m512i __A, __m512i __B, __m512i __C) {
99
+ return (__m512i)__builtin_ia32_bmacxor16x16x16_v32hi(
100
+ (__v32hi)__A, (__v32hi)__B, (__v32hi)__C);
101
+ }
102
+
103
+ /// Reverses the bits within each byte of the source vector.
104
+ ///
105
+ /// For each byte in the source, reverses the order of its 8 bits to generate
106
+ /// the corresponding destination byte. For example, 0b10110001 becomes
107
+ /// 0b10001101.
108
+ ///
109
+ /// \headerfile <immintrin.h>
110
+ ///
111
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
112
+ ///
113
+ /// \param __A
114
+ /// A 512-bit vector of [64 x i8] where each byte will have its bits
115
+ /// reversed.
116
+ /// \returns A 512-bit vector of [64 x i8] with bit-reversed bytes.
117
+ static __inline __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
118
+ _mm512_bitrev_epi8(__m512i __A) {
119
+ return (__m512i)__builtin_elementwise_bitreverse((__v64qi)__A);
120
+ }
121
+
122
+ /// Reverses the bits within each byte of the source vector, using a writemask
123
+ /// to conditionally select elements.
124
+ ///
125
+ /// For each byte position, if the corresponding mask bit is 1, the byte from
126
+ /// \a A has its bits reversed and stored in the result. If the mask bit is 0,
127
+ /// the corresponding byte from \a B is copied to the result (merge masking).
128
+ ///
129
+ /// \headerfile <immintrin.h>
130
+ ///
131
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
132
+ ///
133
+ /// \param __U
134
+ /// A 64-bit mask value where each bit controls one byte (per 8-bit element).
135
+ /// A 1 performs bit reversal; a 0 selects the passthrough byte from __B.
136
+ /// \param __A
137
+ /// A 512-bit vector of [64 x i8] to be bit-reversed.
138
+ /// \param __B
139
+ /// A 512-bit vector of [64 x i8] providing passthrough values.
140
+ /// \returns A 512-bit vector combining bit-reversed and passthrough bytes.
141
+ static __inline __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
142
+ _mm512_mask_bitrev_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
143
+ return (__m512i)__builtin_ia32_selectb_512(
144
+ (__mmask64)__U, (__v64qi)_mm512_bitrev_epi8(__A), (__v64qi)__B);
145
+ }
146
+
147
+ /// Reverses the bits within each byte of the source vector, zeroing elements
148
+ /// based on the writemask.
149
+ ///
150
+ /// For each byte position, if the corresponding mask bit is 1, the byte from
151
+ /// \a A has its bits reversed and stored in the result. If the mask bit is 0,
152
+ /// the result byte is set to zero (zero masking).
153
+ ///
154
+ /// \headerfile <immintrin.h>
155
+ ///
156
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
157
+ ///
158
+ /// \param __U
159
+ /// A 64-bit mask value where each bit controls one byte (per 8-bit element).
160
+ /// A 1 performs bit reversal; a 0 sets the byte to zero.
161
+ /// \param __A
162
+ /// A 512-bit vector of [64 x i8] to be bit-reversed.
163
+ /// \returns A 512-bit vector with bit-reversed or zeroed bytes.
164
+ static __inline __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
165
+ _mm512_maskz_bitrev_epi8(__mmask64 __U, __m512i __A) {
166
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
167
+ (__v64qi)_mm512_bitrev_epi8(__A),
168
+ (__v64qi)_mm512_setzero_si512());
169
+ }
170
+
171
+ #undef __DEFAULT_FN_ATTRS
172
+ #undef __DEFAULT_FN_ATTRS_CONSTEXPR
173
+
174
+ #endif
@@ -0,0 +1,245 @@
1
+ /*===------------- avx512bmmvlintrin.h - BMM intrinsics ------------------===
2
+ *
3
+ *
4
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5
+ * See https://llvm.org/LICENSE.txt for license information.
6
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7
+ *
8
+ *===-----------------------------------------------------------------------===
9
+ */
10
+ #ifndef __IMMINTRIN_H
11
+ #error \
12
+ "Never use <avx512bmmvlintrin.h> directly; include <immintrin.h> instead."
13
+ #endif
14
+
15
+ #ifndef __BMMVLINTRIN_H
16
+ #define __BMMVLINTRIN_H
17
+
18
+ /* Define the default attributes for the functions in this file. */
19
+ #define __DEFAULT_FN_ATTRS128 \
20
+ __attribute__((__always_inline__, __nodebug__, \
21
+ __target__("avx512bmm,avx512vl"), __min_vector_width__(128)))
22
+ #define __DEFAULT_FN_ATTRS256 \
23
+ __attribute__((__always_inline__, __nodebug__, \
24
+ __target__("avx512bmm,avx512vl"), __min_vector_width__(256)))
25
+
26
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
27
+ #define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128 constexpr
28
+ #define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256 constexpr
29
+ #else
30
+ #define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128
31
+ #define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256
32
+ #endif
33
+
34
+ /// Multiplies two 16x16 bit matrices using OR reduction and ORs the product
35
+ /// into a third 16x16 bit matrix (which is also the destination).
36
+ ///
37
+ /// For the 256-bit YMM form, the source registers/memory each contain a single
38
+ /// 16x16 (256-bit) matrix in bits [255:0]. The operation performs:
39
+ /// \code{.operation}
40
+ /// for i in 0 to 15
41
+ /// for j in 0 to 15
42
+ /// reduction_bit = __C[16*i+j]
43
+ /// for k in 0 to 15
44
+ /// reduction_bit |= __A[16*i+k] & __B[16*k+j]
45
+ /// end for k
46
+ /// dest[16*i+j] = reduction_bit
47
+ /// end for j
48
+ /// end for i
49
+ /// \endcode
50
+ ///
51
+ /// \headerfile <immintrin.h>
52
+ ///
53
+ /// This intrinsic corresponds to the <c> VBMACOR16X16X16 </c> instruction.
54
+ ///
55
+ /// \param __A
56
+ /// A 256-bit vector containing a 16x16 bit matrix.
57
+ /// \param __B
58
+ /// A 256-bit vector containing a 16x16 bit matrix.
59
+ /// \param __C
60
+ /// A 256-bit accumulator vector containing the initial values to OR with.
61
+ /// \returns A 256-bit vector containing the accumulated result.
62
+ /// \note This instruction does not support masking.
63
+ static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
64
+ _mm256_bmacor16x16x16(__m256i __A, __m256i __B, __m256i __C) {
65
+ return (__m256i)__builtin_ia32_bmacor16x16x16_v16hi(
66
+ (__v16hi)__A, (__v16hi)__B, (__v16hi)__C);
67
+ }
68
+
69
+ /// Multiplies two 16x16 bit matrices using XOR reduction and XORs the product
70
+ /// into a third 16x16 bit matrix (which is also the destination).
71
+ ///
72
+ /// For the 256-bit YMM form, the source registers/memory each contain a single
73
+ /// 16x16 (256-bit) matrix in bits [255:0]. The operation performs:
74
+ /// \code{.operation}
75
+ /// for i in 0 to 15
76
+ /// for j in 0 to 15
77
+ /// reduction_bit = __C[16*i+j]
78
+ /// for k in 0 to 15
79
+ /// reduction_bit ^= __A[16*i+k] & __B[16*k+j]
80
+ /// end for k
81
+ /// dest[16*i+j] = reduction_bit
82
+ /// end for j
83
+ /// end for i
84
+ /// \endcode
85
+ ///
86
+ /// \headerfile <immintrin.h>
87
+ ///
88
+ /// This intrinsic corresponds to the <c> VBMACXOR16X16X16 </c> instruction.
89
+ ///
90
+ /// \param __A
91
+ /// A 256-bit vector containing a 16x16 bit matrix.
92
+ /// \param __B
93
+ /// A 256-bit vector containing a 16x16 bit matrix.
94
+ /// \param __C
95
+ /// A 256-bit accumulator vector containing the initial values to XOR with.
96
+ /// \returns A 256-bit vector containing the accumulated result.
97
+ /// \note This instruction does not support masking.
98
+ static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
99
+ _mm256_bmacxor16x16x16(__m256i __A, __m256i __B, __m256i __C) {
100
+ return (__m256i)__builtin_ia32_bmacxor16x16x16_v16hi(
101
+ (__v16hi)__A, (__v16hi)__B, (__v16hi)__C);
102
+ }
103
+
104
+ /// Reverses the bits within each byte of the source vector.
105
+ ///
106
+ /// For each byte in the source, reverses the order of its 8 bits to generate
107
+ /// the corresponding destination byte. For example, 0b10110001 becomes
108
+ /// 0b10001101.
109
+ ///
110
+ /// \headerfile <immintrin.h>
111
+ ///
112
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
113
+ ///
114
+ /// \param __A
115
+ /// A 128-bit vector of [16 x i8] where each byte will have its bits
116
+ /// reversed.
117
+ /// \returns A 128-bit vector of [16 x i8] with bit-reversed bytes.
118
+ static __inline __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
119
+ _mm128_bitrev_epi8(__m128i __A) {
120
+ return (__m128i)__builtin_elementwise_bitreverse((__v16qi)__A);
121
+ }
122
+
123
+ /// Reverses the bits within each byte of the source vector.
124
+ ///
125
+ /// For each byte in the source, reverses the order of its 8 bits to generate
126
+ /// the corresponding destination byte. For example, 0b10110001 becomes
127
+ /// 0b10001101.
128
+ ///
129
+ /// \headerfile <immintrin.h>
130
+ ///
131
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
132
+ ///
133
+ /// \param __A
134
+ /// A 256-bit vector of [32 x i8] where each byte will have its bits
135
+ /// reversed.
136
+ /// \returns A 256-bit vector of [32 x i8] with bit-reversed bytes.
137
+ static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
138
+ _mm256_bitrev_epi8(__m256i __A) {
139
+ return (__m256i)__builtin_elementwise_bitreverse((__v32qi)__A);
140
+ }
141
+
142
+ /// Reverses the bits within each byte of the source vector, using a writemask
143
+ /// to conditionally select elements.
144
+ ///
145
+ /// For each byte position, if the corresponding mask bit is 1, the byte from
146
+ /// \a A has its bits reversed and stored in the result. If the mask bit is 0,
147
+ /// the corresponding byte from \a B is copied to the result (merge masking).
148
+ ///
149
+ /// \headerfile <immintrin.h>
150
+ ///
151
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
152
+ ///
153
+ /// \param __U
154
+ /// A 16-bit mask value where each bit controls one byte (per 8-bit element).
155
+ /// A 1 performs bit reversal; a 0 selects the passthrough byte from __B.
156
+ /// \param __A
157
+ /// A 128-bit vector of [16 x i8] to be bit-reversed.
158
+ /// \param __B
159
+ /// A 128-bit vector of [16 x i8] providing passthrough values.
160
+ /// \returns A 128-bit vector combining bit-reversed and passthrough bytes.
161
+ static __inline __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
162
+ _mm128_mask_bitrev_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
163
+ return (__m128i)__builtin_ia32_selectb_128(
164
+ (__mmask16)__U, (__v16qi)_mm128_bitrev_epi8(__A), (__v16qi)__B);
165
+ }
166
+
167
+ /// Reverses the bits within each byte of the source vector, using a writemask
168
+ /// to conditionally select elements.
169
+ ///
170
+ /// For each byte position, if the corresponding mask bit is 1, the byte from
171
+ /// \a A has its bits reversed and stored in the result. If the mask bit is 0,
172
+ /// the corresponding byte from \a B is copied to the result (merge masking).
173
+ ///
174
+ /// \headerfile <immintrin.h>
175
+ ///
176
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
177
+ ///
178
+ /// \param __U
179
+ /// A 32-bit mask value where each bit controls one byte (per 8-bit element).
180
+ /// A 1 performs bit reversal; a 0 selects the passthrough byte from __B.
181
+ /// \param __A
182
+ /// A 256-bit vector of [32 x i8] to be bit-reversed.
183
+ /// \param __B
184
+ /// A 256-bit vector of [32 x i8] providing passthrough values.
185
+ /// \returns A 256-bit vector combining bit-reversed and passthrough bytes.
186
+ static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
187
+ _mm256_mask_bitrev_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
188
+ return (__m256i)__builtin_ia32_selectb_256(
189
+ (__mmask32)__U, (__v32qi)_mm256_bitrev_epi8(__A), (__v32qi)__B);
190
+ }
191
+
192
+ /// Reverses the bits within each byte of the source vector, zeroing elements
193
+ /// based on the writemask.
194
+ ///
195
+ /// For each byte position, if the corresponding mask bit is 1, the byte from
196
+ /// \a A has its bits reversed and stored in the result. If the mask bit is 0,
197
+ /// the result byte is set to zero (zero masking).
198
+ ///
199
+ /// \headerfile <immintrin.h>
200
+ ///
201
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
202
+ ///
203
+ /// \param __U
204
+ /// A 16-bit mask value where each bit controls one byte (per 8-bit element).
205
+ /// A 1 performs bit reversal; a 0 sets the byte to zero.
206
+ /// \param __A
207
+ /// A 128-bit vector of [16 x i8] to be bit-reversed.
208
+ /// \returns A 128-bit vector with bit-reversed or zeroed bytes.
209
+ static __inline __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
210
+ _mm128_maskz_bitrev_epi8(__mmask16 __U, __m128i __A) {
211
+ return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
212
+ (__v16qi)_mm128_bitrev_epi8(__A),
213
+ (__v16qi)_mm_setzero_si128());
214
+ }
215
+
216
+ /// Reverses the bits within each byte of the source vector, zeroing elements
217
+ /// based on the writemask.
218
+ ///
219
+ /// For each byte position, if the corresponding mask bit is 1, the byte from
220
+ /// \a A has its bits reversed and stored in the result. If the mask bit is 0,
221
+ /// the result byte is set to zero (zero masking).
222
+ ///
223
+ /// \headerfile <immintrin.h>
224
+ ///
225
+ /// This intrinsic corresponds to the <c> VBITREV </c> instruction.
226
+ ///
227
+ /// \param __U
228
+ /// A 32-bit mask value where each bit controls one byte (per 8-bit element).
229
+ /// A 1 performs bit reversal; a 0 sets the byte to zero.
230
+ /// \param __A
231
+ /// A 256-bit vector of [32 x i8] to be bit-reversed.
232
+ /// \returns A 256-bit vector with bit-reversed or zeroed bytes.
233
+ static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
234
+ _mm256_maskz_bitrev_epi8(__mmask32 __U, __m256i __A) {
235
+ return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
236
+ (__v32qi)_mm256_bitrev_epi8(__A),
237
+ (__v32qi)_mm256_setzero_si256());
238
+ }
239
+
240
+ #undef __DEFAULT_FN_ATTRS128_CONSTEXPR
241
+ #undef __DEFAULT_FN_ATTRS256_CONSTEXPR
242
+ #undef __DEFAULT_FN_ATTRS128
243
+ #undef __DEFAULT_FN_ATTRS256
244
+
245
+ #endif