@cpp-linter/clang-tidy-darwin-x64 13.0.0 → 16.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy +2 -2
  3. package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_complex_builtins.h +3 -3
  4. package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_intrinsics.h +38 -6
  5. package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_libdevice_declares.h +6 -0
  6. package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_math.h +1 -1
  7. package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_runtime_wrapper.h +62 -7
  8. package/lib/clang/16/include/__clang_cuda_texture_intrinsics.h +742 -0
  9. package/lib/clang/{13.0.0 → 16}/include/__clang_hip_libdevice_declares.h +5 -0
  10. package/lib/clang/{13.0.0 → 16}/include/__clang_hip_math.h +10 -13
  11. package/lib/clang/{13.0.0 → 16}/include/__clang_hip_runtime_wrapper.h +18 -4
  12. package/lib/clang/16/include/__clang_hip_stdlib.h +43 -0
  13. package/lib/clang/{13.0.0 → 16}/include/__wmmintrin_aes.h +1 -1
  14. package/lib/clang/{13.0.0 → 16}/include/__wmmintrin_pclmul.h +10 -10
  15. package/lib/clang/{13.0.0 → 16}/include/altivec.h +691 -342
  16. package/lib/clang/{13.0.0 → 16}/include/ammintrin.h +4 -0
  17. package/lib/clang/16/include/amxfp16intrin.h +58 -0
  18. package/lib/clang/{13.0.0 → 16}/include/amxintrin.h +49 -18
  19. package/lib/clang/{13.0.0 → 16}/include/arm_acle.h +80 -73
  20. package/lib/clang/{13.0.0 → 16}/include/arm_fp16.h +90 -90
  21. package/lib/clang/{13.0.0 → 16}/include/arm_neon.h +28607 -28779
  22. package/lib/clang/16/include/arm_neon_sve_bridge.h +182 -0
  23. package/lib/clang/{13.0.0 → 16}/include/arm_sve.h +7848 -7996
  24. package/lib/clang/{13.0.0 → 16}/include/avx2intrin.h +189 -189
  25. package/lib/clang/{13.0.0 → 16}/include/avx512bf16intrin.h +21 -18
  26. package/lib/clang/{13.0.0 → 16}/include/avx512bwintrin.h +83 -83
  27. package/lib/clang/{13.0.0 → 16}/include/avx512dqintrin.h +365 -365
  28. package/lib/clang/{13.0.0 → 16}/include/avx512erintrin.h +102 -102
  29. package/lib/clang/{13.0.0 → 16}/include/avx512fintrin.h +1627 -1620
  30. package/lib/clang/16/include/avx512fp16intrin.h +3346 -0
  31. package/lib/clang/{13.0.0 → 16}/include/avx512ifmavlintrin.h +13 -27
  32. package/lib/clang/{13.0.0 → 16}/include/avx512vbmi2intrin.h +48 -48
  33. package/lib/clang/{13.0.0 → 16}/include/avx512vlbf16intrin.h +82 -41
  34. package/lib/clang/{13.0.0 → 16}/include/avx512vlbwintrin.h +454 -102
  35. package/lib/clang/{13.0.0 → 16}/include/avx512vldqintrin.h +134 -134
  36. package/lib/clang/16/include/avx512vlfp16intrin.h +2071 -0
  37. package/lib/clang/{13.0.0 → 16}/include/avx512vlintrin.h +596 -610
  38. package/lib/clang/{13.0.0 → 16}/include/avx512vlvbmi2intrin.h +96 -96
  39. package/lib/clang/{13.0.0 → 16}/include/avx512vlvnniintrin.h +24 -24
  40. package/lib/clang/16/include/avxifmaintrin.h +177 -0
  41. package/lib/clang/{13.0.0 → 16}/include/avxintrin.h +266 -224
  42. package/lib/clang/16/include/avxneconvertintrin.h +484 -0
  43. package/lib/clang/16/include/avxvnniint8intrin.h +471 -0
  44. package/lib/clang/{13.0.0 → 16}/include/avxvnniintrin.h +16 -16
  45. package/lib/clang/{13.0.0 → 16}/include/bmiintrin.h +6 -2
  46. package/lib/clang/{13.0.0 → 16}/include/cetintrin.h +20 -4
  47. package/lib/clang/16/include/cmpccxaddintrin.h +70 -0
  48. package/lib/clang/{13.0.0 → 16}/include/cpuid.h +14 -2
  49. package/lib/clang/16/include/crc32intrin.h +100 -0
  50. package/lib/clang/16/include/cuda_wrappers/cmath +90 -0
  51. package/lib/clang/{13.0.0 → 16}/include/emmintrin.h +573 -779
  52. package/lib/clang/{13.0.0 → 16}/include/f16cintrin.h +4 -4
  53. package/lib/clang/{13.0.0 → 16}/include/float.h +22 -6
  54. package/lib/clang/{13.0.0 → 16}/include/gfniintrin.h +54 -53
  55. package/lib/clang/{13.0.0 → 16}/include/hexagon_protos.h +0 -11
  56. package/lib/clang/{13.0.0 → 16}/include/hexagon_types.h +0 -32
  57. package/lib/clang/16/include/hlsl/hlsl_basic_types.h +67 -0
  58. package/lib/clang/16/include/hlsl/hlsl_intrinsics.h +223 -0
  59. package/lib/clang/16/include/hlsl.h +15 -0
  60. package/lib/clang/{13.0.0 → 16}/include/hresetintrin.h +2 -2
  61. package/lib/clang/{13.0.0 → 16}/include/hvx_hexagon_protos.h +1200 -409
  62. package/lib/clang/{13.0.0 → 16}/include/ia32intrin.h +17 -17
  63. package/lib/clang/{13.0.0 → 16}/include/immintrin.h +74 -24
  64. package/lib/clang/{13.0.0 → 16}/include/intrin.h +34 -35
  65. package/lib/clang/{13.0.0 → 16}/include/keylockerintrin.h +24 -30
  66. package/lib/clang/16/include/larchintrin.h +234 -0
  67. package/lib/clang/{13.0.0 → 16}/include/limits.h +22 -1
  68. package/lib/clang/{13.0.0 → 16}/include/mm_malloc.h +3 -3
  69. package/lib/clang/{13.0.0 → 16}/include/mmintrin.h +4 -0
  70. package/lib/clang/{13.0.0 → 16}/include/nmmintrin.h +4 -0
  71. package/lib/clang/{13.0.0 → 16}/include/opencl-c-base.h +98 -11
  72. package/lib/clang/{13.0.0 → 16}/include/opencl-c.h +7252 -6208
  73. package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/complex +10 -1
  74. package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/complex.h +9 -0
  75. package/lib/clang/{13.0.0 → 16}/include/pmmintrin.h +5 -1
  76. package/lib/clang/16/include/ppc_wrappers/bmi2intrin.h +134 -0
  77. package/lib/clang/16/include/ppc_wrappers/bmiintrin.h +165 -0
  78. package/lib/clang/16/include/ppc_wrappers/emmintrin.h +2268 -0
  79. package/lib/clang/16/include/ppc_wrappers/immintrin.h +27 -0
  80. package/lib/clang/{13.0.0 → 16}/include/ppc_wrappers/mm_malloc.h +12 -17
  81. package/lib/clang/{13.0.0 → 16}/include/ppc_wrappers/mmintrin.h +389 -386
  82. package/lib/clang/16/include/ppc_wrappers/pmmintrin.h +145 -0
  83. package/lib/clang/16/include/ppc_wrappers/smmintrin.h +663 -0
  84. package/lib/clang/16/include/ppc_wrappers/tmmintrin.h +453 -0
  85. package/lib/clang/{13.0.0/include/stdnoreturn.h → 16/include/ppc_wrappers/x86gprintrin.h} +7 -6
  86. package/lib/clang/16/include/ppc_wrappers/x86intrin.h +28 -0
  87. package/lib/clang/16/include/ppc_wrappers/xmmintrin.h +1827 -0
  88. package/lib/clang/16/include/prfchiintrin.h +61 -0
  89. package/lib/clang/{13.0.0 → 16}/include/prfchwintrin.h +5 -2
  90. package/lib/clang/16/include/raointintrin.h +203 -0
  91. package/lib/clang/16/include/rdpruintrin.h +57 -0
  92. package/lib/clang/{13.0.0 → 16}/include/rdseedintrin.h +3 -3
  93. package/lib/clang/16/include/riscv_vector.h +211 -0
  94. package/lib/clang/{13.0.0 → 16}/include/rtmintrin.h +1 -1
  95. package/lib/clang/{13.0.0 → 16}/include/smmintrin.h +260 -362
  96. package/lib/clang/{13.0.0 → 16}/include/stdarg.h +23 -7
  97. package/lib/clang/{13.0.0 → 16}/include/stdatomic.h +14 -1
  98. package/lib/clang/{13.0.0 → 16}/include/stdbool.h +10 -7
  99. package/lib/clang/{13.0.0 → 16}/include/stddef.h +9 -2
  100. package/lib/clang/{13.0.0 → 16}/include/stdint.h +311 -25
  101. package/lib/clang/16/include/stdnoreturn.h +29 -0
  102. package/lib/clang/{13.0.0 → 16}/include/tmmintrin.h +10 -6
  103. package/lib/clang/{13.0.0 → 16}/include/uintrintrin.h +8 -8
  104. package/lib/clang/{13.0.0 → 16}/include/unwind.h +12 -7
  105. package/lib/clang/{13.0.0 → 16}/include/vaesintrin.h +1 -1
  106. package/lib/clang/16/include/velintrin.h +71 -0
  107. package/lib/clang/16/include/velintrin_approx.h +120 -0
  108. package/lib/clang/16/include/velintrin_gen.h +1257 -0
  109. package/lib/clang/{13.0.0 → 16}/include/vpclmulqdqintrin.h +6 -6
  110. package/lib/clang/{13.0.0 → 16}/include/wasm_simd128.h +169 -26
  111. package/lib/clang/{13.0.0 → 16}/include/wmmintrin.h +4 -0
  112. package/lib/clang/16/include/x86gprintrin.h +65 -0
  113. package/lib/clang/{13.0.0 → 16}/include/x86intrin.h +4 -0
  114. package/lib/clang/{13.0.0 → 16}/include/xmmintrin.h +19 -10
  115. package/lib/clang/{13.0.0 → 16}/include/xopintrin.h +31 -31
  116. package/package.json +6 -6
  117. package/lib/clang/13.0.0/include/ppc_wrappers/emmintrin.h +0 -2324
  118. package/lib/clang/13.0.0/include/ppc_wrappers/pmmintrin.h +0 -150
  119. package/lib/clang/13.0.0/include/ppc_wrappers/smmintrin.h +0 -109
  120. package/lib/clang/13.0.0/include/ppc_wrappers/tmmintrin.h +0 -495
  121. package/lib/clang/13.0.0/include/ppc_wrappers/xmmintrin.h +0 -1843
  122. package/lib/clang/13.0.0/include/riscv_vector.h +0 -123865
  123. package/lib/clang/13.0.0/include/x86gprintrin.h +0 -23
  124. /package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_builtin_vars.h +0 -0
  125. /package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_cmath.h +0 -0
  126. /package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_device_functions.h +0 -0
  127. /package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_math_forward_declares.h +0 -0
  128. /package/lib/clang/{13.0.0 → 16}/include/__clang_hip_cmath.h +0 -0
  129. /package/lib/clang/{13.0.0 → 16}/include/__stddef_max_align_t.h +0 -0
  130. /package/lib/clang/{13.0.0 → 16}/include/adxintrin.h +0 -0
  131. /package/lib/clang/{13.0.0 → 16}/include/arm64intr.h +0 -0
  132. /package/lib/clang/{13.0.0 → 16}/include/arm_bf16.h +0 -0
  133. /package/lib/clang/{13.0.0 → 16}/include/arm_cde.h +0 -0
  134. /package/lib/clang/{13.0.0 → 16}/include/arm_cmse.h +0 -0
  135. /package/lib/clang/{13.0.0 → 16}/include/arm_mve.h +0 -0
  136. /package/lib/clang/{13.0.0 → 16}/include/armintr.h +0 -0
  137. /package/lib/clang/{13.0.0 → 16}/include/avx512bitalgintrin.h +0 -0
  138. /package/lib/clang/{13.0.0 → 16}/include/avx512cdintrin.h +0 -0
  139. /package/lib/clang/{13.0.0 → 16}/include/avx512ifmaintrin.h +0 -0
  140. /package/lib/clang/{13.0.0 → 16}/include/avx512pfintrin.h +0 -0
  141. /package/lib/clang/{13.0.0 → 16}/include/avx512vbmiintrin.h +0 -0
  142. /package/lib/clang/{13.0.0 → 16}/include/avx512vbmivlintrin.h +0 -0
  143. /package/lib/clang/{13.0.0 → 16}/include/avx512vlbitalgintrin.h +0 -0
  144. /package/lib/clang/{13.0.0 → 16}/include/avx512vlcdintrin.h +0 -0
  145. /package/lib/clang/{13.0.0 → 16}/include/avx512vlvp2intersectintrin.h +0 -0
  146. /package/lib/clang/{13.0.0 → 16}/include/avx512vnniintrin.h +0 -0
  147. /package/lib/clang/{13.0.0 → 16}/include/avx512vp2intersectintrin.h +0 -0
  148. /package/lib/clang/{13.0.0 → 16}/include/avx512vpopcntdqintrin.h +0 -0
  149. /package/lib/clang/{13.0.0 → 16}/include/avx512vpopcntdqvlintrin.h +0 -0
  150. /package/lib/clang/{13.0.0 → 16}/include/bmi2intrin.h +0 -0
  151. /package/lib/clang/{13.0.0 → 16}/include/builtins.h +0 -0
  152. /package/lib/clang/{13.0.0 → 16}/include/cet.h +0 -0
  153. /package/lib/clang/{13.0.0 → 16}/include/cldemoteintrin.h +0 -0
  154. /package/lib/clang/{13.0.0 → 16}/include/clflushoptintrin.h +0 -0
  155. /package/lib/clang/{13.0.0 → 16}/include/clwbintrin.h +0 -0
  156. /package/lib/clang/{13.0.0 → 16}/include/clzerointrin.h +0 -0
  157. /package/lib/clang/{13.0.0 → 16}/include/cuda_wrappers/algorithm +0 -0
  158. /package/lib/clang/{13.0.0 → 16}/include/cuda_wrappers/complex +0 -0
  159. /package/lib/clang/{13.0.0 → 16}/include/cuda_wrappers/new +0 -0
  160. /package/lib/clang/{13.0.0 → 16}/include/enqcmdintrin.h +0 -0
  161. /package/lib/clang/{13.0.0 → 16}/include/fma4intrin.h +0 -0
  162. /package/lib/clang/{13.0.0 → 16}/include/fmaintrin.h +0 -0
  163. /package/lib/clang/{13.0.0 → 16}/include/fxsrintrin.h +0 -0
  164. /package/lib/clang/{13.0.0 → 16}/include/hexagon_circ_brev_intrinsics.h +0 -0
  165. /package/lib/clang/{13.0.0 → 16}/include/htmintrin.h +0 -0
  166. /package/lib/clang/{13.0.0 → 16}/include/htmxlintrin.h +0 -0
  167. /package/lib/clang/{13.0.0 → 16}/include/inttypes.h +0 -0
  168. /package/lib/clang/{13.0.0 → 16}/include/invpcidintrin.h +0 -0
  169. /package/lib/clang/{13.0.0 → 16}/include/iso646.h +0 -0
  170. /package/lib/clang/{13.0.0 → 16}/include/lwpintrin.h +0 -0
  171. /package/lib/clang/{13.0.0 → 16}/include/lzcntintrin.h +0 -0
  172. /package/lib/clang/{13.0.0 → 16}/include/mm3dnow.h +0 -0
  173. /package/lib/clang/{13.0.0 → 16}/include/module.modulemap +0 -0
  174. /package/lib/clang/{13.0.0 → 16}/include/movdirintrin.h +0 -0
  175. /package/lib/clang/{13.0.0 → 16}/include/msa.h +0 -0
  176. /package/lib/clang/{13.0.0 → 16}/include/mwaitxintrin.h +0 -0
  177. /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
  178. /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/cmath +0 -0
  179. /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/complex_cmath.h +0 -0
  180. /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/math.h +0 -0
  181. /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/new +0 -0
  182. /package/lib/clang/{13.0.0 → 16}/include/pconfigintrin.h +0 -0
  183. /package/lib/clang/{13.0.0 → 16}/include/pkuintrin.h +0 -0
  184. /package/lib/clang/{13.0.0 → 16}/include/popcntintrin.h +0 -0
  185. /package/lib/clang/{13.0.0 → 16}/include/ptwriteintrin.h +0 -0
  186. /package/lib/clang/{13.0.0 → 16}/include/s390intrin.h +0 -0
  187. /package/lib/clang/{13.0.0 → 16}/include/serializeintrin.h +0 -0
  188. /package/lib/clang/{13.0.0 → 16}/include/sgxintrin.h +0 -0
  189. /package/lib/clang/{13.0.0 → 16}/include/shaintrin.h +0 -0
  190. /package/lib/clang/{13.0.0 → 16}/include/stdalign.h +0 -0
  191. /package/lib/clang/{13.0.0 → 16}/include/tbmintrin.h +0 -0
  192. /package/lib/clang/{13.0.0 → 16}/include/tgmath.h +0 -0
  193. /package/lib/clang/{13.0.0 → 16}/include/tsxldtrkintrin.h +0 -0
  194. /package/lib/clang/{13.0.0 → 16}/include/vadefs.h +0 -0
  195. /package/lib/clang/{13.0.0 → 16}/include/varargs.h +0 -0
  196. /package/lib/clang/{13.0.0 → 16}/include/vecintrin.h +0 -0
  197. /package/lib/clang/{13.0.0 → 16}/include/waitpkgintrin.h +0 -0
  198. /package/lib/clang/{13.0.0 → 16}/include/wbnoinvdintrin.h +0 -0
  199. /package/lib/clang/{13.0.0 → 16}/include/xsavecintrin.h +0 -0
  200. /package/lib/clang/{13.0.0 → 16}/include/xsaveintrin.h +0 -0
  201. /package/lib/clang/{13.0.0 → 16}/include/xsaveoptintrin.h +0 -0
  202. /package/lib/clang/{13.0.0 → 16}/include/xsavesintrin.h +0 -0
  203. /package/lib/clang/{13.0.0 → 16}/include/xtestintrin.h +0 -0
