@cpp-linter/clang-tidy-win32-x64 12.0.1

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 (164) hide show
  1. package/LICENSE.TXT +279 -0
  2. package/README.md +7 -0
  3. package/bin/clang-tidy.exe +4 -0
  4. package/lib/clang/12.0.1/include/__clang_cuda_builtin_vars.h +121 -0
  5. package/lib/clang/12.0.1/include/__clang_cuda_cmath.h +512 -0
  6. package/lib/clang/12.0.1/include/__clang_cuda_complex_builtins.h +285 -0
  7. package/lib/clang/12.0.1/include/__clang_cuda_device_functions.h +1486 -0
  8. package/lib/clang/12.0.1/include/__clang_cuda_intrinsics.h +486 -0
  9. package/lib/clang/12.0.1/include/__clang_cuda_libdevice_declares.h +462 -0
  10. package/lib/clang/12.0.1/include/__clang_cuda_math.h +348 -0
  11. package/lib/clang/12.0.1/include/__clang_cuda_math_forward_declares.h +284 -0
  12. package/lib/clang/12.0.1/include/__clang_cuda_runtime_wrapper.h +443 -0
  13. package/lib/clang/12.0.1/include/__clang_hip_cmath.h +664 -0
  14. package/lib/clang/12.0.1/include/__clang_hip_libdevice_declares.h +334 -0
  15. package/lib/clang/12.0.1/include/__clang_hip_math.h +1275 -0
  16. package/lib/clang/12.0.1/include/__clang_hip_runtime_wrapper.h +69 -0
  17. package/lib/clang/12.0.1/include/__stddef_max_align_t.h +27 -0
  18. package/lib/clang/12.0.1/include/__wmmintrin_aes.h +140 -0
  19. package/lib/clang/12.0.1/include/__wmmintrin_pclmul.h +48 -0
  20. package/lib/clang/12.0.1/include/adxintrin.h +72 -0
  21. package/lib/clang/12.0.1/include/altivec.h +18239 -0
  22. package/lib/clang/12.0.1/include/ammintrin.h +179 -0
  23. package/lib/clang/12.0.1/include/amxintrin.h +278 -0
  24. package/lib/clang/12.0.1/include/arm64intr.h +35 -0
  25. package/lib/clang/12.0.1/include/arm_acle.h +716 -0
  26. package/lib/clang/12.0.1/include/arm_bf16.h +20 -0
  27. package/lib/clang/12.0.1/include/arm_cde.h +410 -0
  28. package/lib/clang/12.0.1/include/arm_cmse.h +217 -0
  29. package/lib/clang/12.0.1/include/arm_fp16.h +596 -0
  30. package/lib/clang/12.0.1/include/arm_mve.h +19187 -0
  31. package/lib/clang/12.0.1/include/arm_neon.h +68982 -0
  32. package/lib/clang/12.0.1/include/arm_sve.h +18148 -0
  33. package/lib/clang/12.0.1/include/armintr.h +31 -0
  34. package/lib/clang/12.0.1/include/avx2intrin.h +1148 -0
  35. package/lib/clang/12.0.1/include/avx512bf16intrin.h +279 -0
  36. package/lib/clang/12.0.1/include/avx512bitalgintrin.h +83 -0
  37. package/lib/clang/12.0.1/include/avx512bwintrin.h +2024 -0
  38. package/lib/clang/12.0.1/include/avx512cdintrin.h +123 -0
  39. package/lib/clang/12.0.1/include/avx512dqintrin.h +1377 -0
  40. package/lib/clang/12.0.1/include/avx512erintrin.h +271 -0
  41. package/lib/clang/12.0.1/include/avx512fintrin.h +9618 -0
  42. package/lib/clang/12.0.1/include/avx512ifmaintrin.h +68 -0
  43. package/lib/clang/12.0.1/include/avx512ifmavlintrin.h +119 -0
  44. package/lib/clang/12.0.1/include/avx512pfintrin.h +97 -0
  45. package/lib/clang/12.0.1/include/avx512vbmi2intrin.h +357 -0
  46. package/lib/clang/12.0.1/include/avx512vbmiintrin.h +105 -0
  47. package/lib/clang/12.0.1/include/avx512vbmivlintrin.h +188 -0
  48. package/lib/clang/12.0.1/include/avx512vlbf16intrin.h +474 -0
  49. package/lib/clang/12.0.1/include/avx512vlbitalgintrin.h +145 -0
  50. package/lib/clang/12.0.1/include/avx512vlbwintrin.h +2809 -0
  51. package/lib/clang/12.0.1/include/avx512vlcdintrin.h +225 -0
  52. package/lib/clang/12.0.1/include/avx512vldqintrin.h +1167 -0
  53. package/lib/clang/12.0.1/include/avx512vlintrin.h +8445 -0
  54. package/lib/clang/12.0.1/include/avx512vlvbmi2intrin.h +689 -0
  55. package/lib/clang/12.0.1/include/avx512vlvnniintrin.h +304 -0
  56. package/lib/clang/12.0.1/include/avx512vlvp2intersectintrin.h +121 -0
  57. package/lib/clang/12.0.1/include/avx512vnniintrin.h +115 -0
  58. package/lib/clang/12.0.1/include/avx512vp2intersectintrin.h +77 -0
  59. package/lib/clang/12.0.1/include/avx512vpopcntdqintrin.h +54 -0
  60. package/lib/clang/12.0.1/include/avx512vpopcntdqvlintrin.h +91 -0
  61. package/lib/clang/12.0.1/include/avxintrin.h +5053 -0
  62. package/lib/clang/12.0.1/include/avxvnniintrin.h +225 -0
  63. package/lib/clang/12.0.1/include/bmi2intrin.h +81 -0
  64. package/lib/clang/12.0.1/include/bmiintrin.h +427 -0
  65. package/lib/clang/12.0.1/include/cet.h +66 -0
  66. package/lib/clang/12.0.1/include/cetintrin.h +99 -0
  67. package/lib/clang/12.0.1/include/cldemoteintrin.h +36 -0
  68. package/lib/clang/12.0.1/include/clflushoptintrin.h +27 -0
  69. package/lib/clang/12.0.1/include/clwbintrin.h +38 -0
  70. package/lib/clang/12.0.1/include/clzerointrin.h +36 -0
  71. package/lib/clang/12.0.1/include/cpuid.h +319 -0
  72. package/lib/clang/12.0.1/include/cuda_wrappers/algorithm +116 -0
  73. package/lib/clang/12.0.1/include/cuda_wrappers/complex +82 -0
  74. package/lib/clang/12.0.1/include/cuda_wrappers/new +106 -0
  75. package/lib/clang/12.0.1/include/emmintrin.h +4981 -0
  76. package/lib/clang/12.0.1/include/enqcmdintrin.h +63 -0
  77. package/lib/clang/12.0.1/include/f16cintrin.h +162 -0
  78. package/lib/clang/12.0.1/include/float.h +152 -0
  79. package/lib/clang/12.0.1/include/fma4intrin.h +218 -0
  80. package/lib/clang/12.0.1/include/fmaintrin.h +216 -0
  81. package/lib/clang/12.0.1/include/fxsrintrin.h +91 -0
  82. package/lib/clang/12.0.1/include/gfniintrin.h +193 -0
  83. package/lib/clang/12.0.1/include/hresetintrin.h +49 -0
  84. package/lib/clang/12.0.1/include/htmintrin.h +212 -0
  85. package/lib/clang/12.0.1/include/htmxlintrin.h +345 -0
  86. package/lib/clang/12.0.1/include/ia32intrin.h +441 -0
  87. package/lib/clang/12.0.1/include/immintrin.h +600 -0
  88. package/lib/clang/12.0.1/include/intrin.h +585 -0
  89. package/lib/clang/12.0.1/include/inttypes.h +97 -0
  90. package/lib/clang/12.0.1/include/invpcidintrin.h +23 -0
  91. package/lib/clang/12.0.1/include/iso646.h +27 -0
  92. package/lib/clang/12.0.1/include/keylockerintrin.h +506 -0
  93. package/lib/clang/12.0.1/include/limits.h +102 -0
  94. package/lib/clang/12.0.1/include/lwpintrin.h +136 -0
  95. package/lib/clang/12.0.1/include/lzcntintrin.h +104 -0
  96. package/lib/clang/12.0.1/include/mm3dnow.h +157 -0
  97. package/lib/clang/12.0.1/include/mm_malloc.h +67 -0
  98. package/lib/clang/12.0.1/include/mmintrin.h +1558 -0
  99. package/lib/clang/12.0.1/include/module.modulemap +164 -0
  100. package/lib/clang/12.0.1/include/movdirintrin.h +49 -0
  101. package/lib/clang/12.0.1/include/msa.h +573 -0
  102. package/lib/clang/12.0.1/include/mwaitxintrin.h +33 -0
  103. package/lib/clang/12.0.1/include/nmmintrin.h +16 -0
  104. package/lib/clang/12.0.1/include/opencl-c-base.h +589 -0
  105. package/lib/clang/12.0.1/include/opencl-c.h +17162 -0
  106. package/lib/clang/12.0.1/include/openmp_wrappers/__clang_openmp_device_functions.h +42 -0
  107. package/lib/clang/12.0.1/include/openmp_wrappers/cmath +78 -0
  108. package/lib/clang/12.0.1/include/openmp_wrappers/complex +52 -0
  109. package/lib/clang/12.0.1/include/openmp_wrappers/complex.h +27 -0
  110. package/lib/clang/12.0.1/include/openmp_wrappers/complex_cmath.h +388 -0
  111. package/lib/clang/12.0.1/include/openmp_wrappers/math.h +51 -0
  112. package/lib/clang/12.0.1/include/openmp_wrappers/new +70 -0
  113. package/lib/clang/12.0.1/include/pconfigintrin.h +40 -0
  114. package/lib/clang/12.0.1/include/pkuintrin.h +34 -0
  115. package/lib/clang/12.0.1/include/pmmintrin.h +290 -0
  116. package/lib/clang/12.0.1/include/popcntintrin.h +59 -0
  117. package/lib/clang/12.0.1/include/ppc_wrappers/emmintrin.h +2324 -0
  118. package/lib/clang/12.0.1/include/ppc_wrappers/mm_malloc.h +50 -0
  119. package/lib/clang/12.0.1/include/ppc_wrappers/mmintrin.h +1450 -0
  120. package/lib/clang/12.0.1/include/ppc_wrappers/pmmintrin.h +150 -0
  121. package/lib/clang/12.0.1/include/ppc_wrappers/smmintrin.h +109 -0
  122. package/lib/clang/12.0.1/include/ppc_wrappers/tmmintrin.h +495 -0
  123. package/lib/clang/12.0.1/include/ppc_wrappers/xmmintrin.h +1843 -0
  124. package/lib/clang/12.0.1/include/prfchwintrin.h +55 -0
  125. package/lib/clang/12.0.1/include/ptwriteintrin.h +37 -0
  126. package/lib/clang/12.0.1/include/rdseedintrin.h +42 -0
  127. package/lib/clang/12.0.1/include/rtmintrin.h +45 -0
  128. package/lib/clang/12.0.1/include/s390intrin.h +25 -0
  129. package/lib/clang/12.0.1/include/serializeintrin.h +30 -0
  130. package/lib/clang/12.0.1/include/sgxintrin.h +60 -0
  131. package/lib/clang/12.0.1/include/shaintrin.h +61 -0
  132. package/lib/clang/12.0.1/include/smmintrin.h +2430 -0
  133. package/lib/clang/12.0.1/include/stdalign.h +21 -0
  134. package/lib/clang/12.0.1/include/stdarg.h +35 -0
  135. package/lib/clang/12.0.1/include/stdatomic.h +176 -0
  136. package/lib/clang/12.0.1/include/stdbool.h +31 -0
  137. package/lib/clang/12.0.1/include/stddef.h +121 -0
  138. package/lib/clang/12.0.1/include/stdint.h +693 -0
  139. package/lib/clang/12.0.1/include/stdnoreturn.h +16 -0
  140. package/lib/clang/12.0.1/include/tbmintrin.h +140 -0
  141. package/lib/clang/12.0.1/include/tgmath.h +1368 -0
  142. package/lib/clang/12.0.1/include/tmmintrin.h +771 -0
  143. package/lib/clang/12.0.1/include/tsxldtrkintrin.h +56 -0
  144. package/lib/clang/12.0.1/include/uintrintrin.h +150 -0
  145. package/lib/clang/12.0.1/include/unwind.h +327 -0
  146. package/lib/clang/12.0.1/include/vadefs.h +51 -0
  147. package/lib/clang/12.0.1/include/vaesintrin.h +84 -0
  148. package/lib/clang/12.0.1/include/varargs.h +12 -0
  149. package/lib/clang/12.0.1/include/vecintrin.h +10998 -0
  150. package/lib/clang/12.0.1/include/vpclmulqdqintrin.h +28 -0
  151. package/lib/clang/12.0.1/include/waitpkgintrin.h +42 -0
  152. package/lib/clang/12.0.1/include/wasm_simd128.h +1167 -0
  153. package/lib/clang/12.0.1/include/wbnoinvdintrin.h +24 -0
  154. package/lib/clang/12.0.1/include/wmmintrin.h +19 -0
  155. package/lib/clang/12.0.1/include/x86gprintrin.h +23 -0
  156. package/lib/clang/12.0.1/include/x86intrin.h +63 -0
  157. package/lib/clang/12.0.1/include/xmmintrin.h +3008 -0
  158. package/lib/clang/12.0.1/include/xopintrin.h +770 -0
  159. package/lib/clang/12.0.1/include/xsavecintrin.h +34 -0
  160. package/lib/clang/12.0.1/include/xsaveintrin.h +63 -0
  161. package/lib/clang/12.0.1/include/xsaveoptintrin.h +34 -0
  162. package/lib/clang/12.0.1/include/xsavesintrin.h +44 -0
  163. package/lib/clang/12.0.1/include/xtestintrin.h +27 -0
  164. package/package.json +32 -0
