1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512bw -emit-llvm -o - -Werror | FileCheck %s
2 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512bw -fno-signed-char -emit-llvm -o - -Werror | FileCheck %s
3
4 // Don't include mm_malloc.h, it's system specific.
5 #define __MM_MALLOC_H
6
7 #include <immintrin.h>
8
test_mm512_cmpeq_epi8_mask(__m512i __a,__m512i __b)9 __mmask64 test_mm512_cmpeq_epi8_mask(__m512i __a, __m512i __b) {
10 // CHECK-LABEL: @test_mm512_cmpeq_epi8_mask
11 // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
12 return (__mmask64)_mm512_cmpeq_epi8_mask(__a, __b);
13 }
14
test_mm512_mask_cmpeq_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)15 __mmask64 test_mm512_mask_cmpeq_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
16 // CHECK-LABEL: @test_mm512_mask_cmpeq_epi8_mask
17 // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
18 // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
19 return (__mmask64)_mm512_mask_cmpeq_epi8_mask(__u, __a, __b);
20 }
21
test_mm512_cmpeq_epi16_mask(__m512i __a,__m512i __b)22 __mmask32 test_mm512_cmpeq_epi16_mask(__m512i __a, __m512i __b) {
23 // CHECK-LABEL: @test_mm512_cmpeq_epi16_mask
24 // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
25 return (__mmask32)_mm512_cmpeq_epi16_mask(__a, __b);
26 }
27
test_mm512_mask_cmpeq_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)28 __mmask32 test_mm512_mask_cmpeq_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
29 // CHECK-LABEL: @test_mm512_mask_cmpeq_epi16_mask
30 // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
31 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
32 return (__mmask32)_mm512_mask_cmpeq_epi16_mask(__u, __a, __b);
33 }
34
test_mm512_cmpgt_epi8_mask(__m512i __a,__m512i __b)35 __mmask64 test_mm512_cmpgt_epi8_mask(__m512i __a, __m512i __b) {
36 // CHECK-LABEL: @test_mm512_cmpgt_epi8_mask
37 // CHECK: icmp sgt <64 x i8> %{{.*}}, %{{.*}}
38 return (__mmask64)_mm512_cmpgt_epi8_mask(__a, __b);
39 }
40
test_mm512_mask_cmpgt_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)41 __mmask64 test_mm512_mask_cmpgt_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
42 // CHECK-LABEL: @test_mm512_mask_cmpgt_epi8_mask
43 // CHECK: icmp sgt <64 x i8> %{{.*}}, %{{.*}}
44 // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
45 return (__mmask64)_mm512_mask_cmpgt_epi8_mask(__u, __a, __b);
46 }
47
test_mm512_cmpgt_epi16_mask(__m512i __a,__m512i __b)48 __mmask32 test_mm512_cmpgt_epi16_mask(__m512i __a, __m512i __b) {
49 // CHECK-LABEL: @test_mm512_cmpgt_epi16_mask
50 // CHECK: icmp sgt <32 x i16> %{{.*}}, %{{.*}}
51 return (__mmask32)_mm512_cmpgt_epi16_mask(__a, __b);
52 }
53
test_mm512_mask_cmpgt_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)54 __mmask32 test_mm512_mask_cmpgt_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
55 // CHECK-LABEL: @test_mm512_mask_cmpgt_epi16_mask
56 // CHECK: icmp sgt <32 x i16> %{{.*}}, %{{.*}}
57 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
58 return (__mmask32)_mm512_mask_cmpgt_epi16_mask(__u, __a, __b);
59 }
60
test_mm512_cmpeq_epu8_mask(__m512i __a,__m512i __b)61 __mmask64 test_mm512_cmpeq_epu8_mask(__m512i __a, __m512i __b) {
62 // CHECK-LABEL: @test_mm512_cmpeq_epu8_mask
63 // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
64 return (__mmask64)_mm512_cmpeq_epu8_mask(__a, __b);
65 }
66
test_mm512_mask_cmpeq_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)67 __mmask64 test_mm512_mask_cmpeq_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
68 // CHECK-LABEL: @test_mm512_mask_cmpeq_epu8_mask
69 // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
70 // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
71 return (__mmask64)_mm512_mask_cmpeq_epu8_mask(__u, __a, __b);
72 }
73
test_mm512_cmpeq_epu16_mask(__m512i __a,__m512i __b)74 __mmask32 test_mm512_cmpeq_epu16_mask(__m512i __a, __m512i __b) {
75 // CHECK-LABEL: @test_mm512_cmpeq_epu16_mask
76 // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
77 return (__mmask32)_mm512_cmpeq_epu16_mask(__a, __b);
78 }
79
test_mm512_mask_cmpeq_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)80 __mmask32 test_mm512_mask_cmpeq_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
81 // CHECK-LABEL: @test_mm512_mask_cmpeq_epu16_mask
82 // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
83 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
84 return (__mmask32)_mm512_mask_cmpeq_epu16_mask(__u, __a, __b);
85 }
86
test_mm512_cmpgt_epu8_mask(__m512i __a,__m512i __b)87 __mmask64 test_mm512_cmpgt_epu8_mask(__m512i __a, __m512i __b) {
88 // CHECK-LABEL: @test_mm512_cmpgt_epu8_mask
89 // CHECK: icmp ugt <64 x i8> %{{.*}}, %{{.*}}
90 return (__mmask64)_mm512_cmpgt_epu8_mask(__a, __b);
91 }
92
test_mm512_mask_cmpgt_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)93 __mmask64 test_mm512_mask_cmpgt_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
94 // CHECK-LABEL: @test_mm512_mask_cmpgt_epu8_mask
95 // CHECK: icmp ugt <64 x i8> %{{.*}}, %{{.*}}
96 // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
97 return (__mmask64)_mm512_mask_cmpgt_epu8_mask(__u, __a, __b);
98 }
99
test_mm512_cmpgt_epu16_mask(__m512i __a,__m512i __b)100 __mmask32 test_mm512_cmpgt_epu16_mask(__m512i __a, __m512i __b) {
101 // CHECK-LABEL: @test_mm512_cmpgt_epu16_mask
102 // CHECK: icmp ugt <32 x i16> %{{.*}}, %{{.*}}
103 return (__mmask32)_mm512_cmpgt_epu16_mask(__a, __b);
104 }
105
test_mm512_mask_cmpgt_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)106 __mmask32 test_mm512_mask_cmpgt_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
107 // CHECK-LABEL: @test_mm512_mask_cmpgt_epu16_mask
108 // CHECK: icmp ugt <32 x i16> %{{.*}}, %{{.*}}
109 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
110 return (__mmask32)_mm512_mask_cmpgt_epu16_mask(__u, __a, __b);
111 }
112
test_mm512_cmpge_epi8_mask(__m512i __a,__m512i __b)113 __mmask64 test_mm512_cmpge_epi8_mask(__m512i __a, __m512i __b) {
114 // CHECK-LABEL: @test_mm512_cmpge_epi8_mask
115 // CHECK: icmp sge <64 x i8> %{{.*}}, %{{.*}}
116 return (__mmask64)_mm512_cmpge_epi8_mask(__a, __b);
117 }
118
test_mm512_mask_cmpge_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)119 __mmask64 test_mm512_mask_cmpge_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
120 // CHECK-LABEL: @test_mm512_mask_cmpge_epi8_mask
121 // CHECK: icmp sge <64 x i8> %{{.*}}, %{{.*}}
122 // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
123 return (__mmask64)_mm512_mask_cmpge_epi8_mask(__u, __a, __b);
124 }
125
test_mm512_cmpge_epu8_mask(__m512i __a,__m512i __b)126 __mmask64 test_mm512_cmpge_epu8_mask(__m512i __a, __m512i __b) {
127 // CHECK-LABEL: @test_mm512_cmpge_epu8_mask
128 // CHECK: icmp uge <64 x i8> %{{.*}}, %{{.*}}
129 return (__mmask64)_mm512_cmpge_epu8_mask(__a, __b);
130 }
131
test_mm512_mask_cmpge_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)132 __mmask64 test_mm512_mask_cmpge_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
133 // CHECK-LABEL: @test_mm512_mask_cmpge_epu8_mask
134 // CHECK: icmp uge <64 x i8> %{{.*}}, %{{.*}}
135 // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
136 return (__mmask64)_mm512_mask_cmpge_epu8_mask(__u, __a, __b);
137 }
138
test_mm512_cmpge_epi16_mask(__m512i __a,__m512i __b)139 __mmask32 test_mm512_cmpge_epi16_mask(__m512i __a, __m512i __b) {
140 // CHECK-LABEL: @test_mm512_cmpge_epi16_mask
141 // CHECK: icmp sge <32 x i16> %{{.*}}, %{{.*}}
142 return (__mmask32)_mm512_cmpge_epi16_mask(__a, __b);
143 }
144
test_mm512_mask_cmpge_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)145 __mmask32 test_mm512_mask_cmpge_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
146 // CHECK-LABEL: @test_mm512_mask_cmpge_epi16_mask
147 // CHECK: icmp sge <32 x i16> %{{.*}}, %{{.*}}
148 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
149 return (__mmask32)_mm512_mask_cmpge_epi16_mask(__u, __a, __b);
150 }
151
test_mm512_cmpge_epu16_mask(__m512i __a,__m512i __b)152 __mmask32 test_mm512_cmpge_epu16_mask(__m512i __a, __m512i __b) {
153 // CHECK-LABEL: @test_mm512_cmpge_epu16_mask
154 // CHECK: icmp uge <32 x i16> %{{.*}}, %{{.*}}
155 return (__mmask32)_mm512_cmpge_epu16_mask(__a, __b);
156 }
157
test_mm512_mask_cmpge_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)158 __mmask32 test_mm512_mask_cmpge_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
159 // CHECK-LABEL: @test_mm512_mask_cmpge_epu16_mask
160 // CHECK: icmp uge <32 x i16> %{{.*}}, %{{.*}}
161 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
162 return (__mmask32)_mm512_mask_cmpge_epu16_mask(__u, __a, __b);
163 }
164
test_mm512_cmple_epi8_mask(__m512i __a,__m512i __b)165 __mmask64 test_mm512_cmple_epi8_mask(__m512i __a, __m512i __b) {
166 // CHECK-LABEL: @test_mm512_cmple_epi8_mask
167 // CHECK: icmp sle <64 x i8> %{{.*}}, %{{.*}}
168 return (__mmask64)_mm512_cmple_epi8_mask(__a, __b);
169 }
170
test_mm512_mask_cmple_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)171 __mmask64 test_mm512_mask_cmple_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
172 // CHECK-LABEL: @test_mm512_mask_cmple_epi8_mask
173 // CHECK: icmp sle <64 x i8> %{{.*}}, %{{.*}}
174 // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
175 return (__mmask64)_mm512_mask_cmple_epi8_mask(__u, __a, __b);
176 }
177
test_mm512_cmple_epu8_mask(__m512i __a,__m512i __b)178 __mmask64 test_mm512_cmple_epu8_mask(__m512i __a, __m512i __b) {
179 // CHECK-LABEL: @test_mm512_cmple_epu8_mask
180 // CHECK: icmp ule <64 x i8> %{{.*}}, %{{.*}}
181 return (__mmask64)_mm512_cmple_epu8_mask(__a, __b);
182 }
183
test_mm512_mask_cmple_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)184 __mmask64 test_mm512_mask_cmple_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
185 // CHECK-LABEL: @test_mm512_mask_cmple_epu8_mask
186 // CHECK: icmp ule <64 x i8> %{{.*}}, %{{.*}}
187 // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
188 return (__mmask64)_mm512_mask_cmple_epu8_mask(__u, __a, __b);
189 }
190
test_mm512_cmple_epi16_mask(__m512i __a,__m512i __b)191 __mmask32 test_mm512_cmple_epi16_mask(__m512i __a, __m512i __b) {
192 // CHECK-LABEL: @test_mm512_cmple_epi16_mask
193 // CHECK: icmp sle <32 x i16> %{{.*}}, %{{.*}}
194 return (__mmask32)_mm512_cmple_epi16_mask(__a, __b);
195 }
196
test_mm512_mask_cmple_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)197 __mmask32 test_mm512_mask_cmple_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
198 // CHECK-LABEL: @test_mm512_mask_cmple_epi16_mask
199 // CHECK: icmp sle <32 x i16> %{{.*}}, %{{.*}}
200 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
201 return (__mmask32)_mm512_mask_cmple_epi16_mask(__u, __a, __b);
202 }
203
test_mm512_cmple_epu16_mask(__m512i __a,__m512i __b)204 __mmask32 test_mm512_cmple_epu16_mask(__m512i __a, __m512i __b) {
205 // CHECK-LABEL: @test_mm512_cmple_epu16_mask
206 // CHECK: icmp ule <32 x i16> %{{.*}}, %{{.*}}
207 return (__mmask32)_mm512_cmple_epu16_mask(__a, __b);
208 }
209
test_mm512_mask_cmple_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)210 __mmask32 test_mm512_mask_cmple_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
211 // CHECK-LABEL: @test_mm512_mask_cmple_epu16_mask
212 // CHECK: icmp ule <32 x i16> %{{.*}}, %{{.*}}
213 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
214 return (__mmask32)_mm512_mask_cmple_epu16_mask(__u, __a, __b);
215 }
216
test_mm512_cmplt_epi8_mask(__m512i __a,__m512i __b)217 __mmask64 test_mm512_cmplt_epi8_mask(__m512i __a, __m512i __b) {
218 // CHECK-LABEL: @test_mm512_cmplt_epi8_mask
219 // CHECK: icmp slt <64 x i8> %{{.*}}, %{{.*}}
220 return (__mmask64)_mm512_cmplt_epi8_mask(__a, __b);
221 }
222
test_mm512_mask_cmplt_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)223 __mmask64 test_mm512_mask_cmplt_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
224 // CHECK-LABEL: @test_mm512_mask_cmplt_epi8_mask
225 // CHECK: icmp slt <64 x i8> %{{.*}}, %{{.*}}
226 // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
227 return (__mmask64)_mm512_mask_cmplt_epi8_mask(__u, __a, __b);
228 }
229
test_mm512_cmplt_epu8_mask(__m512i __a,__m512i __b)230 __mmask64 test_mm512_cmplt_epu8_mask(__m512i __a, __m512i __b) {
231 // CHECK-LABEL: @test_mm512_cmplt_epu8_mask
232 // CHECK: icmp ult <64 x i8> %{{.*}}, %{{.*}}
233 return (__mmask64)_mm512_cmplt_epu8_mask(__a, __b);
234 }
235
test_mm512_mask_cmplt_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)236 __mmask64 test_mm512_mask_cmplt_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
237 // CHECK-LABEL: @test_mm512_mask_cmplt_epu8_mask
238 // CHECK: icmp ult <64 x i8> %{{.*}}, %{{.*}}
239 // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
240 return (__mmask64)_mm512_mask_cmplt_epu8_mask(__u, __a, __b);
241 }
242
test_mm512_cmplt_epi16_mask(__m512i __a,__m512i __b)243 __mmask32 test_mm512_cmplt_epi16_mask(__m512i __a, __m512i __b) {
244 // CHECK-LABEL: @test_mm512_cmplt_epi16_mask
245 // CHECK: icmp slt <32 x i16> %{{.*}}, %{{.*}}
246 return (__mmask32)_mm512_cmplt_epi16_mask(__a, __b);
247 }
248
test_mm512_mask_cmplt_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)249 __mmask32 test_mm512_mask_cmplt_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
250 // CHECK-LABEL: @test_mm512_mask_cmplt_epi16_mask
251 // CHECK: icmp slt <32 x i16> %{{.*}}, %{{.*}}
252 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
253 return (__mmask32)_mm512_mask_cmplt_epi16_mask(__u, __a, __b);
254 }
255
test_mm512_cmplt_epu16_mask(__m512i __a,__m512i __b)256 __mmask32 test_mm512_cmplt_epu16_mask(__m512i __a, __m512i __b) {
257 // CHECK-LABEL: @test_mm512_cmplt_epu16_mask
258 // CHECK: icmp ult <32 x i16> %{{.*}}, %{{.*}}
259 return (__mmask32)_mm512_cmplt_epu16_mask(__a, __b);
260 }
261
test_mm512_mask_cmplt_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)262 __mmask32 test_mm512_mask_cmplt_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
263 // CHECK-LABEL: @test_mm512_mask_cmplt_epu16_mask
264 // CHECK: icmp ult <32 x i16> %{{.*}}, %{{.*}}
265 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
266 return (__mmask32)_mm512_mask_cmplt_epu16_mask(__u, __a, __b);
267 }
268
test_mm512_cmpneq_epi8_mask(__m512i __a,__m512i __b)269 __mmask64 test_mm512_cmpneq_epi8_mask(__m512i __a, __m512i __b) {
270 // CHECK-LABEL: @test_mm512_cmpneq_epi8_mask
271 // CHECK: icmp ne <64 x i8> %{{.*}}, %{{.*}}
272 return (__mmask64)_mm512_cmpneq_epi8_mask(__a, __b);
273 }
274
test_mm512_mask_cmpneq_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)275 __mmask64 test_mm512_mask_cmpneq_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
276 // CHECK-LABEL: @test_mm512_mask_cmpneq_epi8_mask
277 // CHECK: icmp ne <64 x i8> %{{.*}}, %{{.*}}
278 // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
279 return (__mmask64)_mm512_mask_cmpneq_epi8_mask(__u, __a, __b);
280 }
281
test_mm512_cmpneq_epu8_mask(__m512i __a,__m512i __b)282 __mmask64 test_mm512_cmpneq_epu8_mask(__m512i __a, __m512i __b) {
283 // CHECK-LABEL: @test_mm512_cmpneq_epu8_mask
284 // CHECK: icmp ne <64 x i8> %{{.*}}, %{{.*}}
285 return (__mmask64)_mm512_cmpneq_epu8_mask(__a, __b);
286 }
287
test_mm512_mask_cmpneq_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)288 __mmask64 test_mm512_mask_cmpneq_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
289 // CHECK-LABEL: @test_mm512_mask_cmpneq_epu8_mask
290 // CHECK: icmp ne <64 x i8> %{{.*}}, %{{.*}}
291 // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
292 return (__mmask64)_mm512_mask_cmpneq_epu8_mask(__u, __a, __b);
293 }
294
test_mm512_cmpneq_epi16_mask(__m512i __a,__m512i __b)295 __mmask32 test_mm512_cmpneq_epi16_mask(__m512i __a, __m512i __b) {
296 // CHECK-LABEL: @test_mm512_cmpneq_epi16_mask
297 // CHECK: icmp ne <32 x i16> %{{.*}}, %{{.*}}
298 return (__mmask32)_mm512_cmpneq_epi16_mask(__a, __b);
299 }
300
test_mm512_mask_cmpneq_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)301 __mmask32 test_mm512_mask_cmpneq_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
302 // CHECK-LABEL: @test_mm512_mask_cmpneq_epi16_mask
303 // CHECK: icmp ne <32 x i16> %{{.*}}, %{{.*}}
304 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
305 return (__mmask32)_mm512_mask_cmpneq_epi16_mask(__u, __a, __b);
306 }
307
test_mm512_cmpneq_epu16_mask(__m512i __a,__m512i __b)308 __mmask32 test_mm512_cmpneq_epu16_mask(__m512i __a, __m512i __b) {
309 // CHECK-LABEL: @test_mm512_cmpneq_epu16_mask
310 // CHECK: icmp ne <32 x i16> %{{.*}}, %{{.*}}
311 return (__mmask32)_mm512_cmpneq_epu16_mask(__a, __b);
312 }
313
test_mm512_mask_cmpneq_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)314 __mmask32 test_mm512_mask_cmpneq_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
315 // CHECK-LABEL: @test_mm512_mask_cmpneq_epu16_mask
316 // CHECK: icmp ne <32 x i16> %{{.*}}, %{{.*}}
317 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
318 return (__mmask32)_mm512_mask_cmpneq_epu16_mask(__u, __a, __b);
319 }
320
test_mm512_cmp_epi8_mask(__m512i __a,__m512i __b)321 __mmask64 test_mm512_cmp_epi8_mask(__m512i __a, __m512i __b) {
322 // CHECK-LABEL: @test_mm512_cmp_epi8_mask
323 // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
324 return (__mmask64)_mm512_cmp_epi8_mask(__a, __b, 0);
325 }
326
test_mm512_mask_cmp_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)327 __mmask64 test_mm512_mask_cmp_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
328 // CHECK-LABEL: @test_mm512_mask_cmp_epi8_mask
329 // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
330 // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
331 return (__mmask64)_mm512_mask_cmp_epi8_mask(__u, __a, __b, 0);
332 }
333
test_mm512_cmp_epu8_mask(__m512i __a,__m512i __b)334 __mmask64 test_mm512_cmp_epu8_mask(__m512i __a, __m512i __b) {
335 // CHECK-LABEL: @test_mm512_cmp_epu8_mask
336 // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
337 return (__mmask64)_mm512_cmp_epu8_mask(__a, __b, 0);
338 }
339
test_mm512_mask_cmp_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)340 __mmask64 test_mm512_mask_cmp_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
341 // CHECK-LABEL: @test_mm512_mask_cmp_epu8_mask
342 // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
343 // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
344 return (__mmask64)_mm512_mask_cmp_epu8_mask(__u, __a, __b, 0);
345 }
346
test_mm512_cmp_epi16_mask(__m512i __a,__m512i __b)347 __mmask32 test_mm512_cmp_epi16_mask(__m512i __a, __m512i __b) {
348 // CHECK-LABEL: @test_mm512_cmp_epi16_mask
349 // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
350 return (__mmask32)_mm512_cmp_epi16_mask(__a, __b, 0);
351 }
352
test_mm512_mask_cmp_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)353 __mmask32 test_mm512_mask_cmp_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
354 // CHECK-LABEL: @test_mm512_mask_cmp_epi16_mask
355 // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
356 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
357 return (__mmask32)_mm512_mask_cmp_epi16_mask(__u, __a, __b, 0);
358 }
359
test_mm512_cmp_epu16_mask(__m512i __a,__m512i __b)360 __mmask32 test_mm512_cmp_epu16_mask(__m512i __a, __m512i __b) {
361 // CHECK-LABEL: @test_mm512_cmp_epu16_mask
362 // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
363 return (__mmask32)_mm512_cmp_epu16_mask(__a, __b, 0);
364 }
365
test_mm512_mask_cmp_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)366 __mmask32 test_mm512_mask_cmp_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
367 // CHECK-LABEL: @test_mm512_mask_cmp_epu16_mask
368 // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
369 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
370 return (__mmask32)_mm512_mask_cmp_epu16_mask(__u, __a, __b, 0);
371 }
372
test_mm512_add_epi8(__m512i __A,__m512i __B)373 __m512i test_mm512_add_epi8 (__m512i __A, __m512i __B) {
374 //CHECK-LABEL: @test_mm512_add_epi8
375 //CHECK: add <64 x i8>
376 return _mm512_add_epi8(__A,__B);
377 }
378
test_mm512_mask_add_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)379 __m512i test_mm512_mask_add_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
380 //CHECK-LABEL: @test_mm512_mask_add_epi8
381 //CHECK: @llvm.x86.avx512.mask.padd.b.512
382 return _mm512_mask_add_epi8(__W, __U, __A, __B);
383 }
384
test_mm512_maskz_add_epi8(__mmask64 __U,__m512i __A,__m512i __B)385 __m512i test_mm512_maskz_add_epi8 (__mmask64 __U, __m512i __A, __m512i __B) {
386 //CHECK-LABEL: @test_mm512_maskz_add_epi8
387 //CHECK: @llvm.x86.avx512.mask.padd.b.512
388 return _mm512_maskz_add_epi8(__U, __A, __B);
389 }
390
test_mm512_sub_epi8(__m512i __A,__m512i __B)391 __m512i test_mm512_sub_epi8 (__m512i __A, __m512i __B) {
392 //CHECK-LABEL: @test_mm512_sub_epi8
393 //CHECK: sub <64 x i8>
394 return _mm512_sub_epi8(__A, __B);
395 }
396
test_mm512_mask_sub_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)397 __m512i test_mm512_mask_sub_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
398 //CHECK-LABEL: @test_mm512_mask_sub_epi8
399 //CHECK: @llvm.x86.avx512.mask.psub.b.512
400 return _mm512_mask_sub_epi8(__W, __U, __A, __B);
401 }
402
test_mm512_maskz_sub_epi8(__mmask64 __U,__m512i __A,__m512i __B)403 __m512i test_mm512_maskz_sub_epi8 (__mmask64 __U, __m512i __A, __m512i __B) {
404 //CHECK-LABEL: @test_mm512_maskz_sub_epi8
405 //CHECK: @llvm.x86.avx512.mask.psub.b.512
406 return _mm512_maskz_sub_epi8(__U, __A, __B);
407 }
408
test_mm512_add_epi16(__m512i __A,__m512i __B)409 __m512i test_mm512_add_epi16 (__m512i __A, __m512i __B) {
410 //CHECK-LABEL: @test_mm512_add_epi16
411 //CHECK: add <32 x i16>
412 return _mm512_add_epi16(__A, __B);
413 }
414
test_mm512_mask_add_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)415 __m512i test_mm512_mask_add_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
416 //CHECK-LABEL: @test_mm512_mask_add_epi16
417 //CHECK: @llvm.x86.avx512.mask.padd.w.512
418 return _mm512_mask_add_epi16(__W, __U, __A, __B);
419 }
420
test_mm512_maskz_add_epi16(__mmask32 __U,__m512i __A,__m512i __B)421 __m512i test_mm512_maskz_add_epi16 (__mmask32 __U, __m512i __A, __m512i __B) {
422 //CHECK-LABEL: @test_mm512_maskz_add_epi16
423 //CHECK: @llvm.x86.avx512.mask.padd.w.512
424 return _mm512_maskz_add_epi16(__U, __A, __B);
425 }
426
test_mm512_sub_epi16(__m512i __A,__m512i __B)427 __m512i test_mm512_sub_epi16 (__m512i __A, __m512i __B) {
428 //CHECK-LABEL: @test_mm512_sub_epi16
429 //CHECK: sub <32 x i16>
430 return _mm512_sub_epi16(__A, __B);
431 }
432
test_mm512_mask_sub_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)433 __m512i test_mm512_mask_sub_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
434 //CHECK-LABEL: @test_mm512_mask_sub_epi16
435 //CHECK: @llvm.x86.avx512.mask.psub.w.512
436 return _mm512_mask_sub_epi16(__W, __U, __A, __B);
437 }
438
test_mm512_maskz_sub_epi16(__mmask32 __U,__m512i __A,__m512i __B)439 __m512i test_mm512_maskz_sub_epi16 (__mmask32 __U, __m512i __A, __m512i __B) {
440 //CHECK-LABEL: @test_mm512_maskz_sub_epi16
441 //CHECK: @llvm.x86.avx512.mask.psub.w.512
442 return _mm512_maskz_sub_epi16(__U, __A, __B);
443 }
444
test_mm512_mullo_epi16(__m512i __A,__m512i __B)445 __m512i test_mm512_mullo_epi16 (__m512i __A, __m512i __B) {
446 //CHECK-LABEL: @test_mm512_mullo_epi16
447 //CHECK: mul <32 x i16>
448 return _mm512_mullo_epi16(__A, __B);
449 }
450
test_mm512_mask_mullo_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)451 __m512i test_mm512_mask_mullo_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
452 //CHECK-LABEL: @test_mm512_mask_mullo_epi16
453 //CHECK: @llvm.x86.avx512.mask.pmull.w.512
454 return _mm512_mask_mullo_epi16(__W, __U, __A, __B);
455 }
456
test_mm512_maskz_mullo_epi16(__mmask32 __U,__m512i __A,__m512i __B)457 __m512i test_mm512_maskz_mullo_epi16 (__mmask32 __U, __m512i __A, __m512i __B) {
458 //CHECK-LABEL: @test_mm512_maskz_mullo_epi16
459 //CHECK: @llvm.x86.avx512.mask.pmull.w.512
460 return _mm512_maskz_mullo_epi16(__U, __A, __B);
461 }
462
test_mm512_mask_blend_epi8(__mmask64 __U,__m512i __A,__m512i __W)463 __m512i test_mm512_mask_blend_epi8(__mmask64 __U, __m512i __A, __m512i __W) {
464 // CHECK-LABEL: @test_mm512_mask_blend_epi8
465 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
466 return _mm512_mask_blend_epi8(__U,__A,__W);
467 }
test_mm512_mask_blend_epi16(__mmask32 __U,__m512i __A,__m512i __W)468 __m512i test_mm512_mask_blend_epi16(__mmask32 __U, __m512i __A, __m512i __W) {
469 // CHECK-LABEL: @test_mm512_mask_blend_epi16
470 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
471 return _mm512_mask_blend_epi16(__U,__A,__W);
472 }
test_mm512_abs_epi8(__m512i __A)473 __m512i test_mm512_abs_epi8(__m512i __A) {
474 // CHECK-LABEL: @test_mm512_abs_epi8
475 // CHECK: @llvm.x86.avx512.mask.pabs.b.512
476 return _mm512_abs_epi8(__A);
477 }
test_mm512_mask_abs_epi8(__m512i __W,__mmask64 __U,__m512i __A)478 __m512i test_mm512_mask_abs_epi8(__m512i __W, __mmask64 __U, __m512i __A) {
479 // CHECK-LABEL: @test_mm512_mask_abs_epi8
480 // CHECK: @llvm.x86.avx512.mask.pabs.b.512
481 return _mm512_mask_abs_epi8(__W,__U,__A);
482 }
test_mm512_maskz_abs_epi8(__mmask64 __U,__m512i __A)483 __m512i test_mm512_maskz_abs_epi8(__mmask64 __U, __m512i __A) {
484 // CHECK-LABEL: @test_mm512_maskz_abs_epi8
485 // CHECK: @llvm.x86.avx512.mask.pabs.b.512
486 return _mm512_maskz_abs_epi8(__U,__A);
487 }
test_mm512_abs_epi16(__m512i __A)488 __m512i test_mm512_abs_epi16(__m512i __A) {
489 // CHECK-LABEL: @test_mm512_abs_epi16
490 // CHECK: @llvm.x86.avx512.mask.pabs.w.512
491 return _mm512_abs_epi16(__A);
492 }
test_mm512_mask_abs_epi16(__m512i __W,__mmask32 __U,__m512i __A)493 __m512i test_mm512_mask_abs_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
494 // CHECK-LABEL: @test_mm512_mask_abs_epi16
495 // CHECK: @llvm.x86.avx512.mask.pabs.w.512
496 return _mm512_mask_abs_epi16(__W,__U,__A);
497 }
test_mm512_maskz_abs_epi16(__mmask32 __U,__m512i __A)498 __m512i test_mm512_maskz_abs_epi16(__mmask32 __U, __m512i __A) {
499 // CHECK-LABEL: @test_mm512_maskz_abs_epi16
500 // CHECK: @llvm.x86.avx512.mask.pabs.w.512
501 return _mm512_maskz_abs_epi16(__U,__A);
502 }
test_mm512_packs_epi32(__m512i __A,__m512i __B)503 __m512i test_mm512_packs_epi32(__m512i __A, __m512i __B) {
504 // CHECK-LABEL: @test_mm512_packs_epi32
505 // CHECK: @llvm.x86.avx512.mask.packssdw.512
506 return _mm512_packs_epi32(__A,__B);
507 }
test_mm512_maskz_packs_epi32(__mmask32 __M,__m512i __A,__m512i __B)508 __m512i test_mm512_maskz_packs_epi32(__mmask32 __M, __m512i __A, __m512i __B) {
509 // CHECK-LABEL: @test_mm512_maskz_packs_epi32
510 // CHECK: @llvm.x86.avx512.mask.packssdw.512
511 return _mm512_maskz_packs_epi32(__M,__A,__B);
512 }
test_mm512_mask_packs_epi32(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)513 __m512i test_mm512_mask_packs_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
514 // CHECK-LABEL: @test_mm512_mask_packs_epi32
515 // CHECK: @llvm.x86.avx512.mask.packssdw.512
516 return _mm512_mask_packs_epi32(__W,__M,__A,__B);
517 }
test_mm512_packs_epi16(__m512i __A,__m512i __B)518 __m512i test_mm512_packs_epi16(__m512i __A, __m512i __B) {
519 // CHECK-LABEL: @test_mm512_packs_epi16
520 // CHECK: @llvm.x86.avx512.mask.packsswb.512
521 return _mm512_packs_epi16(__A,__B);
522 }
test_mm512_mask_packs_epi16(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)523 __m512i test_mm512_mask_packs_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
524 // CHECK-LABEL: @test_mm512_mask_packs_epi16
525 // CHECK: @llvm.x86.avx512.mask.packsswb.512
526 return _mm512_mask_packs_epi16(__W,__M,__A,__B);
527 }
test_mm512_maskz_packs_epi16(__mmask64 __M,__m512i __A,__m512i __B)528 __m512i test_mm512_maskz_packs_epi16(__mmask64 __M, __m512i __A, __m512i __B) {
529 // CHECK-LABEL: @test_mm512_maskz_packs_epi16
530 // CHECK: @llvm.x86.avx512.mask.packsswb.512
531 return _mm512_maskz_packs_epi16(__M,__A,__B);
532 }
test_mm512_packus_epi32(__m512i __A,__m512i __B)533 __m512i test_mm512_packus_epi32(__m512i __A, __m512i __B) {
534 // CHECK-LABEL: @test_mm512_packus_epi32
535 // CHECK: @llvm.x86.avx512.mask.packusdw.512
536 return _mm512_packus_epi32(__A,__B);
537 }
test_mm512_maskz_packus_epi32(__mmask32 __M,__m512i __A,__m512i __B)538 __m512i test_mm512_maskz_packus_epi32(__mmask32 __M, __m512i __A, __m512i __B) {
539 // CHECK-LABEL: @test_mm512_maskz_packus_epi32
540 // CHECK: @llvm.x86.avx512.mask.packusdw.512
541 return _mm512_maskz_packus_epi32(__M,__A,__B);
542 }
test_mm512_mask_packus_epi32(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)543 __m512i test_mm512_mask_packus_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
544 // CHECK-LABEL: @test_mm512_mask_packus_epi32
545 // CHECK: @llvm.x86.avx512.mask.packusdw.512
546 return _mm512_mask_packus_epi32(__W,__M,__A,__B);
547 }
test_mm512_packus_epi16(__m512i __A,__m512i __B)548 __m512i test_mm512_packus_epi16(__m512i __A, __m512i __B) {
549 // CHECK-LABEL: @test_mm512_packus_epi16
550 // CHECK: @llvm.x86.avx512.mask.packuswb.512
551 return _mm512_packus_epi16(__A,__B);
552 }
test_mm512_mask_packus_epi16(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)553 __m512i test_mm512_mask_packus_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
554 // CHECK-LABEL: @test_mm512_mask_packus_epi16
555 // CHECK: @llvm.x86.avx512.mask.packuswb.512
556 return _mm512_mask_packus_epi16(__W,__M,__A,__B);
557 }
test_mm512_maskz_packus_epi16(__mmask64 __M,__m512i __A,__m512i __B)558 __m512i test_mm512_maskz_packus_epi16(__mmask64 __M, __m512i __A, __m512i __B) {
559 // CHECK-LABEL: @test_mm512_maskz_packus_epi16
560 // CHECK: @llvm.x86.avx512.mask.packuswb.512
561 return _mm512_maskz_packus_epi16(__M,__A,__B);
562 }
test_mm512_adds_epi8(__m512i __A,__m512i __B)563 __m512i test_mm512_adds_epi8(__m512i __A, __m512i __B) {
564 // CHECK-LABEL: @test_mm512_adds_epi8
565 // CHECK: @llvm.x86.avx512.mask.padds.b.512
566 return _mm512_adds_epi8(__A,__B);
567 }
test_mm512_mask_adds_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)568 __m512i test_mm512_mask_adds_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
569 // CHECK-LABEL: @test_mm512_mask_adds_epi8
570 // CHECK: @llvm.x86.avx512.mask.padds.b.512
571 return _mm512_mask_adds_epi8(__W,__U,__A,__B);
572 }
test_mm512_maskz_adds_epi8(__mmask64 __U,__m512i __A,__m512i __B)573 __m512i test_mm512_maskz_adds_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
574 // CHECK-LABEL: @test_mm512_maskz_adds_epi8
575 // CHECK: @llvm.x86.avx512.mask.padds.b.512
576 return _mm512_maskz_adds_epi8(__U,__A,__B);
577 }
test_mm512_adds_epi16(__m512i __A,__m512i __B)578 __m512i test_mm512_adds_epi16(__m512i __A, __m512i __B) {
579 // CHECK-LABEL: @test_mm512_adds_epi16
580 // CHECK: @llvm.x86.avx512.mask.padds.w.512
581 return _mm512_adds_epi16(__A,__B);
582 }
test_mm512_mask_adds_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)583 __m512i test_mm512_mask_adds_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
584 // CHECK-LABEL: @test_mm512_mask_adds_epi16
585 // CHECK: @llvm.x86.avx512.mask.padds.w.512
586 return _mm512_mask_adds_epi16(__W,__U,__A,__B);
587 }
test_mm512_maskz_adds_epi16(__mmask32 __U,__m512i __A,__m512i __B)588 __m512i test_mm512_maskz_adds_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
589 // CHECK-LABEL: @test_mm512_maskz_adds_epi16
590 // CHECK: @llvm.x86.avx512.mask.padds.w.512
591 return _mm512_maskz_adds_epi16(__U,__A,__B);
592 }
test_mm512_adds_epu8(__m512i __A,__m512i __B)593 __m512i test_mm512_adds_epu8(__m512i __A, __m512i __B) {
594 // CHECK-LABEL: @test_mm512_adds_epu8
595 // CHECK: @llvm.x86.avx512.mask.paddus.b.512
596 return _mm512_adds_epu8(__A,__B);
597 }
test_mm512_mask_adds_epu8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)598 __m512i test_mm512_mask_adds_epu8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
599 // CHECK-LABEL: @test_mm512_mask_adds_epu8
600 // CHECK: @llvm.x86.avx512.mask.paddus.b.512
601 return _mm512_mask_adds_epu8(__W,__U,__A,__B);
602 }
test_mm512_maskz_adds_epu8(__mmask64 __U,__m512i __A,__m512i __B)603 __m512i test_mm512_maskz_adds_epu8(__mmask64 __U, __m512i __A, __m512i __B) {
604 // CHECK-LABEL: @test_mm512_maskz_adds_epu8
605 // CHECK: @llvm.x86.avx512.mask.paddus.b.512
606 return _mm512_maskz_adds_epu8(__U,__A,__B);
607 }
test_mm512_adds_epu16(__m512i __A,__m512i __B)608 __m512i test_mm512_adds_epu16(__m512i __A, __m512i __B) {
609 // CHECK-LABEL: @test_mm512_adds_epu16
610 // CHECK: @llvm.x86.avx512.mask.paddus.w.512
611 return _mm512_adds_epu16(__A,__B);
612 }
test_mm512_mask_adds_epu16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)613 __m512i test_mm512_mask_adds_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
614 // CHECK-LABEL: @test_mm512_mask_adds_epu16
615 // CHECK: @llvm.x86.avx512.mask.paddus.w.512
616 return _mm512_mask_adds_epu16(__W,__U,__A,__B);
617 }
test_mm512_maskz_adds_epu16(__mmask32 __U,__m512i __A,__m512i __B)618 __m512i test_mm512_maskz_adds_epu16(__mmask32 __U, __m512i __A, __m512i __B) {
619 // CHECK-LABEL: @test_mm512_maskz_adds_epu16
620 // CHECK: @llvm.x86.avx512.mask.paddus.w.512
621 return _mm512_maskz_adds_epu16(__U,__A,__B);
622 }
test_mm512_avg_epu8(__m512i __A,__m512i __B)623 __m512i test_mm512_avg_epu8(__m512i __A, __m512i __B) {
624 // CHECK-LABEL: @test_mm512_avg_epu8
625 // CHECK: @llvm.x86.avx512.mask.pavg.b.512
626 return _mm512_avg_epu8(__A,__B);
627 }
test_mm512_mask_avg_epu8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)628 __m512i test_mm512_mask_avg_epu8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
629 // CHECK-LABEL: @test_mm512_mask_avg_epu8
630 // CHECK: @llvm.x86.avx512.mask.pavg.b.512
631 return _mm512_mask_avg_epu8(__W,__U,__A,__B);
632 }
test_mm512_maskz_avg_epu8(__mmask64 __U,__m512i __A,__m512i __B)633 __m512i test_mm512_maskz_avg_epu8(__mmask64 __U, __m512i __A, __m512i __B) {
634 // CHECK-LABEL: @test_mm512_maskz_avg_epu8
635 // CHECK: @llvm.x86.avx512.mask.pavg.b.512
636 return _mm512_maskz_avg_epu8(__U,__A,__B);
637 }
test_mm512_avg_epu16(__m512i __A,__m512i __B)638 __m512i test_mm512_avg_epu16(__m512i __A, __m512i __B) {
639 // CHECK-LABEL: @test_mm512_avg_epu16
640 // CHECK: @llvm.x86.avx512.mask.pavg.w.512
641 return _mm512_avg_epu16(__A,__B);
642 }
test_mm512_mask_avg_epu16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)643 __m512i test_mm512_mask_avg_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
644 // CHECK-LABEL: @test_mm512_mask_avg_epu16
645 // CHECK: @llvm.x86.avx512.mask.pavg.w.512
646 return _mm512_mask_avg_epu16(__W,__U,__A,__B);
647 }
test_mm512_maskz_avg_epu16(__mmask32 __U,__m512i __A,__m512i __B)648 __m512i test_mm512_maskz_avg_epu16(__mmask32 __U, __m512i __A, __m512i __B) {
649 // CHECK-LABEL: @test_mm512_maskz_avg_epu16
650 // CHECK: @llvm.x86.avx512.mask.pavg.w.512
651 return _mm512_maskz_avg_epu16(__U,__A,__B);
652 }
test_mm512_max_epi8(__m512i __A,__m512i __B)653 __m512i test_mm512_max_epi8(__m512i __A, __m512i __B) {
654 // CHECK-LABEL: @test_mm512_max_epi8
655 // CHECK: @llvm.x86.avx512.mask.pmaxs.b.512
656 return _mm512_max_epi8(__A,__B);
657 }
test_mm512_maskz_max_epi8(__mmask64 __M,__m512i __A,__m512i __B)658 __m512i test_mm512_maskz_max_epi8(__mmask64 __M, __m512i __A, __m512i __B) {
659 // CHECK-LABEL: @test_mm512_maskz_max_epi8
660 // CHECK: @llvm.x86.avx512.mask.pmaxs.b.512
661 return _mm512_maskz_max_epi8(__M,__A,__B);
662 }
test_mm512_mask_max_epi8(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)663 __m512i test_mm512_mask_max_epi8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
664 // CHECK-LABEL: @test_mm512_mask_max_epi8
665 // CHECK: @llvm.x86.avx512.mask.pmaxs.b.512
666 return _mm512_mask_max_epi8(__W,__M,__A,__B);
667 }
test_mm512_max_epi16(__m512i __A,__m512i __B)668 __m512i test_mm512_max_epi16(__m512i __A, __m512i __B) {
669 // CHECK-LABEL: @test_mm512_max_epi16
670 // CHECK: @llvm.x86.avx512.mask.pmaxs.w.512
671 return _mm512_max_epi16(__A,__B);
672 }
test_mm512_maskz_max_epi16(__mmask32 __M,__m512i __A,__m512i __B)673 __m512i test_mm512_maskz_max_epi16(__mmask32 __M, __m512i __A, __m512i __B) {
674 // CHECK-LABEL: @test_mm512_maskz_max_epi16
675 // CHECK: @llvm.x86.avx512.mask.pmaxs.w.512
676 return _mm512_maskz_max_epi16(__M,__A,__B);
677 }
test_mm512_mask_max_epi16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)678 __m512i test_mm512_mask_max_epi16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
679 // CHECK-LABEL: @test_mm512_mask_max_epi16
680 // CHECK: @llvm.x86.avx512.mask.pmaxs.w.512
681 return _mm512_mask_max_epi16(__W,__M,__A,__B);
682 }
test_mm512_max_epu8(__m512i __A,__m512i __B)683 __m512i test_mm512_max_epu8(__m512i __A, __m512i __B) {
684 // CHECK-LABEL: @test_mm512_max_epu8
685 // CHECK: @llvm.x86.avx512.mask.pmaxu.b.512
686 return _mm512_max_epu8(__A,__B);
687 }
test_mm512_maskz_max_epu8(__mmask64 __M,__m512i __A,__m512i __B)688 __m512i test_mm512_maskz_max_epu8(__mmask64 __M, __m512i __A, __m512i __B) {
689 // CHECK-LABEL: @test_mm512_maskz_max_epu8
690 // CHECK: @llvm.x86.avx512.mask.pmaxu.b.512
691 return _mm512_maskz_max_epu8(__M,__A,__B);
692 }
test_mm512_mask_max_epu8(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)693 __m512i test_mm512_mask_max_epu8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
694 // CHECK-LABEL: @test_mm512_mask_max_epu8
695 // CHECK: @llvm.x86.avx512.mask.pmaxu.b.512
696 return _mm512_mask_max_epu8(__W,__M,__A,__B);
697 }
test_mm512_max_epu16(__m512i __A,__m512i __B)698 __m512i test_mm512_max_epu16(__m512i __A, __m512i __B) {
699 // CHECK-LABEL: @test_mm512_max_epu16
700 // CHECK: @llvm.x86.avx512.mask.pmaxu.w.512
701 return _mm512_max_epu16(__A,__B);
702 }
test_mm512_maskz_max_epu16(__mmask32 __M,__m512i __A,__m512i __B)703 __m512i test_mm512_maskz_max_epu16(__mmask32 __M, __m512i __A, __m512i __B) {
704 // CHECK-LABEL: @test_mm512_maskz_max_epu16
705 // CHECK: @llvm.x86.avx512.mask.pmaxu.w.512
706 return _mm512_maskz_max_epu16(__M,__A,__B);
707 }
test_mm512_mask_max_epu16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)708 __m512i test_mm512_mask_max_epu16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
709 // CHECK-LABEL: @test_mm512_mask_max_epu16
710 // CHECK: @llvm.x86.avx512.mask.pmaxu.w.512
711 return _mm512_mask_max_epu16(__W,__M,__A,__B);
712 }
test_mm512_min_epi8(__m512i __A,__m512i __B)713 __m512i test_mm512_min_epi8(__m512i __A, __m512i __B) {
714 // CHECK-LABEL: @test_mm512_min_epi8
715 // CHECK: @llvm.x86.avx512.mask.pmins.b.512
716 return _mm512_min_epi8(__A,__B);
717 }
test_mm512_maskz_min_epi8(__mmask64 __M,__m512i __A,__m512i __B)718 __m512i test_mm512_maskz_min_epi8(__mmask64 __M, __m512i __A, __m512i __B) {
719 // CHECK-LABEL: @test_mm512_maskz_min_epi8
720 // CHECK: @llvm.x86.avx512.mask.pmins.b.512
721 return _mm512_maskz_min_epi8(__M,__A,__B);
722 }
test_mm512_mask_min_epi8(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)723 __m512i test_mm512_mask_min_epi8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
724 // CHECK-LABEL: @test_mm512_mask_min_epi8
725 // CHECK: @llvm.x86.avx512.mask.pmins.b.512
726 return _mm512_mask_min_epi8(__W,__M,__A,__B);
727 }
test_mm512_min_epi16(__m512i __A,__m512i __B)728 __m512i test_mm512_min_epi16(__m512i __A, __m512i __B) {
729 // CHECK-LABEL: @test_mm512_min_epi16
730 // CHECK: @llvm.x86.avx512.mask.pmins.w.512
731 return _mm512_min_epi16(__A,__B);
732 }
test_mm512_maskz_min_epi16(__mmask32 __M,__m512i __A,__m512i __B)733 __m512i test_mm512_maskz_min_epi16(__mmask32 __M, __m512i __A, __m512i __B) {
734 // CHECK-LABEL: @test_mm512_maskz_min_epi16
735 // CHECK: @llvm.x86.avx512.mask.pmins.w.512
736 return _mm512_maskz_min_epi16(__M,__A,__B);
737 }
test_mm512_mask_min_epi16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)738 __m512i test_mm512_mask_min_epi16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
739 // CHECK-LABEL: @test_mm512_mask_min_epi16
740 // CHECK: @llvm.x86.avx512.mask.pmins.w.512
741 return _mm512_mask_min_epi16(__W,__M,__A,__B);
742 }
test_mm512_min_epu8(__m512i __A,__m512i __B)743 __m512i test_mm512_min_epu8(__m512i __A, __m512i __B) {
744 // CHECK-LABEL: @test_mm512_min_epu8
745 // CHECK: @llvm.x86.avx512.mask.pminu.b.512
746 return _mm512_min_epu8(__A,__B);
747 }
test_mm512_maskz_min_epu8(__mmask64 __M,__m512i __A,__m512i __B)748 __m512i test_mm512_maskz_min_epu8(__mmask64 __M, __m512i __A, __m512i __B) {
749 // CHECK-LABEL: @test_mm512_maskz_min_epu8
750 // CHECK: @llvm.x86.avx512.mask.pminu.b.512
751 return _mm512_maskz_min_epu8(__M,__A,__B);
752 }
test_mm512_mask_min_epu8(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)753 __m512i test_mm512_mask_min_epu8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
754 // CHECK-LABEL: @test_mm512_mask_min_epu8
755 // CHECK: @llvm.x86.avx512.mask.pminu.b.512
756 return _mm512_mask_min_epu8(__W,__M,__A,__B);
757 }
test_mm512_min_epu16(__m512i __A,__m512i __B)758 __m512i test_mm512_min_epu16(__m512i __A, __m512i __B) {
759 // CHECK-LABEL: @test_mm512_min_epu16
760 // CHECK: @llvm.x86.avx512.mask.pminu.w.512
761 return _mm512_min_epu16(__A,__B);
762 }
test_mm512_maskz_min_epu16(__mmask32 __M,__m512i __A,__m512i __B)763 __m512i test_mm512_maskz_min_epu16(__mmask32 __M, __m512i __A, __m512i __B) {
764 // CHECK-LABEL: @test_mm512_maskz_min_epu16
765 // CHECK: @llvm.x86.avx512.mask.pminu.w.512
766 return _mm512_maskz_min_epu16(__M,__A,__B);
767 }
test_mm512_mask_min_epu16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)768 __m512i test_mm512_mask_min_epu16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
769 // CHECK-LABEL: @test_mm512_mask_min_epu16
770 // CHECK: @llvm.x86.avx512.mask.pminu.w.512
771 return _mm512_mask_min_epu16(__W,__M,__A,__B);
772 }
test_mm512_shuffle_epi8(__m512i __A,__m512i __B)773 __m512i test_mm512_shuffle_epi8(__m512i __A, __m512i __B) {
774 // CHECK-LABEL: @test_mm512_shuffle_epi8
775 // CHECK: @llvm.x86.avx512.mask.pshuf.b.512
776 return _mm512_shuffle_epi8(__A,__B);
777 }
test_mm512_mask_shuffle_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)778 __m512i test_mm512_mask_shuffle_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
779 // CHECK-LABEL: @test_mm512_mask_shuffle_epi8
780 // CHECK: @llvm.x86.avx512.mask.pshuf.b.512
781 return _mm512_mask_shuffle_epi8(__W,__U,__A,__B);
782 }
test_mm512_maskz_shuffle_epi8(__mmask64 __U,__m512i __A,__m512i __B)783 __m512i test_mm512_maskz_shuffle_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
784 // CHECK-LABEL: @test_mm512_maskz_shuffle_epi8
785 // CHECK: @llvm.x86.avx512.mask.pshuf.b.512
786 return _mm512_maskz_shuffle_epi8(__U,__A,__B);
787 }
test_mm512_subs_epi8(__m512i __A,__m512i __B)788 __m512i test_mm512_subs_epi8(__m512i __A, __m512i __B) {
789 // CHECK-LABEL: @test_mm512_subs_epi8
790 // CHECK: @llvm.x86.avx512.mask.psubs.b.512
791 return _mm512_subs_epi8(__A,__B);
792 }
test_mm512_mask_subs_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)793 __m512i test_mm512_mask_subs_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
794 // CHECK-LABEL: @test_mm512_mask_subs_epi8
795 // CHECK: @llvm.x86.avx512.mask.psubs.b.512
796 return _mm512_mask_subs_epi8(__W,__U,__A,__B);
797 }
test_mm512_maskz_subs_epi8(__mmask64 __U,__m512i __A,__m512i __B)798 __m512i test_mm512_maskz_subs_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
799 // CHECK-LABEL: @test_mm512_maskz_subs_epi8
800 // CHECK: @llvm.x86.avx512.mask.psubs.b.512
801 return _mm512_maskz_subs_epi8(__U,__A,__B);
802 }
test_mm512_subs_epi16(__m512i __A,__m512i __B)803 __m512i test_mm512_subs_epi16(__m512i __A, __m512i __B) {
804 // CHECK-LABEL: @test_mm512_subs_epi16
805 // CHECK: @llvm.x86.avx512.mask.psubs.w.512
806 return _mm512_subs_epi16(__A,__B);
807 }
test_mm512_mask_subs_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)808 __m512i test_mm512_mask_subs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
809 // CHECK-LABEL: @test_mm512_mask_subs_epi16
810 // CHECK: @llvm.x86.avx512.mask.psubs.w.512
811 return _mm512_mask_subs_epi16(__W,__U,__A,__B);
812 }
test_mm512_maskz_subs_epi16(__mmask32 __U,__m512i __A,__m512i __B)813 __m512i test_mm512_maskz_subs_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
814 // CHECK-LABEL: @test_mm512_maskz_subs_epi16
815 // CHECK: @llvm.x86.avx512.mask.psubs.w.512
816 return _mm512_maskz_subs_epi16(__U,__A,__B);
817 }
test_mm512_subs_epu8(__m512i __A,__m512i __B)818 __m512i test_mm512_subs_epu8(__m512i __A, __m512i __B) {
819 // CHECK-LABEL: @test_mm512_subs_epu8
820 // CHECK: @llvm.x86.avx512.mask.psubus.b.512
821 return _mm512_subs_epu8(__A,__B);
822 }
test_mm512_mask_subs_epu8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)823 __m512i test_mm512_mask_subs_epu8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
824 // CHECK-LABEL: @test_mm512_mask_subs_epu8
825 // CHECK: @llvm.x86.avx512.mask.psubus.b.512
826 return _mm512_mask_subs_epu8(__W,__U,__A,__B);
827 }
test_mm512_maskz_subs_epu8(__mmask64 __U,__m512i __A,__m512i __B)828 __m512i test_mm512_maskz_subs_epu8(__mmask64 __U, __m512i __A, __m512i __B) {
829 // CHECK-LABEL: @test_mm512_maskz_subs_epu8
830 // CHECK: @llvm.x86.avx512.mask.psubus.b.512
831 return _mm512_maskz_subs_epu8(__U,__A,__B);
832 }
test_mm512_subs_epu16(__m512i __A,__m512i __B)833 __m512i test_mm512_subs_epu16(__m512i __A, __m512i __B) {
834 // CHECK-LABEL: @test_mm512_subs_epu16
835 // CHECK: @llvm.x86.avx512.mask.psubus.w.512
836 return _mm512_subs_epu16(__A,__B);
837 }
test_mm512_mask_subs_epu16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)838 __m512i test_mm512_mask_subs_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
839 // CHECK-LABEL: @test_mm512_mask_subs_epu16
840 // CHECK: @llvm.x86.avx512.mask.psubus.w.512
841 return _mm512_mask_subs_epu16(__W,__U,__A,__B);
842 }
test_mm512_maskz_subs_epu16(__mmask32 __U,__m512i __A,__m512i __B)843 __m512i test_mm512_maskz_subs_epu16(__mmask32 __U, __m512i __A, __m512i __B) {
844 // CHECK-LABEL: @test_mm512_maskz_subs_epu16
845 // CHECK: @llvm.x86.avx512.mask.psubus.w.512
846 return _mm512_maskz_subs_epu16(__U,__A,__B);
847 }
test_mm512_mask2_permutex2var_epi16(__m512i __A,__m512i __I,__mmask32 __U,__m512i __B)848 __m512i test_mm512_mask2_permutex2var_epi16(__m512i __A, __m512i __I, __mmask32 __U, __m512i __B) {
849 // CHECK-LABEL: @test_mm512_mask2_permutex2var_epi16
850 // CHECK: @llvm.x86.avx512.mask.vpermi2var.hi.512
851 return _mm512_mask2_permutex2var_epi16(__A,__I,__U,__B);
852 }
test_mm512_permutex2var_epi16(__m512i __A,__m512i __I,__m512i __B)853 __m512i test_mm512_permutex2var_epi16(__m512i __A, __m512i __I, __m512i __B) {
854 // CHECK-LABEL: @test_mm512_permutex2var_epi16
855 // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.512
856 return _mm512_permutex2var_epi16(__A,__I,__B);
857 }
test_mm512_mask_permutex2var_epi16(__m512i __A,__mmask32 __U,__m512i __I,__m512i __B)858 __m512i test_mm512_mask_permutex2var_epi16(__m512i __A, __mmask32 __U, __m512i __I, __m512i __B) {
859 // CHECK-LABEL: @test_mm512_mask_permutex2var_epi16
860 // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.512
861 return _mm512_mask_permutex2var_epi16(__A,__U,__I,__B);
862 }
test_mm512_maskz_permutex2var_epi16(__mmask32 __U,__m512i __A,__m512i __I,__m512i __B)863 __m512i test_mm512_maskz_permutex2var_epi16(__mmask32 __U, __m512i __A, __m512i __I, __m512i __B) {
864 // CHECK-LABEL: @test_mm512_maskz_permutex2var_epi16
865 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.hi.512
866 return _mm512_maskz_permutex2var_epi16(__U,__A,__I,__B);
867 }
868
test_mm512_mulhrs_epi16(__m512i __A,__m512i __B)869 __m512i test_mm512_mulhrs_epi16(__m512i __A, __m512i __B) {
870 // CHECK-LABEL: @test_mm512_mulhrs_epi16
871 // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.512
872 return _mm512_mulhrs_epi16(__A,__B);
873 }
test_mm512_mask_mulhrs_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)874 __m512i test_mm512_mask_mulhrs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
875 // CHECK-LABEL: @test_mm512_mask_mulhrs_epi16
876 // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.512
877 return _mm512_mask_mulhrs_epi16(__W,__U,__A,__B);
878 }
test_mm512_maskz_mulhrs_epi16(__mmask32 __U,__m512i __A,__m512i __B)879 __m512i test_mm512_maskz_mulhrs_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
880 // CHECK-LABEL: @test_mm512_maskz_mulhrs_epi16
881 // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.512
882 return _mm512_maskz_mulhrs_epi16(__U,__A,__B);
883 }
test_mm512_mulhi_epi16(__m512i __A,__m512i __B)884 __m512i test_mm512_mulhi_epi16(__m512i __A, __m512i __B) {
885 // CHECK-LABEL: @test_mm512_mulhi_epi16
886 // CHECK: @llvm.x86.avx512.mask.pmulh.w.512
887 return _mm512_mulhi_epi16(__A,__B);
888 }
test_mm512_mask_mulhi_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)889 __m512i test_mm512_mask_mulhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
890 // CHECK-LABEL: @test_mm512_mask_mulhi_epi16
891 // CHECK: @llvm.x86.avx512.mask.pmulh.w.512
892 return _mm512_mask_mulhi_epi16(__W,__U,__A,__B);
893 }
test_mm512_maskz_mulhi_epi16(__mmask32 __U,__m512i __A,__m512i __B)894 __m512i test_mm512_maskz_mulhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
895 // CHECK-LABEL: @test_mm512_maskz_mulhi_epi16
896 // CHECK: @llvm.x86.avx512.mask.pmulh.w.512
897 return _mm512_maskz_mulhi_epi16(__U,__A,__B);
898 }
test_mm512_mulhi_epu16(__m512i __A,__m512i __B)899 __m512i test_mm512_mulhi_epu16(__m512i __A, __m512i __B) {
900 // CHECK-LABEL: @test_mm512_mulhi_epu16
901 // CHECK: @llvm.x86.avx512.mask.pmulhu.w.512
902 return _mm512_mulhi_epu16(__A,__B);
903 }
test_mm512_mask_mulhi_epu16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)904 __m512i test_mm512_mask_mulhi_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
905 // CHECK-LABEL: @test_mm512_mask_mulhi_epu16
906 // CHECK: @llvm.x86.avx512.mask.pmulhu.w.512
907 return _mm512_mask_mulhi_epu16(__W,__U,__A,__B);
908 }
test_mm512_maskz_mulhi_epu16(__mmask32 __U,__m512i __A,__m512i __B)909 __m512i test_mm512_maskz_mulhi_epu16(__mmask32 __U, __m512i __A, __m512i __B) {
910 // CHECK-LABEL: @test_mm512_maskz_mulhi_epu16
911 // CHECK: @llvm.x86.avx512.mask.pmulhu.w.512
912 return _mm512_maskz_mulhi_epu16(__U,__A,__B);
913 }
914
test_mm512_maddubs_epi16(__m512i __X,__m512i __Y)915 __m512i test_mm512_maddubs_epi16(__m512i __X, __m512i __Y) {
916 // CHECK-LABEL: @test_mm512_maddubs_epi16
917 // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.512
918 return _mm512_maddubs_epi16(__X,__Y);
919 }
test_mm512_mask_maddubs_epi16(__m512i __W,__mmask32 __U,__m512i __X,__m512i __Y)920 __m512i test_mm512_mask_maddubs_epi16(__m512i __W, __mmask32 __U, __m512i __X, __m512i __Y) {
921 // CHECK-LABEL: @test_mm512_mask_maddubs_epi16
922 // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.512
923 return _mm512_mask_maddubs_epi16(__W,__U,__X,__Y);
924 }
test_mm512_maskz_maddubs_epi16(__mmask32 __U,__m512i __X,__m512i __Y)925 __m512i test_mm512_maskz_maddubs_epi16(__mmask32 __U, __m512i __X, __m512i __Y) {
926 // CHECK-LABEL: @test_mm512_maskz_maddubs_epi16
927 // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.512
928 return _mm512_maskz_maddubs_epi16(__U,__X,__Y);
929 }
test_mm512_madd_epi16(__m512i __A,__m512i __B)930 __m512i test_mm512_madd_epi16(__m512i __A, __m512i __B) {
931 // CHECK-LABEL: @test_mm512_madd_epi16
932 // CHECK: @llvm.x86.avx512.mask.pmaddw.d.512
933 return _mm512_madd_epi16(__A,__B);
934 }
test_mm512_mask_madd_epi16(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)935 __m512i test_mm512_mask_madd_epi16(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
936 // CHECK-LABEL: @test_mm512_mask_madd_epi16
937 // CHECK: @llvm.x86.avx512.mask.pmaddw.d.512
938 return _mm512_mask_madd_epi16(__W,__U,__A,__B);
939 }
test_mm512_maskz_madd_epi16(__mmask16 __U,__m512i __A,__m512i __B)940 __m512i test_mm512_maskz_madd_epi16(__mmask16 __U, __m512i __A, __m512i __B) {
941 // CHECK-LABEL: @test_mm512_maskz_madd_epi16
942 // CHECK: @llvm.x86.avx512.mask.pmaddw.d.512
943 return _mm512_maskz_madd_epi16(__U,__A,__B);
944 }
945
test_mm512_cvtsepi16_epi8(__m512i __A)946 __m256i test_mm512_cvtsepi16_epi8(__m512i __A) {
947 // CHECK-LABEL: @test_mm512_cvtsepi16_epi8
948 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.512
949 return _mm512_cvtsepi16_epi8(__A);
950 }
951
test_mm512_mask_cvtsepi16_epi8(__m256i __O,__mmask32 __M,__m512i __A)952 __m256i test_mm512_mask_cvtsepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A) {
953 // CHECK-LABEL: @test_mm512_mask_cvtsepi16_epi8
954 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.512
955 return _mm512_mask_cvtsepi16_epi8(__O, __M, __A);
956 }
957
test_mm512_maskz_cvtsepi16_epi8(__mmask32 __M,__m512i __A)958 __m256i test_mm512_maskz_cvtsepi16_epi8(__mmask32 __M, __m512i __A) {
959 // CHECK-LABEL: @test_mm512_maskz_cvtsepi16_epi8
960 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.512
961 return _mm512_maskz_cvtsepi16_epi8(__M, __A);
962 }
963
test_mm512_cvtusepi16_epi8(__m512i __A)964 __m256i test_mm512_cvtusepi16_epi8(__m512i __A) {
965 // CHECK-LABEL: @test_mm512_cvtusepi16_epi8
966 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.512
967 return _mm512_cvtusepi16_epi8(__A);
968 }
969
test_mm512_mask_cvtusepi16_epi8(__m256i __O,__mmask32 __M,__m512i __A)970 __m256i test_mm512_mask_cvtusepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A) {
971 // CHECK-LABEL: @test_mm512_mask_cvtusepi16_epi8
972 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.512
973 return _mm512_mask_cvtusepi16_epi8(__O, __M, __A);
974 }
975
test_mm512_maskz_cvtusepi16_epi8(__mmask32 __M,__m512i __A)976 __m256i test_mm512_maskz_cvtusepi16_epi8(__mmask32 __M, __m512i __A) {
977 // CHECK-LABEL: @test_mm512_maskz_cvtusepi16_epi8
978 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.512
979 return _mm512_maskz_cvtusepi16_epi8(__M, __A);
980 }
981
test_mm512_cvtepi16_epi8(__m512i __A)982 __m256i test_mm512_cvtepi16_epi8(__m512i __A) {
983 // CHECK-LABEL: @test_mm512_cvtepi16_epi8
984 // CHECK: @llvm.x86.avx512.mask.pmov.wb.512
985 return _mm512_cvtepi16_epi8(__A);
986 }
987
test_mm512_mask_cvtepi16_epi8(__m256i __O,__mmask32 __M,__m512i __A)988 __m256i test_mm512_mask_cvtepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A) {
989 // CHECK-LABEL: @test_mm512_mask_cvtepi16_epi8
990 // CHECK: @llvm.x86.avx512.mask.pmov.wb.512
991 return _mm512_mask_cvtepi16_epi8(__O, __M, __A);
992 }
993
test_mm512_maskz_cvtepi16_epi8(__mmask32 __M,__m512i __A)994 __m256i test_mm512_maskz_cvtepi16_epi8(__mmask32 __M, __m512i __A) {
995 // CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi8
996 // CHECK: @llvm.x86.avx512.mask.pmov.wb.512
997 return _mm512_maskz_cvtepi16_epi8(__M, __A);
998 }
999
test_mm512_unpackhi_epi8(__m512i __A,__m512i __B)1000 __m512i test_mm512_unpackhi_epi8(__m512i __A, __m512i __B) {
1001 // CHECK-LABEL: @test_mm512_unpackhi_epi8
1002 // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 8, i32 72, i32 9, i32 73, i32 10, i32 74, i32 11, i32 75, i32 12, i32 76, i32 13, i32 77, i32 14, i32 78, i32 15, i32 79, i32 24, i32 88, i32 25, i32 89, i32 26, i32 90, i32 27, i32 91, i32 28, i32 92, i32 29, i32 93, i32 30, i32 94, i32 31, i32 95, i32 40, i32 104, i32 41, i32 105, i32 42, i32 106, i32 43, i32 107, i32 44, i32 108, i32 45, i32 109, i32 46, i32 110, i32 47, i32 111, i32 56, i32 120, i32 57, i32 121, i32 58, i32 122, i32 59, i32 123, i32 60, i32 124, i32 61, i32 125, i32 62, i32 126, i32 63, i32 127>
1003 return _mm512_unpackhi_epi8(__A, __B);
1004 }
1005
test_mm512_mask_unpackhi_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)1006 __m512i test_mm512_mask_unpackhi_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
1007 // CHECK-LABEL: @test_mm512_mask_unpackhi_epi8
1008 // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 8, i32 72, i32 9, i32 73, i32 10, i32 74, i32 11, i32 75, i32 12, i32 76, i32 13, i32 77, i32 14, i32 78, i32 15, i32 79, i32 24, i32 88, i32 25, i32 89, i32 26, i32 90, i32 27, i32 91, i32 28, i32 92, i32 29, i32 93, i32 30, i32 94, i32 31, i32 95, i32 40, i32 104, i32 41, i32 105, i32 42, i32 106, i32 43, i32 107, i32 44, i32 108, i32 45, i32 109, i32 46, i32 110, i32 47, i32 111, i32 56, i32 120, i32 57, i32 121, i32 58, i32 122, i32 59, i32 123, i32 60, i32 124, i32 61, i32 125, i32 62, i32 126, i32 63, i32 127>
1009 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1010 return _mm512_mask_unpackhi_epi8(__W, __U, __A, __B);
1011 }
1012
test_mm512_maskz_unpackhi_epi8(__mmask64 __U,__m512i __A,__m512i __B)1013 __m512i test_mm512_maskz_unpackhi_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
1014 // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi8
1015 // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 8, i32 72, i32 9, i32 73, i32 10, i32 74, i32 11, i32 75, i32 12, i32 76, i32 13, i32 77, i32 14, i32 78, i32 15, i32 79, i32 24, i32 88, i32 25, i32 89, i32 26, i32 90, i32 27, i32 91, i32 28, i32 92, i32 29, i32 93, i32 30, i32 94, i32 31, i32 95, i32 40, i32 104, i32 41, i32 105, i32 42, i32 106, i32 43, i32 107, i32 44, i32 108, i32 45, i32 109, i32 46, i32 110, i32 47, i32 111, i32 56, i32 120, i32 57, i32 121, i32 58, i32 122, i32 59, i32 123, i32 60, i32 124, i32 61, i32 125, i32 62, i32 126, i32 63, i32 127>
1016 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1017 return _mm512_maskz_unpackhi_epi8(__U, __A, __B);
1018 }
1019
test_mm512_unpackhi_epi16(__m512i __A,__m512i __B)1020 __m512i test_mm512_unpackhi_epi16(__m512i __A, __m512i __B) {
1021 // CHECK-LABEL: @test_mm512_unpackhi_epi16
1022 // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 12, i32 44, i32 13, i32 45, i32 14, i32 46, i32 15, i32 47, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55, i32 28, i32 60, i32 29, i32 61, i32 30, i32 62, i32 31, i32 63>
1023 return _mm512_unpackhi_epi16(__A, __B);
1024 }
1025
test_mm512_mask_unpackhi_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1026 __m512i test_mm512_mask_unpackhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1027 // CHECK-LABEL: @test_mm512_mask_unpackhi_epi16
1028 // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 12, i32 44, i32 13, i32 45, i32 14, i32 46, i32 15, i32 47, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55, i32 28, i32 60, i32 29, i32 61, i32 30, i32 62, i32 31, i32 63>
1029 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1030 return _mm512_mask_unpackhi_epi16(__W, __U, __A, __B);
1031 }
1032
test_mm512_maskz_unpackhi_epi16(__mmask32 __U,__m512i __A,__m512i __B)1033 __m512i test_mm512_maskz_unpackhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1034 // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi16
1035 // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 12, i32 44, i32 13, i32 45, i32 14, i32 46, i32 15, i32 47, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55, i32 28, i32 60, i32 29, i32 61, i32 30, i32 62, i32 31, i32 63>
1036 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1037 return _mm512_maskz_unpackhi_epi16(__U, __A, __B);
1038 }
1039
test_mm512_unpacklo_epi8(__m512i __A,__m512i __B)1040 __m512i test_mm512_unpacklo_epi8(__m512i __A, __m512i __B) {
1041 // CHECK-LABEL: @test_mm512_unpacklo_epi8
1042 // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 0, i32 64, i32 1, i32 65, i32 2, i32 66, i32 3, i32 67, i32 4, i32 68, i32 5, i32 69, i32 6, i32 70, i32 7, i32 71, i32 16, i32 80, i32 17, i32 81, i32 18, i32 82, i32 19, i32 83, i32 20, i32 84, i32 21, i32 85, i32 22, i32 86, i32 23, i32 87, i32 32, i32 96, i32 33, i32 97, i32 34, i32 98, i32 35, i32 99, i32 36, i32 100, i32 37, i32 101, i32 38, i32 102, i32 39, i32 103, i32 48, i32 112, i32 49, i32 113, i32 50, i32 114, i32 51, i32 115, i32 52, i32 116, i32 53, i32 117, i32 54, i32 118, i32 55, i32 119>
1043 return _mm512_unpacklo_epi8(__A, __B);
1044 }
1045
test_mm512_mask_unpacklo_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)1046 __m512i test_mm512_mask_unpacklo_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
1047 // CHECK-LABEL: @test_mm512_mask_unpacklo_epi8
1048 // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 0, i32 64, i32 1, i32 65, i32 2, i32 66, i32 3, i32 67, i32 4, i32 68, i32 5, i32 69, i32 6, i32 70, i32 7, i32 71, i32 16, i32 80, i32 17, i32 81, i32 18, i32 82, i32 19, i32 83, i32 20, i32 84, i32 21, i32 85, i32 22, i32 86, i32 23, i32 87, i32 32, i32 96, i32 33, i32 97, i32 34, i32 98, i32 35, i32 99, i32 36, i32 100, i32 37, i32 101, i32 38, i32 102, i32 39, i32 103, i32 48, i32 112, i32 49, i32 113, i32 50, i32 114, i32 51, i32 115, i32 52, i32 116, i32 53, i32 117, i32 54, i32 118, i32 55, i32 119>
1049 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1050 return _mm512_mask_unpacklo_epi8(__W, __U, __A, __B);
1051 }
1052
test_mm512_maskz_unpacklo_epi8(__mmask64 __U,__m512i __A,__m512i __B)1053 __m512i test_mm512_maskz_unpacklo_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
1054 // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi8
1055 // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 0, i32 64, i32 1, i32 65, i32 2, i32 66, i32 3, i32 67, i32 4, i32 68, i32 5, i32 69, i32 6, i32 70, i32 7, i32 71, i32 16, i32 80, i32 17, i32 81, i32 18, i32 82, i32 19, i32 83, i32 20, i32 84, i32 21, i32 85, i32 22, i32 86, i32 23, i32 87, i32 32, i32 96, i32 33, i32 97, i32 34, i32 98, i32 35, i32 99, i32 36, i32 100, i32 37, i32 101, i32 38, i32 102, i32 39, i32 103, i32 48, i32 112, i32 49, i32 113, i32 50, i32 114, i32 51, i32 115, i32 52, i32 116, i32 53, i32 117, i32 54, i32 118, i32 55, i32 119>
1056 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1057 return _mm512_maskz_unpacklo_epi8(__U, __A, __B);
1058 }
1059
test_mm512_unpacklo_epi16(__m512i __A,__m512i __B)1060 __m512i test_mm512_unpacklo_epi16(__m512i __A, __m512i __B) {
1061 // CHECK-LABEL: @test_mm512_unpacklo_epi16
1062 // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 8, i32 40, i32 9, i32 41, i32 10, i32 42, i32 11, i32 43, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 24, i32 56, i32 25, i32 57, i32 26, i32 58, i32 27, i32 59>
1063 return _mm512_unpacklo_epi16(__A, __B);
1064 }
1065
test_mm512_mask_unpacklo_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1066 __m512i test_mm512_mask_unpacklo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1067 // CHECK-LABEL: @test_mm512_mask_unpacklo_epi16
1068 // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 8, i32 40, i32 9, i32 41, i32 10, i32 42, i32 11, i32 43, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 24, i32 56, i32 25, i32 57, i32 26, i32 58, i32 27, i32 59>
1069 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1070 return _mm512_mask_unpacklo_epi16(__W, __U, __A, __B);
1071 }
1072
test_mm512_maskz_unpacklo_epi16(__mmask32 __U,__m512i __A,__m512i __B)1073 __m512i test_mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1074 // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi16
1075 // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 8, i32 40, i32 9, i32 41, i32 10, i32 42, i32 11, i32 43, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 24, i32 56, i32 25, i32 57, i32 26, i32 58, i32 27, i32 59>
1076 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1077 return _mm512_maskz_unpacklo_epi16(__U, __A, __B);
1078 }
1079
test_mm512_cvtepi8_epi16(__m256i __A)1080 __m512i test_mm512_cvtepi8_epi16(__m256i __A) {
1081 // CHECK-LABEL: @test_mm512_cvtepi8_epi16
1082 // CHECK: @llvm.x86.avx512.mask.pmovsxb.w.512
1083 return _mm512_cvtepi8_epi16(__A);
1084 }
1085
test_mm512_mask_cvtepi8_epi16(__m512i __W,__mmask32 __U,__m256i __A)1086 __m512i test_mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A) {
1087 // CHECK-LABEL: @test_mm512_mask_cvtepi8_epi16
1088 // CHECK: @llvm.x86.avx512.mask.pmovsxb.w.512
1089 return _mm512_mask_cvtepi8_epi16(__W, __U, __A);
1090 }
1091
test_mm512_maskz_cvtepi8_epi16(__mmask32 __U,__m256i __A)1092 __m512i test_mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A) {
1093 // CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi16
1094 // CHECK: @llvm.x86.avx512.mask.pmovsxb.w.512
1095 return _mm512_maskz_cvtepi8_epi16(__U, __A);
1096 }
1097
test_mm512_cvtepu8_epi16(__m256i __A)1098 __m512i test_mm512_cvtepu8_epi16(__m256i __A) {
1099 // CHECK-LABEL: @test_mm512_cvtepu8_epi16
1100 // CHECK: @llvm.x86.avx512.mask.pmovzxb.w.512
1101 return _mm512_cvtepu8_epi16(__A);
1102 }
1103
test_mm512_mask_cvtepu8_epi16(__m512i __W,__mmask32 __U,__m256i __A)1104 __m512i test_mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A) {
1105 // CHECK-LABEL: @test_mm512_mask_cvtepu8_epi16
1106 // CHECK: @llvm.x86.avx512.mask.pmovzxb.w.512
1107 return _mm512_mask_cvtepu8_epi16(__W, __U, __A);
1108 }
1109
test_mm512_maskz_cvtepu8_epi16(__mmask32 __U,__m256i __A)1110 __m512i test_mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A) {
1111 // CHECK-LABEL: @test_mm512_maskz_cvtepu8_epi16
1112 // CHECK: @llvm.x86.avx512.mask.pmovzxb.w.512
1113 return _mm512_maskz_cvtepu8_epi16(__U, __A);
1114 }
1115
test_mm512_shufflehi_epi16(__m512i __A)1116 __m512i test_mm512_shufflehi_epi16(__m512i __A) {
1117 // CHECK-LABEL: @test_mm512_shufflehi_epi16
1118 // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4, i32 8, i32 9, i32 10, i32 11, i32 13, i32 13, i32 12, i32 12, i32 16, i32 17, i32 18, i32 19, i32 21, i32 21, i32 20, i32 20, i32 24, i32 25, i32 26, i32 27, i32 29, i32 29, i32 28, i32 28>
1119 return _mm512_shufflehi_epi16(__A, 5);
1120 }
1121
test_mm512_mask_shufflehi_epi16(__m512i __W,__mmask32 __U,__m512i __A)1122 __m512i test_mm512_mask_shufflehi_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
1123 // CHECK-LABEL: @test_mm512_mask_shufflehi_epi16
1124 // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4, i32 8, i32 9, i32 10, i32 11, i32 13, i32 13, i32 12, i32 12, i32 16, i32 17, i32 18, i32 19, i32 21, i32 21, i32 20, i32 20, i32 24, i32 25, i32 26, i32 27, i32 29, i32 29, i32 28, i32 28>
1125 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1126 return _mm512_mask_shufflehi_epi16(__W, __U, __A, 5);
1127 }
1128
test_mm512_maskz_shufflehi_epi16(__mmask32 __U,__m512i __A)1129 __m512i test_mm512_maskz_shufflehi_epi16(__mmask32 __U, __m512i __A) {
1130 // CHECK-LABEL: @test_mm512_maskz_shufflehi_epi16
1131 // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4, i32 8, i32 9, i32 10, i32 11, i32 13, i32 13, i32 12, i32 12, i32 16, i32 17, i32 18, i32 19, i32 21, i32 21, i32 20, i32 20, i32 24, i32 25, i32 26, i32 27, i32 29, i32 29, i32 28, i32 28>
1132 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1133 return _mm512_maskz_shufflehi_epi16(__U, __A, 5);
1134 }
1135
test_mm512_shufflelo_epi16(__m512i __A)1136 __m512i test_mm512_shufflelo_epi16(__m512i __A) {
1137 // CHECK-LABEL: @test_mm512_shufflelo_epi16
1138 // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 1, i32 1, i32 0, i32 0, i32 4, i32 5, i32 6, i32 7, i32 9, i32 9, i32 8, i32 8, i32 12, i32 13, i32 14, i32 15, i32 17, i32 17, i32 16, i32 16, i32 20, i32 21, i32 22, i32 23, i32 25, i32 25, i32 24, i32 24, i32 28, i32 29, i32 30, i32 31>
1139 return _mm512_shufflelo_epi16(__A, 5);
1140 }
1141
test_mm512_mask_shufflelo_epi16(__m512i __W,__mmask32 __U,__m512i __A)1142 __m512i test_mm512_mask_shufflelo_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
1143 // CHECK-LABEL: @test_mm512_mask_shufflelo_epi16
1144 // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 1, i32 1, i32 0, i32 0, i32 4, i32 5, i32 6, i32 7, i32 9, i32 9, i32 8, i32 8, i32 12, i32 13, i32 14, i32 15, i32 17, i32 17, i32 16, i32 16, i32 20, i32 21, i32 22, i32 23, i32 25, i32 25, i32 24, i32 24, i32 28, i32 29, i32 30, i32 31>
1145 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1146 return _mm512_mask_shufflelo_epi16(__W, __U, __A, 5);
1147 }
1148
test_mm512_maskz_shufflelo_epi16(__mmask32 __U,__m512i __A)1149 __m512i test_mm512_maskz_shufflelo_epi16(__mmask32 __U, __m512i __A) {
1150 // CHECK-LABEL: @test_mm512_maskz_shufflelo_epi16
1151 // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 1, i32 1, i32 0, i32 0, i32 4, i32 5, i32 6, i32 7, i32 9, i32 9, i32 8, i32 8, i32 12, i32 13, i32 14, i32 15, i32 17, i32 17, i32 16, i32 16, i32 20, i32 21, i32 22, i32 23, i32 25, i32 25, i32 24, i32 24, i32 28, i32 29, i32 30, i32 31>
1152 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1153 return _mm512_maskz_shufflelo_epi16(__U, __A, 5);
1154 }
1155
test_mm512_sllv_epi16(__m512i __A,__m512i __B)1156 __m512i test_mm512_sllv_epi16(__m512i __A, __m512i __B) {
1157 // CHECK-LABEL: @test_mm512_sllv_epi16
1158 // CHECK: @llvm.x86.avx512.mask.psllv
1159 return _mm512_sllv_epi16(__A, __B);
1160 }
1161
test_mm512_mask_sllv_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1162 __m512i test_mm512_mask_sllv_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1163 // CHECK-LABEL: @test_mm512_mask_sllv_epi16
1164 // CHECK: @llvm.x86.avx512.mask.psllv
1165 return _mm512_mask_sllv_epi16(__W, __U, __A, __B);
1166 }
1167
test_mm512_maskz_sllv_epi16(__mmask32 __U,__m512i __A,__m512i __B)1168 __m512i test_mm512_maskz_sllv_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1169 // CHECK-LABEL: @test_mm512_maskz_sllv_epi16
1170 // CHECK: @llvm.x86.avx512.mask.psllv
1171 return _mm512_maskz_sllv_epi16(__U, __A, __B);
1172 }
1173
test_mm512_sll_epi16(__m512i __A,__m128i __B)1174 __m512i test_mm512_sll_epi16(__m512i __A, __m128i __B) {
1175 // CHECK-LABEL: @test_mm512_sll_epi16
1176 // CHECK: @llvm.x86.avx512.mask.psll.w.512
1177 return _mm512_sll_epi16(__A, __B);
1178 }
1179
test_mm512_mask_sll_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m128i __B)1180 __m512i test_mm512_mask_sll_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) {
1181 // CHECK-LABEL: @test_mm512_mask_sll_epi16
1182 // CHECK: @llvm.x86.avx512.mask.psll.w.512
1183 return _mm512_mask_sll_epi16(__W, __U, __A, __B);
1184 }
1185
test_mm512_maskz_sll_epi16(__mmask32 __U,__m512i __A,__m128i __B)1186 __m512i test_mm512_maskz_sll_epi16(__mmask32 __U, __m512i __A, __m128i __B) {
1187 // CHECK-LABEL: @test_mm512_maskz_sll_epi16
1188 // CHECK: @llvm.x86.avx512.mask.psll.w.512
1189 return _mm512_maskz_sll_epi16(__U, __A, __B);
1190 }
1191
test_mm512_slli_epi16(__m512i __A)1192 __m512i test_mm512_slli_epi16(__m512i __A) {
1193 // CHECK-LABEL: @test_mm512_slli_epi16
1194 // CHECK: @llvm.x86.avx512.mask.psll.wi.512
1195 return _mm512_slli_epi16(__A, 5);
1196 }
1197
test_mm512_mask_slli_epi16(__m512i __W,__mmask32 __U,__m512i __A)1198 __m512i test_mm512_mask_slli_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
1199 // CHECK-LABEL: @test_mm512_mask_slli_epi16
1200 // CHECK: @llvm.x86.avx512.mask.psll.wi.512
1201 return _mm512_mask_slli_epi16(__W, __U, __A, 5);
1202 }
1203
test_mm512_maskz_slli_epi16(__mmask32 __U,__m512i __A)1204 __m512i test_mm512_maskz_slli_epi16(__mmask32 __U, __m512i __A) {
1205 // CHECK-LABEL: @test_mm512_maskz_slli_epi16
1206 // CHECK: @llvm.x86.avx512.mask.psll.wi.512
1207 return _mm512_maskz_slli_epi16(__U, __A, 5);
1208 }
1209
test_mm512_bslli_epi128(__m512i __A)1210 __m512i test_mm512_bslli_epi128(__m512i __A) {
1211 // CHECK-LABEL: @test_mm512_bslli_epi128
1212 // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 11, i32 12, i32 13, i32 14, i32 15, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 27, i32 28, i32 29, i32 30, i32 31, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 43, i32 44, i32 45, i32 46, i32 47, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 59, i32 60, i32 61, i32 62, i32 63, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122>
1213 return _mm512_bslli_epi128(__A, 5);
1214 }
1215
test_mm512_srlv_epi16(__m512i __A,__m512i __B)1216 __m512i test_mm512_srlv_epi16(__m512i __A, __m512i __B) {
1217 // CHECK-LABEL: @test_mm512_srlv_epi16
1218 // CHECK: @llvm.x86.avx512.mask.psrlv
1219 return _mm512_srlv_epi16(__A, __B);
1220 }
1221
test_mm512_mask_srlv_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1222 __m512i test_mm512_mask_srlv_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1223 // CHECK-LABEL: @test_mm512_mask_srlv_epi16
1224 // CHECK: @llvm.x86.avx512.mask.psrlv
1225 return _mm512_mask_srlv_epi16(__W, __U, __A, __B);
1226 }
1227
test_mm512_maskz_srlv_epi16(__mmask32 __U,__m512i __A,__m512i __B)1228 __m512i test_mm512_maskz_srlv_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1229 // CHECK-LABEL: @test_mm512_maskz_srlv_epi16
1230 // CHECK: @llvm.x86.avx512.mask.psrlv
1231 return _mm512_maskz_srlv_epi16(__U, __A, __B);
1232 }
1233
test_mm512_srav_epi16(__m512i __A,__m512i __B)1234 __m512i test_mm512_srav_epi16(__m512i __A, __m512i __B) {
1235 // CHECK-LABEL: @test_mm512_srav_epi16
1236 // CHECK: @llvm.x86.avx512.mask.psrav
1237 return _mm512_srav_epi16(__A, __B);
1238 }
1239
test_mm512_mask_srav_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1240 __m512i test_mm512_mask_srav_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1241 // CHECK-LABEL: @test_mm512_mask_srav_epi16
1242 // CHECK: @llvm.x86.avx512.mask.psrav
1243 return _mm512_mask_srav_epi16(__W, __U, __A, __B);
1244 }
1245
test_mm512_maskz_srav_epi16(__mmask32 __U,__m512i __A,__m512i __B)1246 __m512i test_mm512_maskz_srav_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1247 // CHECK-LABEL: @test_mm512_maskz_srav_epi16
1248 // CHECK: @llvm.x86.avx512.mask.psrav
1249 return _mm512_maskz_srav_epi16(__U, __A, __B);
1250 }
1251
test_mm512_sra_epi16(__m512i __A,__m128i __B)1252 __m512i test_mm512_sra_epi16(__m512i __A, __m128i __B) {
1253 // CHECK-LABEL: @test_mm512_sra_epi16
1254 // CHECK: @llvm.x86.avx512.mask.psra.w.512
1255 return _mm512_sra_epi16(__A, __B);
1256 }
1257
test_mm512_mask_sra_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m128i __B)1258 __m512i test_mm512_mask_sra_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) {
1259 // CHECK-LABEL: @test_mm512_mask_sra_epi16
1260 // CHECK: @llvm.x86.avx512.mask.psra.w.512
1261 return _mm512_mask_sra_epi16(__W, __U, __A, __B);
1262 }
1263
test_mm512_maskz_sra_epi16(__mmask32 __U,__m512i __A,__m128i __B)1264 __m512i test_mm512_maskz_sra_epi16(__mmask32 __U, __m512i __A, __m128i __B) {
1265 // CHECK-LABEL: @test_mm512_maskz_sra_epi16
1266 // CHECK: @llvm.x86.avx512.mask.psra.w.512
1267 return _mm512_maskz_sra_epi16(__U, __A, __B);
1268 }
1269
test_mm512_srai_epi16(__m512i __A)1270 __m512i test_mm512_srai_epi16(__m512i __A) {
1271 // CHECK-LABEL: @test_mm512_srai_epi16
1272 // CHECK: @llvm.x86.avx512.mask.psra.wi.512
1273 return _mm512_srai_epi16(__A, 5);
1274 }
1275
test_mm512_mask_srai_epi16(__m512i __W,__mmask32 __U,__m512i __A)1276 __m512i test_mm512_mask_srai_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
1277 // CHECK-LABEL: @test_mm512_mask_srai_epi16
1278 // CHECK: @llvm.x86.avx512.mask.psra.wi.512
1279 return _mm512_mask_srai_epi16(__W, __U, __A, 5);
1280 }
1281
test_mm512_maskz_srai_epi16(__mmask32 __U,__m512i __A)1282 __m512i test_mm512_maskz_srai_epi16(__mmask32 __U, __m512i __A) {
1283 // CHECK-LABEL: @test_mm512_maskz_srai_epi16
1284 // CHECK: @llvm.x86.avx512.mask.psra.wi.512
1285 return _mm512_maskz_srai_epi16(__U, __A, 5);
1286 }
1287
test_mm512_srl_epi16(__m512i __A,__m128i __B)1288 __m512i test_mm512_srl_epi16(__m512i __A, __m128i __B) {
1289 // CHECK-LABEL: @test_mm512_srl_epi16
1290 // CHECK: @llvm.x86.avx512.mask.psrl.w.512
1291 return _mm512_srl_epi16(__A, __B);
1292 }
1293
test_mm512_mask_srl_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m128i __B)1294 __m512i test_mm512_mask_srl_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) {
1295 // CHECK-LABEL: @test_mm512_mask_srl_epi16
1296 // CHECK: @llvm.x86.avx512.mask.psrl.w.512
1297 return _mm512_mask_srl_epi16(__W, __U, __A, __B);
1298 }
1299
test_mm512_maskz_srl_epi16(__mmask32 __U,__m512i __A,__m128i __B)1300 __m512i test_mm512_maskz_srl_epi16(__mmask32 __U, __m512i __A, __m128i __B) {
1301 // CHECK-LABEL: @test_mm512_maskz_srl_epi16
1302 // CHECK: @llvm.x86.avx512.mask.psrl.w.512
1303 return _mm512_maskz_srl_epi16(__U, __A, __B);
1304 }
1305
test_mm512_srli_epi16(__m512i __A)1306 __m512i test_mm512_srli_epi16(__m512i __A) {
1307 // CHECK-LABEL: @test_mm512_srli_epi16
1308 // CHECK: @llvm.x86.avx512.mask.psrl.wi.512
1309 return _mm512_srli_epi16(__A, 5);
1310 }
1311
test_mm512_mask_srli_epi16(__m512i __W,__mmask32 __U,__m512i __A)1312 __m512i test_mm512_mask_srli_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
1313 // CHECK-LABEL: @test_mm512_mask_srli_epi16
1314 // CHECK: @llvm.x86.avx512.mask.psrl.wi.512
1315 return _mm512_mask_srli_epi16(__W, __U, __A, 5);
1316 }
1317
test_mm512_maskz_srli_epi16(__mmask32 __U,__m512i __A)1318 __m512i test_mm512_maskz_srli_epi16(__mmask32 __U, __m512i __A) {
1319 // CHECK-LABEL: @test_mm512_maskz_srli_epi16
1320 // CHECK: @llvm.x86.avx512.mask.psrl.wi.512
1321 return _mm512_maskz_srli_epi16(__U, __A, 5);
1322 }
1323
test_mm512_bsrli_epi128(__m512i __A)1324 __m512i test_mm512_bsrli_epi128(__m512i __A) {
1325 // CHECK-LABEL: @test_mm512_bsrli_epi128
1326 // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 64, i32 65, i32 66, i32 67, i32 68, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 80, i32 81, i32 82, i32 83, i32 84, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 96, i32 97, i32 98, i32 99, i32 100, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 112, i32 113, i32 114, i32 115, i32 116>
1327 return _mm512_bsrli_epi128(__A, 5);
1328 }
test_mm512_mask_mov_epi16(__m512i __W,__mmask32 __U,__m512i __A)1329 __m512i test_mm512_mask_mov_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
1330 // CHECK-LABEL: @test_mm512_mask_mov_epi16
1331 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1332 return _mm512_mask_mov_epi16(__W, __U, __A);
1333 }
1334
test_mm512_maskz_mov_epi16(__mmask32 __U,__m512i __A)1335 __m512i test_mm512_maskz_mov_epi16(__mmask32 __U, __m512i __A) {
1336 // CHECK-LABEL: @test_mm512_maskz_mov_epi16
1337 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1338 return _mm512_maskz_mov_epi16(__U, __A);
1339 }
1340
test_mm512_mask_mov_epi8(__m512i __W,__mmask64 __U,__m512i __A)1341 __m512i test_mm512_mask_mov_epi8(__m512i __W, __mmask64 __U, __m512i __A) {
1342 // CHECK-LABEL: @test_mm512_mask_mov_epi8
1343 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1344 return _mm512_mask_mov_epi8(__W, __U, __A);
1345 }
1346
test_mm512_maskz_mov_epi8(__mmask64 __U,__m512i __A)1347 __m512i test_mm512_maskz_mov_epi8(__mmask64 __U, __m512i __A) {
1348 // CHECK-LABEL: @test_mm512_maskz_mov_epi8
1349 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1350 return _mm512_maskz_mov_epi8(__U, __A);
1351 }
1352
test_mm512_mask_set1_epi8(__m512i __O,__mmask64 __M,char __A)1353 __m512i test_mm512_mask_set1_epi8(__m512i __O, __mmask64 __M, char __A) {
1354 // CHECK-LABEL: @test_mm512_mask_set1_epi8
1355 // CHECK: @llvm.x86.avx512.mask.pbroadcast.b.gpr.512
1356 return _mm512_mask_set1_epi8(__O, __M, __A);
1357 }
1358
test_mm512_maskz_set1_epi8(__mmask64 __M,char __A)1359 __m512i test_mm512_maskz_set1_epi8(__mmask64 __M, char __A) {
1360 // CHECK-LABEL: @test_mm512_maskz_set1_epi8
1361 // CHECK: @llvm.x86.avx512.mask.pbroadcast.b.gpr.512
1362 return _mm512_maskz_set1_epi8(__M, __A);
1363 }
1364
test_mm512_kunpackd(__mmask64 __A,__mmask64 __B)1365 __mmask64 test_mm512_kunpackd(__mmask64 __A, __mmask64 __B) {
1366 // CHECK-LABEL: @test_mm512_kunpackd
1367 // CHECK: @llvm.x86.avx512.kunpck.dq
1368 return _mm512_kunpackd(__A, __B);
1369 }
1370
test_mm512_kunpackw(__mmask32 __A,__mmask32 __B)1371 __mmask32 test_mm512_kunpackw(__mmask32 __A, __mmask32 __B) {
1372 // CHECK-LABEL: @test_mm512_kunpackw
1373 // CHECK: @llvm.x86.avx512.kunpck.wd
1374 return _mm512_kunpackw(__A, __B);
1375 }
1376
test_mm512_mask_loadu_epi16(__m512i __W,__mmask32 __U,void const * __P)1377 __m512i test_mm512_mask_loadu_epi16(__m512i __W, __mmask32 __U, void const *__P) {
1378 // CHECK-LABEL: @test_mm512_mask_loadu_epi16
1379 // CHECK: @llvm.masked.load.v32i16.p0v32i16(<32 x i16>* %{{.*}}, i32 1, <32 x i1> %{{.*}}, <32 x i16> %{{.*}})
1380 return _mm512_mask_loadu_epi16(__W, __U, __P);
1381 }
1382
test_mm512_maskz_loadu_epi16(__mmask32 __U,void const * __P)1383 __m512i test_mm512_maskz_loadu_epi16(__mmask32 __U, void const *__P) {
1384 // CHECK-LABEL: @test_mm512_maskz_loadu_epi16
1385 // CHECK: @llvm.masked.load.v32i16.p0v32i16(<32 x i16>* %{{.*}}, i32 1, <32 x i1> %{{.*}}, <32 x i16> %{{.*}})
1386 return _mm512_maskz_loadu_epi16(__U, __P);
1387 }
1388
test_mm512_mask_loadu_epi8(__m512i __W,__mmask64 __U,void const * __P)1389 __m512i test_mm512_mask_loadu_epi8(__m512i __W, __mmask64 __U, void const *__P) {
1390 // CHECK-LABEL: @test_mm512_mask_loadu_epi8
1391 // CHECK: @llvm.masked.load.v64i8.p0v64i8(<64 x i8>* %{{.*}}, i32 1, <64 x i1> %{{.*}}, <64 x i8> %{{.*}})
1392 return _mm512_mask_loadu_epi8(__W, __U, __P);
1393 }
1394
test_mm512_maskz_loadu_epi8(__mmask64 __U,void const * __P)1395 __m512i test_mm512_maskz_loadu_epi8(__mmask64 __U, void const *__P) {
1396 // CHECK-LABEL: @test_mm512_maskz_loadu_epi8
1397 // CHECK: @llvm.masked.load.v64i8.p0v64i8(<64 x i8>* %{{.*}}, i32 1, <64 x i1> %{{.*}}, <64 x i8> %{{.*}})
1398 return _mm512_maskz_loadu_epi8(__U, __P);
1399 }
test_mm512_mask_storeu_epi16(void * __P,__mmask32 __U,__m512i __A)1400 void test_mm512_mask_storeu_epi16(void *__P, __mmask32 __U, __m512i __A) {
1401 // CHECK-LABEL: @test_mm512_mask_storeu_epi16
1402 // CHECK: @llvm.masked.store.v32i16.p0v32i16(<32 x i16> %{{.*}}, <32 x i16>* %{{.*}}, i32 1, <32 x i1> %{{.*}})
1403 return _mm512_mask_storeu_epi16(__P, __U, __A);
1404 }
test_mm512_test_epi8_mask(__m512i __A,__m512i __B)1405 __mmask64 test_mm512_test_epi8_mask(__m512i __A, __m512i __B) {
1406 // CHECK-LABEL: @test_mm512_test_epi8_mask
1407 // CHECK: @llvm.x86.avx512.ptestm.b.512
1408 return _mm512_test_epi8_mask(__A, __B);
1409 }
1410
test_mm512_mask_storeu_epi8(void * __P,__mmask64 __U,__m512i __A)1411 void test_mm512_mask_storeu_epi8(void *__P, __mmask64 __U, __m512i __A) {
1412 // CHECK-LABEL: @test_mm512_mask_storeu_epi8
1413 // CHECK: @llvm.masked.store.v64i8.p0v64i8(<64 x i8> %{{.*}}, <64 x i8>* %{{.*}}, i32 1, <64 x i1> %{{.*}})
1414 return _mm512_mask_storeu_epi8(__P, __U, __A);
1415 }
test_mm512_mask_test_epi8_mask(__mmask64 __U,__m512i __A,__m512i __B)1416 __mmask64 test_mm512_mask_test_epi8_mask(__mmask64 __U, __m512i __A, __m512i __B) {
1417 // CHECK-LABEL: @test_mm512_mask_test_epi8_mask
1418 // CHECK: @llvm.x86.avx512.ptestm.b.512
1419 return _mm512_mask_test_epi8_mask(__U, __A, __B);
1420 }
1421
test_mm512_test_epi16_mask(__m512i __A,__m512i __B)1422 __mmask32 test_mm512_test_epi16_mask(__m512i __A, __m512i __B) {
1423 // CHECK-LABEL: @test_mm512_test_epi16_mask
1424 // CHECK: @llvm.x86.avx512.ptestm.w.
1425 return _mm512_test_epi16_mask(__A, __B);
1426 }
1427
test_mm512_mask_test_epi16_mask(__mmask32 __U,__m512i __A,__m512i __B)1428 __mmask32 test_mm512_mask_test_epi16_mask(__mmask32 __U, __m512i __A, __m512i __B) {
1429 // CHECK-LABEL: @test_mm512_mask_test_epi16_mask
1430 // CHECK: @llvm.x86.avx512.ptestm.w.
1431 return _mm512_mask_test_epi16_mask(__U, __A, __B);
1432 }
1433
test_mm512_testn_epi8_mask(__m512i __A,__m512i __B)1434 __mmask64 test_mm512_testn_epi8_mask(__m512i __A, __m512i __B) {
1435 // CHECK-LABEL: @test_mm512_testn_epi8_mask
1436 // CHECK: @llvm.x86.avx512.ptestnm.b.
1437 return _mm512_testn_epi8_mask(__A, __B);
1438 }
1439
test_mm512_mask_testn_epi8_mask(__mmask64 __U,__m512i __A,__m512i __B)1440 __mmask64 test_mm512_mask_testn_epi8_mask(__mmask64 __U, __m512i __A, __m512i __B) {
1441 // CHECK-LABEL: @test_mm512_mask_testn_epi8_mask
1442 // CHECK: @llvm.x86.avx512.ptestnm.b.
1443 return _mm512_mask_testn_epi8_mask(__U, __A, __B);
1444 }
1445
test_mm512_testn_epi16_mask(__m512i __A,__m512i __B)1446 __mmask32 test_mm512_testn_epi16_mask(__m512i __A, __m512i __B) {
1447 // CHECK-LABEL: @test_mm512_testn_epi16_mask
1448 // CHECK: @llvm.x86.avx512.ptestnm.w.
1449 return _mm512_testn_epi16_mask(__A, __B);
1450 }
1451
test_mm512_mask_testn_epi16_mask(__mmask32 __U,__m512i __A,__m512i __B)1452 __mmask32 test_mm512_mask_testn_epi16_mask(__mmask32 __U, __m512i __A, __m512i __B) {
1453 // CHECK-LABEL: @test_mm512_mask_testn_epi16_mask
1454 // CHECK: @llvm.x86.avx512.ptestnm.w.
1455 return _mm512_mask_testn_epi16_mask(__U, __A, __B);
1456 }
1457
test_mm512_movepi8_mask(__m512i __A)1458 __mmask64 test_mm512_movepi8_mask(__m512i __A) {
1459 // CHECK-LABEL: @test_mm512_movepi8_mask
1460 // CHECK: @llvm.x86.avx512.cvtb2mask.512
1461 return _mm512_movepi8_mask(__A);
1462 }
1463
test_mm512_movm_epi8(__mmask64 __A)1464 __m512i test_mm512_movm_epi8(__mmask64 __A) {
1465 // CHECK-LABEL: @test_mm512_movm_epi8
1466 // CHECK: @llvm.x86.avx512.cvtmask2b.512
1467 return _mm512_movm_epi8(__A);
1468 }
1469
test_mm512_movm_epi16(__mmask32 __A)1470 __m512i test_mm512_movm_epi16(__mmask32 __A) {
1471 // CHECK-LABEL: @test_mm512_movm_epi16
1472 // CHECK: @llvm.x86.avx512.cvtmask2w.512
1473 return _mm512_movm_epi16(__A);
1474 }
1475
test_mm512_broadcastb_epi8(__m128i __A)1476 __m512i test_mm512_broadcastb_epi8(__m128i __A) {
1477 // CHECK-LABEL: @test_mm512_broadcastb_epi8
1478 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> undef, <64 x i32> zeroinitializer
1479 return _mm512_broadcastb_epi8(__A);
1480 }
1481
test_mm512_mask_broadcastb_epi8(__m512i __O,__mmask64 __M,__m128i __A)1482 __m512i test_mm512_mask_broadcastb_epi8(__m512i __O, __mmask64 __M, __m128i __A) {
1483 // CHECK-LABEL: @test_mm512_mask_broadcastb_epi8
1484 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> undef, <64 x i32> zeroinitializer
1485 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1486 return _mm512_mask_broadcastb_epi8(__O, __M, __A);
1487 }
1488
test_mm512_maskz_broadcastb_epi8(__mmask64 __M,__m128i __A)1489 __m512i test_mm512_maskz_broadcastb_epi8(__mmask64 __M, __m128i __A) {
1490 // CHECK-LABEL: @test_mm512_maskz_broadcastb_epi8
1491 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> undef, <64 x i32> zeroinitializer
1492 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1493 return _mm512_maskz_broadcastb_epi8(__M, __A);
1494 }
1495
test_mm512_broadcastw_epi16(__m128i __A)1496 __m512i test_mm512_broadcastw_epi16(__m128i __A) {
1497 // CHECK-LABEL: @test_mm512_broadcastw_epi16
1498 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <32 x i32> zeroinitializer
1499 return _mm512_broadcastw_epi16(__A);
1500 }
1501
test_mm512_mask_broadcastw_epi16(__m512i __O,__mmask32 __M,__m128i __A)1502 __m512i test_mm512_mask_broadcastw_epi16(__m512i __O, __mmask32 __M, __m128i __A) {
1503 // CHECK-LABEL: @test_mm512_mask_broadcastw_epi16
1504 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <32 x i32> zeroinitializer
1505 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1506 return _mm512_mask_broadcastw_epi16(__O, __M, __A);
1507 }
1508
test_mm512_maskz_broadcastw_epi16(__mmask32 __M,__m128i __A)1509 __m512i test_mm512_maskz_broadcastw_epi16(__mmask32 __M, __m128i __A) {
1510 // CHECK-LABEL: @test_mm512_maskz_broadcastw_epi16
1511 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <32 x i32> zeroinitializer
1512 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1513 return _mm512_maskz_broadcastw_epi16(__M, __A);
1514 }
1515
test_mm512_mask_set1_epi16(__m512i __O,__mmask32 __M,short __A)1516 __m512i test_mm512_mask_set1_epi16(__m512i __O, __mmask32 __M, short __A) {
1517 // CHECK-LABEL: @test_mm512_mask_set1_epi16
1518 // CHECK: @llvm.x86.avx512.mask.pbroadcast.w.gpr.512
1519 return _mm512_mask_set1_epi16(__O, __M, __A);
1520 }
1521
test_mm512_maskz_set1_epi16(__mmask32 __M,short __A)1522 __m512i test_mm512_maskz_set1_epi16(__mmask32 __M, short __A) {
1523 // CHECK-LABEL: @test_mm512_maskz_set1_epi16
1524 // CHECK: @llvm.x86.avx512.mask.pbroadcast.w.gpr.512
1525 return _mm512_maskz_set1_epi16(__M, __A);
1526 }
test_mm512_permutexvar_epi16(__m512i __A,__m512i __B)1527 __m512i test_mm512_permutexvar_epi16(__m512i __A, __m512i __B) {
1528 // CHECK-LABEL: @test_mm512_permutexvar_epi16
1529 // CHECK: @llvm.x86.avx512.mask.permvar.hi.512
1530 return _mm512_permutexvar_epi16(__A, __B);
1531 }
1532
test_mm512_maskz_permutexvar_epi16(__mmask32 __M,__m512i __A,__m512i __B)1533 __m512i test_mm512_maskz_permutexvar_epi16(__mmask32 __M, __m512i __A, __m512i __B) {
1534 // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi16
1535 // CHECK: @llvm.x86.avx512.mask.permvar.hi.512
1536 return _mm512_maskz_permutexvar_epi16(__M, __A, __B);
1537 }
1538
test_mm512_mask_permutexvar_epi16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)1539 __m512i test_mm512_mask_permutexvar_epi16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
1540 // CHECK-LABEL: @test_mm512_mask_permutexvar_epi16
1541 // CHECK: @llvm.x86.avx512.mask.permvar.hi.512
1542 return _mm512_mask_permutexvar_epi16(__W, __M, __A, __B);
1543 }
test_mm512_alignr_epi8(__m512i __A,__m512i __B)1544 __m512i test_mm512_alignr_epi8(__m512i __A,__m512i __B){
1545 // CHECK-LABEL: @test_mm512_alignr_epi8
1546 // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 64, i32 65, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 80, i32 81, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 96, i32 97, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 112, i32 113>
1547 return _mm512_alignr_epi8(__A, __B, 2);
1548 }
1549
test_mm512_mask_alignr_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)1550 __m512i test_mm512_mask_alignr_epi8(__m512i __W, __mmask64 __U, __m512i __A,__m512i __B){
1551 // CHECK-LABEL: @test_mm512_mask_alignr_epi8
1552 // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 64, i32 65, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 80, i32 81, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 96, i32 97, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 112, i32 113>
1553 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1554 return _mm512_mask_alignr_epi8(__W, __U, __A, __B, 2);
1555 }
1556
test_mm512_maskz_alignr_epi8(__mmask64 __U,__m512i __A,__m512i __B)1557 __m512i test_mm512_maskz_alignr_epi8(__mmask64 __U, __m512i __A,__m512i __B){
1558 // CHECK-LABEL: @test_mm512_maskz_alignr_epi8
1559 // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 64, i32 65, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 80, i32 81, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 96, i32 97, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 112, i32 113>
1560 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1561 return _mm512_maskz_alignr_epi8(__U, __A, __B, 2);
1562 }
1563
1564
1565
test_mm512_mm_dbsad_epu8(__m512i __A,__m512i __B)1566 __m512i test_mm512_mm_dbsad_epu8(__m512i __A, __m512i __B) {
1567 // CHECK-LABEL: @test_mm512_mm_dbsad_epu8
1568 // CHECK: @llvm.x86.avx512.mask.dbpsadbw.512
1569 return _mm512_dbsad_epu8(__A, __B, 170);
1570 }
1571
test_mm512_mm_mask_dbsad_epu8(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1572 __m512i test_mm512_mm_mask_dbsad_epu8(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1573 // CHECK-LABEL: @test_mm512_mm_mask_dbsad_epu8
1574 // CHECK: @llvm.x86.avx512.mask.dbpsadbw.512
1575 return _mm512_mask_dbsad_epu8(__W, __U, __A, __B, 170);
1576 }
1577
test_mm512_mm_maskz_dbsad_epu8(__mmask32 __U,__m512i __A,__m512i __B)1578 __m512i test_mm512_mm_maskz_dbsad_epu8(__mmask32 __U, __m512i __A, __m512i __B) {
1579 // CHECK-LABEL: @test_mm512_mm_maskz_dbsad_epu8
1580 // CHECK: @llvm.x86.avx512.mask.dbpsadbw.512
1581 return _mm512_maskz_dbsad_epu8(__U, __A, __B, 170);
1582 }
1583
test_mm512_sad_epu8(__m512i __A,__m512i __B)1584 __m512i test_mm512_sad_epu8(__m512i __A, __m512i __B) {
1585 // CHECK-LABEL: @test_mm512_sad_epu8
1586 // CHECK: @llvm.x86.avx512.psad.bw.512
1587 return _mm512_sad_epu8(__A, __B);
1588 }
1589
test_mm512_movepi16_mask(__m512i __A)1590 __mmask32 test_mm512_movepi16_mask(__m512i __A) {
1591 // CHECK-LABEL: @test_mm512_movepi16_mask
1592 // CHECK: @llvm.x86.avx512.cvtw2mask.512
1593 return _mm512_movepi16_mask(__A);
1594 }
1595
test_mm512_mask_cvtepi16_storeu_epi8(void * __P,__mmask32 __M,__m512i __A)1596 void test_mm512_mask_cvtepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1597 {
1598 // CHECK-LABEL: @test_mm512_mask_cvtepi16_storeu_epi8
1599 // CHECK: @llvm.x86.avx512.mask.pmov.wb.mem.512
1600 __builtin_ia32_pmovwb512mem_mask ( __P, __A, __M);
1601 }
1602
test_mm512_mask_cvtsepi16_storeu_epi8(void * __P,__mmask32 __M,__m512i __A)1603 void test_mm512_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1604 {
1605 // CHECK-LABEL: @test_mm512_mask_cvtsepi16_storeu_epi8
1606 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.mem.512
1607 __builtin_ia32_pmovswb512mem_mask ( __P, __A, __M);
1608 }
1609
test_mm512_mask_cvtusepi16_storeu_epi8(void * __P,__mmask32 __M,__m512i __A)1610 void test_mm512_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1611 {
1612 // CHECK-LABEL: @test_mm512_mask_cvtusepi16_storeu_epi8
1613 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.mem.512
1614 __builtin_ia32_pmovuswb512mem_mask ( __P, __A, __M);
1615 }
1616