@@ -239,172 +239,172 @@ _mm256_maskz_expandloadu_epi8(__mmask32 __U, void const *__P)
239
239
  }
240
240
 
241
241
  #define _mm256_shldi_epi64(A, B, I) \
242
- (__m256i)__builtin_ia32_vpshldq256((__v4di)(__m256i)(A), \
243
- (__v4di)(__m256i)(B), (int)(I))
242
+ ((__m256i)__builtin_ia32_vpshldq256((__v4di)(__m256i)(A), \
243
+ (__v4di)(__m256i)(B), (int)(I)))
244
244
 
245
245
  #define _mm256_mask_shldi_epi64(S, U, A, B, I) \
246
- (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
247
- (__v4di)_mm256_shldi_epi64((A), (B), (I)), \
248
- (__v4di)(__m256i)(S))
246
+ ((__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
247
+ (__v4di)_mm256_shldi_epi64((A), (B), (I)), \
248
+ (__v4di)(__m256i)(S)))
249
249
 
250
250
  #define _mm256_maskz_shldi_epi64(U, A, B, I) \
251
- (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
252
- (__v4di)_mm256_shldi_epi64((A), (B), (I)), \
253
- (__v4di)_mm256_setzero_si256())
251
+ ((__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
252
+ (__v4di)_mm256_shldi_epi64((A), (B), (I)), \
253
+ (__v4di)_mm256_setzero_si256()))
254
254
 
