1 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512bw -target-feature +avx512vl -emit-llvm -o - -Wall -Werror -Wsign-conversion | FileCheck %s
2 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512bw -target-feature +avx512vl -fno-signed-char -emit-llvm -o - -Wall -Werror -Wsign-conversion | FileCheck %s
6 __mmask32
test_mm256_cmpeq_epi8_mask(__m256i __a
, __m256i __b
) {
7 // CHECK-LABEL: @test_mm256_cmpeq_epi8_mask
8 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
9 return (__mmask32
)_mm256_cmpeq_epi8_mask(__a
, __b
);
12 __mmask32
test_mm256_mask_cmpeq_epi8_mask(__mmask32 __u
, __m256i __a
, __m256i __b
) {
13 // CHECK-LABEL: @test_mm256_mask_cmpeq_epi8_mask
14 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
15 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
16 return (__mmask32
)_mm256_mask_cmpeq_epi8_mask(__u
, __a
, __b
);
19 __mmask16
test_mm_cmpeq_epi8_mask(__m128i __a
, __m128i __b
) {
20 // CHECK-LABEL: @test_mm_cmpeq_epi8_mask
21 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
22 return (__mmask16
)_mm_cmpeq_epi8_mask(__a
, __b
);
25 __mmask16
test_mm_mask_cmpeq_epi8_mask(__mmask16 __u
, __m128i __a
, __m128i __b
) {
26 // CHECK-LABEL: @test_mm_mask_cmpeq_epi8_mask
27 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
28 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
29 return (__mmask16
)_mm_mask_cmpeq_epi8_mask(__u
, __a
, __b
);
32 __mmask16
test_mm256_cmpeq_epi16_mask(__m256i __a
, __m256i __b
) {
33 // CHECK-LABEL: @test_mm256_cmpeq_epi16_mask
34 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
35 return (__mmask16
)_mm256_cmpeq_epi16_mask(__a
, __b
);
38 __mmask16
test_mm256_mask_cmpeq_epi16_mask(__mmask16 __u
, __m256i __a
, __m256i __b
) {
39 // CHECK-LABEL: @test_mm256_mask_cmpeq_epi16_mask
40 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
41 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
42 return (__mmask16
)_mm256_mask_cmpeq_epi16_mask(__u
, __a
, __b
);
45 __mmask8
test_mm_cmpeq_epi16_mask(__m128i __a
, __m128i __b
) {
46 // CHECK-LABEL: @test_mm_cmpeq_epi16_mask
47 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
48 return (__mmask8
)_mm_cmpeq_epi16_mask(__a
, __b
);
51 __mmask8
test_mm_mask_cmpeq_epi16_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
52 // CHECK-LABEL: @test_mm_mask_cmpeq_epi16_mask
53 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
54 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
55 return (__mmask8
)_mm_mask_cmpeq_epi16_mask(__u
, __a
, __b
);
58 __mmask32
test_mm256_cmpgt_epi8_mask(__m256i __a
, __m256i __b
) {
59 // CHECK-LABEL: @test_mm256_cmpgt_epi8_mask
60 // CHECK: icmp sgt <32 x i8> %{{.*}}, %{{.*}}
61 return (__mmask32
)_mm256_cmpgt_epi8_mask(__a
, __b
);
64 __mmask32
test_mm256_mask_cmpgt_epi8_mask(__mmask32 __u
, __m256i __a
, __m256i __b
) {
65 // CHECK-LABEL: @test_mm256_mask_cmpgt_epi8_mask
66 // CHECK: icmp sgt <32 x i8> %{{.*}}, %{{.*}}
67 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
68 return (__mmask32
)_mm256_mask_cmpgt_epi8_mask(__u
, __a
, __b
);
71 __mmask16
test_mm_cmpgt_epi8_mask(__m128i __a
, __m128i __b
) {
72 // CHECK-LABEL: @test_mm_cmpgt_epi8_mask
73 // CHECK: icmp sgt <16 x i8> %{{.*}}, %{{.*}}
74 return (__mmask16
)_mm_cmpgt_epi8_mask(__a
, __b
);
77 __mmask16
test_mm_mask_cmpgt_epi8_mask(__mmask16 __u
, __m128i __a
, __m128i __b
) {
78 // CHECK-LABEL: @test_mm_mask_cmpgt_epi8_mask
79 // CHECK: icmp sgt <16 x i8> %{{.*}}, %{{.*}}
80 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
81 return (__mmask16
)_mm_mask_cmpgt_epi8_mask(__u
, __a
, __b
);
84 __mmask16
test_mm256_cmpgt_epi16_mask(__m256i __a
, __m256i __b
) {
85 // CHECK-LABEL: @test_mm256_cmpgt_epi16_mask
86 // CHECK: icmp sgt <16 x i16> %{{.*}}, %{{.*}}
87 return (__mmask16
)_mm256_cmpgt_epi16_mask(__a
, __b
);
90 __mmask16
test_mm256_mask_cmpgt_epi16_mask(__mmask16 __u
, __m256i __a
, __m256i __b
) {
91 // CHECK-LABEL: @test_mm256_mask_cmpgt_epi16_mask
92 // CHECK: icmp sgt <16 x i16> %{{.*}}, %{{.*}}
93 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
94 return (__mmask16
)_mm256_mask_cmpgt_epi16_mask(__u
, __a
, __b
);
97 __mmask8
test_mm_cmpgt_epi16_mask(__m128i __a
, __m128i __b
) {
98 // CHECK-LABEL: @test_mm_cmpgt_epi16_mask
99 // CHECK: icmp sgt <8 x i16> %{{.*}}, %{{.*}}
100 return (__mmask8
)_mm_cmpgt_epi16_mask(__a
, __b
);
103 __mmask8
test_mm_mask_cmpgt_epi16_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
104 // CHECK-LABEL: @test_mm_mask_cmpgt_epi16_mask
105 // CHECK: icmp sgt <8 x i16> %{{.*}}, %{{.*}}
106 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
107 return (__mmask8
)_mm_mask_cmpgt_epi16_mask(__u
, __a
, __b
);
110 __mmask16
test_mm_cmpeq_epu8_mask(__m128i __a
, __m128i __b
) {
111 // CHECK-LABEL: @test_mm_cmpeq_epu8_mask
112 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
113 return (__mmask16
)_mm_cmpeq_epu8_mask(__a
, __b
);
116 __mmask16
test_mm_mask_cmpeq_epu8_mask(__mmask16 __u
, __m128i __a
, __m128i __b
) {
117 // CHECK-LABEL: @test_mm_mask_cmpeq_epu8_mask
118 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
119 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
120 return (__mmask16
)_mm_mask_cmpeq_epu8_mask(__u
, __a
, __b
);
123 __mmask8
test_mm_cmpeq_epu16_mask(__m128i __a
, __m128i __b
) {
124 // CHECK-LABEL: @test_mm_cmpeq_epu16_mask
125 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
126 return (__mmask8
)_mm_cmpeq_epu16_mask(__a
, __b
);
129 __mmask8
test_mm_mask_cmpeq_epu16_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
130 // CHECK-LABEL: @test_mm_mask_cmpeq_epu16_mask
131 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
132 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
133 return (__mmask8
)_mm_mask_cmpeq_epu16_mask(__u
, __a
, __b
);
136 __mmask32
test_mm256_cmpeq_epu8_mask(__m256i __a
, __m256i __b
) {
137 // CHECK-LABEL: @test_mm256_cmpeq_epu8_mask
138 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
139 return (__mmask32
)_mm256_cmpeq_epu8_mask(__a
, __b
);
142 __mmask32
test_mm256_mask_cmpeq_epu8_mask(__mmask32 __u
, __m256i __a
, __m256i __b
) {
143 // CHECK-LABEL: @test_mm256_mask_cmpeq_epu8_mask
144 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
145 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
146 return (__mmask32
)_mm256_mask_cmpeq_epu8_mask(__u
, __a
, __b
);
149 __mmask16
test_mm256_cmpeq_epu16_mask(__m256i __a
, __m256i __b
) {
150 // CHECK-LABEL: @test_mm256_cmpeq_epu16_mask
151 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
152 return (__mmask16
)_mm256_cmpeq_epu16_mask(__a
, __b
);
155 __mmask16
test_mm256_mask_cmpeq_epu16_mask(__mmask16 __u
, __m256i __a
, __m256i __b
) {
156 // CHECK-LABEL: @test_mm256_mask_cmpeq_epu16_mask
157 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
158 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
159 return (__mmask16
)_mm256_mask_cmpeq_epu16_mask(__u
, __a
, __b
);
162 __mmask16
test_mm_cmpgt_epu8_mask(__m128i __a
, __m128i __b
) {
163 // CHECK-LABEL: @test_mm_cmpgt_epu8_mask
164 // CHECK: icmp ugt <16 x i8> %{{.*}}, %{{.*}}
165 return (__mmask16
)_mm_cmpgt_epu8_mask(__a
, __b
);
168 __mmask16
test_mm_mask_cmpgt_epu8_mask(__mmask16 __u
, __m128i __a
, __m128i __b
) {
169 // CHECK-LABEL: @test_mm_mask_cmpgt_epu8_mask
170 // CHECK: icmp ugt <16 x i8> %{{.*}}, %{{.*}}
171 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
172 return (__mmask16
)_mm_mask_cmpgt_epu8_mask(__u
, __a
, __b
);
175 __mmask8
test_mm_cmpgt_epu16_mask(__m128i __a
, __m128i __b
) {
176 // CHECK-LABEL: @test_mm_cmpgt_epu16_mask
177 // CHECK: icmp ugt <8 x i16> %{{.*}}, %{{.*}}
178 return (__mmask8
)_mm_cmpgt_epu16_mask(__a
, __b
);
181 __mmask8
test_mm_mask_cmpgt_epu16_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
182 // CHECK-LABEL: @test_mm_mask_cmpgt_epu16_mask
183 // CHECK: icmp ugt <8 x i16> %{{.*}}, %{{.*}}
184 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
185 return (__mmask8
)_mm_mask_cmpgt_epu16_mask(__u
, __a
, __b
);
188 __mmask32
test_mm256_cmpgt_epu8_mask(__m256i __a
, __m256i __b
) {
189 // CHECK-LABEL: @test_mm256_cmpgt_epu8_mask
190 // CHECK: icmp ugt <32 x i8> %{{.*}}, %{{.*}}
191 return (__mmask32
)_mm256_cmpgt_epu8_mask(__a
, __b
);
194 __mmask32
test_mm256_mask_cmpgt_epu8_mask(__mmask32 __u
, __m256i __a
, __m256i __b
) {
195 // CHECK-LABEL: @test_mm256_mask_cmpgt_epu8_mask
196 // CHECK: icmp ugt <32 x i8> %{{.*}}, %{{.*}}
197 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
198 return (__mmask32
)_mm256_mask_cmpgt_epu8_mask(__u
, __a
, __b
);
201 __mmask16
test_mm256_cmpgt_epu16_mask(__m256i __a
, __m256i __b
) {
202 // CHECK-LABEL: @test_mm256_cmpgt_epu16_mask
203 // CHECK: icmp ugt <16 x i16> %{{.*}}, %{{.*}}
204 return (__mmask16
)_mm256_cmpgt_epu16_mask(__a
, __b
);
207 __mmask16
test_mm256_mask_cmpgt_epu16_mask(__mmask16 __u
, __m256i __a
, __m256i __b
) {
208 // CHECK-LABEL: @test_mm256_mask_cmpgt_epu16_mask
209 // CHECK: icmp ugt <16 x i16> %{{.*}}, %{{.*}}
210 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
211 return (__mmask16
)_mm256_mask_cmpgt_epu16_mask(__u
, __a
, __b
);
214 __mmask16
test_mm_cmpge_epi8_mask(__m128i __a
, __m128i __b
) {
215 // CHECK-LABEL: @test_mm_cmpge_epi8_mask
216 // CHECK: icmp sge <16 x i8> %{{.*}}, %{{.*}}
217 return (__mmask16
)_mm_cmpge_epi8_mask(__a
, __b
);
220 __mmask16
test_mm_mask_cmpge_epi8_mask(__mmask16 __u
, __m128i __a
, __m128i __b
) {
221 // CHECK-LABEL: @test_mm_mask_cmpge_epi8_mask
222 // CHECK: icmp sge <16 x i8> %{{.*}}, %{{.*}}
223 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
224 return (__mmask16
)_mm_mask_cmpge_epi8_mask(__u
, __a
, __b
);
227 __mmask16
test_mm_cmpge_epu8_mask(__m128i __a
, __m128i __b
) {
228 // CHECK-LABEL: @test_mm_cmpge_epu8_mask
229 // CHECK: icmp uge <16 x i8> %{{.*}}, %{{.*}}
230 return (__mmask16
)_mm_cmpge_epu8_mask(__a
, __b
);
233 __mmask16
test_mm_mask_cmpge_epu8_mask(__mmask16 __u
, __m128i __a
, __m128i __b
) {
234 // CHECK-LABEL: @test_mm_mask_cmpge_epu8_mask
235 // CHECK: icmp uge <16 x i8> %{{.*}}, %{{.*}}
236 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
237 return (__mmask16
)_mm_mask_cmpge_epu8_mask(__u
, __a
, __b
);
240 __mmask8
test_mm_cmpge_epi16_mask(__m128i __a
, __m128i __b
) {
241 // CHECK-LABEL: @test_mm_cmpge_epi16_mask
242 // CHECK: icmp sge <8 x i16> %{{.*}}, %{{.*}}
243 return (__mmask8
)_mm_cmpge_epi16_mask(__a
, __b
);
246 __mmask8
test_mm_mask_cmpge_epi16_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
247 // CHECK-LABEL: @test_mm_mask_cmpge_epi16_mask
248 // CHECK: icmp sge <8 x i16> %{{.*}}, %{{.*}}
249 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
250 return (__mmask8
)_mm_mask_cmpge_epi16_mask(__u
, __a
, __b
);
253 __mmask8
test_mm_cmpge_epu16_mask(__m128i __a
, __m128i __b
) {
254 // CHECK-LABEL: @test_mm_cmpge_epu16_mask
255 // CHECK: icmp uge <8 x i16> %{{.*}}, %{{.*}}
256 return (__mmask8
)_mm_cmpge_epu16_mask(__a
, __b
);
259 __mmask8
test_mm_mask_cmpge_epu16_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
260 // CHECK-LABEL: @test_mm_mask_cmpge_epu16_mask
261 // CHECK: icmp uge <8 x i16> %{{.*}}, %{{.*}}
262 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
263 return (__mmask8
)_mm_mask_cmpge_epu16_mask(__u
, __a
, __b
);
266 __mmask32
test_mm256_cmpge_epi8_mask(__m256i __a
, __m256i __b
) {
267 // CHECK-LABEL: @test_mm256_cmpge_epi8_mask
268 // CHECK: icmp sge <32 x i8> %{{.*}}, %{{.*}}
269 return (__mmask32
)_mm256_cmpge_epi8_mask(__a
, __b
);
272 __mmask32
test_mm256_mask_cmpge_epi8_mask(__mmask32 __u
, __m256i __a
, __m256i __b
) {
273 // CHECK-LABEL: @test_mm256_mask_cmpge_epi8_mask
274 // CHECK: icmp sge <32 x i8> %{{.*}}, %{{.*}}
275 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
276 return (__mmask32
)_mm256_mask_cmpge_epi8_mask(__u
, __a
, __b
);
279 __mmask32
test_mm256_cmpge_epu8_mask(__m256i __a
, __m256i __b
) {
280 // CHECK-LABEL: @test_mm256_cmpge_epu8_mask
281 // CHECK: icmp uge <32 x i8> %{{.*}}, %{{.*}}
282 return (__mmask32
)_mm256_cmpge_epu8_mask(__a
, __b
);
285 __mmask32
test_mm256_mask_cmpge_epu8_mask(__mmask32 __u
, __m256i __a
, __m256i __b
) {
286 // CHECK-LABEL: @test_mm256_mask_cmpge_epu8_mask
287 // CHECK: icmp uge <32 x i8> %{{.*}}, %{{.*}}
288 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
289 return (__mmask32
)_mm256_mask_cmpge_epu8_mask(__u
, __a
, __b
);
292 __mmask16
test_mm256_cmpge_epi16_mask(__m256i __a
, __m256i __b
) {
293 // CHECK-LABEL: @test_mm256_cmpge_epi16_mask
294 // CHECK: icmp sge <16 x i16> %{{.*}}, %{{.*}}
295 return (__mmask16
)_mm256_cmpge_epi16_mask(__a
, __b
);
298 __mmask16
test_mm256_mask_cmpge_epi16_mask(__mmask16 __u
, __m256i __a
, __m256i __b
) {
299 // CHECK-LABEL: @test_mm256_mask_cmpge_epi16_mask
300 // CHECK: icmp sge <16 x i16> %{{.*}}, %{{.*}}
301 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
302 return (__mmask16
)_mm256_mask_cmpge_epi16_mask(__u
, __a
, __b
);
305 __mmask16
test_mm256_cmpge_epu16_mask(__m256i __a
, __m256i __b
) {
306 // CHECK-LABEL: @test_mm256_cmpge_epu16_mask
307 // CHECK: icmp uge <16 x i16> %{{.*}}, %{{.*}}
308 return (__mmask16
)_mm256_cmpge_epu16_mask(__a
, __b
);
311 __mmask16
test_mm256_mask_cmpge_epu16_mask(__mmask16 __u
, __m256i __a
, __m256i __b
) {
312 // CHECK-LABEL: @test_mm256_mask_cmpge_epu16_mask
313 // CHECK: icmp uge <16 x i16> %{{.*}}, %{{.*}}
314 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
315 return (__mmask16
)_mm256_mask_cmpge_epu16_mask(__u
, __a
, __b
);
318 __mmask16
test_mm_cmple_epi8_mask(__m128i __a
, __m128i __b
) {
319 // CHECK-LABEL: @test_mm_cmple_epi8_mask
320 // CHECK: icmp sle <16 x i8> %{{.*}}, %{{.*}}
321 return (__mmask16
)_mm_cmple_epi8_mask(__a
, __b
);
324 __mmask16
test_mm_mask_cmple_epi8_mask(__mmask16 __u
, __m128i __a
, __m128i __b
) {
325 // CHECK-LABEL: @test_mm_mask_cmple_epi8_mask
326 // CHECK: icmp sle <16 x i8> %{{.*}}, %{{.*}}
327 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
328 return (__mmask16
)_mm_mask_cmple_epi8_mask(__u
, __a
, __b
);
331 __mmask16
test_mm_cmple_epu8_mask(__m128i __a
, __m128i __b
) {
332 // CHECK-LABEL: @test_mm_cmple_epu8_mask
333 // CHECK: icmp ule <16 x i8> %{{.*}}, %{{.*}}
334 return (__mmask16
)_mm_cmple_epu8_mask(__a
, __b
);
337 __mmask16
test_mm_mask_cmple_epu8_mask(__mmask16 __u
, __m128i __a
, __m128i __b
) {
338 // CHECK-LABEL: @test_mm_mask_cmple_epu8_mask
339 // CHECK: icmp ule <16 x i8> %{{.*}}, %{{.*}}
340 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
341 return (__mmask16
)_mm_mask_cmple_epu8_mask(__u
, __a
, __b
);
344 __mmask8
test_mm_cmple_epi16_mask(__m128i __a
, __m128i __b
) {
345 // CHECK-LABEL: @test_mm_cmple_epi16_mask
346 // CHECK: icmp sle <8 x i16> %{{.*}}, %{{.*}}
347 return (__mmask8
)_mm_cmple_epi16_mask(__a
, __b
);
350 __mmask8
test_mm_mask_cmple_epi16_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
351 // CHECK-LABEL: @test_mm_mask_cmple_epi16_mask
352 // CHECK: icmp sle <8 x i16> %{{.*}}, %{{.*}}
353 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
354 return (__mmask8
)_mm_mask_cmple_epi16_mask(__u
, __a
, __b
);
357 __mmask8
test_mm_cmple_epu16_mask(__m128i __a
, __m128i __b
) {
358 // CHECK-LABEL: @test_mm_cmple_epu16_mask
359 // CHECK: icmp ule <8 x i16> %{{.*}}, %{{.*}}
360 return (__mmask8
)_mm_cmple_epu16_mask(__a
, __b
);
363 __mmask8
test_mm_mask_cmple_epu16_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
364 // CHECK-LABEL: @test_mm_mask_cmple_epu16_mask
365 // CHECK: icmp ule <8 x i16> %{{.*}}, %{{.*}}
366 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
367 return (__mmask8
)_mm_mask_cmple_epu16_mask(__u
, __a
, __b
);
370 __mmask32
test_mm256_cmple_epi8_mask(__m256i __a
, __m256i __b
) {
371 // CHECK-LABEL: @test_mm256_cmple_epi8_mask
372 // CHECK: icmp sle <32 x i8> %{{.*}}, %{{.*}}
373 return (__mmask32
)_mm256_cmple_epi8_mask(__a
, __b
);
376 __mmask32
test_mm256_mask_cmple_epi8_mask(__mmask32 __u
, __m256i __a
, __m256i __b
) {
377 // CHECK-LABEL: @test_mm256_mask_cmple_epi8_mask
378 // CHECK: icmp sle <32 x i8> %{{.*}}, %{{.*}}
379 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
380 return (__mmask32
)_mm256_mask_cmple_epi8_mask(__u
, __a
, __b
);
383 __mmask32
test_mm256_cmple_epu8_mask(__m256i __a
, __m256i __b
) {
384 // CHECK-LABEL: @test_mm256_cmple_epu8_mask
385 // CHECK: icmp ule <32 x i8> %{{.*}}, %{{.*}}
386 return (__mmask32
)_mm256_cmple_epu8_mask(__a
, __b
);
389 __mmask32
test_mm256_mask_cmple_epu8_mask(__mmask32 __u
, __m256i __a
, __m256i __b
) {
390 // CHECK-LABEL: @test_mm256_mask_cmple_epu8_mask
391 // CHECK: icmp ule <32 x i8> %{{.*}}, %{{.*}}
392 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
393 return (__mmask32
)_mm256_mask_cmple_epu8_mask(__u
, __a
, __b
);
396 __mmask16
test_mm256_cmple_epi16_mask(__m256i __a
, __m256i __b
) {
397 // CHECK-LABEL: @test_mm256_cmple_epi16_mask
398 // CHECK: icmp sle <16 x i16> %{{.*}}, %{{.*}}
399 return (__mmask16
)_mm256_cmple_epi16_mask(__a
, __b
);
402 __mmask16
test_mm256_mask_cmple_epi16_mask(__mmask16 __u
, __m256i __a
, __m256i __b
) {
403 // CHECK-LABEL: @test_mm256_mask_cmple_epi16_mask
404 // CHECK: icmp sle <16 x i16> %{{.*}}, %{{.*}}
405 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
406 return (__mmask16
)_mm256_mask_cmple_epi16_mask(__u
, __a
, __b
);
409 __mmask16
test_mm256_cmple_epu16_mask(__m256i __a
, __m256i __b
) {
410 // CHECK-LABEL: @test_mm256_cmple_epu16_mask
411 // CHECK: icmp ule <16 x i16> %{{.*}}, %{{.*}}
412 return (__mmask16
)_mm256_cmple_epu16_mask(__a
, __b
);
415 __mmask16
test_mm256_mask_cmple_epu16_mask(__mmask16 __u
, __m256i __a
, __m256i __b
) {
416 // CHECK-LABEL: @test_mm256_mask_cmple_epu16_mask
417 // CHECK: icmp ule <16 x i16> %{{.*}}, %{{.*}}
418 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
419 return (__mmask16
)_mm256_mask_cmple_epu16_mask(__u
, __a
, __b
);
422 __mmask16
test_mm_cmplt_epi8_mask(__m128i __a
, __m128i __b
) {
423 // CHECK-LABEL: @test_mm_cmplt_epi8_mask
424 // CHECK: icmp slt <16 x i8> %{{.*}}, %{{.*}}
425 return (__mmask16
)_mm_cmplt_epi8_mask(__a
, __b
);
428 __mmask16
test_mm_mask_cmplt_epi8_mask(__mmask16 __u
, __m128i __a
, __m128i __b
) {
429 // CHECK-LABEL: @test_mm_mask_cmplt_epi8_mask
430 // CHECK: icmp slt <16 x i8> %{{.*}}, %{{.*}}
431 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
432 return (__mmask16
)_mm_mask_cmplt_epi8_mask(__u
, __a
, __b
);
435 __mmask16
test_mm_cmplt_epu8_mask(__m128i __a
, __m128i __b
) {
436 // CHECK-LABEL: @test_mm_cmplt_epu8_mask
437 // CHECK: icmp ult <16 x i8> %{{.*}}, %{{.*}}
438 return (__mmask16
)_mm_cmplt_epu8_mask(__a
, __b
);
441 __mmask16
test_mm_mask_cmplt_epu8_mask(__mmask16 __u
, __m128i __a
, __m128i __b
) {
442 // CHECK-LABEL: @test_mm_mask_cmplt_epu8_mask
443 // CHECK: icmp ult <16 x i8> %{{.*}}, %{{.*}}
444 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
445 return (__mmask16
)_mm_mask_cmplt_epu8_mask(__u
, __a
, __b
);
448 __mmask8
test_mm_cmplt_epi16_mask(__m128i __a
, __m128i __b
) {
449 // CHECK-LABEL: @test_mm_cmplt_epi16_mask
450 // CHECK: icmp slt <8 x i16> %{{.*}}, %{{.*}}
451 return (__mmask8
)_mm_cmplt_epi16_mask(__a
, __b
);
454 __mmask8
test_mm_mask_cmplt_epi16_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
455 // CHECK-LABEL: @test_mm_mask_cmplt_epi16_mask
456 // CHECK: icmp slt <8 x i16> %{{.*}}, %{{.*}}
457 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
458 return (__mmask8
)_mm_mask_cmplt_epi16_mask(__u
, __a
, __b
);
461 __mmask8
test_mm_cmplt_epu16_mask(__m128i __a
, __m128i __b
) {
462 // CHECK-LABEL: @test_mm_cmplt_epu16_mask
463 // CHECK: icmp ult <8 x i16> %{{.*}}, %{{.*}}
464 return (__mmask8
)_mm_cmplt_epu16_mask(__a
, __b
);
467 __mmask8
test_mm_mask_cmplt_epu16_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
468 // CHECK-LABEL: @test_mm_mask_cmplt_epu16_mask
469 // CHECK: icmp ult <8 x i16> %{{.*}}, %{{.*}}
470 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
471 return (__mmask8
)_mm_mask_cmplt_epu16_mask(__u
, __a
, __b
);
474 __mmask32
test_mm256_cmplt_epi8_mask(__m256i __a
, __m256i __b
) {
475 // CHECK-LABEL: @test_mm256_cmplt_epi8_mask
476 // CHECK: icmp slt <32 x i8> %{{.*}}, %{{.*}}
477 return (__mmask32
)_mm256_cmplt_epi8_mask(__a
, __b
);
480 __mmask32
test_mm256_mask_cmplt_epi8_mask(__mmask32 __u
, __m256i __a
, __m256i __b
) {
481 // CHECK-LABEL: @test_mm256_mask_cmplt_epi8_mask
482 // CHECK: icmp slt <32 x i8> %{{.*}}, %{{.*}}
483 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
484 return (__mmask32
)_mm256_mask_cmplt_epi8_mask(__u
, __a
, __b
);
487 __mmask32
test_mm256_cmplt_epu8_mask(__m256i __a
, __m256i __b
) {
488 // CHECK-LABEL: @test_mm256_cmplt_epu8_mask
489 // CHECK: icmp ult <32 x i8> %{{.*}}, %{{.*}}
490 return (__mmask32
)_mm256_cmplt_epu8_mask(__a
, __b
);
493 __mmask32
test_mm256_mask_cmplt_epu8_mask(__mmask32 __u
, __m256i __a
, __m256i __b
) {
494 // CHECK-LABEL: @test_mm256_mask_cmplt_epu8_mask
495 // CHECK: icmp ult <32 x i8> %{{.*}}, %{{.*}}
496 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
497 return (__mmask32
)_mm256_mask_cmplt_epu8_mask(__u
, __a
, __b
);
500 __mmask16
test_mm256_cmplt_epi16_mask(__m256i __a
, __m256i __b
) {
501 // CHECK-LABEL: @test_mm256_cmplt_epi16_mask
502 // CHECK: icmp slt <16 x i16> %{{.*}}, %{{.*}}
503 return (__mmask16
)_mm256_cmplt_epi16_mask(__a
, __b
);
506 __mmask16
test_mm256_mask_cmplt_epi16_mask(__mmask16 __u
, __m256i __a
, __m256i __b
) {
507 // CHECK-LABEL: @test_mm256_mask_cmplt_epi16_mask
508 // CHECK: icmp slt <16 x i16> %{{.*}}, %{{.*}}
509 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
510 return (__mmask16
)_mm256_mask_cmplt_epi16_mask(__u
, __a
, __b
);
513 __mmask16
test_mm256_cmplt_epu16_mask(__m256i __a
, __m256i __b
) {
514 // CHECK-LABEL: @test_mm256_cmplt_epu16_mask
515 // CHECK: icmp ult <16 x i16> %{{.*}}, %{{.*}}
516 return (__mmask16
)_mm256_cmplt_epu16_mask(__a
, __b
);
519 __mmask16
test_mm256_mask_cmplt_epu16_mask(__mmask16 __u
, __m256i __a
, __m256i __b
) {
520 // CHECK-LABEL: @test_mm256_mask_cmplt_epu16_mask
521 // CHECK: icmp ult <16 x i16> %{{.*}}, %{{.*}}
522 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
523 return (__mmask16
)_mm256_mask_cmplt_epu16_mask(__u
, __a
, __b
);
526 __mmask16
test_mm_cmpneq_epi8_mask(__m128i __a
, __m128i __b
) {
527 // CHECK-LABEL: @test_mm_cmpneq_epi8_mask
528 // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
529 return (__mmask16
)_mm_cmpneq_epi8_mask(__a
, __b
);
532 __mmask16
test_mm_mask_cmpneq_epi8_mask(__mmask16 __u
, __m128i __a
, __m128i __b
) {
533 // CHECK-LABEL: @test_mm_mask_cmpneq_epi8_mask
534 // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
535 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
536 return (__mmask16
)_mm_mask_cmpneq_epi8_mask(__u
, __a
, __b
);
539 __mmask16
test_mm_cmpneq_epu8_mask(__m128i __a
, __m128i __b
) {
540 // CHECK-LABEL: @test_mm_cmpneq_epu8_mask
541 // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
542 return (__mmask16
)_mm_cmpneq_epu8_mask(__a
, __b
);
545 __mmask16
test_mm_mask_cmpneq_epu8_mask(__mmask16 __u
, __m128i __a
, __m128i __b
) {
546 // CHECK-LABEL: @test_mm_mask_cmpneq_epu8_mask
547 // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
548 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
549 return (__mmask16
)_mm_mask_cmpneq_epu8_mask(__u
, __a
, __b
);
552 __mmask8
test_mm_cmpneq_epi16_mask(__m128i __a
, __m128i __b
) {
553 // CHECK-LABEL: @test_mm_cmpneq_epi16_mask
554 // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
555 return (__mmask8
)_mm_cmpneq_epi16_mask(__a
, __b
);
558 __mmask8
test_mm_mask_cmpneq_epi16_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
559 // CHECK-LABEL: @test_mm_mask_cmpneq_epi16_mask
560 // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
561 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
562 return (__mmask8
)_mm_mask_cmpneq_epi16_mask(__u
, __a
, __b
);
565 __mmask8
test_mm_cmpneq_epu16_mask(__m128i __a
, __m128i __b
) {
566 // CHECK-LABEL: @test_mm_cmpneq_epu16_mask
567 // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
568 return (__mmask8
)_mm_cmpneq_epu16_mask(__a
, __b
);
571 __mmask8
test_mm_mask_cmpneq_epu16_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
572 // CHECK-LABEL: @test_mm_mask_cmpneq_epu16_mask
573 // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
574 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
575 return (__mmask8
)_mm_mask_cmpneq_epu16_mask(__u
, __a
, __b
);
578 __mmask32
test_mm256_cmpneq_epi8_mask(__m256i __a
, __m256i __b
) {
579 // CHECK-LABEL: @test_mm256_cmpneq_epi8_mask
580 // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}}
581 return (__mmask32
)_mm256_cmpneq_epi8_mask(__a
, __b
);
584 __mmask32
test_mm256_mask_cmpneq_epi8_mask(__mmask32 __u
, __m256i __a
, __m256i __b
) {
585 // CHECK-LABEL: @test_mm256_mask_cmpneq_epi8_mask
586 // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}}
587 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
588 return (__mmask32
)_mm256_mask_cmpneq_epi8_mask(__u
, __a
, __b
);
591 __mmask32
test_mm256_cmpneq_epu8_mask(__m256i __a
, __m256i __b
) {
592 // CHECK-LABEL: @test_mm256_cmpneq_epu8_mask
593 // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}}
594 return (__mmask32
)_mm256_cmpneq_epu8_mask(__a
, __b
);
597 __mmask32
test_mm256_mask_cmpneq_epu8_mask(__mmask32 __u
, __m256i __a
, __m256i __b
) {
598 // CHECK-LABEL: @test_mm256_mask_cmpneq_epu8_mask
599 // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}}
600 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
601 return (__mmask32
)_mm256_mask_cmpneq_epu8_mask(__u
, __a
, __b
);
604 __mmask16
test_mm256_cmpneq_epi16_mask(__m256i __a
, __m256i __b
) {
605 // CHECK-LABEL: @test_mm256_cmpneq_epi16_mask
606 // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}}
607 return (__mmask16
)_mm256_cmpneq_epi16_mask(__a
, __b
);
610 __mmask16
test_mm256_mask_cmpneq_epi16_mask(__mmask16 __u
, __m256i __a
, __m256i __b
) {
611 // CHECK-LABEL: @test_mm256_mask_cmpneq_epi16_mask
612 // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}}
613 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
614 return (__mmask16
)_mm256_mask_cmpneq_epi16_mask(__u
, __a
, __b
);
617 __mmask16
test_mm256_cmpneq_epu16_mask(__m256i __a
, __m256i __b
) {
618 // CHECK-LABEL: @test_mm256_cmpneq_epu16_mask
619 // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}}
620 return (__mmask16
)_mm256_cmpneq_epu16_mask(__a
, __b
);
623 __mmask16
test_mm256_mask_cmpneq_epu16_mask(__mmask16 __u
, __m256i __a
, __m256i __b
) {
624 // CHECK-LABEL: @test_mm256_mask_cmpneq_epu16_mask
625 // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}}
626 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
627 return (__mmask16
)_mm256_mask_cmpneq_epu16_mask(__u
, __a
, __b
);
630 __mmask16
test_mm_cmp_epi8_mask(__m128i __a
, __m128i __b
) {
631 // CHECK-LABEL: @test_mm_cmp_epi8_mask
632 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
633 return (__mmask16
)_mm_cmp_epi8_mask(__a
, __b
, 0);
636 __mmask16
test_mm_mask_cmp_epi8_mask(__mmask16 __u
, __m128i __a
, __m128i __b
) {
637 // CHECK-LABEL: @test_mm_mask_cmp_epi8_mask
638 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
639 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
640 return (__mmask16
)_mm_mask_cmp_epi8_mask(__u
, __a
, __b
, 0);
643 __mmask16
test_mm_cmp_epu8_mask(__m128i __a
, __m128i __b
) {
644 // CHECK-LABEL: @test_mm_cmp_epu8_mask
645 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
646 return (__mmask16
)_mm_cmp_epu8_mask(__a
, __b
, 0);
649 __mmask16
test_mm_mask_cmp_epu8_mask(__mmask16 __u
, __m128i __a
, __m128i __b
) {
650 // CHECK-LABEL: @test_mm_mask_cmp_epu8_mask
651 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
652 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
653 return (__mmask16
)_mm_mask_cmp_epu8_mask(__u
, __a
, __b
, 0);
656 __mmask8
test_mm_cmp_epi16_mask(__m128i __a
, __m128i __b
) {
657 // CHECK-LABEL: @test_mm_cmp_epi16_mask
658 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
659 return (__mmask8
)_mm_cmp_epi16_mask(__a
, __b
, 0);
662 __mmask8
test_mm_mask_cmp_epi16_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
663 // CHECK-LABEL: @test_mm_mask_cmp_epi16_mask
664 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
665 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
666 return (__mmask8
)_mm_mask_cmp_epi16_mask(__u
, __a
, __b
, 0);
669 __mmask8
test_mm_cmp_epu16_mask(__m128i __a
, __m128i __b
) {
670 // CHECK-LABEL: @test_mm_cmp_epu16_mask
671 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
672 return (__mmask8
)_mm_cmp_epu16_mask(__a
, __b
, 0);
675 __mmask8
test_mm_mask_cmp_epu16_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
676 // CHECK-LABEL: @test_mm_mask_cmp_epu16_mask
677 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
678 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
679 return (__mmask8
)_mm_mask_cmp_epu16_mask(__u
, __a
, __b
, 0);
682 __mmask32
test_mm256_cmp_epi8_mask(__m256i __a
, __m256i __b
) {
683 // CHECK-LABEL: @test_mm256_cmp_epi8_mask
684 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
685 return (__mmask32
)_mm256_cmp_epi8_mask(__a
, __b
, 0);
688 __mmask32
test_mm256_mask_cmp_epi8_mask(__mmask32 __u
, __m256i __a
, __m256i __b
) {
689 // CHECK-LABEL: @test_mm256_mask_cmp_epi8_mask
690 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
691 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
692 return (__mmask32
)_mm256_mask_cmp_epi8_mask(__u
, __a
, __b
, 0);
695 __mmask32
test_mm256_cmp_epu8_mask(__m256i __a
, __m256i __b
) {
696 // CHECK-LABEL: @test_mm256_cmp_epu8_mask
697 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
698 return (__mmask32
)_mm256_cmp_epu8_mask(__a
, __b
, 0);
701 __mmask32
test_mm256_mask_cmp_epu8_mask(__mmask32 __u
, __m256i __a
, __m256i __b
) {
702 // CHECK-LABEL: @test_mm256_mask_cmp_epu8_mask
703 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
704 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
705 return (__mmask32
)_mm256_mask_cmp_epu8_mask(__u
, __a
, __b
, 0);
708 __mmask16
test_mm256_cmp_epi16_mask(__m256i __a
, __m256i __b
) {
709 // CHECK-LABEL: @test_mm256_cmp_epi16_mask
710 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
711 return (__mmask16
)_mm256_cmp_epi16_mask(__a
, __b
, 0);
714 __mmask16
test_mm256_mask_cmp_epi16_mask(__mmask16 __u
, __m256i __a
, __m256i __b
) {
715 // CHECK-LABEL: @test_mm256_mask_cmp_epi16_mask
716 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
717 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
718 return (__mmask16
)_mm256_mask_cmp_epi16_mask(__u
, __a
, __b
, 0);
721 __mmask16
test_mm256_cmp_epu16_mask(__m256i __a
, __m256i __b
) {
722 // CHECK-LABEL: @test_mm256_cmp_epu16_mask
723 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
724 return (__mmask16
)_mm256_cmp_epu16_mask(__a
, __b
, 0);
727 __mmask16
test_mm256_mask_cmp_epu16_mask(__mmask16 __u
, __m256i __a
, __m256i __b
) {
728 // CHECK-LABEL: @test_mm256_mask_cmp_epu16_mask
729 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
730 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
731 return (__mmask16
)_mm256_mask_cmp_epu16_mask(__u
, __a
, __b
, 0);
735 __m256i
test_mm256_mask_add_epi8 (__m256i __W
, __mmask32 __U
, __m256i __A
, __m256i __B
){
736 //CHECK-LABEL: @test_mm256_mask_add_epi8
737 //CHECK: add <32 x i8> %{{.*}}, %{{.*}}
738 //CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
739 return _mm256_mask_add_epi8(__W
, __U
, __A
, __B
);
742 __m256i
test_mm256_maskz_add_epi8 (__mmask32 __U
, __m256i __A
, __m256i __B
) {
743 //CHECK-LABEL: @test_mm256_maskz_add_epi8
744 //CHECK: add <32 x i8> %{{.*}}, %{{.*}}
745 //CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
746 return _mm256_maskz_add_epi8(__U
, __A
, __B
);
748 __m256i
test_mm256_mask_add_epi16 (__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
749 //CHECK-LABEL: @test_mm256_mask_add_epi16
750 //CHECK: add <16 x i16> %{{.*}}, %{{.*}}
751 //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
752 return _mm256_mask_add_epi16(__W
, __U
, __A
, __B
);
755 __m256i
test_mm256_maskz_add_epi16 (__mmask16 __U
, __m256i __A
, __m256i __B
) {
756 //CHECK-LABEL: @test_mm256_maskz_add_epi16
757 //CHECK: add <16 x i16> %{{.*}}, %{{.*}}
758 //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
759 return _mm256_maskz_add_epi16(__U
, __A
, __B
);
762 __m256i
test_mm256_mask_sub_epi8 (__m256i __W
, __mmask32 __U
, __m256i __A
, __m256i __B
) {
763 //CHECK-LABEL: @test_mm256_mask_sub_epi8
764 //CHECK: sub <32 x i8> %{{.*}}, %{{.*}}
765 //CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
766 return _mm256_mask_sub_epi8(__W
, __U
, __A
, __B
);
769 __m256i
test_mm256_maskz_sub_epi8 (__mmask32 __U
, __m256i __A
, __m256i __B
) {
770 //CHECK-LABEL: @test_mm256_maskz_sub_epi8
771 //CHECK: sub <32 x i8> %{{.*}}, %{{.*}}
772 //CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
773 return _mm256_maskz_sub_epi8(__U
, __A
, __B
);
776 __m256i
test_mm256_mask_sub_epi16 (__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
777 //CHECK-LABEL: @test_mm256_mask_sub_epi16
778 //CHECK: sub <16 x i16> %{{.*}}, %{{.*}}
779 //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
780 return _mm256_mask_sub_epi16(__W
, __U
, __A
, __B
);
783 __m256i
test_mm256_maskz_sub_epi16 (__mmask16 __U
, __m256i __A
, __m256i __B
) {
784 //CHECK-LABEL: @test_mm256_maskz_sub_epi16
785 //CHECK: sub <16 x i16> %{{.*}}, %{{.*}}
786 //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
787 return _mm256_maskz_sub_epi16(__U
, __A
, __B
);
790 __m128i
test_mm_mask_add_epi8 (__m128i __W
, __mmask16 __U
, __m128i __A
, __m128i __B
) {
791 //CHECK-LABEL: @test_mm_mask_add_epi8
792 //CHECK: add <16 x i8> %{{.*}}, %{{.*}}
793 //CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
794 return _mm_mask_add_epi8(__W
, __U
, __A
, __B
);
797 __m128i
test_mm_maskz_add_epi8 (__mmask16 __U
, __m128i __A
, __m128i __B
) {
798 //CHECK-LABEL: @test_mm_maskz_add_epi8
799 //CHECK: add <16 x i8> %{{.*}}, %{{.*}}
800 //CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
801 return _mm_maskz_add_epi8(__U
, __A
, __B
);
804 __m128i
test_mm_mask_add_epi16 (__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
805 //CHECK-LABEL: @test_mm_mask_add_epi16
806 //CHECK: add <8 x i16> %{{.*}}, %{{.*}}
807 //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
808 return _mm_mask_add_epi16(__W
, __U
, __A
, __B
);
811 __m128i
test_mm_maskz_add_epi16 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
812 //CHECK-LABEL: @test_mm_maskz_add_epi16
813 //CHECK: add <8 x i16> %{{.*}}, %{{.*}}
814 //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
815 return _mm_maskz_add_epi16(__U
, __A
, __B
);
818 __m128i
test_mm_mask_sub_epi8 (__m128i __W
, __mmask16 __U
, __m128i __A
, __m128i __B
) {
819 //CHECK-LABEL: @test_mm_mask_sub_epi8
820 //CHECK: sub <16 x i8> %{{.*}}, %{{.*}}
821 //CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
822 return _mm_mask_sub_epi8(__W
, __U
, __A
, __B
);
825 __m128i
test_mm_maskz_sub_epi8 (__mmask16 __U
, __m128i __A
, __m128i __B
) {
826 //CHECK-LABEL: @test_mm_maskz_sub_epi8
827 //CHECK: sub <16 x i8> %{{.*}}, %{{.*}}
828 //CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
829 return _mm_maskz_sub_epi8(__U
, __A
, __B
);
832 __m128i
test_mm_mask_sub_epi16 (__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
833 //CHECK-LABEL: @test_mm_mask_sub_epi16
834 //CHECK: sub <8 x i16> %{{.*}}, %{{.*}}
835 //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
836 return _mm_mask_sub_epi16(__W
, __U
, __A
, __B
);
839 __m128i
test_mm_maskz_sub_epi16 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
840 //CHECK-LABEL: @test_mm_maskz_sub_epi16
841 //CHECK: sub <8 x i16> %{{.*}}, %{{.*}}
842 //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
843 return _mm_maskz_sub_epi16(__U
, __A
, __B
);
846 __m256i
test_mm256_mask_mullo_epi16 (__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
847 //CHECK-LABEL: @test_mm256_mask_mullo_epi16
848 //CHECK: mul <16 x i16> %{{.*}}, %{{.*}}
849 //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
850 return _mm256_mask_mullo_epi16(__W
, __U
, __A
, __B
);
853 __m256i
test_mm256_maskz_mullo_epi16 (__mmask16 __U
, __m256i __A
, __m256i __B
) {
854 //CHECK-LABEL: @test_mm256_maskz_mullo_epi16
855 //CHECK: mul <16 x i16> %{{.*}}, %{{.*}}
856 //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
857 return _mm256_maskz_mullo_epi16(__U
, __A
, __B
);
860 __m128i
test_mm_mask_mullo_epi16 (__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
861 //CHECK-LABEL: @test_mm_mask_mullo_epi16
862 //CHECK: mul <8 x i16> %{{.*}}, %{{.*}}
863 //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
864 return _mm_mask_mullo_epi16(__W
, __U
, __A
, __B
);
867 __m128i
test_mm_maskz_mullo_epi16 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
868 //CHECK-LABEL: @test_mm_maskz_mullo_epi16
869 //CHECK: mul <8 x i16> %{{.*}}, %{{.*}}
870 //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
871 return _mm_maskz_mullo_epi16(__U
, __A
, __B
);
875 __m128i
test_mm_mask_blend_epi8(__mmask16 __U
, __m128i __A
, __m128i __W
) {
876 // CHECK-LABEL: @test_mm_mask_blend_epi8
877 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
878 return _mm_mask_blend_epi8(__U
,__A
,__W
);
880 __m256i
test_mm256_mask_blend_epi8(__mmask32 __U
, __m256i __A
, __m256i __W
) {
881 // CHECK-LABEL: @test_mm256_mask_blend_epi8
882 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
883 return _mm256_mask_blend_epi8(__U
,__A
,__W
);
886 __m128i
test_mm_mask_blend_epi16(__mmask8 __U
, __m128i __A
, __m128i __W
) {
887 // CHECK-LABEL: @test_mm_mask_blend_epi16
888 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
889 return _mm_mask_blend_epi16(__U
,__A
,__W
);
892 __m256i
test_mm256_mask_blend_epi16(__mmask16 __U
, __m256i __A
, __m256i __W
) {
893 // CHECK-LABEL: @test_mm256_mask_blend_epi16
894 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
895 return _mm256_mask_blend_epi16(__U
,__A
,__W
);
898 __m128i
test_mm_mask_abs_epi8(__m128i __W
, __mmask16 __U
, __m128i __A
) {
899 // CHECK-LABEL: @test_mm_mask_abs_epi8
900 // CHECK: [[ABS:%.*]] = call <16 x i8> @llvm.abs.v16i8(<16 x i8> %{{.*}}, i1 false)
901 // CHECK: [[TMP:%.*]] = bitcast <16 x i8> [[ABS]] to <2 x i64>
902 // CHECK: [[ABS:%.*]] = bitcast <2 x i64> [[TMP]] to <16 x i8>
903 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> [[ABS]], <16 x i8> %{{.*}}
904 return _mm_mask_abs_epi8(__W
,__U
,__A
);
907 __m128i
test_mm_maskz_abs_epi8(__mmask16 __U
, __m128i __A
) {
908 // CHECK-LABEL: @test_mm_maskz_abs_epi8
909 // CHECK: [[ABS:%.*]] = call <16 x i8> @llvm.abs.v16i8(<16 x i8> %{{.*}}, i1 false)
910 // CHECK: [[TMP:%.*]] = bitcast <16 x i8> [[ABS]] to <2 x i64>
911 // CHECK: [[ABS:%.*]] = bitcast <2 x i64> [[TMP]] to <16 x i8>
912 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> [[ABS]], <16 x i8> %{{.*}}
913 return _mm_maskz_abs_epi8(__U
,__A
);
916 __m256i
test_mm256_mask_abs_epi8(__m256i __W
, __mmask32 __U
, __m256i __A
) {
917 // CHECK-LABEL: @test_mm256_mask_abs_epi8
918 // CHECK: [[ABS:%.*]] = call <32 x i8> @llvm.abs.v32i8(<32 x i8> %{{.*}}, i1 false)
919 // CHECK: [[TMP:%.*]] = bitcast <32 x i8> [[ABS]] to <4 x i64>
920 // CHECK: [[ABS:%.*]] = bitcast <4 x i64> [[TMP]] to <32 x i8>
921 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> [[ABS]], <32 x i8> %{{.*}}
922 return _mm256_mask_abs_epi8(__W
,__U
,__A
);
925 __m256i
test_mm256_maskz_abs_epi8(__mmask32 __U
, __m256i __A
) {
926 // CHECK-LABEL: @test_mm256_maskz_abs_epi8
927 // CHECK: [[ABS:%.*]] = call <32 x i8> @llvm.abs.v32i8(<32 x i8> %{{.*}}, i1 false)
928 // CHECK: [[TMP:%.*]] = bitcast <32 x i8> [[ABS]] to <4 x i64>
929 // CHECK: [[ABS:%.*]] = bitcast <4 x i64> [[TMP]] to <32 x i8>
930 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> [[ABS]], <32 x i8> %{{.*}}
931 return _mm256_maskz_abs_epi8(__U
,__A
);
934 __m128i
test_mm_mask_abs_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
) {
935 // CHECK-LABEL: @test_mm_mask_abs_epi16
936 // CHECK: [[ABS:%.*]] = call <8 x i16> @llvm.abs.v8i16(<8 x i16> %{{.*}}, i1 false)
937 // CHECK: [[TMP:%.*]] = bitcast <8 x i16> [[ABS]] to <2 x i64>
938 // CHECK: [[ABS:%.*]] = bitcast <2 x i64> [[TMP]] to <8 x i16>
939 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> [[ABS]], <8 x i16> %{{.*}}
940 return _mm_mask_abs_epi16(__W
,__U
,__A
);
943 __m128i
test_mm_maskz_abs_epi16(__mmask8 __U
, __m128i __A
) {
944 // CHECK-LABEL: @test_mm_maskz_abs_epi16
945 // CHECK: [[ABS:%.*]] = call <8 x i16> @llvm.abs.v8i16(<8 x i16> %{{.*}}, i1 false)
946 // CHECK: [[TMP:%.*]] = bitcast <8 x i16> [[ABS]] to <2 x i64>
947 // CHECK: [[ABS:%.*]] = bitcast <2 x i64> [[TMP]] to <8 x i16>
948 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> [[ABS]], <8 x i16> %{{.*}}
949 return _mm_maskz_abs_epi16(__U
,__A
);
952 __m256i
test_mm256_mask_abs_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
) {
953 // CHECK-LABEL: @test_mm256_mask_abs_epi16
954 // CHECK: [[ABS:%.*]] = call <16 x i16> @llvm.abs.v16i16(<16 x i16> %{{.*}}, i1 false)
955 // CHECK: [[TMP:%.*]] = bitcast <16 x i16> [[ABS]] to <4 x i64>
956 // CHECK: [[ABS:%.*]] = bitcast <4 x i64> [[TMP]] to <16 x i16>
957 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> [[ABS]], <16 x i16> %{{.*}}
958 return _mm256_mask_abs_epi16(__W
,__U
,__A
);
961 __m256i
test_mm256_maskz_abs_epi16(__mmask16 __U
, __m256i __A
) {
962 // CHECK-LABEL: @test_mm256_maskz_abs_epi16
963 // CHECK: [[ABS:%.*]] = call <16 x i16> @llvm.abs.v16i16(<16 x i16> %{{.*}}, i1 false)
964 // CHECK: [[TMP:%.*]] = bitcast <16 x i16> [[ABS]] to <4 x i64>
965 // CHECK: [[ABS:%.*]] = bitcast <4 x i64> [[TMP]] to <16 x i16>
966 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> [[ABS]], <16 x i16> %{{.*}}
967 return _mm256_maskz_abs_epi16(__U
,__A
);
970 __m128i
test_mm_maskz_packs_epi32(__mmask8 __M
, __m128i __A
, __m128i __B
) {
971 // CHECK-LABEL: @test_mm_maskz_packs_epi32
972 // CHECK: @llvm.x86.sse2.packssdw
973 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
974 return _mm_maskz_packs_epi32(__M
,__A
,__B
);
976 __m128i
test_mm_mask_packs_epi32(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
977 // CHECK-LABEL: @test_mm_mask_packs_epi32
978 // CHECK: @llvm.x86.sse2.packssdw
979 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
980 return _mm_mask_packs_epi32(__W
,__M
,__A
,__B
);
982 __m256i
test_mm256_maskz_packs_epi32(__mmask16 __M
, __m256i __A
, __m256i __B
) {
983 // CHECK-LABEL: @test_mm256_maskz_packs_epi32
984 // CHECK: @llvm.x86.avx2.packssdw
985 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
986 return _mm256_maskz_packs_epi32(__M
,__A
,__B
);
988 __m256i
test_mm256_mask_packs_epi32(__m256i __W
, __mmask16 __M
, __m256i __A
, __m256i __B
) {
989 // CHECK-LABEL: @test_mm256_mask_packs_epi32
990 // CHECK: @llvm.x86.avx2.packssdw
991 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
992 return _mm256_mask_packs_epi32(__W
,__M
,__A
,__B
);
994 __m128i
test_mm_maskz_packs_epi16(__mmask16 __M
, __m128i __A
, __m128i __B
) {
995 // CHECK-LABEL: @test_mm_maskz_packs_epi16
996 // CHECK: @llvm.x86.sse2.packsswb
997 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
998 return _mm_maskz_packs_epi16(__M
,__A
,__B
);
1000 __m128i
test_mm_mask_packs_epi16(__m128i __W
, __mmask16 __M
, __m128i __A
, __m128i __B
) {
1001 // CHECK-LABEL: @test_mm_mask_packs_epi16
1002 // CHECK: @llvm.x86.sse2.packsswb
1003 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1004 return _mm_mask_packs_epi16(__W
,__M
,__A
,__B
);
1006 __m256i
test_mm256_maskz_packs_epi16(__mmask32 __M
, __m256i __A
, __m256i __B
) {
1007 // CHECK-LABEL: @test_mm256_maskz_packs_epi16
1008 // CHECK: @llvm.x86.avx2.packsswb
1009 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1010 return _mm256_maskz_packs_epi16(__M
,__A
,__B
);
1012 __m256i
test_mm256_mask_packs_epi16(__m256i __W
, __mmask32 __M
, __m256i __A
, __m256i __B
) {
1013 // CHECK-LABEL: @test_mm256_mask_packs_epi16
1014 // CHECK: @llvm.x86.avx2.packsswb
1015 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1016 return _mm256_mask_packs_epi16(__W
,__M
,__A
,__B
);
1019 __m128i
test_mm_mask_packus_epi32(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
1020 // CHECK-LABEL: @test_mm_mask_packus_epi32
1021 // CHECK: @llvm.x86.sse41.packusdw
1022 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1023 return _mm_mask_packus_epi32(__W
,__M
,__A
,__B
);
1026 __m128i
test_mm_maskz_packus_epi32(__mmask8 __M
, __m128i __A
, __m128i __B
) {
1027 // CHECK-LABEL: @test_mm_maskz_packus_epi32
1028 // CHECK: @llvm.x86.sse41.packusdw
1029 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1030 return _mm_maskz_packus_epi32(__M
,__A
,__B
);
1033 __m256i
test_mm256_maskz_packus_epi32(__mmask16 __M
, __m256i __A
, __m256i __B
) {
1034 // CHECK-LABEL: @test_mm256_maskz_packus_epi32
1035 // CHECK: @llvm.x86.avx2.packusdw
1036 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1037 return _mm256_maskz_packus_epi32(__M
,__A
,__B
);
1040 __m256i
test_mm256_mask_packus_epi32(__m256i __W
, __mmask16 __M
, __m256i __A
, __m256i __B
) {
1041 // CHECK-LABEL: @test_mm256_mask_packus_epi32
1042 // CHECK: @llvm.x86.avx2.packusdw
1043 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1044 return _mm256_mask_packus_epi32(__W
,__M
,__A
,__B
);
1047 __m128i
test_mm_maskz_packus_epi16(__mmask16 __M
, __m128i __A
, __m128i __B
) {
1048 // CHECK-LABEL: @test_mm_maskz_packus_epi16
1049 // CHECK: @llvm.x86.sse2.packuswb
1050 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1051 return _mm_maskz_packus_epi16(__M
,__A
,__B
);
1054 __m128i
test_mm_mask_packus_epi16(__m128i __W
, __mmask16 __M
, __m128i __A
, __m128i __B
) {
1055 // CHECK-LABEL: @test_mm_mask_packus_epi16
1056 // CHECK: @llvm.x86.sse2.packuswb
1057 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1058 return _mm_mask_packus_epi16(__W
,__M
,__A
,__B
);
1061 __m256i
test_mm256_maskz_packus_epi16(__mmask32 __M
, __m256i __A
, __m256i __B
) {
1062 // CHECK-LABEL: @test_mm256_maskz_packus_epi16
1063 // CHECK: @llvm.x86.avx2.packuswb
1064 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1065 return _mm256_maskz_packus_epi16(__M
,__A
,__B
);
1068 __m256i
test_mm256_mask_packus_epi16(__m256i __W
, __mmask32 __M
, __m256i __A
, __m256i __B
) {
1069 // CHECK-LABEL: @test_mm256_mask_packus_epi16
1070 // CHECK: @llvm.x86.avx2.packuswb
1071 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1072 return _mm256_mask_packus_epi16(__W
,__M
,__A
,__B
);
1075 __m128i
test_mm_mask_adds_epi8(__m128i __W
, __mmask16 __U
, __m128i __A
, __m128i __B
) {
1076 // CHECK-LABEL: @test_mm_mask_adds_epi8
1077 // CHECK: @llvm.sadd.sat.v16i8
1078 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1079 return _mm_mask_adds_epi8(__W
,__U
,__A
,__B
);
1081 __m128i
test_mm_maskz_adds_epi8(__mmask16 __U
, __m128i __A
, __m128i __B
) {
1082 // CHECK-LABEL: @test_mm_maskz_adds_epi8
1083 // CHECK: @llvm.sadd.sat.v16i8
1084 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1085 return _mm_maskz_adds_epi8(__U
,__A
,__B
);
1087 __m256i
test_mm256_mask_adds_epi8(__m256i __W
, __mmask32 __U
, __m256i __A
, __m256i __B
) {
1088 // CHECK-LABEL: @test_mm256_mask_adds_epi8
1089 // CHECK: @llvm.sadd.sat.v32i8
1090 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1091 return _mm256_mask_adds_epi8(__W
,__U
,__A
,__B
);
1093 __m256i
test_mm256_maskz_adds_epi8(__mmask32 __U
, __m256i __A
, __m256i __B
) {
1094 // CHECK-LABEL: @test_mm256_maskz_adds_epi8
1095 // CHECK: @llvm.sadd.sat.v32i8
1096 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1097 return _mm256_maskz_adds_epi8(__U
,__A
,__B
);
1099 __m128i
test_mm_mask_adds_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
1100 // CHECK-LABEL: @test_mm_mask_adds_epi16
1101 // CHECK: @llvm.sadd.sat.v8i16
1102 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1103 return _mm_mask_adds_epi16(__W
,__U
,__A
,__B
);
1105 __m128i
test_mm_maskz_adds_epi16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
1106 // CHECK-LABEL: @test_mm_maskz_adds_epi16
1107 // CHECK: @llvm.sadd.sat.v8i16
1108 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1109 return _mm_maskz_adds_epi16(__U
,__A
,__B
);
1111 __m256i
test_mm256_mask_adds_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
1112 // CHECK-LABEL: @test_mm256_mask_adds_epi16
1113 // CHECK: @llvm.sadd.sat.v16i16
1114 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1115 return _mm256_mask_adds_epi16(__W
,__U
,__A
,__B
);
1117 __m256i
test_mm256_maskz_adds_epi16(__mmask16 __U
, __m256i __A
, __m256i __B
) {
1118 // CHECK-LABEL: @test_mm256_maskz_adds_epi16
1119 // CHECK: @llvm.sadd.sat.v16i16
1120 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1121 return _mm256_maskz_adds_epi16(__U
,__A
,__B
);
1123 __m128i
test_mm_mask_adds_epu8(__m128i __W
, __mmask16 __U
, __m128i __A
, __m128i __B
) {
1124 // CHECK-LABEL: @test_mm_mask_adds_epu8
1125 // CHECK-NOT: @llvm.x86.sse2.paddus.b
1126 // CHECK: call <16 x i8> @llvm.uadd.sat.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1127 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1128 return _mm_mask_adds_epu8(__W
,__U
,__A
,__B
);
1130 __m128i
test_mm_maskz_adds_epu8(__mmask16 __U
, __m128i __A
, __m128i __B
) {
1131 // CHECK-LABEL: @test_mm_maskz_adds_epu8
1132 // CHECK-NOT: @llvm.x86.sse2.paddus.b
1133 // CHECK: call <16 x i8> @llvm.uadd.sat.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1134 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1135 return _mm_maskz_adds_epu8(__U
,__A
,__B
);
1137 __m256i
test_mm256_mask_adds_epu8(__m256i __W
, __mmask32 __U
, __m256i __A
, __m256i __B
) {
1138 // CHECK-LABEL: @test_mm256_mask_adds_epu8
1139 // CHECK-NOT: @llvm.x86.avx2.paddus.b
1140 // CHECK: call <32 x i8> @llvm.uadd.sat.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1141 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1142 return _mm256_mask_adds_epu8(__W
,__U
,__A
,__B
);
1144 __m256i
test_mm256_maskz_adds_epu8(__mmask32 __U
, __m256i __A
, __m256i __B
) {
1145 // CHECK-LABEL: @test_mm256_maskz_adds_epu8
1146 // CHECK-NOT: @llvm.x86.avx2.paddus.b
1147 // CHECK: call <32 x i8> @llvm.uadd.sat.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1148 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1149 return _mm256_maskz_adds_epu8(__U
,__A
,__B
);
1151 __m128i
test_mm_mask_adds_epu16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
1152 // CHECK-LABEL: @test_mm_mask_adds_epu16
1153 // CHECK-NOT: @llvm.x86.sse2.paddus.w
1154 // CHECK: call <8 x i16> @llvm.uadd.sat.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1155 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1156 return _mm_mask_adds_epu16(__W
,__U
,__A
,__B
);
1158 __m128i
test_mm_maskz_adds_epu16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
1159 // CHECK-LABEL: @test_mm_maskz_adds_epu16
1160 // CHECK-NOT: @llvm.x86.sse2.paddus.w
1161 // CHECK: call <8 x i16> @llvm.uadd.sat.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1162 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1163 return _mm_maskz_adds_epu16(__U
,__A
,__B
);
1165 __m256i
test_mm256_mask_adds_epu16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
1166 // CHECK-LABEL: @test_mm256_mask_adds_epu16
1167 // CHECK-NOT: @llvm.x86.avx2.paddus.w
1168 // CHECK: call <16 x i16> @llvm.uadd.sat.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1169 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1170 return _mm256_mask_adds_epu16(__W
,__U
,__A
,__B
);
1172 __m256i
test_mm256_maskz_adds_epu16(__mmask16 __U
, __m256i __A
, __m256i __B
) {
1173 // CHECK-LABEL: @test_mm256_maskz_adds_epu16
1174 // CHECK-NOT: @llvm.x86.avx2.paddus.w
1175 // CHECK: call <16 x i16> @llvm.uadd.sat.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1176 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1177 return _mm256_maskz_adds_epu16(__U
,__A
,__B
);
1179 __m128i
test_mm_mask_avg_epu8(__m128i __W
, __mmask16 __U
, __m128i __A
, __m128i __B
) {
1180 // CHECK-LABEL: @test_mm_mask_avg_epu8
1181 // CHECK: @llvm.x86.sse2.pavg.b
1182 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1183 return _mm_mask_avg_epu8(__W
,__U
,__A
,__B
);
1185 __m128i
test_mm_maskz_avg_epu8(__mmask16 __U
, __m128i __A
, __m128i __B
) {
1186 // CHECK-LABEL: @test_mm_maskz_avg_epu8
1187 // CHECK: @llvm.x86.sse2.pavg.b
1188 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1189 return _mm_maskz_avg_epu8(__U
,__A
,__B
);
1191 __m256i
test_mm256_mask_avg_epu8(__m256i __W
, __mmask32 __U
, __m256i __A
, __m256i __B
) {
1192 // CHECK-LABEL: @test_mm256_mask_avg_epu8
1193 // CHECK: @llvm.x86.avx2.pavg.b
1194 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1195 return _mm256_mask_avg_epu8(__W
,__U
,__A
,__B
);
1197 __m256i
test_mm256_maskz_avg_epu8(__mmask32 __U
, __m256i __A
, __m256i __B
) {
1198 // CHECK-LABEL: @test_mm256_maskz_avg_epu8
1199 // CHECK: @llvm.x86.avx2.pavg.b
1200 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1201 return _mm256_maskz_avg_epu8(__U
,__A
,__B
);
1203 __m128i
test_mm_mask_avg_epu16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
1204 // CHECK-LABEL: @test_mm_mask_avg_epu16
1205 // CHECK: @llvm.x86.sse2.pavg.w
1206 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1207 return _mm_mask_avg_epu16(__W
,__U
,__A
,__B
);
1209 __m128i
test_mm_maskz_avg_epu16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
1210 // CHECK-LABEL: @test_mm_maskz_avg_epu16
1211 // CHECK: @llvm.x86.sse2.pavg.w
1212 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1213 return _mm_maskz_avg_epu16(__U
,__A
,__B
);
1215 __m256i
test_mm256_mask_avg_epu16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
1216 // CHECK-LABEL: @test_mm256_mask_avg_epu16
1217 // CHECK: @llvm.x86.avx2.pavg.w
1218 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1219 return _mm256_mask_avg_epu16(__W
,__U
,__A
,__B
);
1221 __m256i
test_mm256_maskz_avg_epu16(__mmask16 __U
, __m256i __A
, __m256i __B
) {
1222 // CHECK-LABEL: @test_mm256_maskz_avg_epu16
1223 // CHECK: @llvm.x86.avx2.pavg.w
1224 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1225 return _mm256_maskz_avg_epu16(__U
,__A
,__B
);
1227 __m128i
test_mm_maskz_max_epi8(__mmask16 __M
, __m128i __A
, __m128i __B
) {
1228 // CHECK-LABEL: @test_mm_maskz_max_epi8
1229 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.smax.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1230 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1231 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1232 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1233 return _mm_maskz_max_epi8(__M
,__A
,__B
);
1235 __m128i
test_mm_mask_max_epi8(__m128i __W
, __mmask16 __M
, __m128i __A
, __m128i __B
) {
1236 // CHECK-LABEL: @test_mm_mask_max_epi8
1237 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.smax.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1238 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1239 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1240 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1241 return _mm_mask_max_epi8(__W
,__M
,__A
,__B
);
1243 __m256i
test_mm256_maskz_max_epi8(__mmask32 __M
, __m256i __A
, __m256i __B
) {
1244 // CHECK-LABEL: @test_mm256_maskz_max_epi8
1245 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.smax.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1246 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1247 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1248 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1249 return _mm256_maskz_max_epi8(__M
,__A
,__B
);
1251 __m256i
test_mm256_mask_max_epi8(__m256i __W
, __mmask32 __M
, __m256i __A
, __m256i __B
) {
1252 // CHECK-LABEL: @test_mm256_mask_max_epi8
1253 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.smax.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1254 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1255 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1256 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1257 return _mm256_mask_max_epi8(__W
,__M
,__A
,__B
);
1259 __m128i
test_mm_maskz_max_epi16(__mmask8 __M
, __m128i __A
, __m128i __B
) {
1260 // CHECK-LABEL: @test_mm_maskz_max_epi16
1261 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.smax.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1262 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1263 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1264 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1265 return _mm_maskz_max_epi16(__M
,__A
,__B
);
1267 __m128i
test_mm_mask_max_epi16(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
1268 // CHECK-LABEL: @test_mm_mask_max_epi16
1269 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.smax.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1270 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1271 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1272 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1273 return _mm_mask_max_epi16(__W
,__M
,__A
,__B
);
1275 __m256i
test_mm256_maskz_max_epi16(__mmask16 __M
, __m256i __A
, __m256i __B
) {
1276 // CHECK-LABEL: @test_mm256_maskz_max_epi16
1277 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.smax.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1278 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1279 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1280 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1281 return _mm256_maskz_max_epi16(__M
,__A
,__B
);
1283 __m256i
test_mm256_mask_max_epi16(__m256i __W
, __mmask16 __M
, __m256i __A
, __m256i __B
) {
1284 // CHECK-LABEL: @test_mm256_mask_max_epi16
1285 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.smax.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1286 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1287 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1288 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1289 return _mm256_mask_max_epi16(__W
,__M
,__A
,__B
);
1291 __m128i
test_mm_maskz_max_epu8(__mmask16 __M
, __m128i __A
, __m128i __B
) {
1292 // CHECK-LABEL: @test_mm_maskz_max_epu8
1293 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.umax.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1294 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1295 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1296 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1297 return _mm_maskz_max_epu8(__M
,__A
,__B
);
1299 __m128i
test_mm_mask_max_epu8(__m128i __W
, __mmask16 __M
, __m128i __A
, __m128i __B
) {
1300 // CHECK-LABEL: @test_mm_mask_max_epu8
1301 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.umax.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1302 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1303 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1304 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1305 return _mm_mask_max_epu8(__W
,__M
,__A
,__B
);
1307 __m256i
test_mm256_maskz_max_epu8(__mmask32 __M
, __m256i __A
, __m256i __B
) {
1308 // CHECK-LABEL: @test_mm256_maskz_max_epu8
1309 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.umax.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1310 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1311 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1312 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1313 return _mm256_maskz_max_epu8(__M
,__A
,__B
);
1315 __m256i
test_mm256_mask_max_epu8(__m256i __W
, __mmask32 __M
, __m256i __A
, __m256i __B
) {
1316 // CHECK-LABEL: @test_mm256_mask_max_epu8
1317 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.umax.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1318 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1319 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1320 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1321 return _mm256_mask_max_epu8(__W
,__M
,__A
,__B
);
1323 __m128i
test_mm_maskz_max_epu16(__mmask8 __M
, __m128i __A
, __m128i __B
) {
1324 // CHECK-LABEL: @test_mm_maskz_max_epu16
1325 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.umax.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1326 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1327 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1328 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1329 return _mm_maskz_max_epu16(__M
,__A
,__B
);
1331 __m128i
test_mm_mask_max_epu16(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
1332 // CHECK-LABEL: @test_mm_mask_max_epu16
1333 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.umax.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1334 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1335 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1336 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1337 return _mm_mask_max_epu16(__W
,__M
,__A
,__B
);
1339 __m256i
test_mm256_maskz_max_epu16(__mmask16 __M
, __m256i __A
, __m256i __B
) {
1340 // CHECK-LABEL: @test_mm256_maskz_max_epu16
1341 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.umax.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1342 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1343 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1344 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1345 return _mm256_maskz_max_epu16(__M
,__A
,__B
);
1347 __m256i
test_mm256_mask_max_epu16(__m256i __W
, __mmask16 __M
, __m256i __A
, __m256i __B
) {
1348 // CHECK-LABEL: @test_mm256_mask_max_epu16
1349 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.umax.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1350 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1351 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1352 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1353 return _mm256_mask_max_epu16(__W
,__M
,__A
,__B
);
1355 __m128i
test_mm_maskz_min_epi8(__mmask16 __M
, __m128i __A
, __m128i __B
) {
1356 // CHECK-LABEL: @test_mm_maskz_min_epi8
1357 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.smin.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1358 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1359 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1360 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1361 return _mm_maskz_min_epi8(__M
,__A
,__B
);
1363 __m128i
test_mm_mask_min_epi8(__m128i __W
, __mmask16 __M
, __m128i __A
, __m128i __B
) {
1364 // CHECK-LABEL: @test_mm_mask_min_epi8
1365 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.smin.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1366 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1367 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1368 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1369 return _mm_mask_min_epi8(__W
,__M
,__A
,__B
);
1371 __m256i
test_mm256_maskz_min_epi8(__mmask32 __M
, __m256i __A
, __m256i __B
) {
1372 // CHECK-LABEL: @test_mm256_maskz_min_epi8
1373 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.smin.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1374 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1375 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1376 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1377 return _mm256_maskz_min_epi8(__M
,__A
,__B
);
1379 __m256i
test_mm256_mask_min_epi8(__m256i __W
, __mmask32 __M
, __m256i __A
, __m256i __B
) {
1380 // CHECK-LABEL: @test_mm256_mask_min_epi8
1381 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.smin.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1382 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1383 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1384 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1385 return _mm256_mask_min_epi8(__W
,__M
,__A
,__B
);
1387 __m128i
test_mm_maskz_min_epi16(__mmask8 __M
, __m128i __A
, __m128i __B
) {
1388 // CHECK-LABEL: @test_mm_maskz_min_epi16
1389 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.smin.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1390 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1391 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1392 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1393 return _mm_maskz_min_epi16(__M
,__A
,__B
);
1395 __m128i
test_mm_mask_min_epi16(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
1396 // CHECK-LABEL: @test_mm_mask_min_epi16
1397 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.smin.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1398 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1399 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1400 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1401 return _mm_mask_min_epi16(__W
,__M
,__A
,__B
);
1403 __m256i
test_mm256_maskz_min_epi16(__mmask16 __M
, __m256i __A
, __m256i __B
) {
1404 // CHECK-LABEL: @test_mm256_maskz_min_epi16
1405 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.smin.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1406 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1407 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1408 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1409 return _mm256_maskz_min_epi16(__M
,__A
,__B
);
1411 __m256i
test_mm256_mask_min_epi16(__m256i __W
, __mmask16 __M
, __m256i __A
, __m256i __B
) {
1412 // CHECK-LABEL: @test_mm256_mask_min_epi16
1413 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.smin.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1414 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1415 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1416 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1417 return _mm256_mask_min_epi16(__W
,__M
,__A
,__B
);
1419 __m128i
test_mm_maskz_min_epu8(__mmask16 __M
, __m128i __A
, __m128i __B
) {
1420 // CHECK-LABEL: @test_mm_maskz_min_epu8
1421 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.umin.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1422 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1423 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1424 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1425 return _mm_maskz_min_epu8(__M
,__A
,__B
);
1427 __m128i
test_mm_mask_min_epu8(__m128i __W
, __mmask16 __M
, __m128i __A
, __m128i __B
) {
1428 // CHECK-LABEL: @test_mm_mask_min_epu8
1429 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.umin.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1430 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1431 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1432 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1433 return _mm_mask_min_epu8(__W
,__M
,__A
,__B
);
1435 __m256i
test_mm256_maskz_min_epu8(__mmask32 __M
, __m256i __A
, __m256i __B
) {
1436 // CHECK-LABEL: @test_mm256_maskz_min_epu8
1437 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.umin.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1438 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1439 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1440 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1441 return _mm256_maskz_min_epu8(__M
,__A
,__B
);
1443 __m256i
test_mm256_mask_min_epu8(__m256i __W
, __mmask32 __M
, __m256i __A
, __m256i __B
) {
1444 // CHECK-LABEL: @test_mm256_mask_min_epu8
1445 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.umin.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1446 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1447 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1448 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1449 return _mm256_mask_min_epu8(__W
,__M
,__A
,__B
);
1451 __m128i
test_mm_maskz_min_epu16(__mmask8 __M
, __m128i __A
, __m128i __B
) {
1452 // CHECK-LABEL: @test_mm_maskz_min_epu16
1453 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.umin.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1454 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1455 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1456 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1457 return _mm_maskz_min_epu16(__M
,__A
,__B
);
1459 __m128i
test_mm_mask_min_epu16(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
1460 // CHECK-LABEL: @test_mm_mask_min_epu16
1461 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.umin.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1462 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1463 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1464 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1465 return _mm_mask_min_epu16(__W
,__M
,__A
,__B
);
1467 __m256i
test_mm256_maskz_min_epu16(__mmask16 __M
, __m256i __A
, __m256i __B
) {
1468 // CHECK-LABEL: @test_mm256_maskz_min_epu16
1469 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.umin.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1470 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1471 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1472 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1473 return _mm256_maskz_min_epu16(__M
,__A
,__B
);
1475 __m256i
test_mm256_mask_min_epu16(__m256i __W
, __mmask16 __M
, __m256i __A
, __m256i __B
) {
1476 // CHECK-LABEL: @test_mm256_mask_min_epu16
1477 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.umin.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1478 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1479 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1480 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1481 return _mm256_mask_min_epu16(__W
,__M
,__A
,__B
);
1483 __m128i
test_mm_mask_shuffle_epi8(__m128i __W
, __mmask16 __U
, __m128i __A
, __m128i __B
) {
1484 // CHECK-LABEL: @test_mm_mask_shuffle_epi8
1485 // CHECK: @llvm.x86.ssse3.pshuf.b
1486 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1487 return _mm_mask_shuffle_epi8(__W
,__U
,__A
,__B
);
1489 __m128i
test_mm_maskz_shuffle_epi8(__mmask16 __U
, __m128i __A
, __m128i __B
) {
1490 // CHECK-LABEL: @test_mm_maskz_shuffle_epi8
1491 // CHECK: @llvm.x86.ssse3.pshuf.b
1492 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1493 return _mm_maskz_shuffle_epi8(__U
,__A
,__B
);
1495 __m256i
test_mm256_mask_shuffle_epi8(__m256i __W
, __mmask32 __U
, __m256i __A
, __m256i __B
) {
1496 // CHECK-LABEL: @test_mm256_mask_shuffle_epi8
1497 // CHECK: @llvm.x86.avx2.pshuf.b
1498 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1499 return _mm256_mask_shuffle_epi8(__W
,__U
,__A
,__B
);
1501 __m256i
test_mm256_maskz_shuffle_epi8(__mmask32 __U
, __m256i __A
, __m256i __B
) {
1502 // CHECK-LABEL: @test_mm256_maskz_shuffle_epi8
1503 // CHECK: @llvm.x86.avx2.pshuf.b
1504 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1505 return _mm256_maskz_shuffle_epi8(__U
,__A
,__B
);
1507 __m128i
test_mm_mask_subs_epi8(__m128i __W
, __mmask16 __U
, __m128i __A
, __m128i __B
) {
1508 // CHECK-LABEL: @test_mm_mask_subs_epi8
1509 // CHECK: @llvm.ssub.sat.v16i8
1510 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1511 return _mm_mask_subs_epi8(__W
,__U
,__A
,__B
);
1513 __m128i
test_mm_maskz_subs_epi8(__mmask16 __U
, __m128i __A
, __m128i __B
) {
1514 // CHECK-LABEL: @test_mm_maskz_subs_epi8
1515 // CHECK: @llvm.ssub.sat.v16i8
1516 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1517 return _mm_maskz_subs_epi8(__U
,__A
,__B
);
1519 __m256i
test_mm256_mask_subs_epi8(__m256i __W
, __mmask32 __U
, __m256i __A
, __m256i __B
) {
1520 // CHECK-LABEL: @test_mm256_mask_subs_epi8
1521 // CHECK: @llvm.ssub.sat.v32i8
1522 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1523 return _mm256_mask_subs_epi8(__W
,__U
,__A
,__B
);
1525 __m256i
test_mm256_maskz_subs_epi8(__mmask32 __U
, __m256i __A
, __m256i __B
) {
1526 // CHECK-LABEL: @test_mm256_maskz_subs_epi8
1527 // CHECK: @llvm.ssub.sat.v32i8
1528 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1529 return _mm256_maskz_subs_epi8(__U
,__A
,__B
);
1531 __m128i
test_mm_mask_subs_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
1532 // CHECK-LABEL: @test_mm_mask_subs_epi16
1533 // CHECK: @llvm.ssub.sat.v8i16
1534 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1535 return _mm_mask_subs_epi16(__W
,__U
,__A
,__B
);
1537 __m128i
test_mm_maskz_subs_epi16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
1538 // CHECK-LABEL: @test_mm_maskz_subs_epi16
1539 // CHECK: @llvm.ssub.sat.v8i16
1540 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1541 return _mm_maskz_subs_epi16(__U
,__A
,__B
);
1543 __m256i
test_mm256_mask_subs_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
1544 // CHECK-LABEL: @test_mm256_mask_subs_epi16
1545 // CHECK: @llvm.ssub.sat.v16i16
1546 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1547 return _mm256_mask_subs_epi16(__W
,__U
,__A
,__B
);
1549 __m256i
test_mm256_maskz_subs_epi16(__mmask16 __U
, __m256i __A
, __m256i __B
) {
1550 // CHECK-LABEL: @test_mm256_maskz_subs_epi16
1551 // CHECK: @llvm.ssub.sat.v16i16
1552 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1553 return _mm256_maskz_subs_epi16(__U
,__A
,__B
);
1555 __m128i
test_mm_mask_subs_epu8(__m128i __W
, __mmask16 __U
, __m128i __A
, __m128i __B
) {
1556 // CHECK-LABEL: @test_mm_mask_subs_epu8
1557 // CHECK-NOT: @llvm.x86.sse2.psubus.b
1558 // CHECK: call <16 x i8> @llvm.usub.sat.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1559 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1560 return _mm_mask_subs_epu8(__W
,__U
,__A
,__B
);
1562 __m128i
test_mm_maskz_subs_epu8(__mmask16 __U
, __m128i __A
, __m128i __B
) {
1563 // CHECK-LABEL: @test_mm_maskz_subs_epu8
1564 // CHECK-NOT: @llvm.x86.sse2.psubus.b
1565 // CHECK: call <16 x i8> @llvm.usub.sat.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1566 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1567 return _mm_maskz_subs_epu8(__U
,__A
,__B
);
1569 __m256i
test_mm256_mask_subs_epu8(__m256i __W
, __mmask32 __U
, __m256i __A
, __m256i __B
) {
1570 // CHECK-LABEL: @test_mm256_mask_subs_epu8
1571 // CHECK-NOT: @llvm.x86.avx2.psubus.b
1572 // CHECK: call <32 x i8> @llvm.usub.sat.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1573 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1574 return _mm256_mask_subs_epu8(__W
,__U
,__A
,__B
);
1576 __m256i
test_mm256_maskz_subs_epu8(__mmask32 __U
, __m256i __A
, __m256i __B
) {
1577 // CHECK-LABEL: @test_mm256_maskz_subs_epu8
1578 // CHECK-NOT: @llvm.x86.avx2.psubus.b
1579 // CHECK: call <32 x i8> @llvm.usub.sat.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1580 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1581 return _mm256_maskz_subs_epu8(__U
,__A
,__B
);
1583 __m128i
test_mm_mask_subs_epu16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
1584 // CHECK-LABEL: @test_mm_mask_subs_epu16
1585 // CHECK-NOT: @llvm.x86.sse2.psubus.w
1586 // CHECK: call <8 x i16> @llvm.usub.sat.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1587 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1588 return _mm_mask_subs_epu16(__W
,__U
,__A
,__B
);
1590 __m128i
test_mm_maskz_subs_epu16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
1591 // CHECK-LABEL: @test_mm_maskz_subs_epu16
1592 // CHECK-NOT: @llvm.x86.sse2.psubus.w
1593 // CHECK: call <8 x i16> @llvm.usub.sat.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1594 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1595 return _mm_maskz_subs_epu16(__U
,__A
,__B
);
1597 __m256i
test_mm256_mask_subs_epu16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
1598 // CHECK-LABEL: @test_mm256_mask_subs_epu16
1599 // CHECK-NOT: @llvm.x86.avx2.psubus.w
1600 // CHECK: call <16 x i16> @llvm.usub.sat.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1601 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1602 return _mm256_mask_subs_epu16(__W
,__U
,__A
,__B
);
1604 __m256i
test_mm256_maskz_subs_epu16(__mmask16 __U
, __m256i __A
, __m256i __B
) {
1605 // CHECK-LABEL: @test_mm256_maskz_subs_epu16
1606 // CHECK-NOT: @llvm.x86.avx2.psubus.w
1607 // CHECK: call <16 x i16> @llvm.usub.sat.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1608 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1609 return _mm256_maskz_subs_epu16(__U
,__A
,__B
);
1613 __m128i
test_mm_mask2_permutex2var_epi16(__m128i __A
, __m128i __I
, __mmask8 __U
, __m128i __B
) {
1614 // CHECK-LABEL: @test_mm_mask2_permutex2var_epi16
1615 // CHECK: @llvm.x86.avx512.vpermi2var.hi.128
1616 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1617 return _mm_mask2_permutex2var_epi16(__A
,__I
,__U
,__B
);
1619 __m256i
test_mm256_mask2_permutex2var_epi16(__m256i __A
, __m256i __I
, __mmask16 __U
, __m256i __B
) {
1620 // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi16
1621 // CHECK: @llvm.x86.avx512.vpermi2var.hi.256
1622 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1623 return _mm256_mask2_permutex2var_epi16(__A
,__I
,__U
,__B
);
1625 __m128i
test_mm_permutex2var_epi16(__m128i __A
, __m128i __I
, __m128i __B
) {
1626 // CHECK-LABEL: @test_mm_permutex2var_epi16
1627 // CHECK: @llvm.x86.avx512.vpermi2var.hi.128
1628 return _mm_permutex2var_epi16(__A
,__I
,__B
);
1630 __m128i
test_mm_mask_permutex2var_epi16(__m128i __A
, __mmask8 __U
, __m128i __I
, __m128i __B
) {
1631 // CHECK-LABEL: @test_mm_mask_permutex2var_epi16
1632 // CHECK: @llvm.x86.avx512.vpermi2var.hi.128
1633 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1634 return _mm_mask_permutex2var_epi16(__A
,__U
,__I
,__B
);
1636 __m128i
test_mm_maskz_permutex2var_epi16(__mmask8 __U
, __m128i __A
, __m128i __I
, __m128i __B
) {
1637 // CHECK-LABEL: @test_mm_maskz_permutex2var_epi16
1638 // CHECK: @llvm.x86.avx512.vpermi2var.hi.128
1639 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1640 return _mm_maskz_permutex2var_epi16(__U
,__A
,__I
,__B
);
1643 __m256i
test_mm256_permutex2var_epi16(__m256i __A
, __m256i __I
, __m256i __B
) {
1644 // CHECK-LABEL: @test_mm256_permutex2var_epi16
1645 // CHECK: @llvm.x86.avx512.vpermi2var.hi.256
1646 return _mm256_permutex2var_epi16(__A
,__I
,__B
);
1648 __m256i
test_mm256_mask_permutex2var_epi16(__m256i __A
, __mmask16 __U
, __m256i __I
, __m256i __B
) {
1649 // CHECK-LABEL: @test_mm256_mask_permutex2var_epi16
1650 // CHECK: @llvm.x86.avx512.vpermi2var.hi.256
1651 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1652 return _mm256_mask_permutex2var_epi16(__A
,__U
,__I
,__B
);
1654 __m256i
test_mm256_maskz_permutex2var_epi16(__mmask16 __U
, __m256i __A
, __m256i __I
, __m256i __B
) {
1655 // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi16
1656 // CHECK: @llvm.x86.avx512.vpermi2var.hi.256
1657 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1658 return _mm256_maskz_permutex2var_epi16(__U
,__A
,__I
,__B
);
1660 __m128i
test_mm_mask_maddubs_epi16(__m128i __W
, __mmask8 __U
, __m128i __X
, __m128i __Y
) {
1661 // CHECK-LABEL: @test_mm_mask_maddubs_epi16
1662 // CHECK: @llvm.x86.ssse3.pmadd.ub.sw
1663 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1664 return _mm_mask_maddubs_epi16(__W
, __U
, __X
, __Y
);
1667 __m128i
test_mm_maskz_maddubs_epi16(__mmask8 __U
, __m128i __X
, __m128i __Y
) {
1668 // CHECK-LABEL: @test_mm_maskz_maddubs_epi16
1669 // CHECK: @llvm.x86.ssse3.pmadd.ub.sw
1670 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1671 return _mm_maskz_maddubs_epi16(__U
, __X
, __Y
);
1674 __m256i
test_mm256_mask_maddubs_epi16(__m256i __W
, __mmask16 __U
, __m256i __X
, __m256i __Y
) {
1675 // CHECK-LABEL: @test_mm256_mask_maddubs_epi16
1676 // CHECK: @llvm.x86.avx2.pmadd.ub.sw
1677 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1678 return _mm256_mask_maddubs_epi16(__W
, __U
, __X
, __Y
);
1681 __m256i
test_mm256_maskz_maddubs_epi16(__mmask16 __U
, __m256i __X
, __m256i __Y
) {
1682 // CHECK-LABEL: @test_mm256_maskz_maddubs_epi16
1683 // CHECK: @llvm.x86.avx2.pmadd.ub.sw
1684 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1685 return _mm256_maskz_maddubs_epi16(__U
, __X
, __Y
);
1688 __m128i
test_mm_mask_madd_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
1689 // CHECK-LABEL: @test_mm_mask_madd_epi16
1690 // CHECK: @llvm.x86.sse2.pmadd.wd
1691 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
1692 return _mm_mask_madd_epi16(__W
, __U
, __A
, __B
);
1695 __m128i
test_mm_maskz_madd_epi16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
1696 // CHECK-LABEL: @test_mm_maskz_madd_epi16
1697 // CHECK: @llvm.x86.sse2.pmadd.wd
1698 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
1699 return _mm_maskz_madd_epi16(__U
, __A
, __B
);
1702 __m256i
test_mm256_mask_madd_epi16(__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
1703 // CHECK-LABEL: @test_mm256_mask_madd_epi16
1704 // CHECK: @llvm.x86.avx2.pmadd.wd
1705 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
1706 return _mm256_mask_madd_epi16(__W
, __U
, __A
, __B
);
1709 __m256i
test_mm256_maskz_madd_epi16(__mmask8 __U
, __m256i __A
, __m256i __B
) {
1710 // CHECK-LABEL: @test_mm256_maskz_madd_epi16
1711 // CHECK: @llvm.x86.avx2.pmadd.wd
1712 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
1713 return _mm256_maskz_madd_epi16(__U
, __A
, __B
);
1716 __m128i
test_mm_cvtsepi16_epi8(__m128i __A
) {
1717 // CHECK-LABEL: @test_mm_cvtsepi16_epi8
1718 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
1719 return _mm_cvtsepi16_epi8(__A
);
1722 __m128i
test_mm_mask_cvtsepi16_epi8(__m128i __O
, __mmask8 __M
, __m128i __A
) {
1723 // CHECK-LABEL: @test_mm_mask_cvtsepi16_epi8
1724 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
1725 return _mm_mask_cvtsepi16_epi8(__O
, __M
, __A
);
1728 __m128i
test_mm_maskz_cvtsepi16_epi8(__mmask8 __M
, __m128i __A
) {
1729 // CHECK-LABEL: @test_mm_maskz_cvtsepi16_epi8
1730 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
1731 return _mm_maskz_cvtsepi16_epi8(__M
, __A
);
1734 __m128i
test_mm256_cvtsepi16_epi8(__m256i __A
) {
1735 // CHECK-LABEL: @test_mm256_cvtsepi16_epi8
1736 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
1737 return _mm256_cvtsepi16_epi8(__A
);
1740 __m128i
test_mm256_mask_cvtsepi16_epi8(__m128i __O
, __mmask16 __M
, __m256i __A
) {
1741 // CHECK-LABEL: @test_mm256_mask_cvtsepi16_epi8
1742 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
1743 return _mm256_mask_cvtsepi16_epi8(__O
, __M
, __A
);
1746 __m128i
test_mm256_maskz_cvtsepi16_epi8(__mmask16 __M
, __m256i __A
) {
1747 // CHECK-LABEL: @test_mm256_maskz_cvtsepi16_epi8
1748 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
1749 return _mm256_maskz_cvtsepi16_epi8(__M
, __A
);
1752 __m128i
test_mm_cvtusepi16_epi8(__m128i __A
) {
1753 // CHECK-LABEL: @test_mm_cvtusepi16_epi8
1754 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
1755 return _mm_cvtusepi16_epi8(__A
);
1758 __m128i
test_mm_mask_cvtusepi16_epi8(__m128i __O
, __mmask8 __M
, __m128i __A
) {
1759 // CHECK-LABEL: @test_mm_mask_cvtusepi16_epi8
1760 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
1761 return _mm_mask_cvtusepi16_epi8(__O
, __M
, __A
);
1764 __m128i
test_mm_maskz_cvtusepi16_epi8(__mmask8 __M
, __m128i __A
) {
1765 // CHECK-LABEL: @test_mm_maskz_cvtusepi16_epi8
1766 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
1767 return _mm_maskz_cvtusepi16_epi8(__M
, __A
);
1770 __m128i
test_mm256_cvtusepi16_epi8(__m256i __A
) {
1771 // CHECK-LABEL: @test_mm256_cvtusepi16_epi8
1772 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
1773 return _mm256_cvtusepi16_epi8(__A
);
1776 __m128i
test_mm256_mask_cvtusepi16_epi8(__m128i __O
, __mmask16 __M
, __m256i __A
) {
1777 // CHECK-LABEL: @test_mm256_mask_cvtusepi16_epi8
1778 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
1779 return _mm256_mask_cvtusepi16_epi8(__O
, __M
, __A
);
1782 __m128i
test_mm256_maskz_cvtusepi16_epi8(__mmask16 __M
, __m256i __A
) {
1783 // CHECK-LABEL: @test_mm256_maskz_cvtusepi16_epi8
1784 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
1785 return _mm256_maskz_cvtusepi16_epi8(__M
, __A
);
1788 __m128i
test_mm_cvtepi16_epi8(__m128i __A
) {
1789 // CHECK-LABEL: @test_mm_cvtepi16_epi8
1790 // CHECK: trunc <8 x i16> %{{.*}} to <8 x i8>
1791 // CHECK: shufflevector <8 x i8> %{{.*}}, <8 x i8> %{{.*}}, <16 x i32> <i32 0, i32 1, 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>
1792 return _mm_cvtepi16_epi8(__A
);
1795 __m128i
test_mm_mask_cvtepi16_epi8(__m128i __O
, __mmask8 __M
, __m128i __A
) {
1796 // CHECK-LABEL: @test_mm_mask_cvtepi16_epi8
1797 // CHECK: @llvm.x86.avx512.mask.pmov.wb.128
1798 return _mm_mask_cvtepi16_epi8(__O
, __M
, __A
);
1801 __m128i
test_mm_maskz_cvtepi16_epi8(__mmask8 __M
, __m128i __A
) {
1802 // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi8
1803 // CHECK: @llvm.x86.avx512.mask.pmov.wb.128
1804 return _mm_maskz_cvtepi16_epi8(__M
, __A
);
1807 __m128i
test_mm256_cvtepi16_epi8(__m256i __A
) {
1808 // CHECK-LABEL: @test_mm256_cvtepi16_epi8
1809 // CHECK: trunc <16 x i16> %{{.*}} to <16 x i8>
1810 return _mm256_cvtepi16_epi8(__A
);
1813 __m128i
test_mm256_mask_cvtepi16_epi8(__m128i __O
, __mmask16 __M
, __m256i __A
) {
1814 // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi8
1815 // CHECK: trunc <16 x i16> %{{.*}} to <16 x i8>
1816 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1817 return _mm256_mask_cvtepi16_epi8(__O
, __M
, __A
);
1820 __m128i
test_mm256_maskz_cvtepi16_epi8(__mmask16 __M
, __m256i __A
) {
1821 // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi8
1822 // CHECK: trunc <16 x i16> %{{.*}} to <16 x i8>
1823 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1824 return _mm256_maskz_cvtepi16_epi8(__M
, __A
);
1827 __m128i
test_mm_mask_mulhrs_epi16(__m128i __W
, __mmask8 __U
, __m128i __X
, __m128i __Y
) {
1828 // CHECK-LABEL: @test_mm_mask_mulhrs_epi16
1829 // CHECK: @llvm.x86.ssse3.pmul.hr.sw
1830 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1831 return _mm_mask_mulhrs_epi16(__W
, __U
, __X
, __Y
);
1834 __m128i
test_mm_maskz_mulhrs_epi16(__mmask8 __U
, __m128i __X
, __m128i __Y
) {
1835 // CHECK-LABEL: @test_mm_maskz_mulhrs_epi16
1836 // CHECK: @llvm.x86.ssse3.pmul.hr.sw
1837 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1838 return _mm_maskz_mulhrs_epi16(__U
, __X
, __Y
);
1841 __m256i
test_mm256_mask_mulhrs_epi16(__m256i __W
, __mmask16 __U
, __m256i __X
, __m256i __Y
) {
1842 // CHECK-LABEL: @test_mm256_mask_mulhrs_epi16
1843 // CHECK: @llvm.x86.avx2.pmul.hr.sw
1844 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1845 return _mm256_mask_mulhrs_epi16(__W
, __U
, __X
, __Y
);
1848 __m256i
test_mm256_maskz_mulhrs_epi16(__mmask16 __U
, __m256i __X
, __m256i __Y
) {
1849 // CHECK-LABEL: @test_mm256_maskz_mulhrs_epi16
1850 // CHECK: @llvm.x86.avx2.pmul.hr.sw
1851 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1852 return _mm256_maskz_mulhrs_epi16(__U
, __X
, __Y
);
1855 __m128i
test_mm_mask_mulhi_epu16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
1856 // CHECK-LABEL: @test_mm_mask_mulhi_epu16
1857 // CHECK: @llvm.x86.sse2.pmulhu.w
1858 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1859 return _mm_mask_mulhi_epu16(__W
, __U
, __A
, __B
);
1862 __m128i
test_mm_maskz_mulhi_epu16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
1863 // CHECK-LABEL: @test_mm_maskz_mulhi_epu16
1864 // CHECK: @llvm.x86.sse2.pmulhu.w
1865 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1866 return _mm_maskz_mulhi_epu16(__U
, __A
, __B
);
1869 __m256i
test_mm256_mask_mulhi_epu16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
1870 // CHECK-LABEL: @test_mm256_mask_mulhi_epu16
1871 // CHECK: @llvm.x86.avx2.pmulhu.w
1872 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1873 return _mm256_mask_mulhi_epu16(__W
, __U
, __A
, __B
);
1876 __m256i
test_mm256_maskz_mulhi_epu16(__mmask16 __U
, __m256i __A
, __m256i __B
) {
1877 // CHECK-LABEL: @test_mm256_maskz_mulhi_epu16
1878 // CHECK: @llvm.x86.avx2.pmulhu.w
1879 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1880 return _mm256_maskz_mulhi_epu16(__U
, __A
, __B
);
1883 __m128i
test_mm_mask_mulhi_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
1884 // CHECK-LABEL: @test_mm_mask_mulhi_epi16
1885 // CHECK: @llvm.x86.sse2.pmulh.w
1886 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1887 return _mm_mask_mulhi_epi16(__W
, __U
, __A
, __B
);
1890 __m128i
test_mm_maskz_mulhi_epi16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
1891 // CHECK-LABEL: @test_mm_maskz_mulhi_epi16
1892 // CHECK: @llvm.x86.sse2.pmulh.w
1893 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1894 return _mm_maskz_mulhi_epi16(__U
, __A
, __B
);
1897 __m256i
test_mm256_mask_mulhi_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
1898 // CHECK-LABEL: @test_mm256_mask_mulhi_epi16
1899 // CHECK: @llvm.x86.avx2.pmulh.w
1900 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1901 return _mm256_mask_mulhi_epi16(__W
, __U
, __A
, __B
);
1904 __m256i
test_mm256_maskz_mulhi_epi16(__mmask16 __U
, __m256i __A
, __m256i __B
) {
1905 // CHECK-LABEL: @test_mm256_maskz_mulhi_epi16
1906 // CHECK: @llvm.x86.avx2.pmulh.w
1907 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1908 return _mm256_maskz_mulhi_epi16(__U
, __A
, __B
);
1911 __m128i
test_mm_mask_unpackhi_epi8(__m128i __W
, __mmask16 __U
, __m128i __A
, __m128i __B
) {
1912 // CHECK-LABEL: @test_mm_mask_unpackhi_epi8
1913 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31>
1914 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1915 return _mm_mask_unpackhi_epi8(__W
, __U
, __A
, __B
);
1918 __m128i
test_mm_maskz_unpackhi_epi8(__mmask16 __U
, __m128i __A
, __m128i __B
) {
1919 // CHECK-LABEL: @test_mm_maskz_unpackhi_epi8
1920 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31>
1921 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1922 return _mm_maskz_unpackhi_epi8(__U
, __A
, __B
);
1925 __m256i
test_mm256_mask_unpackhi_epi8(__m256i __W
, __mmask32 __U
, __m256i __A
, __m256i __B
) {
1926 // CHECK-LABEL: @test_mm256_mask_unpackhi_epi8
1927 // CHECK: shufflevector <32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 x i32> <i32 8, i32 40, i32 9, i32 41, i32 10, i32 42, i32 11, i32 43, i32 12, i32 44, i32 13, i32 45, i32 14, i32 46, i32 15, i32 47, i32 24, i32 56, i32 25, i32 57, i32 26, i32 58, i32 27, i32 59, i32 28, i32 60, i32 29, i32 61, i32 30, i32 62, i32 31, i32 63>
1928 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1929 return _mm256_mask_unpackhi_epi8(__W
, __U
, __A
, __B
);
1932 __m256i
test_mm256_maskz_unpackhi_epi8(__mmask32 __U
, __m256i __A
, __m256i __B
) {
1933 // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi8
1934 // CHECK: shufflevector <32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 x i32> <i32 8, i32 40, i32 9, i32 41, i32 10, i32 42, i32 11, i32 43, i32 12, i32 44, i32 13, i32 45, i32 14, i32 46, i32 15, i32 47, i32 24, i32 56, i32 25, i32 57, i32 26, i32 58, i32 27, i32 59, i32 28, i32 60, i32 29, i32 61, i32 30, i32 62, i32 31, i32 63>
1935 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1936 return _mm256_maskz_unpackhi_epi8(__U
, __A
, __B
);
1939 __m128i
test_mm_mask_unpackhi_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
1940 // CHECK-LABEL: @test_mm_mask_unpackhi_epi16
1941 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
1942 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1943 return _mm_mask_unpackhi_epi16(__W
, __U
, __A
, __B
);
1946 __m128i
test_mm_maskz_unpackhi_epi16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
1947 // CHECK-LABEL: @test_mm_maskz_unpackhi_epi16
1948 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
1949 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1950 return _mm_maskz_unpackhi_epi16(__U
, __A
, __B
);
1953 __m256i
test_mm256_mask_unpackhi_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
1954 // CHECK-LABEL: @test_mm256_mask_unpackhi_epi16
1955 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i32> <i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31>
1956 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1957 return _mm256_mask_unpackhi_epi16(__W
, __U
, __A
, __B
);
1960 __m256i
test_mm256_maskz_unpackhi_epi16(__mmask16 __U
, __m256i __A
, __m256i __B
) {
1961 // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi16
1962 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i32> <i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31>
1963 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1964 return _mm256_maskz_unpackhi_epi16(__U
, __A
, __B
);
1967 __m128i
test_mm_mask_unpacklo_epi8(__m128i __W
, __mmask16 __U
, __m128i __A
, __m128i __B
) {
1968 // CHECK-LABEL: @test_mm_mask_unpacklo_epi8
1969 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23>
1970 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1971 return _mm_mask_unpacklo_epi8(__W
, __U
, __A
, __B
);
1974 __m128i
test_mm_maskz_unpacklo_epi8(__mmask16 __U
, __m128i __A
, __m128i __B
) {
1975 // CHECK-LABEL: @test_mm_maskz_unpacklo_epi8
1976 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23>
1977 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1978 return _mm_maskz_unpacklo_epi8(__U
, __A
, __B
);
1981 __m256i
test_mm256_mask_unpacklo_epi8(__m256i __W
, __mmask32 __U
, __m256i __A
, __m256i __B
) {
1982 // CHECK-LABEL: @test_mm256_mask_unpacklo_epi8
1983 // CHECK: shufflevector <32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55>
1984 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1985 return _mm256_mask_unpacklo_epi8(__W
, __U
, __A
, __B
);
1988 __m256i
test_mm256_maskz_unpacklo_epi8(__mmask32 __U
, __m256i __A
, __m256i __B
) {
1989 // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi8
1990 // CHECK: shufflevector <32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55>
1991 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1992 return _mm256_maskz_unpacklo_epi8(__U
, __A
, __B
);
1995 __m128i
test_mm_mask_unpacklo_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
1996 // CHECK-LABEL: @test_mm_mask_unpacklo_epi16
1997 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11>
1998 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1999 return _mm_mask_unpacklo_epi16(__W
, __U
, __A
, __B
);
2002 __m128i
test_mm_maskz_unpacklo_epi16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
2003 // CHECK-LABEL: @test_mm_maskz_unpacklo_epi16
2004 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11>
2005 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2006 return _mm_maskz_unpacklo_epi16(__U
, __A
, __B
);
2009 __m256i
test_mm256_mask_unpacklo_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
2010 // CHECK-LABEL: @test_mm256_mask_unpacklo_epi16
2011 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27>
2012 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2013 return _mm256_mask_unpacklo_epi16(__W
, __U
, __A
, __B
);
2016 __m256i
test_mm256_maskz_unpacklo_epi16(__mmask16 __U
, __m256i __A
, __m256i __B
) {
2017 // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi16
2018 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27>
2019 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2020 return _mm256_maskz_unpacklo_epi16(__U
, __A
, __B
);
2023 __m128i
test_mm_mask_cvtepi8_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
) {
2024 // CHECK-LABEL: @test_mm_mask_cvtepi8_epi16
2025 // CHECK: sext <8 x i8> %{{.*}} to <8 x i16>
2026 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2027 return _mm_mask_cvtepi8_epi16(__W
, __U
, __A
);
2030 __m128i
test_mm_maskz_cvtepi8_epi16(__mmask8 __U
, __m128i __A
) {
2031 // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi16
2032 // CHECK: sext <8 x i8> %{{.*}} to <8 x i16>
2033 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2034 return _mm_maskz_cvtepi8_epi16(__U
, __A
);
2037 __m256i
test_mm256_mask_cvtepi8_epi16(__m256i __W
, __mmask16 __U
, __m128i __A
) {
2038 // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi16
2039 // CHECK: sext <16 x i8> %{{.*}} to <16 x i16>
2040 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2041 return _mm256_mask_cvtepi8_epi16(__W
, __U
, __A
);
2044 __m256i
test_mm256_maskz_cvtepi8_epi16(__mmask16 __U
, __m128i __A
) {
2045 // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi16
2046 // CHECK: sext <16 x i8> %{{.*}} to <16 x i16>
2047 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2048 return _mm256_maskz_cvtepi8_epi16(__U
, __A
);
2051 __m128i
test_mm_mask_cvtepu8_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
) {
2052 // CHECK-LABEL: @test_mm_mask_cvtepu8_epi16
2053 // CHECK: zext <8 x i8> %{{.*}} to <8 x i16>
2054 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2055 return _mm_mask_cvtepu8_epi16(__W
, __U
, __A
);
2058 __m128i
test_mm_maskz_cvtepu8_epi16(__mmask8 __U
, __m128i __A
) {
2059 // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi16
2060 // CHECK: zext <8 x i8> %{{.*}} to <8 x i16>
2061 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2062 return _mm_maskz_cvtepu8_epi16(__U
, __A
);
2065 __m256i
test_mm256_mask_cvtepu8_epi16(__m256i __W
, __mmask16 __U
, __m128i __A
) {
2066 // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi16
2067 // CHECK: zext <16 x i8> %{{.*}} to <16 x i16>
2068 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2069 return _mm256_mask_cvtepu8_epi16(__W
, __U
, __A
);
2072 __m256i
test_mm256_maskz_cvtepu8_epi16(__mmask16 __U
, __m128i __A
) {
2073 // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi16
2074 // CHECK: zext <16 x i8> %{{.*}} to <16 x i16>
2075 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2076 return _mm256_maskz_cvtepu8_epi16(__U
, __A
);
2079 __m256i
test_mm256_sllv_epi16(__m256i __A
, __m256i __B
) {
2080 // CHECK-LABEL: @test_mm256_sllv_epi16
2081 // CHECK: @llvm.x86.avx512.psllv.w.256(
2082 return _mm256_sllv_epi16(__A
, __B
);
2085 __m256i
test_mm256_mask_sllv_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
2086 // CHECK-LABEL: @test_mm256_mask_sllv_epi16
2087 // CHECK: @llvm.x86.avx512.psllv.w.256(
2088 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2089 return _mm256_mask_sllv_epi16(__W
, __U
, __A
, __B
);
2092 __m256i
test_mm256_maskz_sllv_epi16(__mmask16 __U
, __m256i __A
, __m256i __B
) {
2093 // CHECK-LABEL: @test_mm256_maskz_sllv_epi16
2094 // CHECK: @llvm.x86.avx512.psllv.w.256(
2095 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2096 return _mm256_maskz_sllv_epi16(__U
, __A
, __B
);
2099 __m128i
test_mm_sllv_epi16(__m128i __A
, __m128i __B
) {
2100 // CHECK-LABEL: @test_mm_sllv_epi16
2101 // CHECK: @llvm.x86.avx512.psllv.w.128(
2102 return _mm_sllv_epi16(__A
, __B
);
2105 __m128i
test_mm_mask_sllv_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
2106 // CHECK-LABEL: @test_mm_mask_sllv_epi16
2107 // CHECK: @llvm.x86.avx512.psllv.w.128(
2108 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2109 return _mm_mask_sllv_epi16(__W
, __U
, __A
, __B
);
2112 __m128i
test_mm_maskz_sllv_epi16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
2113 // CHECK-LABEL: @test_mm_maskz_sllv_epi16
2114 // CHECK: @llvm.x86.avx512.psllv.w.128(
2115 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2116 return _mm_maskz_sllv_epi16(__U
, __A
, __B
);
2119 __m128i
test_mm_mask_sll_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
2120 // CHECK-LABEL: @test_mm_mask_sll_epi16
2121 // CHECK: @llvm.x86.sse2.psll.w
2122 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2123 return _mm_mask_sll_epi16(__W
, __U
, __A
, __B
);
2126 __m128i
test_mm_maskz_sll_epi16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
2127 // CHECK-LABEL: @test_mm_maskz_sll_epi16
2128 // CHECK: @llvm.x86.sse2.psll.w
2129 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2130 return _mm_maskz_sll_epi16(__U
, __A
, __B
);
2133 __m256i
test_mm256_mask_sll_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m128i __B
) {
2134 // CHECK-LABEL: @test_mm256_mask_sll_epi16
2135 // CHECK: @llvm.x86.avx2.psll.w
2136 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2137 return _mm256_mask_sll_epi16(__W
, __U
, __A
, __B
);
2140 __m256i
test_mm256_maskz_sll_epi16(__mmask16 __U
, __m256i __A
, __m128i __B
) {
2141 // CHECK-LABEL: @test_mm256_maskz_sll_epi16
2142 // CHECK: @llvm.x86.avx2.psll.w
2143 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2144 return _mm256_maskz_sll_epi16(__U
, __A
, __B
);
2147 __m128i
test_mm_mask_slli_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
) {
2148 // CHECK-LABEL: @test_mm_mask_slli_epi16
2149 // CHECK: @llvm.x86.sse2.pslli.w
2150 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2151 return _mm_mask_slli_epi16(__W
, __U
, __A
, 5);
2154 __m128i
test_mm_mask_slli_epi16_2(__m128i __W
, __mmask8 __U
, __m128i __A
, unsigned int __B
) {
2155 // CHECK-LABEL: @test_mm_mask_slli_epi16_2
2156 // CHECK: @llvm.x86.sse2.pslli.w
2157 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2158 return _mm_mask_slli_epi16(__W
, __U
, __A
, __B
);
2161 __m128i
test_mm_maskz_slli_epi16(__mmask8 __U
, __m128i __A
) {
2162 // CHECK-LABEL: @test_mm_maskz_slli_epi16
2163 // CHECK: @llvm.x86.sse2.pslli.w
2164 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2165 return _mm_maskz_slli_epi16(__U
, __A
, 5);
2168 __m128i
test_mm_maskz_slli_epi16_2(__mmask8 __U
, __m128i __A
, unsigned int __B
) {
2169 // CHECK-LABEL: @test_mm_maskz_slli_epi16_2
2170 // CHECK: @llvm.x86.sse2.pslli.w
2171 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2172 return _mm_maskz_slli_epi16(__U
, __A
, __B
);
2175 __m256i
test_mm256_mask_slli_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
) {
2176 // CHECK-LABEL: @test_mm256_mask_slli_epi16
2177 // CHECK: @llvm.x86.avx2.pslli.w
2178 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2179 return _mm256_mask_slli_epi16(__W
, __U
, __A
, 5);
2182 __m256i
test_mm256_mask_slli_epi16_2(__m256i __W
, __mmask16 __U
, __m256i __A
, unsigned int __B
) {
2183 // CHECK-LABEL: @test_mm256_mask_slli_epi16_2
2184 // CHECK: @llvm.x86.avx2.pslli.w
2185 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2186 return _mm256_mask_slli_epi16(__W
, __U
, __A
, __B
);
2189 __m256i
test_mm256_maskz_slli_epi16(__mmask16 __U
, __m256i __A
) {
2190 // CHECK-LABEL: @test_mm256_maskz_slli_epi16
2191 // CHECK: @llvm.x86.avx2.pslli.w
2192 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2193 return _mm256_maskz_slli_epi16(__U
, __A
, 5);
2196 __m256i
test_mm256_maskz_slli_epi16_2(__mmask16 __U
, __m256i __A
, unsigned int __B
) {
2197 // CHECK-LABEL: @test_mm256_maskz_slli_epi16_2
2198 // CHECK: @llvm.x86.avx2.pslli.w
2199 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2200 return _mm256_maskz_slli_epi16(__U
, __A
, __B
);
2203 __m256i
test_mm256_srlv_epi16(__m256i __A
, __m256i __B
) {
2204 // CHECK-LABEL: @test_mm256_srlv_epi16
2205 // CHECK: @llvm.x86.avx512.psrlv.w.256(
2206 return _mm256_srlv_epi16(__A
, __B
);
2209 __m256i
test_mm256_mask_srlv_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
2210 // CHECK-LABEL: @test_mm256_mask_srlv_epi16
2211 // CHECK: @llvm.x86.avx512.psrlv.w.256(
2212 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2213 return _mm256_mask_srlv_epi16(__W
, __U
, __A
, __B
);
2216 __m256i
test_mm256_maskz_srlv_epi16(__mmask16 __U
, __m256i __A
, __m256i __B
) {
2217 // CHECK-LABEL: @test_mm256_maskz_srlv_epi16
2218 // CHECK: @llvm.x86.avx512.psrlv.w.256(
2219 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2220 return _mm256_maskz_srlv_epi16(__U
, __A
, __B
);
2223 __m128i
test_mm_srlv_epi16(__m128i __A
, __m128i __B
) {
2224 // CHECK-LABEL: @test_mm_srlv_epi16
2225 // CHECK: @llvm.x86.avx512.psrlv.w.128(
2226 return _mm_srlv_epi16(__A
, __B
);
2229 __m128i
test_mm_mask_srlv_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
2230 // CHECK-LABEL: @test_mm_mask_srlv_epi16
2231 // CHECK: @llvm.x86.avx512.psrlv.w.128(
2232 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2233 return _mm_mask_srlv_epi16(__W
, __U
, __A
, __B
);
2236 __m128i
test_mm_maskz_srlv_epi16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
2237 // CHECK-LABEL: @test_mm_maskz_srlv_epi16
2238 // CHECK: @llvm.x86.avx512.psrlv.w.128(
2239 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2240 return _mm_maskz_srlv_epi16(__U
, __A
, __B
);
2243 __m128i
test_mm_mask_srl_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
2244 // CHECK-LABEL: @test_mm_mask_srl_epi16
2245 // CHECK: @llvm.x86.sse2.psrl.w
2246 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2247 return _mm_mask_srl_epi16(__W
, __U
, __A
, __B
);
2250 __m128i
test_mm_maskz_srl_epi16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
2251 // CHECK-LABEL: @test_mm_maskz_srl_epi16
2252 // CHECK: @llvm.x86.sse2.psrl.w
2253 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2254 return _mm_maskz_srl_epi16(__U
, __A
, __B
);
2257 __m256i
test_mm256_mask_srl_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m128i __B
) {
2258 // CHECK-LABEL: @test_mm256_mask_srl_epi16
2259 // CHECK: @llvm.x86.avx2.psrl.w
2260 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2261 return _mm256_mask_srl_epi16(__W
, __U
, __A
, __B
);
2264 __m256i
test_mm256_maskz_srl_epi16(__mmask16 __U
, __m256i __A
, __m128i __B
) {
2265 // CHECK-LABEL: @test_mm256_maskz_srl_epi16
2266 // CHECK: @llvm.x86.avx2.psrl.w
2267 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2268 return _mm256_maskz_srl_epi16(__U
, __A
, __B
);
2271 __m128i
test_mm_mask_srli_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
) {
2272 // CHECK-LABEL: @test_mm_mask_srli_epi16
2273 // CHECK: @llvm.x86.sse2.psrli.w
2274 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2275 return _mm_mask_srli_epi16(__W
, __U
, __A
, 5);
2278 __m128i
test_mm_mask_srli_epi16_2(__m128i __W
, __mmask8 __U
, __m128i __A
, int __B
) {
2279 // CHECK-LABEL: @test_mm_mask_srli_epi16_2
2280 // CHECK: @llvm.x86.sse2.psrli.w
2281 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2282 return _mm_mask_srli_epi16(__W
, __U
, __A
, __B
);
2285 __m128i
test_mm_maskz_srli_epi16(__mmask8 __U
, __m128i __A
) {
2286 // CHECK-LABEL: @test_mm_maskz_srli_epi16
2287 // CHECK: @llvm.x86.sse2.psrli.w
2288 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2289 return _mm_maskz_srli_epi16(__U
, __A
, 5);
2292 __m128i
test_mm_maskz_srli_epi16_2(__mmask8 __U
, __m128i __A
, int __B
) {
2293 // CHECK-LABEL: @test_mm_maskz_srli_epi16_2
2294 // CHECK: @llvm.x86.sse2.psrli.w
2295 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2296 return _mm_maskz_srli_epi16(__U
, __A
, __B
);
2299 __m256i
test_mm256_mask_srli_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
) {
2300 // CHECK-LABEL: @test_mm256_mask_srli_epi16
2301 // CHECK: @llvm.x86.avx2.psrli.w
2302 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2303 return _mm256_mask_srli_epi16(__W
, __U
, __A
, 5);
2306 __m256i
test_mm256_mask_srli_epi16_2(__m256i __W
, __mmask16 __U
, __m256i __A
, int __B
) {
2307 // CHECK-LABEL: @test_mm256_mask_srli_epi16_2
2308 // CHECK: @llvm.x86.avx2.psrli.w
2309 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2310 return _mm256_mask_srli_epi16(__W
, __U
, __A
, __B
);
2313 __m256i
test_mm256_maskz_srli_epi16(__mmask16 __U
, __m256i __A
) {
2314 // CHECK-LABEL: @test_mm256_maskz_srli_epi16
2315 // CHECK: @llvm.x86.avx2.psrli.w
2316 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2317 return _mm256_maskz_srli_epi16(__U
, __A
, 5);
2320 __m256i
test_mm256_maskz_srli_epi16_2(__mmask16 __U
, __m256i __A
, int __B
) {
2321 // CHECK-LABEL: @test_mm256_maskz_srli_epi16_2
2322 // CHECK: @llvm.x86.avx2.psrli.w
2323 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2324 return _mm256_maskz_srli_epi16(__U
, __A
, __B
);
2327 __m256i
test_mm256_srav_epi16(__m256i __A
, __m256i __B
) {
2328 // CHECK-LABEL: @test_mm256_srav_epi16
2329 // CHECK: @llvm.x86.avx512.psrav.w.256(
2330 return _mm256_srav_epi16(__A
, __B
);
2333 __m256i
test_mm256_mask_srav_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
2334 // CHECK-LABEL: @test_mm256_mask_srav_epi16
2335 // CHECK: @llvm.x86.avx512.psrav.w.256(
2336 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2337 return _mm256_mask_srav_epi16(__W
, __U
, __A
, __B
);
2340 __m256i
test_mm256_maskz_srav_epi16(__mmask16 __U
, __m256i __A
, __m256i __B
) {
2341 // CHECK-LABEL: @test_mm256_maskz_srav_epi16
2342 // CHECK: @llvm.x86.avx512.psrav.w.256(
2343 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2344 return _mm256_maskz_srav_epi16(__U
, __A
, __B
);
2347 __m128i
test_mm_srav_epi16(__m128i __A
, __m128i __B
) {
2348 // CHECK-LABEL: @test_mm_srav_epi16
2349 // CHECK: @llvm.x86.avx512.psrav.w.128(
2350 return _mm_srav_epi16(__A
, __B
);
2353 __m128i
test_mm_mask_srav_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
2354 // CHECK-LABEL: @test_mm_mask_srav_epi16
2355 // CHECK: @llvm.x86.avx512.psrav.w.128(
2356 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2357 return _mm_mask_srav_epi16(__W
, __U
, __A
, __B
);
2360 __m128i
test_mm_maskz_srav_epi16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
2361 // CHECK-LABEL: @test_mm_maskz_srav_epi16
2362 // CHECK: @llvm.x86.avx512.psrav.w.128(
2363 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2364 return _mm_maskz_srav_epi16(__U
, __A
, __B
);
2367 __m128i
test_mm_mask_sra_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
2368 // CHECK-LABEL: @test_mm_mask_sra_epi16
2369 // CHECK: @llvm.x86.sse2.psra.w
2370 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2371 return _mm_mask_sra_epi16(__W
, __U
, __A
, __B
);
2374 __m128i
test_mm_maskz_sra_epi16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
2375 // CHECK-LABEL: @test_mm_maskz_sra_epi16
2376 // CHECK: @llvm.x86.sse2.psra.w
2377 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2378 return _mm_maskz_sra_epi16(__U
, __A
, __B
);
2381 __m256i
test_mm256_mask_sra_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
, __m128i __B
) {
2382 // CHECK-LABEL: @test_mm256_mask_sra_epi16
2383 // CHECK: @llvm.x86.avx2.psra.w
2384 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2385 return _mm256_mask_sra_epi16(__W
, __U
, __A
, __B
);
2388 __m256i
test_mm256_maskz_sra_epi16(__mmask16 __U
, __m256i __A
, __m128i __B
) {
2389 // CHECK-LABEL: @test_mm256_maskz_sra_epi16
2390 // CHECK: @llvm.x86.avx2.psra.w
2391 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2392 return _mm256_maskz_sra_epi16(__U
, __A
, __B
);
2395 __m128i
test_mm_mask_srai_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
) {
2396 // CHECK-LABEL: @test_mm_mask_srai_epi16
2397 // CHECK: @llvm.x86.sse2.psrai.w
2398 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2399 return _mm_mask_srai_epi16(__W
, __U
, __A
, 5);
2402 __m128i
test_mm_mask_srai_epi16_2(__m128i __W
, __mmask8 __U
, __m128i __A
, unsigned int __B
) {
2403 // CHECK-LABEL: @test_mm_mask_srai_epi16_2
2404 // CHECK: @llvm.x86.sse2.psrai.w
2405 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2406 return _mm_mask_srai_epi16(__W
, __U
, __A
, __B
);
2409 __m128i
test_mm_maskz_srai_epi16(__mmask8 __U
, __m128i __A
) {
2410 // CHECK-LABEL: @test_mm_maskz_srai_epi16
2411 // CHECK: @llvm.x86.sse2.psrai.w
2412 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2413 return _mm_maskz_srai_epi16(__U
, __A
, 5);
2416 __m128i
test_mm_maskz_srai_epi16_2(__mmask8 __U
, __m128i __A
, unsigned int __B
) {
2417 // CHECK-LABEL: @test_mm_maskz_srai_epi16_2
2418 // CHECK: @llvm.x86.sse2.psrai.w
2419 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2420 return _mm_maskz_srai_epi16(__U
, __A
, __B
);
2423 __m256i
test_mm256_mask_srai_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
) {
2424 // CHECK-LABEL: @test_mm256_mask_srai_epi16
2425 // CHECK: @llvm.x86.avx2.psrai.w
2426 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2427 return _mm256_mask_srai_epi16(__W
, __U
, __A
, 5);
2430 __m256i
test_mm256_mask_srai_epi16_2(__m256i __W
, __mmask16 __U
, __m256i __A
, unsigned int __B
) {
2431 // CHECK-LABEL: @test_mm256_mask_srai_epi16_2
2432 // CHECK: @llvm.x86.avx2.psrai.w
2433 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2434 return _mm256_mask_srai_epi16(__W
, __U
, __A
, __B
);
2437 __m256i
test_mm256_maskz_srai_epi16(__mmask16 __U
, __m256i __A
) {
2438 // CHECK-LABEL: @test_mm256_maskz_srai_epi16
2439 // CHECK: @llvm.x86.avx2.psrai.w
2440 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2441 return _mm256_maskz_srai_epi16(__U
, __A
, 5);
2444 __m256i
test_mm256_maskz_srai_epi16_2(__mmask16 __U
, __m256i __A
, unsigned int __B
) {
2445 // CHECK-LABEL: @test_mm256_maskz_srai_epi16_2
2446 // CHECK: @llvm.x86.avx2.psrai.w
2447 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2448 return _mm256_maskz_srai_epi16(__U
, __A
, __B
);
2451 __m128i
test_mm_mask_mov_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
) {
2452 // CHECK-LABEL: @test_mm_mask_mov_epi16
2453 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2454 return _mm_mask_mov_epi16(__W
, __U
, __A
);
2457 __m128i
test_mm_maskz_mov_epi16(__mmask8 __U
, __m128i __A
) {
2458 // CHECK-LABEL: @test_mm_maskz_mov_epi16
2459 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2460 return _mm_maskz_mov_epi16(__U
, __A
);
2463 __m256i
test_mm256_mask_mov_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
) {
2464 // CHECK-LABEL: @test_mm256_mask_mov_epi16
2465 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2466 return _mm256_mask_mov_epi16(__W
, __U
, __A
);
2469 __m256i
test_mm256_maskz_mov_epi16(__mmask16 __U
, __m256i __A
) {
2470 // CHECK-LABEL: @test_mm256_maskz_mov_epi16
2471 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2472 return _mm256_maskz_mov_epi16(__U
, __A
);
2475 __m128i
test_mm_mask_mov_epi8(__m128i __W
, __mmask16 __U
, __m128i __A
) {
2476 // CHECK-LABEL: @test_mm_mask_mov_epi8
2477 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2478 return _mm_mask_mov_epi8(__W
, __U
, __A
);
2481 __m128i
test_mm_maskz_mov_epi8(__mmask16 __U
, __m128i __A
) {
2482 // CHECK-LABEL: @test_mm_maskz_mov_epi8
2483 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2484 return _mm_maskz_mov_epi8(__U
, __A
);
2487 __m256i
test_mm256_mask_mov_epi8(__m256i __W
, __mmask32 __U
, __m256i __A
) {
2488 // CHECK-LABEL: @test_mm256_mask_mov_epi8
2489 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2490 return _mm256_mask_mov_epi8(__W
, __U
, __A
);
2493 __m256i
test_mm256_maskz_mov_epi8(__mmask32 __U
, __m256i __A
) {
2494 // CHECK-LABEL: @test_mm256_maskz_mov_epi8
2495 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2496 return _mm256_maskz_mov_epi8(__U
, __A
);
2499 __m128i
test_mm_loadu_epi16(void const *__P
) {
2500 // CHECK-LABEL: @test_mm_loadu_epi16
2501 // CHECK: load <2 x i64>, ptr %{{.*}}, align 1{{$}}
2502 return _mm_loadu_epi16(__P
);
2505 __m128i
test_mm_mask_loadu_epi16(__m128i __W
, __mmask8 __U
, void const *__P
) {
2506 // CHECK-LABEL: @test_mm_mask_loadu_epi16
2507 // CHECK: @llvm.masked.load.v8i16.p0(ptr %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i16> %{{.*}})
2508 return _mm_mask_loadu_epi16(__W
, __U
, __P
);
2511 __m128i
test_mm_maskz_loadu_epi16(__mmask8 __U
, void const *__P
) {
2512 // CHECK-LABEL: @test_mm_maskz_loadu_epi16
2513 // CHECK: @llvm.masked.load.v8i16.p0(ptr %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i16> %{{.*}})
2514 return _mm_maskz_loadu_epi16(__U
, __P
);
2517 __m256i
test_mm256_loadu_epi16(void const *__P
) {
2518 // CHECK-LABEL: @test_mm256_loadu_epi16
2519 // CHECK: load <4 x i64>, ptr %{{.*}}, align 1{{$}}
2520 return _mm256_loadu_epi16(__P
);
2523 __m256i
test_mm256_mask_loadu_epi16(__m256i __W
, __mmask16 __U
, void const *__P
) {
2524 // CHECK-LABEL: @test_mm256_mask_loadu_epi16
2525 // CHECK: @llvm.masked.load.v16i16.p0(ptr %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i16> %{{.*}})
2526 return _mm256_mask_loadu_epi16(__W
, __U
, __P
);
2529 __m256i
test_mm256_maskz_loadu_epi16(__mmask16 __U
, void const *__P
) {
2530 // CHECK-LABEL: @test_mm256_maskz_loadu_epi16
2531 // CHECK: @llvm.masked.load.v16i16.p0(ptr %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i16> %{{.*}})
2532 return _mm256_maskz_loadu_epi16(__U
, __P
);
2535 __m128i
test_mm_loadu_epi8(void const *__P
) {
2536 // CHECK-LABEL: @test_mm_loadu_epi8
2537 // CHECK: load <2 x i64>, ptr %{{.*}}, align 1{{$}}
2538 return _mm_loadu_epi8(__P
);
2541 __m128i
test_mm_mask_loadu_epi8(__m128i __W
, __mmask16 __U
, void const *__P
) {
2542 // CHECK-LABEL: @test_mm_mask_loadu_epi8
2543 // CHECK: @llvm.masked.load.v16i8.p0(ptr %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i8> %{{.*}})
2544 return _mm_mask_loadu_epi8(__W
, __U
, __P
);
2547 __m128i
test_mm_maskz_loadu_epi8(__mmask16 __U
, void const *__P
) {
2548 // CHECK-LABEL: @test_mm_maskz_loadu_epi8
2549 // CHECK: @llvm.masked.load.v16i8.p0(ptr %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i8> %{{.*}})
2550 return _mm_maskz_loadu_epi8(__U
, __P
);
2553 __m256i
test_mm256_loadu_epi8(void const *__P
) {
2554 // CHECK-LABEL: @test_mm256_loadu_epi8
2555 // CHECK: load <4 x i64>, ptr %{{.*}}, align 1{{$}}
2556 return _mm256_loadu_epi8(__P
);
2559 __m256i
test_mm256_mask_loadu_epi8(__m256i __W
, __mmask32 __U
, void const *__P
) {
2560 // CHECK-LABEL: @test_mm256_mask_loadu_epi8
2561 // CHECK: @llvm.masked.load.v32i8.p0(ptr %{{.*}}, i32 1, <32 x i1> %{{.*}}, <32 x i8> %{{.*}})
2562 return _mm256_mask_loadu_epi8(__W
, __U
, __P
);
2565 __m256i
test_mm256_maskz_loadu_epi8(__mmask32 __U
, void const *__P
) {
2566 // CHECK-LABEL: @test_mm256_maskz_loadu_epi8
2567 // CHECK: @llvm.masked.load.v32i8.p0(ptr %{{.*}}, i32 1, <32 x i1> %{{.*}}, <32 x i8> %{{.*}})
2568 return _mm256_maskz_loadu_epi8(__U
, __P
);
2571 void test_mm_storeu_epi16(void *__p
, __m128i __a
) {
2572 // check-label: @test_mm_storeu_epi16
2573 // check: store <2 x i64> %{{.*}}, ptr %{{.*}}, align 1{{$}}
2574 return _mm_storeu_epi16(__p
, __a
);
2577 void test_mm_mask_storeu_epi16(void *__P
, __mmask8 __U
, __m128i __A
) {
2578 // CHECK-LABEL: @test_mm_mask_storeu_epi16
2579 // CHECK: @llvm.masked.store.v8i16.p0(<8 x i16> %{{.*}}, ptr %{{.*}}, i32 1, <8 x i1> %{{.*}})
2580 return _mm_mask_storeu_epi16(__P
, __U
, __A
);
2583 void test_mm256_storeu_epi16(void *__P
, __m256i __A
) {
2584 // CHECK-LABEL: @test_mm256_storeu_epi16
2585 // CHECK: store <4 x i64> %{{.*}}, ptr %{{.*}}, align 1{{$}}
2586 return _mm256_storeu_epi16(__P
, __A
);
2589 void test_mm256_mask_storeu_epi16(void *__P
, __mmask16 __U
, __m256i __A
) {
2590 // CHECK-LABEL: @test_mm256_mask_storeu_epi16
2591 // CHECK: @llvm.masked.store.v16i16.p0(<16 x i16> %{{.*}}, ptr %{{.*}}, i32 1, <16 x i1> %{{.*}})
2592 return _mm256_mask_storeu_epi16(__P
, __U
, __A
);
2595 void test_mm_storeu_epi8(void *__p
, __m128i __a
) {
2596 // check-label: @test_mm_storeu_epi8
2597 // check: store <2 x i64> %{{.*}}, ptr %{{.*}}, align 1{{$}}
2598 return _mm_storeu_epi8(__p
, __a
);
2601 void test_mm_mask_storeu_epi8(void *__P
, __mmask16 __U
, __m128i __A
) {
2602 // CHECK-LABEL: @test_mm_mask_storeu_epi8
2603 // CHECK: @llvm.masked.store.v16i8.p0(<16 x i8> %{{.*}}, ptr %{{.*}}, i32 1, <16 x i1> %{{.*}})
2604 return _mm_mask_storeu_epi8(__P
, __U
, __A
);
2607 void test_mm256_storeu_epi8(void *__P
, __m256i __A
) {
2608 // CHECK-LABEL: @test_mm256_storeu_epi8
2609 // CHECK: store <4 x i64> %{{.*}}, ptr %{{.*}}, align 1{{$}}
2610 return _mm256_storeu_epi8(__P
, __A
);
2613 void test_mm256_mask_storeu_epi8(void *__P
, __mmask32 __U
, __m256i __A
) {
2614 // CHECK-LABEL: @test_mm256_mask_storeu_epi8
2615 // CHECK: @llvm.masked.store.v32i8.p0(<32 x i8> %{{.*}}, ptr %{{.*}}, i32 1, <32 x i1> %{{.*}})
2616 return _mm256_mask_storeu_epi8(__P
, __U
, __A
);
2618 __mmask16
test_mm_test_epi8_mask(__m128i __A
, __m128i __B
) {
2619 // CHECK-LABEL: @test_mm_test_epi8_mask
2620 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2621 // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
2622 return _mm_test_epi8_mask(__A
, __B
);
2625 __mmask16
test_mm_mask_test_epi8_mask(__mmask16 __U
, __m128i __A
, __m128i __B
) {
2626 // CHECK-LABEL: @test_mm_mask_test_epi8_mask
2627 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2628 // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
2629 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
2630 return _mm_mask_test_epi8_mask(__U
, __A
, __B
);
2633 __mmask32
test_mm256_test_epi8_mask(__m256i __A
, __m256i __B
) {
2634 // CHECK-LABEL: @test_mm256_test_epi8_mask
2635 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2636 // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}}
2637 return _mm256_test_epi8_mask(__A
, __B
);
2640 __mmask32
test_mm256_mask_test_epi8_mask(__mmask32 __U
, __m256i __A
, __m256i __B
) {
2641 // CHECK-LABEL: @test_mm256_mask_test_epi8_mask
2642 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2643 // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}}
2644 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
2645 return _mm256_mask_test_epi8_mask(__U
, __A
, __B
);
2648 __mmask8
test_mm_test_epi16_mask(__m128i __A
, __m128i __B
) {
2649 // CHECK-LABEL: @test_mm_test_epi16_mask
2650 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2651 // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
2652 return _mm_test_epi16_mask(__A
, __B
);
2655 __mmask8
test_mm_mask_test_epi16_mask(__mmask8 __U
, __m128i __A
, __m128i __B
) {
2656 // CHECK-LABEL: @test_mm_mask_test_epi16_mask
2657 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2658 // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
2659 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
2660 return _mm_mask_test_epi16_mask(__U
, __A
, __B
);
2663 __mmask16
test_mm256_test_epi16_mask(__m256i __A
, __m256i __B
) {
2664 // CHECK-LABEL: @test_mm256_test_epi16_mask
2665 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2666 // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}}
2667 return _mm256_test_epi16_mask(__A
, __B
);
2670 __mmask16
test_mm256_mask_test_epi16_mask(__mmask16 __U
, __m256i __A
, __m256i __B
) {
2671 // CHECK-LABEL: @test_mm256_mask_test_epi16_mask
2672 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2673 // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}}
2674 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
2675 return _mm256_mask_test_epi16_mask(__U
, __A
, __B
);
2678 __mmask16
test_mm_testn_epi8_mask(__m128i __A
, __m128i __B
) {
2679 // CHECK-LABEL: @test_mm_testn_epi8_mask
2680 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2681 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
2682 return _mm_testn_epi8_mask(__A
, __B
);
2685 __mmask16
test_mm_mask_testn_epi8_mask(__mmask16 __U
, __m128i __A
, __m128i __B
) {
2686 // CHECK-LABEL: @test_mm_mask_testn_epi8_mask
2687 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2688 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
2689 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
2690 return _mm_mask_testn_epi8_mask(__U
, __A
, __B
);
2693 __mmask32
test_mm256_testn_epi8_mask(__m256i __A
, __m256i __B
) {
2694 // CHECK-LABEL: @test_mm256_testn_epi8_mask
2695 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2696 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
2697 return _mm256_testn_epi8_mask(__A
, __B
);
2700 __mmask32
test_mm256_mask_testn_epi8_mask(__mmask32 __U
, __m256i __A
, __m256i __B
) {
2701 // CHECK-LABEL: @test_mm256_mask_testn_epi8_mask
2702 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2703 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
2704 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
2705 return _mm256_mask_testn_epi8_mask(__U
, __A
, __B
);
2708 __mmask8
test_mm_testn_epi16_mask(__m128i __A
, __m128i __B
) {
2709 // CHECK-LABEL: @test_mm_testn_epi16_mask
2710 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2711 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
2712 return _mm_testn_epi16_mask(__A
, __B
);
2715 __mmask8
test_mm_mask_testn_epi16_mask(__mmask8 __U
, __m128i __A
, __m128i __B
) {
2716 // CHECK-LABEL: @test_mm_mask_testn_epi16_mask
2717 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2718 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
2719 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
2720 return _mm_mask_testn_epi16_mask(__U
, __A
, __B
);
2723 __mmask16
test_mm256_testn_epi16_mask(__m256i __A
, __m256i __B
) {
2724 // CHECK-LABEL: @test_mm256_testn_epi16_mask
2725 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2726 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
2727 return _mm256_testn_epi16_mask(__A
, __B
);
2730 __mmask16
test_mm256_mask_testn_epi16_mask(__mmask16 __U
, __m256i __A
, __m256i __B
) {
2731 // CHECK-LABEL: @test_mm256_mask_testn_epi16_mask
2732 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2733 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
2734 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
2735 return _mm256_mask_testn_epi16_mask(__U
, __A
, __B
);
2738 __mmask16
test_mm_movepi8_mask(__m128i __A
) {
2739 // CHECK-LABEL: @test_mm_movepi8_mask
2740 // CHECK: [[CMP:%.*]] = icmp slt <16 x i8> %{{.*}}, zeroinitializer
2741 return _mm_movepi8_mask(__A
);
2744 __mmask32
test_mm256_movepi8_mask(__m256i __A
) {
2745 // CHECK-LABEL: @test_mm256_movepi8_mask
2746 // CHECK: [[CMP:%.*]] = icmp slt <32 x i8> %{{.*}}, zeroinitializer
2747 return _mm256_movepi8_mask(__A
);
2750 __m128i
test_mm_movm_epi8(__mmask16 __A
) {
2751 // CHECK-LABEL: @test_mm_movm_epi8
2752 // CHECK: %{{.*}} = bitcast i16 %{{.*}} to <16 x i1>
2753 // CHECK: %vpmovm2.i = sext <16 x i1> %{{.*}} to <16 x i8>
2754 return _mm_movm_epi8(__A
);
2757 __m256i
test_mm256_movm_epi8(__mmask32 __A
) {
2758 // CHECK-LABEL: @test_mm256_movm_epi8
2759 // CHECK: %{{.*}} = bitcast i32 %{{.*}} to <32 x i1>
2760 // CHECK: %vpmovm2.i = sext <32 x i1> %{{.*}} to <32 x i8>
2761 return _mm256_movm_epi8(__A
);
2764 __m128i
test_mm_movm_epi16(__mmask8 __A
) {
2765 // CHECK-LABEL: @test_mm_movm_epi16
2766 // CHECK: %{{.*}} = bitcast i8 %{{.*}} to <8 x i1>
2767 // CHECK: %vpmovm2.i = sext <8 x i1> %{{.*}} to <8 x i16>
2768 return _mm_movm_epi16(__A
);
2771 __m256i
test_mm256_movm_epi16(__mmask16 __A
) {
2772 // CHECK-LABEL: @test_mm256_movm_epi16
2773 // CHECK: %{{.*}} = bitcast i16 %{{.*}} to <16 x i1>
2774 // CHECK: %vpmovm2.i = sext <16 x i1> %{{.*}} to <16 x i16>
2775 return _mm256_movm_epi16(__A
);
2778 __m128i
test_mm_mask_broadcastb_epi8(__m128i __O
, __mmask16 __M
, __m128i __A
) {
2779 // CHECK-LABEL: @test_mm_mask_broadcastb_epi8
2780 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> zeroinitializer
2781 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2782 return _mm_mask_broadcastb_epi8(__O
, __M
, __A
);
2785 __m128i
test_mm_maskz_broadcastb_epi8(__mmask16 __M
, __m128i __A
) {
2786 // CHECK-LABEL: @test_mm_maskz_broadcastb_epi8
2787 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> zeroinitializer
2788 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2789 return _mm_maskz_broadcastb_epi8(__M
, __A
);
2792 __m256i
test_mm256_mask_broadcastb_epi8(__m256i __O
, __mmask32 __M
, __m128i __A
) {
2793 // CHECK-LABEL: @test_mm256_mask_broadcastb_epi8
2794 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <32 x i32> zeroinitializer
2795 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2796 return _mm256_mask_broadcastb_epi8(__O
, __M
, __A
);
2799 __m256i
test_mm256_maskz_broadcastb_epi8(__mmask32 __M
, __m128i __A
) {
2800 // CHECK-LABEL: @test_mm256_maskz_broadcastb_epi8
2801 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <32 x i32> zeroinitializer
2802 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2803 return _mm256_maskz_broadcastb_epi8(__M
, __A
);
2806 __m128i
test_mm_mask_broadcastw_epi16(__m128i __O
, __mmask8 __M
, __m128i __A
) {
2807 // CHECK-LABEL: @test_mm_mask_broadcastw_epi16
2808 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> zeroinitializer
2809 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2810 return _mm_mask_broadcastw_epi16(__O
, __M
, __A
);
2813 __m128i
test_mm_maskz_broadcastw_epi16(__mmask8 __M
, __m128i __A
) {
2814 // CHECK-LABEL: @test_mm_maskz_broadcastw_epi16
2815 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> zeroinitializer
2816 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2817 return _mm_maskz_broadcastw_epi16(__M
, __A
);
2820 __m256i
test_mm256_mask_broadcastw_epi16(__m256i __O
, __mmask16 __M
, __m128i __A
) {
2821 // CHECK-LABEL: @test_mm256_mask_broadcastw_epi16
2822 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <16 x i32> zeroinitializer
2823 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2824 return _mm256_mask_broadcastw_epi16(__O
, __M
, __A
);
2827 __m256i
test_mm256_maskz_broadcastw_epi16(__mmask16 __M
, __m128i __A
) {
2828 // CHECK-LABEL: @test_mm256_maskz_broadcastw_epi16
2829 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <16 x i32> zeroinitializer
2830 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2831 return _mm256_maskz_broadcastw_epi16(__M
, __A
);
2833 __m128i
test_mm_mask_set1_epi8 (__m128i __O
, __mmask16 __M
, char __A
){
2834 // CHECK-LABEL: @test_mm_mask_set1_epi8
2835 // CHECK: insertelement <16 x i8> undef, i8 %{{.*}}, i32 0
2836 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 1
2837 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 2
2838 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 3
2839 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 4
2840 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 5
2841 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 6
2842 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 7
2843 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 8
2844 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 9
2845 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 10
2846 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 11
2847 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 12
2848 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 13
2849 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 14
2850 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 15
2851 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2852 return _mm_mask_set1_epi8(__O
, __M
, __A
);
2854 __m128i
test_mm_maskz_set1_epi8 ( __mmask16 __M
, char __A
){
2855 // CHECK-LABEL: @test_mm_maskz_set1_epi8
2856 // CHECK: insertelement <16 x i8> undef, i8 %{{.*}}, i32 0
2857 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 1
2858 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 2
2859 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 3
2860 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 4
2861 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 5
2862 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 6
2863 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 7
2864 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 8
2865 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 9
2866 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 10
2867 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 11
2868 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 12
2869 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 13
2870 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 14
2871 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 15
2872 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2873 return _mm_maskz_set1_epi8( __M
, __A
);
2876 __m256i
test_mm256_mask_set1_epi8(__m256i __O
, __mmask32 __M
, char __A
) {
2877 // CHECK-LABEL: @test_mm256_mask_set1_epi8
2878 // CHECK: insertelement <32 x i8> undef, i8 %{{.*}}, i32 0
2879 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 1
2880 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 2
2881 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 3
2882 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 4
2883 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 5
2884 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 6
2885 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 7
2886 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 8
2887 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 9
2888 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 10
2889 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 11
2890 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 12
2891 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 13
2892 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 14
2893 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 15
2894 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 16
2895 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 17
2896 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 18
2897 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 19
2898 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 20
2899 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 21
2900 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 22
2901 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 23
2902 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 24
2903 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 25
2904 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 26
2905 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 27
2906 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 28
2907 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 29
2908 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 30
2909 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 31
2910 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2911 return _mm256_mask_set1_epi8(__O
, __M
, __A
);
2914 __m256i
test_mm256_maskz_set1_epi8( __mmask32 __M
, char __A
) {
2915 // CHECK-LABEL: @test_mm256_maskz_set1_epi8
2916 // CHECK: insertelement <32 x i8> undef, i8 %{{.*}}, i32 0
2917 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 1
2918 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 2
2919 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 3
2920 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 4
2921 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 5
2922 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 6
2923 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 7
2924 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 8
2925 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 9
2926 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 10
2927 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 11
2928 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 12
2929 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 13
2930 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 14
2931 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 15
2932 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 16
2933 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 17
2934 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 18
2935 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 19
2936 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 20
2937 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 21
2938 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 22
2939 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 23
2940 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 24
2941 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 25
2942 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 26
2943 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 27
2944 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 28
2945 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 29
2946 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 30
2947 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 31
2948 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2949 return _mm256_maskz_set1_epi8( __M
, __A
);
2953 __m256i
test_mm256_mask_set1_epi16(__m256i __O
, __mmask16 __M
, short __A
) {
2954 // CHECK-LABEL: @test_mm256_mask_set1_epi16
2955 // CHECK: insertelement <16 x i16> undef, i16 %{{.*}}, i32 0
2956 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 1
2957 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 2
2958 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 3
2959 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 4
2960 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 5
2961 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 6
2962 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 7
2963 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 8
2964 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 9
2965 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 10
2966 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 11
2967 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 12
2968 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 13
2969 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 14
2970 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 15
2971 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2972 return _mm256_mask_set1_epi16(__O
, __M
, __A
);
2975 __m256i
test_mm256_maskz_set1_epi16(__mmask16 __M
, short __A
) {
2976 // CHECK-LABEL: @test_mm256_maskz_set1_epi16
2977 // CHECK: insertelement <16 x i16> undef, i16 %{{.*}}, i32 0
2978 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 1
2979 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 2
2980 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 3
2981 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 4
2982 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 5
2983 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 6
2984 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 7
2985 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 8
2986 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 9
2987 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 10
2988 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 11
2989 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 12
2990 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 13
2991 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 14
2992 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 15
2993 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2994 return _mm256_maskz_set1_epi16(__M
, __A
);
2997 __m128i
test_mm_mask_set1_epi16(__m128i __O
, __mmask8 __M
, short __A
) {
2998 // CHECK-LABEL: @test_mm_mask_set1_epi16
2999 // CHECK: insertelement <8 x i16> undef, i16 %{{.*}}, i32 0
3000 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 1
3001 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 2
3002 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 3
3003 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 4
3004 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 5
3005 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 6
3006 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 7
3007 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3008 return _mm_mask_set1_epi16(__O
, __M
, __A
);
3011 __m128i
test_mm_maskz_set1_epi16(__mmask8 __M
, short __A
) {
3012 // CHECK-LABEL: @test_mm_maskz_set1_epi16
3013 // CHECK: insertelement <8 x i16> undef, i16 %{{.*}}, i32 0
3014 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 1
3015 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 2
3016 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 3
3017 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 4
3018 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 5
3019 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 6
3020 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 7
3021 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3022 return _mm_maskz_set1_epi16(__M
, __A
);
3024 __m128i
test_mm_permutexvar_epi16(__m128i __A
, __m128i __B
) {
3025 // CHECK-LABEL: @test_mm_permutexvar_epi16
3026 // CHECK: @llvm.x86.avx512.permvar.hi.128
3027 return _mm_permutexvar_epi16(__A
, __B
);
3030 __m128i
test_mm_maskz_permutexvar_epi16(__mmask8 __M
, __m128i __A
, __m128i __B
) {
3031 // CHECK-LABEL: @test_mm_maskz_permutexvar_epi16
3032 // CHECK: @llvm.x86.avx512.permvar.hi.128
3033 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3034 return _mm_maskz_permutexvar_epi16(__M
, __A
, __B
);
3037 __m128i
test_mm_mask_permutexvar_epi16(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
3038 // CHECK-LABEL: @test_mm_mask_permutexvar_epi16
3039 // CHECK: @llvm.x86.avx512.permvar.hi.128
3040 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3041 return _mm_mask_permutexvar_epi16(__W
, __M
, __A
, __B
);
3044 __m256i
test_mm256_permutexvar_epi16(__m256i __A
, __m256i __B
) {
3045 // CHECK-LABEL: @test_mm256_permutexvar_epi16
3046 // CHECK: @llvm.x86.avx512.permvar.hi.256
3047 return _mm256_permutexvar_epi16(__A
, __B
);
3050 __m256i
test_mm256_maskz_permutexvar_epi16(__mmask16 __M
, __m256i __A
, __m256i __B
) {
3051 // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi16
3052 // CHECK: @llvm.x86.avx512.permvar.hi.256
3053 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3054 return _mm256_maskz_permutexvar_epi16(__M
, __A
, __B
);
3057 __m256i
test_mm256_mask_permutexvar_epi16(__m256i __W
, __mmask16 __M
, __m256i __A
, __m256i __B
) {
3058 // CHECK-LABEL: @test_mm256_mask_permutexvar_epi16
3059 // CHECK: @llvm.x86.avx512.permvar.hi.256
3060 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3061 return _mm256_mask_permutexvar_epi16(__W
, __M
, __A
, __B
);
3063 __m128i
test_mm_mask_alignr_epi8(__m128i __W
, __mmask16 __U
, __m128i __A
, __m128i __B
) {
3064 // CHECK-LABEL: @test_mm_mask_alignr_epi8
3065 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 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 16, i32 17>
3066 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
3067 return _mm_mask_alignr_epi8(__W
, __U
, __A
, __B
, 2);
3070 __m128i
test_mm_maskz_alignr_epi8(__mmask16 __U
, __m128i __A
, __m128i __B
) {
3071 // CHECK-LABEL: @test_mm_maskz_alignr_epi8
3072 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 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 16, i32 17>
3073 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
3074 return _mm_maskz_alignr_epi8(__U
, __A
, __B
, 2);
3077 __m256i
test_mm256_mask_alignr_epi8(__m256i __W
, __mmask32 __U
, __m256i __A
, __m256i __B
) {
3078 // CHECK-LABEL: @test_mm256_mask_alignr_epi8
3079 // CHECK: shufflevector <32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 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 32, i32 33, 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 48, i32 49>
3080 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
3081 return _mm256_mask_alignr_epi8(__W
, __U
, __A
, __B
, 2);
3084 __m256i
test_mm256_maskz_alignr_epi8(__mmask32 __U
, __m256i __A
, __m256i __B
) {
3085 // CHECK-LABEL: @test_mm256_maskz_alignr_epi8
3086 // CHECK: shufflevector <32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 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 32, i32 33, 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 48, i32 49>
3087 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
3088 return _mm256_maskz_alignr_epi8(__U
, __A
, __B
, 2);
3091 __m128i
test_mm_dbsad_epu8(__m128i __A
, __m128i __B
) {
3092 // CHECK-LABEL: @test_mm_dbsad_epu8
3093 // CHECK: @llvm.x86.avx512.dbpsadbw.128
3094 return _mm_dbsad_epu8(__A
, __B
, 170);
3097 __m128i
test_mm_mask_dbsad_epu8(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
3098 // CHECK-LABEL: @test_mm_mask_dbsad_epu8
3099 // CHECK: @llvm.x86.avx512.dbpsadbw.128
3100 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3101 return _mm_mask_dbsad_epu8(__W
, __U
, __A
, __B
, 170);
3104 __m128i
test_mm_maskz_dbsad_epu8(__mmask8 __U
, __m128i __A
, __m128i __B
) {
3105 // CHECK-LABEL: @test_mm_maskz_dbsad_epu8
3106 // CHECK: @llvm.x86.avx512.dbpsadbw.128
3107 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3108 return _mm_maskz_dbsad_epu8(__U
, __A
, __B
, 170);
3111 __m256i
test_mm256_dbsad_epu8(__m256i __A
, __m256i __B
) {
3112 // CHECK-LABEL: @test_mm256_dbsad_epu8
3113 // CHECK: @llvm.x86.avx512.dbpsadbw.256
3114 return _mm256_dbsad_epu8(__A
, __B
, 170);
3117 __m256i
test_mm256_mask_dbsad_epu8(__m256i __W
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
3118 // CHECK-LABEL: @test_mm256_mask_dbsad_epu8
3119 // CHECK: @llvm.x86.avx512.dbpsadbw.256
3120 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3121 return _mm256_mask_dbsad_epu8(__W
, __U
, __A
, __B
, 170);
3124 __m256i
test_mm256_maskz_dbsad_epu8(__mmask16 __U
, __m256i __A
, __m256i __B
) {
3125 // CHECK-LABEL: @test_mm256_maskz_dbsad_epu8
3126 // CHECK: @llvm.x86.avx512.dbpsadbw.256
3127 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3128 return _mm256_maskz_dbsad_epu8(__U
, __A
, __B
, 170);
3130 __mmask8
test_mm_movepi16_mask(__m128i __A
) {
3131 // CHECK-LABEL: @test_mm_movepi16_mask
3132 // CHECK: [[CMP:%.*]] = icmp slt <8 x i16> %{{.*}}, zeroinitializer
3133 return _mm_movepi16_mask(__A
);
3136 __mmask16
test_mm256_movepi16_mask(__m256i __A
) {
3137 // CHECK-LABEL: @test_mm256_movepi16_mask
3138 // CHECK: [[CMP:%.*]] = icmp slt <16 x i16> %{{.*}}, zeroinitializer
3139 return _mm256_movepi16_mask(__A
);
3142 __m128i
test_mm_mask_shufflehi_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
) {
3143 // CHECK-LABEL: @test_mm_mask_shufflehi_epi16
3144 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4>
3145 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3146 return _mm_mask_shufflehi_epi16(__W
, __U
, __A
, 5);
3149 __m128i
test_mm_maskz_shufflehi_epi16(__mmask8 __U
, __m128i __A
) {
3150 // CHECK-LABEL: @test_mm_maskz_shufflehi_epi16
3151 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4>
3152 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3153 return _mm_maskz_shufflehi_epi16(__U
, __A
, 5);
3156 __m128i
test_mm_mask_shufflelo_epi16(__m128i __W
, __mmask8 __U
, __m128i __A
) {
3157 // CHECK-LABEL: @test_mm_mask_shufflelo_epi16
3158 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> poison, <8 x i32> <i32 1, i32 1, i32 0, i32 0, i32 4, i32 5, i32 6, i32 7>
3159 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3160 return _mm_mask_shufflelo_epi16(__W
, __U
, __A
, 5);
3163 __m128i
test_mm_maskz_shufflelo_epi16(__mmask8 __U
, __m128i __A
) {
3164 // CHECK-LABEL: @test_mm_maskz_shufflelo_epi16
3165 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> poison, <8 x i32> <i32 1, i32 1, i32 0, i32 0, i32 4, i32 5, i32 6, i32 7>
3166 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3167 return _mm_maskz_shufflelo_epi16(__U
, __A
, 5);
3170 __m256i
test_mm256_mask_shufflehi_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
) {
3171 // CHECK-LABEL: @test_mm256_mask_shufflehi_epi16
3172 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> poison, <16 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>
3173 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3174 return _mm256_mask_shufflehi_epi16(__W
, __U
, __A
, 5);
3177 __m256i
test_mm256_maskz_shufflehi_epi16(__mmask16 __U
, __m256i __A
) {
3178 // CHECK-LABEL: @test_mm256_maskz_shufflehi_epi16
3179 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> poison, <16 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>
3180 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3181 return _mm256_maskz_shufflehi_epi16(__U
, __A
, 5);
3184 __m256i
test_mm256_mask_shufflelo_epi16(__m256i __W
, __mmask16 __U
, __m256i __A
) {
3185 // CHECK-LABEL: @test_mm256_mask_shufflelo_epi16
3186 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> poison, <16 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>
3187 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3188 return _mm256_mask_shufflelo_epi16(__W
, __U
, __A
, 5);
3191 __m256i
test_mm256_maskz_shufflelo_epi16(__mmask16 __U
, __m256i __A
) {
3192 // CHECK-LABEL: @test_mm256_maskz_shufflelo_epi16
3193 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> poison, <16 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>
3194 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3195 return _mm256_maskz_shufflelo_epi16(__U
, __A
, 5);
3198 void test_mm_mask_cvtepi16_storeu_epi8 (void * __P
, __mmask8 __M
, __m128i __A
)
3200 // CHECK-LABEL:@test_mm_mask_cvtepi16_storeu_epi8
3201 // CHECK: @llvm.x86.avx512.mask.pmov.wb.mem.128
3202 _mm_mask_cvtepi16_storeu_epi8 (__P
, __M
, __A
);
3205 void test_mm_mask_cvtsepi16_storeu_epi8 (void * __P
, __mmask8 __M
, __m128i __A
)
3207 // CHECK-LABEL:@test_mm_mask_cvtsepi16_storeu_epi8
3208 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.mem.128
3209 _mm_mask_cvtsepi16_storeu_epi8 ( __P
, __M
, __A
);
3212 void test_mm_mask_cvtusepi16_storeu_epi8 (void * __P
, __mmask8 __M
, __m128i __A
)
3214 // CHECK-LABEL:@test_mm_mask_cvtusepi16_storeu_epi8
3215 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.mem.128
3216 _mm_mask_cvtusepi16_storeu_epi8 (__P
, __M
, __A
);
3219 void test_mm256_mask_cvtusepi16_storeu_epi8 (void * __P
, __mmask16 __M
, __m256i __A
)
3221 // CHECK-LABEL:@test_mm256_mask_cvtusepi16_storeu_epi8
3222 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.mem.256
3223 _mm256_mask_cvtusepi16_storeu_epi8 ( __P
, __M
, __A
);
3226 void test_mm256_mask_cvtepi16_storeu_epi8 (void * __P
, __mmask16 __M
, __m256i __A
)
3228 // CHECK-LABEL:@test_mm256_mask_cvtepi16_storeu_epi8
3229 // CHECK: @llvm.x86.avx512.mask.pmov.wb.mem.256
3230 _mm256_mask_cvtepi16_storeu_epi8 ( __P
, __M
, __A
);
3233 void test_mm256_mask_cvtsepi16_storeu_epi8 (void * __P
, __mmask16 __M
, __m256i __A
)
3235 // CHECK-LABEL:@test_mm256_mask_cvtsepi16_storeu_epi8
3236 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.mem.256
3237 _mm256_mask_cvtsepi16_storeu_epi8 ( __P
, __M
, __A
);