@cpp-linter/clang-tidy-darwin-x64 18.1.8 → 19.1.7

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 (247) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy +2 -2
  3. package/lib/clang/{18 → 19}/include/__clang_cuda_intrinsics.h +1 -3
  4. package/lib/clang/19/include/__stdarg_header_macro.h +12 -0
  5. package/lib/clang/19/include/__stddef_header_macro.h +12 -0
  6. package/lib/clang/{18 → 19}/include/arm_acle.h +31 -5
  7. package/lib/clang/{18 → 19}/include/arm_fp16.h +1 -1
  8. package/lib/clang/{18 → 19}/include/arm_neon.h +43796 -43801
  9. package/lib/clang/{18 → 19}/include/arm_sme.h +408 -1
  10. package/lib/clang/{18 → 19}/include/arm_sve.h +27266 -27714
  11. package/lib/clang/{18 → 19}/include/arm_vector_types.h +5 -5
  12. package/lib/clang/{18 → 19}/include/avx512fp16intrin.h +38 -38
  13. package/lib/clang/{18 → 19}/include/avxintrin.h +58 -44
  14. package/lib/clang/{18 → 19}/include/bmiintrin.h +2 -4
  15. package/lib/clang/{18 → 19}/include/builtins.h +3 -0
  16. package/lib/clang/{18 → 19}/include/cpuid.h +23 -3
  17. package/lib/clang/{18 → 19}/include/cuda_wrappers/algorithm +1 -1
  18. package/lib/clang/{18 → 19}/include/emmintrin.h +301 -170
  19. package/lib/clang/{18 → 19}/include/float.h +28 -0
  20. package/lib/clang/{18 → 19}/include/fmaintrin.h +32 -16
  21. package/lib/clang/{18 → 19}/include/hlsl/hlsl_basic_types.h +10 -3
  22. package/lib/clang/19/include/hlsl/hlsl_intrinsics.h +1697 -0
  23. package/lib/clang/{18 → 19}/include/ia32intrin.h +36 -36
  24. package/lib/clang/{18 → 19}/include/immintrin.h +85 -159
  25. package/lib/clang/{18 → 19}/include/intrin.h +48 -224
  26. package/lib/clang/19/include/intrin0.h +247 -0
  27. package/lib/clang/{18 → 19}/include/inttypes.h +4 -0
  28. package/lib/clang/{18 → 19}/include/iso646.h +4 -0
  29. package/lib/clang/{18 → 19}/include/keylockerintrin.h +5 -8
  30. package/lib/clang/{18 → 19}/include/limits.h +5 -0
  31. package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/assert.h +1 -1
  32. package/lib/clang/19/include/mm3dnow.h +22 -0
  33. package/lib/clang/{18 → 19}/include/mmintrin.h +76 -84
  34. package/lib/clang/{18 → 19}/include/module.modulemap +14 -1
  35. package/lib/clang/{18 → 19}/include/opencl-c-base.h +4 -0
  36. package/lib/clang/{18 → 19}/include/opencl-c.h +15 -0
  37. package/lib/clang/{18 → 19}/include/prfchwintrin.h +10 -8
  38. package/lib/clang/19/include/ptrauth.h +330 -0
  39. package/lib/clang/{18 → 19}/include/riscv_vector.h +0 -4
  40. package/lib/clang/19/include/sifive_vector.h +118 -0
  41. package/lib/clang/{18 → 19}/include/smmintrin.h +12 -12
  42. package/lib/clang/{18 → 19}/include/stdalign.h +5 -0
  43. package/lib/clang/{18 → 19}/include/stdarg.h +15 -19
  44. package/lib/clang/{18 → 19}/include/stdatomic.h +11 -1
  45. package/lib/clang/{18 → 19}/include/stdbool.h +5 -0
  46. package/lib/clang/{18 → 19}/include/stddef.h +38 -22
  47. package/lib/clang/{18 → 19}/include/stdint.h +5 -0
  48. package/lib/clang/{18 → 19}/include/stdnoreturn.h +6 -0
  49. package/lib/clang/{18 → 19}/include/tmmintrin.h +20 -16
  50. package/lib/clang/{18 → 19}/include/varargs.h +5 -1
  51. package/lib/clang/{18 → 19}/include/vecintrin.h +23 -5
  52. package/lib/clang/{18 → 19}/include/x86gprintrin.h +7 -14
  53. package/lib/clang/19/include/x86intrin.h +53 -0
  54. package/lib/clang/{18 → 19}/include/xmmintrin.h +285 -99
  55. package/lib/clang/19/include/yvals_core.h +25 -0
  56. package/lib/clang/19/include/zos_wrappers/builtins.h +18 -0
  57. package/package.json +6 -6
  58. package/lib/clang/18/include/avx512erintrin.h +0 -271
  59. package/lib/clang/18/include/avx512pfintrin.h +0 -92
  60. package/lib/clang/18/include/hlsl/hlsl_intrinsics.h +0 -624
  61. package/lib/clang/18/include/mm3dnow.h +0 -157
  62. package/lib/clang/18/include/sifive_vector.h +0 -16
  63. package/lib/clang/18/include/x86intrin.h +0 -67
  64. /package/lib/clang/{18 → 19}/include/__clang_cuda_builtin_vars.h +0 -0
  65. /package/lib/clang/{18 → 19}/include/__clang_cuda_cmath.h +0 -0
  66. /package/lib/clang/{18 → 19}/include/__clang_cuda_complex_builtins.h +0 -0
  67. /package/lib/clang/{18 → 19}/include/__clang_cuda_device_functions.h +0 -0
  68. /package/lib/clang/{18 → 19}/include/__clang_cuda_libdevice_declares.h +0 -0
  69. /package/lib/clang/{18 → 19}/include/__clang_cuda_math.h +0 -0
  70. /package/lib/clang/{18 → 19}/include/__clang_cuda_math_forward_declares.h +0 -0
  71. /package/lib/clang/{18 → 19}/include/__clang_cuda_runtime_wrapper.h +0 -0
  72. /package/lib/clang/{18 → 19}/include/__clang_cuda_texture_intrinsics.h +0 -0
  73. /package/lib/clang/{18 → 19}/include/__clang_hip_cmath.h +0 -0
  74. /package/lib/clang/{18 → 19}/include/__clang_hip_libdevice_declares.h +0 -0
  75. /package/lib/clang/{18 → 19}/include/__clang_hip_math.h +0 -0
  76. /package/lib/clang/{18 → 19}/include/__clang_hip_runtime_wrapper.h +0 -0
  77. /package/lib/clang/{18 → 19}/include/__clang_hip_stdlib.h +0 -0
  78. /package/lib/clang/{18 → 19}/include/__stdarg___gnuc_va_list.h +0 -0
  79. /package/lib/clang/{18 → 19}/include/__stdarg___va_copy.h +0 -0
  80. /package/lib/clang/{18 → 19}/include/__stdarg_va_arg.h +0 -0
  81. /package/lib/clang/{18 → 19}/include/__stdarg_va_copy.h +0 -0
  82. /package/lib/clang/{18 → 19}/include/__stdarg_va_list.h +0 -0
  83. /package/lib/clang/{18 → 19}/include/__stddef_max_align_t.h +0 -0
  84. /package/lib/clang/{18 → 19}/include/__stddef_null.h +0 -0
  85. /package/lib/clang/{18 → 19}/include/__stddef_nullptr_t.h +0 -0
  86. /package/lib/clang/{18 → 19}/include/__stddef_offsetof.h +0 -0
  87. /package/lib/clang/{18 → 19}/include/__stddef_ptrdiff_t.h +0 -0
  88. /package/lib/clang/{18 → 19}/include/__stddef_rsize_t.h +0 -0
  89. /package/lib/clang/{18 → 19}/include/__stddef_size_t.h +0 -0
  90. /package/lib/clang/{18 → 19}/include/__stddef_unreachable.h +0 -0
  91. /package/lib/clang/{18 → 19}/include/__stddef_wchar_t.h +0 -0
  92. /package/lib/clang/{18 → 19}/include/__stddef_wint_t.h +0 -0
  93. /package/lib/clang/{18 → 19}/include/__wmmintrin_aes.h +0 -0
  94. /package/lib/clang/{18 → 19}/include/__wmmintrin_pclmul.h +0 -0
  95. /package/lib/clang/{18 → 19}/include/adcintrin.h +0 -0
  96. /package/lib/clang/{18 → 19}/include/adxintrin.h +0 -0
  97. /package/lib/clang/{18 → 19}/include/altivec.h +0 -0
  98. /package/lib/clang/{18 → 19}/include/ammintrin.h +0 -0
  99. /package/lib/clang/{18 → 19}/include/amxcomplexintrin.h +0 -0
  100. /package/lib/clang/{18 → 19}/include/amxfp16intrin.h +0 -0
  101. /package/lib/clang/{18 → 19}/include/amxintrin.h +0 -0
  102. /package/lib/clang/{18 → 19}/include/arm64intr.h +0 -0
  103. /package/lib/clang/{18 → 19}/include/arm_bf16.h +0 -0
  104. /package/lib/clang/{18 → 19}/include/arm_cde.h +0 -0
  105. /package/lib/clang/{18 → 19}/include/arm_cmse.h +0 -0
  106. /package/lib/clang/{18 → 19}/include/arm_mve.h +0 -0
  107. /package/lib/clang/{18 → 19}/include/arm_neon_sve_bridge.h +0 -0
  108. /package/lib/clang/{18 → 19}/include/armintr.h +0 -0
  109. /package/lib/clang/{18 → 19}/include/avx2intrin.h +0 -0
  110. /package/lib/clang/{18 → 19}/include/avx512bf16intrin.h +0 -0
  111. /package/lib/clang/{18 → 19}/include/avx512bitalgintrin.h +0 -0
  112. /package/lib/clang/{18 → 19}/include/avx512bwintrin.h +0 -0
  113. /package/lib/clang/{18 → 19}/include/avx512cdintrin.h +0 -0
  114. /package/lib/clang/{18 → 19}/include/avx512dqintrin.h +0 -0
  115. /package/lib/clang/{18 → 19}/include/avx512fintrin.h +0 -0
  116. /package/lib/clang/{18 → 19}/include/avx512ifmaintrin.h +0 -0
  117. /package/lib/clang/{18 → 19}/include/avx512ifmavlintrin.h +0 -0
  118. /package/lib/clang/{18 → 19}/include/avx512vbmi2intrin.h +0 -0
  119. /package/lib/clang/{18 → 19}/include/avx512vbmiintrin.h +0 -0
  120. /package/lib/clang/{18 → 19}/include/avx512vbmivlintrin.h +0 -0
  121. /package/lib/clang/{18 → 19}/include/avx512vlbf16intrin.h +0 -0
  122. /package/lib/clang/{18 → 19}/include/avx512vlbitalgintrin.h +0 -0
  123. /package/lib/clang/{18 → 19}/include/avx512vlbwintrin.h +0 -0
  124. /package/lib/clang/{18 → 19}/include/avx512vlcdintrin.h +0 -0
  125. /package/lib/clang/{18 → 19}/include/avx512vldqintrin.h +0 -0
  126. /package/lib/clang/{18 → 19}/include/avx512vlfp16intrin.h +0 -0
  127. /package/lib/clang/{18 → 19}/include/avx512vlintrin.h +0 -0
  128. /package/lib/clang/{18 → 19}/include/avx512vlvbmi2intrin.h +0 -0
  129. /package/lib/clang/{18 → 19}/include/avx512vlvnniintrin.h +0 -0
  130. /package/lib/clang/{18 → 19}/include/avx512vlvp2intersectintrin.h +0 -0
  131. /package/lib/clang/{18 → 19}/include/avx512vnniintrin.h +0 -0
  132. /package/lib/clang/{18 → 19}/include/avx512vp2intersectintrin.h +0 -0
  133. /package/lib/clang/{18 → 19}/include/avx512vpopcntdqintrin.h +0 -0
  134. /package/lib/clang/{18 → 19}/include/avx512vpopcntdqvlintrin.h +0 -0
  135. /package/lib/clang/{18 → 19}/include/avxifmaintrin.h +0 -0
  136. /package/lib/clang/{18 → 19}/include/avxneconvertintrin.h +0 -0
  137. /package/lib/clang/{18 → 19}/include/avxvnniint16intrin.h +0 -0
  138. /package/lib/clang/{18 → 19}/include/avxvnniint8intrin.h +0 -0
  139. /package/lib/clang/{18 → 19}/include/avxvnniintrin.h +0 -0
  140. /package/lib/clang/{18 → 19}/include/bmi2intrin.h +0 -0
  141. /package/lib/clang/{18 → 19}/include/cet.h +0 -0
  142. /package/lib/clang/{18 → 19}/include/cetintrin.h +0 -0
  143. /package/lib/clang/{18 → 19}/include/cldemoteintrin.h +0 -0
  144. /package/lib/clang/{18 → 19}/include/clflushoptintrin.h +0 -0
  145. /package/lib/clang/{18 → 19}/include/clwbintrin.h +0 -0
  146. /package/lib/clang/{18 → 19}/include/clzerointrin.h +0 -0
  147. /package/lib/clang/{18 → 19}/include/cmpccxaddintrin.h +0 -0
  148. /package/lib/clang/{18 → 19}/include/crc32intrin.h +0 -0
  149. /package/lib/clang/{18 → 19}/include/cuda_wrappers/bits/basic_string.h +0 -0
  150. /package/lib/clang/{18 → 19}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  151. /package/lib/clang/{18 → 19}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  152. /package/lib/clang/{18 → 19}/include/cuda_wrappers/cmath +0 -0
  153. /package/lib/clang/{18 → 19}/include/cuda_wrappers/complex +0 -0
  154. /package/lib/clang/{18 → 19}/include/cuda_wrappers/new +0 -0
  155. /package/lib/clang/{18 → 19}/include/enqcmdintrin.h +0 -0
  156. /package/lib/clang/{18 → 19}/include/f16cintrin.h +0 -0
  157. /package/lib/clang/{18 → 19}/include/fma4intrin.h +0 -0
  158. /package/lib/clang/{18 → 19}/include/fxsrintrin.h +0 -0
  159. /package/lib/clang/{18 → 19}/include/gfniintrin.h +0 -0
  160. /package/lib/clang/{18 → 19}/include/hexagon_circ_brev_intrinsics.h +0 -0
  161. /package/lib/clang/{18 → 19}/include/hexagon_protos.h +0 -0
  162. /package/lib/clang/{18 → 19}/include/hexagon_types.h +0 -0
  163. /package/lib/clang/{18 → 19}/include/hlsl.h +0 -0
  164. /package/lib/clang/{18 → 19}/include/hresetintrin.h +0 -0
  165. /package/lib/clang/{18 → 19}/include/htmintrin.h +0 -0
  166. /package/lib/clang/{18 → 19}/include/htmxlintrin.h +0 -0
  167. /package/lib/clang/{18 → 19}/include/hvx_hexagon_protos.h +0 -0
  168. /package/lib/clang/{18 → 19}/include/invpcidintrin.h +0 -0
  169. /package/lib/clang/{18 → 19}/include/larchintrin.h +0 -0
  170. /package/lib/clang/{18 → 19}/include/lasxintrin.h +0 -0
  171. /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/ctype.h +0 -0
  172. /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/inttypes.h +0 -0
  173. /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/stdio.h +0 -0
  174. /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/stdlib.h +0 -0
  175. /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/string.h +0 -0
  176. /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/time.h +0 -0
  177. /package/lib/clang/{18 → 19}/include/lsxintrin.h +0 -0
  178. /package/lib/clang/{18 → 19}/include/lwpintrin.h +0 -0
  179. /package/lib/clang/{18 → 19}/include/lzcntintrin.h +0 -0
  180. /package/lib/clang/{18 → 19}/include/mm_malloc.h +0 -0
  181. /package/lib/clang/{18 → 19}/include/movdirintrin.h +0 -0
  182. /package/lib/clang/{18 → 19}/include/msa.h +0 -0
  183. /package/lib/clang/{18 → 19}/include/mwaitxintrin.h +0 -0
  184. /package/lib/clang/{18 → 19}/include/nmmintrin.h +0 -0
  185. /package/lib/clang/{18 → 19}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
  186. /package/lib/clang/{18 → 19}/include/openmp_wrappers/cmath +0 -0
  187. /package/lib/clang/{18 → 19}/include/openmp_wrappers/complex +0 -0
  188. /package/lib/clang/{18 → 19}/include/openmp_wrappers/complex.h +0 -0
  189. /package/lib/clang/{18 → 19}/include/openmp_wrappers/complex_cmath.h +0 -0
  190. /package/lib/clang/{18 → 19}/include/openmp_wrappers/math.h +0 -0
  191. /package/lib/clang/{18 → 19}/include/openmp_wrappers/new +0 -0
  192. /package/lib/clang/{18 → 19}/include/pconfigintrin.h +0 -0
  193. /package/lib/clang/{18 → 19}/include/pkuintrin.h +0 -0
  194. /package/lib/clang/{18 → 19}/include/pmmintrin.h +0 -0
  195. /package/lib/clang/{18 → 19}/include/popcntintrin.h +0 -0
  196. /package/lib/clang/{18 → 19}/include/ppc_wrappers/bmi2intrin.h +0 -0
  197. /package/lib/clang/{18 → 19}/include/ppc_wrappers/bmiintrin.h +0 -0
  198. /package/lib/clang/{18 → 19}/include/ppc_wrappers/emmintrin.h +0 -0
  199. /package/lib/clang/{18 → 19}/include/ppc_wrappers/immintrin.h +0 -0
  200. /package/lib/clang/{18 → 19}/include/ppc_wrappers/mm_malloc.h +0 -0
  201. /package/lib/clang/{18 → 19}/include/ppc_wrappers/mmintrin.h +0 -0
  202. /package/lib/clang/{18 → 19}/include/ppc_wrappers/nmmintrin.h +0 -0
  203. /package/lib/clang/{18 → 19}/include/ppc_wrappers/pmmintrin.h +0 -0
  204. /package/lib/clang/{18 → 19}/include/ppc_wrappers/smmintrin.h +0 -0
  205. /package/lib/clang/{18 → 19}/include/ppc_wrappers/tmmintrin.h +0 -0
  206. /package/lib/clang/{18 → 19}/include/ppc_wrappers/x86gprintrin.h +0 -0
  207. /package/lib/clang/{18 → 19}/include/ppc_wrappers/x86intrin.h +0 -0
  208. /package/lib/clang/{18 → 19}/include/ppc_wrappers/xmmintrin.h +0 -0
  209. /package/lib/clang/{18 → 19}/include/prfchiintrin.h +0 -0
  210. /package/lib/clang/{18 → 19}/include/ptwriteintrin.h +0 -0
  211. /package/lib/clang/{18 → 19}/include/raointintrin.h +0 -0
  212. /package/lib/clang/{18 → 19}/include/rdpruintrin.h +0 -0
  213. /package/lib/clang/{18 → 19}/include/rdseedintrin.h +0 -0
  214. /package/lib/clang/{18 → 19}/include/riscv_bitmanip.h +0 -0
  215. /package/lib/clang/{18 → 19}/include/riscv_crypto.h +0 -0
  216. /package/lib/clang/{18 → 19}/include/riscv_ntlh.h +0 -0
  217. /package/lib/clang/{18 → 19}/include/rtmintrin.h +0 -0
  218. /package/lib/clang/{18 → 19}/include/s390intrin.h +0 -0
  219. /package/lib/clang/{18 → 19}/include/serializeintrin.h +0 -0
  220. /package/lib/clang/{18 → 19}/include/sgxintrin.h +0 -0
  221. /package/lib/clang/{18 → 19}/include/sha512intrin.h +0 -0
  222. /package/lib/clang/{18 → 19}/include/shaintrin.h +0 -0
  223. /package/lib/clang/{18 → 19}/include/sm3intrin.h +0 -0
  224. /package/lib/clang/{18 → 19}/include/sm4intrin.h +0 -0
  225. /package/lib/clang/{18 → 19}/include/stdckdint.h +0 -0
  226. /package/lib/clang/{18 → 19}/include/tbmintrin.h +0 -0
  227. /package/lib/clang/{18 → 19}/include/tgmath.h +0 -0
  228. /package/lib/clang/{18 → 19}/include/tsxldtrkintrin.h +0 -0
  229. /package/lib/clang/{18 → 19}/include/uintrintrin.h +0 -0
  230. /package/lib/clang/{18 → 19}/include/unwind.h +0 -0
  231. /package/lib/clang/{18 → 19}/include/usermsrintrin.h +0 -0
  232. /package/lib/clang/{18 → 19}/include/vadefs.h +0 -0
  233. /package/lib/clang/{18 → 19}/include/vaesintrin.h +0 -0
  234. /package/lib/clang/{18 → 19}/include/velintrin.h +0 -0
  235. /package/lib/clang/{18 → 19}/include/velintrin_approx.h +0 -0
  236. /package/lib/clang/{18 → 19}/include/velintrin_gen.h +0 -0
  237. /package/lib/clang/{18 → 19}/include/vpclmulqdqintrin.h +0 -0
  238. /package/lib/clang/{18 → 19}/include/waitpkgintrin.h +0 -0
  239. /package/lib/clang/{18 → 19}/include/wasm_simd128.h +0 -0
  240. /package/lib/clang/{18 → 19}/include/wbnoinvdintrin.h +0 -0
  241. /package/lib/clang/{18 → 19}/include/wmmintrin.h +0 -0
  242. /package/lib/clang/{18 → 19}/include/xopintrin.h +0 -0
  243. /package/lib/clang/{18 → 19}/include/xsavecintrin.h +0 -0
  244. /package/lib/clang/{18 → 19}/include/xsaveintrin.h +0 -0
  245. /package/lib/clang/{18 → 19}/include/xsaveoptintrin.h +0 -0
  246. /package/lib/clang/{18 → 19}/include/xsavesintrin.h +0 -0
  247. /package/lib/clang/{18 → 19}/include/xtestintrin.h +0 -0