255
255
  #define _mm_shldi_epi64(A, B, I) \
256
- (__m128i)__builtin_ia32_vpshldq128((__v2di)(__m128i)(A), \
257
- (__v2di)(__m128i)(B), (int)(I))
256
+ ((__m128i)__builtin_ia32_vpshldq128((__v2di)(__m128i)(A), \
257
+ (__v2di)(__m128i)(B), (int)(I)))
258
258
 
259
259
  #define _mm_mask_shldi_epi64(S, U, A, B, I) \
260
- (__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \
261
- (__v2di)_mm_shldi_epi64((A), (B), (I)), \
262
- (__v2di)(__m128i)(S))
260
+ ((__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \
261
+ (__v2di)_mm_shldi_epi64((A), (B), (I)), \
262
+ (__v2di)(__m128i)(S)))
263
263
 
264
264
  #define _mm_maskz_shldi_epi64(U, A, B, I) \
265
- (__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \
266
- (__v2di)_mm_shldi_epi64((A), (B), (I)), \
267
- (__v2di)_mm_setzero_si128())
265
+ ((__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \
266
+ (__v2di)_mm_shldi_epi64((A), (B), (I)), \
267
+ (__v2di)_mm_setzero_si128()))
268
268
 
269
269
  #define _mm256_shldi_epi32(A, B, I) \
