@cpp-linter/clang-tidy-darwin-x64 17.0.6 → 18.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 (242) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy +2 -2
  3. package/lib/clang/{17 → 18}/include/__clang_cuda_device_functions.h +2 -2
  4. package/lib/clang/{17 → 18}/include/__clang_cuda_libdevice_declares.h +2 -2
  5. package/lib/clang/{17 → 18}/include/__clang_cuda_math.h +2 -2
  6. package/lib/clang/{17 → 18}/include/__clang_cuda_runtime_wrapper.h +2 -2
  7. package/lib/clang/{17 → 18}/include/__clang_hip_math.h +192 -171
  8. package/lib/clang/{17 → 18}/include/__clang_hip_runtime_wrapper.h +34 -26
  9. package/lib/clang/18/include/__stdarg___gnuc_va_list.h +13 -0
  10. package/lib/clang/18/include/__stdarg___va_copy.h +12 -0
  11. package/lib/clang/18/include/__stdarg_va_arg.h +22 -0
  12. package/lib/clang/18/include/__stdarg_va_copy.h +12 -0
  13. package/lib/clang/18/include/__stdarg_va_list.h +13 -0
  14. package/lib/clang/{17 → 18}/include/__stddef_max_align_t.h +1 -1
  15. package/lib/clang/18/include/__stddef_null.h +29 -0
  16. package/lib/clang/18/include/__stddef_nullptr_t.h +29 -0
  17. package/lib/clang/18/include/__stddef_offsetof.h +17 -0
  18. package/lib/clang/18/include/__stddef_ptrdiff_t.h +20 -0
  19. package/lib/clang/18/include/__stddef_rsize_t.h +20 -0
  20. package/lib/clang/18/include/__stddef_size_t.h +20 -0
  21. package/lib/clang/18/include/__stddef_unreachable.h +21 -0
  22. package/lib/clang/18/include/__stddef_wchar_t.h +28 -0
  23. package/lib/clang/18/include/__stddef_wint_t.h +15 -0
  24. package/lib/clang/{17/include/adxintrin.h → 18/include/adcintrin.h} +27 -94
  25. package/lib/clang/18/include/adxintrin.h +102 -0
  26. package/lib/clang/{17 → 18}/include/altivec.h +31 -12
  27. package/lib/clang/{17 → 18}/include/ammintrin.h +4 -4
  28. package/lib/clang/{17 → 18}/include/arm_acle.h +111 -31
  29. package/lib/clang/{17 → 18}/include/arm_neon.h +85 -327
  30. package/lib/clang/18/include/arm_sme.h +2412 -0
  31. package/lib/clang/{17 → 18}/include/arm_sve.h +7386 -351
  32. package/lib/clang/18/include/arm_vector_types.h +345 -0
  33. package/lib/clang/{17 → 18}/include/avx2intrin.h +24 -3
  34. package/lib/clang/{17 → 18}/include/avx512bf16intrin.h +3 -2
  35. package/lib/clang/{17 → 18}/include/avx512bitalgintrin.h +4 -1
  36. package/lib/clang/{17 → 18}/include/avx512bwintrin.h +28 -38
  37. package/lib/clang/{17 → 18}/include/avx512cdintrin.h +3 -1
  38. package/lib/clang/{17 → 18}/include/avx512dqintrin.h +4 -2
  39. package/lib/clang/{17 → 18}/include/avx512fintrin.h +7 -3
  40. package/lib/clang/{17 → 18}/include/avx512fp16intrin.h +6 -4
  41. package/lib/clang/{17 → 18}/include/avx512ifmaintrin.h +3 -1
  42. package/lib/clang/{17 → 18}/include/avx512ifmavlintrin.h +8 -2
  43. package/lib/clang/{17 → 18}/include/avx512pfintrin.h +0 -5
  44. package/lib/clang/{17 → 18}/include/avx512vbmi2intrin.h +1 -1
  45. package/lib/clang/{17 → 18}/include/avx512vbmiintrin.h +3 -2
  46. package/lib/clang/{17 → 18}/include/avx512vbmivlintrin.h +8 -3
  47. package/lib/clang/{17 → 18}/include/avx512vlbf16intrin.h +8 -6
  48. package/lib/clang/{17 → 18}/include/avx512vlbitalgintrin.h +8 -2
  49. package/lib/clang/{17 → 18}/include/avx512vlbwintrin.h +8 -2
  50. package/lib/clang/{17 → 18}/include/avx512vlcdintrin.h +8 -3
  51. package/lib/clang/{17 → 18}/include/avx512vldqintrin.h +8 -2
  52. package/lib/clang/{17 → 18}/include/avx512vlfp16intrin.h +2 -2
  53. package/lib/clang/{17 → 18}/include/avx512vlintrin.h +8 -2
  54. package/lib/clang/{17 → 18}/include/avx512vlvbmi2intrin.h +8 -2
  55. package/lib/clang/{17 → 18}/include/avx512vlvnniintrin.h +8 -2
  56. package/lib/clang/{17 → 18}/include/avx512vlvp2intersectintrin.h +6 -4
  57. package/lib/clang/{17 → 18}/include/avx512vnniintrin.h +3 -2
  58. package/lib/clang/{17 → 18}/include/avx512vp2intersectintrin.h +3 -2
  59. package/lib/clang/{17 → 18}/include/avx512vpopcntdqintrin.h +3 -1
  60. package/lib/clang/{17 → 18}/include/avx512vpopcntdqvlintrin.h +6 -2
  61. package/lib/clang/{17 → 18}/include/avxintrin.h +9 -5
  62. package/lib/clang/{17 → 18}/include/bmiintrin.h +231 -46
  63. package/lib/clang/{17 → 18}/include/emmintrin.h +10 -10
  64. package/lib/clang/{17 → 18}/include/gfniintrin.h +23 -6
  65. package/lib/clang/18/include/hlsl/hlsl_intrinsics.h +624 -0
  66. package/lib/clang/18/include/ia32intrin.h +863 -0
  67. package/lib/clang/{17 → 18}/include/immintrin.h +66 -3
  68. package/lib/clang/{17 → 18}/include/intrin.h +16 -0
  69. package/lib/clang/{17 → 18}/include/larchintrin.h +13 -1
  70. package/lib/clang/18/include/lasxintrin.h +3884 -0
  71. package/lib/clang/{17 → 18}/include/limits.h +2 -4
  72. package/lib/clang/{17/include/llvm_libc_wrappers/stdio.h → 18/include/llvm_libc_wrappers/assert.h} +7 -7
  73. package/lib/clang/{17 → 18}/include/llvm_libc_wrappers/ctype.h +17 -0
  74. package/lib/clang/18/include/llvm_libc_wrappers/stdio.h +80 -0
  75. package/lib/clang/{17 → 18}/include/llvm_libc_wrappers/stdlib.h +4 -1
  76. package/lib/clang/18/include/llvm_libc_wrappers/string.h +96 -0
  77. package/lib/clang/{17/include/llvm_libc_wrappers/string.h → 18/include/llvm_libc_wrappers/time.h} +9 -12
  78. package/lib/clang/18/include/lsxintrin.h +3750 -0
  79. package/lib/clang/{17 → 18}/include/mmintrin.h +7 -5
  80. package/lib/clang/{17 → 18}/include/module.modulemap +155 -2
  81. package/lib/clang/{17 → 18}/include/opencl-c-base.h +5 -0
  82. package/lib/clang/{17 → 18}/include/openmp_wrappers/cmath +1 -1
  83. package/lib/clang/{17 → 18}/include/pmmintrin.h +3 -2
  84. package/lib/clang/18/include/ppc_wrappers/nmmintrin.h +26 -0
  85. package/lib/clang/{17 → 18}/include/ppc_wrappers/smmintrin.h +35 -15
  86. package/lib/clang/18/include/riscv_bitmanip.h +195 -0
  87. package/lib/clang/18/include/riscv_crypto.h +170 -0
  88. package/lib/clang/{17 → 18}/include/riscv_ntlh.h +3 -5
  89. package/lib/clang/{17 → 18}/include/riscv_vector.h +31 -0
  90. package/lib/clang/{17 → 18}/include/smmintrin.h +3 -3
  91. package/lib/clang/{17 → 18}/include/stdalign.h +1 -3
  92. package/lib/clang/18/include/stdarg.h +79 -0
  93. package/lib/clang/{17 → 18}/include/stdatomic.h +3 -5
  94. package/lib/clang/18/include/stdckdint.h +42 -0
  95. package/lib/clang/18/include/stddef.h +123 -0
  96. package/lib/clang/{17 → 18}/include/stdint.h +19 -48
  97. package/lib/clang/{17 → 18}/include/stdnoreturn.h +2 -2
  98. package/lib/clang/{17 → 18}/include/tmmintrin.h +7 -2
  99. package/lib/clang/18/include/usermsrintrin.h +51 -0
  100. package/lib/clang/{17 → 18}/include/vaesintrin.h +4 -2
  101. package/lib/clang/{17 → 18}/include/vecintrin.h +217 -199
  102. package/lib/clang/{17 → 18}/include/x86gprintrin.h +5 -0
  103. package/lib/clang/{17 → 18}/include/xmmintrin.h +9 -5
  104. package/package.json +6 -6
  105. package/lib/clang/17/include/arm_sme_draft_spec_subject_to_change.h +0 -642
  106. package/lib/clang/17/include/hlsl/hlsl_intrinsics.h +0 -480
  107. package/lib/clang/17/include/ia32intrin.h +0 -441
  108. package/lib/clang/17/include/stdarg.h +0 -51
  109. package/lib/clang/17/include/stddef.h +0 -133
  110. /package/lib/clang/{17 → 18}/include/__clang_cuda_builtin_vars.h +0 -0
  111. /package/lib/clang/{17 → 18}/include/__clang_cuda_cmath.h +0 -0
  112. /package/lib/clang/{17 → 18}/include/__clang_cuda_complex_builtins.h +0 -0
  113. /package/lib/clang/{17 → 18}/include/__clang_cuda_intrinsics.h +0 -0
  114. /package/lib/clang/{17 → 18}/include/__clang_cuda_math_forward_declares.h +0 -0
  115. /package/lib/clang/{17 → 18}/include/__clang_cuda_texture_intrinsics.h +0 -0
  116. /package/lib/clang/{17 → 18}/include/__clang_hip_cmath.h +0 -0
  117. /package/lib/clang/{17 → 18}/include/__clang_hip_libdevice_declares.h +0 -0
  118. /package/lib/clang/{17 → 18}/include/__clang_hip_stdlib.h +0 -0
  119. /package/lib/clang/{17 → 18}/include/__wmmintrin_aes.h +0 -0
  120. /package/lib/clang/{17 → 18}/include/__wmmintrin_pclmul.h +0 -0
  121. /package/lib/clang/{17 → 18}/include/amxcomplexintrin.h +0 -0
  122. /package/lib/clang/{17 → 18}/include/amxfp16intrin.h +0 -0
  123. /package/lib/clang/{17 → 18}/include/amxintrin.h +0 -0
  124. /package/lib/clang/{17 → 18}/include/arm64intr.h +0 -0
  125. /package/lib/clang/{17 → 18}/include/arm_bf16.h +0 -0
  126. /package/lib/clang/{17 → 18}/include/arm_cde.h +0 -0
  127. /package/lib/clang/{17 → 18}/include/arm_cmse.h +0 -0
  128. /package/lib/clang/{17 → 18}/include/arm_fp16.h +0 -0
  129. /package/lib/clang/{17 → 18}/include/arm_mve.h +0 -0
  130. /package/lib/clang/{17 → 18}/include/arm_neon_sve_bridge.h +0 -0
  131. /package/lib/clang/{17 → 18}/include/armintr.h +0 -0
  132. /package/lib/clang/{17 → 18}/include/avx512erintrin.h +0 -0
  133. /package/lib/clang/{17 → 18}/include/avxifmaintrin.h +0 -0
  134. /package/lib/clang/{17 → 18}/include/avxneconvertintrin.h +0 -0
  135. /package/lib/clang/{17 → 18}/include/avxvnniint16intrin.h +0 -0
  136. /package/lib/clang/{17 → 18}/include/avxvnniint8intrin.h +0 -0
  137. /package/lib/clang/{17 → 18}/include/avxvnniintrin.h +0 -0
  138. /package/lib/clang/{17 → 18}/include/bmi2intrin.h +0 -0
  139. /package/lib/clang/{17 → 18}/include/builtins.h +0 -0
  140. /package/lib/clang/{17 → 18}/include/cet.h +0 -0
  141. /package/lib/clang/{17 → 18}/include/cetintrin.h +0 -0
  142. /package/lib/clang/{17 → 18}/include/cldemoteintrin.h +0 -0
  143. /package/lib/clang/{17 → 18}/include/clflushoptintrin.h +0 -0
  144. /package/lib/clang/{17 → 18}/include/clwbintrin.h +0 -0
  145. /package/lib/clang/{17 → 18}/include/clzerointrin.h +0 -0
  146. /package/lib/clang/{17 → 18}/include/cmpccxaddintrin.h +0 -0
  147. /package/lib/clang/{17 → 18}/include/cpuid.h +0 -0
  148. /package/lib/clang/{17 → 18}/include/crc32intrin.h +0 -0
  149. /package/lib/clang/{17 → 18}/include/cuda_wrappers/algorithm +0 -0
  150. /package/lib/clang/{17 → 18}/include/cuda_wrappers/bits/basic_string.h +0 -0
  151. /package/lib/clang/{17 → 18}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  152. /package/lib/clang/{17 → 18}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  153. /package/lib/clang/{17 → 18}/include/cuda_wrappers/cmath +0 -0
  154. /package/lib/clang/{17 → 18}/include/cuda_wrappers/complex +0 -0
  155. /package/lib/clang/{17 → 18}/include/cuda_wrappers/new +0 -0
  156. /package/lib/clang/{17 → 18}/include/enqcmdintrin.h +0 -0
  157. /package/lib/clang/{17 → 18}/include/f16cintrin.h +0 -0
  158. /package/lib/clang/{17 → 18}/include/float.h +0 -0
  159. /package/lib/clang/{17 → 18}/include/fma4intrin.h +0 -0
  160. /package/lib/clang/{17 → 18}/include/fmaintrin.h +0 -0
  161. /package/lib/clang/{17 → 18}/include/fxsrintrin.h +0 -0
  162. /package/lib/clang/{17 → 18}/include/hexagon_circ_brev_intrinsics.h +0 -0
  163. /package/lib/clang/{17 → 18}/include/hexagon_protos.h +0 -0
  164. /package/lib/clang/{17 → 18}/include/hexagon_types.h +0 -0
  165. /package/lib/clang/{17 → 18}/include/hlsl/hlsl_basic_types.h +0 -0
  166. /package/lib/clang/{17 → 18}/include/hlsl.h +0 -0
  167. /package/lib/clang/{17 → 18}/include/hresetintrin.h +0 -0
  168. /package/lib/clang/{17 → 18}/include/htmintrin.h +0 -0
  169. /package/lib/clang/{17 → 18}/include/htmxlintrin.h +0 -0
  170. /package/lib/clang/{17 → 18}/include/hvx_hexagon_protos.h +0 -0
  171. /package/lib/clang/{17 → 18}/include/inttypes.h +0 -0
  172. /package/lib/clang/{17 → 18}/include/invpcidintrin.h +0 -0
  173. /package/lib/clang/{17 → 18}/include/iso646.h +0 -0
  174. /package/lib/clang/{17 → 18}/include/keylockerintrin.h +0 -0
  175. /package/lib/clang/{17 → 18}/include/llvm_libc_wrappers/inttypes.h +0 -0
  176. /package/lib/clang/{17 → 18}/include/lwpintrin.h +0 -0
  177. /package/lib/clang/{17 → 18}/include/lzcntintrin.h +0 -0
  178. /package/lib/clang/{17 → 18}/include/mm3dnow.h +0 -0
  179. /package/lib/clang/{17 → 18}/include/mm_malloc.h +0 -0
  180. /package/lib/clang/{17 → 18}/include/movdirintrin.h +0 -0
  181. /package/lib/clang/{17 → 18}/include/msa.h +0 -0
  182. /package/lib/clang/{17 → 18}/include/mwaitxintrin.h +0 -0
  183. /package/lib/clang/{17 → 18}/include/nmmintrin.h +0 -0
  184. /package/lib/clang/{17 → 18}/include/opencl-c.h +0 -0
  185. /package/lib/clang/{17 → 18}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
  186. /package/lib/clang/{17 → 18}/include/openmp_wrappers/complex +0 -0
  187. /package/lib/clang/{17 → 18}/include/openmp_wrappers/complex.h +0 -0
  188. /package/lib/clang/{17 → 18}/include/openmp_wrappers/complex_cmath.h +0 -0
  189. /package/lib/clang/{17 → 18}/include/openmp_wrappers/math.h +0 -0
  190. /package/lib/clang/{17 → 18}/include/openmp_wrappers/new +0 -0
  191. /package/lib/clang/{17 → 18}/include/pconfigintrin.h +0 -0
  192. /package/lib/clang/{17 → 18}/include/pkuintrin.h +0 -0
  193. /package/lib/clang/{17 → 18}/include/popcntintrin.h +0 -0
  194. /package/lib/clang/{17 → 18}/include/ppc_wrappers/bmi2intrin.h +0 -0
  195. /package/lib/clang/{17 → 18}/include/ppc_wrappers/bmiintrin.h +0 -0
  196. /package/lib/clang/{17 → 18}/include/ppc_wrappers/emmintrin.h +0 -0
  197. /package/lib/clang/{17 → 18}/include/ppc_wrappers/immintrin.h +0 -0
  198. /package/lib/clang/{17 → 18}/include/ppc_wrappers/mm_malloc.h +0 -0
  199. /package/lib/clang/{17 → 18}/include/ppc_wrappers/mmintrin.h +0 -0
  200. /package/lib/clang/{17 → 18}/include/ppc_wrappers/pmmintrin.h +0 -0
  201. /package/lib/clang/{17 → 18}/include/ppc_wrappers/tmmintrin.h +0 -0
  202. /package/lib/clang/{17 → 18}/include/ppc_wrappers/x86gprintrin.h +0 -0
  203. /package/lib/clang/{17 → 18}/include/ppc_wrappers/x86intrin.h +0 -0
  204. /package/lib/clang/{17 → 18}/include/ppc_wrappers/xmmintrin.h +0 -0
  205. /package/lib/clang/{17 → 18}/include/prfchiintrin.h +0 -0
  206. /package/lib/clang/{17 → 18}/include/prfchwintrin.h +0 -0
  207. /package/lib/clang/{17 → 18}/include/ptwriteintrin.h +0 -0
  208. /package/lib/clang/{17 → 18}/include/raointintrin.h +0 -0
  209. /package/lib/clang/{17 → 18}/include/rdpruintrin.h +0 -0
  210. /package/lib/clang/{17 → 18}/include/rdseedintrin.h +0 -0
  211. /package/lib/clang/{17 → 18}/include/rtmintrin.h +0 -0
  212. /package/lib/clang/{17 → 18}/include/s390intrin.h +0 -0
  213. /package/lib/clang/{17 → 18}/include/serializeintrin.h +0 -0
  214. /package/lib/clang/{17 → 18}/include/sgxintrin.h +0 -0
  215. /package/lib/clang/{17 → 18}/include/sha512intrin.h +0 -0
  216. /package/lib/clang/{17 → 18}/include/shaintrin.h +0 -0
  217. /package/lib/clang/{17 → 18}/include/sifive_vector.h +0 -0
  218. /package/lib/clang/{17 → 18}/include/sm3intrin.h +0 -0
  219. /package/lib/clang/{17 → 18}/include/sm4intrin.h +0 -0
  220. /package/lib/clang/{17 → 18}/include/stdbool.h +0 -0
  221. /package/lib/clang/{17 → 18}/include/tbmintrin.h +0 -0
  222. /package/lib/clang/{17 → 18}/include/tgmath.h +0 -0
  223. /package/lib/clang/{17 → 18}/include/tsxldtrkintrin.h +0 -0
  224. /package/lib/clang/{17 → 18}/include/uintrintrin.h +0 -0
  225. /package/lib/clang/{17 → 18}/include/unwind.h +0 -0
  226. /package/lib/clang/{17 → 18}/include/vadefs.h +0 -0
  227. /package/lib/clang/{17 → 18}/include/varargs.h +0 -0
  228. /package/lib/clang/{17 → 18}/include/velintrin.h +0 -0
  229. /package/lib/clang/{17 → 18}/include/velintrin_approx.h +0 -0
  230. /package/lib/clang/{17 → 18}/include/velintrin_gen.h +0 -0
  231. /package/lib/clang/{17 → 18}/include/vpclmulqdqintrin.h +0 -0
  232. /package/lib/clang/{17 → 18}/include/waitpkgintrin.h +0 -0
  233. /package/lib/clang/{17 → 18}/include/wasm_simd128.h +0 -0
  234. /package/lib/clang/{17 → 18}/include/wbnoinvdintrin.h +0 -0
  235. /package/lib/clang/{17 → 18}/include/wmmintrin.h +0 -0
  236. /package/lib/clang/{17 → 18}/include/x86intrin.h +0 -0
  237. /package/lib/clang/{17 → 18}/include/xopintrin.h +0 -0
  238. /package/lib/clang/{17 → 18}/include/xsavecintrin.h +0 -0
  239. /package/lib/clang/{17 → 18}/include/xsaveintrin.h +0 -0
  240. /package/lib/clang/{17 → 18}/include/xsaveoptintrin.h +0 -0
  241. /package/lib/clang/{17 → 18}/include/xsavesintrin.h +0 -0
  242. /package/lib/clang/{17 → 18}/include/xtestintrin.h +0 -0