@@ -16,7 +16,7 @@
16
16
  #define __ARM_NEON_TYPES_H
17
17
  typedef float float32_t;
18
18
  typedef __fp16 float16_t;
19
- #ifdef __aarch64__
19
+ #if defined(__aarch64__) || defined(__arm64ec__)
20
20
  typedef double float64_t;
21
21
  #endif
22
22
 
@@ -40,7 +40,7 @@ typedef __attribute__((neon_vector_type(4))) float16_t float16x4_t;
40
40
  typedef __attribute__((neon_vector_type(8))) float16_t float16x8_t;
41
41
  typedef __attribute__((neon_vector_type(2))) float32_t float32x2_t;
42
42
  typedef __attribute__((neon_vector_type(4))) float32_t float32x4_t;
43
- #ifdef __aarch64__
43
+ #if defined(__aarch64__) || defined(__arm64ec__)
44
44
  typedef __attribute__((neon_vector_type(1))) float64_t float64x1_t;
45
45
  typedef __attribute__((neon_vector_type(2))) float64_t float64x2_t;
46
46
  #endif
@@ -125,7 +125,7 @@ typedef struct float32x4x2_t {
125
125
  float32x4_t val[2];
126
126
  } float32x4x2_t;
127
127
 
128
- #ifdef __aarch64__
128
+ #if defined(__aarch64__) || defined(__arm64ec__)
129
129
  typedef struct float64x1x2_t {
130
130
  float64x1_t val[2];
131
131
  } float64x1x2_t;