270
- (__m256i)__builtin_ia32_vpshldd256((__v8si)(__m256i)(A), \
271
- (__v8si)(__m256i)(B), (int)(I))
270
+ ((__m256i)__builtin_ia32_vpshldd256((__v8si)(__m256i)(A), \
271
+ (__v8si)(__m256i)(B), (int)(I)))
272
272
 
273
273
  #define _mm256_mask_shldi_epi32(S, U, A, B, I) \
274
- (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
275
- (__v8si)_mm256_shldi_epi32((A), (B), (I)), \
276
- (__v8si)(__m256i)(S))
274
+ ((__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
275
+ (__v8si)_mm256_shldi_epi32((A), (B), (I)), \
276
+ (__v8si)(__m256i)(S)))
277
277
 
278
278
  #define _mm256_maskz_shldi_epi32(U, A, B, I) \
279
- (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
280
- (__v8si)_mm256_shldi_epi32((A), (B), (I)), \
281
- (__v8si)_mm256_setzero_si256())
279
+ ((__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
280
+ (__v8si)_mm256_shldi_epi32((A), (B), (I)), \
281
+ (__v8si)_mm256_setzero_si256()))
282
282
 
283
283
  #define _mm_shldi_epi32(A, B, I) \
284
- (__m128i)__builtin_ia32_vpshldd128((__v4si)(__m128i)(A), \
285
- (__v4si)(__m128i)(B), (int)(I))
284
+ ((__m128i)__builtin_ia32_vpshldd128((__v4si)(__m128i)(A), \
285
+ (__v4si)(__m128i)(B), (int)(I)))
286
286
 
287
287
  #define _mm_mask_shldi_epi32(S, U, A, B, I) \
288
- (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
289
- (__v4si)_mm_shldi_epi32((A), (B), (I)), \
290
- (__v4si)(__m128i)(S))
288
+ ((__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
289
+ (__v4si)_mm_shldi_epi32((A), (B), (I)), \
290
+ (__v4si)(__m128i)(S)))
291
291
 
292
292
  #define _mm_maskz_shldi_epi32(U, A, B, I) \
293
- (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
294
- (__v4si)_mm_shldi_epi32((A), (B), (I)), \
295
- (__v4si)_mm_setzero_si128())
293
+ ((__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
294
+ (__v4si)_mm_shldi_epi32((A), (B), (I)), \
295
+ (__v4si)_mm_setzero_si128()))
296
296
 
297
297
  #define _mm256_shldi_epi16(A, B, I) \
298
- (__m256i)__builtin_ia32_vpshldw256((__v16hi)(__m256i)(A), \
299
- (__v16hi)(__m256i)(B), (int)(I))
298
+ ((__m256i)__builtin_ia32_vpshldw256((__v16hi)(__m256i)(A), \
299
+ (__v16hi)(__m256i)(B), (int)(I)))
300
300
 
301
301
  #define _mm256_mask_shldi_epi16(S, U, A, B, I) \
302
- (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
303
- (__v16hi)_mm256_shldi_epi16((A), (B), (I)), \
304
- (__v16hi)(__m256i)(S))
302
+ ((__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
303
+ (__v16hi)_mm256_shldi_epi16((A), (B), (I)), \
304
+ (__v16hi)(__m256i)(S)))
305
305
 
306
306
  #define _mm256_maskz_shldi_epi16(U, A, B, I) \
307
- (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
308
- (__v16hi)_mm256_shldi_epi16((A), (B), (I)), \
309
- (__v16hi)_mm256_setzero_si256())
307
+ ((__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
308
+ (__v16hi)_mm256_shldi_epi16((A), (B), (I)), \
309
+ (__v16hi)_mm256_setzero_si256()))
310
310
 
311
311
  #define _mm_shldi_epi16(A, B, I) \
312
- (__m128i)__builtin_ia32_vpshldw128((__v8hi)(__m128i)(A), \
313
- (__v8hi)(__m128i)(B), (int)(I))
312
+ ((__m128i)__builtin_ia32_vpshldw128((__v8hi)(__m128i)(A), \
313
+ (__v8hi)(__m128i)(B), (int)(I)))
314
314
 
315
315
  #define _mm_mask_shldi_epi16(S, U, A, B, I) \
316
- (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
317
- (__v8hi)_mm_shldi_epi16((A), (B), (I)), \
318
- (__v8hi)(__m128i)(S))
316
+ ((__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
317
+ (__v8hi)_mm_shldi_epi16((A), (B), (I)), \
318
+ (__v8hi)(__m128i)(S)))
319
319
 
320
320
  #define _mm_maskz_shldi_epi16(U, A, B, I) \
321
- (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
322
- (__v8hi)_mm_shldi_epi16((A), (B), (I)), \
323
- (__v8hi)_mm_setzero_si128())
321
+ ((__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
322
+ (__v8hi)_mm_shldi_epi16((A), (B), (I)), \
323
+ (__v8hi)_mm_setzero_si128()))
324
324
 
325
325
  #define _mm256_shrdi_epi64(A, B, I) \
326
- (__m256i)__builtin_ia32_vpshrdq256((__v4di)(__m256i)(A), \
327
- (__v4di)(__m256i)(B), (int)(I))
326
+ ((__m256i)__builtin_ia32_vpshrdq256((__v4di)(__m256i)(A), \
327
+ (__v4di)(__m256i)(B), (int)(I)))
328
328
 