@@ -19,18 +19,17 @@
19
19
  to use it as a potentially faster version of BSF. */
20
20
  #define __RELAXED_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
21
21
 
22
- #define _tzcnt_u16(a) (__tzcnt_u16((a)))
23
-
24
22
  /// Counts the number of trailing zero bits in the operand.
25
23
  ///
26
24
  /// \headerfile <x86intrin.h>
27
25
  ///
28
- /// This intrinsic corresponds to the <c> TZCNT </c> instruction.
26
+ /// This intrinsic corresponds to the \c TZCNT instruction.
29
27
  ///
30
28
  /// \param __X
31
29
  /// An unsigned 16-bit integer whose trailing zeros are to be counted.
32
30
  /// \returns An unsigned 16-bit integer containing the number of trailing zero
33
31
  /// bits in the operand.
32
+ /// \see _tzcnt_u16
34
33
  static __inline__ unsigned short __RELAXED_FN_ATTRS
35
34
  __tzcnt_u16(unsigned short __X)
36
35
  {
@@ -41,13 +40,30 @@ __tzcnt_u16(unsigned short __X)
41
40
  ///
42
41
  /// \headerfile <x86intrin.h>
43
42
  ///
44
- /// This intrinsic corresponds to the <c> TZCNT </c> instruction.
43
+ /// \code
44
+ /// unsigned short _tzcnt_u16(unsigned short __X);
45
+ /// \endcode
46
+ ///
47
+ /// This intrinsic corresponds to the \c TZCNT instruction.
48
+ ///
49
+ /// \param __X
50
+ /// An unsigned 16-bit integer whose trailing zeros are to be counted.
51
+ /// \returns An unsigned 16-bit integer containing the number of trailing zero
52
+ /// bits in the operand.
53
+ /// \see __tzcnt_u16
54
+ #define _tzcnt_u16 __tzcnt_u16
55
+
56
+ /// Counts the number of trailing zero bits in the operand.
57
+ ///
58
+ /// \headerfile <x86intrin.h>
59
+ ///
60
+ /// This intrinsic corresponds to the \c TZCNT instruction.
45
61
  ///
46
62
  /// \param __X
47
63
  /// An unsigned 32-bit integer whose trailing zeros are to be counted.
48
64
  /// \returns An unsigned 32-bit integer containing the number of trailing zero
49
65
  /// bits in the operand.
50
- /// \see _mm_tzcnt_32
66
+ /// \see { _mm_tzcnt_32 _tzcnt_u32 }
51
67
  static __inline__ unsigned int __RELAXED_FN_ATTRS
52
68
  __tzcnt_u32(unsigned int __X)
53
69
  {
@@ -58,20 +74,35 @@ __tzcnt_u32(unsigned int __X)
58
74
  ///
59
75
  /// \headerfile <x86intrin.h>
60
76
  ///
61
- /// This intrinsic corresponds to the <c> TZCNT </c> instruction.
77
+ /// This intrinsic corresponds to the \c TZCNT instruction.
62
78
  ///
63
79
  /// \param __X
64
80
  /// An unsigned 32-bit integer whose trailing zeros are to be counted.
65
- /// \returns An 32-bit integer containing the number of trailing zero bits in
81
+ /// \returns A 32-bit integer containing the number of trailing zero bits in
66
82
  /// the operand.
67
- /// \see __tzcnt_u32
83
+ /// \see { __tzcnt_u32 _tzcnt_u32 }
68
84
  static __inline__ int __RELAXED_FN_ATTRS
69
85
  _mm_tzcnt_32(unsigned int __X)
70
86
  {
71
87
  return (int)__builtin_ia32_tzcnt_u32(__X);
72
88
  }
73
89
 
74
- #define _tzcnt_u32(a) (__tzcnt_u32((a)))
90
+ /// Counts the number of trailing zero bits in the operand.
91
+ ///
92
+ /// \headerfile <x86intrin.h>
93
+ ///
94
+ /// \code
95
+ /// unsigned int _tzcnt_u32(unsigned int __X);
96
+ /// \endcode
97
+ ///
98
+ /// This intrinsic corresponds to the \c TZCNT instruction.
99
+ ///
100
+ /// \param __X
101
+ /// An unsigned 32-bit integer whose trailing zeros are to be counted.
102
+ /// \returns An unsigned 32-bit integer containing the number of trailing zero
103
+ /// bits in the operand.
104
+ /// \see { _mm_tzcnt_32 __tzcnt_u32 }
105
+ #define _tzcnt_u32 __tzcnt_u32
75
106
 
76
107
  #ifdef __x86_64__
77
108
 
@@ -79,13 +110,13 @@ _mm_tzcnt_32(unsigned int __X)
79
110
  ///
80
111
  /// \headerfile <x86intrin.h>
81
112
  ///
82
- /// This intrinsic corresponds to the <c> TZCNT </c> instruction.
113
+ /// This intrinsic corresponds to the \c TZCNT instruction.
83
114
  ///
84
115
  /// \param __X
85
116
  /// An unsigned 64-bit integer whose trailing zeros are to be counted.
86
117
  /// \returns An unsigned 64-bit integer containing the number of trailing zero
87
118
  /// bits in the operand.
88
- /// \see _mm_tzcnt_64
119
+ /// \see { _mm_tzcnt_64 _tzcnt_u64 }
89
120
  static __inline__ unsigned long long __RELAXED_FN_ATTRS
90
121
  __tzcnt_u64(unsigned long long __X)
91
122
  {
@@ -96,20 +127,35 @@ __tzcnt_u64(unsigned long long __X)
96
127
  ///
97
128
  /// \headerfile <x86intrin.h>
98
129
  ///
99
- /// This intrinsic corresponds to the <c> TZCNT </c> instruction.
130
+ /// This intrinsic corresponds to the \c TZCNT instruction.
100
131
  ///
101
132
  /// \param __X
102
133
  /// An unsigned 64-bit integer whose trailing zeros are to be counted.
103
134
  /// \returns An 64-bit integer containing the number of trailing zero bits in
104
135
  /// the operand.
105
- /// \see __tzcnt_u64
136
+ /// \see { __tzcnt_u64 _tzcnt_u64 }
106
137
  static __inline__ long long __RELAXED_FN_ATTRS
107
138
  _mm_tzcnt_64(unsigned long long __X)
108
139
  {
109
140
  return (long long)__builtin_ia32_tzcnt_u64(__X);
110
141
  }
111
142
 
112
- #define _tzcnt_u64(a) (__tzcnt_u64((a)))
143
+ /// Counts the number of trailing zero bits in the operand.
144
+ ///
145
+ /// \headerfile <x86intrin.h>
146
+ ///
147
+ /// \code
148
+ /// unsigned long long _tzcnt_u64(unsigned long long __X);
149
+ /// \endcode
150
+ ///
151
+ /// This intrinsic corresponds to the \c TZCNT instruction.
152
+ ///
153
+ /// \param __X
154
+ /// An unsigned 64-bit integer whose trailing zeros are to be counted.
155
+ /// \returns An unsigned 64-bit integer containing the number of trailing zero
156
+ /// bits in the operand.
157
+ /// \see { _mm_tzcnt_64 __tzcnt_u64
158
+ #define _tzcnt_u64 __tzcnt_u64
113
159
 
114
160
  #endif /* __x86_64__ */
115
161
 
@@ -121,21 +167,12 @@ _mm_tzcnt_64(unsigned long long __X)
121
167
  /* Define the default attributes for the functions in this file. */
122
168
  #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("bmi")))
123
169
 
124
- #define _andn_u32(a, b) (__andn_u32((a), (b)))
125
-
126
- /* _bextr_u32 != __bextr_u32 */
127
- #define _blsi_u32(a) (__blsi_u32((a)))
128
-
129
- #define _blsmsk_u32(a) (__blsmsk_u32((a)))
130
-
131
- #define _blsr_u32(a) (__blsr_u32((a)))
132
-
133
170
  /// Performs a bitwise AND of the second operand with the one's
134
171
  /// complement of the first operand.
135
172
  ///
136
173
  /// \headerfile <x86intrin.h>
137
174
  ///
138
- /// This intrinsic corresponds to the <c> ANDN </c> instruction.
175
+ /// This intrinsic corresponds to the \c ANDN instruction.
139
176
  ///
140
177
  /// \param __X
141
178
  /// An unsigned integer containing one of the operands.
@@ -143,19 +180,40 @@ _mm_tzcnt_64(unsigned long long __X)
143
180
  /// An unsigned integer containing one of the operands.
144
181
  /// \returns An unsigned integer containing the bitwise AND of the second
145
182
  /// operand with the one's complement of the first operand.
183
+ /// \see _andn_u32
146
184
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
147
185
  __andn_u32(unsigned int __X, unsigned int __Y)
148
186
  {
149
187
  return ~__X & __Y;
150
188
  }
151
189
 
190
+ /// Performs a bitwise AND of the second operand with the one's
191
+ /// complement of the first operand.
192
+ ///
193
+ /// \headerfile <x86intrin.h>
194
+ ///
195
+ /// \code
196
+ /// unsigned int _andn_u32(unsigned int __X, unsigned int __Y);
197
+ /// \endcode
198
+ ///
199
+ /// This intrinsic corresponds to the \c ANDN instruction.
200
+ ///
201
+ /// \param __X
202
+ /// An unsigned integer containing one of the operands.
203
+ /// \param __Y
204
+ /// An unsigned integer containing one of the operands.
205
+ /// \returns An unsigned integer containing the bitwise AND of the second
206
+ /// operand with the one's complement of the first operand.
207
+ /// \see __andn_u32
208
+ #define _andn_u32 __andn_u32
209
+
152
210
  /* AMD-specified, double-leading-underscore version of BEXTR */
153
211
  /// Extracts the specified bits from the first operand and returns them
154
212
  /// in the least significant bits of the result.
155
213
  ///
156
214
  /// \headerfile <x86intrin.h>
157
215
  ///
158
- /// This intrinsic corresponds to the <c> BEXTR </c> instruction.
216
+ /// This intrinsic corresponds to the \c BEXTR instruction.
159
217
  ///
160
218
  /// \param __X
161
219
  /// An unsigned integer whose bits are to be extracted.
@@ -178,7 +236,7 @@ __bextr_u32(unsigned int __X, unsigned int __Y)
178
236
  ///
179
237
  /// \headerfile <x86intrin.h>
180
238
  ///
181
- /// This intrinsic corresponds to the <c> BEXTR </c> instruction.
239
+ /// This intrinsic corresponds to the \c BEXTR instruction.
182
240
  ///
183
241
  /// \param __X
184
242
  /// An unsigned integer whose bits are to be extracted.
@@ -203,7 +261,7 @@ _bextr_u32(unsigned int __X, unsigned int __Y, unsigned int __Z)
203
261
  ///
204
262
  /// \headerfile <x86intrin.h>
205
263
  ///
206
- /// This intrinsic corresponds to the <c> BEXTR </c> instruction.
264
+ /// This intrinsic corresponds to the \c BEXTR instruction.
207
265
  ///
208
266
  /// \param __X
209
267
  /// An unsigned integer whose bits are to be extracted.
@@ -224,69 +282,117 @@ _bextr2_u32(unsigned int __X, unsigned int __Y) {
224
282
  ///
225
283
  /// \headerfile <x86intrin.h>
226
284
  ///
227
- /// This intrinsic corresponds to the <c> BLSI </c> instruction.
285
+ /// This intrinsic corresponds to the \c BLSI instruction.
228
286
  ///
229
287
  /// \param __X
230
288
  /// An unsigned integer whose bits are to be cleared.
231
289
  /// \returns An unsigned integer containing the result of clearing the bits from
232
290
  /// the source operand.
291
+ /// \see _blsi_u32
233
292
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
234
293
  __blsi_u32(unsigned int __X)
235
294
  {
236
295
  return __X & -__X;
237
296
  }
238
297
 
298
+ /// Clears all bits in the source except for the least significant bit
299
+ /// containing a value of 1 and returns the result.
300
+ ///
301
+ /// \headerfile <x86intrin.h>
302
+ ///
303
+ /// \code
304
+ /// unsigned int _blsi_u32(unsigned int __X);
305
+ /// \endcode
306
+ ///
307
+ /// This intrinsic corresponds to the \c BLSI instruction.
308
+ ///
309
+ /// \param __X
310
+ /// An unsigned integer whose bits are to be cleared.
311
+ /// \returns An unsigned integer containing the result of clearing the bits from
312
+ /// the source operand.
313
+ /// \see __blsi_u32
314
+ #define _blsi_u32 __blsi_u32
315
+
239
316
  /// Creates a mask whose bits are set to 1, using bit 0 up to and
240
317
  /// including the least significant bit that is set to 1 in the source
241
318
  /// operand and returns the result.
242
319
  ///
243
320
  /// \headerfile <x86intrin.h>
244
321
  ///
245
- /// This intrinsic corresponds to the <c> BLSMSK </c> instruction.
322
+ /// This intrinsic corresponds to the \c BLSMSK instruction.
246
323
  ///
247
324
  /// \param __X
248
325
  /// An unsigned integer used to create the mask.
249
326
  /// \returns An unsigned integer containing the newly created mask.
327
+ /// \see _blsmsk_u32
250
328
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
251
329
  __blsmsk_u32(unsigned int __X)
252
330
  {
253
331
  return __X ^ (__X - 1);
254
332
  }
255
333
 
334
+ /// Creates a mask whose bits are set to 1, using bit 0 up to and
335
+ /// including the least significant bit that is set to 1 in the source
336
+ /// operand and returns the result.
337
+ ///
338
+ /// \headerfile <x86intrin.h>
339
+ ///
340
+ /// \code
341
+ /// unsigned int _blsmsk_u32(unsigned int __X);
342
+ /// \endcode
343
+ ///
344
+ /// This intrinsic corresponds to the \c BLSMSK instruction.
345
+ ///
346
+ /// \param __X
347
+ /// An unsigned integer used to create the mask.
348
+ /// \returns An unsigned integer containing the newly created mask.
349
+ /// \see __blsmsk_u32
350
+ #define _blsmsk_u32 __blsmsk_u32
351
+
256
352
  /// Clears the least significant bit that is set to 1 in the source
257
353
  /// operand and returns the result.
258
354
  ///
259
355
  /// \headerfile <x86intrin.h>
260
356
  ///
261
- /// This intrinsic corresponds to the <c> BLSR </c> instruction.
357
+ /// This intrinsic corresponds to the \c BLSR instruction.
262
358
  ///
263
359
  /// \param __X
264
360
  /// An unsigned integer containing the operand to be cleared.
265
361
  /// \returns An unsigned integer containing the result of clearing the source
266
362
  /// operand.
363
+ /// \see _blsr_u32
267
364
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
268
365
  __blsr_u32(unsigned int __X)
269
366
  {
270
367
  return __X & (__X - 1);
271
368
  }
272
369
 
273
- #ifdef __x86_64__
274
-
275
- #define _andn_u64(a, b) (__andn_u64((a), (b)))
276
-
277
- /* _bextr_u64 != __bextr_u64 */
278
- #define _blsi_u64(a) (__blsi_u64((a)))
279
-
280
- #define _blsmsk_u64(a) (__blsmsk_u64((a)))
370
+ /// Clears the least significant bit that is set to 1 in the source
371
+ /// operand and returns the result.
372
+ ///
373
+ /// \headerfile <x86intrin.h>
374
+ ///
375
+ /// \code
376
+ /// unsigned int _bls4_u32(unsigned int __X);
377
+ /// \endcode
378
+ ///
379
+ /// This intrinsic corresponds to the \c BLSR instruction.
380
+ ///
381
+ /// \param __X
382
+ /// An unsigned integer containing the operand to be cleared.
383
+ /// \returns An unsigned integer containing the result of clearing the source
384
+ /// operand.
385
+ /// \see __blsr_u32
386
+ #define _blsr_u32 __blsr_u32
281
387
 
282
- #define _blsr_u64(a) (__blsr_u64((a)))
388
+ #ifdef __x86_64__
283
389
 
284
390
  /// Performs a bitwise AND of the second operand with the one's
285
391
  /// complement of the first operand.
286
392
  ///
287
393
  /// \headerfile <x86intrin.h>
288
394
  ///
289
- /// This intrinsic corresponds to the <c> ANDN </c> instruction.
395
+ /// This intrinsic corresponds to the \c ANDN instruction.
290
396
  ///
291
397
  /// \param __X
292
398
  /// An unsigned 64-bit integer containing one of the operands.
@@ -294,19 +400,41 @@ __blsr_u32(unsigned int __X)
294
400
  /// An unsigned 64-bit integer containing one of the operands.
295
401
  /// \returns An unsigned 64-bit integer containing the bitwise AND of the second
296
402
  /// operand with the one's complement of the first operand.
403
+ /// \see _andn_u64
297
404
  static __inline__ unsigned long long __DEFAULT_FN_ATTRS
298
405
  __andn_u64 (unsigned long long __X, unsigned long long __Y)
299
406
  {
300
407
  return ~__X & __Y;
301
408
  }
302
409
 
410
+ /// Performs a bitwise AND of the second operand with the one's
411
+ /// complement of the first operand.
412
+ ///
413
+ /// \headerfile <x86intrin.h>
414
+ ///
415
+ /// \code
416
+ /// unsigned long long _andn_u64(unsigned long long __X,
417
+ /// unsigned long long __Y);
418
+ /// \endcode
419
+ ///
420
+ /// This intrinsic corresponds to the \c ANDN instruction.
421
+ ///
422
+ /// \param __X
423
+ /// An unsigned 64-bit integer containing one of the operands.
424
+ /// \param __Y
425
+ /// An unsigned 64-bit integer containing one of the operands.
426
+ /// \returns An unsigned 64-bit integer containing the bitwise AND of the second
427
+ /// operand with the one's complement of the first operand.
428
+ /// \see __andn_u64
429
+ #define _andn_u64 __andn_u64
430
+
303
431
  /* AMD-specified, double-leading-underscore version of BEXTR */
304
432
  /// Extracts the specified bits from the first operand and returns them
305
433
  /// in the least significant bits of the result.
306
434
  ///
307
435
  /// \headerfile <x86intrin.h>
308
436
  ///
309
- /// This intrinsic corresponds to the <c> BEXTR </c> instruction.
437
+ /// This intrinsic corresponds to the \c BEXTR instruction.
310
438
  ///
311
439
  /// \param __X
312
440
  /// An unsigned 64-bit integer whose bits are to be extracted.
@@ -329,7 +457,7 @@ __bextr_u64(unsigned long long __X, unsigned long long __Y)
329
457
  ///
330
458
  /// \headerfile <x86intrin.h>
331
459
  ///
332
- /// This intrinsic corresponds to the <c> BEXTR </c> instruction.
460
+ /// This intrinsic corresponds to the \c BEXTR instruction.
333
461
  ///
334
462
  /// \param __X
335
463
  /// An unsigned 64-bit integer whose bits are to be extracted.
@@ -354,7 +482,7 @@ _bextr_u64(unsigned long long __X, unsigned int __Y, unsigned int __Z)
354
482
  ///
355
483
  /// \headerfile <x86intrin.h>
356
484
  ///
357
- /// This intrinsic corresponds to the <c> BEXTR </c> instruction.
485
+ /// This intrinsic corresponds to the \c BEXTR instruction.
358
486
  ///
359
487
  /// \param __X
360
488
  /// An unsigned 64-bit integer whose bits are to be extracted.
@@ -375,52 +503,109 @@ _bextr2_u64(unsigned long long __X, unsigned long long __Y) {
375
503
  ///
376
504
  /// \headerfile <x86intrin.h>
377
505
  ///
378
- /// This intrinsic corresponds to the <c> BLSI </c> instruction.
506
+ /// This intrinsic corresponds to the \c BLSI instruction.
379
507
  ///
380
508
  /// \param __X
381
509
  /// An unsigned 64-bit integer whose bits are to be cleared.
382
510
  /// \returns An unsigned 64-bit integer containing the result of clearing the
383
511
  /// bits from the source operand.
512
+ /// \see _blsi_u64
384
513
  static __inline__ unsigned long long __DEFAULT_FN_ATTRS
385
514
  __blsi_u64(unsigned long long __X)
386
515
  {
387
516
  return __X & -__X;
388
517
  }
389
518
 
519
+ /// Clears all bits in the source except for the least significant bit
520
+ /// containing a value of 1 and returns the result.
521
+ ///
522
+ /// \headerfile <x86intrin.h>
523
+ ///
524
+ /// \code
525
+ /// unsigned long long _blsi_u64(unsigned long long __X);
526
+ /// \endcode
527
+ ///
528
+ /// This intrinsic corresponds to the \c BLSI instruction.
529
+ ///
530
+ /// \param __X
531
+ /// An unsigned 64-bit integer whose bits are to be cleared.
532
+ /// \returns An unsigned 64-bit integer containing the result of clearing the
533
+ /// bits from the source operand.
534
+ /// \see __blsi_u64
535
+ #define _blsi_u64 __blsi_u64
536
+
390
537
  /// Creates a mask whose bits are set to 1, using bit 0 up to and
391
538
  /// including the least significant bit that is set to 1 in the source
392
539
  /// operand and returns the result.
393
540
  ///
394
541
  /// \headerfile <x86intrin.h>
395
542
  ///
396
- /// This intrinsic corresponds to the <c> BLSMSK </c> instruction.
543
+ /// This intrinsic corresponds to the \c BLSMSK instruction.
397
544
  ///
398
545
  /// \param __X
399
546
  /// An unsigned 64-bit integer used to create the mask.
400
547
  /// \returns An unsigned 64-bit integer containing the newly created mask.
548
+ /// \see _blsmsk_u64
401
549
  static __inline__ unsigned long long __DEFAULT_FN_ATTRS
402
550
  __blsmsk_u64(unsigned long long __X)
403
551
  {
404
552
  return __X ^ (__X - 1);
405
553
  }
406
554
 
555
+ /// Creates a mask whose bits are set to 1, using bit 0 up to and
556
+ /// including the least significant bit that is set to 1 in the source
557
+ /// operand and returns the result.
558
+ ///
559
+ /// \headerfile <x86intrin.h>
560
+ ///
561
+ /// \code
562
+ /// unsigned long long _blsmsk_u64(unsigned long long __X);
563
+ /// \endcode
564
+ ///
565
+ /// This intrinsic corresponds to the \c BLSMSK instruction.
566
+ ///
567
+ /// \param __X
568
+ /// An unsigned 64-bit integer used to create the mask.
569
+ /// \returns An unsigned 64-bit integer containing the newly created mask.
570
+ /// \see __blsmsk_u64
571
+ #define _blsmsk_u64 __blsmsk_u64
572
+
407
573
  /// Clears the least significant bit that is set to 1 in the source
408
574
  /// operand and returns the result.
409
575
  ///
410
576
  /// \headerfile <x86intrin.h>
411
577
  ///
412
- /// This intrinsic corresponds to the <c> BLSR </c> instruction.
578
+ /// This intrinsic corresponds to the \c BLSR instruction.
413
579
  ///
414
580
  /// \param __X
415
581
  /// An unsigned 64-bit integer containing the operand to be cleared.
416
582
  /// \returns An unsigned 64-bit integer containing the result of clearing the
417
583
  /// source operand.
584
+ /// \see _blsr_u64
418
585
  static __inline__ unsigned long long __DEFAULT_FN_ATTRS
419
586
  __blsr_u64(unsigned long long __X)
420
587
  {
421
588
  return __X & (__X - 1);
422
589
  }
423
590
 
591
+ /// Clears the least significant bit that is set to 1 in the source
592
+ /// operand and returns the result.
593
+ ///
594
+ /// \headerfile <x86intrin.h>
595
+ ///
596
+ /// \code
597
+ /// unsigned long long _blsr_u64(unsigned long long __X);
598
+ /// \endcode
599
+ ///
600
+ /// This intrinsic corresponds to the \c BLSR instruction.
601
+ ///
602
+ /// \param __X
603
+ /// An unsigned 64-bit integer containing the operand to be cleared.
604
+ /// \returns An unsigned 64-bit integer containing the result of clearing the
605
+ /// source operand.
606
+ /// \see __blsr_u64
607
+ #define _blsr_u64 __blsr_u64
608
+
424
609
  #endif /* __x86_64__ */
425
610
 
426
611
  #undef __DEFAULT_FN_ATTRS
@@ -50,11 +50,11 @@ typedef __bf16 __m128bh __attribute__((__vector_size__(16), __aligned__(16)));
50
50
 
51
51
  /* Define the default attributes for the functions in this file. */
52
52
  #define __DEFAULT_FN_ATTRS \
53
- __attribute__((__always_inline__, __nodebug__, __target__("sse2"), \
54
- __min_vector_width__(128)))
53
+ __attribute__((__always_inline__, __nodebug__, \
54
+ __target__("sse2,no-evex512"), __min_vector_width__(128)))
55
55
  #define __DEFAULT_FN_ATTRS_MMX \
56
- __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse2"), \
57
- __min_vector_width__(64)))
56
+ __attribute__((__always_inline__, __nodebug__, \
57
+ __target__("mmx,sse2,no-evex512"), __min_vector_width__(64)))
58
58
 
59
59
  /// Adds lower double-precision values in both operands and returns the
60
60
  /// sum in the lower 64 bits of the result. The upper 64 bits of the result
@@ -3945,7 +3945,7 @@ static __inline__ void __DEFAULT_FN_ATTRS _mm_storel_epi64(__m128i_u *__p,
3945
3945
  /// A pointer to the 128-bit aligned memory location used to store the value.
3946
3946
  /// \param __a
3947
3947
  /// A vector of [2 x double] containing the 64-bit values to be stored.
3948
- static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_pd(double *__p,
3948
+ static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_pd(void *__p,
3949
3949
  __m128d __a) {
3950
3950
  __builtin_nontemporal_store((__v2df)__a, (__v2df *)__p);
3951
3951
  }
@@ -3963,7 +3963,7 @@ static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_pd(double *__p,
3963
3963
  /// A pointer to the 128-bit aligned memory location used to store the value.
3964
3964
  /// \param __a
3965
3965
  /// A 128-bit integer vector containing the values to be stored.
3966
- static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_si128(__m128i *__p,
3966
+ static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_si128(void *__p,
3967
3967
  __m128i __a) {
3968
3968
  __builtin_nontemporal_store((__v2di)__a, (__v2di *)__p);
3969
3969
  }
@@ -3983,8 +3983,8 @@ static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_si128(__m128i *__p,
3983
3983
  /// A 32-bit integer containing the value to be stored.
3984
3984
  static __inline__ void
3985
3985
  __attribute__((__always_inline__, __nodebug__, __target__("sse2")))
3986
- _mm_stream_si32(int *__p, int __a) {
3987
- __builtin_ia32_movnti(__p, __a);
3986
+ _mm_stream_si32(void *__p, int __a) {
3987
+ __builtin_ia32_movnti((int *)__p, __a);
3988
3988
  }
3989
3989
 
3990
3990
  #ifdef __x86_64__
@@ -4003,8 +4003,8 @@ static __inline__ void
4003
4003
  /// A 64-bit integer containing the value to be stored.
4004
4004
  static __inline__ void
4005
4005
  __attribute__((__always_inline__, __nodebug__, __target__("sse2")))
4006
- _mm_stream_si64(long long *__p, long long __a) {
4007
- __builtin_ia32_movnti64(__p, __a);
4006
+ _mm_stream_si64(void *__p, long long __a) {
4007
+ __builtin_ia32_movnti64((long long *)__p, __a);
4008
4008
  }
4009
4009
  #endif
4010
4010
 
@@ -15,19 +15,36 @@
15
15
  #define __GFNIINTRIN_H
16
16
 
17
17
  /* Default attributes for simple form (no masking). */
18
- #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("gfni"), __min_vector_width__(128)))
18
+ #define __DEFAULT_FN_ATTRS \
19
+ __attribute__((__always_inline__, __nodebug__, \
20
+ __target__("gfni,no-evex512"), __min_vector_width__(128)))
19
21
 
20
22
  /* Default attributes for YMM unmasked form. */
21
- #define __DEFAULT_FN_ATTRS_Y __attribute__((__always_inline__, __nodebug__, __target__("avx,gfni"), __min_vector_width__(256)))
23
+ #define __DEFAULT_FN_ATTRS_Y \
24
+ __attribute__((__always_inline__, __nodebug__, \
25
+ __target__("avx,gfni,no-evex512"), \
26
+ __min_vector_width__(256)))
22
27
 
23
28
  /* Default attributes for ZMM unmasked forms. */
24
- #define __DEFAULT_FN_ATTRS_Z __attribute__((__always_inline__, __nodebug__, __target__("avx512f,gfni"), __min_vector_width__(512)))
29
+ #define __DEFAULT_FN_ATTRS_Z \
30
+ __attribute__((__always_inline__, __nodebug__, \
31
+ __target__("avx512f,evex512,gfni"), \
32
+ __min_vector_width__(512)))
25
33
  /* Default attributes for ZMM masked forms. */
26
- #define __DEFAULT_FN_ATTRS_Z_MASK __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,gfni"), __min_vector_width__(512)))
34
+ #define __DEFAULT_FN_ATTRS_Z_MASK \
35
+ __attribute__((__always_inline__, __nodebug__, \
36
+ __target__("avx512bw,evex512,gfni"), \
37
+ __min_vector_width__(512)))
27
38
 
28
39
  /* Default attributes for VLX masked forms. */
29
- #define __DEFAULT_FN_ATTRS_VL128 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,avx512vl,gfni"), __min_vector_width__(128)))
30
- #define __DEFAULT_FN_ATTRS_VL256 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,avx512vl,gfni"), __min_vector_width__(256)))
40
+ #define __DEFAULT_FN_ATTRS_VL128 \
41
+ __attribute__((__always_inline__, __nodebug__, \
42
+ __target__("avx512bw,avx512vl,gfni,no-evex512"), \
43
+ __min_vector_width__(128)))
44
+ #define __DEFAULT_FN_ATTRS_VL256 \
45
+ __attribute__((__always_inline__, __nodebug__, \
46
+ __target__("avx512bw,avx512vl,gfni,no-evex512"), \
47
+ __min_vector_width__(256)))
31
48
 
32
49
  #define _mm_gf2p8affineinv_epi64_epi8(A, B, I) \
33
50
  ((__m128i)__builtin_ia32_vgf2p8affineinvqb_v16qi((__v16qi)(__m128i)(A), \