@@ -215,7 +215,7 @@ typedef struct float32x4x3_t {
215
215
  float32x4_t val[3];
216
216
  } float32x4x3_t;
217
217
 
218
- #ifdef __aarch64__
218
+ #if defined(__aarch64__) || defined(__arm64ec__)
219
219
  typedef struct float64x1x3_t {
220
220
  float64x1_t val[3];
221
221
  } float64x1x3_t;
@@ -305,7 +305,7 @@ typedef struct float32x4x4_t {
305
305
  float32x4_t val[4];
306
306
  } float32x4x4_t;
307
307
 
308
- #ifdef __aarch64__
308
+ #if defined(__aarch64__) || defined(__arm64ec__)
309
309
  typedef struct float64x1x4_t {
310
310
  float64x1_t val[4];
311
311
  } float64x1x4_t;
@@ -96,8 +96,8 @@ _mm512_set_ph(_Float16 __h1, _Float16 __h2, _Float16 __h3, _Float16 __h4,
96
96
  (h5), (h4), (h3), (h2), (h1))
97
97
 
98
98
  static __inline __m512h __DEFAULT_FN_ATTRS512
99
- _mm512_set1_pch(_Float16 _Complex h) {
100
- return (__m512h)_mm512_set1_ps(__builtin_bit_cast(float, h));
99
+ _mm512_set1_pch(_Float16 _Complex __h) {
100
+ return (__m512h)_mm512_set1_ps(__builtin_bit_cast(float, __h));
101
101
  }
102
102
 
103
103
  static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_castph_ps(__m128h __a) {
@@ -282,75 +282,75 @@ _mm512_zextph256_ph512(__m256h __a) {
282
282
  #define _mm_comi_sh(A, B, pred) \
283
283
  _mm_comi_round_sh((A), (B), (pred), _MM_FROUND_CUR_DIRECTION)
284
284
 
285
- static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comieq_sh(__m128h A,
286
- __m128h B) {
287
- return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_EQ_OS,
285
+ static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comieq_sh(__m128h __A,
286
+ __m128h __B) {
287
+ return __builtin_ia32_vcomish((__v8hf)__A, (__v8hf)__B, _CMP_EQ_OS,
288
288
  _MM_FROUND_CUR_DIRECTION);
289
289
  }
290
290
 
291
- static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comilt_sh(__m128h A,
292
- __m128h B) {
293
- return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_LT_OS,
291
+ static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comilt_sh(__m128h __A,
292
+ __m128h __B) {
293
+ return __builtin_ia32_vcomish((__v8hf)__A, (__v8hf)__B, _CMP_LT_OS,
294
294
  _MM_FROUND_CUR_DIRECTION);
295
295
  }
296
296
 
297
- static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comile_sh(__m128h A,
298
- __m128h B) {
299
- return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_LE_OS,
297
+ static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comile_sh(__m128h __A,
298
+ __m128h __B) {
299
+ return __builtin_ia32_vcomish((__v8hf)__A, (__v8hf)__B, _CMP_LE_OS,
300
300
  _MM_FROUND_CUR_DIRECTION);
301
301
  }
302
302
 
303
- static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comigt_sh(__m128h A,
304
- __m128h B) {
305
- return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_GT_OS,
303
+ static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comigt_sh(__m128h __A,
304
+ __m128h __B) {
305
+ return __builtin_ia32_vcomish((__v8hf)__A, (__v8hf)__B, _CMP_GT_OS,
306
306
  _MM_FROUND_CUR_DIRECTION);
307
307
  }
308
308
 
309
- static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comige_sh(__m128h A,
310
- __m128h B) {
311
- return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_GE_OS,
309
+ static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comige_sh(__m128h __A,
310
+ __m128h __B) {
311
+ return __builtin_ia32_vcomish((__v8hf)__A, (__v8hf)__B, _CMP_GE_OS,
312
312
  _MM_FROUND_CUR_DIRECTION);
313
313
  }
314
314
 
315
- static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comineq_sh(__m128h A,
316
- __m128h B) {
317
- return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_NEQ_US,
315
+ static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comineq_sh(__m128h __A,
316
+ __m128h __B) {
317
+ return __builtin_ia32_vcomish((__v8hf)__A, (__v8hf)__B, _CMP_NEQ_US,
318
318
  _MM_FROUND_CUR_DIRECTION);
319
319
  }
320
320
 
321
- static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomieq_sh(__m128h A,
322
- __m128h B) {
323
- return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_EQ_OQ,
321
+ static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomieq_sh(__m128h __A,
322
+ __m128h __B) {
323
+ return __builtin_ia32_vcomish((__v8hf)__A, (__v8hf)__B, _CMP_EQ_OQ,
324
324
  _MM_FROUND_CUR_DIRECTION);
325
325
  }
326
326
 
327
- static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomilt_sh(__m128h A,
328
- __m128h B) {
329
- return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_LT_OQ,
327
+ static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomilt_sh(__m128h __A,
328
+ __m128h __B) {
329
+ return __builtin_ia32_vcomish((__v8hf)__A, (__v8hf)__B, _CMP_LT_OQ,
330
330
  _MM_FROUND_CUR_DIRECTION);
331
331
  }
332
332
 
333
- static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomile_sh(__m128h A,
334
- __m128h B) {
335
- return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_LE_OQ,
333
+ static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomile_sh(__m128h __A,
334
+ __m128h __B) {
335
+ return __builtin_ia32_vcomish((__v8hf)__A, (__v8hf)__B, _CMP_LE_OQ,
336
336
  _MM_FROUND_CUR_DIRECTION);
337
337
  }
338
338
 
339
- static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomigt_sh(__m128h A,
340
- __m128h B) {
341
- return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_GT_OQ,
339
+ static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomigt_sh(__m128h __A,
340
+ __m128h __B) {
341
+ return __builtin_ia32_vcomish((__v8hf)__A, (__v8hf)__B, _CMP_GT_OQ,
342
342
  _MM_FROUND_CUR_DIRECTION);
343
343
  }
344
344
 
345
- static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomige_sh(__m128h A,
346
- __m128h B) {
347
- return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_GE_OQ,
345
+ static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomige_sh(__m128h __A,
346
+ __m128h __B) {
347
+ return __builtin_ia32_vcomish((__v8hf)__A, (__v8hf)__B, _CMP_GE_OQ,
348
348
  _MM_FROUND_CUR_DIRECTION);
349
349
  }
350
350
 
351
- static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomineq_sh(__m128h A,
352
- __m128h B) {
353
- return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_NEQ_UQ,
351
+ static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomineq_sh(__m128h __A,
352
+ __m128h __B) {
353
+ return __builtin_ia32_vcomish((__v8hf)__A, (__v8hf)__B, _CMP_NEQ_UQ,
354
354
  _MM_FROUND_CUR_DIRECTION);
355
355
  }
356
356
 
@@ -207,6 +207,8 @@ _mm256_div_ps(__m256 __a, __m256 __b)
207
207
  /// Compares two 256-bit vectors of [4 x double] and returns the greater
208
208
  /// of each pair of values.
209
209
  ///
210
+ /// If either value in a comparison is NaN, returns the value from \a __b.
211
+ ///
210
212
  /// \headerfile <x86intrin.h>
211
213
  ///
212
214
  /// This intrinsic corresponds to the <c> VMAXPD </c> instruction.
@@ -226,6 +228,8 @@ _mm256_max_pd(__m256d __a, __m256d __b)
226
228
  /// Compares two 256-bit vectors of [8 x float] and returns the greater
227
229
  /// of each pair of values.
228
230
  ///
231
+ /// If either value in a comparison is NaN, returns the value from \a __b.
232
+ ///
229
233
  /// \headerfile <x86intrin.h>
230
234
  ///
231
235
  /// This intrinsic corresponds to the <c> VMAXPS </c> instruction.
@@ -245,6 +249,8 @@ _mm256_max_ps(__m256 __a, __m256 __b)
245
249
  /// Compares two 256-bit vectors of [4 x double] and returns the lesser
246
250
  /// of each pair of values.
247
251
  ///
252
+ /// If either value in a comparison is NaN, returns the value from \a __b.
253
+ ///
248
254
  /// \headerfile <x86intrin.h>
249
255
  ///
250
256
  /// This intrinsic corresponds to the <c> VMINPD </c> instruction.
@@ -264,6 +270,8 @@ _mm256_min_pd(__m256d __a, __m256d __b)
264
270
  /// Compares two 256-bit vectors of [8 x float] and returns the lesser
265
271
  /// of each pair of values.
266
272
  ///
273
+ /// If either value in a comparison is NaN, returns the value from \a __b.
274
+ ///
267
275
  /// \headerfile <x86intrin.h>
268
276
  ///
269
277
  /// This intrinsic corresponds to the <c> VMINPS </c> instruction.
@@ -832,6 +840,7 @@ _mm256_permutevar_pd(__m256d __a, __m256i __c)
832
840
 
833
841
  /// Copies the values stored in a 128-bit vector of [4 x float] as
834
842
  /// specified by the 128-bit integer vector operand.
843
+ ///
835
844
  /// \headerfile <x86intrin.h>
836
845
  ///
837
846
  /// This intrinsic corresponds to the <c> VPERMILPS </c> instruction.
@@ -1574,14 +1583,6 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1574
1583
  (__v4df)(__m256d)(b), (int)(mask)))
1575
1584
 
1576
1585
  /* Compare */
1577
- #define _CMP_EQ_OQ 0x00 /* Equal (ordered, non-signaling) */
1578
- #define _CMP_LT_OS 0x01 /* Less-than (ordered, signaling) */
1579
- #define _CMP_LE_OS 0x02 /* Less-than-or-equal (ordered, signaling) */
1580
- #define _CMP_UNORD_Q 0x03 /* Unordered (non-signaling) */
1581
- #define _CMP_NEQ_UQ 0x04 /* Not-equal (unordered, non-signaling) */
1582
- #define _CMP_NLT_US 0x05 /* Not-less-than (unordered, signaling) */
1583
- #define _CMP_NLE_US 0x06 /* Not-less-than-or-equal (unordered, signaling) */
1584
- #define _CMP_ORD_Q 0x07 /* Ordered (non-signaling) */
1585
1586
  #define _CMP_EQ_UQ 0x08 /* Equal (unordered, non-signaling) */
1586
1587
  #define _CMP_NGE_US 0x09 /* Not-greater-than-or-equal (unordered, signaling) */
1587
1588
  #define _CMP_NGT_US 0x0a /* Not-greater-than (unordered, signaling) */
@@ -1607,13 +1608,14 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1607
1608
  #define _CMP_GT_OQ 0x1e /* Greater-than (ordered, non-signaling) */
1608
1609
  #define _CMP_TRUE_US 0x1f /* True (unordered, signaling) */
1609
1610
 
1611
+ /* Below intrinsic defined in emmintrin.h can be used for AVX */
1610
1612
  /// Compares each of the corresponding double-precision values of two
1611
1613
  /// 128-bit vectors of [2 x double], using the operation specified by the
1612
1614
  /// immediate integer operand.
1613
1615
  ///
1614
- /// Returns a [2 x double] vector consisting of two doubles corresponding to
1615
- /// the two comparison results: zero if the comparison is false, and all 1's
1616
- /// if the comparison is true.
1616
+ /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
1617
+ /// If either value in a comparison is NaN, comparisons that are ordered
1618
+ /// return false, and comparisons that are unordered return true.
1617
1619
  ///
1618
1620
  /// \headerfile <x86intrin.h>
1619
1621
  ///
@@ -1663,17 +1665,16 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1663
1665
  /// 0x1E: Greater-than (ordered, non-signaling) \n
1664
1666
  /// 0x1F: True (unordered, signaling)
1665
1667
  /// \returns A 128-bit vector of [2 x double] containing the comparison results.
1666
- #define _mm_cmp_pd(a, b, c) \
1667
- ((__m128d)__builtin_ia32_cmppd((__v2df)(__m128d)(a), \
1668
- (__v2df)(__m128d)(b), (c)))
1668
+ /// \fn __m128d _mm_cmp_pd(__m128d a, __m128d b, const int c)
1669
1669
 
1670
+ /* Below intrinsic defined in xmmintrin.h can be used for AVX */
1670
1671
  /// Compares each of the corresponding values of two 128-bit vectors of
1671
1672
  /// [4 x float], using the operation specified by the immediate integer
1672
1673
  /// operand.
1673
1674
  ///
1674
- /// Returns a [4 x float] vector consisting of four floats corresponding to
1675
- /// the four comparison results: zero if the comparison is false, and all 1's
1676
- /// if the comparison is true.
1675
+ /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
1676
+ /// If either value in a comparison is NaN, comparisons that are ordered
1677
+ /// return false, and comparisons that are unordered return true.
1677
1678
  ///
1678
1679
  /// \headerfile <x86intrin.h>
1679
1680
  ///
@@ -1723,17 +1724,15 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1723
1724
  /// 0x1E: Greater-than (ordered, non-signaling) \n
1724
1725
  /// 0x1F: True (unordered, signaling)
1725
1726
  /// \returns A 128-bit vector of [4 x float] containing the comparison results.
1726
- #define _mm_cmp_ps(a, b, c) \
1727
- ((__m128)__builtin_ia32_cmpps((__v4sf)(__m128)(a), \
1728
- (__v4sf)(__m128)(b), (c)))
1727
+ /// \fn __m128 _mm_cmp_ps(__m128 a, __m128 b, const int c)
1729
1728
 
1730
1729
  /// Compares each of the corresponding double-precision values of two
1731
1730
  /// 256-bit vectors of [4 x double], using the operation specified by the
1732
1731
  /// immediate integer operand.
1733
1732
  ///
1734
- /// Returns a [4 x double] vector consisting of four doubles corresponding to
1735
- /// the four comparison results: zero if the comparison is false, and all 1's
1736
- /// if the comparison is true.
1733
+ /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
1734
+ /// If either value in a comparison is NaN, comparisons that are ordered
1735
+ /// return false, and comparisons that are unordered return true.
1737
1736
  ///
1738
1737
  /// \headerfile <x86intrin.h>
1739
1738
  ///
@@ -1791,9 +1790,9 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1791
1790
  /// [8 x float], using the operation specified by the immediate integer
1792
1791
  /// operand.
1793
1792
  ///
1794
- /// Returns a [8 x float] vector consisting of eight floats corresponding to
1795
- /// the eight comparison results: zero if the comparison is false, and all
1796
- /// 1's if the comparison is true.
1793
+ /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
1794
+ /// If either value in a comparison is NaN, comparisons that are ordered
1795
+ /// return false, and comparisons that are unordered return true.
1797
1796
  ///
1798
1797
  /// \headerfile <x86intrin.h>
1799
1798
  ///
@@ -1847,12 +1846,14 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1847
1846
  ((__m256)__builtin_ia32_cmpps256((__v8sf)(__m256)(a), \
1848
1847
  (__v8sf)(__m256)(b), (c)))
1849
1848
 
1849
+ /* Below intrinsic defined in emmintrin.h can be used for AVX */
1850
1850
  /// Compares each of the corresponding scalar double-precision values of
1851
1851
  /// two 128-bit vectors of [2 x double], using the operation specified by the
1852
1852
  /// immediate integer operand.
1853
1853
  ///
1854
- /// If the result is true, all 64 bits of the destination vector are set;
1855
- /// otherwise they are cleared.
1854
+ /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
1855
+ /// If either value in a comparison is NaN, comparisons that are ordered
1856
+ /// return false, and comparisons that are unordered return true.
1856
1857
  ///
1857
1858
  /// \headerfile <x86intrin.h>
1858
1859
  ///
@@ -1902,16 +1903,16 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1902
1903
  /// 0x1E: Greater-than (ordered, non-signaling) \n
1903
1904
  /// 0x1F: True (unordered, signaling)
1904
1905
  /// \returns A 128-bit vector of [2 x double] containing the comparison results.
1905
- #define _mm_cmp_sd(a, b, c) \
1906
- ((__m128d)__builtin_ia32_cmpsd((__v2df)(__m128d)(a), \
1907
- (__v2df)(__m128d)(b), (c)))
1906
+ /// \fn __m128d _mm_cmp_sd(__m128d a, __m128d b, const int c)
1908
1907
 
1908
+ /* Below intrinsic defined in xmmintrin.h can be used for AVX */
1909
1909
  /// Compares each of the corresponding scalar values of two 128-bit
1910
1910
  /// vectors of [4 x float], using the operation specified by the immediate
1911
1911
  /// integer operand.
1912
1912
  ///
1913
- /// If the result is true, all 32 bits of the destination vector are set;
1914
- /// otherwise they are cleared.
1913
+ /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
1914
+ /// If either value in a comparison is NaN, comparisons that are ordered
1915
+ /// return false, and comparisons that are unordered return true.
1915
1916
  ///
1916
1917
  /// \headerfile <x86intrin.h>
1917
1918
  ///
@@ -1961,9 +1962,7 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1961
1962
  /// 0x1E: Greater-than (ordered, non-signaling) \n
1962
1963
  /// 0x1F: True (unordered, signaling)
1963
1964
  /// \returns A 128-bit vector of [4 x float] containing the comparison results.
1964
- #define _mm_cmp_ss(a, b, c) \
1965
- ((__m128)__builtin_ia32_cmpss((__v4sf)(__m128)(a), \
1966
- (__v4sf)(__m128)(b), (c)))
1965
+ /// \fn __m128 _mm_cmp_ss(__m128 a, __m128 b, const int c)
1967
1966
 
1968
1967
  /// Takes a [8 x i32] vector and returns the vector element value
1969
1968
  /// indexed by the immediate constant operand.
@@ -2213,6 +2212,10 @@ _mm256_cvtpd_ps(__m256d __a)
2213
2212
 
2214
2213
  /// Converts a vector of [8 x float] into a vector of [8 x i32].
2215
2214
  ///
2215
+ /// If a converted value does not fit in a 32-bit integer, raises a
2216
+ /// floating-point invalid exception. If the exception is masked, returns
2217
+ /// the most negative integer.
2218
+ ///
2216
2219
  /// \headerfile <x86intrin.h>
2217
2220
  ///
2218
2221
  /// This intrinsic corresponds to the <c> VCVTPS2DQ </c> instruction.
@@ -2242,9 +2245,13 @@ _mm256_cvtps_pd(__m128 __a)
2242
2245
  return (__m256d)__builtin_convertvector((__v4sf)__a, __v4df);
2243
2246
  }
2244
2247
 
2245
- /// Converts a 256-bit vector of [4 x double] into a 128-bit vector of [4
2246
- /// x i32], truncating the result by rounding towards zero when it is
2247
- /// inexact.
2248
+ /// Converts a 256-bit vector of [4 x double] into four signed truncated
2249
+ /// (rounded toward zero) 32-bit integers returned in a 128-bit vector of
2250
+ /// [4 x i32].
2251
+ ///
2252
+ /// If a converted value does not fit in a 32-bit integer, raises a
2253
+ /// floating-point invalid exception. If the exception is masked, returns
2254
+ /// the most negative integer.
2248
2255
  ///
2249
2256
  /// \headerfile <x86intrin.h>
2250
2257
  ///
@@ -2259,9 +2266,12 @@ _mm256_cvttpd_epi32(__m256d __a)
2259
2266
  return (__m128i)__builtin_ia32_cvttpd2dq256((__v4df) __a);
2260
2267
  }
2261
2268
 
2262
- /// Converts a 256-bit vector of [4 x double] into a 128-bit vector of [4
2263
- /// x i32]. When a conversion is inexact, the value returned is rounded
2264
- /// according to the rounding control bits in the MXCSR register.
2269
+ /// Converts a 256-bit vector of [4 x double] into a 128-bit vector of
2270
+ /// [4 x i32].
2271
+ ///
2272
+ /// If a converted value does not fit in a 32-bit integer, raises a
2273
+ /// floating-point invalid exception. If the exception is masked, returns
2274
+ /// the most negative integer.
2265
2275
  ///
2266
2276
  /// \headerfile <x86intrin.h>
2267
2277
  ///
@@ -2276,8 +2286,12 @@ _mm256_cvtpd_epi32(__m256d __a)
2276
2286
  return (__m128i)__builtin_ia32_cvtpd2dq256((__v4df) __a);
2277
2287
  }
2278
2288
 
2279
- /// Converts a vector of [8 x float] into a vector of [8 x i32],
2280
- /// truncating the result by rounding towards zero when it is inexact.
2289
+ /// Converts a vector of [8 x float] into eight signed truncated (rounded
2290
+ /// toward zero) 32-bit integers returned in a vector of [8 x i32].
2291
+ ///
2292
+ /// If a converted value does not fit in a 32-bit integer, raises a
2293
+ /// floating-point invalid exception. If the exception is masked, returns
2294
+ /// the most negative integer.
2281
2295
  ///
2282
2296
  /// \headerfile <x86intrin.h>
2283
2297
  ///
@@ -161,8 +161,7 @@ _mm_tzcnt_64(unsigned long long __X)
161
161
 
162
162
  #undef __RELAXED_FN_ATTRS
163
163
 
164
- #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
165
- defined(__BMI__)
164
+ #if !defined(__SCE__) || __has_feature(modules) || defined(__BMI__)
166
165
 
167
166
  /* Define the default attributes for the functions in this file. */
168
167
  #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("bmi")))
@@ -610,7 +609,6 @@ __blsr_u64(unsigned long long __X)
610
609
 
611
610
  #undef __DEFAULT_FN_ATTRS
612
611
 
613
- #endif /* !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) \
614
- || defined(__BMI__) */
612
+ #endif /* !defined(__SCE__) || __has_feature(modules) || defined(__BMI__) */
615
613
 
616
614
  #endif /* __BMIINTRIN_H */
@@ -13,4 +13,7 @@
13
13
  #ifndef __BUILTINS_H
14
14
  #define __BUILTINS_H
15
15
 
16
+ #if defined(__MVS__) && __has_include_next(<builtins.h>)
17
+ #include_next <builtins.h>
18
+ #endif /* __MVS__ */
16
19
  #endif /* __BUILTINS_H */
@@ -10,7 +10,7 @@
10
10
  #ifndef __CPUID_H
11
11
  #define __CPUID_H
12
12
 
13
- #if !(__x86_64__ || __i386__)
13
+ #if !defined(__x86_64__) && !defined(__i386__)
14
14
  #error this header is for x86 only
15
15
  #endif
16
16
 
@@ -200,6 +200,9 @@
200
200
  #define bit_AMXINT8 0x02000000
201
201
 
202
202
  /* Features in %eax for leaf 7 sub-leaf 1 */
203
+ #define bit_SHA512 0x00000001
204
+ #define bit_SM3 0x00000002
205
+ #define bit_SM4 0x00000004
203
206
  #define bit_RAOINT 0x00000008
204
207
  #define bit_AVXVNNI 0x00000010
205
208
  #define bit_AVX512BF16 0x00000020
@@ -211,7 +214,12 @@
211
214
  /* Features in %edx for leaf 7 sub-leaf 1 */
212
215
  #define bit_AVXVNNIINT8 0x00000010
213
216
  #define bit_AVXNECONVERT 0x00000020
217
+ #define bit_AMXCOMPLEX 0x00000100
218
+ #define bit_AVXVNNIINT16 0x00000400
214
219
  #define bit_PREFETCHI 0x00004000
220
+ #define bit_USERMSR 0x00008000
221
+ #define bit_AVX10 0x00080000
222
+ #define bit_APXF 0x00200000
215
223
 
216
224
  /* Features in %eax for leaf 13 sub-leaf 1 */
217
225
  #define bit_XSAVEOPT 0x00000001
@@ -244,8 +252,11 @@
244
252
  #define bit_RDPRU 0x00000010
245
253
  #define bit_WBNOINVD 0x00000200
246
254
 
255
+ /* Features in %ebx for leaf 0x24 */
256
+ #define bit_AVX10_256 0x00020000
257
+ #define bit_AVX10_512 0x00040000
247
258
 
248
- #if __i386__
259
+ #ifdef __i386__
249
260
  #define __cpuid(__leaf, __eax, __ebx, __ecx, __edx) \
250
261
  __asm("cpuid" : "=a"(__eax), "=b" (__ebx), "=c"(__ecx), "=d"(__edx) \
251
262
  : "0"(__leaf))
@@ -274,7 +285,7 @@ static __inline unsigned int __get_cpuid_max (unsigned int __leaf,
274
285
  unsigned int *__sig)
275
286
  {
276
287
  unsigned int __eax, __ebx, __ecx, __edx;
277
- #if __i386__
288
+ #ifdef __i386__
278
289
  int __cpuid_supported;
279
290
 
280
291
  __asm(" pushfl\n"
@@ -328,4 +339,13 @@ static __inline int __get_cpuid_count (unsigned int __leaf,
328
339
  return 1;
329
340
  }
330
341
 
342
+ // In some configurations, __cpuidex is defined as a builtin (primarily
343
+ // -fms-extensions) which will conflict with the __cpuidex definition below.
344
+ #if !(__has_builtin(__cpuidex))
345
+ static __inline void __cpuidex(int __cpu_info[4], int __leaf, int __subleaf) {
346
+ __cpuid_count(__leaf, __subleaf, __cpu_info[0], __cpu_info[1], __cpu_info[2],
347
+ __cpu_info[3]);
348
+ }
349
+ #endif
350
+
331
351
  #endif /* __CPUID_H */
@@ -99,7 +99,7 @@ template <class __T>
99
99
  __attribute__((enable_if(true, "")))
100
100
  inline _CPP14_CONSTEXPR __host__ __device__ const __T &
101
101
  min(const __T &__a, const __T &__b) {
102
- return __a < __b ? __a : __b;
102
+ return __b < __a ? __b : __a;
103
103
  }
104
104
 
105
105
  #pragma pop_macro("_CPP14_CONSTEXPR")