329
329
  #define _mm256_mask_shrdi_epi64(S, U, A, B, I) \
330
- (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
331
- (__v4di)_mm256_shrdi_epi64((A), (B), (I)), \
332
- (__v4di)(__m256i)(S))
330
+ ((__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
331
+ (__v4di)_mm256_shrdi_epi64((A), (B), (I)), \
332
+ (__v4di)(__m256i)(S)))
333
333
 
334
334
  #define _mm256_maskz_shrdi_epi64(U, A, B, I) \
335
- (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
336
- (__v4di)_mm256_shrdi_epi64((A), (B), (I)), \
337
- (__v4di)_mm256_setzero_si256())
335
+ ((__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
336
+ (__v4di)_mm256_shrdi_epi64((A), (B), (I)), \
337
+ (__v4di)_mm256_setzero_si256()))
338
338
 
339
339
  #define _mm_shrdi_epi64(A, B, I) \
340
- (__m128i)__builtin_ia32_vpshrdq128((__v2di)(__m128i)(A), \
341
- (__v2di)(__m128i)(B), (int)(I))
340
+ ((__m128i)__builtin_ia32_vpshrdq128((__v2di)(__m128i)(A), \
341
+ (__v2di)(__m128i)(B), (int)(I)))
342
342
 
343
343
  #define _mm_mask_shrdi_epi64(S, U, A, B, I) \
344
- (__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \
345
- (__v2di)_mm_shrdi_epi64((A), (B), (I)), \
346
- (__v2di)(__m128i)(S))
344
+ ((__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \
345
+ (__v2di)_mm_shrdi_epi64((A), (B), (I)), \
346
+ (__v2di)(__m128i)(S)))
347
347
 
348
348
  #define _mm_maskz_shrdi_epi64(U, A, B, I) \
349
- (__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \
350
- (__v2di)_mm_shrdi_epi64((A), (B), (I)), \
351
- (__v2di)_mm_setzero_si128())
349
+ ((__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \
350
+ (__v2di)_mm_shrdi_epi64((A), (B), (I)), \
351
+ (__v2di)_mm_setzero_si128()))
352
352
 
353
353
  #define _mm256_shrdi_epi32(A, B, I) \
354
- (__m256i)__builtin_ia32_vpshrdd256((__v8si)(__m256i)(A), \
355
- (__v8si)(__m256i)(B), (int)(I))
354
+ ((__m256i)__builtin_ia32_vpshrdd256((__v8si)(__m256i)(A), \
355
+ (__v8si)(__m256i)(B), (int)(I)))
356
356
 
357
357
  #define _mm256_mask_shrdi_epi32(S, U, A, B, I) \
358
- (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
359
- (__v8si)_mm256_shrdi_epi32((A), (B), (I)), \
360
- (__v8si)(__m256i)(S))
358
+ ((__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
359
+ (__v8si)_mm256_shrdi_epi32((A), (B), (I)), \
360
+ (__v8si)(__m256i)(S)))
361
361
 
362
362
  #define _mm256_maskz_shrdi_epi32(U, A, B, I) \
363
- (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
364
- (__v8si)_mm256_shrdi_epi32((A), (B), (I)), \
365
- (__v8si)_mm256_setzero_si256())
363
+ ((__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
364
+ (__v8si)_mm256_shrdi_epi32((A), (B), (I)), \
365
+ (__v8si)_mm256_setzero_si256()))
366
366
 
367
367
  #define _mm_shrdi_epi32(A, B, I) \
368
- (__m128i)__builtin_ia32_vpshrdd128((__v4si)(__m128i)(A), \
369
- (__v4si)(__m128i)(B), (int)(I))
368
+ ((__m128i)__builtin_ia32_vpshrdd128((__v4si)(__m128i)(A), \
369
+ (__v4si)(__m128i)(B), (int)(I)))
370
370
 
371
371
  #define _mm_mask_shrdi_epi32(S, U, A, B, I) \
372
- (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
373
- (__v4si)_mm_shrdi_epi32((A), (B), (I)), \
374
- (__v4si)(__m128i)(S))
372
+ ((__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
373
+ (__v4si)_mm_shrdi_epi32((A), (B), (I)), \
374
+ (__v4si)(__m128i)(S)))
375
375
 
376
376
  #define _mm_maskz_shrdi_epi32(U, A, B, I) \
377
- (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
378
- (__v4si)_mm_shrdi_epi32((A), (B), (I)), \
379
- (__v4si)_mm_setzero_si128())
377
+ ((__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
378
+ (__v4si)_mm_shrdi_epi32((A), (B), (I)), \
379
+ (__v4si)_mm_setzero_si128()))
380
380
 
381
381
  #define _mm256_shrdi_epi16(A, B, I) \
382
- (__m256i)__builtin_ia32_vpshrdw256((__v16hi)(__m256i)(A), \
383
- (__v16hi)(__m256i)(B), (int)(I))
382
+ ((__m256i)__builtin_ia32_vpshrdw256((__v16hi)(__m256i)(A), \
383
+ (__v16hi)(__m256i)(B), (int)(I)))
384
384
 
385
385
  #define _mm256_mask_shrdi_epi16(S, U, A, B, I) \
386
- (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
387
- (__v16hi)_mm256_shrdi_epi16((A), (B), (I)), \
388
- (__v16hi)(__m256i)(S))
386
+ ((__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
387
+ (__v16hi)_mm256_shrdi_epi16((A), (B), (I)), \
388
+ (__v16hi)(__m256i)(S)))
389
389
 
390
390
  #define _mm256_maskz_shrdi_epi16(U, A, B, I) \
391
- (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
392
- (__v16hi)_mm256_shrdi_epi16((A), (B), (I)), \
393
- (__v16hi)_mm256_setzero_si256())
391
+ ((__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
392
+ (__v16hi)_mm256_shrdi_epi16((A), (B), (I)), \
393
+ (__v16hi)_mm256_setzero_si256()))
394
394
 
395
395
  #define _mm_shrdi_epi16(A, B, I) \
396
- (__m128i)__builtin_ia32_vpshrdw128((__v8hi)(__m128i)(A), \
397
- (__v8hi)(__m128i)(B), (int)(I))
396
+ ((__m128i)__builtin_ia32_vpshrdw128((__v8hi)(__m128i)(A), \
397
+ (__v8hi)(__m128i)(B), (int)(I)))
398
398
 
399
399
  #define _mm_mask_shrdi_epi16(S, U, A, B, I) \
400
- (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
401
- (__v8hi)_mm_shrdi_epi16((A), (B), (I)), \
402
- (__v8hi)(__m128i)(S))
400
+ ((__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
401
+ (__v8hi)_mm_shrdi_epi16((A), (B), (I)), \
402
+ (__v8hi)(__m128i)(S)))
403
403
 