@@ -0,0 +1,2024 @@
1
+ /*===------------- avx512bwintrin.h - AVX512BW intrinsics ------------------===
2
+ *
3
+ *
4
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5
+ * See https://llvm.org/LICENSE.txt for license information.
6
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7
+ *
8
+ *===-----------------------------------------------------------------------===
9
+ */
10
+ #ifndef __IMMINTRIN_H
11
+ #error "Never use <avx512bwintrin.h> directly; include <immintrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __AVX512BWINTRIN_H
15
+ #define __AVX512BWINTRIN_H
16
+
17
+ typedef unsigned int __mmask32;
18
+ typedef unsigned long long __mmask64;
19
+
20
+ /* Define the default attributes for the functions in this file. */
21
+ #define __DEFAULT_FN_ATTRS512 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512)))
22
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512bw")))
23
+
24
+ static __inline __mmask32 __DEFAULT_FN_ATTRS
25
+ _knot_mask32(__mmask32 __M)
26
+ {
27
+ return __builtin_ia32_knotsi(__M);
28
+ }
29
+
30
+ static __inline __mmask64 __DEFAULT_FN_ATTRS
31
+ _knot_mask64(__mmask64 __M)
32
+ {
33
+ return __builtin_ia32_knotdi(__M);
34
+ }
35
+
36
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS
37
+ _kand_mask32(__mmask32 __A, __mmask32 __B)
38
+ {
39
+ return (__mmask32)__builtin_ia32_kandsi((__mmask32)__A, (__mmask32)__B);
40
+ }
41
+
42
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS
43
+ _kand_mask64(__mmask64 __A, __mmask64 __B)
44
+ {
45
+ return (__mmask64)__builtin_ia32_kanddi((__mmask64)__A, (__mmask64)__B);
46
+ }
47
+
48
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS
49
+ _kandn_mask32(__mmask32 __A, __mmask32 __B)
50
+ {
51
+ return (__mmask32)__builtin_ia32_kandnsi((__mmask32)__A, (__mmask32)__B);
52
+ }
53
+
54
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS
55
+ _kandn_mask64(__mmask64 __A, __mmask64 __B)
56
+ {
57
+ return (__mmask64)__builtin_ia32_kandndi((__mmask64)__A, (__mmask64)__B);
58
+ }
59
+
60
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS
61
+ _kor_mask32(__mmask32 __A, __mmask32 __B)
62
+ {
63
+ return (__mmask32)__builtin_ia32_korsi((__mmask32)__A, (__mmask32)__B);
64
+ }
65
+
66
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS
67
+ _kor_mask64(__mmask64 __A, __mmask64 __B)
68
+ {
69
+ return (__mmask64)__builtin_ia32_kordi((__mmask64)__A, (__mmask64)__B);
70
+ }
71
+
72
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS
73
+ _kxnor_mask32(__mmask32 __A, __mmask32 __B)
74
+ {
75
+ return (__mmask32)__builtin_ia32_kxnorsi((__mmask32)__A, (__mmask32)__B);
76
+ }
77
+
78
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS
79
+ _kxnor_mask64(__mmask64 __A, __mmask64 __B)
80
+ {
81
+ return (__mmask64)__builtin_ia32_kxnordi((__mmask64)__A, (__mmask64)__B);
82
+ }
83
+
84
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS
85
+ _kxor_mask32(__mmask32 __A, __mmask32 __B)
86
+ {
87
+ return (__mmask32)__builtin_ia32_kxorsi((__mmask32)__A, (__mmask32)__B);
88
+ }
89
+
90
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS
91
+ _kxor_mask64(__mmask64 __A, __mmask64 __B)
92
+ {
93
+ return (__mmask64)__builtin_ia32_kxordi((__mmask64)__A, (__mmask64)__B);
94
+ }
95
+
96
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
97
+ _kortestc_mask32_u8(__mmask32 __A, __mmask32 __B)
98
+ {
99
+ return (unsigned char)__builtin_ia32_kortestcsi(__A, __B);
100
+ }
101
+
102
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
103
+ _kortestz_mask32_u8(__mmask32 __A, __mmask32 __B)
104
+ {
105
+ return (unsigned char)__builtin_ia32_kortestzsi(__A, __B);
106
+ }
107
+
108
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
109
+ _kortest_mask32_u8(__mmask32 __A, __mmask32 __B, unsigned char *__C) {
110
+ *__C = (unsigned char)__builtin_ia32_kortestcsi(__A, __B);
111
+ return (unsigned char)__builtin_ia32_kortestzsi(__A, __B);
112
+ }
113
+
114
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
115
+ _kortestc_mask64_u8(__mmask64 __A, __mmask64 __B)
116
+ {
117
+ return (unsigned char)__builtin_ia32_kortestcdi(__A, __B);
118
+ }
119
+
120
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
121
+ _kortestz_mask64_u8(__mmask64 __A, __mmask64 __B)
122
+ {
123
+ return (unsigned char)__builtin_ia32_kortestzdi(__A, __B);
124
+ }
125
+
126
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
127
+ _kortest_mask64_u8(__mmask64 __A, __mmask64 __B, unsigned char *__C) {
128
+ *__C = (unsigned char)__builtin_ia32_kortestcdi(__A, __B);
129
+ return (unsigned char)__builtin_ia32_kortestzdi(__A, __B);
130
+ }
131
+
132
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
133
+ _ktestc_mask32_u8(__mmask32 __A, __mmask32 __B)
134
+ {
135
+ return (unsigned char)__builtin_ia32_ktestcsi(__A, __B);
136
+ }
137
+
138
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
139
+ _ktestz_mask32_u8(__mmask32 __A, __mmask32 __B)
140
+ {
141
+ return (unsigned char)__builtin_ia32_ktestzsi(__A, __B);
142
+ }
143
+
144
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
145
+ _ktest_mask32_u8(__mmask32 __A, __mmask32 __B, unsigned char *__C) {
146
+ *__C = (unsigned char)__builtin_ia32_ktestcsi(__A, __B);
147
+ return (unsigned char)__builtin_ia32_ktestzsi(__A, __B);
148
+ }
149
+
150
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
151
+ _ktestc_mask64_u8(__mmask64 __A, __mmask64 __B)
152
+ {
153
+ return (unsigned char)__builtin_ia32_ktestcdi(__A, __B);
154
+ }
155
+
156
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
157
+ _ktestz_mask64_u8(__mmask64 __A, __mmask64 __B)
158
+ {
159
+ return (unsigned char)__builtin_ia32_ktestzdi(__A, __B);
160
+ }
161
+
162
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
163
+ _ktest_mask64_u8(__mmask64 __A, __mmask64 __B, unsigned char *__C) {
164
+ *__C = (unsigned char)__builtin_ia32_ktestcdi(__A, __B);
165
+ return (unsigned char)__builtin_ia32_ktestzdi(__A, __B);
166
+ }
167
+
168
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS
169
+ _kadd_mask32(__mmask32 __A, __mmask32 __B)
170
+ {
171
+ return (__mmask32)__builtin_ia32_kaddsi((__mmask32)__A, (__mmask32)__B);
172
+ }
173
+
174
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS
175
+ _kadd_mask64(__mmask64 __A, __mmask64 __B)
176
+ {
177
+ return (__mmask64)__builtin_ia32_kadddi((__mmask64)__A, (__mmask64)__B);
178
+ }
179
+
180
+ #define _kshiftli_mask32(A, I) \
181
+ (__mmask32)__builtin_ia32_kshiftlisi((__mmask32)(A), (unsigned int)(I))
182
+
183
+ #define _kshiftri_mask32(A, I) \
184
+ (__mmask32)__builtin_ia32_kshiftrisi((__mmask32)(A), (unsigned int)(I))
185
+
186
+ #define _kshiftli_mask64(A, I) \
187
+ (__mmask64)__builtin_ia32_kshiftlidi((__mmask64)(A), (unsigned int)(I))
188
+
189
+ #define _kshiftri_mask64(A, I) \
190
+ (__mmask64)__builtin_ia32_kshiftridi((__mmask64)(A), (unsigned int)(I))
191
+
192
+ static __inline__ unsigned int __DEFAULT_FN_ATTRS
193
+ _cvtmask32_u32(__mmask32 __A) {
194
+ return (unsigned int)__builtin_ia32_kmovd((__mmask32)__A);
195
+ }
196
+
197
+ static __inline__ unsigned long long __DEFAULT_FN_ATTRS
198
+ _cvtmask64_u64(__mmask64 __A) {
199
+ return (unsigned long long)__builtin_ia32_kmovq((__mmask64)__A);
200
+ }
201
+
202
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS
203
+ _cvtu32_mask32(unsigned int __A) {
204
+ return (__mmask32)__builtin_ia32_kmovd((__mmask32)__A);
205
+ }
206
+
207
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS
208
+ _cvtu64_mask64(unsigned long long __A) {
209
+ return (__mmask64)__builtin_ia32_kmovq((__mmask64)__A);
210
+ }
211
+
212
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS
213
+ _load_mask32(__mmask32 *__A) {
214
+ return (__mmask32)__builtin_ia32_kmovd(*(__mmask32 *)__A);
215
+ }
216
+
217
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS
218
+ _load_mask64(__mmask64 *__A) {
219
+ return (__mmask64)__builtin_ia32_kmovq(*(__mmask64 *)__A);
220
+ }
221
+
222
+ static __inline__ void __DEFAULT_FN_ATTRS
223
+ _store_mask32(__mmask32 *__A, __mmask32 __B) {
224
+ *(__mmask32 *)__A = __builtin_ia32_kmovd((__mmask32)__B);
225
+ }
226
+
227
+ static __inline__ void __DEFAULT_FN_ATTRS
228
+ _store_mask64(__mmask64 *__A, __mmask64 __B) {
229
+ *(__mmask64 *)__A = __builtin_ia32_kmovq((__mmask64)__B);
230
+ }
231
+
232
+ /* Integer compare */
233
+
234
+ #define _mm512_cmp_epi8_mask(a, b, p) \
235
+ (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \
236
+ (__v64qi)(__m512i)(b), (int)(p), \
237
+ (__mmask64)-1)
238
+
239
+ #define _mm512_mask_cmp_epi8_mask(m, a, b, p) \
240
+ (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \
241
+ (__v64qi)(__m512i)(b), (int)(p), \
242
+ (__mmask64)(m))
243
+
244
+ #define _mm512_cmp_epu8_mask(a, b, p) \
245
+ (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \
246
+ (__v64qi)(__m512i)(b), (int)(p), \
247
+ (__mmask64)-1)
248
+
249
+ #define _mm512_mask_cmp_epu8_mask(m, a, b, p) \
250
+ (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \
251
+ (__v64qi)(__m512i)(b), (int)(p), \
252
+ (__mmask64)(m))
253
+
254
+ #define _mm512_cmp_epi16_mask(a, b, p) \
255
+ (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \
256
+ (__v32hi)(__m512i)(b), (int)(p), \
257
+ (__mmask32)-1)
258
+
259
+ #define _mm512_mask_cmp_epi16_mask(m, a, b, p) \
260
+ (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \
261
+ (__v32hi)(__m512i)(b), (int)(p), \
262
+ (__mmask32)(m))
263
+
264
+ #define _mm512_cmp_epu16_mask(a, b, p) \
265
+ (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \
266
+ (__v32hi)(__m512i)(b), (int)(p), \
267
+ (__mmask32)-1)
268
+
269
+ #define _mm512_mask_cmp_epu16_mask(m, a, b, p) \
270
+ (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \
271
+ (__v32hi)(__m512i)(b), (int)(p), \
272
+ (__mmask32)(m))
273
+
274
+ #define _mm512_cmpeq_epi8_mask(A, B) \
275
+ _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_EQ)
276
+ #define _mm512_mask_cmpeq_epi8_mask(k, A, B) \
277
+ _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_EQ)
278
+ #define _mm512_cmpge_epi8_mask(A, B) \
279
+ _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_GE)
280
+ #define _mm512_mask_cmpge_epi8_mask(k, A, B) \
281
+ _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GE)
282
+ #define _mm512_cmpgt_epi8_mask(A, B) \
283
+ _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_GT)
284
+ #define _mm512_mask_cmpgt_epi8_mask(k, A, B) \
285
+ _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GT)
286
+ #define _mm512_cmple_epi8_mask(A, B) \
287
+ _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_LE)
288
+ #define _mm512_mask_cmple_epi8_mask(k, A, B) \
289
+ _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LE)
290
+ #define _mm512_cmplt_epi8_mask(A, B) \
291
+ _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_LT)
292
+ #define _mm512_mask_cmplt_epi8_mask(k, A, B) \
293
+ _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LT)
294
+ #define _mm512_cmpneq_epi8_mask(A, B) \
295
+ _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_NE)
296
+ #define _mm512_mask_cmpneq_epi8_mask(k, A, B) \
297
+ _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_NE)
298
+
299
+ #define _mm512_cmpeq_epu8_mask(A, B) \
300
+ _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_EQ)
301
+ #define _mm512_mask_cmpeq_epu8_mask(k, A, B) \
302
+ _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_EQ)
303
+ #define _mm512_cmpge_epu8_mask(A, B) \
304
+ _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_GE)
305
+ #define _mm512_mask_cmpge_epu8_mask(k, A, B) \
306
+ _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GE)
307
+ #define _mm512_cmpgt_epu8_mask(A, B) \
308
+ _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_GT)
309
+ #define _mm512_mask_cmpgt_epu8_mask(k, A, B) \
310
+ _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GT)
311
+ #define _mm512_cmple_epu8_mask(A, B) \
312
+ _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_LE)
313
+ #define _mm512_mask_cmple_epu8_mask(k, A, B) \
314
+ _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LE)
315
+ #define _mm512_cmplt_epu8_mask(A, B) \
316
+ _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_LT)
317
+ #define _mm512_mask_cmplt_epu8_mask(k, A, B) \
318
+ _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LT)
319
+ #define _mm512_cmpneq_epu8_mask(A, B) \
320
+ _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_NE)
321
+ #define _mm512_mask_cmpneq_epu8_mask(k, A, B) \
322
+ _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_NE)
323
+
324
+ #define _mm512_cmpeq_epi16_mask(A, B) \
325
+ _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_EQ)
326
+ #define _mm512_mask_cmpeq_epi16_mask(k, A, B) \
327
+ _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_EQ)
328
+ #define _mm512_cmpge_epi16_mask(A, B) \
329
+ _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_GE)
330
+ #define _mm512_mask_cmpge_epi16_mask(k, A, B) \
331
+ _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GE)
332
+ #define _mm512_cmpgt_epi16_mask(A, B) \
333
+ _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_GT)
334
+ #define _mm512_mask_cmpgt_epi16_mask(k, A, B) \
335
+ _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GT)
336
+ #define _mm512_cmple_epi16_mask(A, B) \
337
+ _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_LE)
338
+ #define _mm512_mask_cmple_epi16_mask(k, A, B) \
339
+ _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LE)
340
+ #define _mm512_cmplt_epi16_mask(A, B) \
341
+ _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_LT)
342
+ #define _mm512_mask_cmplt_epi16_mask(k, A, B) \
343
+ _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LT)
344
+ #define _mm512_cmpneq_epi16_mask(A, B) \
345
+ _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_NE)
346
+ #define _mm512_mask_cmpneq_epi16_mask(k, A, B) \
347
+ _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_NE)
348
+
349
+ #define _mm512_cmpeq_epu16_mask(A, B) \
350
+ _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_EQ)
351
+ #define _mm512_mask_cmpeq_epu16_mask(k, A, B) \
352
+ _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_EQ)
353
+ #define _mm512_cmpge_epu16_mask(A, B) \
354
+ _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_GE)
355
+ #define _mm512_mask_cmpge_epu16_mask(k, A, B) \
356
+ _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GE)
357
+ #define _mm512_cmpgt_epu16_mask(A, B) \
358
+ _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_GT)
359
+ #define _mm512_mask_cmpgt_epu16_mask(k, A, B) \
360
+ _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GT)
361
+ #define _mm512_cmple_epu16_mask(A, B) \
362
+ _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_LE)
363
+ #define _mm512_mask_cmple_epu16_mask(k, A, B) \
364
+ _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LE)
365
+ #define _mm512_cmplt_epu16_mask(A, B) \
366
+ _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_LT)
367
+ #define _mm512_mask_cmplt_epu16_mask(k, A, B) \
368
+ _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LT)
369
+ #define _mm512_cmpneq_epu16_mask(A, B) \
370
+ _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_NE)
371
+ #define _mm512_mask_cmpneq_epu16_mask(k, A, B) \
372
+ _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_NE)
373
+
374
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
375
+ _mm512_add_epi8 (__m512i __A, __m512i __B) {
376
+ return (__m512i) ((__v64qu) __A + (__v64qu) __B);
377
+ }
378
+
379
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
380
+ _mm512_mask_add_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
381
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
382
+ (__v64qi)_mm512_add_epi8(__A, __B),
383
+ (__v64qi)__W);
384
+ }
385
+
386
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
387
+ _mm512_maskz_add_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
388
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
389
+ (__v64qi)_mm512_add_epi8(__A, __B),
390
+ (__v64qi)_mm512_setzero_si512());
391
+ }
392
+
393
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
394
+ _mm512_sub_epi8 (__m512i __A, __m512i __B) {
395
+ return (__m512i) ((__v64qu) __A - (__v64qu) __B);
396
+ }
397
+
398
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
399
+ _mm512_mask_sub_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
400
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
401
+ (__v64qi)_mm512_sub_epi8(__A, __B),
402
+ (__v64qi)__W);
403
+ }
404
+
405
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
406
+ _mm512_maskz_sub_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
407
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
408
+ (__v64qi)_mm512_sub_epi8(__A, __B),
409
+ (__v64qi)_mm512_setzero_si512());
410
+ }
411
+
412
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
413
+ _mm512_add_epi16 (__m512i __A, __m512i __B) {
414
+ return (__m512i) ((__v32hu) __A + (__v32hu) __B);
415
+ }
416
+
417
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
418
+ _mm512_mask_add_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
419
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
420
+ (__v32hi)_mm512_add_epi16(__A, __B),
421
+ (__v32hi)__W);
422
+ }
423
+
424
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
425
+ _mm512_maskz_add_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
426
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
427
+ (__v32hi)_mm512_add_epi16(__A, __B),
428
+ (__v32hi)_mm512_setzero_si512());
429
+ }
430
+
431
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
432
+ _mm512_sub_epi16 (__m512i __A, __m512i __B) {
433
+ return (__m512i) ((__v32hu) __A - (__v32hu) __B);
434
+ }
435
+
436
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
437
+ _mm512_mask_sub_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
438
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
439
+ (__v32hi)_mm512_sub_epi16(__A, __B),
440
+ (__v32hi)__W);
441
+ }
442
+
443
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
444
+ _mm512_maskz_sub_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
445
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
446
+ (__v32hi)_mm512_sub_epi16(__A, __B),
447
+ (__v32hi)_mm512_setzero_si512());
448
+ }
449
+
450
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
451
+ _mm512_mullo_epi16 (__m512i __A, __m512i __B) {
452
+ return (__m512i) ((__v32hu) __A * (__v32hu) __B);
453
+ }
454
+
455
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
456
+ _mm512_mask_mullo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
457
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
458
+ (__v32hi)_mm512_mullo_epi16(__A, __B),
459
+ (__v32hi)__W);
460
+ }
461
+
462
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
463
+ _mm512_maskz_mullo_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
464
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
465
+ (__v32hi)_mm512_mullo_epi16(__A, __B),
466
+ (__v32hi)_mm512_setzero_si512());
467
+ }
468
+
469
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
470
+ _mm512_mask_blend_epi8 (__mmask64 __U, __m512i __A, __m512i __W)
471
+ {
472
+ return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
473
+ (__v64qi) __W,
474
+ (__v64qi) __A);
475
+ }
476
+
477
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
478
+ _mm512_mask_blend_epi16 (__mmask32 __U, __m512i __A, __m512i __W)
479
+ {
480
+ return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
481
+ (__v32hi) __W,
482
+ (__v32hi) __A);
483
+ }
484
+
485
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
486
+ _mm512_abs_epi8 (__m512i __A)
487
+ {
488
+ return (__m512i)__builtin_ia32_pabsb512((__v64qi)__A);
489
+ }
490
+
491
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
492
+ _mm512_mask_abs_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
493
+ {
494
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
495
+ (__v64qi)_mm512_abs_epi8(__A),
496
+ (__v64qi)__W);
497
+ }
498
+
499
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
500
+ _mm512_maskz_abs_epi8 (__mmask64 __U, __m512i __A)
501
+ {
502
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
503
+ (__v64qi)_mm512_abs_epi8(__A),
504
+ (__v64qi)_mm512_setzero_si512());
505
+ }
506
+
507
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
508
+ _mm512_abs_epi16 (__m512i __A)
509
+ {
510
+ return (__m512i)__builtin_ia32_pabsw512((__v32hi)__A);
511
+ }
512
+
513
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
514
+ _mm512_mask_abs_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
515
+ {
516
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
517
+ (__v32hi)_mm512_abs_epi16(__A),
518
+ (__v32hi)__W);
519
+ }
520
+
521
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
522
+ _mm512_maskz_abs_epi16 (__mmask32 __U, __m512i __A)
523
+ {
524
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
525
+ (__v32hi)_mm512_abs_epi16(__A),
526
+ (__v32hi)_mm512_setzero_si512());
527
+ }
528
+
529
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
530
+ _mm512_packs_epi32(__m512i __A, __m512i __B)
531
+ {
532
+ return (__m512i)__builtin_ia32_packssdw512((__v16si)__A, (__v16si)__B);
533
+ }
534
+
535
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
536
+ _mm512_maskz_packs_epi32(__mmask32 __M, __m512i __A, __m512i __B)
537
+ {
538
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
539
+ (__v32hi)_mm512_packs_epi32(__A, __B),
540
+ (__v32hi)_mm512_setzero_si512());
541
+ }
542
+
543
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
544
+ _mm512_mask_packs_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
545
+ {
546
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
547
+ (__v32hi)_mm512_packs_epi32(__A, __B),
548
+ (__v32hi)__W);
549
+ }
550
+
551
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
552
+ _mm512_packs_epi16(__m512i __A, __m512i __B)
553
+ {
554
+ return (__m512i)__builtin_ia32_packsswb512((__v32hi)__A, (__v32hi) __B);
555
+ }
556
+
557
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
558
+ _mm512_mask_packs_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
559
+ {
560
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
561
+ (__v64qi)_mm512_packs_epi16(__A, __B),
562
+ (__v64qi)__W);
563
+ }
564
+
565
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
566
+ _mm512_maskz_packs_epi16(__mmask64 __M, __m512i __A, __m512i __B)
567
+ {
568
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
569
+ (__v64qi)_mm512_packs_epi16(__A, __B),
570
+ (__v64qi)_mm512_setzero_si512());
571
+ }
572
+
573
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
574
+ _mm512_packus_epi32(__m512i __A, __m512i __B)
575
+ {
576
+ return (__m512i)__builtin_ia32_packusdw512((__v16si) __A, (__v16si) __B);
577
+ }
578
+
579
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
580
+ _mm512_maskz_packus_epi32(__mmask32 __M, __m512i __A, __m512i __B)
581
+ {
582
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
583
+ (__v32hi)_mm512_packus_epi32(__A, __B),
584
+ (__v32hi)_mm512_setzero_si512());
585
+ }
586
+
587
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
588
+ _mm512_mask_packus_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
589
+ {
590
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
591
+ (__v32hi)_mm512_packus_epi32(__A, __B),
592
+ (__v32hi)__W);
593
+ }
594
+
595
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
596
+ _mm512_packus_epi16(__m512i __A, __m512i __B)
597
+ {
598
+ return (__m512i)__builtin_ia32_packuswb512((__v32hi) __A, (__v32hi) __B);
599
+ }
600
+
601
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
602
+ _mm512_mask_packus_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
603
+ {
604
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
605
+ (__v64qi)_mm512_packus_epi16(__A, __B),
606
+ (__v64qi)__W);
607
+ }
608
+
609
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
610
+ _mm512_maskz_packus_epi16(__mmask64 __M, __m512i __A, __m512i __B)
611
+ {
612
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
613
+ (__v64qi)_mm512_packus_epi16(__A, __B),
614
+ (__v64qi)_mm512_setzero_si512());
615
+ }
616
+
617
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
618
+ _mm512_adds_epi8 (__m512i __A, __m512i __B)
619
+ {
620
+ return (__m512i)__builtin_ia32_paddsb512((__v64qi)__A, (__v64qi)__B);
621
+ }
622
+
623
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
624
+ _mm512_mask_adds_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
625
+ {
626
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
627
+ (__v64qi)_mm512_adds_epi8(__A, __B),
628
+ (__v64qi)__W);
629
+ }
630
+
631
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
632
+ _mm512_maskz_adds_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
633
+ {
634
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
635
+ (__v64qi)_mm512_adds_epi8(__A, __B),
636
+ (__v64qi)_mm512_setzero_si512());
637
+ }
638
+
639
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
640
+ _mm512_adds_epi16 (__m512i __A, __m512i __B)
641
+ {
642
+ return (__m512i)__builtin_ia32_paddsw512((__v32hi)__A, (__v32hi)__B);
643
+ }
644
+
645
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
646
+ _mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
647
+ {
648
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
649
+ (__v32hi)_mm512_adds_epi16(__A, __B),
650
+ (__v32hi)__W);
651
+ }
652
+
653
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
654
+ _mm512_maskz_adds_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
655
+ {
656
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
657
+ (__v32hi)_mm512_adds_epi16(__A, __B),
658
+ (__v32hi)_mm512_setzero_si512());
659
+ }
660
+
661
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
662
+ _mm512_adds_epu8 (__m512i __A, __m512i __B)
663
+ {
664
+ return (__m512i)__builtin_ia32_paddusb512((__v64qi) __A, (__v64qi) __B);
665
+ }
666
+
667
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
668
+ _mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
669
+ {
670
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
671
+ (__v64qi)_mm512_adds_epu8(__A, __B),
672
+ (__v64qi)__W);
673
+ }
674
+
675
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
676
+ _mm512_maskz_adds_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
677
+ {
678
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
679
+ (__v64qi)_mm512_adds_epu8(__A, __B),
680
+ (__v64qi)_mm512_setzero_si512());
681
+ }
682
+
683
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
684
+ _mm512_adds_epu16 (__m512i __A, __m512i __B)
685
+ {
686
+ return (__m512i)__builtin_ia32_paddusw512((__v32hi) __A, (__v32hi) __B);
687
+ }
688
+
689
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
690
+ _mm512_mask_adds_epu16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
691
+ {
692
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
693
+ (__v32hi)_mm512_adds_epu16(__A, __B),
694
+ (__v32hi)__W);
695
+ }
696
+
697
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
698
+ _mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
699
+ {
700
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
701
+ (__v32hi)_mm512_adds_epu16(__A, __B),
702
+ (__v32hi)_mm512_setzero_si512());
703
+ }
704
+
705
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
706
+ _mm512_avg_epu8 (__m512i __A, __m512i __B)
707
+ {
708
+ return (__m512i)__builtin_ia32_pavgb512((__v64qi)__A, (__v64qi)__B);
709
+ }
710
+
711
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
712
+ _mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
713
+ __m512i __B)
714
+ {
715
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
716
+ (__v64qi)_mm512_avg_epu8(__A, __B),
717
+ (__v64qi)__W);
718
+ }
719
+
720
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
721
+ _mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
722
+ {
723
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
724
+ (__v64qi)_mm512_avg_epu8(__A, __B),
725
+ (__v64qi)_mm512_setzero_si512());
726
+ }
727
+
728
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
729
+ _mm512_avg_epu16 (__m512i __A, __m512i __B)
730
+ {
731
+ return (__m512i)__builtin_ia32_pavgw512((__v32hi)__A, (__v32hi)__B);
732
+ }
733
+
734
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
735
+ _mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
736
+ __m512i __B)
737
+ {
738
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
739
+ (__v32hi)_mm512_avg_epu16(__A, __B),
740
+ (__v32hi)__W);
741
+ }
742
+
743
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
744
+ _mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
745
+ {
746
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
747
+ (__v32hi)_mm512_avg_epu16(__A, __B),
748
+ (__v32hi) _mm512_setzero_si512());
749
+ }
750
+
751
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
752
+ _mm512_max_epi8 (__m512i __A, __m512i __B)
753
+ {
754
+ return (__m512i)__builtin_ia32_pmaxsb512((__v64qi) __A, (__v64qi) __B);
755
+ }
756
+
757
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
758
+ _mm512_maskz_max_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
759
+ {
760
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
761
+ (__v64qi)_mm512_max_epi8(__A, __B),
762
+ (__v64qi)_mm512_setzero_si512());
763
+ }
764
+
765
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
766
+ _mm512_mask_max_epi8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
767
+ {
768
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
769
+ (__v64qi)_mm512_max_epi8(__A, __B),
770
+ (__v64qi)__W);
771
+ }
772
+
773
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
774
+ _mm512_max_epi16 (__m512i __A, __m512i __B)
775
+ {
776
+ return (__m512i)__builtin_ia32_pmaxsw512((__v32hi) __A, (__v32hi) __B);
777
+ }
778
+
779
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
780
+ _mm512_maskz_max_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
781
+ {
782
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
783
+ (__v32hi)_mm512_max_epi16(__A, __B),
784
+ (__v32hi)_mm512_setzero_si512());
785
+ }
786
+
787
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
788
+ _mm512_mask_max_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
789
+ __m512i __B)
790
+ {
791
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
792
+ (__v32hi)_mm512_max_epi16(__A, __B),
793
+ (__v32hi)__W);
794
+ }
795
+
796
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
797
+ _mm512_max_epu8 (__m512i __A, __m512i __B)
798
+ {
799
+ return (__m512i)__builtin_ia32_pmaxub512((__v64qi)__A, (__v64qi)__B);
800
+ }
801
+
802
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
803
+ _mm512_maskz_max_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
804
+ {
805
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
806
+ (__v64qi)_mm512_max_epu8(__A, __B),
807
+ (__v64qi)_mm512_setzero_si512());
808
+ }
809
+
810
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
811
+ _mm512_mask_max_epu8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
812
+ {
813
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
814
+ (__v64qi)_mm512_max_epu8(__A, __B),
815
+ (__v64qi)__W);
816
+ }
817
+
818
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
819
+ _mm512_max_epu16 (__m512i __A, __m512i __B)
820
+ {
821
+ return (__m512i)__builtin_ia32_pmaxuw512((__v32hi)__A, (__v32hi)__B);
822
+ }
823
+
824
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
825
+ _mm512_maskz_max_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
826
+ {
827
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
828
+ (__v32hi)_mm512_max_epu16(__A, __B),
829
+ (__v32hi)_mm512_setzero_si512());
830
+ }
831
+
832
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
833
+ _mm512_mask_max_epu16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
834
+ {
835
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
836
+ (__v32hi)_mm512_max_epu16(__A, __B),
837
+ (__v32hi)__W);
838
+ }
839
+
840
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
841
+ _mm512_min_epi8 (__m512i __A, __m512i __B)
842
+ {
843
+ return (__m512i)__builtin_ia32_pminsb512((__v64qi) __A, (__v64qi) __B);
844
+ }
845
+
846
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
847
+ _mm512_maskz_min_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
848
+ {
849
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
850
+ (__v64qi)_mm512_min_epi8(__A, __B),
851
+ (__v64qi)_mm512_setzero_si512());
852
+ }
853
+
854
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
855
+ _mm512_mask_min_epi8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
856
+ {
857
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
858
+ (__v64qi)_mm512_min_epi8(__A, __B),
859
+ (__v64qi)__W);
860
+ }
861
+
862
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
863
+ _mm512_min_epi16 (__m512i __A, __m512i __B)
864
+ {
865
+ return (__m512i)__builtin_ia32_pminsw512((__v32hi) __A, (__v32hi) __B);
866
+ }
867
+
868
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
869
+ _mm512_maskz_min_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
870
+ {
871
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
872
+ (__v32hi)_mm512_min_epi16(__A, __B),
873
+ (__v32hi)_mm512_setzero_si512());
874
+ }
875
+
876
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
877
+ _mm512_mask_min_epi16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
878
+ {
879
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
880
+ (__v32hi)_mm512_min_epi16(__A, __B),
881
+ (__v32hi)__W);
882
+ }
883
+
884
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
885
+ _mm512_min_epu8 (__m512i __A, __m512i __B)
886
+ {
887
+ return (__m512i)__builtin_ia32_pminub512((__v64qi)__A, (__v64qi)__B);
888
+ }
889
+
890
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
891
+ _mm512_maskz_min_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
892
+ {
893
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
894
+ (__v64qi)_mm512_min_epu8(__A, __B),
895
+ (__v64qi)_mm512_setzero_si512());
896
+ }
897
+
898
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
899
+ _mm512_mask_min_epu8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
900
+ {
901
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
902
+ (__v64qi)_mm512_min_epu8(__A, __B),
903
+ (__v64qi)__W);
904
+ }
905
+
906
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
907
+ _mm512_min_epu16 (__m512i __A, __m512i __B)
908
+ {
909
+ return (__m512i)__builtin_ia32_pminuw512((__v32hi)__A, (__v32hi)__B);
910
+ }
911
+
912
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
913
+ _mm512_maskz_min_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
914
+ {
915
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
916
+ (__v32hi)_mm512_min_epu16(__A, __B),
917
+ (__v32hi)_mm512_setzero_si512());
918
+ }
919
+
920
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
921
+ _mm512_mask_min_epu16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
922
+ {
923
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
924
+ (__v32hi)_mm512_min_epu16(__A, __B),
925
+ (__v32hi)__W);
926
+ }
927
+
928
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
929
+ _mm512_shuffle_epi8(__m512i __A, __m512i __B)
930
+ {
931
+ return (__m512i)__builtin_ia32_pshufb512((__v64qi)__A,(__v64qi)__B);
932
+ }
933
+
934
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
935
+ _mm512_mask_shuffle_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
936
+ {
937
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
938
+ (__v64qi)_mm512_shuffle_epi8(__A, __B),
939
+ (__v64qi)__W);
940
+ }
941
+
942
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
943
+ _mm512_maskz_shuffle_epi8(__mmask64 __U, __m512i __A, __m512i __B)
944
+ {
945
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
946
+ (__v64qi)_mm512_shuffle_epi8(__A, __B),
947
+ (__v64qi)_mm512_setzero_si512());
948
+ }
949
+
950
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
951
+ _mm512_subs_epi8 (__m512i __A, __m512i __B)
952
+ {
953
+ return (__m512i)__builtin_ia32_psubsb512((__v64qi)__A, (__v64qi)__B);
954
+ }
955
+
956
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
957
+ _mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
958
+ {
959
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
960
+ (__v64qi)_mm512_subs_epi8(__A, __B),
961
+ (__v64qi)__W);
962
+ }
963
+
964
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
965
+ _mm512_maskz_subs_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
966
+ {
967
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
968
+ (__v64qi)_mm512_subs_epi8(__A, __B),
969
+ (__v64qi)_mm512_setzero_si512());
970
+ }
971
+
972
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
973
+ _mm512_subs_epi16 (__m512i __A, __m512i __B)
974
+ {
975
+ return (__m512i)__builtin_ia32_psubsw512((__v32hi)__A, (__v32hi)__B);
976
+ }
977
+
978
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
979
+ _mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
980
+ {
981
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
982
+ (__v32hi)_mm512_subs_epi16(__A, __B),
983
+ (__v32hi)__W);
984
+ }
985
+
986
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
987
+ _mm512_maskz_subs_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
988
+ {
989
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
990
+ (__v32hi)_mm512_subs_epi16(__A, __B),
991
+ (__v32hi)_mm512_setzero_si512());
992
+ }
993
+
994
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
995
+ _mm512_subs_epu8 (__m512i __A, __m512i __B)
996
+ {
997
+ return (__m512i)__builtin_ia32_psubusb512((__v64qi) __A, (__v64qi) __B);
998
+ }
999
+
1000
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1001
+ _mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
1002
+ {
1003
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1004
+ (__v64qi)_mm512_subs_epu8(__A, __B),
1005
+ (__v64qi)__W);
1006
+ }
1007
+
1008
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1009
+ _mm512_maskz_subs_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
1010
+ {
1011
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1012
+ (__v64qi)_mm512_subs_epu8(__A, __B),
1013
+ (__v64qi)_mm512_setzero_si512());
1014
+ }
1015
+
1016
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1017
+ _mm512_subs_epu16 (__m512i __A, __m512i __B)
1018
+ {
1019
+ return (__m512i)__builtin_ia32_psubusw512((__v32hi) __A, (__v32hi) __B);
1020
+ }
1021
+
1022
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1023
+ _mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
1024
+ {
1025
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1026
+ (__v32hi)_mm512_subs_epu16(__A, __B),
1027
+ (__v32hi)__W);
1028
+ }
1029
+
1030
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1031
+ _mm512_maskz_subs_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
1032
+ {
1033
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1034
+ (__v32hi)_mm512_subs_epu16(__A, __B),
1035
+ (__v32hi)_mm512_setzero_si512());
1036
+ }
1037
+
1038
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1039
+ _mm512_permutex2var_epi16(__m512i __A, __m512i __I, __m512i __B)
1040
+ {
1041
+ return (__m512i)__builtin_ia32_vpermi2varhi512((__v32hi)__A, (__v32hi)__I,
1042
+ (__v32hi)__B);
1043
+ }
1044
+
1045
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1046
+ _mm512_mask_permutex2var_epi16(__m512i __A, __mmask32 __U, __m512i __I,
1047
+ __m512i __B)
1048
+ {
1049
+ return (__m512i)__builtin_ia32_selectw_512(__U,
1050
+ (__v32hi)_mm512_permutex2var_epi16(__A, __I, __B),
1051
+ (__v32hi)__A);
1052
+ }
1053
+
1054
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1055
+ _mm512_mask2_permutex2var_epi16(__m512i __A, __m512i __I, __mmask32 __U,
1056
+ __m512i __B)
1057
+ {
1058
+ return (__m512i)__builtin_ia32_selectw_512(__U,
1059
+ (__v32hi)_mm512_permutex2var_epi16(__A, __I, __B),
1060
+ (__v32hi)__I);
1061
+ }
1062
+
1063
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1064
+ _mm512_maskz_permutex2var_epi16(__mmask32 __U, __m512i __A, __m512i __I,
1065
+ __m512i __B)
1066
+ {
1067
+ return (__m512i)__builtin_ia32_selectw_512(__U,
1068
+ (__v32hi)_mm512_permutex2var_epi16(__A, __I, __B),
1069
+ (__v32hi)_mm512_setzero_si512());
1070
+ }
1071
+
1072
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1073
+ _mm512_mulhrs_epi16(__m512i __A, __m512i __B)
1074
+ {
1075
+ return (__m512i)__builtin_ia32_pmulhrsw512((__v32hi)__A, (__v32hi)__B);
1076
+ }
1077
+
1078
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1079
+ _mm512_mask_mulhrs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
1080
+ {
1081
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1082
+ (__v32hi)_mm512_mulhrs_epi16(__A, __B),
1083
+ (__v32hi)__W);
1084
+ }
1085
+
1086
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1087
+ _mm512_maskz_mulhrs_epi16(__mmask32 __U, __m512i __A, __m512i __B)
1088
+ {
1089
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1090
+ (__v32hi)_mm512_mulhrs_epi16(__A, __B),
1091
+ (__v32hi)_mm512_setzero_si512());
1092
+ }
1093
+
1094
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1095
+ _mm512_mulhi_epi16(__m512i __A, __m512i __B)
1096
+ {
1097
+ return (__m512i)__builtin_ia32_pmulhw512((__v32hi) __A, (__v32hi) __B);
1098
+ }
1099
+
1100
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1101
+ _mm512_mask_mulhi_epi16(__m512i __W, __mmask32 __U, __m512i __A,
1102
+ __m512i __B)
1103
+ {
1104
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1105
+ (__v32hi)_mm512_mulhi_epi16(__A, __B),
1106
+ (__v32hi)__W);
1107
+ }
1108
+
1109
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1110
+ _mm512_maskz_mulhi_epi16(__mmask32 __U, __m512i __A, __m512i __B)
1111
+ {
1112
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1113
+ (__v32hi)_mm512_mulhi_epi16(__A, __B),
1114
+ (__v32hi)_mm512_setzero_si512());
1115
+ }
1116
+
1117
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1118
+ _mm512_mulhi_epu16(__m512i __A, __m512i __B)
1119
+ {
1120
+ return (__m512i)__builtin_ia32_pmulhuw512((__v32hi) __A, (__v32hi) __B);
1121
+ }
1122
+
1123
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1124
+ _mm512_mask_mulhi_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
1125
+ {
1126
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1127
+ (__v32hi)_mm512_mulhi_epu16(__A, __B),
1128
+ (__v32hi)__W);
1129
+ }
1130
+
1131
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1132
+ _mm512_maskz_mulhi_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
1133
+ {
1134
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1135
+ (__v32hi)_mm512_mulhi_epu16(__A, __B),
1136
+ (__v32hi)_mm512_setzero_si512());
1137
+ }
1138
+
1139
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1140
+ _mm512_maddubs_epi16(__m512i __X, __m512i __Y) {
1141
+ return (__m512i)__builtin_ia32_pmaddubsw512((__v64qi)__X, (__v64qi)__Y);
1142
+ }
1143
+
1144
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1145
+ _mm512_mask_maddubs_epi16(__m512i __W, __mmask32 __U, __m512i __X,
1146
+ __m512i __Y) {
1147
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32) __U,
1148
+ (__v32hi)_mm512_maddubs_epi16(__X, __Y),
1149
+ (__v32hi)__W);
1150
+ }
1151
+
1152
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1153
+ _mm512_maskz_maddubs_epi16(__mmask32 __U, __m512i __X, __m512i __Y) {
1154
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32) __U,
1155
+ (__v32hi)_mm512_maddubs_epi16(__X, __Y),
1156
+ (__v32hi)_mm512_setzero_si512());
1157
+ }
1158
+
1159
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1160
+ _mm512_madd_epi16(__m512i __A, __m512i __B) {
1161
+ return (__m512i)__builtin_ia32_pmaddwd512((__v32hi)__A, (__v32hi)__B);
1162
+ }
1163
+
1164
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1165
+ _mm512_mask_madd_epi16(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
1166
+ return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
1167
+ (__v16si)_mm512_madd_epi16(__A, __B),
1168
+ (__v16si)__W);
1169
+ }
1170
+
1171
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1172
+ _mm512_maskz_madd_epi16(__mmask16 __U, __m512i __A, __m512i __B) {
1173
+ return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
1174
+ (__v16si)_mm512_madd_epi16(__A, __B),
1175
+ (__v16si)_mm512_setzero_si512());
1176
+ }
1177
+
1178
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1179
+ _mm512_cvtsepi16_epi8 (__m512i __A) {
1180
+ return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1181
+ (__v32qi)_mm256_setzero_si256(),
1182
+ (__mmask32) -1);
1183
+ }
1184
+
1185
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1186
+ _mm512_mask_cvtsepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
1187
+ return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1188
+ (__v32qi)__O,
1189
+ __M);
1190
+ }
1191
+
1192
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1193
+ _mm512_maskz_cvtsepi16_epi8 (__mmask32 __M, __m512i __A) {
1194
+ return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1195
+ (__v32qi) _mm256_setzero_si256(),
1196
+ __M);
1197
+ }
1198
+
1199
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1200
+ _mm512_cvtusepi16_epi8 (__m512i __A) {
1201
+ return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1202
+ (__v32qi) _mm256_setzero_si256(),
1203
+ (__mmask32) -1);
1204
+ }
1205
+
1206
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1207
+ _mm512_mask_cvtusepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
1208
+ return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1209
+ (__v32qi) __O,
1210
+ __M);
1211
+ }
1212
+
1213
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1214
+ _mm512_maskz_cvtusepi16_epi8 (__mmask32 __M, __m512i __A) {
1215
+ return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1216
+ (__v32qi) _mm256_setzero_si256(),
1217
+ __M);
1218
+ }
1219
+
1220
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1221
+ _mm512_cvtepi16_epi8 (__m512i __A) {
1222
+ return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
1223
+ (__v32qi) _mm256_undefined_si256(),
1224
+ (__mmask32) -1);
1225
+ }
1226
+
1227
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1228
+ _mm512_mask_cvtepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
1229
+ return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
1230
+ (__v32qi) __O,
1231
+ __M);
1232
+ }
1233
+
1234
+ static __inline__ __m256i __DEFAULT_FN_ATTRS512
1235
+ _mm512_maskz_cvtepi16_epi8 (__mmask32 __M, __m512i __A) {
1236
+ return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
1237
+ (__v32qi) _mm256_setzero_si256(),
1238
+ __M);
1239
+ }
1240
+
1241
+ static __inline__ void __DEFAULT_FN_ATTRS512
1242
+ _mm512_mask_cvtepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1243
+ {
1244
+ __builtin_ia32_pmovwb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
1245
+ }
1246
+
1247
+ static __inline__ void __DEFAULT_FN_ATTRS512
1248
+ _mm512_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1249
+ {
1250
+ __builtin_ia32_pmovswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
1251
+ }
1252
+
1253
+ static __inline__ void __DEFAULT_FN_ATTRS512
1254
+ _mm512_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1255
+ {
1256
+ __builtin_ia32_pmovuswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
1257
+ }
1258
+
1259
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1260
+ _mm512_unpackhi_epi8(__m512i __A, __m512i __B) {
1261
+ return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B,
1262
+ 8, 64+8, 9, 64+9,
1263
+ 10, 64+10, 11, 64+11,
1264
+ 12, 64+12, 13, 64+13,
1265
+ 14, 64+14, 15, 64+15,
1266
+ 24, 64+24, 25, 64+25,
1267
+ 26, 64+26, 27, 64+27,
1268
+ 28, 64+28, 29, 64+29,
1269
+ 30, 64+30, 31, 64+31,
1270
+ 40, 64+40, 41, 64+41,
1271
+ 42, 64+42, 43, 64+43,
1272
+ 44, 64+44, 45, 64+45,
1273
+ 46, 64+46, 47, 64+47,
1274
+ 56, 64+56, 57, 64+57,
1275
+ 58, 64+58, 59, 64+59,
1276
+ 60, 64+60, 61, 64+61,
1277
+ 62, 64+62, 63, 64+63);
1278
+ }
1279
+
1280
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1281
+ _mm512_mask_unpackhi_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
1282
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1283
+ (__v64qi)_mm512_unpackhi_epi8(__A, __B),
1284
+ (__v64qi)__W);
1285
+ }
1286
+
1287
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1288
+ _mm512_maskz_unpackhi_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
1289
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1290
+ (__v64qi)_mm512_unpackhi_epi8(__A, __B),
1291
+ (__v64qi)_mm512_setzero_si512());
1292
+ }
1293
+
1294
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1295
+ _mm512_unpackhi_epi16(__m512i __A, __m512i __B) {
1296
+ return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B,
1297
+ 4, 32+4, 5, 32+5,
1298
+ 6, 32+6, 7, 32+7,
1299
+ 12, 32+12, 13, 32+13,
1300
+ 14, 32+14, 15, 32+15,
1301
+ 20, 32+20, 21, 32+21,
1302
+ 22, 32+22, 23, 32+23,
1303
+ 28, 32+28, 29, 32+29,
1304
+ 30, 32+30, 31, 32+31);
1305
+ }
1306
+
1307
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1308
+ _mm512_mask_unpackhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1309
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1310
+ (__v32hi)_mm512_unpackhi_epi16(__A, __B),
1311
+ (__v32hi)__W);
1312
+ }
1313
+
1314
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1315
+ _mm512_maskz_unpackhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1316
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1317
+ (__v32hi)_mm512_unpackhi_epi16(__A, __B),
1318
+ (__v32hi)_mm512_setzero_si512());
1319
+ }
1320
+
1321
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1322
+ _mm512_unpacklo_epi8(__m512i __A, __m512i __B) {
1323
+ return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B,
1324
+ 0, 64+0, 1, 64+1,
1325
+ 2, 64+2, 3, 64+3,
1326
+ 4, 64+4, 5, 64+5,
1327
+ 6, 64+6, 7, 64+7,
1328
+ 16, 64+16, 17, 64+17,
1329
+ 18, 64+18, 19, 64+19,
1330
+ 20, 64+20, 21, 64+21,
1331
+ 22, 64+22, 23, 64+23,
1332
+ 32, 64+32, 33, 64+33,
1333
+ 34, 64+34, 35, 64+35,
1334
+ 36, 64+36, 37, 64+37,
1335
+ 38, 64+38, 39, 64+39,
1336
+ 48, 64+48, 49, 64+49,
1337
+ 50, 64+50, 51, 64+51,
1338
+ 52, 64+52, 53, 64+53,
1339
+ 54, 64+54, 55, 64+55);
1340
+ }
1341
+
1342
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1343
+ _mm512_mask_unpacklo_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
1344
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1345
+ (__v64qi)_mm512_unpacklo_epi8(__A, __B),
1346
+ (__v64qi)__W);
1347
+ }
1348
+
1349
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1350
+ _mm512_maskz_unpacklo_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
1351
+ return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1352
+ (__v64qi)_mm512_unpacklo_epi8(__A, __B),
1353
+ (__v64qi)_mm512_setzero_si512());
1354
+ }
1355
+
1356
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1357
+ _mm512_unpacklo_epi16(__m512i __A, __m512i __B) {
1358
+ return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B,
1359
+ 0, 32+0, 1, 32+1,
1360
+ 2, 32+2, 3, 32+3,
1361
+ 8, 32+8, 9, 32+9,
1362
+ 10, 32+10, 11, 32+11,
1363
+ 16, 32+16, 17, 32+17,
1364
+ 18, 32+18, 19, 32+19,
1365
+ 24, 32+24, 25, 32+25,
1366
+ 26, 32+26, 27, 32+27);
1367
+ }
1368
+
1369
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1370
+ _mm512_mask_unpacklo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1371
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1372
+ (__v32hi)_mm512_unpacklo_epi16(__A, __B),
1373
+ (__v32hi)__W);
1374
+ }
1375
+
1376
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1377
+ _mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1378
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1379
+ (__v32hi)_mm512_unpacklo_epi16(__A, __B),
1380
+ (__v32hi)_mm512_setzero_si512());
1381
+ }
1382
+
1383
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1384
+ _mm512_cvtepi8_epi16(__m256i __A)
1385
+ {
1386
+ /* This function always performs a signed extension, but __v32qi is a char
1387
+ which may be signed or unsigned, so use __v32qs. */
1388
+ return (__m512i)__builtin_convertvector((__v32qs)__A, __v32hi);
1389
+ }
1390
+
1391
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1392
+ _mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A)
1393
+ {
1394
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1395
+ (__v32hi)_mm512_cvtepi8_epi16(__A),
1396
+ (__v32hi)__W);
1397
+ }
1398
+
1399
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1400
+ _mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A)
1401
+ {
1402
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1403
+ (__v32hi)_mm512_cvtepi8_epi16(__A),
1404
+ (__v32hi)_mm512_setzero_si512());
1405
+ }
1406
+
1407
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1408
+ _mm512_cvtepu8_epi16(__m256i __A)
1409
+ {
1410
+ return (__m512i)__builtin_convertvector((__v32qu)__A, __v32hi);
1411
+ }
1412
+
1413
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1414
+ _mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A)
1415
+ {
1416
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1417
+ (__v32hi)_mm512_cvtepu8_epi16(__A),
1418
+ (__v32hi)__W);
1419
+ }
1420
+
1421
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1422
+ _mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A)
1423
+ {
1424
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1425
+ (__v32hi)_mm512_cvtepu8_epi16(__A),
1426
+ (__v32hi)_mm512_setzero_si512());
1427
+ }
1428
+
1429
+
1430
+ #define _mm512_shufflehi_epi16(A, imm) \
1431
+ (__m512i)__builtin_ia32_pshufhw512((__v32hi)(__m512i)(A), (int)(imm))
1432
+
1433
+ #define _mm512_mask_shufflehi_epi16(W, U, A, imm) \
1434
+ (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1435
+ (__v32hi)_mm512_shufflehi_epi16((A), \
1436
+ (imm)), \
1437
+ (__v32hi)(__m512i)(W))
1438
+
1439
+ #define _mm512_maskz_shufflehi_epi16(U, A, imm) \
1440
+ (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1441
+ (__v32hi)_mm512_shufflehi_epi16((A), \
1442
+ (imm)), \
1443
+ (__v32hi)_mm512_setzero_si512())
1444
+
1445
+ #define _mm512_shufflelo_epi16(A, imm) \
1446
+ (__m512i)__builtin_ia32_pshuflw512((__v32hi)(__m512i)(A), (int)(imm))
1447
+
1448
+
1449
+ #define _mm512_mask_shufflelo_epi16(W, U, A, imm) \
1450
+ (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1451
+ (__v32hi)_mm512_shufflelo_epi16((A), \
1452
+ (imm)), \
1453
+ (__v32hi)(__m512i)(W))
1454
+
1455
+
1456
+ #define _mm512_maskz_shufflelo_epi16(U, A, imm) \
1457
+ (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1458
+ (__v32hi)_mm512_shufflelo_epi16((A), \
1459
+ (imm)), \
1460
+ (__v32hi)_mm512_setzero_si512())
1461
+
1462
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1463
+ _mm512_sllv_epi16(__m512i __A, __m512i __B)
1464
+ {
1465
+ return (__m512i)__builtin_ia32_psllv32hi((__v32hi) __A, (__v32hi) __B);
1466
+ }
1467
+
1468
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1469
+ _mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
1470
+ {
1471
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1472
+ (__v32hi)_mm512_sllv_epi16(__A, __B),
1473
+ (__v32hi)__W);
1474
+ }
1475
+
1476
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1477
+ _mm512_maskz_sllv_epi16(__mmask32 __U, __m512i __A, __m512i __B)
1478
+ {
1479
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1480
+ (__v32hi)_mm512_sllv_epi16(__A, __B),
1481
+ (__v32hi)_mm512_setzero_si512());
1482
+ }
1483
+
1484
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1485
+ _mm512_sll_epi16(__m512i __A, __m128i __B)
1486
+ {
1487
+ return (__m512i)__builtin_ia32_psllw512((__v32hi) __A, (__v8hi) __B);
1488
+ }
1489
+
1490
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1491
+ _mm512_mask_sll_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
1492
+ {
1493
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1494
+ (__v32hi)_mm512_sll_epi16(__A, __B),
1495
+ (__v32hi)__W);
1496
+ }
1497
+
1498
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1499
+ _mm512_maskz_sll_epi16(__mmask32 __U, __m512i __A, __m128i __B)
1500
+ {
1501
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1502
+ (__v32hi)_mm512_sll_epi16(__A, __B),
1503
+ (__v32hi)_mm512_setzero_si512());
1504
+ }
1505
+
1506
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1507
+ _mm512_slli_epi16(__m512i __A, unsigned int __B)
1508
+ {
1509
+ return (__m512i)__builtin_ia32_psllwi512((__v32hi)__A, __B);
1510
+ }
1511
+
1512
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1513
+ _mm512_mask_slli_epi16(__m512i __W, __mmask32 __U, __m512i __A,
1514
+ unsigned int __B)
1515
+ {
1516
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1517
+ (__v32hi)_mm512_slli_epi16(__A, __B),
1518
+ (__v32hi)__W);
1519
+ }
1520
+
1521
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1522
+ _mm512_maskz_slli_epi16(__mmask32 __U, __m512i __A, unsigned int __B)
1523
+ {
1524
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1525
+ (__v32hi)_mm512_slli_epi16(__A, __B),
1526
+ (__v32hi)_mm512_setzero_si512());
1527
+ }
1528
+
1529
+ #define _mm512_bslli_epi128(a, imm) \
1530
+ (__m512i)__builtin_ia32_pslldqi512_byteshift((__v8di)(__m512i)(a), (int)(imm))
1531
+
1532
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1533
+ _mm512_srlv_epi16(__m512i __A, __m512i __B)
1534
+ {
1535
+ return (__m512i)__builtin_ia32_psrlv32hi((__v32hi)__A, (__v32hi)__B);
1536
+ }
1537
+
1538
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1539
+ _mm512_mask_srlv_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
1540
+ {
1541
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1542
+ (__v32hi)_mm512_srlv_epi16(__A, __B),
1543
+ (__v32hi)__W);
1544
+ }
1545
+
1546
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1547
+ _mm512_maskz_srlv_epi16(__mmask32 __U, __m512i __A, __m512i __B)
1548
+ {
1549
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1550
+ (__v32hi)_mm512_srlv_epi16(__A, __B),
1551
+ (__v32hi)_mm512_setzero_si512());
1552
+ }
1553
+
1554
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1555
+ _mm512_srav_epi16(__m512i __A, __m512i __B)
1556
+ {
1557
+ return (__m512i)__builtin_ia32_psrav32hi((__v32hi)__A, (__v32hi)__B);
1558
+ }
1559
+
1560
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1561
+ _mm512_mask_srav_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
1562
+ {
1563
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1564
+ (__v32hi)_mm512_srav_epi16(__A, __B),
1565
+ (__v32hi)__W);
1566
+ }
1567
+
1568
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1569
+ _mm512_maskz_srav_epi16(__mmask32 __U, __m512i __A, __m512i __B)
1570
+ {
1571
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1572
+ (__v32hi)_mm512_srav_epi16(__A, __B),
1573
+ (__v32hi)_mm512_setzero_si512());
1574
+ }
1575
+
1576
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1577
+ _mm512_sra_epi16(__m512i __A, __m128i __B)
1578
+ {
1579
+ return (__m512i)__builtin_ia32_psraw512((__v32hi) __A, (__v8hi) __B);
1580
+ }
1581
+
1582
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1583
+ _mm512_mask_sra_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
1584
+ {
1585
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1586
+ (__v32hi)_mm512_sra_epi16(__A, __B),
1587
+ (__v32hi)__W);
1588
+ }
1589
+
1590
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1591
+ _mm512_maskz_sra_epi16(__mmask32 __U, __m512i __A, __m128i __B)
1592
+ {
1593
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1594
+ (__v32hi)_mm512_sra_epi16(__A, __B),
1595
+ (__v32hi)_mm512_setzero_si512());
1596
+ }
1597
+
1598
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1599
+ _mm512_srai_epi16(__m512i __A, unsigned int __B)
1600
+ {
1601
+ return (__m512i)__builtin_ia32_psrawi512((__v32hi)__A, __B);
1602
+ }
1603
+
1604
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1605
+ _mm512_mask_srai_epi16(__m512i __W, __mmask32 __U, __m512i __A,
1606
+ unsigned int __B)
1607
+ {
1608
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1609
+ (__v32hi)_mm512_srai_epi16(__A, __B),
1610
+ (__v32hi)__W);
1611
+ }
1612
+
1613
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1614
+ _mm512_maskz_srai_epi16(__mmask32 __U, __m512i __A, unsigned int __B)
1615
+ {
1616
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1617
+ (__v32hi)_mm512_srai_epi16(__A, __B),
1618
+ (__v32hi)_mm512_setzero_si512());
1619
+ }
1620
+
1621
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1622
+ _mm512_srl_epi16(__m512i __A, __m128i __B)
1623
+ {
1624
+ return (__m512i)__builtin_ia32_psrlw512((__v32hi) __A, (__v8hi) __B);
1625
+ }
1626
+
1627
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1628
+ _mm512_mask_srl_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
1629
+ {
1630
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1631
+ (__v32hi)_mm512_srl_epi16(__A, __B),
1632
+ (__v32hi)__W);
1633
+ }
1634
+
1635
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1636
+ _mm512_maskz_srl_epi16(__mmask32 __U, __m512i __A, __m128i __B)
1637
+ {
1638
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1639
+ (__v32hi)_mm512_srl_epi16(__A, __B),
1640
+ (__v32hi)_mm512_setzero_si512());
1641
+ }
1642
+
1643
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1644
+ _mm512_srli_epi16(__m512i __A, unsigned int __B)
1645
+ {
1646
+ return (__m512i)__builtin_ia32_psrlwi512((__v32hi)__A, __B);
1647
+ }
1648
+
1649
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1650
+ _mm512_mask_srli_epi16(__m512i __W, __mmask32 __U, __m512i __A,
1651
+ unsigned int __B)
1652
+ {
1653
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1654
+ (__v32hi)_mm512_srli_epi16(__A, __B),
1655
+ (__v32hi)__W);
1656
+ }
1657
+
1658
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1659
+ _mm512_maskz_srli_epi16(__mmask32 __U, __m512i __A, int __B)
1660
+ {
1661
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1662
+ (__v32hi)_mm512_srli_epi16(__A, __B),
1663
+ (__v32hi)_mm512_setzero_si512());
1664
+ }
1665
+
1666
+ #define _mm512_bsrli_epi128(a, imm) \
1667
+ (__m512i)__builtin_ia32_psrldqi512_byteshift((__v8di)(__m512i)(a), (int)(imm))
1668
+
1669
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1670
+ _mm512_mask_mov_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
1671
+ {
1672
+ return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
1673
+ (__v32hi) __A,
1674
+ (__v32hi) __W);
1675
+ }
1676
+
1677
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1678
+ _mm512_maskz_mov_epi16 (__mmask32 __U, __m512i __A)
1679
+ {
1680
+ return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
1681
+ (__v32hi) __A,
1682
+ (__v32hi) _mm512_setzero_si512 ());
1683
+ }
1684
+
1685
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1686
+ _mm512_mask_mov_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
1687
+ {
1688
+ return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
1689
+ (__v64qi) __A,
1690
+ (__v64qi) __W);
1691
+ }
1692
+
1693
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1694
+ _mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A)
1695
+ {
1696
+ return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
1697
+ (__v64qi) __A,
1698
+ (__v64qi) _mm512_setzero_si512 ());
1699
+ }
1700
+
1701
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1702
+ _mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A)
1703
+ {
1704
+ return (__m512i) __builtin_ia32_selectb_512(__M,
1705
+ (__v64qi)_mm512_set1_epi8(__A),
1706
+ (__v64qi) __O);
1707
+ }
1708
+
1709
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1710
+ _mm512_maskz_set1_epi8 (__mmask64 __M, char __A)
1711
+ {
1712
+ return (__m512i) __builtin_ia32_selectb_512(__M,
1713
+ (__v64qi) _mm512_set1_epi8(__A),
1714
+ (__v64qi) _mm512_setzero_si512());
1715
+ }
1716
+
1717
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS
1718
+ _mm512_kunpackd (__mmask64 __A, __mmask64 __B)
1719
+ {
1720
+ return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A,
1721
+ (__mmask64) __B);
1722
+ }
1723
+
1724
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS
1725
+ _mm512_kunpackw (__mmask32 __A, __mmask32 __B)
1726
+ {
1727
+ return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A,
1728
+ (__mmask32) __B);
1729
+ }
1730
+
1731
+ static __inline __m512i __DEFAULT_FN_ATTRS512
1732
+ _mm512_loadu_epi16 (void const *__P)
1733
+ {
1734
+ struct __loadu_epi16 {
1735
+ __m512i_u __v;
1736
+ } __attribute__((__packed__, __may_alias__));
1737
+ return ((const struct __loadu_epi16*)__P)->__v;
1738
+ }
1739
+
1740
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1741
+ _mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P)
1742
+ {
1743
+ return (__m512i) __builtin_ia32_loaddquhi512_mask ((const __v32hi *) __P,
1744
+ (__v32hi) __W,
1745
+ (__mmask32) __U);
1746
+ }
1747
+
1748
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1749
+ _mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P)
1750
+ {
1751
+ return (__m512i) __builtin_ia32_loaddquhi512_mask ((const __v32hi *) __P,
1752
+ (__v32hi)
1753
+ _mm512_setzero_si512 (),
1754
+ (__mmask32) __U);
1755
+ }
1756
+
1757
+ static __inline __m512i __DEFAULT_FN_ATTRS512
1758
+ _mm512_loadu_epi8 (void const *__P)
1759
+ {
1760
+ struct __loadu_epi8 {
1761
+ __m512i_u __v;
1762
+ } __attribute__((__packed__, __may_alias__));
1763
+ return ((const struct __loadu_epi8*)__P)->__v;
1764
+ }
1765
+
1766
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1767
+ _mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P)
1768
+ {
1769
+ return (__m512i) __builtin_ia32_loaddquqi512_mask ((const __v64qi *) __P,
1770
+ (__v64qi) __W,
1771
+ (__mmask64) __U);
1772
+ }
1773
+
1774
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1775
+ _mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P)
1776
+ {
1777
+ return (__m512i) __builtin_ia32_loaddquqi512_mask ((const __v64qi *) __P,
1778
+ (__v64qi)
1779
+ _mm512_setzero_si512 (),
1780
+ (__mmask64) __U);
1781
+ }
1782
+
1783
+ static __inline void __DEFAULT_FN_ATTRS512
1784
+ _mm512_storeu_epi16 (void *__P, __m512i __A)
1785
+ {
1786
+ struct __storeu_epi16 {
1787
+ __m512i_u __v;
1788
+ } __attribute__((__packed__, __may_alias__));
1789
+ ((struct __storeu_epi16*)__P)->__v = __A;
1790
+ }
1791
+
1792
+ static __inline__ void __DEFAULT_FN_ATTRS512
1793
+ _mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A)
1794
+ {
1795
+ __builtin_ia32_storedquhi512_mask ((__v32hi *) __P,
1796
+ (__v32hi) __A,
1797
+ (__mmask32) __U);
1798
+ }
1799
+
1800
+ static __inline void __DEFAULT_FN_ATTRS512
1801
+ _mm512_storeu_epi8 (void *__P, __m512i __A)
1802
+ {
1803
+ struct __storeu_epi8 {
1804
+ __m512i_u __v;
1805
+ } __attribute__((__packed__, __may_alias__));
1806
+ ((struct __storeu_epi8*)__P)->__v = __A;
1807
+ }
1808
+
1809
+ static __inline__ void __DEFAULT_FN_ATTRS512
1810
+ _mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A)
1811
+ {
1812
+ __builtin_ia32_storedquqi512_mask ((__v64qi *) __P,
1813
+ (__v64qi) __A,
1814
+ (__mmask64) __U);
1815
+ }
1816
+
1817
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS512
1818
+ _mm512_test_epi8_mask (__m512i __A, __m512i __B)
1819
+ {
1820
+ return _mm512_cmpneq_epi8_mask (_mm512_and_epi32 (__A, __B),
1821
+ _mm512_setzero_si512());
1822
+ }
1823
+
1824
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS512
1825
+ _mm512_mask_test_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
1826
+ {
1827
+ return _mm512_mask_cmpneq_epi8_mask (__U, _mm512_and_epi32 (__A, __B),
1828
+ _mm512_setzero_si512());
1829
+ }
1830
+
1831
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS512
1832
+ _mm512_test_epi16_mask (__m512i __A, __m512i __B)
1833
+ {
1834
+ return _mm512_cmpneq_epi16_mask (_mm512_and_epi32 (__A, __B),
1835
+ _mm512_setzero_si512());
1836
+ }
1837
+
1838
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS512
1839
+ _mm512_mask_test_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
1840
+ {
1841
+ return _mm512_mask_cmpneq_epi16_mask (__U, _mm512_and_epi32 (__A, __B),
1842
+ _mm512_setzero_si512());
1843
+ }
1844
+
1845
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS512
1846
+ _mm512_testn_epi8_mask (__m512i __A, __m512i __B)
1847
+ {
1848
+ return _mm512_cmpeq_epi8_mask (_mm512_and_epi32 (__A, __B), _mm512_setzero_si512());
1849
+ }
1850
+
1851
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS512
1852
+ _mm512_mask_testn_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
1853
+ {
1854
+ return _mm512_mask_cmpeq_epi8_mask (__U, _mm512_and_epi32 (__A, __B),
1855
+ _mm512_setzero_si512());
1856
+ }
1857
+
1858
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS512
1859
+ _mm512_testn_epi16_mask (__m512i __A, __m512i __B)
1860
+ {
1861
+ return _mm512_cmpeq_epi16_mask (_mm512_and_epi32 (__A, __B),
1862
+ _mm512_setzero_si512());
1863
+ }
1864
+
1865
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS512
1866
+ _mm512_mask_testn_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
1867
+ {
1868
+ return _mm512_mask_cmpeq_epi16_mask (__U, _mm512_and_epi32 (__A, __B),
1869
+ _mm512_setzero_si512());
1870
+ }
1871
+
1872
+ static __inline__ __mmask64 __DEFAULT_FN_ATTRS512
1873
+ _mm512_movepi8_mask (__m512i __A)
1874
+ {
1875
+ return (__mmask64) __builtin_ia32_cvtb2mask512 ((__v64qi) __A);
1876
+ }
1877
+
1878
+ static __inline__ __mmask32 __DEFAULT_FN_ATTRS512
1879
+ _mm512_movepi16_mask (__m512i __A)
1880
+ {
1881
+ return (__mmask32) __builtin_ia32_cvtw2mask512 ((__v32hi) __A);
1882
+ }
1883
+
1884
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1885
+ _mm512_movm_epi8 (__mmask64 __A)
1886
+ {
1887
+ return (__m512i) __builtin_ia32_cvtmask2b512 (__A);
1888
+ }
1889
+
1890
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1891
+ _mm512_movm_epi16 (__mmask32 __A)
1892
+ {
1893
+ return (__m512i) __builtin_ia32_cvtmask2w512 (__A);
1894
+ }
1895
+
1896
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1897
+ _mm512_broadcastb_epi8 (__m128i __A)
1898
+ {
1899
+ return (__m512i)__builtin_shufflevector((__v16qi) __A, (__v16qi) __A,
1900
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1901
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
1904
+ }
1905
+
1906
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1907
+ _mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A)
1908
+ {
1909
+ return (__m512i)__builtin_ia32_selectb_512(__M,
1910
+ (__v64qi) _mm512_broadcastb_epi8(__A),
1911
+ (__v64qi) __O);
1912
+ }
1913
+
1914
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1915
+ _mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A)
1916
+ {
1917
+ return (__m512i)__builtin_ia32_selectb_512(__M,
1918
+ (__v64qi) _mm512_broadcastb_epi8(__A),
1919
+ (__v64qi) _mm512_setzero_si512());
1920
+ }
1921
+
1922
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1923
+ _mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A)
1924
+ {
1925
+ return (__m512i) __builtin_ia32_selectw_512(__M,
1926
+ (__v32hi) _mm512_set1_epi16(__A),
1927
+ (__v32hi) __O);
1928
+ }
1929
+
1930
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1931
+ _mm512_maskz_set1_epi16 (__mmask32 __M, short __A)
1932
+ {
1933
+ return (__m512i) __builtin_ia32_selectw_512(__M,
1934
+ (__v32hi) _mm512_set1_epi16(__A),
1935
+ (__v32hi) _mm512_setzero_si512());
1936
+ }
1937
+
1938
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1939
+ _mm512_broadcastw_epi16 (__m128i __A)
1940
+ {
1941
+ return (__m512i)__builtin_shufflevector((__v8hi) __A, (__v8hi) __A,
1942
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1943
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
1944
+ }
1945
+
1946
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1947
+ _mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A)
1948
+ {
1949
+ return (__m512i)__builtin_ia32_selectw_512(__M,
1950
+ (__v32hi) _mm512_broadcastw_epi16(__A),
1951
+ (__v32hi) __O);
1952
+ }
1953
+
1954
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1955
+ _mm512_maskz_broadcastw_epi16 (__mmask32 __M, __m128i __A)
1956
+ {
1957
+ return (__m512i)__builtin_ia32_selectw_512(__M,
1958
+ (__v32hi) _mm512_broadcastw_epi16(__A),
1959
+ (__v32hi) _mm512_setzero_si512());
1960
+ }
1961
+
1962
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1963
+ _mm512_permutexvar_epi16 (__m512i __A, __m512i __B)
1964
+ {
1965
+ return (__m512i)__builtin_ia32_permvarhi512((__v32hi)__B, (__v32hi)__A);
1966
+ }
1967
+
1968
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1969
+ _mm512_maskz_permutexvar_epi16 (__mmask32 __M, __m512i __A,
1970
+ __m512i __B)
1971
+ {
1972
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
1973
+ (__v32hi)_mm512_permutexvar_epi16(__A, __B),
1974
+ (__v32hi)_mm512_setzero_si512());
1975
+ }
1976
+
1977
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
1978
+ _mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
1979
+ __m512i __B)
1980
+ {
1981
+ return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
1982
+ (__v32hi)_mm512_permutexvar_epi16(__A, __B),
1983
+ (__v32hi)__W);
1984
+ }
1985
+
1986
+ #define _mm512_alignr_epi8(A, B, N) \
1987
+ (__m512i)__builtin_ia32_palignr512((__v64qi)(__m512i)(A), \
1988
+ (__v64qi)(__m512i)(B), (int)(N))
1989
+
1990
+ #define _mm512_mask_alignr_epi8(W, U, A, B, N) \
1991
+ (__m512i)__builtin_ia32_selectb_512((__mmask64)(U), \
1992
+ (__v64qi)_mm512_alignr_epi8((A), (B), (int)(N)), \
1993
+ (__v64qi)(__m512i)(W))
1994
+
1995
+ #define _mm512_maskz_alignr_epi8(U, A, B, N) \
1996
+ (__m512i)__builtin_ia32_selectb_512((__mmask64)(U), \
1997
+ (__v64qi)_mm512_alignr_epi8((A), (B), (int)(N)), \
1998
+ (__v64qi)(__m512i)_mm512_setzero_si512())
1999
+
2000
+ #define _mm512_dbsad_epu8(A, B, imm) \
2001
+ (__m512i)__builtin_ia32_dbpsadbw512((__v64qi)(__m512i)(A), \
2002
+ (__v64qi)(__m512i)(B), (int)(imm))
2003
+
2004
+ #define _mm512_mask_dbsad_epu8(W, U, A, B, imm) \
2005
+ (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
2006
+ (__v32hi)_mm512_dbsad_epu8((A), (B), (imm)), \
2007
+ (__v32hi)(__m512i)(W))
2008
+
2009
+ #define _mm512_maskz_dbsad_epu8(U, A, B, imm) \
2010
+ (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
2011
+ (__v32hi)_mm512_dbsad_epu8((A), (B), (imm)), \
2012
+ (__v32hi)_mm512_setzero_si512())
2013
+
2014
+ static __inline__ __m512i __DEFAULT_FN_ATTRS512
2015
+ _mm512_sad_epu8 (__m512i __A, __m512i __B)
2016
+ {
2017
+ return (__m512i) __builtin_ia32_psadbw512 ((__v64qi) __A,
2018
+ (__v64qi) __B);
2019
+ }
2020
+
2021
+ #undef __DEFAULT_FN_ATTRS512
2022
+ #undef __DEFAULT_FN_ATTRS
2023
+
2024
+ #endif