404
404
  #define _mm_maskz_shrdi_epi16(U, A, B, I) \
405
- (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
406
- (__v8hi)_mm_shrdi_epi16((A), (B), (I)), \
407
- (__v8hi)_mm_setzero_si128())
405
+ ((__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
406
+ (__v8hi)_mm_shrdi_epi16((A), (B), (I)), \
407
+ (__v8hi)_mm_setzero_si128()))
408
408
 
409
409
  static __inline__ __m256i __DEFAULT_FN_ATTRS256
410
410
  _mm256_shldv_epi64(__m256i __A, __m256i __B, __m256i __C)
@@ -25,7 +25,7 @@
25
25
  ///
26
26
  /// This intrinsic corresponds to the <c> VPDPBUSD </c> instructions.
27
27
  ///
28
- /// \operation
28
+ /// \code{.operation}
29
29
  /// FOR j := 0 to 7
30
30
  /// tmp1.word := Signed(ZeroExtend16(A.byte[4*j]) * SignExtend16(B.byte[4*j]))
31
31
  /// tmp2.word := Signed(ZeroExtend16(A.byte[4*j+1]) * SignExtend16(B.byte[4*j+1]))
@@ -34,9 +34,9 @@
34
34
  /// DST.dword[j] := S.dword[j] + tmp1 + tmp2 + tmp3 + tmp4
35
35
  /// ENDFOR
36
36
  /// DST[MAX:256] := 0
37
- /// \endoperation
37
+ /// \endcode
38
38
  #define _mm256_dpbusd_epi32(S, A, B) \
39
- (__m256i)__builtin_ia32_vpdpbusd256((__v8si)(S), (__v8si)(A), (__v8si)(B))
39
+ ((__m256i)__builtin_ia32_vpdpbusd256((__v8si)(S), (__v8si)(A), (__v8si)(B)))
40
40
 
41
41
  /// Multiply groups of 4 adjacent pairs of unsigned 8-bit integers in \a A with
42
42
  /// corresponding signed 8-bit integers in \a B, producing 4 intermediate signed
@@ -45,7 +45,7 @@
45
45
  ///
46
46
  /// This intrinsic corresponds to the <c> VPDPBUSDS </c> instructions.
47
47
  ///
48
- /// \operation
48
+ /// \code{.operation}
49
49
  /// FOR j := 0 to 7
50
50
  /// tmp1.word := Signed(ZeroExtend16(A.byte[4*j]) * SignExtend16(B.byte[4*j]))
51
51
  /// tmp2.word := Signed(ZeroExtend16(A.byte[4*j+1]) * SignExtend16(B.byte[4*j+1]))
@@ -54,9 +54,9 @@
54
54
  /// DST.dword[j] := Saturate32(S.dword[j] + tmp1 + tmp2 + tmp3 + tmp4)
55
55
  /// ENDFOR
56
56
  /// DST[MAX:256] := 0
57
- /// \endoperation
57
+ /// \endcode
58
58
  #define _mm256_dpbusds_epi32(S, A, B) \
59
- (__m256i)__builtin_ia32_vpdpbusds256((__v8si)(S), (__v8si)(A), (__v8si)(B))
59
+ ((__m256i)__builtin_ia32_vpdpbusds256((__v8si)(S), (__v8si)(A), (__v8si)(B)))
60
60
 
61
61
  /// Multiply groups of 2 adjacent pairs of signed 16-bit integers in \a A with
62
62
  /// corresponding 16-bit integers in \a B, producing 2 intermediate signed 32-bit
@@ -65,16 +65,16 @@
65
65
  ///
66
66
  /// This intrinsic corresponds to the <c> VPDPWSSD </c> instructions.
67
67
  ///
68
- /// \operation
68
+ /// \code{.operation}
69
69
  /// FOR j := 0 to 7
70
70
  /// tmp1.dword := SignExtend32(A.word[2*j]) * SignExtend32(B.word[2*j])
71
71
  /// tmp2.dword := SignExtend32(A.word[2*j+1]) * SignExtend32(B.word[2*j+1])
72
72
  /// DST.dword[j] := S.dword[j] + tmp1 + tmp2
73
73
  /// ENDFOR
74
74
  /// DST[MAX:256] := 0
75
- /// \endoperation
75
+ /// \endcode
76
76
  #define _mm256_dpwssd_epi32(S, A, B) \
77
- (__m256i)__builtin_ia32_vpdpwssd256((__v8si)(S), (__v8si)(A), (__v8si)(B))
77
+ ((__m256i)__builtin_ia32_vpdpwssd256((__v8si)(S), (__v8si)(A), (__v8si)(B)))
78
78
 
79
79
  /// Multiply groups of 2 adjacent pairs of signed 16-bit integers in \a A with
80
80
  /// corresponding 16-bit integers in \a B, producing 2 intermediate signed 32-bit
@@ -83,16 +83,16 @@
83
83
  ///
84
84
  /// This intrinsic corresponds to the <c> VPDPWSSDS </c> instructions.
85
85
  ///
86
- /// \operation
86
+ /// \code{.operation}
87
87
  /// FOR j := 0 to 7
88
88
  /// tmp1.dword := SignExtend32(A.word[2*j]) * SignExtend32(B.word[2*j])
89
89
  /// tmp2.dword := SignExtend32(A.word[2*j+1]) * SignExtend32(B.word[2*j+1])
90
90
  /// DST.dword[j] := Saturate32(S.dword[j] + tmp1 + tmp2)
91
91
  /// ENDFOR
92
92
  /// DST[MAX:256] := 0
93
- /// \endoperation
93
+ /// \endcode
94
94
  #define _mm256_dpwssds_epi32(S, A, B) \
95
- (__m256i)__builtin_ia32_vpdpwssds256((__v8si)(S), (__v8si)(A), (__v8si)(B))
95
+ ((__m256i)__builtin_ia32_vpdpwssds256((__v8si)(S), (__v8si)(A), (__v8si)(B)))
96
96
 
97
97
  /// Multiply groups of 4 adjacent pairs of unsigned 8-bit integers in \a A with
98
98
  /// corresponding signed 8-bit integers in \a B, producing 4 intermediate signed
@@ -101,7 +101,7 @@
101
101
  ///
102
102
  /// This intrinsic corresponds to the <c> VPDPBUSD </c> instructions.
103
103
  ///
104
- /// \operation
104
+ /// \code{.operation}
105
105
  /// FOR j := 0 to 3
106
106
  /// tmp1.word := Signed(ZeroExtend16(A.byte[4*j]) * SignExtend16(B.byte[4*j]))
107
107
  /// tmp2.word := Signed(ZeroExtend16(A.byte[4*j+1]) * SignExtend16(B.byte[4*j+1]))
@@ -110,9 +110,9 @@
110
110
  /// DST.dword[j] := S.dword[j] + tmp1 + tmp2 + tmp3 + tmp4
111
111
  /// ENDFOR
112
112
  /// DST[MAX:128] := 0
113
- /// \endoperation
113
+ /// \endcode
114
114
  #define _mm_dpbusd_epi32(S, A, B) \
115
- (__m128i)__builtin_ia32_vpdpbusd128((__v4si)(S), (__v4si)(A), (__v4si)(B))
115
+ ((__m128i)__builtin_ia32_vpdpbusd128((__v4si)(S), (__v4si)(A), (__v4si)(B)))
116
116
 
117
117
  /// Multiply groups of 4 adjacent pairs of unsigned 8-bit integers in \a A with
118
118
  /// corresponding signed 8-bit integers in \a B, producing 4 intermediate signed
@@ -121,7 +121,7 @@
121
121
  ///
122
122
  /// This intrinsic corresponds to the <c> VPDPBUSDS </c> instructions.
123
123
  ///
124
- /// \operation
124
+ /// \code{.operation}
125
125
  /// FOR j := 0 to 3
126
126
  /// tmp1.word := Signed(ZeroExtend16(A.byte[4*j]) * SignExtend16(B.byte[4*j]))
127
127
  /// tmp2.word := Signed(ZeroExtend16(A.byte[4*j+1]) * SignExtend16(B.byte[4*j+1]))
@@ -130,9 +130,9 @@
130
130
  /// DST.dword[j] := Saturate32(S.dword[j] + tmp1 + tmp2 + tmp3 + tmp4)
131
131
  /// ENDFOR
132
132
  /// DST[MAX:128] := 0
133
- /// \endoperation
133
+ /// \endcode
134
134
  #define _mm_dpbusds_epi32(S, A, B) \
135
- (__m128i)__builtin_ia32_vpdpbusds128((__v4si)(S), (__v4si)(A), (__v4si)(B))
135
+ ((__m128i)__builtin_ia32_vpdpbusds128((__v4si)(S), (__v4si)(A), (__v4si)(B)))
136
136
 
137
137
  /// Multiply groups of 2 adjacent pairs of signed 16-bit integers in \a A with
138
138
  /// corresponding 16-bit integers in \a B, producing 2 intermediate signed 32-bit
@@ -141,16 +141,16 @@
141
141
  ///
142
142
  /// This intrinsic corresponds to the <c> VPDPWSSD </c> instructions.
143
143
  ///
144
- /// \operation
144
+ /// \code{.operation}
145
145
  /// FOR j := 0 to 3
146
146
  /// tmp1.dword := SignExtend32(A.word[2*j]) * SignExtend32(B.word[2*j])
147
147
  /// tmp2.dword := SignExtend32(A.word[2*j+1]) * SignExtend32(B.word[2*j+1])
148
148
  /// DST.dword[j] := S.dword[j] + tmp1 + tmp2
149
149
  /// ENDFOR
150
150
  /// DST[MAX:128] := 0
151
- /// \endoperation
151
+ /// \endcode
152
152
  #define _mm_dpwssd_epi32(S, A, B) \
153
- (__m128i)__builtin_ia32_vpdpwssd128((__v4si)(S), (__v4si)(A), (__v4si)(B))
153
+ ((__m128i)__builtin_ia32_vpdpwssd128((__v4si)(S), (__v4si)(A), (__v4si)(B)))
154
154
 
155
155
  /// Multiply groups of 2 adjacent pairs of signed 16-bit integers in \a A with
156
156
  /// corresponding 16-bit integers in \a B, producing 2 intermediate signed 32-bit
@@ -159,16 +159,16 @@
159
159
  ///
160
160
  /// This intrinsic corresponds to the <c> VPDPWSSDS </c> instructions.
161
161
  ///
162
- /// \operation
162
+ /// \code{.operation}
163
163
  /// FOR j := 0 to 3
164
164
  /// tmp1.dword := SignExtend32(A.word[2*j]) * SignExtend32(B.word[2*j])
165
165
  /// tmp2.dword := SignExtend32(A.word[2*j+1]) * SignExtend32(B.word[2*j+1])
166
166
  /// DST.dword[j] := Saturate32(S.dword[j] + tmp1 + tmp2)
167
167
  /// ENDFOR
168
168
  /// DST[MAX:128] := 0
169
- /// \endoperation
169
+ /// \endcode
170
170
  #define _mm_dpwssds_epi32(S, A, B) \
171
- (__m128i)__builtin_ia32_vpdpwssds128((__v4si)(S), (__v4si)(A), (__v4si)(B))
171
+ ((__m128i)__builtin_ia32_vpdpwssds128((__v4si)(S), (__v4si)(A), (__v4si)(B)))
172
172
 
173
173
  static __inline__ __m256i __DEFAULT_FN_ATTRS256
174
174
  _mm256_mask_dpbusd_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B)
@@ -0,0 +1,177 @@
1
+ /*===----------------- avxifmaintrin.h - IFMA intrinsics -------------------===
2
+ *
3
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ * See https://llvm.org/LICENSE.txt for license information.
5
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ *
7
+ *===-----------------------------------------------------------------------===
8
+ */
9
+
10
+ #ifndef __IMMINTRIN_H
11
+ #error "Never use <avxifmaintrin.h> directly; include <immintrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __AVXIFMAINTRIN_H
15
+ #define __AVXIFMAINTRIN_H
16
+
17
+ /* Define the default attributes for the functions in this file. */
18
+ #define __DEFAULT_FN_ATTRS128 \
19
+ __attribute__((__always_inline__, __nodebug__, __target__("avxifma"), \
20
+ __min_vector_width__(128)))
21
+ #define __DEFAULT_FN_ATTRS256 \
22
+ __attribute__((__always_inline__, __nodebug__, __target__("avxifma"), \
23
+ __min_vector_width__(256)))
24
+
25
+ // must vex-encoding
26
+
27
+ /// Multiply packed unsigned 52-bit integers in each 64-bit element of \a __Y
28
+ /// and \a __Z to form a 104-bit intermediate result. Add the high 52-bit
29
+ /// unsigned integer from the intermediate result with the corresponding
30
+ /// unsigned 64-bit integer in \a __X, and store the results in \a dst.
31
+ ///
32
+ /// \headerfile <immintrin.h>
33
+ ///
34
+ /// \code
35
+ /// __m128i
36
+ /// _mm_madd52hi_avx_epu64 (__m128i __X, __m128i __Y, __m128i __Z)
37
+ /// \endcode
38
+ ///
39
+ /// This intrinsic corresponds to the \c VPMADD52HUQ instruction.
40
+ ///
41
+ /// \return
42
+ /// return __m128i dst.
43
+ /// \param __X
44
+ /// A 128-bit vector of [2 x i64]
45
+ /// \param __Y
46
+ /// A 128-bit vector of [2 x i64]
47
+ /// \param __Z
48
+ /// A 128-bit vector of [2 x i64]
49
+ ///
50
+ /// \code{.operation}
51
+ /// FOR j := 0 to 1
52
+ /// i := j*64
53
+ /// tmp[127:0] := ZeroExtend64(__Y[i+51:i]) * ZeroExtend64(__Z[i+51:i])
54
+ /// dst[i+63:i] := __X[i+63:i] + ZeroExtend64(tmp[103:52])
55
+ /// ENDFOR
56
+ /// dst[MAX:128] := 0
57
+ /// \endcode
58
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
59
+ _mm_madd52hi_avx_epu64(__m128i __X, __m128i __Y, __m128i __Z) {
60
+ return (__m128i)__builtin_ia32_vpmadd52huq128((__v2di)__X, (__v2di)__Y,
61
+ (__v2di)__Z);
62
+ }
63
+
64
+ /// Multiply packed unsigned 52-bit integers in each 64-bit element of \a __Y
65
+ /// and \a __Z to form a 104-bit intermediate result. Add the high 52-bit
66
+ /// unsigned integer from the intermediate result with the corresponding
67
+ /// unsigned 64-bit integer in \a __X, and store the results in \a dst.
68
+ ///
69
+ /// \headerfile <immintrin.h>
70
+ ///
71
+ /// \code
72
+ /// __m256i
73
+ /// _mm256_madd52hi_avx_epu64 (__m256i __X, __m256i __Y, __m256i __Z)
74
+ /// \endcode
75
+ ///
76
+ /// This intrinsic corresponds to the \c VPMADD52HUQ instruction.
77
+ ///
78
+ /// \return
79
+ /// return __m256i dst.
80
+ /// \param __X
81
+ /// A 256-bit vector of [4 x i64]
82
+ /// \param __Y
83
+ /// A 256-bit vector of [4 x i64]
84
+ /// \param __Z
85
+ /// A 256-bit vector of [4 x i64]
86
+ ///
87
+ /// \code{.operation}
88
+ /// FOR j := 0 to 3
89
+ /// i := j*64
90
+ /// tmp[127:0] := ZeroExtend64(__Y[i+51:i]) * ZeroExtend64(__Z[i+51:i])
91
+ /// dst[i+63:i] := __X[i+63:i] + ZeroExtend64(tmp[103:52])
92
+ /// ENDFOR
93
+ /// dst[MAX:256] := 0
94
+ /// \endcode
95
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
96
+ _mm256_madd52hi_avx_epu64(__m256i __X, __m256i __Y, __m256i __Z) {
97
+ return (__m256i)__builtin_ia32_vpmadd52huq256((__v4di)__X, (__v4di)__Y,
98
+ (__v4di)__Z);
99
+ }
100
+
101
+ /// Multiply packed unsigned 52-bit integers in each 64-bit element of \a __Y
102
+ /// and \a __Z to form a 104-bit intermediate result. Add the low 52-bit
103
+ /// unsigned integer from the intermediate result with the corresponding
104
+ /// unsigned 64-bit integer in \a __X, and store the results in \a dst.
105
+ ///
106
+ /// \headerfile <immintrin.h>
107
+ ///
108
+ /// \code
109
+ /// __m128i
110
+ /// _mm_madd52lo_avx_epu64 (__m128i __X, __m128i __Y, __m128i __Z)
111
+ /// \endcode
112
+ ///
113
+ /// This intrinsic corresponds to the \c VPMADD52LUQ instruction.
114
+ ///
115
+ /// \return
116
+ /// return __m128i dst.
117
+ /// \param __X
118
+ /// A 128-bit vector of [2 x i64]
119
+ /// \param __Y
120
+ /// A 128-bit vector of [2 x i64]
121
+ /// \param __Z
122
+ /// A 128-bit vector of [2 x i64]
123
+ ///
124
+ /// \code{.operation}
125
+ /// FOR j := 0 to 1
126
+ /// i := j*64
127
+ /// tmp[127:0] := ZeroExtend64(__Y[i+51:i]) * ZeroExtend64(__Z[i+51:i])
128
+ /// dst[i+63:i] := __X[i+63:i] + ZeroExtend64(tmp[51:0])
129
+ /// ENDFOR
130
+ /// dst[MAX:128] := 0
131
+ /// \endcode
132
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128
133
+ _mm_madd52lo_avx_epu64(__m128i __X, __m128i __Y, __m128i __Z) {
134
+ return (__m128i)__builtin_ia32_vpmadd52luq128((__v2di)__X, (__v2di)__Y,
135
+ (__v2di)__Z);
136
+ }
137
+
138
+ /// Multiply packed unsigned 52-bit integers in each 64-bit element of \a __Y
139
+ /// and \a __Z to form a 104-bit intermediate result. Add the low 52-bit
140
+ /// unsigned integer from the intermediate result with the corresponding
141
+ /// unsigned 64-bit integer in \a __X, and store the results in \a dst.
142
+ ///
143
+ /// \headerfile <immintrin.h>
144
+ ///
145
+ /// \code
146
+ /// __m256i
147
+ /// _mm256_madd52lo_avx_epu64 (__m256i __X, __m256i __Y, __m256i __Z)
148
+ /// \endcode
149
+ ///
150
+ /// This intrinsic corresponds to the \c VPMADD52LUQ instruction.
151
+ ///
152
+ /// \return
153
+ /// return __m256i dst.
154
+ /// \param __X
155
+ /// A 256-bit vector of [4 x i64]
156
+ /// \param __Y
157
+ /// A 256-bit vector of [4 x i64]
158
+ /// \param __Z
159
+ /// A 256-bit vector of [4 x i64]
160
+ ///
161
+ /// \code{.operation}
162
+ /// FOR j := 0 to 3
163
+ /// i := j*64
164
+ /// tmp[127:0] := ZeroExtend64(__Y[i+51:i]) * ZeroExtend64(__Z[i+51:i])
165
+ /// dst[i+63:i] := __X[i+63:i] + ZeroExtend64(tmp[51:0])
166
+ /// ENDFOR
167
+ /// dst[MAX:256] := 0
168
+ /// \endcode
169
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256
170
+ _mm256_madd52lo_avx_epu64(__m256i __X, __m256i __Y, __m256i __Z) {
171
+ return (__m256i)__builtin_ia32_vpmadd52luq256((__v4di)__X, (__v4di)__Y,
172
+ (__v4di)__Z);
173
+ }
174
+ #undef __DEFAULT_FN_ATTRS128
175
+ #undef __DEFAULT_FN_ATTRS256
176
+
177
+ #endif // __AVXIFMAINTRIN_H