1 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512f -target-feature +avx512vl -emit-llvm -o - -Wall -Werror -Wsign-conversion | FileCheck %s
5 __mmask8
test_mm_cmpeq_epu32_mask(__m128i __a
, __m128i __b
) {
6 // CHECK-LABEL: @test_mm_cmpeq_epu32_mask
7 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
8 // CHECK: shufflevector <4 x i1> %{{.*}}, <4 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
9 return (__mmask8
)_mm_cmpeq_epu32_mask(__a
, __b
);
12 __mmask8
test_mm_mask_cmpeq_epu32_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
13 // CHECK-LABEL: @test_mm_mask_cmpeq_epu32_mask
14 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
15 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
16 return (__mmask8
)_mm_mask_cmpeq_epu32_mask(__u
, __a
, __b
);
19 __mmask8
test_mm_cmpeq_epu64_mask(__m128i __a
, __m128i __b
) {
20 // CHECK-LABEL: @test_mm_cmpeq_epu64_mask
21 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
22 // CHECK: shufflevector <2 x i1> %{{.*}}, <2 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 2, i32 3, i32 2, i32 3>
23 return (__mmask8
)_mm_cmpeq_epu64_mask(__a
, __b
);
26 __mmask8
test_mm_mask_cmpeq_epu64_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
27 // CHECK-LABEL: @test_mm_mask_cmpeq_epu64_mask
28 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
29 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
30 return (__mmask8
)_mm_mask_cmpeq_epu64_mask(__u
, __a
, __b
);
33 __mmask8
test_mm_cmpge_epi32_mask(__m128i __a
, __m128i __b
) {
34 // CHECK-LABEL: @test_mm_cmpge_epi32_mask
35 // CHECK: icmp sge <4 x i32> %{{.*}}, %{{.*}}
36 return (__mmask8
)_mm_cmpge_epi32_mask(__a
, __b
);
39 __mmask8
test_mm_mask_cmpge_epi32_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
40 // CHECK-LABEL: @test_mm_mask_cmpge_epi32_mask
41 // CHECK: icmp sge <4 x i32> %{{.*}}, %{{.*}}
42 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
43 return (__mmask8
)_mm_mask_cmpge_epi32_mask(__u
, __a
, __b
);
46 __mmask8
test_mm_cmpge_epi64_mask(__m128i __a
, __m128i __b
) {
47 // CHECK-LABEL: @test_mm_cmpge_epi64_mask
48 // CHECK: icmp sge <2 x i64> %{{.*}}, %{{.*}}
49 return (__mmask8
)_mm_cmpge_epi64_mask(__a
, __b
);
52 __mmask8
test_mm_mask_cmpge_epi64_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
53 // CHECK-LABEL: @test_mm_mask_cmpge_epi64_mask
54 // CHECK: icmp sge <2 x i64> %{{.*}}, %{{.*}}
55 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
56 return (__mmask8
)_mm_mask_cmpge_epi64_mask(__u
, __a
, __b
);
59 __mmask8
test_mm256_cmpge_epi32_mask(__m256i __a
, __m256i __b
) {
60 // CHECK-LABEL: @test_mm256_cmpge_epi32_mask
61 // CHECK: icmp sge <8 x i32> %{{.*}}, %{{.*}}
62 return (__mmask8
)_mm256_cmpge_epi32_mask(__a
, __b
);
65 __mmask8
test_mm256_mask_cmpge_epi32_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
66 // CHECK-LABEL: @test_mm256_mask_cmpge_epi32_mask
67 // CHECK: icmp sge <8 x i32> %{{.*}}, %{{.*}}
68 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
69 return (__mmask8
)_mm256_mask_cmpge_epi32_mask(__u
, __a
, __b
);
72 __mmask8
test_mm256_cmpge_epi64_mask(__m256i __a
, __m256i __b
) {
73 // CHECK-LABEL: @test_mm256_cmpge_epi64_mask
74 // CHECK: icmp sge <4 x i64> %{{.*}}, %{{.*}}
75 return (__mmask8
)_mm256_cmpge_epi64_mask(__a
, __b
);
78 __mmask8
test_mm256_mask_cmpge_epi64_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
79 // CHECK-LABEL: @test_mm256_mask_cmpge_epi64_mask
80 // CHECK: icmp sge <4 x i64> %{{.*}}, %{{.*}}
81 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
82 return (__mmask8
)_mm256_mask_cmpge_epi64_mask(__u
, __a
, __b
);
85 __mmask8
test_mm_cmpge_epu32_mask(__m128i __a
, __m128i __b
) {
86 // CHECK-LABEL: @test_mm_cmpge_epu32_mask
87 // CHECK: icmp uge <4 x i32> %{{.*}}, %{{.*}}
88 return (__mmask8
)_mm_cmpge_epu32_mask(__a
, __b
);
91 __mmask8
test_mm_mask_cmpge_epu32_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
92 // CHECK-LABEL: @test_mm_mask_cmpge_epu32_mask
93 // CHECK: icmp uge <4 x i32> %{{.*}}, %{{.*}}
94 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
95 return (__mmask8
)_mm_mask_cmpge_epu32_mask(__u
, __a
, __b
);
98 __mmask8
test_mm_cmpge_epu64_mask(__m128i __a
, __m128i __b
) {
99 // CHECK-LABEL: @test_mm_cmpge_epu64_mask
100 // CHECK: icmp uge <2 x i64> %{{.*}}, %{{.*}}
101 return (__mmask8
)_mm_cmpge_epu64_mask(__a
, __b
);
104 __mmask8
test_mm_mask_cmpge_epu64_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
105 // CHECK-LABEL: @test_mm_mask_cmpge_epu64_mask
106 // CHECK: icmp uge <2 x i64> %{{.*}}, %{{.*}}
107 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
108 return (__mmask8
)_mm_mask_cmpge_epu64_mask(__u
, __a
, __b
);
111 __mmask8
test_mm256_cmpge_epu32_mask(__m256i __a
, __m256i __b
) {
112 // CHECK-LABEL: @test_mm256_cmpge_epu32_mask
113 // CHECK: icmp uge <8 x i32> %{{.*}}, %{{.*}}
114 return (__mmask8
)_mm256_cmpge_epu32_mask(__a
, __b
);
117 __mmask8
test_mm256_mask_cmpge_epu32_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
118 // CHECK-LABEL: @test_mm256_mask_cmpge_epu32_mask
119 // CHECK: icmp uge <8 x i32> %{{.*}}, %{{.*}}
120 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
121 return (__mmask8
)_mm256_mask_cmpge_epu32_mask(__u
, __a
, __b
);
124 __mmask8
test_mm256_cmpge_epu64_mask(__m256i __a
, __m256i __b
) {
125 // CHECK-LABEL: @test_mm256_cmpge_epu64_mask
126 // CHECK: icmp uge <4 x i64> %{{.*}}, %{{.*}}
127 return (__mmask8
)_mm256_cmpge_epu64_mask(__a
, __b
);
130 __mmask8
test_mm256_mask_cmpge_epu64_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
131 // CHECK-LABEL: @test_mm256_mask_cmpge_epu64_mask
132 // CHECK: icmp uge <4 x i64> %{{.*}}, %{{.*}}
133 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
134 return (__mmask8
)_mm256_mask_cmpge_epu64_mask(__u
, __a
, __b
);
137 __mmask8
test_mm_cmpgt_epu32_mask(__m128i __a
, __m128i __b
) {
138 // CHECK-LABEL: @test_mm_cmpgt_epu32_mask
139 // CHECK: icmp ugt <4 x i32> %{{.*}}, %{{.*}}
140 return (__mmask8
)_mm_cmpgt_epu32_mask(__a
, __b
);
143 __mmask8
test_mm_mask_cmpgt_epu32_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
144 // CHECK-LABEL: @test_mm_mask_cmpgt_epu32_mask
145 // CHECK: icmp ugt <4 x i32> %{{.*}}, %{{.*}}
146 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
147 return (__mmask8
)_mm_mask_cmpgt_epu32_mask(__u
, __a
, __b
);
150 __mmask8
test_mm_cmpgt_epu64_mask(__m128i __a
, __m128i __b
) {
151 // CHECK-LABEL: @test_mm_cmpgt_epu64_mask
152 // CHECK: icmp ugt <2 x i64> %{{.*}}, %{{.*}}
153 return (__mmask8
)_mm_cmpgt_epu64_mask(__a
, __b
);
156 __mmask8
test_mm_mask_cmpgt_epu64_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
157 // CHECK-LABEL: @test_mm_mask_cmpgt_epu64_mask
158 // CHECK: icmp ugt <2 x i64> %{{.*}}, %{{.*}}
159 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
160 return (__mmask8
)_mm_mask_cmpgt_epu64_mask(__u
, __a
, __b
);
163 __mmask8
test_mm256_cmpgt_epu32_mask(__m256i __a
, __m256i __b
) {
164 // CHECK-LABEL: @test_mm256_cmpgt_epu32_mask
165 // CHECK: icmp ugt <8 x i32> %{{.*}}, %{{.*}}
166 return (__mmask8
)_mm256_cmpgt_epu32_mask(__a
, __b
);
169 __mmask8
test_mm256_mask_cmpgt_epu32_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
170 // CHECK-LABEL: @test_mm256_mask_cmpgt_epu32_mask
171 // CHECK: icmp ugt <8 x i32> %{{.*}}, %{{.*}}
172 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
173 return (__mmask8
)_mm256_mask_cmpgt_epu32_mask(__u
, __a
, __b
);
176 __mmask8
test_mm256_cmpgt_epu64_mask(__m256i __a
, __m256i __b
) {
177 // CHECK-LABEL: @test_mm256_cmpgt_epu64_mask
178 // CHECK: icmp ugt <4 x i64> %{{.*}}, %{{.*}}
179 return (__mmask8
)_mm256_cmpgt_epu64_mask(__a
, __b
);
182 __mmask8
test_mm256_mask_cmpgt_epu64_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
183 // CHECK-LABEL: @test_mm256_mask_cmpgt_epu64_mask
184 // CHECK: icmp ugt <4 x i64> %{{.*}}, %{{.*}}
185 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
186 return (__mmask8
)_mm256_mask_cmpgt_epu64_mask(__u
, __a
, __b
);
189 __mmask8
test_mm_cmple_epi32_mask(__m128i __a
, __m128i __b
) {
190 // CHECK-LABEL: @test_mm_cmple_epi32_mask
191 // CHECK: icmp sle <4 x i32> %{{.*}}, %{{.*}}
192 return (__mmask8
)_mm_cmple_epi32_mask(__a
, __b
);
195 __mmask8
test_mm_mask_cmple_epi32_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
196 // CHECK-LABEL: @test_mm_mask_cmple_epi32_mask
197 // CHECK: icmp sle <4 x i32> %{{.*}}, %{{.*}}
198 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
199 return (__mmask8
)_mm_mask_cmple_epi32_mask(__u
, __a
, __b
);
202 __mmask8
test_mm_cmple_epi64_mask(__m128i __a
, __m128i __b
) {
203 // CHECK-LABEL: @test_mm_cmple_epi64_mask
204 // CHECK: icmp sle <2 x i64> %{{.*}}, %{{.*}}
205 return (__mmask8
)_mm_cmple_epi64_mask(__a
, __b
);
208 __mmask8
test_mm_mask_cmple_epi64_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
209 // CHECK-LABEL: @test_mm_mask_cmple_epi64_mask
210 // CHECK: icmp sle <2 x i64> %{{.*}}, %{{.*}}
211 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
212 return (__mmask8
)_mm_mask_cmple_epi64_mask(__u
, __a
, __b
);
215 __mmask8
test_mm256_cmple_epi32_mask(__m256i __a
, __m256i __b
) {
216 // CHECK-LABEL: @test_mm256_cmple_epi32_mask
217 // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
218 return (__mmask8
)_mm256_cmple_epi32_mask(__a
, __b
);
221 __mmask8
test_mm256_mask_cmple_epi32_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
222 // CHECK-LABEL: @test_mm256_mask_cmple_epi32_mask
223 // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
224 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
225 return (__mmask8
)_mm256_mask_cmple_epi32_mask(__u
, __a
, __b
);
228 __mmask8
test_mm256_cmple_epi64_mask(__m256i __a
, __m256i __b
) {
229 // CHECK-LABEL: @test_mm256_cmple_epi64_mask
230 // CHECK: icmp sle <4 x i64> %{{.*}}, %{{.*}}
231 return (__mmask8
)_mm256_cmple_epi64_mask(__a
, __b
);
234 __mmask8
test_mm256_mask_cmple_epi64_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
235 // CHECK-LABEL: @test_mm256_mask_cmple_epi64_mask
236 // CHECK: icmp sle <4 x i64> %{{.*}}, %{{.*}}
237 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
238 return (__mmask8
)_mm256_mask_cmple_epi64_mask(__u
, __a
, __b
);
241 __mmask8
test_mm_cmple_epu32_mask(__m128i __a
, __m128i __b
) {
242 // CHECK-LABEL: @test_mm_cmple_epu32_mask
243 // CHECK: icmp ule <4 x i32> %{{.*}}, %{{.*}}
244 return (__mmask8
)_mm_cmple_epu32_mask(__a
, __b
);
247 __mmask8
test_mm_mask_cmple_epu32_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
248 // CHECK-LABEL: @test_mm_mask_cmple_epu32_mask
249 // CHECK: icmp ule <4 x i32> %{{.*}}, %{{.*}}
250 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
251 return (__mmask8
)_mm_mask_cmple_epu32_mask(__u
, __a
, __b
);
254 __mmask8
test_mm_cmple_epu64_mask(__m128i __a
, __m128i __b
) {
255 // CHECK-LABEL: @test_mm_cmple_epu64_mask
256 // CHECK: icmp ule <2 x i64> %{{.*}}, %{{.*}}
257 return (__mmask8
)_mm_cmple_epu64_mask(__a
, __b
);
260 __mmask8
test_mm_mask_cmple_epu64_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
261 // CHECK-LABEL: @test_mm_mask_cmple_epu64_mask
262 // CHECK: icmp ule <2 x i64> %{{.*}}, %{{.*}}
263 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
264 return (__mmask8
)_mm_mask_cmple_epu64_mask(__u
, __a
, __b
);
267 __mmask8
test_mm256_cmple_epu32_mask(__m256i __a
, __m256i __b
) {
268 // CHECK-LABEL: @test_mm256_cmple_epu32_mask
269 // CHECK: icmp ule <8 x i32> %{{.*}}, %{{.*}}
270 return (__mmask8
)_mm256_cmple_epu32_mask(__a
, __b
);
273 __mmask8
test_mm256_mask_cmple_epu32_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
274 // CHECK-LABEL: @test_mm256_mask_cmple_epu32_mask
275 // CHECK: icmp ule <8 x i32> %{{.*}}, %{{.*}}
276 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
277 return (__mmask8
)_mm256_mask_cmple_epu32_mask(__u
, __a
, __b
);
280 __mmask8
test_mm256_cmple_epu64_mask(__m256i __a
, __m256i __b
) {
281 // CHECK-LABEL: @test_mm256_cmple_epu64_mask
282 // CHECK: icmp ule <4 x i64> %{{.*}}, %{{.*}}
283 return (__mmask8
)_mm256_cmple_epu64_mask(__a
, __b
);
286 __mmask8
test_mm256_mask_cmple_epu64_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
287 // CHECK-LABEL: @test_mm256_mask_cmple_epu64_mask
288 // CHECK: icmp ule <4 x i64> %{{.*}}, %{{.*}}
289 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
290 return (__mmask8
)_mm256_mask_cmple_epu64_mask(__u
, __a
, __b
);
293 __mmask8
test_mm_cmplt_epi32_mask(__m128i __a
, __m128i __b
) {
294 // CHECK-LABEL: @test_mm_cmplt_epi32_mask
295 // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
296 return (__mmask8
)_mm_cmplt_epi32_mask(__a
, __b
);
299 __mmask8
test_mm_mask_cmplt_epi32_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
300 // CHECK-LABEL: @test_mm_mask_cmplt_epi32_mask
301 // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
302 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
303 return (__mmask8
)_mm_mask_cmplt_epi32_mask(__u
, __a
, __b
);
306 __mmask8
test_mm_cmplt_epi64_mask(__m128i __a
, __m128i __b
) {
307 // CHECK-LABEL: @test_mm_cmplt_epi64_mask
308 // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
309 return (__mmask8
)_mm_cmplt_epi64_mask(__a
, __b
);
312 __mmask8
test_mm_mask_cmplt_epi64_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
313 // CHECK-LABEL: @test_mm_mask_cmplt_epi64_mask
314 // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
315 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
316 return (__mmask8
)_mm_mask_cmplt_epi64_mask(__u
, __a
, __b
);
319 __mmask8
test_mm256_cmplt_epi32_mask(__m256i __a
, __m256i __b
) {
320 // CHECK-LABEL: @test_mm256_cmplt_epi32_mask
321 // CHECK: icmp slt <8 x i32> %{{.*}}, %{{.*}}
322 return (__mmask8
)_mm256_cmplt_epi32_mask(__a
, __b
);
325 __mmask8
test_mm256_mask_cmplt_epi32_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
326 // CHECK-LABEL: @test_mm256_mask_cmplt_epi32_mask
327 // CHECK: icmp slt <8 x i32> %{{.*}}, %{{.*}}
328 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
329 return (__mmask8
)_mm256_mask_cmplt_epi32_mask(__u
, __a
, __b
);
332 __mmask8
test_mm256_cmplt_epi64_mask(__m256i __a
, __m256i __b
) {
333 // CHECK-LABEL: @test_mm256_cmplt_epi64_mask
334 // CHECK: icmp slt <4 x i64> %{{.*}}, %{{.*}}
335 return (__mmask8
)_mm256_cmplt_epi64_mask(__a
, __b
);
338 __mmask8
test_mm256_mask_cmplt_epi64_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
339 // CHECK-LABEL: @test_mm256_mask_cmplt_epi64_mask
340 // CHECK: icmp slt <4 x i64> %{{.*}}, %{{.*}}
341 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
342 return (__mmask8
)_mm256_mask_cmplt_epi64_mask(__u
, __a
, __b
);
345 __mmask8
test_mm_cmplt_epu32_mask(__m128i __a
, __m128i __b
) {
346 // CHECK-LABEL: @test_mm_cmplt_epu32_mask
347 // CHECK: icmp ult <4 x i32> %{{.*}}, %{{.*}}
348 return (__mmask8
)_mm_cmplt_epu32_mask(__a
, __b
);
351 __mmask8
test_mm_mask_cmplt_epu32_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
352 // CHECK-LABEL: @test_mm_mask_cmplt_epu32_mask
353 // CHECK: icmp ult <4 x i32> %{{.*}}, %{{.*}}
354 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
355 return (__mmask8
)_mm_mask_cmplt_epu32_mask(__u
, __a
, __b
);
358 __mmask8
test_mm_cmplt_epu64_mask(__m128i __a
, __m128i __b
) {
359 // CHECK-LABEL: @test_mm_cmplt_epu64_mask
360 // CHECK: icmp ult <2 x i64> %{{.*}}, %{{.*}}
361 return (__mmask8
)_mm_cmplt_epu64_mask(__a
, __b
);
364 __mmask8
test_mm_mask_cmplt_epu64_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
365 // CHECK-LABEL: @test_mm_mask_cmplt_epu64_mask
366 // CHECK: icmp ult <2 x i64> %{{.*}}, %{{.*}}
367 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
368 return (__mmask8
)_mm_mask_cmplt_epu64_mask(__u
, __a
, __b
);
371 __mmask8
test_mm256_cmplt_epu32_mask(__m256i __a
, __m256i __b
) {
372 // CHECK-LABEL: @test_mm256_cmplt_epu32_mask
373 // CHECK: icmp ult <8 x i32> %{{.*}}, %{{.*}}
374 return (__mmask8
)_mm256_cmplt_epu32_mask(__a
, __b
);
377 __mmask8
test_mm256_mask_cmplt_epu32_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
378 // CHECK-LABEL: @test_mm256_mask_cmplt_epu32_mask
379 // CHECK: icmp ult <8 x i32> %{{.*}}, %{{.*}}
380 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
381 return (__mmask8
)_mm256_mask_cmplt_epu32_mask(__u
, __a
, __b
);
384 __mmask8
test_mm256_cmplt_epu64_mask(__m256i __a
, __m256i __b
) {
385 // CHECK-LABEL: @test_mm256_cmplt_epu64_mask
386 // CHECK: icmp ult <4 x i64> %{{.*}}, %{{.*}}
387 return (__mmask8
)_mm256_cmplt_epu64_mask(__a
, __b
);
390 __mmask8
test_mm256_mask_cmplt_epu64_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
391 // CHECK-LABEL: @test_mm256_mask_cmplt_epu64_mask
392 // CHECK: icmp ult <4 x i64> %{{.*}}, %{{.*}}
393 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
394 return (__mmask8
)_mm256_mask_cmplt_epu64_mask(__u
, __a
, __b
);
397 __mmask8
test_mm_cmpneq_epi32_mask(__m128i __a
, __m128i __b
) {
398 // CHECK-LABEL: @test_mm_cmpneq_epi32_mask
399 // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
400 return (__mmask8
)_mm_cmpneq_epi32_mask(__a
, __b
);
403 __mmask8
test_mm_mask_cmpneq_epi32_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
404 // CHECK-LABEL: @test_mm_mask_cmpneq_epi32_mask
405 // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
406 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
407 return (__mmask8
)_mm_mask_cmpneq_epi32_mask(__u
, __a
, __b
);
410 __mmask8
test_mm_cmpneq_epi64_mask(__m128i __a
, __m128i __b
) {
411 // CHECK-LABEL: @test_mm_cmpneq_epi64_mask
412 // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
413 return (__mmask8
)_mm_cmpneq_epi64_mask(__a
, __b
);
416 __mmask8
test_mm_mask_cmpneq_epi64_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
417 // CHECK-LABEL: @test_mm_mask_cmpneq_epi64_mask
418 // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
419 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
420 return (__mmask8
)_mm_mask_cmpneq_epi64_mask(__u
, __a
, __b
);
423 __mmask8
test_mm256_cmpneq_epi32_mask(__m256i __a
, __m256i __b
) {
424 // CHECK-LABEL: @test_mm256_cmpneq_epi32_mask
425 // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
426 return (__mmask8
)_mm256_cmpneq_epi32_mask(__a
, __b
);
429 __mmask8
test_mm256_mask_cmpneq_epi32_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
430 // CHECK-LABEL: @test_mm256_mask_cmpneq_epi32_mask
431 // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
432 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
433 return (__mmask8
)_mm256_mask_cmpneq_epi32_mask(__u
, __a
, __b
);
436 __mmask8
test_mm256_cmpneq_epi64_mask(__m256i __a
, __m256i __b
) {
437 // CHECK-LABEL: @test_mm256_cmpneq_epi64_mask
438 // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
439 return (__mmask8
)_mm256_cmpneq_epi64_mask(__a
, __b
);
442 __mmask8
test_mm256_mask_cmpneq_epi64_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
443 // CHECK-LABEL: @test_mm256_mask_cmpneq_epi64_mask
444 // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
445 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
446 return (__mmask8
)_mm256_mask_cmpneq_epi64_mask(__u
, __a
, __b
);
449 __mmask8
test_mm_cmpneq_epu32_mask(__m128i __a
, __m128i __b
) {
450 // CHECK-LABEL: @test_mm_cmpneq_epu32_mask
451 // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
452 return (__mmask8
)_mm_cmpneq_epu32_mask(__a
, __b
);
455 __mmask8
test_mm_mask_cmpneq_epu32_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
456 // CHECK-LABEL: @test_mm_mask_cmpneq_epu32_mask
457 // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
458 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
459 return (__mmask8
)_mm_mask_cmpneq_epu32_mask(__u
, __a
, __b
);
462 __mmask8
test_mm_cmpneq_epu64_mask(__m128i __a
, __m128i __b
) {
463 // CHECK-LABEL: @test_mm_cmpneq_epu64_mask
464 // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
465 return (__mmask8
)_mm_cmpneq_epu64_mask(__a
, __b
);
468 __mmask8
test_mm_mask_cmpneq_epu64_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
469 // CHECK-LABEL: @test_mm_mask_cmpneq_epu64_mask
470 // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
471 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
472 return (__mmask8
)_mm_mask_cmpneq_epu64_mask(__u
, __a
, __b
);
475 __mmask8
test_mm256_cmpneq_epu32_mask(__m256i __a
, __m256i __b
) {
476 // CHECK-LABEL: @test_mm256_cmpneq_epu32_mask
477 // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
478 return (__mmask8
)_mm256_cmpneq_epu32_mask(__a
, __b
);
481 __mmask8
test_mm256_mask_cmpneq_epu32_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
482 // CHECK-LABEL: @test_mm256_mask_cmpneq_epu32_mask
483 // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
484 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
485 return (__mmask8
)_mm256_mask_cmpneq_epu32_mask(__u
, __a
, __b
);
488 __mmask8
test_mm256_cmpneq_epu64_mask(__m256i __a
, __m256i __b
) {
489 // CHECK-LABEL: @test_mm256_cmpneq_epu64_mask
490 // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
491 return (__mmask8
)_mm256_cmpneq_epu64_mask(__a
, __b
);
494 __mmask8
test_mm256_mask_cmpneq_epu64_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
495 // CHECK-LABEL: @test_mm256_mask_cmpneq_epu64_mask
496 // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
497 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
498 return (__mmask8
)_mm256_mask_cmpneq_epu64_mask(__u
, __a
, __b
);
501 __mmask8
test_mm_cmp_eq_epi32_mask(__m128i __a
, __m128i __b
) {
502 // CHECK-LABEL: @test_mm_cmp_eq_epi32_mask
503 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
504 return (__mmask8
)_mm_cmp_epi32_mask(__a
, __b
, _MM_CMPINT_EQ
);
507 __mmask8
test_mm_mask_cmp_lt_epi32_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
508 // CHECK-LABEL: @test_mm_mask_cmp_lt_epi32_mask
509 // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
510 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
511 return (__mmask8
)_mm_mask_cmp_epi32_mask(__u
, __a
, __b
, _MM_CMPINT_LT
);
514 __mmask8
test_mm_cmp_lt_epi64_mask(__m128i __a
, __m128i __b
) {
515 // CHECK-LABEL: @test_mm_cmp_lt_epi64_mask
516 // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
517 return (__mmask8
)_mm_cmp_epi64_mask(__a
, __b
, _MM_CMPINT_LT
);
520 __mmask8
test_mm_mask_cmp_eq_epi64_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
521 // CHECK-LABEL: @test_mm_mask_cmp_eq_epi64_mask
522 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
523 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
524 return (__mmask8
)_mm_mask_cmp_epi64_mask(__u
, __a
, __b
, _MM_CMPINT_EQ
);
527 __mmask8
test_mm256_cmp_eq_epi32_mask(__m256i __a
, __m256i __b
) {
528 // CHECK-LABEL: @test_mm256_cmp_eq_epi32_mask
529 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
530 return (__mmask8
)_mm256_cmp_epi32_mask(__a
, __b
, _MM_CMPINT_EQ
);
533 __mmask8
test_mm256_mask_cmp_le_epi32_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
534 // CHECK-LABEL: @test_mm256_mask_cmp_le_epi32_mask
535 // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
536 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
537 return (__mmask8
)_mm256_mask_cmp_epi32_mask(__u
, __a
, __b
, _MM_CMPINT_LE
);
540 __mmask8
test_mm256_cmp_eq_epi64_mask(__m256i __a
, __m256i __b
) {
541 // CHECK-LABEL: @test_mm256_cmp_eq_epi64_mask
542 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
543 return (__mmask8
)_mm256_cmp_epi64_mask(__a
, __b
, _MM_CMPINT_EQ
);
546 __mmask8
test_mm256_mask_cmp_eq_epi64_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
547 // CHECK-LABEL: @test_mm256_mask_cmp_eq_epi64_mask
548 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
549 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
550 return (__mmask8
)_mm256_mask_cmp_epi64_mask(__u
, __a
, __b
, _MM_CMPINT_EQ
);
553 __mmask8
test_mm_cmp_epu32_mask(__m128i __a
, __m128i __b
) {
554 // CHECK-LABEL: @test_mm_cmp_epu32_mask
555 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
556 return (__mmask8
)_mm_cmp_epu32_mask(__a
, __b
, 0);
559 __mmask8
test_mm_mask_cmp_epu32_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
560 // CHECK-LABEL: @test_mm_mask_cmp_epu32_mask
561 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
562 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
563 return (__mmask8
)_mm_mask_cmp_epu32_mask(__u
, __a
, __b
, 0);
566 __mmask8
test_mm_cmp_epu64_mask(__m128i __a
, __m128i __b
) {
567 // CHECK-LABEL: @test_mm_cmp_epu64_mask
568 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
569 return (__mmask8
)_mm_cmp_epu64_mask(__a
, __b
, 0);
572 __mmask8
test_mm_mask_cmp_epu64_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
573 // CHECK-LABEL: @test_mm_mask_cmp_epu64_mask
574 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
575 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
576 return (__mmask8
)_mm_mask_cmp_epu64_mask(__u
, __a
, __b
, 0);
579 __mmask8
test_mm256_cmp_epu32_mask(__m256i __a
, __m256i __b
) {
580 // CHECK-LABEL: @test_mm256_cmp_epu32_mask
581 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
582 return (__mmask8
)_mm256_cmp_epu32_mask(__a
, __b
, 0);
585 __mmask8
test_mm256_mask_cmp_epu32_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
586 // CHECK-LABEL: @test_mm256_mask_cmp_epu32_mask
587 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
588 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
589 return (__mmask8
)_mm256_mask_cmp_epu32_mask(__u
, __a
, __b
, 0);
592 __mmask8
test_mm256_cmp_epu64_mask(__m256i __a
, __m256i __b
) {
593 // CHECK-LABEL: @test_mm256_cmp_epu64_mask
594 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
595 return (__mmask8
)_mm256_cmp_epu64_mask(__a
, __b
, 0);
598 __mmask8
test_mm256_mask_cmp_epu64_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
599 // CHECK-LABEL: @test_mm256_mask_cmp_epu64_mask
600 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
601 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
602 return (__mmask8
)_mm256_mask_cmp_epu64_mask(__u
, __a
, __b
, 0);
605 __m256i
test_mm256_mask_add_epi32 (__m256i __W
, __mmask8 __U
, __m256i __A
,
607 //CHECK-LABEL: @test_mm256_mask_add_epi32
608 //CHECK: add <8 x i32> %{{.*}}, %{{.*}}
609 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
610 return _mm256_mask_add_epi32(__W
, __U
, __A
, __B
);
613 __m256i
test_mm256_maskz_add_epi32 (__mmask8 __U
, __m256i __A
, __m256i __B
) {
614 //CHECK-LABEL: @test_mm256_maskz_add_epi32
615 //CHECK: add <8 x i32> %{{.*}}, %{{.*}}
616 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
617 return _mm256_maskz_add_epi32(__U
, __A
, __B
);
620 __m256i
test_mm256_mask_add_epi64 (__m256i __W
, __mmask8 __U
, __m256i __A
,
622 //CHECK-LABEL: @test_mm256_mask_add_epi64
623 //CHECK: add <4 x i64> %{{.*}}, %{{.*}}
624 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
625 return _mm256_mask_add_epi64(__W
,__U
,__A
,__B
);
628 __m256i
test_mm256_maskz_add_epi64 (__mmask8 __U
, __m256i __A
, __m256i __B
) {
629 //CHECK-LABEL: @test_mm256_maskz_add_epi64
630 //CHECK: add <4 x i64> %{{.*}}, %{{.*}}
631 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
632 return _mm256_maskz_add_epi64 (__U
,__A
,__B
);
635 __m256i
test_mm256_mask_sub_epi32 (__m256i __W
, __mmask8 __U
, __m256i __A
,
637 //CHECK-LABEL: @test_mm256_mask_sub_epi32
638 //CHECK: sub <8 x i32> %{{.*}}, %{{.*}}
639 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
640 return _mm256_mask_sub_epi32 (__W
,__U
,__A
,__B
);
643 __m256i
test_mm256_maskz_sub_epi32 (__mmask8 __U
, __m256i __A
, __m256i __B
) {
644 //CHECK-LABEL: @test_mm256_maskz_sub_epi32
645 //CHECK: sub <8 x i32> %{{.*}}, %{{.*}}
646 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
647 return _mm256_maskz_sub_epi32 (__U
,__A
,__B
);
650 __m256i
test_mm256_mask_sub_epi64 (__m256i __W
, __mmask8 __U
, __m256i __A
,
652 //CHECK-LABEL: @test_mm256_mask_sub_epi64
653 //CHECK: sub <4 x i64> %{{.*}}, %{{.*}}
654 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
655 return _mm256_mask_sub_epi64 (__W
,__U
,__A
,__B
);
658 __m256i
test_mm256_maskz_sub_epi64 (__mmask8 __U
, __m256i __A
, __m256i __B
) {
659 //CHECK-LABEL: @test_mm256_maskz_sub_epi64
660 //CHECK: sub <4 x i64> %{{.*}}, %{{.*}}
661 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
662 return _mm256_maskz_sub_epi64 (__U
,__A
,__B
);
665 __m128i
test_mm_mask_add_epi32 (__m128i __W
, __mmask8 __U
, __m128i __A
,
667 //CHECK-LABEL: @test_mm_mask_add_epi32
668 //CHECK: add <4 x i32> %{{.*}}, %{{.*}}
669 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
670 return _mm_mask_add_epi32(__W
,__U
,__A
,__B
);
674 __m128i
test_mm_maskz_add_epi32 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
675 //CHECK-LABEL: @test_mm_maskz_add_epi32
676 //CHECK: add <4 x i32> %{{.*}}, %{{.*}}
677 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
678 return _mm_maskz_add_epi32 (__U
,__A
,__B
);
681 __m128i
test_mm_mask_add_epi64 (__m128i __W
, __mmask8 __U
, __m128i __A
,
683 //CHECK-LABEL: @test_mm_mask_add_epi64
684 //CHECK: add <2 x i64> %{{.*}}, %{{.*}}
685 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
686 return _mm_mask_add_epi64 (__W
,__U
,__A
,__B
);
689 __m128i
test_mm_maskz_add_epi64 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
690 //CHECK-LABEL: @test_mm_maskz_add_epi64
691 //CHECK: add <2 x i64> %{{.*}}, %{{.*}}
692 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
693 return _mm_maskz_add_epi64 (__U
,__A
,__B
);
696 __m128i
test_mm_mask_sub_epi32 (__m128i __W
, __mmask8 __U
, __m128i __A
,
698 //CHECK-LABEL: @test_mm_mask_sub_epi32
699 //CHECK: sub <4 x i32> %{{.*}}, %{{.*}}
700 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
701 return _mm_mask_sub_epi32(__W
, __U
, __A
, __B
);
704 __m128i
test_mm_maskz_sub_epi32 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
705 //CHECK-LABEL: @test_mm_maskz_sub_epi32
706 //CHECK: sub <4 x i32> %{{.*}}, %{{.*}}
707 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
708 return _mm_maskz_sub_epi32(__U
, __A
, __B
);
711 __m128i
test_mm_mask_sub_epi64 (__m128i __W
, __mmask8 __U
, __m128i __A
,
713 //CHECK-LABEL: @test_mm_mask_sub_epi64
714 //CHECK: sub <2 x i64> %{{.*}}, %{{.*}}
715 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
716 return _mm_mask_sub_epi64 (__W
, __U
, __A
, __B
);
719 __m128i
test_mm_maskz_sub_epi64 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
720 //CHECK-LABEL: @test_mm_maskz_sub_epi64
721 //CHECK: sub <2 x i64> %{{.*}}, %{{.*}}
722 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
723 return _mm_maskz_sub_epi64 (__U
, __A
, __B
);
726 __m256i
test_mm256_mask_mul_epi32 (__m256i __W
, __mmask8 __M
, __m256i __X
,
728 //CHECK-LABEL: @test_mm256_mask_mul_epi32
729 //CHECK: shl <4 x i64> %{{.*}}, splat (i64 32)
730 //CHECK: ashr <4 x i64> %{{.*}}, splat (i64 32)
731 //CHECK: shl <4 x i64> %{{.*}}, splat (i64 32)
732 //CHECK: ashr <4 x i64> %{{.*}}, splat (i64 32)
733 //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
734 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
735 return _mm256_mask_mul_epi32(__W
, __M
, __X
, __Y
);
738 __m256i
test_mm256_maskz_mul_epi32 (__mmask8 __M
, __m256i __X
, __m256i __Y
) {
739 //CHECK-LABEL: @test_mm256_maskz_mul_epi32
740 //CHECK: shl <4 x i64> %{{.*}}, splat (i64 32)
741 //CHECK: ashr <4 x i64> %{{.*}}, splat (i64 32)
742 //CHECK: shl <4 x i64> %{{.*}}, splat (i64 32)
743 //CHECK: ashr <4 x i64> %{{.*}}, splat (i64 32)
744 //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
745 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
746 return _mm256_maskz_mul_epi32(__M
, __X
, __Y
);
750 __m128i
test_mm_mask_mul_epi32 (__m128i __W
, __mmask8 __M
, __m128i __X
,
752 //CHECK-LABEL: @test_mm_mask_mul_epi32
753 //CHECK: shl <2 x i64> %{{.*}}, splat (i64 32)
754 //CHECK: ashr <2 x i64> %{{.*}}, splat (i64 32)
755 //CHECK: shl <2 x i64> %{{.*}}, splat (i64 32)
756 //CHECK: ashr <2 x i64> %{{.*}}, splat (i64 32)
757 //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
758 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
759 return _mm_mask_mul_epi32(__W
, __M
, __X
, __Y
);
762 __m128i
test_mm_maskz_mul_epi32 (__mmask8 __M
, __m128i __X
, __m128i __Y
) {
763 //CHECK-LABEL: @test_mm_maskz_mul_epi32
764 //CHECK: shl <2 x i64> %{{.*}}, splat (i64 32)
765 //CHECK: ashr <2 x i64> %{{.*}}, splat (i64 32)
766 //CHECK: shl <2 x i64> %{{.*}}, splat (i64 32)
767 //CHECK: ashr <2 x i64> %{{.*}}, splat (i64 32)
768 //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
769 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
770 return _mm_maskz_mul_epi32(__M
, __X
, __Y
);
773 __m256i
test_mm256_mask_mul_epu32 (__m256i __W
, __mmask8 __M
, __m256i __X
,
775 //CHECK-LABEL: @test_mm256_mask_mul_epu32
776 //CHECK: and <4 x i64> %{{.*}}, splat (i64 4294967295)
777 //CHECK: and <4 x i64> %{{.*}}, splat (i64 4294967295)
778 //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
779 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
780 return _mm256_mask_mul_epu32(__W
, __M
, __X
, __Y
);
783 __m256i
test_mm256_maskz_mul_epu32 (__mmask8 __M
, __m256i __X
, __m256i __Y
) {
784 //CHECK-LABEL: @test_mm256_maskz_mul_epu32
785 //CHECK: and <4 x i64> %{{.*}}, splat (i64 4294967295)
786 //CHECK: and <4 x i64> %{{.*}}, splat (i64 4294967295)
787 //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
788 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
789 return _mm256_maskz_mul_epu32(__M
, __X
, __Y
);
792 __m128i
test_mm_mask_mul_epu32 (__m128i __W
, __mmask8 __M
, __m128i __X
,
794 //CHECK-LABEL: @test_mm_mask_mul_epu32
795 //CHECK: and <2 x i64> %{{.*}}, splat (i64 4294967295)
796 //CHECK: and <2 x i64> %{{.*}}, splat (i64 4294967295)
797 //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
798 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
799 return _mm_mask_mul_epu32(__W
, __M
, __X
, __Y
);
802 __m128i
test_mm_maskz_mul_epu32 (__mmask8 __M
, __m128i __X
, __m128i __Y
) {
803 //CHECK-LABEL: @test_mm_maskz_mul_epu32
804 //CHECK: and <2 x i64> %{{.*}}, splat (i64 4294967295)
805 //CHECK: and <2 x i64> %{{.*}}, splat (i64 4294967295)
806 //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
807 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
808 return _mm_maskz_mul_epu32(__M
, __X
, __Y
);
811 __m128i
test_mm_maskz_mullo_epi32 (__mmask8 __M
, __m128i __A
, __m128i __B
) {
812 //CHECK-LABEL: @test_mm_maskz_mullo_epi32
813 //CHECK: mul <4 x i32> %{{.*}}, %{{.*}}
814 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
815 return _mm_maskz_mullo_epi32(__M
, __A
, __B
);
818 __m128i
test_mm_mask_mullo_epi32 (__m128i __W
, __mmask8 __M
, __m128i __A
,
820 //CHECK-LABEL: @test_mm_mask_mullo_epi32
821 //CHECK: mul <4 x i32> %{{.*}}, %{{.*}}
822 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
823 return _mm_mask_mullo_epi32(__W
, __M
, __A
, __B
);
826 __m256i
test_mm256_maskz_mullo_epi32 (__mmask8 __M
, __m256i __A
, __m256i __B
) {
827 //CHECK-LABEL: @test_mm256_maskz_mullo_epi32
828 //CHECK: mul <8 x i32> %{{.*}}, %{{.*}}
829 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
830 return _mm256_maskz_mullo_epi32(__M
, __A
, __B
);
833 __m256i
test_mm256_mask_mullo_epi32 (__m256i __W
, __mmask8 __M
, __m256i __A
,
835 //CHECK-LABEL: @test_mm256_mask_mullo_epi32
836 //CHECK: mul <8 x i32> %{{.*}}, %{{.*}}
837 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
838 return _mm256_mask_mullo_epi32(__W
, __M
, __A
, __B
);
841 __m256i
test_mm256_and_epi32 (__m256i __A
, __m256i __B
) {
842 //CHECK-LABEL: @test_mm256_and_epi32
843 //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
844 return _mm256_and_epi32(__A
, __B
);
847 __m256i
test_mm256_mask_and_epi32 (__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
848 //CHECK-LABEL: @test_mm256_mask_and_epi32
849 //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
850 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
851 return _mm256_mask_and_epi32(__W
, __U
, __A
, __B
);
854 __m256i
test_mm256_maskz_and_epi32 (__mmask8 __U
, __m256i __A
, __m256i __B
) {
855 //CHECK-LABEL: @test_mm256_maskz_and_epi32
856 //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
857 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
858 return _mm256_maskz_and_epi32(__U
, __A
, __B
);
861 __m128i
test_mm_and_epi32 (__m128i __A
, __m128i __B
) {
862 //CHECK-LABEL: @test_mm_and_epi32
863 //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
864 return _mm_and_epi32(__A
, __B
);
867 __m128i
test_mm_mask_and_epi32 (__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
868 //CHECK-LABEL: @test_mm_mask_and_epi32
869 //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
870 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
871 return _mm_mask_and_epi32(__W
, __U
, __A
, __B
);
874 __m128i
test_mm_maskz_and_epi32 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
875 //CHECK-LABEL: @test_mm_maskz_and_epi32
876 //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
877 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
878 return _mm_maskz_and_epi32(__U
, __A
, __B
);
881 __m256i
test_mm256_andnot_epi32 (__m256i __A
, __m256i __B
) {
882 //CHECK-LABEL: @test_mm256_andnot_epi32
883 //CHECK: xor <8 x i32> %{{.*}}, splat (i32 -1)
884 //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
885 return _mm256_andnot_epi32(__A
, __B
);
888 __m256i
test_mm256_mask_andnot_epi32 (__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
889 //CHECK-LABEL: @test_mm256_mask_andnot_epi32
890 //CHECK: xor <8 x i32> %{{.*}}, splat (i32 -1)
891 //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
892 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
893 return _mm256_mask_andnot_epi32(__W
, __U
, __A
, __B
);
896 __m256i
test_mm256_maskz_andnot_epi32 (__mmask8 __U
, __m256i __A
, __m256i __B
) {
897 //CHECK-LABEL: @test_mm256_maskz_andnot_epi32
898 //CHECK: xor <8 x i32> %{{.*}}, splat (i32 -1)
899 //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
900 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
901 return _mm256_maskz_andnot_epi32(__U
, __A
, __B
);
904 __m128i
test_mm_andnot_epi32 (__m128i __A
, __m128i __B
) {
905 //CHECK-LABEL: @test_mm_andnot_epi32
906 //CHECK: xor <4 x i32> %{{.*}}, splat (i32 -1)
907 //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
908 return _mm_andnot_epi32(__A
, __B
);
911 __m128i
test_mm_mask_andnot_epi32 (__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
912 //CHECK-LABEL: @test_mm_mask_andnot_epi32
913 //CHECK: xor <4 x i32> %{{.*}}, splat (i32 -1)
914 //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
915 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
916 return _mm_mask_andnot_epi32(__W
, __U
, __A
, __B
);
919 __m128i
test_mm_maskz_andnot_epi32 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
920 //CHECK-LABEL: @test_mm_maskz_andnot_epi32
921 //CHECK: xor <4 x i32> %{{.*}}, splat (i32 -1)
922 //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
923 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
924 return _mm_maskz_andnot_epi32(__U
, __A
, __B
);
927 __m256i
test_mm256_or_epi32 (__m256i __A
, __m256i __B
) {
928 //CHECK-LABEL: @test_mm256_or_epi32
929 //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
930 return _mm256_or_epi32(__A
, __B
);
933 __m256i
test_mm256_mask_or_epi32 (__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
934 //CHECK-LABEL: @test_mm256_mask_or_epi32
935 //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
936 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
937 return _mm256_mask_or_epi32(__W
, __U
, __A
, __B
);
940 __m256i
test_mm256_maskz_or_epi32 (__mmask8 __U
, __m256i __A
, __m256i __B
) {
941 //CHECK-LABEL: @test_mm256_maskz_or_epi32
942 //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
943 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
944 return _mm256_maskz_or_epi32(__U
, __A
, __B
);
947 __m128i
test_mm_or_epi32 (__m128i __A
, __m128i __B
) {
948 //CHECK-LABEL: @test_mm_or_epi32
949 //CHECK: or <4 x i32> %{{.*}}, %{{.*}}
950 return _mm_or_epi32(__A
, __B
);
953 __m128i
test_mm_mask_or_epi32 (__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
954 //CHECK-LABEL: @test_mm_mask_or_epi32
955 //CHECK: or <4 x i32> %{{.*}}, %{{.*}}
956 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
957 return _mm_mask_or_epi32(__W
, __U
, __A
, __B
);
960 __m128i
test_mm_maskz_or_epi32 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
961 //CHECK-LABEL: @test_mm_maskz_or_epi32
962 //CHECK: or <4 x i32> %{{.*}}, %{{.*}}
963 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
964 return _mm_maskz_or_epi32(__U
, __A
, __B
);
967 __m256i
test_mm256_xor_epi32 (__m256i __A
, __m256i __B
) {
968 //CHECK-LABEL: @test_mm256_xor_epi32
969 //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
970 return _mm256_xor_epi32(__A
, __B
);
973 __m256i
test_mm256_mask_xor_epi32 (__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
974 //CHECK-LABEL: @test_mm256_mask_xor_epi32
975 //CHECK: xor <8 x i32> %{{.*}}, %{{.*}}
976 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
977 return _mm256_mask_xor_epi32(__W
, __U
, __A
, __B
);
980 __m256i
test_mm256_maskz_xor_epi32 (__mmask8 __U
, __m256i __A
, __m256i __B
) {
981 //CHECK-LABEL: @test_mm256_maskz_xor_epi32
982 //CHECK: xor <8 x i32> %{{.*}}, %{{.*}}
983 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
984 return _mm256_maskz_xor_epi32(__U
, __A
, __B
);
987 __m128i
test_mm_xor_epi32 (__m128i __A
, __m128i __B
) {
988 //CHECK-LABEL: @test_mm_xor_epi32
989 //CHECK: xor <4 x i32> %{{.*}}, %{{.*}}
990 return _mm_xor_epi32(__A
, __B
);
993 __m128i
test_mm_mask_xor_epi32 (__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
994 //CHECK-LABEL: @test_mm_mask_xor_epi32
995 //CHECK: xor <4 x i32> %{{.*}}, %{{.*}}
996 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
997 return _mm_mask_xor_epi32(__W
, __U
, __A
, __B
);
1000 __m128i
test_mm_maskz_xor_epi32 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
1001 //CHECK-LABEL: @test_mm_maskz_xor_epi32
1002 //CHECK: xor <4 x i32> %{{.*}}, %{{.*}}
1003 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
1004 return _mm_maskz_xor_epi32(__U
, __A
, __B
);
1007 __m256i
test_mm256_and_epi64 (__m256i __A
, __m256i __B
) {
1008 //CHECK-LABEL: @test_mm256_and_epi64
1009 //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1010 return _mm256_and_epi64(__A
, __B
);
1013 __m256i
test_mm256_mask_and_epi64 (__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
1014 //CHECK-LABEL: @test_mm256_mask_and_epi64
1015 //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1016 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1017 return _mm256_mask_and_epi64(__W
, __U
, __A
, __B
);
1020 __m256i
test_mm256_maskz_and_epi64 (__mmask8 __U
, __m256i __A
, __m256i __B
) {
1021 //CHECK-LABEL: @test_mm256_maskz_and_epi64
1022 //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1023 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1024 return _mm256_maskz_and_epi64(__U
, __A
, __B
);
1027 __m128i
test_mm_and_epi64 (__m128i __A
, __m128i __B
) {
1028 //CHECK-LABEL: @test_mm_and_epi64
1029 //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1030 return _mm_and_epi64(__A
, __B
);
1033 __m128i
test_mm_mask_and_epi64 (__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
1034 //CHECK-LABEL: @test_mm_mask_and_epi64
1035 //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1036 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1037 return _mm_mask_and_epi64(__W
,__U
, __A
, __B
);
1040 __m128i
test_mm_maskz_and_epi64 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
1041 //CHECK-LABEL: @test_mm_maskz_and_epi64
1042 //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1043 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1044 return _mm_maskz_and_epi64(__U
, __A
, __B
);
1047 __m256i
test_mm256_andnot_epi64 (__m256i __A
, __m256i __B
) {
1048 //CHECK-LABEL: @test_mm256_andnot_epi64
1049 //CHECK: xor <4 x i64> %{{.*}}, splat (i64 -1)
1050 //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1051 return _mm256_andnot_epi64(__A
, __B
);
1054 __m256i
test_mm256_mask_andnot_epi64 (__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
1055 //CHECK-LABEL: @test_mm256_mask_andnot_epi64
1056 //CHECK: xor <4 x i64> %{{.*}}, splat (i64 -1)
1057 //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1058 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1059 return _mm256_mask_andnot_epi64(__W
, __U
, __A
, __B
);
1062 __m256i
test_mm256_maskz_andnot_epi64 (__mmask8 __U
, __m256i __A
, __m256i __B
) {
1063 //CHECK-LABEL: @test_mm256_maskz_andnot_epi64
1064 //CHECK: xor <4 x i64> %{{.*}}, splat (i64 -1)
1065 //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1066 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1067 return _mm256_maskz_andnot_epi64(__U
, __A
, __B
);
1070 __m128i
test_mm_andnot_epi64 (__m128i __A
, __m128i __B
) {
1071 //CHECK-LABEL: @test_mm_andnot_epi64
1072 //CHECK: xor <2 x i64> %{{.*}}, splat (i64 -1)
1073 //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1074 return _mm_andnot_epi64(__A
, __B
);
1077 __m128i
test_mm_mask_andnot_epi64 (__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
1078 //CHECK-LABEL: @test_mm_mask_andnot_epi64
1079 //CHECK: xor <2 x i64> %{{.*}}, splat (i64 -1)
1080 //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1081 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1082 return _mm_mask_andnot_epi64(__W
,__U
, __A
, __B
);
1085 __m128i
test_mm_maskz_andnot_epi64 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
1086 //CHECK-LABEL: @test_mm_maskz_andnot_epi64
1087 //CHECK: xor <2 x i64> %{{.*}}, splat (i64 -1)
1088 //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1089 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1090 return _mm_maskz_andnot_epi64(__U
, __A
, __B
);
1093 __m256i
test_mm256_or_epi64 (__m256i __A
, __m256i __B
) {
1094 //CHECK-LABEL: @test_mm256_or_epi64
1095 //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
1096 return _mm256_or_epi64(__A
, __B
);
1099 __m256i
test_mm256_mask_or_epi64 (__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
1100 //CHECK-LABEL: @test_mm256_mask_or_epi64
1101 //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
1102 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1103 return _mm256_mask_or_epi64(__W
,__U
, __A
, __B
);
1106 __m256i
test_mm256_maskz_or_epi64 (__mmask8 __U
, __m256i __A
, __m256i __B
) {
1107 //CHECK-LABEL: @test_mm256_maskz_or_epi64
1108 //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
1109 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1110 return _mm256_maskz_or_epi64(__U
, __A
, __B
);
1113 __m128i
test_mm_or_epi64 (__m128i __A
, __m128i __B
) {
1114 //CHECK-LABEL: @test_mm_or_epi64
1115 //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
1116 return _mm_or_epi64(__A
, __B
);
1119 __m128i
test_mm_mask_or_epi64 (__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
1120 //CHECK-LABEL: @test_mm_mask_or_epi64
1121 //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
1122 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1123 return _mm_mask_or_epi64(__W
, __U
, __A
, __B
);
1126 __m128i
test_mm_maskz_or_epi64 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
1127 //CHECK-LABEL: @test_mm_maskz_or_epi64
1128 //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
1129 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1130 return _mm_maskz_or_epi64( __U
, __A
, __B
);
1133 __m256i
test_mm256_xor_epi64 (__m256i __A
, __m256i __B
) {
1134 //CHECK-LABEL: @test_mm256_xor_epi64
1135 //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
1136 return _mm256_xor_epi64(__A
, __B
);
1139 __m256i
test_mm256_mask_xor_epi64 (__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
1140 //CHECK-LABEL: @test_mm256_mask_xor_epi64
1141 //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
1142 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1143 return _mm256_mask_xor_epi64(__W
,__U
, __A
, __B
);
1146 __m256i
test_mm256_maskz_xor_epi64 (__mmask8 __U
, __m256i __A
, __m256i __B
) {
1147 //CHECK-LABEL: @test_mm256_maskz_xor_epi64
1148 //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
1149 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1150 return _mm256_maskz_xor_epi64(__U
, __A
, __B
);
1153 __m128i
test_mm_xor_epi64 (__m128i __A
, __m128i __B
) {
1154 //CHECK-LABEL: @test_mm_xor_epi64
1155 //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
1156 return _mm_xor_epi64(__A
, __B
);
1159 __m128i
test_mm_mask_xor_epi64 (__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
1160 //CHECK-LABEL: @test_mm_mask_xor_epi64
1161 //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
1162 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1163 return _mm_mask_xor_epi64(__W
, __U
, __A
, __B
);
1166 __m128i
test_mm_maskz_xor_epi64 (__mmask8 __U
, __m128i __A
, __m128i __B
) {
1167 //CHECK-LABEL: @test_mm_maskz_xor_epi64
1168 //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
1169 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1170 return _mm_maskz_xor_epi64( __U
, __A
, __B
);
1173 __mmask8
test_mm256_cmp_ps_mask_eq_oq(__m256 a
, __m256 b
) {
1174 // CHECK-LABEL: @test_mm256_cmp_ps_mask_eq_oq
1175 // CHECK: fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1176 return _mm256_cmp_ps_mask(a
, b
, _CMP_EQ_OQ
);
1179 __mmask8
test_mm256_cmp_ps_mask_lt_os(__m256 a
, __m256 b
) {
1180 // CHECK-LABEL: test_mm256_cmp_ps_mask_lt_os
1181 // CHECK: fcmp olt <8 x float> %{{.*}}, %{{.*}}
1182 return _mm256_cmp_ps_mask(a
, b
, _CMP_LT_OS
);
1185 __mmask8
test_mm256_cmp_ps_mask_le_os(__m256 a
, __m256 b
) {
1186 // CHECK-LABEL: test_mm256_cmp_ps_mask_le_os
1187 // CHECK: fcmp ole <8 x float> %{{.*}}, %{{.*}}
1188 return _mm256_cmp_ps_mask(a
, b
, _CMP_LE_OS
);
1191 __mmask8
test_mm256_cmp_ps_mask_unord_q(__m256 a
, __m256 b
) {
1192 // CHECK-LABEL: test_mm256_cmp_ps_mask_unord_q
1193 // CHECK: fcmp uno <8 x float> %{{.*}}, %{{.*}}
1194 return _mm256_cmp_ps_mask(a
, b
, _CMP_UNORD_Q
);
1197 __mmask8
test_mm256_cmp_ps_mask_neq_uq(__m256 a
, __m256 b
) {
1198 // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_uq
1199 // CHECK: fcmp une <8 x float> %{{.*}}, %{{.*}}
1200 return _mm256_cmp_ps_mask(a
, b
, _CMP_NEQ_UQ
);
1203 __mmask8
test_mm256_cmp_ps_mask_nlt_us(__m256 a
, __m256 b
) {
1204 // CHECK-LABEL: test_mm256_cmp_ps_mask_nlt_us
1205 // CHECK: fcmp uge <8 x float> %{{.*}}, %{{.*}}
1206 return _mm256_cmp_ps_mask(a
, b
, _CMP_NLT_US
);
1209 __mmask8
test_mm256_cmp_ps_mask_nle_us(__m256 a
, __m256 b
) {
1210 // CHECK-LABEL: test_mm256_cmp_ps_mask_nle_us
1211 // CHECK: fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1212 return _mm256_cmp_ps_mask(a
, b
, _CMP_NLE_US
);
1215 __mmask8
test_mm256_cmp_ps_mask_ord_q(__m256 a
, __m256 b
) {
1216 // CHECK-LABEL: test_mm256_cmp_ps_mask_ord_q
1217 // CHECK: fcmp ord <8 x float> %{{.*}}, %{{.*}}
1218 return _mm256_cmp_ps_mask(a
, b
, _CMP_ORD_Q
);
1221 __mmask8
test_mm256_cmp_ps_mask_eq_uq(__m256 a
, __m256 b
) {
1222 // CHECK-LABEL: test_mm256_cmp_ps_mask_eq_uq
1223 // CHECK: fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1224 return _mm256_cmp_ps_mask(a
, b
, _CMP_EQ_UQ
);
1227 __mmask8
test_mm256_cmp_ps_mask_nge_us(__m256 a
, __m256 b
) {
1228 // CHECK-LABEL: test_mm256_cmp_ps_mask_nge_us
1229 // CHECK: fcmp ult <8 x float> %{{.*}}, %{{.*}}
1230 return _mm256_cmp_ps_mask(a
, b
, _CMP_NGE_US
);
1233 __mmask8
test_mm256_cmp_ps_mask_ngt_us(__m256 a
, __m256 b
) {
1234 // CHECK-LABEL: test_mm256_cmp_ps_mask_ngt_us
1235 // CHECK: fcmp ule <8 x float> %{{.*}}, %{{.*}}
1236 return _mm256_cmp_ps_mask(a
, b
, _CMP_NGT_US
);
1239 __mmask8
test_mm256_cmp_ps_mask_false_oq(__m256 a
, __m256 b
) {
1240 // CHECK-LABEL: test_mm256_cmp_ps_mask_false_oq
1241 // CHECK: fcmp false <8 x float> %{{.*}}, %{{.*}}
1242 return _mm256_cmp_ps_mask(a
, b
, _CMP_FALSE_OQ
);
1245 __mmask8
test_mm256_cmp_ps_mask_neq_oq(__m256 a
, __m256 b
) {
1246 // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_oq
1247 // CHECK: fcmp one <8 x float> %{{.*}}, %{{.*}}
1248 return _mm256_cmp_ps_mask(a
, b
, _CMP_NEQ_OQ
);
1251 __mmask8
test_mm256_cmp_ps_mask_ge_os(__m256 a
, __m256 b
) {
1252 // CHECK-LABEL: test_mm256_cmp_ps_mask_ge_os
1253 // CHECK: fcmp oge <8 x float> %{{.*}}, %{{.*}}
1254 return _mm256_cmp_ps_mask(a
, b
, _CMP_GE_OS
);
1257 __mmask8
test_mm256_cmp_ps_mask_gt_os(__m256 a
, __m256 b
) {
1258 // CHECK-LABEL: test_mm256_cmp_ps_mask_gt_os
1259 // CHECK: fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1260 return _mm256_cmp_ps_mask(a
, b
, _CMP_GT_OS
);
1263 __mmask8
test_mm256_cmp_ps_mask_true_uq(__m256 a
, __m256 b
) {
1264 // CHECK-LABEL: test_mm256_cmp_ps_mask_true_uq
1265 // CHECK: fcmp true <8 x float> %{{.*}}, %{{.*}}
1266 return _mm256_cmp_ps_mask(a
, b
, _CMP_TRUE_UQ
);
1269 __mmask8
test_mm256_cmp_ps_mask_eq_os(__m256 a
, __m256 b
) {
1270 // CHECK-LABEL: test_mm256_cmp_ps_mask_eq_os
1271 // CHECK: fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1272 return _mm256_cmp_ps_mask(a
, b
, _CMP_EQ_OS
);
1275 __mmask8
test_mm256_cmp_ps_mask_lt_oq(__m256 a
, __m256 b
) {
1276 // CHECK-LABEL: test_mm256_cmp_ps_mask_lt_oq
1277 // CHECK: fcmp olt <8 x float> %{{.*}}, %{{.*}}
1278 return _mm256_cmp_ps_mask(a
, b
, _CMP_LT_OQ
);
1281 __mmask8
test_mm256_cmp_ps_mask_le_oq(__m256 a
, __m256 b
) {
1282 // CHECK-LABEL: test_mm256_cmp_ps_mask_le_oq
1283 // CHECK: fcmp ole <8 x float> %{{.*}}, %{{.*}}
1284 return _mm256_cmp_ps_mask(a
, b
, _CMP_LE_OQ
);
1287 __mmask8
test_mm256_cmp_ps_mask_unord_s(__m256 a
, __m256 b
) {
1288 // CHECK-LABEL: test_mm256_cmp_ps_mask_unord_s
1289 // CHECK: fcmp uno <8 x float> %{{.*}}, %{{.*}}
1290 return _mm256_cmp_ps_mask(a
, b
, _CMP_UNORD_S
);
1293 __mmask8
test_mm256_cmp_ps_mask_neq_us(__m256 a
, __m256 b
) {
1294 // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_us
1295 // CHECK: fcmp une <8 x float> %{{.*}}, %{{.*}}
1296 return _mm256_cmp_ps_mask(a
, b
, _CMP_NEQ_US
);
1299 __mmask8
test_mm256_cmp_ps_mask_nlt_uq(__m256 a
, __m256 b
) {
1300 // CHECK-LABEL: test_mm256_cmp_ps_mask_nlt_uq
1301 // CHECK: fcmp uge <8 x float> %{{.*}}, %{{.*}}
1302 return _mm256_cmp_ps_mask(a
, b
, _CMP_NLT_UQ
);
1305 __mmask8
test_mm256_cmp_ps_mask_nle_uq(__m256 a
, __m256 b
) {
1306 // CHECK-LABEL: test_mm256_cmp_ps_mask_nle_uq
1307 // CHECK: fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1308 return _mm256_cmp_ps_mask(a
, b
, _CMP_NLE_UQ
);
1311 __mmask8
test_mm256_cmp_ps_mask_ord_s(__m256 a
, __m256 b
) {
1312 // CHECK-LABEL: test_mm256_cmp_ps_mask_ord_s
1313 // CHECK: fcmp ord <8 x float> %{{.*}}, %{{.*}}
1314 return _mm256_cmp_ps_mask(a
, b
, _CMP_ORD_S
);
1317 __mmask8
test_mm256_cmp_ps_mask_eq_us(__m256 a
, __m256 b
) {
1318 // CHECK-LABEL: test_mm256_cmp_ps_mask_eq_us
1319 // CHECK: fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1320 return _mm256_cmp_ps_mask(a
, b
, _CMP_EQ_US
);
1323 __mmask8
test_mm256_cmp_ps_mask_nge_uq(__m256 a
, __m256 b
) {
1324 // CHECK-LABEL: test_mm256_cmp_ps_mask_nge_uq
1325 // CHECK: fcmp ult <8 x float> %{{.*}}, %{{.*}}
1326 return _mm256_cmp_ps_mask(a
, b
, _CMP_NGE_UQ
);
1329 __mmask8
test_mm256_cmp_ps_mask_ngt_uq(__m256 a
, __m256 b
) {
1330 // CHECK-LABEL: test_mm256_cmp_ps_mask_ngt_uq
1331 // CHECK: fcmp ule <8 x float> %{{.*}}, %{{.*}}
1332 return _mm256_cmp_ps_mask(a
, b
, _CMP_NGT_UQ
);
1335 __mmask8
test_mm256_cmp_ps_mask_false_os(__m256 a
, __m256 b
) {
1336 // CHECK-LABEL: test_mm256_cmp_ps_mask_false_os
1337 // CHECK: fcmp false <8 x float> %{{.*}}, %{{.*}}
1338 return _mm256_cmp_ps_mask(a
, b
, _CMP_FALSE_OS
);
1341 __mmask8
test_mm256_cmp_ps_mask_neq_os(__m256 a
, __m256 b
) {
1342 // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_os
1343 // CHECK: fcmp one <8 x float> %{{.*}}, %{{.*}}
1344 return _mm256_cmp_ps_mask(a
, b
, _CMP_NEQ_OS
);
1347 __mmask8
test_mm256_cmp_ps_mask_ge_oq(__m256 a
, __m256 b
) {
1348 // CHECK-LABEL: test_mm256_cmp_ps_mask_ge_oq
1349 // CHECK: fcmp oge <8 x float> %{{.*}}, %{{.*}}
1350 return _mm256_cmp_ps_mask(a
, b
, _CMP_GE_OQ
);
1353 __mmask8
test_mm256_cmp_ps_mask_gt_oq(__m256 a
, __m256 b
) {
1354 // CHECK-LABEL: test_mm256_cmp_ps_mask_gt_oq
1355 // CHECK: fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1356 return _mm256_cmp_ps_mask(a
, b
, _CMP_GT_OQ
);
1359 __mmask8
test_mm256_cmp_ps_mask_true_us(__m256 a
, __m256 b
) {
1360 // CHECK-LABEL: test_mm256_cmp_ps_mask_true_us
1361 // CHECK: fcmp true <8 x float> %{{.*}}, %{{.*}}
1362 return _mm256_cmp_ps_mask(a
, b
, _CMP_TRUE_US
);
1365 __mmask8
test_mm256_mask_cmp_ps_mask_eq_oq(__mmask8 m
, __m256 a
, __m256 b
) {
1366 // CHECK-LABEL: @test_mm256_mask_cmp_ps_mask_eq_oq
1367 // CHECK: [[CMP:%.*]] = fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1368 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1369 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_EQ_OQ
);
1372 __mmask8
test_mm256_mask_cmp_ps_mask_lt_os(__mmask8 m
, __m256 a
, __m256 b
) {
1373 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_lt_os
1374 // CHECK: [[CMP:%.*]] = fcmp olt <8 x float> %{{.*}}, %{{.*}}
1375 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1376 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_LT_OS
);
1379 __mmask8
test_mm256_mask_cmp_ps_mask_le_os(__mmask8 m
, __m256 a
, __m256 b
) {
1380 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_le_os
1381 // CHECK: [[CMP:%.*]] = fcmp ole <8 x float> %{{.*}}, %{{.*}}
1382 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1383 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_LE_OS
);
1386 __mmask8
test_mm256_mask_cmp_ps_mask_unord_q(__mmask8 m
, __m256 a
, __m256 b
) {
1387 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_unord_q
1388 // CHECK: [[CMP:%.*]] = fcmp uno <8 x float> %{{.*}}, %{{.*}}
1389 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1390 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_UNORD_Q
);
1393 __mmask8
test_mm256_mask_cmp_ps_mask_neq_uq(__mmask8 m
, __m256 a
, __m256 b
) {
1394 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_uq
1395 // CHECK: [[CMP:%.*]] = fcmp une <8 x float> %{{.*}}, %{{.*}}
1396 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1397 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_NEQ_UQ
);
1400 __mmask8
test_mm256_mask_cmp_ps_mask_nlt_us(__mmask8 m
, __m256 a
, __m256 b
) {
1401 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nlt_us
1402 // CHECK: [[CMP:%.*]] = fcmp uge <8 x float> %{{.*}}, %{{.*}}
1403 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1404 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_NLT_US
);
1407 __mmask8
test_mm256_mask_cmp_ps_mask_nle_us(__mmask8 m
, __m256 a
, __m256 b
) {
1408 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nle_us
1409 // CHECK: [[CMP:%.*]] = fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1410 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1411 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_NLE_US
);
1414 __mmask8
test_mm256_mask_cmp_ps_mask_ord_q(__mmask8 m
, __m256 a
, __m256 b
) {
1415 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ord_q
1416 // CHECK: [[CMP:%.*]] = fcmp ord <8 x float> %{{.*}}, %{{.*}}
1417 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1418 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_ORD_Q
);
1421 __mmask8
test_mm256_mask_cmp_ps_mask_eq_uq(__mmask8 m
, __m256 a
, __m256 b
) {
1422 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_eq_uq
1423 // CHECK: [[CMP:%.*]] = fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1424 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1425 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_EQ_UQ
);
1428 __mmask8
test_mm256_mask_cmp_ps_mask_nge_us(__mmask8 m
, __m256 a
, __m256 b
) {
1429 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nge_us
1430 // CHECK: [[CMP:%.*]] = fcmp ult <8 x float> %{{.*}}, %{{.*}}
1431 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1432 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_NGE_US
);
1435 __mmask8
test_mm256_mask_cmp_ps_mask_ngt_us(__mmask8 m
, __m256 a
, __m256 b
) {
1436 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ngt_us
1437 // CHECK: [[CMP:%.*]] = fcmp ule <8 x float> %{{.*}}, %{{.*}}
1438 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1439 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_NGT_US
);
1442 __mmask8
test_mm256_mask_cmp_ps_mask_false_oq(__mmask8 m
, __m256 a
, __m256 b
) {
1443 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_false_oq
1444 // CHECK: [[CMP:%.*]] = fcmp false <8 x float> %{{.*}}, %{{.*}}
1445 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1446 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_FALSE_OQ
);
1449 __mmask8
test_mm256_mask_cmp_ps_mask_neq_oq(__mmask8 m
, __m256 a
, __m256 b
) {
1450 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_oq
1451 // CHECK: [[CMP:%.*]] = fcmp one <8 x float> %{{.*}}, %{{.*}}
1452 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1453 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_NEQ_OQ
);
1456 __mmask8
test_mm256_mask_cmp_ps_mask_ge_os(__mmask8 m
, __m256 a
, __m256 b
) {
1457 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ge_os
1458 // CHECK: [[CMP:%.*]] = fcmp oge <8 x float> %{{.*}}, %{{.*}}
1459 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1460 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_GE_OS
);
1463 __mmask8
test_mm256_mask_cmp_ps_mask_gt_os(__mmask8 m
, __m256 a
, __m256 b
) {
1464 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_gt_os
1465 // CHECK: [[CMP:%.*]] = fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1466 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1467 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_GT_OS
);
1470 __mmask8
test_mm256_mask_cmp_ps_mask_true_uq(__mmask8 m
, __m256 a
, __m256 b
) {
1471 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_true_uq
1472 // CHECK: [[CMP:%.*]] = fcmp true <8 x float> %{{.*}}, %{{.*}}
1473 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1474 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_TRUE_UQ
);
1477 __mmask8
test_mm256_mask_cmp_ps_mask_eq_os(__mmask8 m
, __m256 a
, __m256 b
) {
1478 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_eq_os
1479 // CHECK: [[CMP:%.*]] = fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1480 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1481 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_EQ_OS
);
1484 __mmask8
test_mm256_mask_cmp_ps_mask_lt_oq(__mmask8 m
, __m256 a
, __m256 b
) {
1485 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_lt_oq
1486 // CHECK: [[CMP:%.*]] = fcmp olt <8 x float> %{{.*}}, %{{.*}}
1487 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1488 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_LT_OQ
);
1491 __mmask8
test_mm256_mask_cmp_ps_mask_le_oq(__mmask8 m
, __m256 a
, __m256 b
) {
1492 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_le_oq
1493 // CHECK: [[CMP:%.*]] = fcmp ole <8 x float> %{{.*}}, %{{.*}}
1494 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1495 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_LE_OQ
);
1498 __mmask8
test_mm256_mask_cmp_ps_mask_unord_s(__mmask8 m
, __m256 a
, __m256 b
) {
1499 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_unord_s
1500 // CHECK: [[CMP:%.*]] = fcmp uno <8 x float> %{{.*}}, %{{.*}}
1501 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1502 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_UNORD_S
);
1505 __mmask8
test_mm256_mask_cmp_ps_mask_neq_us(__mmask8 m
, __m256 a
, __m256 b
) {
1506 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_us
1507 // CHECK: [[CMP:%.*]] = fcmp une <8 x float> %{{.*}}, %{{.*}}
1508 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1509 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_NEQ_US
);
1512 __mmask8
test_mm256_mask_cmp_ps_mask_nlt_uq(__mmask8 m
, __m256 a
, __m256 b
) {
1513 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nlt_uq
1514 // CHECK: [[CMP:%.*]] = fcmp uge <8 x float> %{{.*}}, %{{.*}}
1515 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1516 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_NLT_UQ
);
1519 __mmask8
test_mm256_mask_cmp_ps_mask_nle_uq(__mmask8 m
, __m256 a
, __m256 b
) {
1520 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nle_uq
1521 // CHECK: [[CMP:%.*]] = fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1522 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1523 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_NLE_UQ
);
1526 __mmask8
test_mm256_mask_cmp_ps_mask_ord_s(__mmask8 m
, __m256 a
, __m256 b
) {
1527 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ord_s
1528 // CHECK: [[CMP:%.*]] = fcmp ord <8 x float> %{{.*}}, %{{.*}}
1529 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1530 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_ORD_S
);
1533 __mmask8
test_mm256_mask_cmp_ps_mask_eq_us(__mmask8 m
, __m256 a
, __m256 b
) {
1534 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_eq_us
1535 // CHECK: [[CMP:%.*]] = fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1536 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1537 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_EQ_US
);
1540 __mmask8
test_mm256_mask_cmp_ps_mask_nge_uq(__mmask8 m
, __m256 a
, __m256 b
) {
1541 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nge_uq
1542 // CHECK: [[CMP:%.*]] = fcmp ult <8 x float> %{{.*}}, %{{.*}}
1543 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1544 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_NGE_UQ
);
1547 __mmask8
test_mm256_mask_cmp_ps_mask_ngt_uq(__mmask8 m
, __m256 a
, __m256 b
) {
1548 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ngt_uq
1549 // CHECK: [[CMP:%.*]] = fcmp ule <8 x float> %{{.*}}, %{{.*}}
1550 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1551 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_NGT_UQ
);
1554 __mmask8
test_mm256_mask_cmp_ps_mask_false_os(__mmask8 m
, __m256 a
, __m256 b
) {
1555 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_false_os
1556 // CHECK: [[CMP:%.*]] = fcmp false <8 x float> %{{.*}}, %{{.*}}
1557 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1558 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_FALSE_OS
);
1561 __mmask8
test_mm256_mask_cmp_ps_mask_neq_os(__mmask8 m
, __m256 a
, __m256 b
) {
1562 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_os
1563 // CHECK: [[CMP:%.*]] = fcmp one <8 x float> %{{.*}}, %{{.*}}
1564 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1565 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_NEQ_OS
);
1568 __mmask8
test_mm256_mask_cmp_ps_mask_ge_oq(__mmask8 m
, __m256 a
, __m256 b
) {
1569 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ge_oq
1570 // CHECK: [[CMP:%.*]] = fcmp oge <8 x float> %{{.*}}, %{{.*}}
1571 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1572 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_GE_OQ
);
1575 __mmask8
test_mm256_mask_cmp_ps_mask_gt_oq(__mmask8 m
, __m256 a
, __m256 b
) {
1576 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_gt_oq
1577 // CHECK: [[CMP:%.*]] = fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1578 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1579 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_GT_OQ
);
1582 __mmask8
test_mm256_mask_cmp_ps_mask_true_us(__mmask8 m
, __m256 a
, __m256 b
) {
1583 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_true_us
1584 // CHECK: [[CMP:%.*]] = fcmp true <8 x float> %{{.*}}, %{{.*}}
1585 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1586 return _mm256_mask_cmp_ps_mask(m
, a
, b
, _CMP_TRUE_US
);
1589 __mmask8
test_mm256_cmp_pd_mask_eq_oq(__m256d a
, __m256d b
) {
1590 // CHECK-LABEL: @test_mm256_cmp_pd_mask_eq_oq
1591 // CHECK: fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1592 return _mm256_cmp_pd_mask(a
, b
, _CMP_EQ_OQ
);
1595 __mmask8
test_mm256_cmp_pd_mask_lt_os(__m256d a
, __m256d b
) {
1596 // CHECK-LABEL: test_mm256_cmp_pd_mask_lt_os
1597 // CHECK: fcmp olt <4 x double> %{{.*}}, %{{.*}}
1598 return _mm256_cmp_pd_mask(a
, b
, _CMP_LT_OS
);
1601 __mmask8
test_mm256_cmp_pd_mask_le_os(__m256d a
, __m256d b
) {
1602 // CHECK-LABEL: test_mm256_cmp_pd_mask_le_os
1603 // CHECK: fcmp ole <4 x double> %{{.*}}, %{{.*}}
1604 return _mm256_cmp_pd_mask(a
, b
, _CMP_LE_OS
);
1607 __mmask8
test_mm256_cmp_pd_mask_unord_q(__m256d a
, __m256d b
) {
1608 // CHECK-LABEL: test_mm256_cmp_pd_mask_unord_q
1609 // CHECK: fcmp uno <4 x double> %{{.*}}, %{{.*}}
1610 return _mm256_cmp_pd_mask(a
, b
, _CMP_UNORD_Q
);
1613 __mmask8
test_mm256_cmp_pd_mask_neq_uq(__m256d a
, __m256d b
) {
1614 // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_uq
1615 // CHECK: fcmp une <4 x double> %{{.*}}, %{{.*}}
1616 return _mm256_cmp_pd_mask(a
, b
, _CMP_NEQ_UQ
);
1619 __mmask8
test_mm256_cmp_pd_mask_nlt_us(__m256d a
, __m256d b
) {
1620 // CHECK-LABEL: test_mm256_cmp_pd_mask_nlt_us
1621 // CHECK: fcmp uge <4 x double> %{{.*}}, %{{.*}}
1622 return _mm256_cmp_pd_mask(a
, b
, _CMP_NLT_US
);
1625 __mmask8
test_mm256_cmp_pd_mask_nle_us(__m256d a
, __m256d b
) {
1626 // CHECK-LABEL: test_mm256_cmp_pd_mask_nle_us
1627 // CHECK: fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1628 return _mm256_cmp_pd_mask(a
, b
, _CMP_NLE_US
);
1631 __mmask8
test_mm256_cmp_pd_mask_ord_q(__m256d a
, __m256d b
) {
1632 // CHECK-LABEL: test_mm256_cmp_pd_mask_ord_q
1633 // CHECK: fcmp ord <4 x double> %{{.*}}, %{{.*}}
1634 return _mm256_cmp_pd_mask(a
, b
, _CMP_ORD_Q
);
1637 __mmask8
test_mm256_cmp_pd_mask_eq_uq(__m256d a
, __m256d b
) {
1638 // CHECK-LABEL: test_mm256_cmp_pd_mask_eq_uq
1639 // CHECK: fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1640 return _mm256_cmp_pd_mask(a
, b
, _CMP_EQ_UQ
);
1643 __mmask8
test_mm256_cmp_pd_mask_nge_us(__m256d a
, __m256d b
) {
1644 // CHECK-LABEL: test_mm256_cmp_pd_mask_nge_us
1645 // CHECK: fcmp ult <4 x double> %{{.*}}, %{{.*}}
1646 return _mm256_cmp_pd_mask(a
, b
, _CMP_NGE_US
);
1649 __mmask8
test_mm256_cmp_pd_mask_ngt_us(__m256d a
, __m256d b
) {
1650 // CHECK-LABEL: test_mm256_cmp_pd_mask_ngt_us
1651 // CHECK: fcmp ule <4 x double> %{{.*}}, %{{.*}}
1652 return _mm256_cmp_pd_mask(a
, b
, _CMP_NGT_US
);
1655 __mmask8
test_mm256_cmp_pd_mask_false_oq(__m256d a
, __m256d b
) {
1656 // CHECK-LABEL: test_mm256_cmp_pd_mask_false_oq
1657 // CHECK: fcmp false <4 x double> %{{.*}}, %{{.*}}
1658 return _mm256_cmp_pd_mask(a
, b
, _CMP_FALSE_OQ
);
1661 __mmask8
test_mm256_cmp_pd_mask_neq_oq(__m256d a
, __m256d b
) {
1662 // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_oq
1663 // CHECK: fcmp one <4 x double> %{{.*}}, %{{.*}}
1664 return _mm256_cmp_pd_mask(a
, b
, _CMP_NEQ_OQ
);
1667 __mmask8
test_mm256_cmp_pd_mask_ge_os(__m256d a
, __m256d b
) {
1668 // CHECK-LABEL: test_mm256_cmp_pd_mask_ge_os
1669 // CHECK: fcmp oge <4 x double> %{{.*}}, %{{.*}}
1670 return _mm256_cmp_pd_mask(a
, b
, _CMP_GE_OS
);
1673 __mmask8
test_mm256_cmp_pd_mask_gt_os(__m256d a
, __m256d b
) {
1674 // CHECK-LABEL: test_mm256_cmp_pd_mask_gt_os
1675 // CHECK: fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1676 return _mm256_cmp_pd_mask(a
, b
, _CMP_GT_OS
);
1679 __mmask8
test_mm256_cmp_pd_mask_true_uq(__m256d a
, __m256d b
) {
1680 // CHECK-LABEL: test_mm256_cmp_pd_mask_true_uq
1681 // CHECK: fcmp true <4 x double> %{{.*}}, %{{.*}}
1682 return _mm256_cmp_pd_mask(a
, b
, _CMP_TRUE_UQ
);
1685 __mmask8
test_mm256_cmp_pd_mask_eq_os(__m256d a
, __m256d b
) {
1686 // CHECK-LABEL: test_mm256_cmp_pd_mask_eq_os
1687 // CHECK: fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1688 return _mm256_cmp_pd_mask(a
, b
, _CMP_EQ_OS
);
1691 __mmask8
test_mm256_cmp_pd_mask_lt_oq(__m256d a
, __m256d b
) {
1692 // CHECK-LABEL: test_mm256_cmp_pd_mask_lt_oq
1693 // CHECK: fcmp olt <4 x double> %{{.*}}, %{{.*}}
1694 return _mm256_cmp_pd_mask(a
, b
, _CMP_LT_OQ
);
1697 __mmask8
test_mm256_cmp_pd_mask_le_oq(__m256d a
, __m256d b
) {
1698 // CHECK-LABEL: test_mm256_cmp_pd_mask_le_oq
1699 // CHECK: fcmp ole <4 x double> %{{.*}}, %{{.*}}
1700 return _mm256_cmp_pd_mask(a
, b
, _CMP_LE_OQ
);
1703 __mmask8
test_mm256_cmp_pd_mask_unord_s(__m256d a
, __m256d b
) {
1704 // CHECK-LABEL: test_mm256_cmp_pd_mask_unord_s
1705 // CHECK: fcmp uno <4 x double> %{{.*}}, %{{.*}}
1706 return _mm256_cmp_pd_mask(a
, b
, _CMP_UNORD_S
);
1709 __mmask8
test_mm256_cmp_pd_mask_neq_us(__m256d a
, __m256d b
) {
1710 // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_us
1711 // CHECK: fcmp une <4 x double> %{{.*}}, %{{.*}}
1712 return _mm256_cmp_pd_mask(a
, b
, _CMP_NEQ_US
);
1715 __mmask8
test_mm256_cmp_pd_mask_nlt_uq(__m256d a
, __m256d b
) {
1716 // CHECK-LABEL: test_mm256_cmp_pd_mask_nlt_uq
1717 // CHECK: fcmp uge <4 x double> %{{.*}}, %{{.*}}
1718 return _mm256_cmp_pd_mask(a
, b
, _CMP_NLT_UQ
);
1721 __mmask8
test_mm256_cmp_pd_mask_nle_uq(__m256d a
, __m256d b
) {
1722 // CHECK-LABEL: test_mm256_cmp_pd_mask_nle_uq
1723 // CHECK: fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1724 return _mm256_cmp_pd_mask(a
, b
, _CMP_NLE_UQ
);
1727 __mmask8
test_mm256_cmp_pd_mask_ord_s(__m256d a
, __m256d b
) {
1728 // CHECK-LABEL: test_mm256_cmp_pd_mask_ord_s
1729 // CHECK: fcmp ord <4 x double> %{{.*}}, %{{.*}}
1730 return _mm256_cmp_pd_mask(a
, b
, _CMP_ORD_S
);
1733 __mmask8
test_mm256_cmp_pd_mask_eq_us(__m256d a
, __m256d b
) {
1734 // CHECK-LABEL: test_mm256_cmp_pd_mask_eq_us
1735 // CHECK: fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1736 return _mm256_cmp_pd_mask(a
, b
, _CMP_EQ_US
);
1739 __mmask8
test_mm256_cmp_pd_mask_nge_uq(__m256d a
, __m256d b
) {
1740 // CHECK-LABEL: test_mm256_cmp_pd_mask_nge_uq
1741 // CHECK: fcmp ult <4 x double> %{{.*}}, %{{.*}}
1742 return _mm256_cmp_pd_mask(a
, b
, _CMP_NGE_UQ
);
1745 __mmask8
test_mm256_cmp_pd_mask_ngt_uq(__m256d a
, __m256d b
) {
1746 // CHECK-LABEL: test_mm256_cmp_pd_mask_ngt_uq
1747 // CHECK: fcmp ule <4 x double> %{{.*}}, %{{.*}}
1748 return _mm256_cmp_pd_mask(a
, b
, _CMP_NGT_UQ
);
1751 __mmask8
test_mm256_cmp_pd_mask_false_os(__m256d a
, __m256d b
) {
1752 // CHECK-LABEL: test_mm256_cmp_pd_mask_false_os
1753 // CHECK: fcmp false <4 x double> %{{.*}}, %{{.*}}
1754 return _mm256_cmp_pd_mask(a
, b
, _CMP_FALSE_OS
);
1757 __mmask8
test_mm256_cmp_pd_mask_neq_os(__m256d a
, __m256d b
) {
1758 // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_os
1759 // CHECK: fcmp one <4 x double> %{{.*}}, %{{.*}}
1760 return _mm256_cmp_pd_mask(a
, b
, _CMP_NEQ_OS
);
1763 __mmask8
test_mm256_cmp_pd_mask_ge_oq(__m256d a
, __m256d b
) {
1764 // CHECK-LABEL: test_mm256_cmp_pd_mask_ge_oq
1765 // CHECK: fcmp oge <4 x double> %{{.*}}, %{{.*}}
1766 return _mm256_cmp_pd_mask(a
, b
, _CMP_GE_OQ
);
1769 __mmask8
test_mm256_cmp_pd_mask_gt_oq(__m256d a
, __m256d b
) {
1770 // CHECK-LABEL: test_mm256_cmp_pd_mask_gt_oq
1771 // CHECK: fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1772 return _mm256_cmp_pd_mask(a
, b
, _CMP_GT_OQ
);
1775 __mmask8
test_mm256_cmp_pd_mask_true_us(__m256d a
, __m256d b
) {
1776 // CHECK-LABEL: test_mm256_cmp_pd_mask_true_us
1777 // CHECK: fcmp true <4 x double> %{{.*}}, %{{.*}}
1778 return _mm256_cmp_pd_mask(a
, b
, _CMP_TRUE_US
);
1781 __mmask8
test_mm256_mask_cmp_pd_mask_eq_oq(__mmask8 m
, __m256d a
, __m256d b
) {
1782 // CHECK-LABEL: @test_mm256_mask_cmp_pd_mask_eq_oq
1783 // CHECK: [[CMP:%.*]] = fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1784 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1785 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_EQ_OQ
);
1788 __mmask8
test_mm256_mask_cmp_pd_mask_lt_os(__mmask8 m
, __m256d a
, __m256d b
) {
1789 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_lt_os
1790 // CHECK: [[CMP:%.*]] = fcmp olt <4 x double> %{{.*}}, %{{.*}}
1791 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1792 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_LT_OS
);
1795 __mmask8
test_mm256_mask_cmp_pd_mask_le_os(__mmask8 m
, __m256d a
, __m256d b
) {
1796 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_le_os
1797 // CHECK: [[CMP:%.*]] = fcmp ole <4 x double> %{{.*}}, %{{.*}}
1798 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1799 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_LE_OS
);
1802 __mmask8
test_mm256_mask_cmp_pd_mask_unord_q(__mmask8 m
, __m256d a
, __m256d b
) {
1803 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_unord_q
1804 // CHECK: [[CMP:%.*]] = fcmp uno <4 x double> %{{.*}}, %{{.*}}
1805 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1806 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_UNORD_Q
);
1809 __mmask8
test_mm256_mask_cmp_pd_mask_neq_uq(__mmask8 m
, __m256d a
, __m256d b
) {
1810 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_uq
1811 // CHECK: [[CMP:%.*]] = fcmp une <4 x double> %{{.*}}, %{{.*}}
1812 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1813 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_NEQ_UQ
);
1816 __mmask8
test_mm256_mask_cmp_pd_mask_nlt_us(__mmask8 m
, __m256d a
, __m256d b
) {
1817 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nlt_us
1818 // CHECK: [[CMP:%.*]] = fcmp uge <4 x double> %{{.*}}, %{{.*}}
1819 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1820 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_NLT_US
);
1823 __mmask8
test_mm256_mask_cmp_pd_mask_nle_us(__mmask8 m
, __m256d a
, __m256d b
) {
1824 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nle_us
1825 // CHECK: [[CMP:%.*]] = fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1826 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1827 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_NLE_US
);
1830 __mmask8
test_mm256_mask_cmp_pd_mask_ord_q(__mmask8 m
, __m256d a
, __m256d b
) {
1831 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ord_q
1832 // CHECK: [[CMP:%.*]] = fcmp ord <4 x double> %{{.*}}, %{{.*}}
1833 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1834 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_ORD_Q
);
1837 __mmask8
test_mm256_mask_cmp_pd_mask_eq_uq(__mmask8 m
, __m256d a
, __m256d b
) {
1838 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_eq_uq
1839 // CHECK: [[CMP:%.*]] = fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1840 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1841 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_EQ_UQ
);
1844 __mmask8
test_mm256_mask_cmp_pd_mask_nge_us(__mmask8 m
, __m256d a
, __m256d b
) {
1845 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nge_us
1846 // CHECK: [[CMP:%.*]] = fcmp ult <4 x double> %{{.*}}, %{{.*}}
1847 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1848 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_NGE_US
);
1851 __mmask8
test_mm256_mask_cmp_pd_mask_ngt_us(__mmask8 m
, __m256d a
, __m256d b
) {
1852 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ngt_us
1853 // CHECK: [[CMP:%.*]] = fcmp ule <4 x double> %{{.*}}, %{{.*}}
1854 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1855 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_NGT_US
);
1858 __mmask8
test_mm256_mask_cmp_pd_mask_false_oq(__mmask8 m
, __m256d a
, __m256d b
) {
1859 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_false_oq
1860 // CHECK: [[CMP:%.*]] = fcmp false <4 x double> %{{.*}}, %{{.*}}
1861 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1862 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_FALSE_OQ
);
1865 __mmask8
test_mm256_mask_cmp_pd_mask_neq_oq(__mmask8 m
, __m256d a
, __m256d b
) {
1866 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_oq
1867 // CHECK: [[CMP:%.*]] = fcmp one <4 x double> %{{.*}}, %{{.*}}
1868 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1869 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_NEQ_OQ
);
1872 __mmask8
test_mm256_mask_cmp_pd_mask_ge_os(__mmask8 m
, __m256d a
, __m256d b
) {
1873 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ge_os
1874 // CHECK: [[CMP:%.*]] = fcmp oge <4 x double> %{{.*}}, %{{.*}}
1875 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1876 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_GE_OS
);
1879 __mmask8
test_mm256_mask_cmp_pd_mask_gt_os(__mmask8 m
, __m256d a
, __m256d b
) {
1880 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_gt_os
1881 // CHECK: [[CMP:%.*]] = fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1882 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1883 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_GT_OS
);
1886 __mmask8
test_mm256_mask_cmp_pd_mask_true_uq(__mmask8 m
, __m256d a
, __m256d b
) {
1887 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_true_uq
1888 // CHECK: [[CMP:%.*]] = fcmp true <4 x double> %{{.*}}, %{{.*}}
1889 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1890 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_TRUE_UQ
);
1893 __mmask8
test_mm256_mask_cmp_pd_mask_eq_os(__mmask8 m
, __m256d a
, __m256d b
) {
1894 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_eq_os
1895 // CHECK: [[CMP:%.*]] = fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1896 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1897 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_EQ_OS
);
1900 __mmask8
test_mm256_mask_cmp_pd_mask_lt_oq(__mmask8 m
, __m256d a
, __m256d b
) {
1901 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_lt_oq
1902 // CHECK: [[CMP:%.*]] = fcmp olt <4 x double> %{{.*}}, %{{.*}}
1903 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1904 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_LT_OQ
);
1907 __mmask8
test_mm256_mask_cmp_pd_mask_le_oq(__mmask8 m
, __m256d a
, __m256d b
) {
1908 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_le_oq
1909 // CHECK: [[CMP:%.*]] = fcmp ole <4 x double> %{{.*}}, %{{.*}}
1910 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1911 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_LE_OQ
);
1914 __mmask8
test_mm256_mask_cmp_pd_mask_unord_s(__mmask8 m
, __m256d a
, __m256d b
) {
1915 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_unord_s
1916 // CHECK: [[CMP:%.*]] = fcmp uno <4 x double> %{{.*}}, %{{.*}}
1917 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1918 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_UNORD_S
);
1921 __mmask8
test_mm256_mask_cmp_pd_mask_neq_us(__mmask8 m
, __m256d a
, __m256d b
) {
1922 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_us
1923 // CHECK: [[CMP:%.*]] = fcmp une <4 x double> %{{.*}}, %{{.*}}
1924 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1925 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_NEQ_US
);
1928 __mmask8
test_mm256_mask_cmp_pd_mask_nlt_uq(__mmask8 m
, __m256d a
, __m256d b
) {
1929 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nlt_uq
1930 // CHECK: [[CMP:%.*]] = fcmp uge <4 x double> %{{.*}}, %{{.*}}
1931 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1932 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_NLT_UQ
);
1935 __mmask8
test_mm256_mask_cmp_pd_mask_nle_uq(__mmask8 m
, __m256d a
, __m256d b
) {
1936 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nle_uq
1937 // CHECK: [[CMP:%.*]] = fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1938 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1939 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_NLE_UQ
);
1942 __mmask8
test_mm256_mask_cmp_pd_mask_ord_s(__mmask8 m
, __m256d a
, __m256d b
) {
1943 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ord_s
1944 // CHECK: [[CMP:%.*]] = fcmp ord <4 x double> %{{.*}}, %{{.*}}
1945 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1946 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_ORD_S
);
1949 __mmask8
test_mm256_mask_cmp_pd_mask_eq_us(__mmask8 m
, __m256d a
, __m256d b
) {
1950 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_eq_us
1951 // CHECK: [[CMP:%.*]] = fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1952 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1953 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_EQ_US
);
1956 __mmask8
test_mm256_mask_cmp_pd_mask_nge_uq(__mmask8 m
, __m256d a
, __m256d b
) {
1957 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nge_uq
1958 // CHECK: [[CMP:%.*]] = fcmp ult <4 x double> %{{.*}}, %{{.*}}
1959 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1960 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_NGE_UQ
);
1963 __mmask8
test_mm256_mask_cmp_pd_mask_ngt_uq(__mmask8 m
, __m256d a
, __m256d b
) {
1964 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ngt_uq
1965 // CHECK: [[CMP:%.*]] = fcmp ule <4 x double> %{{.*}}, %{{.*}}
1966 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1967 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_NGT_UQ
);
1970 __mmask8
test_mm256_mask_cmp_pd_mask_false_os(__mmask8 m
, __m256d a
, __m256d b
) {
1971 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_false_os
1972 // CHECK: [[CMP:%.*]] = fcmp false <4 x double> %{{.*}}, %{{.*}}
1973 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1974 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_FALSE_OS
);
1977 __mmask8
test_mm256_mask_cmp_pd_mask_neq_os(__mmask8 m
, __m256d a
, __m256d b
) {
1978 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_os
1979 // CHECK: [[CMP:%.*]] = fcmp one <4 x double> %{{.*}}, %{{.*}}
1980 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1981 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_NEQ_OS
);
1984 __mmask8
test_mm256_mask_cmp_pd_mask_ge_oq(__mmask8 m
, __m256d a
, __m256d b
) {
1985 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ge_oq
1986 // CHECK: [[CMP:%.*]] = fcmp oge <4 x double> %{{.*}}, %{{.*}}
1987 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1988 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_GE_OQ
);
1991 __mmask8
test_mm256_mask_cmp_pd_mask_gt_oq(__mmask8 m
, __m256d a
, __m256d b
) {
1992 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_gt_oq
1993 // CHECK: [[CMP:%.*]] = fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1994 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1995 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_GT_OQ
);
1998 __mmask8
test_mm256_mask_cmp_pd_mask_true_us(__mmask8 m
, __m256d a
, __m256d b
) {
1999 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_true_us
2000 // CHECK: [[CMP:%.*]] = fcmp true <4 x double> %{{.*}}, %{{.*}}
2001 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2002 return _mm256_mask_cmp_pd_mask(m
, a
, b
, _CMP_TRUE_US
);
2005 __mmask8
test_mm_cmp_ps_mask_eq_oq(__m128 a
, __m128 b
) {
2006 // CHECK-LABEL: @test_mm_cmp_ps_mask_eq_oq
2007 // CHECK: fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2008 return _mm_cmp_ps_mask(a
, b
, _CMP_EQ_OQ
);
2011 __mmask8
test_mm_cmp_ps_mask_lt_os(__m128 a
, __m128 b
) {
2012 // CHECK-LABEL: test_mm_cmp_ps_mask_lt_os
2013 // CHECK: fcmp olt <4 x float> %{{.*}}, %{{.*}}
2014 return _mm_cmp_ps_mask(a
, b
, _CMP_LT_OS
);
2017 __mmask8
test_mm_cmp_ps_mask_le_os(__m128 a
, __m128 b
) {
2018 // CHECK-LABEL: test_mm_cmp_ps_mask_le_os
2019 // CHECK: fcmp ole <4 x float> %{{.*}}, %{{.*}}
2020 return _mm_cmp_ps_mask(a
, b
, _CMP_LE_OS
);
2023 __mmask8
test_mm_cmp_ps_mask_unord_q(__m128 a
, __m128 b
) {
2024 // CHECK-LABEL: test_mm_cmp_ps_mask_unord_q
2025 // CHECK: fcmp uno <4 x float> %{{.*}}, %{{.*}}
2026 return _mm_cmp_ps_mask(a
, b
, _CMP_UNORD_Q
);
2029 __mmask8
test_mm_cmp_ps_mask_neq_uq(__m128 a
, __m128 b
) {
2030 // CHECK-LABEL: test_mm_cmp_ps_mask_neq_uq
2031 // CHECK: fcmp une <4 x float> %{{.*}}, %{{.*}}
2032 return _mm_cmp_ps_mask(a
, b
, _CMP_NEQ_UQ
);
2035 __mmask8
test_mm_cmp_ps_mask_nlt_us(__m128 a
, __m128 b
) {
2036 // CHECK-LABEL: test_mm_cmp_ps_mask_nlt_us
2037 // CHECK: fcmp uge <4 x float> %{{.*}}, %{{.*}}
2038 return _mm_cmp_ps_mask(a
, b
, _CMP_NLT_US
);
2041 __mmask8
test_mm_cmp_ps_mask_nle_us(__m128 a
, __m128 b
) {
2042 // CHECK-LABEL: test_mm_cmp_ps_mask_nle_us
2043 // CHECK: fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2044 return _mm_cmp_ps_mask(a
, b
, _CMP_NLE_US
);
2047 __mmask8
test_mm_cmp_ps_mask_ord_q(__m128 a
, __m128 b
) {
2048 // CHECK-LABEL: test_mm_cmp_ps_mask_ord_q
2049 // CHECK: fcmp ord <4 x float> %{{.*}}, %{{.*}}
2050 return _mm_cmp_ps_mask(a
, b
, _CMP_ORD_Q
);
2053 __mmask8
test_mm_cmp_ps_mask_eq_uq(__m128 a
, __m128 b
) {
2054 // CHECK-LABEL: test_mm_cmp_ps_mask_eq_uq
2055 // CHECK: fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2056 return _mm_cmp_ps_mask(a
, b
, _CMP_EQ_UQ
);
2059 __mmask8
test_mm_cmp_ps_mask_nge_us(__m128 a
, __m128 b
) {
2060 // CHECK-LABEL: test_mm_cmp_ps_mask_nge_us
2061 // CHECK: fcmp ult <4 x float> %{{.*}}, %{{.*}}
2062 return _mm_cmp_ps_mask(a
, b
, _CMP_NGE_US
);
2065 __mmask8
test_mm_cmp_ps_mask_ngt_us(__m128 a
, __m128 b
) {
2066 // CHECK-LABEL: test_mm_cmp_ps_mask_ngt_us
2067 // CHECK: fcmp ule <4 x float> %{{.*}}, %{{.*}}
2068 return _mm_cmp_ps_mask(a
, b
, _CMP_NGT_US
);
2071 __mmask8
test_mm_cmp_ps_mask_false_oq(__m128 a
, __m128 b
) {
2072 // CHECK-LABEL: test_mm_cmp_ps_mask_false_oq
2073 // CHECK: fcmp false <4 x float> %{{.*}}, %{{.*}}
2074 return _mm_cmp_ps_mask(a
, b
, _CMP_FALSE_OQ
);
2077 __mmask8
test_mm_cmp_ps_mask_neq_oq(__m128 a
, __m128 b
) {
2078 // CHECK-LABEL: test_mm_cmp_ps_mask_neq_oq
2079 // CHECK: fcmp one <4 x float> %{{.*}}, %{{.*}}
2080 return _mm_cmp_ps_mask(a
, b
, _CMP_NEQ_OQ
);
2083 __mmask8
test_mm_cmp_ps_mask_ge_os(__m128 a
, __m128 b
) {
2084 // CHECK-LABEL: test_mm_cmp_ps_mask_ge_os
2085 // CHECK: fcmp oge <4 x float> %{{.*}}, %{{.*}}
2086 return _mm_cmp_ps_mask(a
, b
, _CMP_GE_OS
);
2089 __mmask8
test_mm_cmp_ps_mask_gt_os(__m128 a
, __m128 b
) {
2090 // CHECK-LABEL: test_mm_cmp_ps_mask_gt_os
2091 // CHECK: fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2092 return _mm_cmp_ps_mask(a
, b
, _CMP_GT_OS
);
2095 __mmask8
test_mm_cmp_ps_mask_true_uq(__m128 a
, __m128 b
) {
2096 // CHECK-LABEL: test_mm_cmp_ps_mask_true_uq
2097 // CHECK: fcmp true <4 x float> %{{.*}}, %{{.*}}
2098 return _mm_cmp_ps_mask(a
, b
, _CMP_TRUE_UQ
);
2101 __mmask8
test_mm_cmp_ps_mask_eq_os(__m128 a
, __m128 b
) {
2102 // CHECK-LABEL: test_mm_cmp_ps_mask_eq_os
2103 // CHECK: fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2104 return _mm_cmp_ps_mask(a
, b
, _CMP_EQ_OS
);
2107 __mmask8
test_mm_cmp_ps_mask_lt_oq(__m128 a
, __m128 b
) {
2108 // CHECK-LABEL: test_mm_cmp_ps_mask_lt_oq
2109 // CHECK: fcmp olt <4 x float> %{{.*}}, %{{.*}}
2110 return _mm_cmp_ps_mask(a
, b
, _CMP_LT_OQ
);
2113 __mmask8
test_mm_cmp_ps_mask_le_oq(__m128 a
, __m128 b
) {
2114 // CHECK-LABEL: test_mm_cmp_ps_mask_le_oq
2115 // CHECK: fcmp ole <4 x float> %{{.*}}, %{{.*}}
2116 return _mm_cmp_ps_mask(a
, b
, _CMP_LE_OQ
);
2119 __mmask8
test_mm_cmp_ps_mask_unord_s(__m128 a
, __m128 b
) {
2120 // CHECK-LABEL: test_mm_cmp_ps_mask_unord_s
2121 // CHECK: fcmp uno <4 x float> %{{.*}}, %{{.*}}
2122 return _mm_cmp_ps_mask(a
, b
, _CMP_UNORD_S
);
2125 __mmask8
test_mm_cmp_ps_mask_neq_us(__m128 a
, __m128 b
) {
2126 // CHECK-LABEL: test_mm_cmp_ps_mask_neq_us
2127 // CHECK: fcmp une <4 x float> %{{.*}}, %{{.*}}
2128 return _mm_cmp_ps_mask(a
, b
, _CMP_NEQ_US
);
2131 __mmask8
test_mm_cmp_ps_mask_nlt_uq(__m128 a
, __m128 b
) {
2132 // CHECK-LABEL: test_mm_cmp_ps_mask_nlt_uq
2133 // CHECK: fcmp uge <4 x float> %{{.*}}, %{{.*}}
2134 return _mm_cmp_ps_mask(a
, b
, _CMP_NLT_UQ
);
2137 __mmask8
test_mm_cmp_ps_mask_nle_uq(__m128 a
, __m128 b
) {
2138 // CHECK-LABEL: test_mm_cmp_ps_mask_nle_uq
2139 // CHECK: fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2140 return _mm_cmp_ps_mask(a
, b
, _CMP_NLE_UQ
);
2143 __mmask8
test_mm_cmp_ps_mask_ord_s(__m128 a
, __m128 b
) {
2144 // CHECK-LABEL: test_mm_cmp_ps_mask_ord_s
2145 // CHECK: fcmp ord <4 x float> %{{.*}}, %{{.*}}
2146 return _mm_cmp_ps_mask(a
, b
, _CMP_ORD_S
);
2149 __mmask8
test_mm_cmp_ps_mask_eq_us(__m128 a
, __m128 b
) {
2150 // CHECK-LABEL: test_mm_cmp_ps_mask_eq_us
2151 // CHECK: fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2152 return _mm_cmp_ps_mask(a
, b
, _CMP_EQ_US
);
2155 __mmask8
test_mm_cmp_ps_mask_nge_uq(__m128 a
, __m128 b
) {
2156 // CHECK-LABEL: test_mm_cmp_ps_mask_nge_uq
2157 // CHECK: fcmp ult <4 x float> %{{.*}}, %{{.*}}
2158 return _mm_cmp_ps_mask(a
, b
, _CMP_NGE_UQ
);
2161 __mmask8
test_mm_cmp_ps_mask_ngt_uq(__m128 a
, __m128 b
) {
2162 // CHECK-LABEL: test_mm_cmp_ps_mask_ngt_uq
2163 // CHECK: fcmp ule <4 x float> %{{.*}}, %{{.*}}
2164 return _mm_cmp_ps_mask(a
, b
, _CMP_NGT_UQ
);
2167 __mmask8
test_mm_cmp_ps_mask_false_os(__m128 a
, __m128 b
) {
2168 // CHECK-LABEL: test_mm_cmp_ps_mask_false_os
2169 // CHECK: fcmp false <4 x float> %{{.*}}, %{{.*}}
2170 return _mm_cmp_ps_mask(a
, b
, _CMP_FALSE_OS
);
2173 __mmask8
test_mm_cmp_ps_mask_neq_os(__m128 a
, __m128 b
) {
2174 // CHECK-LABEL: test_mm_cmp_ps_mask_neq_os
2175 // CHECK: fcmp one <4 x float> %{{.*}}, %{{.*}}
2176 return _mm_cmp_ps_mask(a
, b
, _CMP_NEQ_OS
);
2179 __mmask8
test_mm_cmp_ps_mask_ge_oq(__m128 a
, __m128 b
) {
2180 // CHECK-LABEL: test_mm_cmp_ps_mask_ge_oq
2181 // CHECK: fcmp oge <4 x float> %{{.*}}, %{{.*}}
2182 return _mm_cmp_ps_mask(a
, b
, _CMP_GE_OQ
);
2185 __mmask8
test_mm_cmp_ps_mask_gt_oq(__m128 a
, __m128 b
) {
2186 // CHECK-LABEL: test_mm_cmp_ps_mask_gt_oq
2187 // CHECK: fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2188 return _mm_cmp_ps_mask(a
, b
, _CMP_GT_OQ
);
2191 __mmask8
test_mm_cmp_ps_mask_true_us(__m128 a
, __m128 b
) {
2192 // CHECK-LABEL: test_mm_cmp_ps_mask_true_us
2193 // CHECK: fcmp true <4 x float> %{{.*}}, %{{.*}}
2194 return _mm_cmp_ps_mask(a
, b
, _CMP_TRUE_US
);
2197 __mmask8
test_mm_mask_cmp_ps_mask_eq_oq(__mmask8 m
, __m128 a
, __m128 b
) {
2198 // CHECK-LABEL: @test_mm_mask_cmp_ps_mask_eq_oq
2199 // CHECK: [[CMP:%.*]] = fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2200 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2201 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_EQ_OQ
);
2204 __mmask8
test_mm_mask_cmp_ps_mask_lt_os(__mmask8 m
, __m128 a
, __m128 b
) {
2205 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_lt_os
2206 // CHECK: [[CMP:%.*]] = fcmp olt <4 x float> %{{.*}}, %{{.*}}
2207 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2208 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_LT_OS
);
2211 __mmask8
test_mm_mask_cmp_ps_mask_le_os(__mmask8 m
, __m128 a
, __m128 b
) {
2212 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_le_os
2213 // CHECK: [[CMP:%.*]] = fcmp ole <4 x float> %{{.*}}, %{{.*}}
2214 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2215 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_LE_OS
);
2218 __mmask8
test_mm_mask_cmp_ps_mask_unord_q(__mmask8 m
, __m128 a
, __m128 b
) {
2219 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_unord_q
2220 // CHECK: [[CMP:%.*]] = fcmp uno <4 x float> %{{.*}}, %{{.*}}
2221 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2222 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_UNORD_Q
);
2225 __mmask8
test_mm_mask_cmp_ps_mask_neq_uq(__mmask8 m
, __m128 a
, __m128 b
) {
2226 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_uq
2227 // CHECK: [[CMP:%.*]] = fcmp une <4 x float> %{{.*}}, %{{.*}}
2228 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2229 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_NEQ_UQ
);
2232 __mmask8
test_mm_mask_cmp_ps_mask_nlt_us(__mmask8 m
, __m128 a
, __m128 b
) {
2233 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nlt_us
2234 // CHECK: [[CMP:%.*]] = fcmp uge <4 x float> %{{.*}}, %{{.*}}
2235 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2236 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_NLT_US
);
2239 __mmask8
test_mm_mask_cmp_ps_mask_nle_us(__mmask8 m
, __m128 a
, __m128 b
) {
2240 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nle_us
2241 // CHECK: [[CMP:%.*]] = fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2242 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2243 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_NLE_US
);
2246 __mmask8
test_mm_mask_cmp_ps_mask_ord_q(__mmask8 m
, __m128 a
, __m128 b
) {
2247 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ord_q
2248 // CHECK: [[CMP:%.*]] = fcmp ord <4 x float> %{{.*}}, %{{.*}}
2249 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2250 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_ORD_Q
);
2253 __mmask8
test_mm_mask_cmp_ps_mask_eq_uq(__mmask8 m
, __m128 a
, __m128 b
) {
2254 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_eq_uq
2255 // CHECK: [[CMP:%.*]] = fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2256 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2257 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_EQ_UQ
);
2260 __mmask8
test_mm_mask_cmp_ps_mask_nge_us(__mmask8 m
, __m128 a
, __m128 b
) {
2261 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nge_us
2262 // CHECK: [[CMP:%.*]] = fcmp ult <4 x float> %{{.*}}, %{{.*}}
2263 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2264 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_NGE_US
);
2267 __mmask8
test_mm_mask_cmp_ps_mask_ngt_us(__mmask8 m
, __m128 a
, __m128 b
) {
2268 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ngt_us
2269 // CHECK: [[CMP:%.*]] = fcmp ule <4 x float> %{{.*}}, %{{.*}}
2270 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2271 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_NGT_US
);
2274 __mmask8
test_mm_mask_cmp_ps_mask_false_oq(__mmask8 m
, __m128 a
, __m128 b
) {
2275 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_false_oq
2276 // CHECK: [[CMP:%.*]] = fcmp false <4 x float> %{{.*}}, %{{.*}}
2277 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2278 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_FALSE_OQ
);
2281 __mmask8
test_mm_mask_cmp_ps_mask_neq_oq(__mmask8 m
, __m128 a
, __m128 b
) {
2282 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_oq
2283 // CHECK: [[CMP:%.*]] = fcmp one <4 x float> %{{.*}}, %{{.*}}
2284 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2285 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_NEQ_OQ
);
2288 __mmask8
test_mm_mask_cmp_ps_mask_ge_os(__mmask8 m
, __m128 a
, __m128 b
) {
2289 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ge_os
2290 // CHECK: [[CMP:%.*]] = fcmp oge <4 x float> %{{.*}}, %{{.*}}
2291 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2292 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_GE_OS
);
2295 __mmask8
test_mm_mask_cmp_ps_mask_gt_os(__mmask8 m
, __m128 a
, __m128 b
) {
2296 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_gt_os
2297 // CHECK: [[CMP:%.*]] = fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2298 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2299 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_GT_OS
);
2302 __mmask8
test_mm_mask_cmp_ps_mask_true_uq(__mmask8 m
, __m128 a
, __m128 b
) {
2303 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_true_uq
2304 // CHECK: [[CMP:%.*]] = fcmp true <4 x float> %{{.*}}, %{{.*}}
2305 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2306 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_TRUE_UQ
);
2309 __mmask8
test_mm_mask_cmp_ps_mask_eq_os(__mmask8 m
, __m128 a
, __m128 b
) {
2310 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_eq_os
2311 // CHECK: [[CMP:%.*]] = fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2312 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2313 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_EQ_OS
);
2316 __mmask8
test_mm_mask_cmp_ps_mask_lt_oq(__mmask8 m
, __m128 a
, __m128 b
) {
2317 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_lt_oq
2318 // CHECK: [[CMP:%.*]] = fcmp olt <4 x float> %{{.*}}, %{{.*}}
2319 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2320 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_LT_OQ
);
2323 __mmask8
test_mm_mask_cmp_ps_mask_le_oq(__mmask8 m
, __m128 a
, __m128 b
) {
2324 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_le_oq
2325 // CHECK: [[CMP:%.*]] = fcmp ole <4 x float> %{{.*}}, %{{.*}}
2326 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2327 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_LE_OQ
);
2330 __mmask8
test_mm_mask_cmp_ps_mask_unord_s(__mmask8 m
, __m128 a
, __m128 b
) {
2331 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_unord_s
2332 // CHECK: [[CMP:%.*]] = fcmp uno <4 x float> %{{.*}}, %{{.*}}
2333 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2334 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_UNORD_S
);
2337 __mmask8
test_mm_mask_cmp_ps_mask_neq_us(__mmask8 m
, __m128 a
, __m128 b
) {
2338 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_us
2339 // CHECK: [[CMP:%.*]] = fcmp une <4 x float> %{{.*}}, %{{.*}}
2340 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2341 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_NEQ_US
);
2344 __mmask8
test_mm_mask_cmp_ps_mask_nlt_uq(__mmask8 m
, __m128 a
, __m128 b
) {
2345 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nlt_uq
2346 // CHECK: [[CMP:%.*]] = fcmp uge <4 x float> %{{.*}}, %{{.*}}
2347 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2348 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_NLT_UQ
);
2351 __mmask8
test_mm_mask_cmp_ps_mask_nle_uq(__mmask8 m
, __m128 a
, __m128 b
) {
2352 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nle_uq
2353 // CHECK: [[CMP:%.*]] = fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2354 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2355 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_NLE_UQ
);
2358 __mmask8
test_mm_mask_cmp_ps_mask_ord_s(__mmask8 m
, __m128 a
, __m128 b
) {
2359 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ord_s
2360 // CHECK: [[CMP:%.*]] = fcmp ord <4 x float> %{{.*}}, %{{.*}}
2361 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2362 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_ORD_S
);
2365 __mmask8
test_mm_mask_cmp_ps_mask_eq_us(__mmask8 m
, __m128 a
, __m128 b
) {
2366 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_eq_us
2367 // CHECK: [[CMP:%.*]] = fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2368 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2369 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_EQ_US
);
2372 __mmask8
test_mm_mask_cmp_ps_mask_nge_uq(__mmask8 m
, __m128 a
, __m128 b
) {
2373 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nge_uq
2374 // CHECK: [[CMP:%.*]] = fcmp ult <4 x float> %{{.*}}, %{{.*}}
2375 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2376 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_NGE_UQ
);
2379 __mmask8
test_mm_mask_cmp_ps_mask_ngt_uq(__mmask8 m
, __m128 a
, __m128 b
) {
2380 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ngt_uq
2381 // CHECK: [[CMP:%.*]] = fcmp ule <4 x float> %{{.*}}, %{{.*}}
2382 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2383 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_NGT_UQ
);
2386 __mmask8
test_mm_mask_cmp_ps_mask_false_os(__mmask8 m
, __m128 a
, __m128 b
) {
2387 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_false_os
2388 // CHECK: [[CMP:%.*]] = fcmp false <4 x float> %{{.*}}, %{{.*}}
2389 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2390 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_FALSE_OS
);
2393 __mmask8
test_mm_mask_cmp_ps_mask_neq_os(__mmask8 m
, __m128 a
, __m128 b
) {
2394 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_os
2395 // CHECK: [[CMP:%.*]] = fcmp one <4 x float> %{{.*}}, %{{.*}}
2396 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2397 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_NEQ_OS
);
2400 __mmask8
test_mm_mask_cmp_ps_mask_ge_oq(__mmask8 m
, __m128 a
, __m128 b
) {
2401 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ge_oq
2402 // CHECK: [[CMP:%.*]] = fcmp oge <4 x float> %{{.*}}, %{{.*}}
2403 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2404 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_GE_OQ
);
2407 __mmask8
test_mm_mask_cmp_ps_mask_gt_oq(__mmask8 m
, __m128 a
, __m128 b
) {
2408 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_gt_oq
2409 // CHECK: [[CMP:%.*]] = fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2410 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2411 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_GT_OQ
);
2414 __mmask8
test_mm_mask_cmp_ps_mask_true_us(__mmask8 m
, __m128 a
, __m128 b
) {
2415 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_true_us
2416 // CHECK: [[CMP:%.*]] = fcmp true <4 x float> %{{.*}}, %{{.*}}
2417 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2418 return _mm_mask_cmp_ps_mask(m
, a
, b
, _CMP_TRUE_US
);
2421 __mmask8
test_mm_cmp_pd_mask_eq_oq(__m128d a
, __m128d b
) {
2422 // CHECK-LABEL: @test_mm_cmp_pd_mask_eq_oq
2423 // CHECK: fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2424 return _mm_cmp_pd_mask(a
, b
, _CMP_EQ_OQ
);
2427 __mmask8
test_mm_cmp_pd_mask_lt_os(__m128d a
, __m128d b
) {
2428 // CHECK-LABEL: test_mm_cmp_pd_mask_lt_os
2429 // CHECK: fcmp olt <2 x double> %{{.*}}, %{{.*}}
2430 return _mm_cmp_pd_mask(a
, b
, _CMP_LT_OS
);
2433 __mmask8
test_mm_cmp_pd_mask_le_os(__m128d a
, __m128d b
) {
2434 // CHECK-LABEL: test_mm_cmp_pd_mask_le_os
2435 // CHECK: fcmp ole <2 x double> %{{.*}}, %{{.*}}
2436 return _mm_cmp_pd_mask(a
, b
, _CMP_LE_OS
);
2439 __mmask8
test_mm_cmp_pd_mask_unord_q(__m128d a
, __m128d b
) {
2440 // CHECK-LABEL: test_mm_cmp_pd_mask_unord_q
2441 // CHECK: fcmp uno <2 x double> %{{.*}}, %{{.*}}
2442 return _mm_cmp_pd_mask(a
, b
, _CMP_UNORD_Q
);
2445 __mmask8
test_mm_cmp_pd_mask_neq_uq(__m128d a
, __m128d b
) {
2446 // CHECK-LABEL: test_mm_cmp_pd_mask_neq_uq
2447 // CHECK: fcmp une <2 x double> %{{.*}}, %{{.*}}
2448 return _mm_cmp_pd_mask(a
, b
, _CMP_NEQ_UQ
);
2451 __mmask8
test_mm_cmp_pd_mask_nlt_us(__m128d a
, __m128d b
) {
2452 // CHECK-LABEL: test_mm_cmp_pd_mask_nlt_us
2453 // CHECK: fcmp uge <2 x double> %{{.*}}, %{{.*}}
2454 return _mm_cmp_pd_mask(a
, b
, _CMP_NLT_US
);
2457 __mmask8
test_mm_cmp_pd_mask_nle_us(__m128d a
, __m128d b
) {
2458 // CHECK-LABEL: test_mm_cmp_pd_mask_nle_us
2459 // CHECK: fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2460 return _mm_cmp_pd_mask(a
, b
, _CMP_NLE_US
);
2463 __mmask8
test_mm_cmp_pd_mask_ord_q(__m128d a
, __m128d b
) {
2464 // CHECK-LABEL: test_mm_cmp_pd_mask_ord_q
2465 // CHECK: fcmp ord <2 x double> %{{.*}}, %{{.*}}
2466 return _mm_cmp_pd_mask(a
, b
, _CMP_ORD_Q
);
2469 __mmask8
test_mm_cmp_pd_mask_eq_uq(__m128d a
, __m128d b
) {
2470 // CHECK-LABEL: test_mm_cmp_pd_mask_eq_uq
2471 // CHECK: fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2472 return _mm_cmp_pd_mask(a
, b
, _CMP_EQ_UQ
);
2475 __mmask8
test_mm_cmp_pd_mask_nge_us(__m128d a
, __m128d b
) {
2476 // CHECK-LABEL: test_mm_cmp_pd_mask_nge_us
2477 // CHECK: fcmp ult <2 x double> %{{.*}}, %{{.*}}
2478 return _mm_cmp_pd_mask(a
, b
, _CMP_NGE_US
);
2481 __mmask8
test_mm_cmp_pd_mask_ngt_us(__m128d a
, __m128d b
) {
2482 // CHECK-LABEL: test_mm_cmp_pd_mask_ngt_us
2483 // CHECK: fcmp ule <2 x double> %{{.*}}, %{{.*}}
2484 return _mm_cmp_pd_mask(a
, b
, _CMP_NGT_US
);
2487 __mmask8
test_mm_cmp_pd_mask_false_oq(__m128d a
, __m128d b
) {
2488 // CHECK-LABEL: test_mm_cmp_pd_mask_false_oq
2489 // CHECK: fcmp false <2 x double> %{{.*}}, %{{.*}}
2490 return _mm_cmp_pd_mask(a
, b
, _CMP_FALSE_OQ
);
2493 __mmask8
test_mm_cmp_pd_mask_neq_oq(__m128d a
, __m128d b
) {
2494 // CHECK-LABEL: test_mm_cmp_pd_mask_neq_oq
2495 // CHECK: fcmp one <2 x double> %{{.*}}, %{{.*}}
2496 return _mm_cmp_pd_mask(a
, b
, _CMP_NEQ_OQ
);
2499 __mmask8
test_mm_cmp_pd_mask_ge_os(__m128d a
, __m128d b
) {
2500 // CHECK-LABEL: test_mm_cmp_pd_mask_ge_os
2501 // CHECK: fcmp oge <2 x double> %{{.*}}, %{{.*}}
2502 return _mm_cmp_pd_mask(a
, b
, _CMP_GE_OS
);
2505 __mmask8
test_mm_cmp_pd_mask_gt_os(__m128d a
, __m128d b
) {
2506 // CHECK-LABEL: test_mm_cmp_pd_mask_gt_os
2507 // CHECK: fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2508 return _mm_cmp_pd_mask(a
, b
, _CMP_GT_OS
);
2511 __mmask8
test_mm_cmp_pd_mask_true_uq(__m128d a
, __m128d b
) {
2512 // CHECK-LABEL: test_mm_cmp_pd_mask_true_uq
2513 // CHECK: fcmp true <2 x double> %{{.*}}, %{{.*}}
2514 return _mm_cmp_pd_mask(a
, b
, _CMP_TRUE_UQ
);
2517 __mmask8
test_mm_cmp_pd_mask_eq_os(__m128d a
, __m128d b
) {
2518 // CHECK-LABEL: test_mm_cmp_pd_mask_eq_os
2519 // CHECK: fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2520 return _mm_cmp_pd_mask(a
, b
, _CMP_EQ_OS
);
2523 __mmask8
test_mm_cmp_pd_mask_lt_oq(__m128d a
, __m128d b
) {
2524 // CHECK-LABEL: test_mm_cmp_pd_mask_lt_oq
2525 // CHECK: fcmp olt <2 x double> %{{.*}}, %{{.*}}
2526 return _mm_cmp_pd_mask(a
, b
, _CMP_LT_OQ
);
2529 __mmask8
test_mm_cmp_pd_mask_le_oq(__m128d a
, __m128d b
) {
2530 // CHECK-LABEL: test_mm_cmp_pd_mask_le_oq
2531 // CHECK: fcmp ole <2 x double> %{{.*}}, %{{.*}}
2532 return _mm_cmp_pd_mask(a
, b
, _CMP_LE_OQ
);
2535 __mmask8
test_mm_cmp_pd_mask_unord_s(__m128d a
, __m128d b
) {
2536 // CHECK-LABEL: test_mm_cmp_pd_mask_unord_s
2537 // CHECK: fcmp uno <2 x double> %{{.*}}, %{{.*}}
2538 return _mm_cmp_pd_mask(a
, b
, _CMP_UNORD_S
);
2541 __mmask8
test_mm_cmp_pd_mask_neq_us(__m128d a
, __m128d b
) {
2542 // CHECK-LABEL: test_mm_cmp_pd_mask_neq_us
2543 // CHECK: fcmp une <2 x double> %{{.*}}, %{{.*}}
2544 return _mm_cmp_pd_mask(a
, b
, _CMP_NEQ_US
);
2547 __mmask8
test_mm_cmp_pd_mask_nlt_uq(__m128d a
, __m128d b
) {
2548 // CHECK-LABEL: test_mm_cmp_pd_mask_nlt_uq
2549 // CHECK: fcmp uge <2 x double> %{{.*}}, %{{.*}}
2550 return _mm_cmp_pd_mask(a
, b
, _CMP_NLT_UQ
);
2553 __mmask8
test_mm_cmp_pd_mask_nle_uq(__m128d a
, __m128d b
) {
2554 // CHECK-LABEL: test_mm_cmp_pd_mask_nle_uq
2555 // CHECK: fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2556 return _mm_cmp_pd_mask(a
, b
, _CMP_NLE_UQ
);
2559 __mmask8
test_mm_cmp_pd_mask_ord_s(__m128d a
, __m128d b
) {
2560 // CHECK-LABEL: test_mm_cmp_pd_mask_ord_s
2561 // CHECK: fcmp ord <2 x double> %{{.*}}, %{{.*}}
2562 return _mm_cmp_pd_mask(a
, b
, _CMP_ORD_S
);
2565 __mmask8
test_mm_cmp_pd_mask_eq_us(__m128d a
, __m128d b
) {
2566 // CHECK-LABEL: test_mm_cmp_pd_mask_eq_us
2567 // CHECK: fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2568 return _mm_cmp_pd_mask(a
, b
, _CMP_EQ_US
);
2571 __mmask8
test_mm_cmp_pd_mask_nge_uq(__m128d a
, __m128d b
) {
2572 // CHECK-LABEL: test_mm_cmp_pd_mask_nge_uq
2573 // CHECK: fcmp ult <2 x double> %{{.*}}, %{{.*}}
2574 return _mm_cmp_pd_mask(a
, b
, _CMP_NGE_UQ
);
2577 __mmask8
test_mm_cmp_pd_mask_ngt_uq(__m128d a
, __m128d b
) {
2578 // CHECK-LABEL: test_mm_cmp_pd_mask_ngt_uq
2579 // CHECK: fcmp ule <2 x double> %{{.*}}, %{{.*}}
2580 return _mm_cmp_pd_mask(a
, b
, _CMP_NGT_UQ
);
2583 __mmask8
test_mm_cmp_pd_mask_false_os(__m128d a
, __m128d b
) {
2584 // CHECK-LABEL: test_mm_cmp_pd_mask_false_os
2585 // CHECK: fcmp false <2 x double> %{{.*}}, %{{.*}}
2586 return _mm_cmp_pd_mask(a
, b
, _CMP_FALSE_OS
);
2589 __mmask8
test_mm_cmp_pd_mask_neq_os(__m128d a
, __m128d b
) {
2590 // CHECK-LABEL: test_mm_cmp_pd_mask_neq_os
2591 // CHECK: fcmp one <2 x double> %{{.*}}, %{{.*}}
2592 return _mm_cmp_pd_mask(a
, b
, _CMP_NEQ_OS
);
2595 __mmask8
test_mm_cmp_pd_mask_ge_oq(__m128d a
, __m128d b
) {
2596 // CHECK-LABEL: test_mm_cmp_pd_mask_ge_oq
2597 // CHECK: fcmp oge <2 x double> %{{.*}}, %{{.*}}
2598 return _mm_cmp_pd_mask(a
, b
, _CMP_GE_OQ
);
2601 __mmask8
test_mm_cmp_pd_mask_gt_oq(__m128d a
, __m128d b
) {
2602 // CHECK-LABEL: test_mm_cmp_pd_mask_gt_oq
2603 // CHECK: fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2604 return _mm_cmp_pd_mask(a
, b
, _CMP_GT_OQ
);
2607 __mmask8
test_mm_cmp_pd_mask_true_us(__m128d a
, __m128d b
) {
2608 // CHECK-LABEL: test_mm_cmp_pd_mask_true_us
2609 // CHECK: fcmp true <2 x double> %{{.*}}, %{{.*}}
2610 return _mm_cmp_pd_mask(a
, b
, _CMP_TRUE_US
);
2613 __mmask8
test_mm_mask_cmp_pd_mask_eq_oq(__mmask8 m
, __m128d a
, __m128d b
) {
2614 // CHECK-LABEL: @test_mm_mask_cmp_pd_mask_eq_oq
2615 // CHECK: [[CMP:%.*]] = fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2616 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2617 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_EQ_OQ
);
2620 __mmask8
test_mm_mask_cmp_pd_mask_lt_os(__mmask8 m
, __m128d a
, __m128d b
) {
2621 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_lt_os
2622 // CHECK: [[CMP:%.*]] = fcmp olt <2 x double> %{{.*}}, %{{.*}}
2623 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2624 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_LT_OS
);
2627 __mmask8
test_mm_mask_cmp_pd_mask_le_os(__mmask8 m
, __m128d a
, __m128d b
) {
2628 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_le_os
2629 // CHECK: [[CMP:%.*]] = fcmp ole <2 x double> %{{.*}}, %{{.*}}
2630 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2631 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_LE_OS
);
2634 __mmask8
test_mm_mask_cmp_pd_mask_unord_q(__mmask8 m
, __m128d a
, __m128d b
) {
2635 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_unord_q
2636 // CHECK: [[CMP:%.*]] = fcmp uno <2 x double> %{{.*}}, %{{.*}}
2637 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2638 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_UNORD_Q
);
2641 __mmask8
test_mm_mask_cmp_pd_mask_neq_uq(__mmask8 m
, __m128d a
, __m128d b
) {
2642 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_uq
2643 // CHECK: [[CMP:%.*]] = fcmp une <2 x double> %{{.*}}, %{{.*}}
2644 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2645 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_NEQ_UQ
);
2648 __mmask8
test_mm_mask_cmp_pd_mask_nlt_us(__mmask8 m
, __m128d a
, __m128d b
) {
2649 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nlt_us
2650 // CHECK: [[CMP:%.*]] = fcmp uge <2 x double> %{{.*}}, %{{.*}}
2651 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2652 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_NLT_US
);
2655 __mmask8
test_mm_mask_cmp_pd_mask_nle_us(__mmask8 m
, __m128d a
, __m128d b
) {
2656 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nle_us
2657 // CHECK: [[CMP:%.*]] = fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2658 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2659 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_NLE_US
);
2662 __mmask8
test_mm_mask_cmp_pd_mask_ord_q(__mmask8 m
, __m128d a
, __m128d b
) {
2663 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ord_q
2664 // CHECK: [[CMP:%.*]] = fcmp ord <2 x double> %{{.*}}, %{{.*}}
2665 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2666 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_ORD_Q
);
2669 __mmask8
test_mm_mask_cmp_pd_mask_eq_uq(__mmask8 m
, __m128d a
, __m128d b
) {
2670 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_eq_uq
2671 // CHECK: [[CMP:%.*]] = fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2672 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2673 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_EQ_UQ
);
2676 __mmask8
test_mm_mask_cmp_pd_mask_nge_us(__mmask8 m
, __m128d a
, __m128d b
) {
2677 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nge_us
2678 // CHECK: [[CMP:%.*]] = fcmp ult <2 x double> %{{.*}}, %{{.*}}
2679 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2680 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_NGE_US
);
2683 __mmask8
test_mm_mask_cmp_pd_mask_ngt_us(__mmask8 m
, __m128d a
, __m128d b
) {
2684 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ngt_us
2685 // CHECK: [[CMP:%.*]] = fcmp ule <2 x double> %{{.*}}, %{{.*}}
2686 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2687 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_NGT_US
);
2690 __mmask8
test_mm_mask_cmp_pd_mask_false_oq(__mmask8 m
, __m128d a
, __m128d b
) {
2691 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_false_oq
2692 // CHECK: [[CMP:%.*]] = fcmp false <2 x double> %{{.*}}, %{{.*}}
2693 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2694 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_FALSE_OQ
);
2697 __mmask8
test_mm_mask_cmp_pd_mask_neq_oq(__mmask8 m
, __m128d a
, __m128d b
) {
2698 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_oq
2699 // CHECK: [[CMP:%.*]] = fcmp one <2 x double> %{{.*}}, %{{.*}}
2700 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2701 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_NEQ_OQ
);
2704 __mmask8
test_mm_mask_cmp_pd_mask_ge_os(__mmask8 m
, __m128d a
, __m128d b
) {
2705 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ge_os
2706 // CHECK: [[CMP:%.*]] = fcmp oge <2 x double> %{{.*}}, %{{.*}}
2707 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2708 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_GE_OS
);
2711 __mmask8
test_mm_mask_cmp_pd_mask_gt_os(__mmask8 m
, __m128d a
, __m128d b
) {
2712 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_gt_os
2713 // CHECK: [[CMP:%.*]] = fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2714 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2715 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_GT_OS
);
2718 __mmask8
test_mm_mask_cmp_pd_mask_true_uq(__mmask8 m
, __m128d a
, __m128d b
) {
2719 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_true_uq
2720 // CHECK: [[CMP:%.*]] = fcmp true <2 x double> %{{.*}}, %{{.*}}
2721 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2722 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_TRUE_UQ
);
2725 __mmask8
test_mm_mask_cmp_pd_mask_eq_os(__mmask8 m
, __m128d a
, __m128d b
) {
2726 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_eq_os
2727 // CHECK: [[CMP:%.*]] = fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2728 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2729 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_EQ_OS
);
2732 __mmask8
test_mm_mask_cmp_pd_mask_lt_oq(__mmask8 m
, __m128d a
, __m128d b
) {
2733 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_lt_oq
2734 // CHECK: [[CMP:%.*]] = fcmp olt <2 x double> %{{.*}}, %{{.*}}
2735 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2736 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_LT_OQ
);
2739 __mmask8
test_mm_mask_cmp_pd_mask_le_oq(__mmask8 m
, __m128d a
, __m128d b
) {
2740 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_le_oq
2741 // CHECK: [[CMP:%.*]] = fcmp ole <2 x double> %{{.*}}, %{{.*}}
2742 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2743 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_LE_OQ
);
2746 __mmask8
test_mm_mask_cmp_pd_mask_unord_s(__mmask8 m
, __m128d a
, __m128d b
) {
2747 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_unord_s
2748 // CHECK: [[CMP:%.*]] = fcmp uno <2 x double> %{{.*}}, %{{.*}}
2749 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2750 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_UNORD_S
);
2753 __mmask8
test_mm_mask_cmp_pd_mask_neq_us(__mmask8 m
, __m128d a
, __m128d b
) {
2754 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_us
2755 // CHECK: [[CMP:%.*]] = fcmp une <2 x double> %{{.*}}, %{{.*}}
2756 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2757 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_NEQ_US
);
2760 __mmask8
test_mm_mask_cmp_pd_mask_nlt_uq(__mmask8 m
, __m128d a
, __m128d b
) {
2761 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nlt_uq
2762 // CHECK: [[CMP:%.*]] = fcmp uge <2 x double> %{{.*}}, %{{.*}}
2763 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2764 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_NLT_UQ
);
2767 __mmask8
test_mm_mask_cmp_pd_mask_nle_uq(__mmask8 m
, __m128d a
, __m128d b
) {
2768 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nle_uq
2769 // CHECK: [[CMP:%.*]] = fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2770 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2771 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_NLE_UQ
);
2774 __mmask8
test_mm_mask_cmp_pd_mask_ord_s(__mmask8 m
, __m128d a
, __m128d b
) {
2775 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ord_s
2776 // CHECK: [[CMP:%.*]] = fcmp ord <2 x double> %{{.*}}, %{{.*}}
2777 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2778 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_ORD_S
);
2781 __mmask8
test_mm_mask_cmp_pd_mask_eq_us(__mmask8 m
, __m128d a
, __m128d b
) {
2782 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_eq_us
2783 // CHECK: [[CMP:%.*]] = fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2784 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2785 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_EQ_US
);
2788 __mmask8
test_mm_mask_cmp_pd_mask_nge_uq(__mmask8 m
, __m128d a
, __m128d b
) {
2789 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nge_uq
2790 // CHECK: [[CMP:%.*]] = fcmp ult <2 x double> %{{.*}}, %{{.*}}
2791 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2792 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_NGE_UQ
);
2795 __mmask8
test_mm_mask_cmp_pd_mask_ngt_uq(__mmask8 m
, __m128d a
, __m128d b
) {
2796 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ngt_uq
2797 // CHECK: [[CMP:%.*]] = fcmp ule <2 x double> %{{.*}}, %{{.*}}
2798 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2799 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_NGT_UQ
);
2802 __mmask8
test_mm_mask_cmp_pd_mask_false_os(__mmask8 m
, __m128d a
, __m128d b
) {
2803 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_false_os
2804 // CHECK: [[CMP:%.*]] = fcmp false <2 x double> %{{.*}}, %{{.*}}
2805 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2806 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_FALSE_OS
);
2809 __mmask8
test_mm_mask_cmp_pd_mask_neq_os(__mmask8 m
, __m128d a
, __m128d b
) {
2810 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_os
2811 // CHECK: [[CMP:%.*]] = fcmp one <2 x double> %{{.*}}, %{{.*}}
2812 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2813 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_NEQ_OS
);
2816 __mmask8
test_mm_mask_cmp_pd_mask_ge_oq(__mmask8 m
, __m128d a
, __m128d b
) {
2817 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ge_oq
2818 // CHECK: [[CMP:%.*]] = fcmp oge <2 x double> %{{.*}}, %{{.*}}
2819 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2820 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_GE_OQ
);
2823 __mmask8
test_mm_mask_cmp_pd_mask_gt_oq(__mmask8 m
, __m128d a
, __m128d b
) {
2824 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_gt_oq
2825 // CHECK: [[CMP:%.*]] = fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2826 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2827 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_GT_OQ
);
2830 __mmask8
test_mm_mask_cmp_pd_mask_true_us(__mmask8 m
, __m128d a
, __m128d b
) {
2831 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_true_us
2832 // CHECK: [[CMP:%.*]] = fcmp true <2 x double> %{{.*}}, %{{.*}}
2833 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2834 return _mm_mask_cmp_pd_mask(m
, a
, b
, _CMP_TRUE_US
);
2837 __m128d
test_mm_mask_fmadd_pd(__m128d __A
, __mmask8 __U
, __m128d __B
, __m128d __C
) {
2838 // CHECK-LABEL: @test_mm_mask_fmadd_pd
2839 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2840 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2841 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2842 return _mm_mask_fmadd_pd(__A
, __U
, __B
, __C
);
2845 __m128d
test_mm_mask_fmsub_pd(__m128d __A
, __mmask8 __U
, __m128d __B
, __m128d __C
) {
2846 // CHECK-LABEL: @test_mm_mask_fmsub_pd
2847 // CHECK: fneg <2 x double> %{{.*}}
2848 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2849 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2850 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2851 return _mm_mask_fmsub_pd(__A
, __U
, __B
, __C
);
2854 __m128d
test_mm_mask3_fmadd_pd(__m128d __A
, __m128d __B
, __m128d __C
, __mmask8 __U
) {
2855 // CHECK-LABEL: @test_mm_mask3_fmadd_pd
2856 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2857 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2858 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2859 return _mm_mask3_fmadd_pd(__A
, __B
, __C
, __U
);
2862 __m128d
test_mm_mask3_fnmadd_pd(__m128d __A
, __m128d __B
, __m128d __C
, __mmask8 __U
) {
2863 // CHECK-LABEL: @test_mm_mask3_fnmadd_pd
2864 // CHECK: fneg <2 x double> %{{.*}}
2865 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2866 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2867 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2868 return _mm_mask3_fnmadd_pd(__A
, __B
, __C
, __U
);
2871 __m128d
test_mm_maskz_fmadd_pd(__mmask8 __U
, __m128d __A
, __m128d __B
, __m128d __C
) {
2872 // CHECK-LABEL: @test_mm_maskz_fmadd_pd
2873 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2874 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2875 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2876 return _mm_maskz_fmadd_pd(__U
, __A
, __B
, __C
);
2879 __m128d
test_mm_maskz_fmsub_pd(__mmask8 __U
, __m128d __A
, __m128d __B
, __m128d __C
) {
2880 // CHECK-LABEL: @test_mm_maskz_fmsub_pd
2881 // CHECK: fneg <2 x double> %{{.*}}
2882 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2883 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2884 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2885 return _mm_maskz_fmsub_pd(__U
, __A
, __B
, __C
);
2888 __m128d
test_mm_maskz_fnmadd_pd(__mmask8 __U
, __m128d __A
, __m128d __B
, __m128d __C
) {
2889 // CHECK-LABEL: @test_mm_maskz_fnmadd_pd
2890 // CHECK: fneg <2 x double> %{{.*}}
2891 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2892 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2893 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2894 return _mm_maskz_fnmadd_pd(__U
, __A
, __B
, __C
);
2897 __m128d
test_mm_maskz_fnmsub_pd(__mmask8 __U
, __m128d __A
, __m128d __B
, __m128d __C
) {
2898 // CHECK-LABEL: @test_mm_maskz_fnmsub_pd
2899 // CHECK: fneg <2 x double> %{{.*}}
2900 // CHECK: fneg <2 x double> %{{.*}}
2901 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2902 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2903 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2904 return _mm_maskz_fnmsub_pd(__U
, __A
, __B
, __C
);
2907 __m256d
test_mm256_mask_fmadd_pd(__m256d __A
, __mmask8 __U
, __m256d __B
, __m256d __C
) {
2908 // CHECK-LABEL: @test_mm256_mask_fmadd_pd
2909 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2910 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2911 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2912 return _mm256_mask_fmadd_pd(__A
, __U
, __B
, __C
);
2915 __m256d
test_mm256_mask_fmsub_pd(__m256d __A
, __mmask8 __U
, __m256d __B
, __m256d __C
) {
2916 // CHECK-LABEL: @test_mm256_mask_fmsub_pd
2917 // CHECK: fneg <4 x double> %{{.*}}
2918 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2919 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2920 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2921 return _mm256_mask_fmsub_pd(__A
, __U
, __B
, __C
);
2924 __m256d
test_mm256_mask3_fmadd_pd(__m256d __A
, __m256d __B
, __m256d __C
, __mmask8 __U
) {
2925 // CHECK-LABEL: @test_mm256_mask3_fmadd_pd
2926 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2927 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2928 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2929 return _mm256_mask3_fmadd_pd(__A
, __B
, __C
, __U
);
2932 __m256d
test_mm256_mask3_fnmadd_pd(__m256d __A
, __m256d __B
, __m256d __C
, __mmask8 __U
) {
2933 // CHECK-LABEL: @test_mm256_mask3_fnmadd_pd
2934 // CHECK: fneg <4 x double> %{{.*}}
2935 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2936 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2937 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2938 return _mm256_mask3_fnmadd_pd(__A
, __B
, __C
, __U
);
2941 __m256d
test_mm256_maskz_fmadd_pd(__mmask8 __U
, __m256d __A
, __m256d __B
, __m256d __C
) {
2942 // CHECK-LABEL: @test_mm256_maskz_fmadd_pd
2943 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2944 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2945 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2946 return _mm256_maskz_fmadd_pd(__U
, __A
, __B
, __C
);
2949 __m256d
test_mm256_maskz_fmsub_pd(__mmask8 __U
, __m256d __A
, __m256d __B
, __m256d __C
) {
2950 // CHECK-LABEL: @test_mm256_maskz_fmsub_pd
2951 // CHECK: fneg <4 x double> %{{.*}}
2952 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2953 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2954 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2955 return _mm256_maskz_fmsub_pd(__U
, __A
, __B
, __C
);
2958 __m256d
test_mm256_maskz_fnmadd_pd(__mmask8 __U
, __m256d __A
, __m256d __B
, __m256d __C
) {
2959 // CHECK-LABEL: @test_mm256_maskz_fnmadd_pd
2960 // CHECK: fneg <4 x double> %{{.*}}
2961 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2962 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2963 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2964 return _mm256_maskz_fnmadd_pd(__U
, __A
, __B
, __C
);
2967 __m256d
test_mm256_maskz_fnmsub_pd(__mmask8 __U
, __m256d __A
, __m256d __B
, __m256d __C
) {
2968 // CHECK-LABEL: @test_mm256_maskz_fnmsub_pd
2969 // CHECK: fneg <4 x double> %{{.*}}
2970 // CHECK: fneg <4 x double> %{{.*}}
2971 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2972 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2973 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2974 return _mm256_maskz_fnmsub_pd(__U
, __A
, __B
, __C
);
2977 __m128
test_mm_mask_fmadd_ps(__m128 __A
, __mmask8 __U
, __m128 __B
, __m128 __C
) {
2978 // CHECK-LABEL: @test_mm_mask_fmadd_ps
2979 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
2980 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2981 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
2982 return _mm_mask_fmadd_ps(__A
, __U
, __B
, __C
);
2985 __m128
test_mm_mask_fmsub_ps(__m128 __A
, __mmask8 __U
, __m128 __B
, __m128 __C
) {
2986 // CHECK-LABEL: @test_mm_mask_fmsub_ps
2987 // CHECK: fneg <4 x float> %{{.*}}
2988 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
2989 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2990 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
2991 return _mm_mask_fmsub_ps(__A
, __U
, __B
, __C
);
2994 __m128
test_mm_mask3_fmadd_ps(__m128 __A
, __m128 __B
, __m128 __C
, __mmask8 __U
) {
2995 // CHECK-LABEL: @test_mm_mask3_fmadd_ps
2996 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
2997 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2998 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
2999 return _mm_mask3_fmadd_ps(__A
, __B
, __C
, __U
);
3002 __m128
test_mm_mask3_fnmadd_ps(__m128 __A
, __m128 __B
, __m128 __C
, __mmask8 __U
) {
3003 // CHECK-LABEL: @test_mm_mask3_fnmadd_ps
3004 // CHECK: fneg <4 x float> %{{.*}}
3005 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3006 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3007 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3008 return _mm_mask3_fnmadd_ps(__A
, __B
, __C
, __U
);
3011 __m128
test_mm_maskz_fmadd_ps(__mmask8 __U
, __m128 __A
, __m128 __B
, __m128 __C
) {
3012 // CHECK-LABEL: @test_mm_maskz_fmadd_ps
3013 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3014 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3015 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3016 return _mm_maskz_fmadd_ps(__U
, __A
, __B
, __C
);
3019 __m128
test_mm_maskz_fmsub_ps(__mmask8 __U
, __m128 __A
, __m128 __B
, __m128 __C
) {
3020 // CHECK-LABEL: @test_mm_maskz_fmsub_ps
3021 // CHECK: fneg <4 x float> %{{.*}}
3022 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3023 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3024 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3025 return _mm_maskz_fmsub_ps(__U
, __A
, __B
, __C
);
3028 __m128
test_mm_maskz_fnmadd_ps(__mmask8 __U
, __m128 __A
, __m128 __B
, __m128 __C
) {
3029 // CHECK-LABEL: @test_mm_maskz_fnmadd_ps
3030 // CHECK: fneg <4 x float> %{{.*}}
3031 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3032 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3033 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3034 return _mm_maskz_fnmadd_ps(__U
, __A
, __B
, __C
);
3037 __m128
test_mm_maskz_fnmsub_ps(__mmask8 __U
, __m128 __A
, __m128 __B
, __m128 __C
) {
3038 // CHECK-LABEL: @test_mm_maskz_fnmsub_ps
3039 // CHECK: fneg <4 x float> %{{.*}}
3040 // CHECK: fneg <4 x float> %{{.*}}
3041 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3042 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3043 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3044 return _mm_maskz_fnmsub_ps(__U
, __A
, __B
, __C
);
3047 __m256
test_mm256_mask_fmadd_ps(__m256 __A
, __mmask8 __U
, __m256 __B
, __m256 __C
) {
3048 // CHECK-LABEL: @test_mm256_mask_fmadd_ps
3049 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3050 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3051 return _mm256_mask_fmadd_ps(__A
, __U
, __B
, __C
);
3054 __m256
test_mm256_mask_fmsub_ps(__m256 __A
, __mmask8 __U
, __m256 __B
, __m256 __C
) {
3055 // CHECK-LABEL: @test_mm256_mask_fmsub_ps
3056 // CHECK: fneg <8 x float> %{{.*}}
3057 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3058 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3059 return _mm256_mask_fmsub_ps(__A
, __U
, __B
, __C
);
3062 __m256
test_mm256_mask3_fmadd_ps(__m256 __A
, __m256 __B
, __m256 __C
, __mmask8 __U
) {
3063 // CHECK-LABEL: @test_mm256_mask3_fmadd_ps
3064 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3065 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3066 return _mm256_mask3_fmadd_ps(__A
, __B
, __C
, __U
);
3069 __m256
test_mm256_mask3_fnmadd_ps(__m256 __A
, __m256 __B
, __m256 __C
, __mmask8 __U
) {
3070 // CHECK-LABEL: @test_mm256_mask3_fnmadd_ps
3071 // CHECK: fneg <8 x float> %{{.*}}
3072 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3073 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3074 return _mm256_mask3_fnmadd_ps(__A
, __B
, __C
, __U
);
3077 __m256
test_mm256_maskz_fmadd_ps(__mmask8 __U
, __m256 __A
, __m256 __B
, __m256 __C
) {
3078 // CHECK-LABEL: @test_mm256_maskz_fmadd_ps
3079 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3080 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3081 return _mm256_maskz_fmadd_ps(__U
, __A
, __B
, __C
);
3084 __m256
test_mm256_maskz_fmsub_ps(__mmask8 __U
, __m256 __A
, __m256 __B
, __m256 __C
) {
3085 // CHECK-LABEL: @test_mm256_maskz_fmsub_ps
3086 // CHECK: fneg <8 x float> %{{.*}}
3087 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3088 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3089 return _mm256_maskz_fmsub_ps(__U
, __A
, __B
, __C
);
3092 __m256
test_mm256_maskz_fnmadd_ps(__mmask8 __U
, __m256 __A
, __m256 __B
, __m256 __C
) {
3093 // CHECK-LABEL: @test_mm256_maskz_fnmadd_ps
3094 // CHECK: fneg <8 x float> %{{.*}}
3095 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3096 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3097 return _mm256_maskz_fnmadd_ps(__U
, __A
, __B
, __C
);
3100 __m256
test_mm256_maskz_fnmsub_ps(__mmask8 __U
, __m256 __A
, __m256 __B
, __m256 __C
) {
3101 // CHECK-LABEL: @test_mm256_maskz_fnmsub_ps
3102 // CHECK: fneg <8 x float> %{{.*}}
3103 // CHECK: fneg <8 x float> %{{.*}}
3104 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3105 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3106 return _mm256_maskz_fnmsub_ps(__U
, __A
, __B
, __C
);
3109 __m128d
test_mm_mask_fmaddsub_pd(__m128d __A
, __mmask8 __U
, __m128d __B
, __m128d __C
) {
3110 // CHECK-LABEL: @test_mm_mask_fmaddsub_pd
3112 // CHECK: call <2 x double> @llvm.x86.fma.vfmaddsub.pd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3113 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3114 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3115 return _mm_mask_fmaddsub_pd(__A
, __U
, __B
, __C
);
3118 __m128d
test_mm_mask_fmsubadd_pd(__m128d __A
, __mmask8 __U
, __m128d __B
, __m128d __C
) {
3119 // CHECK-LABEL: @test_mm_mask_fmsubadd_pd
3120 // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.*}}
3121 // CHECK: call <2 x double> @llvm.x86.fma.vfmaddsub.pd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]])
3122 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3123 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3124 return _mm_mask_fmsubadd_pd(__A
, __U
, __B
, __C
);
3127 __m128d
test_mm_mask3_fmaddsub_pd(__m128d __A
, __m128d __B
, __m128d __C
, __mmask8 __U
) {
3128 // CHECK-LABEL: @test_mm_mask3_fmaddsub_pd
3130 // CHECK: call <2 x double> @llvm.x86.fma.vfmaddsub.pd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3131 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3132 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3133 return _mm_mask3_fmaddsub_pd(__A
, __B
, __C
, __U
);
3136 __m128d
test_mm_maskz_fmaddsub_pd(__mmask8 __U
, __m128d __A
, __m128d __B
, __m128d __C
) {
3137 // CHECK-LABEL: @test_mm_maskz_fmaddsub_pd
3139 // CHECK: call <2 x double> @llvm.x86.fma.vfmaddsub.pd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3140 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3141 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3142 return _mm_maskz_fmaddsub_pd(__U
, __A
, __B
, __C
);
3145 __m128d
test_mm_maskz_fmsubadd_pd(__mmask8 __U
, __m128d __A
, __m128d __B
, __m128d __C
) {
3146 // CHECK-LABEL: @test_mm_maskz_fmsubadd_pd
3147 // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.*}}
3148 // CHECK: call <2 x double> @llvm.x86.fma.vfmaddsub.pd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]])
3149 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3150 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3151 return _mm_maskz_fmsubadd_pd(__U
, __A
, __B
, __C
);
3154 __m256d
test_mm256_mask_fmaddsub_pd(__m256d __A
, __mmask8 __U
, __m256d __B
, __m256d __C
) {
3155 // CHECK-LABEL: @test_mm256_mask_fmaddsub_pd
3157 // CHECK: call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3158 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3159 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3160 return _mm256_mask_fmaddsub_pd(__A
, __U
, __B
, __C
);
3163 __m256d
test_mm256_mask_fmsubadd_pd(__m256d __A
, __mmask8 __U
, __m256d __B
, __m256d __C
) {
3164 // CHECK-LABEL: @test_mm256_mask_fmsubadd_pd
3165 // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.*}}
3166 // CHECK: call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]])
3167 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3168 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3169 return _mm256_mask_fmsubadd_pd(__A
, __U
, __B
, __C
);
3172 __m256d
test_mm256_mask3_fmaddsub_pd(__m256d __A
, __m256d __B
, __m256d __C
, __mmask8 __U
) {
3173 // CHECK-LABEL: @test_mm256_mask3_fmaddsub_pd
3175 // CHECK: call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3176 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3177 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3178 return _mm256_mask3_fmaddsub_pd(__A
, __B
, __C
, __U
);
3181 __m256d
test_mm256_maskz_fmaddsub_pd(__mmask8 __U
, __m256d __A
, __m256d __B
, __m256d __C
) {
3182 // CHECK-LABEL: @test_mm256_maskz_fmaddsub_pd
3184 // CHECK: call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3185 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3186 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3187 return _mm256_maskz_fmaddsub_pd(__U
, __A
, __B
, __C
);
3190 __m256d
test_mm256_maskz_fmsubadd_pd(__mmask8 __U
, __m256d __A
, __m256d __B
, __m256d __C
) {
3191 // CHECK-LABEL: @test_mm256_maskz_fmsubadd_pd
3192 // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.*}}
3193 // CHECK: call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]])
3194 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3195 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3196 return _mm256_maskz_fmsubadd_pd(__U
, __A
, __B
, __C
);
3199 __m128
test_mm_mask_fmaddsub_ps(__m128 __A
, __mmask8 __U
, __m128 __B
, __m128 __C
) {
3200 // CHECK-LABEL: @test_mm_mask_fmaddsub_ps
3202 // CHECK: call <4 x float> @llvm.x86.fma.vfmaddsub.ps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3203 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3204 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3205 return _mm_mask_fmaddsub_ps(__A
, __U
, __B
, __C
);
3208 __m128
test_mm_mask_fmsubadd_ps(__m128 __A
, __mmask8 __U
, __m128 __B
, __m128 __C
) {
3209 // CHECK-LABEL: @test_mm_mask_fmsubadd_ps
3210 // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.*}}
3211 // CHECK: call <4 x float> @llvm.x86.fma.vfmaddsub.ps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]])
3212 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3213 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3214 return _mm_mask_fmsubadd_ps(__A
, __U
, __B
, __C
);
3217 __m128
test_mm_mask3_fmaddsub_ps(__m128 __A
, __m128 __B
, __m128 __C
, __mmask8 __U
) {
3218 // CHECK-LABEL: @test_mm_mask3_fmaddsub_ps
3220 // CHECK: call <4 x float> @llvm.x86.fma.vfmaddsub.ps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3221 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3222 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3223 return _mm_mask3_fmaddsub_ps(__A
, __B
, __C
, __U
);
3226 __m128
test_mm_maskz_fmaddsub_ps(__mmask8 __U
, __m128 __A
, __m128 __B
, __m128 __C
) {
3227 // CHECK-LABEL: @test_mm_maskz_fmaddsub_ps
3229 // CHECK: call <4 x float> @llvm.x86.fma.vfmaddsub.ps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3230 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3231 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3232 return _mm_maskz_fmaddsub_ps(__U
, __A
, __B
, __C
);
3235 __m128
test_mm_maskz_fmsubadd_ps(__mmask8 __U
, __m128 __A
, __m128 __B
, __m128 __C
) {
3236 // CHECK-LABEL: @test_mm_maskz_fmsubadd_ps
3237 // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.*}}
3238 // CHECK: call <4 x float> @llvm.x86.fma.vfmaddsub.ps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]])
3239 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3240 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3241 return _mm_maskz_fmsubadd_ps(__U
, __A
, __B
, __C
);
3244 __m256
test_mm256_mask_fmaddsub_ps(__m256 __A
, __mmask8 __U
, __m256 __B
, __m256 __C
) {
3245 // CHECK-LABEL: @test_mm256_mask_fmaddsub_ps
3247 // CHECK: call <8 x float> @llvm.x86.fma.vfmaddsub.ps.256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3248 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3249 return _mm256_mask_fmaddsub_ps(__A
, __U
, __B
, __C
);
3252 __m256
test_mm256_mask_fmsubadd_ps(__m256 __A
, __mmask8 __U
, __m256 __B
, __m256 __C
) {
3253 // CHECK-LABEL: @test_mm256_mask_fmsubadd_ps
3254 // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3255 // CHECK: call <8 x float> @llvm.x86.fma.vfmaddsub.ps.256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]])
3256 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3257 return _mm256_mask_fmsubadd_ps(__A
, __U
, __B
, __C
);
3260 __m256
test_mm256_mask3_fmaddsub_ps(__m256 __A
, __m256 __B
, __m256 __C
, __mmask8 __U
) {
3261 // CHECK-LABEL: @test_mm256_mask3_fmaddsub_ps
3263 // CHECK: call <8 x float> @llvm.x86.fma.vfmaddsub.ps.256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3264 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3265 return _mm256_mask3_fmaddsub_ps(__A
, __B
, __C
, __U
);
3268 __m256
test_mm256_maskz_fmaddsub_ps(__mmask8 __U
, __m256 __A
, __m256 __B
, __m256 __C
) {
3269 // CHECK-LABEL: @test_mm256_maskz_fmaddsub_ps
3271 // CHECK: call <8 x float> @llvm.x86.fma.vfmaddsub.ps.256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3272 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3273 return _mm256_maskz_fmaddsub_ps(__U
, __A
, __B
, __C
);
3276 __m256
test_mm256_maskz_fmsubadd_ps(__mmask8 __U
, __m256 __A
, __m256 __B
, __m256 __C
) {
3277 // CHECK-LABEL: @test_mm256_maskz_fmsubadd_ps
3278 // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3279 // CHECK: call <8 x float> @llvm.x86.fma.vfmaddsub.ps.256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]])
3280 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3281 return _mm256_maskz_fmsubadd_ps(__U
, __A
, __B
, __C
);
3284 __m128d
test_mm_mask3_fmsub_pd(__m128d __A
, __m128d __B
, __m128d __C
, __mmask8 __U
) {
3285 // CHECK-LABEL: @test_mm_mask3_fmsub_pd
3286 // CHECK: fneg <2 x double> %{{.*}}
3287 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3288 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3289 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3290 return _mm_mask3_fmsub_pd(__A
, __B
, __C
, __U
);
3293 __m256d
test_mm256_mask3_fmsub_pd(__m256d __A
, __m256d __B
, __m256d __C
, __mmask8 __U
) {
3294 // CHECK-LABEL: @test_mm256_mask3_fmsub_pd
3295 // CHECK: fneg <4 x double> %{{.*}}
3296 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3297 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3298 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3299 return _mm256_mask3_fmsub_pd(__A
, __B
, __C
, __U
);
3302 __m128
test_mm_mask3_fmsub_ps(__m128 __A
, __m128 __B
, __m128 __C
, __mmask8 __U
) {
3303 // CHECK-LABEL: @test_mm_mask3_fmsub_ps
3304 // CHECK: fneg <4 x float> %{{.*}}
3305 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3306 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3307 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3308 return _mm_mask3_fmsub_ps(__A
, __B
, __C
, __U
);
3311 __m256
test_mm256_mask3_fmsub_ps(__m256 __A
, __m256 __B
, __m256 __C
, __mmask8 __U
) {
3312 // CHECK-LABEL: @test_mm256_mask3_fmsub_ps
3313 // CHECK: fneg <8 x float> %{{.*}}
3314 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3315 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3316 return _mm256_mask3_fmsub_ps(__A
, __B
, __C
, __U
);
3319 __m128d
test_mm_mask3_fmsubadd_pd(__m128d __A
, __m128d __B
, __m128d __C
, __mmask8 __U
) {
3320 // CHECK-LABEL: @test_mm_mask3_fmsubadd_pd
3321 // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.+}}
3322 // CHECK: call <2 x double> @llvm.x86.fma.vfmaddsub.pd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]])
3323 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3324 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3325 return _mm_mask3_fmsubadd_pd(__A
, __B
, __C
, __U
);
3328 __m256d
test_mm256_mask3_fmsubadd_pd(__m256d __A
, __m256d __B
, __m256d __C
, __mmask8 __U
) {
3329 // CHECK-LABEL: @test_mm256_mask3_fmsubadd_pd
3330 // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.+}}
3331 // CHECK: call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]])
3332 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3333 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3334 return _mm256_mask3_fmsubadd_pd(__A
, __B
, __C
, __U
);
3337 __m128
test_mm_mask3_fmsubadd_ps(__m128 __A
, __m128 __B
, __m128 __C
, __mmask8 __U
) {
3338 // CHECK-LABEL: @test_mm_mask3_fmsubadd_ps
3339 // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.+}}
3340 // CHECK: call <4 x float> @llvm.x86.fma.vfmaddsub.ps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]])
3341 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3342 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3343 return _mm_mask3_fmsubadd_ps(__A
, __B
, __C
, __U
);
3346 __m256
test_mm256_mask3_fmsubadd_ps(__m256 __A
, __m256 __B
, __m256 __C
, __mmask8 __U
) {
3347 // CHECK-LABEL: @test_mm256_mask3_fmsubadd_ps
3348 // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3349 // CHECK: call <8 x float> @llvm.x86.fma.vfmaddsub.ps.256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]])
3350 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3351 return _mm256_mask3_fmsubadd_ps(__A
, __B
, __C
, __U
);
3354 __m128d
test_mm_mask_fnmadd_pd(__m128d __A
, __mmask8 __U
, __m128d __B
, __m128d __C
) {
3355 // CHECK-LABEL: @test_mm_mask_fnmadd_pd
3356 // CHECK: fneg <2 x double> %{{.*}}
3357 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3358 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3359 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3360 return _mm_mask_fnmadd_pd(__A
, __U
, __B
, __C
);
3363 __m256d
test_mm256_mask_fnmadd_pd(__m256d __A
, __mmask8 __U
, __m256d __B
, __m256d __C
) {
3364 // CHECK-LABEL: @test_mm256_mask_fnmadd_pd
3365 // CHECK: fneg <4 x double> %{{.*}}
3366 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3367 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3368 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3369 return _mm256_mask_fnmadd_pd(__A
, __U
, __B
, __C
);
3372 __m128
test_mm_mask_fnmadd_ps(__m128 __A
, __mmask8 __U
, __m128 __B
, __m128 __C
) {
3373 // CHECK-LABEL: @test_mm_mask_fnmadd_ps
3374 // CHECK: fneg <4 x float> %{{.*}}
3375 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3376 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3377 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3378 return _mm_mask_fnmadd_ps(__A
, __U
, __B
, __C
);
3381 __m256
test_mm256_mask_fnmadd_ps(__m256 __A
, __mmask8 __U
, __m256 __B
, __m256 __C
) {
3382 // CHECK-LABEL: @test_mm256_mask_fnmadd_ps
3383 // CHECK: fneg <8 x float> %{{.*}}
3384 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3385 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3386 return _mm256_mask_fnmadd_ps(__A
, __U
, __B
, __C
);
3389 __m128d
test_mm_mask_fnmsub_pd(__m128d __A
, __mmask8 __U
, __m128d __B
, __m128d __C
) {
3390 // CHECK-LABEL: @test_mm_mask_fnmsub_pd
3391 // CHECK: fneg <2 x double> %{{.*}}
3392 // CHECK: fneg <2 x double> %{{.*}}
3393 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3394 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3395 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3396 return _mm_mask_fnmsub_pd(__A
, __U
, __B
, __C
);
3399 __m128d
test_mm_mask3_fnmsub_pd(__m128d __A
, __m128d __B
, __m128d __C
, __mmask8 __U
) {
3400 // CHECK-LABEL: @test_mm_mask3_fnmsub_pd
3401 // CHECK: fneg <2 x double> %{{.*}}
3402 // CHECK: fneg <2 x double> %{{.*}}
3403 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3404 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3405 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3406 return _mm_mask3_fnmsub_pd(__A
, __B
, __C
, __U
);
3409 __m256d
test_mm256_mask_fnmsub_pd(__m256d __A
, __mmask8 __U
, __m256d __B
, __m256d __C
) {
3410 // CHECK-LABEL: @test_mm256_mask_fnmsub_pd
3411 // CHECK: fneg <4 x double> %{{.*}}
3412 // CHECK: fneg <4 x double> %{{.*}}
3413 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3414 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3415 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3416 return _mm256_mask_fnmsub_pd(__A
, __U
, __B
, __C
);
3419 __m256d
test_mm256_mask3_fnmsub_pd(__m256d __A
, __m256d __B
, __m256d __C
, __mmask8 __U
) {
3420 // CHECK-LABEL: @test_mm256_mask3_fnmsub_pd
3421 // CHECK: fneg <4 x double> %{{.*}}
3422 // CHECK: fneg <4 x double> %{{.*}}
3423 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3424 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3425 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3426 return _mm256_mask3_fnmsub_pd(__A
, __B
, __C
, __U
);
3429 __m128
test_mm_mask_fnmsub_ps(__m128 __A
, __mmask8 __U
, __m128 __B
, __m128 __C
) {
3430 // CHECK-LABEL: @test_mm_mask_fnmsub_ps
3431 // CHECK: fneg <4 x float> %{{.*}}
3432 // CHECK: fneg <4 x float> %{{.*}}
3433 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3434 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3435 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3436 return _mm_mask_fnmsub_ps(__A
, __U
, __B
, __C
);
3439 __m128
test_mm_mask3_fnmsub_ps(__m128 __A
, __m128 __B
, __m128 __C
, __mmask8 __U
) {
3440 // CHECK-LABEL: @test_mm_mask3_fnmsub_ps
3441 // CHECK: fneg <4 x float> %{{.*}}
3442 // CHECK: fneg <4 x float> %{{.*}}
3443 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3444 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3445 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3446 return _mm_mask3_fnmsub_ps(__A
, __B
, __C
, __U
);
3449 __m256
test_mm256_mask_fnmsub_ps(__m256 __A
, __mmask8 __U
, __m256 __B
, __m256 __C
) {
3450 // CHECK-LABEL: @test_mm256_mask_fnmsub_ps
3451 // CHECK: fneg <8 x float> %{{.*}}
3452 // CHECK: fneg <8 x float> %{{.*}}
3453 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3454 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3455 return _mm256_mask_fnmsub_ps(__A
, __U
, __B
, __C
);
3458 __m256
test_mm256_mask3_fnmsub_ps(__m256 __A
, __m256 __B
, __m256 __C
, __mmask8 __U
) {
3459 // CHECK-LABEL: @test_mm256_mask3_fnmsub_ps
3460 // CHECK: fneg <8 x float> %{{.*}}
3461 // CHECK: fneg <8 x float> %{{.*}}
3462 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3463 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3464 return _mm256_mask3_fnmsub_ps(__A
, __B
, __C
, __U
);
3467 __m128d
test_mm_mask_add_pd(__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
) {
3468 // CHECK-LABEL: @test_mm_mask_add_pd
3469 // CHECK: fadd <2 x double> %{{.*}}, %{{.*}}
3470 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3471 return _mm_mask_add_pd(__W
,__U
,__A
,__B
);
3473 __m128d
test_mm_maskz_add_pd(__mmask8 __U
, __m128d __A
, __m128d __B
) {
3474 // CHECK-LABEL: @test_mm_maskz_add_pd
3475 // CHECK: fadd <2 x double> %{{.*}}, %{{.*}}
3476 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3477 return _mm_maskz_add_pd(__U
,__A
,__B
);
3479 __m256d
test_mm256_mask_add_pd(__m256d __W
, __mmask8 __U
, __m256d __A
, __m256d __B
) {
3480 // CHECK-LABEL: @test_mm256_mask_add_pd
3481 // CHECK: fadd <4 x double> %{{.*}}, %{{.*}}
3482 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3483 return _mm256_mask_add_pd(__W
,__U
,__A
,__B
);
3485 __m256d
test_mm256_maskz_add_pd(__mmask8 __U
, __m256d __A
, __m256d __B
) {
3486 // CHECK-LABEL: @test_mm256_maskz_add_pd
3487 // CHECK: fadd <4 x double> %{{.*}}, %{{.*}}
3488 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3489 return _mm256_maskz_add_pd(__U
,__A
,__B
);
3491 __m128
test_mm_mask_add_ps(__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
) {
3492 // CHECK-LABEL: @test_mm_mask_add_ps
3493 // CHECK: fadd <4 x float> %{{.*}}, %{{.*}}
3494 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3495 return _mm_mask_add_ps(__W
,__U
,__A
,__B
);
3497 __m128
test_mm_maskz_add_ps(__mmask8 __U
, __m128 __A
, __m128 __B
) {
3498 // CHECK-LABEL: @test_mm_maskz_add_ps
3499 // CHECK: fadd <4 x float> %{{.*}}, %{{.*}}
3500 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3501 return _mm_maskz_add_ps(__U
,__A
,__B
);
3503 __m256
test_mm256_mask_add_ps(__m256 __W
, __mmask8 __U
, __m256 __A
, __m256 __B
) {
3504 // CHECK-LABEL: @test_mm256_mask_add_ps
3505 // CHECK: fadd <8 x float> %{{.*}}, %{{.*}}
3506 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3507 return _mm256_mask_add_ps(__W
,__U
,__A
,__B
);
3509 __m256
test_mm256_maskz_add_ps(__mmask8 __U
, __m256 __A
, __m256 __B
) {
3510 // CHECK-LABEL: @test_mm256_maskz_add_ps
3511 // CHECK: fadd <8 x float> %{{.*}}, %{{.*}}
3512 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3513 return _mm256_maskz_add_ps(__U
,__A
,__B
);
3515 __m128i
test_mm_mask_blend_epi32(__mmask8 __U
, __m128i __A
, __m128i __W
) {
3516 // CHECK-LABEL: @test_mm_mask_blend_epi32
3517 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
3518 return _mm_mask_blend_epi32(__U
,__A
,__W
);
3520 __m256i
test_mm256_mask_blend_epi32(__mmask8 __U
, __m256i __A
, __m256i __W
) {
3521 // CHECK-LABEL: @test_mm256_mask_blend_epi32
3522 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
3523 return _mm256_mask_blend_epi32(__U
,__A
,__W
);
3525 __m128d
test_mm_mask_blend_pd(__mmask8 __U
, __m128d __A
, __m128d __W
) {
3526 // CHECK-LABEL: @test_mm_mask_blend_pd
3527 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3528 return _mm_mask_blend_pd(__U
,__A
,__W
);
3530 __m256d
test_mm256_mask_blend_pd(__mmask8 __U
, __m256d __A
, __m256d __W
) {
3531 // CHECK-LABEL: @test_mm256_mask_blend_pd
3532 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3533 return _mm256_mask_blend_pd(__U
,__A
,__W
);
3535 __m128
test_mm_mask_blend_ps(__mmask8 __U
, __m128 __A
, __m128 __W
) {
3536 // CHECK-LABEL: @test_mm_mask_blend_ps
3537 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3538 return _mm_mask_blend_ps(__U
,__A
,__W
);
3540 __m256
test_mm256_mask_blend_ps(__mmask8 __U
, __m256 __A
, __m256 __W
) {
3541 // CHECK-LABEL: @test_mm256_mask_blend_ps
3542 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3543 return _mm256_mask_blend_ps(__U
,__A
,__W
);
3545 __m128i
test_mm_mask_blend_epi64(__mmask8 __U
, __m128i __A
, __m128i __W
) {
3546 // CHECK-LABEL: @test_mm_mask_blend_epi64
3547 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
3548 return _mm_mask_blend_epi64(__U
,__A
,__W
);
3550 __m256i
test_mm256_mask_blend_epi64(__mmask8 __U
, __m256i __A
, __m256i __W
) {
3551 // CHECK-LABEL: @test_mm256_mask_blend_epi64
3552 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
3553 return _mm256_mask_blend_epi64(__U
,__A
,__W
);
3555 __m128d
test_mm_mask_compress_pd(__m128d __W
, __mmask8 __U
, __m128d __A
) {
3556 // CHECK-LABEL: @test_mm_mask_compress_pd
3557 // CHECK: @llvm.x86.avx512.mask.compress
3558 return _mm_mask_compress_pd(__W
,__U
,__A
);
3560 __m128d
test_mm_maskz_compress_pd(__mmask8 __U
, __m128d __A
) {
3561 // CHECK-LABEL: @test_mm_maskz_compress_pd
3562 // CHECK: @llvm.x86.avx512.mask.compress
3563 return _mm_maskz_compress_pd(__U
,__A
);
3565 __m256d
test_mm256_mask_compress_pd(__m256d __W
, __mmask8 __U
, __m256d __A
) {
3566 // CHECK-LABEL: @test_mm256_mask_compress_pd
3567 // CHECK: @llvm.x86.avx512.mask.compress
3568 return _mm256_mask_compress_pd(__W
,__U
,__A
);
3570 __m256d
test_mm256_maskz_compress_pd(__mmask8 __U
, __m256d __A
) {
3571 // CHECK-LABEL: @test_mm256_maskz_compress_pd
3572 // CHECK: @llvm.x86.avx512.mask.compress
3573 return _mm256_maskz_compress_pd(__U
,__A
);
3575 __m128i
test_mm_mask_compress_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
) {
3576 // CHECK-LABEL: @test_mm_mask_compress_epi64
3577 // CHECK: @llvm.x86.avx512.mask.compress
3578 return _mm_mask_compress_epi64(__W
,__U
,__A
);
3580 __m128i
test_mm_maskz_compress_epi64(__mmask8 __U
, __m128i __A
) {
3581 // CHECK-LABEL: @test_mm_maskz_compress_epi64
3582 // CHECK: @llvm.x86.avx512.mask.compress
3583 return _mm_maskz_compress_epi64(__U
,__A
);
3585 __m256i
test_mm256_mask_compress_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
) {
3586 // CHECK-LABEL: @test_mm256_mask_compress_epi64
3587 // CHECK: @llvm.x86.avx512.mask.compress
3588 return _mm256_mask_compress_epi64(__W
,__U
,__A
);
3590 __m256i
test_mm256_maskz_compress_epi64(__mmask8 __U
, __m256i __A
) {
3591 // CHECK-LABEL: @test_mm256_maskz_compress_epi64
3592 // CHECK: @llvm.x86.avx512.mask.compress
3593 return _mm256_maskz_compress_epi64(__U
,__A
);
3595 __m128
test_mm_mask_compress_ps(__m128 __W
, __mmask8 __U
, __m128 __A
) {
3596 // CHECK-LABEL: @test_mm_mask_compress_ps
3597 // CHECK: @llvm.x86.avx512.mask.compress
3598 return _mm_mask_compress_ps(__W
,__U
,__A
);
3600 __m128
test_mm_maskz_compress_ps(__mmask8 __U
, __m128 __A
) {
3601 // CHECK-LABEL: @test_mm_maskz_compress_ps
3602 // CHECK: @llvm.x86.avx512.mask.compress
3603 return _mm_maskz_compress_ps(__U
,__A
);
3605 __m256
test_mm256_mask_compress_ps(__m256 __W
, __mmask8 __U
, __m256 __A
) {
3606 // CHECK-LABEL: @test_mm256_mask_compress_ps
3607 // CHECK: @llvm.x86.avx512.mask.compress
3608 return _mm256_mask_compress_ps(__W
,__U
,__A
);
3610 __m256
test_mm256_maskz_compress_ps(__mmask8 __U
, __m256 __A
) {
3611 // CHECK-LABEL: @test_mm256_maskz_compress_ps
3612 // CHECK: @llvm.x86.avx512.mask.compress
3613 return _mm256_maskz_compress_ps(__U
,__A
);
3615 __m128i
test_mm_mask_compress_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
) {
3616 // CHECK-LABEL: @test_mm_mask_compress_epi32
3617 // CHECK: @llvm.x86.avx512.mask.compress
3618 return _mm_mask_compress_epi32(__W
,__U
,__A
);
3620 __m128i
test_mm_maskz_compress_epi32(__mmask8 __U
, __m128i __A
) {
3621 // CHECK-LABEL: @test_mm_maskz_compress_epi32
3622 // CHECK: @llvm.x86.avx512.mask.compress
3623 return _mm_maskz_compress_epi32(__U
,__A
);
3625 __m256i
test_mm256_mask_compress_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
) {
3626 // CHECK-LABEL: @test_mm256_mask_compress_epi32
3627 // CHECK: @llvm.x86.avx512.mask.compress
3628 return _mm256_mask_compress_epi32(__W
,__U
,__A
);
3630 __m256i
test_mm256_maskz_compress_epi32(__mmask8 __U
, __m256i __A
) {
3631 // CHECK-LABEL: @test_mm256_maskz_compress_epi32
3632 // CHECK: @llvm.x86.avx512.mask.compress
3633 return _mm256_maskz_compress_epi32(__U
,__A
);
3635 void test_mm_mask_compressstoreu_pd(void *__P
, __mmask8 __U
, __m128d __A
) {
3636 // CHECK-LABEL: @test_mm_mask_compressstoreu_pd
3637 // CHECK: @llvm.masked.compressstore.v2f64(<2 x double> %{{.*}}, ptr %{{.*}}, <2 x i1> %{{.*}})
3638 return _mm_mask_compressstoreu_pd(__P
,__U
,__A
);
3640 void test_mm256_mask_compressstoreu_pd(void *__P
, __mmask8 __U
, __m256d __A
) {
3641 // CHECK-LABEL: @test_mm256_mask_compressstoreu_pd
3642 // CHECK: @llvm.masked.compressstore.v4f64(<4 x double> %{{.*}}, ptr %{{.*}}, <4 x i1> %{{.*}})
3643 return _mm256_mask_compressstoreu_pd(__P
,__U
,__A
);
3645 void test_mm_mask_compressstoreu_epi64(void *__P
, __mmask8 __U
, __m128i __A
) {
3646 // CHECK-LABEL: @test_mm_mask_compressstoreu_epi64
3647 // CHECK: @llvm.masked.compressstore.v2i64(<2 x i64> %{{.*}}, ptr %{{.*}}, <2 x i1> %{{.*}})
3648 return _mm_mask_compressstoreu_epi64(__P
,__U
,__A
);
3650 void test_mm256_mask_compressstoreu_epi64(void *__P
, __mmask8 __U
, __m256i __A
) {
3651 // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi64
3652 // CHECK: @llvm.masked.compressstore.v4i64(<4 x i64> %{{.*}}, ptr %{{.*}}, <4 x i1> %{{.*}})
3653 return _mm256_mask_compressstoreu_epi64(__P
,__U
,__A
);
3655 void test_mm_mask_compressstoreu_ps(void *__P
, __mmask8 __U
, __m128 __A
) {
3656 // CHECK-LABEL: @test_mm_mask_compressstoreu_ps
3657 // CHECK: @llvm.masked.compressstore.v4f32(<4 x float> %{{.*}}, ptr %{{.*}}, <4 x i1> %{{.*}})
3658 return _mm_mask_compressstoreu_ps(__P
,__U
,__A
);
3660 void test_mm256_mask_compressstoreu_ps(void *__P
, __mmask8 __U
, __m256 __A
) {
3661 // CHECK-LABEL: @test_mm256_mask_compressstoreu_ps
3662 // CHECK: @llvm.masked.compressstore.v8f32(<8 x float> %{{.*}}, ptr %{{.*}}, <8 x i1> %{{.*}})
3663 return _mm256_mask_compressstoreu_ps(__P
,__U
,__A
);
3665 void test_mm_mask_compressstoreu_epi32(void *__P
, __mmask8 __U
, __m128i __A
) {
3666 // CHECK-LABEL: @test_mm_mask_compressstoreu_epi32
3667 // CHECK: @llvm.masked.compressstore.v4i32(<4 x i32> %{{.*}}, ptr %{{.*}}, <4 x i1> %{{.*}})
3668 return _mm_mask_compressstoreu_epi32(__P
,__U
,__A
);
3670 void test_mm256_mask_compressstoreu_epi32(void *__P
, __mmask8 __U
, __m256i __A
) {
3671 // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi32
3672 // CHECK: @llvm.masked.compressstore.v8i32(<8 x i32> %{{.*}}, ptr %{{.*}}, <8 x i1> %{{.*}})
3673 return _mm256_mask_compressstoreu_epi32(__P
,__U
,__A
);
3675 __m128d
test_mm_mask_cvtepi32_pd(__m128d __W
, __mmask8 __U
, __m128i __A
) {
3676 // CHECK-LABEL: @test_mm_mask_cvtepi32_pd
3677 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
3678 // CHECK: sitofp <2 x i32> %{{.*}} to <2 x double>
3679 // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3680 return _mm_mask_cvtepi32_pd(__W
,__U
,__A
);
3682 __m128d
test_mm_maskz_cvtepi32_pd(__mmask8 __U
, __m128i __A
) {
3683 // CHECK-LABEL: @test_mm_maskz_cvtepi32_pd
3684 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
3685 // CHECK: sitofp <2 x i32> %{{.*}} to <2 x double>
3686 // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3687 return _mm_maskz_cvtepi32_pd(__U
,__A
);
3689 __m256d
test_mm256_mask_cvtepi32_pd(__m256d __W
, __mmask8 __U
, __m128i __A
) {
3690 // CHECK-LABEL: @test_mm256_mask_cvtepi32_pd
3691 // CHECK: sitofp <4 x i32> %{{.*}} to <4 x double>
3692 // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3693 return _mm256_mask_cvtepi32_pd(__W
,__U
,__A
);
3695 __m256d
test_mm256_maskz_cvtepi32_pd(__mmask8 __U
, __m128i __A
) {
3696 // CHECK-LABEL: @test_mm256_maskz_cvtepi32_pd
3697 // CHECK: sitofp <4 x i32> %{{.*}} to <4 x double>
3698 // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3699 return _mm256_maskz_cvtepi32_pd(__U
,__A
);
3701 __m128
test_mm_mask_cvtepi32_ps(__m128 __W
, __mmask8 __U
, __m128i __A
) {
3702 // CHECK-LABEL: @test_mm_mask_cvtepi32_ps
3703 // CHECK: sitofp <4 x i32> %{{.*}} to <4 x float>
3704 // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3705 return _mm_mask_cvtepi32_ps(__W
,__U
,__A
);
3707 __m128
test_mm_maskz_cvtepi32_ps(__mmask8 __U
, __m128i __A
) {
3708 // CHECK-LABEL: @test_mm_maskz_cvtepi32_ps
3709 // CHECK: sitofp <4 x i32> %{{.*}} to <4 x float>
3710 // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3711 return _mm_maskz_cvtepi32_ps(__U
,__A
);
3713 __m256
test_mm256_mask_cvtepi32_ps(__m256 __W
, __mmask8 __U
, __m256i __A
) {
3714 // CHECK-LABEL: @test_mm256_mask_cvtepi32_ps
3715 // CHECK: sitofp <8 x i32> %{{.*}} to <8 x float>
3716 // CHECK: select <8 x i1> {{.*}}, <8 x float> {{.*}}, <8 x float> {{.*}}
3717 return _mm256_mask_cvtepi32_ps(__W
,__U
,__A
);
3719 __m256
test_mm256_maskz_cvtepi32_ps(__mmask8 __U
, __m256i __A
) {
3720 // CHECK-LABEL: @test_mm256_maskz_cvtepi32_ps
3721 // CHECK: sitofp <8 x i32> %{{.*}} to <8 x float>
3722 // CHECK: select <8 x i1> {{.*}}, <8 x float> {{.*}}, <8 x float> {{.*}}
3723 return _mm256_maskz_cvtepi32_ps(__U
,__A
);
3725 __m128i
test_mm_mask_cvtpd_epi32(__m128i __W
, __mmask8 __U
, __m128d __A
) {
3726 // CHECK-LABEL: @test_mm_mask_cvtpd_epi32
3727 // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.128
3728 return _mm_mask_cvtpd_epi32(__W
,__U
,__A
);
3730 __m128i
test_mm_maskz_cvtpd_epi32(__mmask8 __U
, __m128d __A
) {
3731 // CHECK-LABEL: @test_mm_maskz_cvtpd_epi32
3732 // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.128
3733 return _mm_maskz_cvtpd_epi32(__U
,__A
);
3735 __m128i
test_mm256_mask_cvtpd_epi32(__m128i __W
, __mmask8 __U
, __m256d __A
) {
3736 // CHECK-LABEL: @test_mm256_mask_cvtpd_epi32
3737 // CHECK: @llvm.x86.avx.cvt.pd2dq.256
3738 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3739 return _mm256_mask_cvtpd_epi32(__W
,__U
,__A
);
3741 __m128i
test_mm256_maskz_cvtpd_epi32(__mmask8 __U
, __m256d __A
) {
3742 // CHECK-LABEL: @test_mm256_maskz_cvtpd_epi32
3743 // CHECK: @llvm.x86.avx.cvt.pd2dq.256
3744 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3745 return _mm256_maskz_cvtpd_epi32(__U
,__A
);
3747 __m128
test_mm_mask_cvtpd_ps(__m128 __W
, __mmask8 __U
, __m128d __A
) {
3748 // CHECK-LABEL: @test_mm_mask_cvtpd_ps
3749 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps
3750 return _mm_mask_cvtpd_ps(__W
,__U
,__A
);
3752 __m128
test_mm_maskz_cvtpd_ps(__mmask8 __U
, __m128d __A
) {
3753 // CHECK-LABEL: @test_mm_maskz_cvtpd_ps
3754 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps
3755 return _mm_maskz_cvtpd_ps(__U
,__A
);
3757 __m128
test_mm256_mask_cvtpd_ps(__m128 __W
, __mmask8 __U
, __m256d __A
) {
3758 // CHECK-LABEL: @test_mm256_mask_cvtpd_ps
3759 // CHECK: @llvm.x86.avx.cvt.pd2.ps.256
3760 // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3761 return _mm256_mask_cvtpd_ps(__W
,__U
,__A
);
3763 __m128
test_mm256_maskz_cvtpd_ps(__mmask8 __U
, __m256d __A
) {
3764 // CHECK-LABEL: @test_mm256_maskz_cvtpd_ps
3765 // CHECK: @llvm.x86.avx.cvt.pd2.ps.256
3766 // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3767 return _mm256_maskz_cvtpd_ps(__U
,__A
);
3769 __m128i
test_mm_cvtpd_epu32(__m128d __A
) {
3770 // CHECK-LABEL: @test_mm_cvtpd_epu32
3771 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3772 return _mm_cvtpd_epu32(__A
);
3774 __m128i
test_mm_mask_cvtpd_epu32(__m128i __W
, __mmask8 __U
, __m128d __A
) {
3775 // CHECK-LABEL: @test_mm_mask_cvtpd_epu32
3776 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3777 return _mm_mask_cvtpd_epu32(__W
,__U
,__A
);
3779 __m128i
test_mm_maskz_cvtpd_epu32(__mmask8 __U
, __m128d __A
) {
3780 // CHECK-LABEL: @test_mm_maskz_cvtpd_epu32
3781 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3782 return _mm_maskz_cvtpd_epu32(__U
,__A
);
3784 __m128i
test_mm256_cvtpd_epu32(__m256d __A
) {
3785 // CHECK-LABEL: @test_mm256_cvtpd_epu32
3786 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3787 return _mm256_cvtpd_epu32(__A
);
3789 __m128i
test_mm256_mask_cvtpd_epu32(__m128i __W
, __mmask8 __U
, __m256d __A
) {
3790 // CHECK-LABEL: @test_mm256_mask_cvtpd_epu32
3791 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3792 return _mm256_mask_cvtpd_epu32(__W
,__U
,__A
);
3794 __m128i
test_mm256_maskz_cvtpd_epu32(__mmask8 __U
, __m256d __A
) {
3795 // CHECK-LABEL: @test_mm256_maskz_cvtpd_epu32
3796 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3797 return _mm256_maskz_cvtpd_epu32(__U
,__A
);
3799 __m128i
test_mm_mask_cvtps_epi32(__m128i __W
, __mmask8 __U
, __m128 __A
) {
3800 // CHECK-LABEL: @test_mm_mask_cvtps_epi32
3801 // CHECK: @llvm.x86.sse2.cvtps2dq
3802 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3803 return _mm_mask_cvtps_epi32(__W
,__U
,__A
);
3805 __m128i
test_mm_maskz_cvtps_epi32(__mmask8 __U
, __m128 __A
) {
3806 // CHECK-LABEL: @test_mm_maskz_cvtps_epi32
3807 // CHECK: @llvm.x86.sse2.cvtps2dq
3808 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3809 return _mm_maskz_cvtps_epi32(__U
,__A
);
3811 __m256i
test_mm256_mask_cvtps_epi32(__m256i __W
, __mmask8 __U
, __m256 __A
) {
3812 // CHECK-LABEL: @test_mm256_mask_cvtps_epi32
3813 // CHECK: @llvm.x86.avx.cvt.ps2dq.256
3814 // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
3815 return _mm256_mask_cvtps_epi32(__W
,__U
,__A
);
3817 __m256i
test_mm256_maskz_cvtps_epi32(__mmask8 __U
, __m256 __A
) {
3818 // CHECK-LABEL: @test_mm256_maskz_cvtps_epi32
3819 // CHECK: @llvm.x86.avx.cvt.ps2dq.256
3820 // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
3821 return _mm256_maskz_cvtps_epi32(__U
,__A
);
3823 __m128d
test_mm_mask_cvtps_pd(__m128d __W
, __mmask8 __U
, __m128 __A
) {
3824 // CHECK-LABEL: @test_mm_mask_cvtps_pd
3825 // CHECK: fpext <2 x float> %{{.*}} to <2 x double>
3826 // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3827 return _mm_mask_cvtps_pd(__W
,__U
,__A
);
3829 __m128d
test_mm_maskz_cvtps_pd(__mmask8 __U
, __m128 __A
) {
3830 // CHECK-LABEL: @test_mm_maskz_cvtps_pd
3831 // CHECK: fpext <2 x float> %{{.*}} to <2 x double>
3832 // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3833 return _mm_maskz_cvtps_pd(__U
,__A
);
3835 __m256d
test_mm256_mask_cvtps_pd(__m256d __W
, __mmask8 __U
, __m128 __A
) {
3836 // CHECK-LABEL: @test_mm256_mask_cvtps_pd
3837 // CHECK: fpext <4 x float> %{{.*}} to <4 x double>
3838 // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3839 return _mm256_mask_cvtps_pd(__W
,__U
,__A
);
3841 __m256d
test_mm256_maskz_cvtps_pd(__mmask8 __U
, __m128 __A
) {
3842 // CHECK-LABEL: @test_mm256_maskz_cvtps_pd
3843 // CHECK: fpext <4 x float> %{{.*}} to <4 x double>
3844 // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3845 return _mm256_maskz_cvtps_pd(__U
,__A
);
3847 __m128i
test_mm_cvtps_epu32(__m128 __A
) {
3848 // CHECK-LABEL: @test_mm_cvtps_epu32
3849 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3850 return _mm_cvtps_epu32(__A
);
3852 __m128i
test_mm_mask_cvtps_epu32(__m128i __W
, __mmask8 __U
, __m128 __A
) {
3853 // CHECK-LABEL: @test_mm_mask_cvtps_epu32
3854 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3855 return _mm_mask_cvtps_epu32(__W
,__U
,__A
);
3857 __m128i
test_mm_maskz_cvtps_epu32(__mmask8 __U
, __m128 __A
) {
3858 // CHECK-LABEL: @test_mm_maskz_cvtps_epu32
3859 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3860 return _mm_maskz_cvtps_epu32(__U
,__A
);
3862 __m256i
test_mm256_cvtps_epu32(__m256 __A
) {
3863 // CHECK-LABEL: @test_mm256_cvtps_epu32
3864 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3865 return _mm256_cvtps_epu32(__A
);
3867 __m256i
test_mm256_mask_cvtps_epu32(__m256i __W
, __mmask8 __U
, __m256 __A
) {
3868 // CHECK-LABEL: @test_mm256_mask_cvtps_epu32
3869 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3870 return _mm256_mask_cvtps_epu32(__W
,__U
,__A
);
3872 __m256i
test_mm256_maskz_cvtps_epu32(__mmask8 __U
, __m256 __A
) {
3873 // CHECK-LABEL: @test_mm256_maskz_cvtps_epu32
3874 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3875 return _mm256_maskz_cvtps_epu32(__U
,__A
);
3877 __m128i
test_mm_mask_cvttpd_epi32(__m128i __W
, __mmask8 __U
, __m128d __A
) {
3878 // CHECK-LABEL: @test_mm_mask_cvttpd_epi32
3879 // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.128
3880 return _mm_mask_cvttpd_epi32(__W
,__U
,__A
);
3882 __m128i
test_mm_maskz_cvttpd_epi32(__mmask8 __U
, __m128d __A
) {
3883 // CHECK-LABEL: @test_mm_maskz_cvttpd_epi32
3884 // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.128
3885 return _mm_maskz_cvttpd_epi32(__U
,__A
);
3887 __m128i
test_mm256_mask_cvttpd_epi32(__m128i __W
, __mmask8 __U
, __m256d __A
) {
3888 // CHECK-LABEL: @test_mm256_mask_cvttpd_epi32
3889 // CHECK: @llvm.x86.avx.cvtt.pd2dq.256
3890 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3891 return _mm256_mask_cvttpd_epi32(__W
,__U
,__A
);
3893 __m128i
test_mm256_maskz_cvttpd_epi32(__mmask8 __U
, __m256d __A
) {
3894 // CHECK-LABEL: @test_mm256_maskz_cvttpd_epi32
3895 // CHECK: @llvm.x86.avx.cvtt.pd2dq.256
3896 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3897 return _mm256_maskz_cvttpd_epi32(__U
,__A
);
3899 __m128i
test_mm_cvttpd_epu32(__m128d __A
) {
3900 // CHECK-LABEL: @test_mm_cvttpd_epu32
3901 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
3902 return _mm_cvttpd_epu32(__A
);
3904 __m128i
test_mm_mask_cvttpd_epu32(__m128i __W
, __mmask8 __U
, __m128d __A
) {
3905 // CHECK-LABEL: @test_mm_mask_cvttpd_epu32
3906 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
3907 return _mm_mask_cvttpd_epu32(__W
,__U
,__A
);
3909 __m128i
test_mm_maskz_cvttpd_epu32(__mmask8 __U
, __m128d __A
) {
3910 // CHECK-LABEL: @test_mm_maskz_cvttpd_epu32
3911 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
3912 return _mm_maskz_cvttpd_epu32(__U
,__A
);
3914 __m128i
test_mm256_cvttpd_epu32(__m256d __A
) {
3915 // CHECK-LABEL: @test_mm256_cvttpd_epu32
3916 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
3917 return _mm256_cvttpd_epu32(__A
);
3919 __m128i
test_mm256_mask_cvttpd_epu32(__m128i __W
, __mmask8 __U
, __m256d __A
) {
3920 // CHECK-LABEL: @test_mm256_mask_cvttpd_epu32
3921 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
3922 return _mm256_mask_cvttpd_epu32(__W
,__U
,__A
);
3924 __m128i
test_mm256_maskz_cvttpd_epu32(__mmask8 __U
, __m256d __A
) {
3925 // CHECK-LABEL: @test_mm256_maskz_cvttpd_epu32
3926 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
3927 return _mm256_maskz_cvttpd_epu32(__U
,__A
);
3929 __m128i
test_mm_mask_cvttps_epi32(__m128i __W
, __mmask8 __U
, __m128 __A
) {
3930 // CHECK-LABEL: @test_mm_mask_cvttps_epi32
3931 // CHECK: @llvm.x86.sse2.cvttps2dq
3932 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3933 return _mm_mask_cvttps_epi32(__W
,__U
,__A
);
3935 __m128i
test_mm_maskz_cvttps_epi32(__mmask8 __U
, __m128 __A
) {
3936 // CHECK-LABEL: @test_mm_maskz_cvttps_epi32
3937 // CHECK: @llvm.x86.sse2.cvttps2dq
3938 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3939 return _mm_maskz_cvttps_epi32(__U
,__A
);
3941 __m256i
test_mm256_mask_cvttps_epi32(__m256i __W
, __mmask8 __U
, __m256 __A
) {
3942 // CHECK-LABEL: @test_mm256_mask_cvttps_epi32
3943 // CHECK: @llvm.x86.avx.cvtt.ps2dq.256
3944 // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
3945 return _mm256_mask_cvttps_epi32(__W
,__U
,__A
);
3947 __m256i
test_mm256_maskz_cvttps_epi32(__mmask8 __U
, __m256 __A
) {
3948 // CHECK-LABEL: @test_mm256_maskz_cvttps_epi32
3949 // CHECK: @llvm.x86.avx.cvtt.ps2dq.256
3950 // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
3951 return _mm256_maskz_cvttps_epi32(__U
,__A
);
3953 __m128i
test_mm_cvttps_epu32(__m128 __A
) {
3954 // CHECK-LABEL: @test_mm_cvttps_epu32
3955 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
3956 return _mm_cvttps_epu32(__A
);
3958 __m128i
test_mm_mask_cvttps_epu32(__m128i __W
, __mmask8 __U
, __m128 __A
) {
3959 // CHECK-LABEL: @test_mm_mask_cvttps_epu32
3960 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
3961 return _mm_mask_cvttps_epu32(__W
,__U
,__A
);
3963 __m128i
test_mm_maskz_cvttps_epu32(__mmask8 __U
, __m128 __A
) {
3964 // CHECK-LABEL: @test_mm_maskz_cvttps_epu32
3965 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
3966 return _mm_maskz_cvttps_epu32(__U
,__A
);
3968 __m256i
test_mm256_cvttps_epu32(__m256 __A
) {
3969 // CHECK-LABEL: @test_mm256_cvttps_epu32
3970 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
3971 return _mm256_cvttps_epu32(__A
);
3973 __m256i
test_mm256_mask_cvttps_epu32(__m256i __W
, __mmask8 __U
, __m256 __A
) {
3974 // CHECK-LABEL: @test_mm256_mask_cvttps_epu32
3975 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
3976 return _mm256_mask_cvttps_epu32(__W
,__U
,__A
);
3978 __m256i
test_mm256_maskz_cvttps_epu32(__mmask8 __U
, __m256 __A
) {
3979 // CHECK-LABEL: @test_mm256_maskz_cvttps_epu32
3980 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
3981 return _mm256_maskz_cvttps_epu32(__U
,__A
);
3983 __m128d
test_mm_cvtepu32_pd(__m128i __A
) {
3984 // CHECK-LABEL: @test_mm_cvtepu32_pd
3985 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
3986 // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
3987 return _mm_cvtepu32_pd(__A
);
3989 __m128d
test_mm_mask_cvtepu32_pd(__m128d __W
, __mmask8 __U
, __m128i __A
) {
3990 // CHECK-LABEL: @test_mm_mask_cvtepu32_pd
3991 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
3992 // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
3993 // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3994 return _mm_mask_cvtepu32_pd(__W
,__U
,__A
);
3996 __m128d
test_mm_maskz_cvtepu32_pd(__mmask8 __U
, __m128i __A
) {
3997 // CHECK-LABEL: @test_mm_maskz_cvtepu32_pd
3998 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
3999 // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
4000 // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
4001 return _mm_maskz_cvtepu32_pd(__U
,__A
);
4003 __m256d
test_mm256_cvtepu32_pd(__m128i __A
) {
4004 // CHECK-LABEL: @test_mm256_cvtepu32_pd
4005 // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4006 return _mm256_cvtepu32_pd(__A
);
4008 __m256d
test_mm256_mask_cvtepu32_pd(__m256d __W
, __mmask8 __U
, __m128i __A
) {
4009 // CHECK-LABEL: @test_mm256_mask_cvtepu32_pd
4010 // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4011 // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
4012 return _mm256_mask_cvtepu32_pd(__W
,__U
,__A
);
4014 __m256d
test_mm256_maskz_cvtepu32_pd(__mmask8 __U
, __m128i __A
) {
4015 // CHECK-LABEL: @test_mm256_maskz_cvtepu32_pd
4016 // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4017 // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
4018 return _mm256_maskz_cvtepu32_pd(__U
,__A
);
4020 __m128
test_mm_cvtepu32_ps(__m128i __A
) {
4021 // CHECK-LABEL: @test_mm_cvtepu32_ps
4022 // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4023 return _mm_cvtepu32_ps(__A
);
4025 __m128
test_mm_mask_cvtepu32_ps(__m128 __W
, __mmask8 __U
, __m128i __A
) {
4026 // CHECK-LABEL: @test_mm_mask_cvtepu32_ps
4027 // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4028 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4029 return _mm_mask_cvtepu32_ps(__W
,__U
,__A
);
4031 __m128
test_mm_maskz_cvtepu32_ps(__mmask8 __U
, __m128i __A
) {
4032 // CHECK-LABEL: @test_mm_maskz_cvtepu32_ps
4033 // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4034 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4035 return _mm_maskz_cvtepu32_ps(__U
,__A
);
4037 __m256
test_mm256_cvtepu32_ps(__m256i __A
) {
4038 // CHECK-LABEL: @test_mm256_cvtepu32_ps
4039 // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4040 return _mm256_cvtepu32_ps(__A
);
4042 __m256
test_mm256_mask_cvtepu32_ps(__m256 __W
, __mmask8 __U
, __m256i __A
) {
4043 // CHECK-LABEL: @test_mm256_mask_cvtepu32_ps
4044 // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4045 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4046 return _mm256_mask_cvtepu32_ps(__W
,__U
,__A
);
4048 __m256
test_mm256_maskz_cvtepu32_ps(__mmask8 __U
, __m256i __A
) {
4049 // CHECK-LABEL: @test_mm256_maskz_cvtepu32_ps
4050 // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4051 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4052 return _mm256_maskz_cvtepu32_ps(__U
,__A
);
4054 __m128d
test_mm_mask_div_pd(__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
) {
4055 // CHECK-LABEL: @test_mm_mask_div_pd
4056 // CHECK: fdiv <2 x double> %{{.*}}, %{{.*}}
4057 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4058 return _mm_mask_div_pd(__W
,__U
,__A
,__B
);
4060 __m128d
test_mm_maskz_div_pd(__mmask8 __U
, __m128d __A
, __m128d __B
) {
4061 // CHECK-LABEL: @test_mm_maskz_div_pd
4062 // CHECK: fdiv <2 x double> %{{.*}}, %{{.*}}
4063 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4064 return _mm_maskz_div_pd(__U
,__A
,__B
);
4066 __m256d
test_mm256_mask_div_pd(__m256d __W
, __mmask8 __U
, __m256d __A
, __m256d __B
) {
4067 // CHECK-LABEL: @test_mm256_mask_div_pd
4068 // CHECK: fdiv <4 x double> %{{.*}}, %{{.*}}
4069 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4070 return _mm256_mask_div_pd(__W
,__U
,__A
,__B
);
4072 __m256d
test_mm256_maskz_div_pd(__mmask8 __U
, __m256d __A
, __m256d __B
) {
4073 // CHECK-LABEL: @test_mm256_maskz_div_pd
4074 // CHECK: fdiv <4 x double> %{{.*}}, %{{.*}}
4075 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4076 return _mm256_maskz_div_pd(__U
,__A
,__B
);
4078 __m128
test_mm_mask_div_ps(__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
) {
4079 // CHECK-LABEL: @test_mm_mask_div_ps
4080 // CHECK: fdiv <4 x float> %{{.*}}, %{{.*}}
4081 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4082 return _mm_mask_div_ps(__W
,__U
,__A
,__B
);
4084 __m128
test_mm_maskz_div_ps(__mmask8 __U
, __m128 __A
, __m128 __B
) {
4085 // CHECK-LABEL: @test_mm_maskz_div_ps
4086 // CHECK: fdiv <4 x float> %{{.*}}, %{{.*}}
4087 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4088 return _mm_maskz_div_ps(__U
,__A
,__B
);
4090 __m256
test_mm256_mask_div_ps(__m256 __W
, __mmask8 __U
, __m256 __A
, __m256 __B
) {
4091 // CHECK-LABEL: @test_mm256_mask_div_ps
4092 // CHECK: fdiv <8 x float> %{{.*}}, %{{.*}}
4093 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4094 return _mm256_mask_div_ps(__W
,__U
,__A
,__B
);
4096 __m256
test_mm256_maskz_div_ps(__mmask8 __U
, __m256 __A
, __m256 __B
) {
4097 // CHECK-LABEL: @test_mm256_maskz_div_ps
4098 // CHECK: fdiv <8 x float> %{{.*}}, %{{.*}}
4099 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4100 return _mm256_maskz_div_ps(__U
,__A
,__B
);
4102 __m128d
test_mm_mask_expand_pd(__m128d __W
, __mmask8 __U
, __m128d __A
) {
4103 // CHECK-LABEL: @test_mm_mask_expand_pd
4104 // CHECK: @llvm.x86.avx512.mask.expand
4105 return _mm_mask_expand_pd(__W
,__U
,__A
);
4107 __m128d
test_mm_maskz_expand_pd(__mmask8 __U
, __m128d __A
) {
4108 // CHECK-LABEL: @test_mm_maskz_expand_pd
4109 // CHECK: @llvm.x86.avx512.mask.expand
4110 return _mm_maskz_expand_pd(__U
,__A
);
4112 __m256d
test_mm256_mask_expand_pd(__m256d __W
, __mmask8 __U
, __m256d __A
) {
4113 // CHECK-LABEL: @test_mm256_mask_expand_pd
4114 // CHECK: @llvm.x86.avx512.mask.expand
4115 return _mm256_mask_expand_pd(__W
,__U
,__A
);
4117 __m256d
test_mm256_maskz_expand_pd(__mmask8 __U
, __m256d __A
) {
4118 // CHECK-LABEL: @test_mm256_maskz_expand_pd
4119 // CHECK: @llvm.x86.avx512.mask.expand
4120 return _mm256_maskz_expand_pd(__U
,__A
);
4122 __m128i
test_mm_mask_expand_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
) {
4123 // CHECK-LABEL: @test_mm_mask_expand_epi64
4124 // CHECK: @llvm.x86.avx512.mask.expand
4125 return _mm_mask_expand_epi64(__W
,__U
,__A
);
4127 __m128i
test_mm_maskz_expand_epi64(__mmask8 __U
, __m128i __A
) {
4128 // CHECK-LABEL: @test_mm_maskz_expand_epi64
4129 // CHECK: @llvm.x86.avx512.mask.expand
4130 return _mm_maskz_expand_epi64(__U
,__A
);
4132 __m256i
test_mm256_mask_expand_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
) {
4133 // CHECK-LABEL: @test_mm256_mask_expand_epi64
4134 // CHECK: @llvm.x86.avx512.mask.expand
4135 return _mm256_mask_expand_epi64(__W
,__U
,__A
);
4137 __m256i
test_mm256_maskz_expand_epi64(__mmask8 __U
, __m256i __A
) {
4138 // CHECK-LABEL: @test_mm256_maskz_expand_epi64
4139 // CHECK: @llvm.x86.avx512.mask.expand
4140 return _mm256_maskz_expand_epi64(__U
,__A
);
4142 __m128d
test_mm_mask_expandloadu_pd(__m128d __W
, __mmask8 __U
, void const *__P
) {
4143 // CHECK-LABEL: @test_mm_mask_expandloadu_pd
4144 // CHECK: @llvm.masked.expandload.v2f64(ptr %{{.*}}, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
4145 return _mm_mask_expandloadu_pd(__W
,__U
,__P
);
4147 __m128d
test_mm_maskz_expandloadu_pd(__mmask8 __U
, void const *__P
) {
4148 // CHECK-LABEL: @test_mm_maskz_expandloadu_pd
4149 // CHECK: @llvm.masked.expandload.v2f64(ptr %{{.*}}, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
4150 return _mm_maskz_expandloadu_pd(__U
,__P
);
4152 __m256d
test_mm256_mask_expandloadu_pd(__m256d __W
, __mmask8 __U
, void const *__P
) {
4153 // CHECK-LABEL: @test_mm256_mask_expandloadu_pd
4154 // CHECK: @llvm.masked.expandload.v4f64(ptr %{{.*}}, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
4155 return _mm256_mask_expandloadu_pd(__W
,__U
,__P
);
4157 __m256d
test_mm256_maskz_expandloadu_pd(__mmask8 __U
, void const *__P
) {
4158 // CHECK-LABEL: @test_mm256_maskz_expandloadu_pd
4159 // CHECK: @llvm.masked.expandload.v4f64(ptr %{{.*}}, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
4160 return _mm256_maskz_expandloadu_pd(__U
,__P
);
4162 __m128i
test_mm_mask_expandloadu_epi64(__m128i __W
, __mmask8 __U
, void const *__P
) {
4163 // CHECK-LABEL: @test_mm_mask_expandloadu_epi64
4164 // CHECK: @llvm.masked.expandload.v2i64(ptr %{{.*}}, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
4165 return _mm_mask_expandloadu_epi64(__W
,__U
,__P
);
4167 __m128i
test_mm_maskz_expandloadu_epi64(__mmask8 __U
, void const *__P
) {
4168 // CHECK-LABEL: @test_mm_maskz_expandloadu_epi64
4169 // CHECK: @llvm.masked.expandload.v2i64(ptr %{{.*}}, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
4170 return _mm_maskz_expandloadu_epi64(__U
,__P
);
4172 __m256i
test_mm256_mask_expandloadu_epi64(__m256i __W
, __mmask8 __U
, void const *__P
) {
4173 // CHECK-LABEL: @test_mm256_mask_expandloadu_epi64
4174 // CHECK: @llvm.masked.expandload.v4i64(ptr %{{.*}}, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
4175 return _mm256_mask_expandloadu_epi64(__W
,__U
,__P
);
4177 __m256i
test_mm256_maskz_expandloadu_epi64(__mmask8 __U
, void const *__P
) {
4178 // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi64
4179 // CHECK: @llvm.masked.expandload.v4i64(ptr %{{.*}}, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
4180 return _mm256_maskz_expandloadu_epi64(__U
,__P
);
4182 __m128
test_mm_mask_expandloadu_ps(__m128 __W
, __mmask8 __U
, void const *__P
) {
4183 // CHECK-LABEL: @test_mm_mask_expandloadu_ps
4184 // CHECK: @llvm.masked.expandload.v4f32(ptr %{{.*}}, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
4185 return _mm_mask_expandloadu_ps(__W
,__U
,__P
);
4187 __m128
test_mm_maskz_expandloadu_ps(__mmask8 __U
, void const *__P
) {
4188 // CHECK-LABEL: @test_mm_maskz_expandloadu_ps
4189 // CHECK: @llvm.masked.expandload.v4f32(ptr %{{.*}}, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
4190 return _mm_maskz_expandloadu_ps(__U
,__P
);
4192 __m256
test_mm256_mask_expandloadu_ps(__m256 __W
, __mmask8 __U
, void const *__P
) {
4193 // CHECK-LABEL: @test_mm256_mask_expandloadu_ps
4194 // CHECK: @llvm.masked.expandload.v8f32(ptr %{{.*}}, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
4195 return _mm256_mask_expandloadu_ps(__W
,__U
,__P
);
4197 __m256
test_mm256_maskz_expandloadu_ps(__mmask8 __U
, void const *__P
) {
4198 // CHECK-LABEL: @test_mm256_maskz_expandloadu_ps
4199 // CHECK: @llvm.masked.expandload.v8f32(ptr %{{.*}}, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
4200 return _mm256_maskz_expandloadu_ps(__U
,__P
);
4202 __m128i
test_mm_mask_expandloadu_epi32(__m128i __W
, __mmask8 __U
, void const *__P
) {
4203 // CHECK-LABEL: @test_mm_mask_expandloadu_epi32
4204 // CHECK: @llvm.masked.expandload.v4i32(ptr %{{.*}}, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
4205 return _mm_mask_expandloadu_epi32(__W
,__U
,__P
);
4207 __m128i
test_mm_maskz_expandloadu_epi32(__mmask8 __U
, void const *__P
) {
4208 // CHECK-LABEL: @test_mm_maskz_expandloadu_epi32
4209 // CHECK: @llvm.masked.expandload.v4i32(ptr %{{.*}}, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
4210 return _mm_maskz_expandloadu_epi32(__U
,__P
);
4212 __m256i
test_mm256_mask_expandloadu_epi32(__m256i __W
, __mmask8 __U
, void const *__P
) {
4213 // CHECK-LABEL: @test_mm256_mask_expandloadu_epi32
4214 // CHECK: @llvm.masked.expandload.v8i32(ptr %{{.*}}, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
4215 return _mm256_mask_expandloadu_epi32(__W
,__U
,__P
);
4217 __m256i
test_mm256_maskz_expandloadu_epi32(__mmask8 __U
, void const *__P
) {
4218 // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi32
4219 // CHECK: @llvm.masked.expandload.v8i32(ptr %{{.*}}, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
4220 return _mm256_maskz_expandloadu_epi32(__U
,__P
);
4222 __m128
test_mm_mask_expand_ps(__m128 __W
, __mmask8 __U
, __m128 __A
) {
4223 // CHECK-LABEL: @test_mm_mask_expand_ps
4224 // CHECK: @llvm.x86.avx512.mask.expand
4225 return _mm_mask_expand_ps(__W
,__U
,__A
);
4227 __m128
test_mm_maskz_expand_ps(__mmask8 __U
, __m128 __A
) {
4228 // CHECK-LABEL: @test_mm_maskz_expand_ps
4229 // CHECK: @llvm.x86.avx512.mask.expand
4230 return _mm_maskz_expand_ps(__U
,__A
);
4232 __m256
test_mm256_mask_expand_ps(__m256 __W
, __mmask8 __U
, __m256 __A
) {
4233 // CHECK-LABEL: @test_mm256_mask_expand_ps
4234 // CHECK: @llvm.x86.avx512.mask.expand
4235 return _mm256_mask_expand_ps(__W
,__U
,__A
);
4237 __m256
test_mm256_maskz_expand_ps(__mmask8 __U
, __m256 __A
) {
4238 // CHECK-LABEL: @test_mm256_maskz_expand_ps
4239 // CHECK: @llvm.x86.avx512.mask.expand
4240 return _mm256_maskz_expand_ps(__U
,__A
);
4242 __m128i
test_mm_mask_expand_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
) {
4243 // CHECK-LABEL: @test_mm_mask_expand_epi32
4244 // CHECK: @llvm.x86.avx512.mask.expand
4245 return _mm_mask_expand_epi32(__W
,__U
,__A
);
4247 __m128i
test_mm_maskz_expand_epi32(__mmask8 __U
, __m128i __A
) {
4248 // CHECK-LABEL: @test_mm_maskz_expand_epi32
4249 // CHECK: @llvm.x86.avx512.mask.expand
4250 return _mm_maskz_expand_epi32(__U
,__A
);
4252 __m256i
test_mm256_mask_expand_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
) {
4253 // CHECK-LABEL: @test_mm256_mask_expand_epi32
4254 // CHECK: @llvm.x86.avx512.mask.expand
4255 return _mm256_mask_expand_epi32(__W
,__U
,__A
);
4257 __m256i
test_mm256_maskz_expand_epi32(__mmask8 __U
, __m256i __A
) {
4258 // CHECK-LABEL: @test_mm256_maskz_expand_epi32
4259 // CHECK: @llvm.x86.avx512.mask.expand
4260 return _mm256_maskz_expand_epi32(__U
,__A
);
4262 __m128d
test_mm_getexp_pd(__m128d __A
) {
4263 // CHECK-LABEL: @test_mm_getexp_pd
4264 // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4265 return _mm_getexp_pd(__A
);
4267 __m128d
test_mm_mask_getexp_pd(__m128d __W
, __mmask8 __U
, __m128d __A
) {
4268 // CHECK-LABEL: @test_mm_mask_getexp_pd
4269 // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4270 return _mm_mask_getexp_pd(__W
,__U
,__A
);
4272 __m128d
test_mm_maskz_getexp_pd(__mmask8 __U
, __m128d __A
) {
4273 // CHECK-LABEL: @test_mm_maskz_getexp_pd
4274 // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4275 return _mm_maskz_getexp_pd(__U
,__A
);
4277 __m256d
test_mm256_getexp_pd(__m256d __A
) {
4278 // CHECK-LABEL: @test_mm256_getexp_pd
4279 // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4280 return _mm256_getexp_pd(__A
);
4282 __m256d
test_mm256_mask_getexp_pd(__m256d __W
, __mmask8 __U
, __m256d __A
) {
4283 // CHECK-LABEL: @test_mm256_mask_getexp_pd
4284 // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4285 return _mm256_mask_getexp_pd(__W
,__U
,__A
);
4287 __m256d
test_mm256_maskz_getexp_pd(__mmask8 __U
, __m256d __A
) {
4288 // CHECK-LABEL: @test_mm256_maskz_getexp_pd
4289 // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4290 return _mm256_maskz_getexp_pd(__U
,__A
);
4292 __m128
test_mm_getexp_ps(__m128 __A
) {
4293 // CHECK-LABEL: @test_mm_getexp_ps
4294 // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4295 return _mm_getexp_ps(__A
);
4297 __m128
test_mm_mask_getexp_ps(__m128 __W
, __mmask8 __U
, __m128 __A
) {
4298 // CHECK-LABEL: @test_mm_mask_getexp_ps
4299 // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4300 return _mm_mask_getexp_ps(__W
,__U
,__A
);
4302 __m128
test_mm_maskz_getexp_ps(__mmask8 __U
, __m128 __A
) {
4303 // CHECK-LABEL: @test_mm_maskz_getexp_ps
4304 // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4305 return _mm_maskz_getexp_ps(__U
,__A
);
4307 __m256
test_mm256_getexp_ps(__m256 __A
) {
4308 // CHECK-LABEL: @test_mm256_getexp_ps
4309 // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4310 return _mm256_getexp_ps(__A
);
4312 __m256
test_mm256_mask_getexp_ps(__m256 __W
, __mmask8 __U
, __m256 __A
) {
4313 // CHECK-LABEL: @test_mm256_mask_getexp_ps
4314 // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4315 return _mm256_mask_getexp_ps(__W
,__U
,__A
);
4317 __m256
test_mm256_maskz_getexp_ps(__mmask8 __U
, __m256 __A
) {
4318 // CHECK-LABEL: @test_mm256_maskz_getexp_ps
4319 // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4320 return _mm256_maskz_getexp_ps(__U
,__A
);
4322 __m128d
test_mm_mask_max_pd(__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
) {
4323 // CHECK-LABEL: @test_mm_mask_max_pd
4324 // CHECK: @llvm.x86.sse2.max.pd
4325 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4326 return _mm_mask_max_pd(__W
,__U
,__A
,__B
);
4328 __m128d
test_mm_maskz_max_pd(__mmask8 __U
, __m128d __A
, __m128d __B
) {
4329 // CHECK-LABEL: @test_mm_maskz_max_pd
4330 // CHECK: @llvm.x86.sse2.max.pd
4331 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4332 return _mm_maskz_max_pd(__U
,__A
,__B
);
4334 __m256d
test_mm256_mask_max_pd(__m256d __W
, __mmask8 __U
, __m256d __A
, __m256d __B
) {
4335 // CHECK-LABEL: @test_mm256_mask_max_pd
4336 // CHECK: @llvm.x86.avx.max.pd.256
4337 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4338 return _mm256_mask_max_pd(__W
,__U
,__A
,__B
);
4340 __m256d
test_mm256_maskz_max_pd(__mmask8 __U
, __m256d __A
, __m256d __B
) {
4341 // CHECK-LABEL: @test_mm256_maskz_max_pd
4342 // CHECK: @llvm.x86.avx.max.pd.256
4343 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4344 return _mm256_maskz_max_pd(__U
,__A
,__B
);
4346 __m128
test_mm_mask_max_ps(__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
) {
4347 // CHECK-LABEL: @test_mm_mask_max_ps
4348 // CHECK: @llvm.x86.sse.max.ps
4349 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4350 return _mm_mask_max_ps(__W
,__U
,__A
,__B
);
4352 __m128
test_mm_maskz_max_ps(__mmask8 __U
, __m128 __A
, __m128 __B
) {
4353 // CHECK-LABEL: @test_mm_maskz_max_ps
4354 // CHECK: @llvm.x86.sse.max.ps
4355 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4356 return _mm_maskz_max_ps(__U
,__A
,__B
);
4358 __m256
test_mm256_mask_max_ps(__m256 __W
, __mmask8 __U
, __m256 __A
, __m256 __B
) {
4359 // CHECK-LABEL: @test_mm256_mask_max_ps
4360 // CHECK: @llvm.x86.avx.max.ps.256
4361 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4362 return _mm256_mask_max_ps(__W
,__U
,__A
,__B
);
4364 __m256
test_mm256_maskz_max_ps(__mmask8 __U
, __m256 __A
, __m256 __B
) {
4365 // CHECK-LABEL: @test_mm256_maskz_max_ps
4366 // CHECK: @llvm.x86.avx.max.ps.256
4367 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4368 return _mm256_maskz_max_ps(__U
,__A
,__B
);
4370 __m128d
test_mm_mask_min_pd(__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
) {
4371 // CHECK-LABEL: @test_mm_mask_min_pd
4372 // CHECK: @llvm.x86.sse2.min.pd
4373 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4374 return _mm_mask_min_pd(__W
,__U
,__A
,__B
);
4376 __m128d
test_mm_maskz_min_pd(__mmask8 __U
, __m128d __A
, __m128d __B
) {
4377 // CHECK-LABEL: @test_mm_maskz_min_pd
4378 // CHECK: @llvm.x86.sse2.min.pd
4379 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4380 return _mm_maskz_min_pd(__U
,__A
,__B
);
4382 __m256d
test_mm256_mask_min_pd(__m256d __W
, __mmask8 __U
, __m256d __A
, __m256d __B
) {
4383 // CHECK-LABEL: @test_mm256_mask_min_pd
4384 // CHECK: @llvm.x86.avx.min.pd.256
4385 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4386 return _mm256_mask_min_pd(__W
,__U
,__A
,__B
);
4388 __m256d
test_mm256_maskz_min_pd(__mmask8 __U
, __m256d __A
, __m256d __B
) {
4389 // CHECK-LABEL: @test_mm256_maskz_min_pd
4390 // CHECK: @llvm.x86.avx.min.pd.256
4391 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4392 return _mm256_maskz_min_pd(__U
,__A
,__B
);
4394 __m128
test_mm_mask_min_ps(__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
) {
4395 // CHECK-LABEL: @test_mm_mask_min_ps
4396 // CHECK: @llvm.x86.sse.min.ps
4397 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4398 return _mm_mask_min_ps(__W
,__U
,__A
,__B
);
4400 __m128
test_mm_maskz_min_ps(__mmask8 __U
, __m128 __A
, __m128 __B
) {
4401 // CHECK-LABEL: @test_mm_maskz_min_ps
4402 // CHECK: @llvm.x86.sse.min.ps
4403 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4404 return _mm_maskz_min_ps(__U
,__A
,__B
);
4406 __m256
test_mm256_mask_min_ps(__m256 __W
, __mmask8 __U
, __m256 __A
, __m256 __B
) {
4407 // CHECK-LABEL: @test_mm256_mask_min_ps
4408 // CHECK: @llvm.x86.avx.min.ps.256
4409 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4410 return _mm256_mask_min_ps(__W
,__U
,__A
,__B
);
4412 __m256
test_mm256_maskz_min_ps(__mmask8 __U
, __m256 __A
, __m256 __B
) {
4413 // CHECK-LABEL: @test_mm256_maskz_min_ps
4414 // CHECK: @llvm.x86.avx.min.ps.256
4415 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4416 return _mm256_maskz_min_ps(__U
,__A
,__B
);
4418 __m128d
test_mm_mask_mul_pd(__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
) {
4419 // CHECK-LABEL: @test_mm_mask_mul_pd
4420 // CHECK: fmul <2 x double> %{{.*}}, %{{.*}}
4421 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4422 return _mm_mask_mul_pd(__W
,__U
,__A
,__B
);
4424 __m128d
test_mm_maskz_mul_pd(__mmask8 __U
, __m128d __A
, __m128d __B
) {
4425 // CHECK-LABEL: @test_mm_maskz_mul_pd
4426 // CHECK: fmul <2 x double> %{{.*}}, %{{.*}}
4427 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4428 return _mm_maskz_mul_pd(__U
,__A
,__B
);
4430 __m256d
test_mm256_mask_mul_pd(__m256d __W
, __mmask8 __U
, __m256d __A
, __m256d __B
) {
4431 // CHECK-LABEL: @test_mm256_mask_mul_pd
4432 // CHECK: fmul <4 x double> %{{.*}}, %{{.*}}
4433 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4434 return _mm256_mask_mul_pd(__W
,__U
,__A
,__B
);
4436 __m256d
test_mm256_maskz_mul_pd(__mmask8 __U
, __m256d __A
, __m256d __B
) {
4437 // CHECK-LABEL: @test_mm256_maskz_mul_pd
4438 // CHECK: fmul <4 x double> %{{.*}}, %{{.*}}
4439 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4440 return _mm256_maskz_mul_pd(__U
,__A
,__B
);
4442 __m128
test_mm_mask_mul_ps(__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
) {
4443 // CHECK-LABEL: @test_mm_mask_mul_ps
4444 // CHECK: fmul <4 x float> %{{.*}}, %{{.*}}
4445 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4446 return _mm_mask_mul_ps(__W
,__U
,__A
,__B
);
4448 __m128
test_mm_maskz_mul_ps(__mmask8 __U
, __m128 __A
, __m128 __B
) {
4449 // CHECK-LABEL: @test_mm_maskz_mul_ps
4450 // CHECK: fmul <4 x float> %{{.*}}, %{{.*}}
4451 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4452 return _mm_maskz_mul_ps(__U
,__A
,__B
);
4454 __m256
test_mm256_mask_mul_ps(__m256 __W
, __mmask8 __U
, __m256 __A
, __m256 __B
) {
4455 // CHECK-LABEL: @test_mm256_mask_mul_ps
4456 // CHECK: fmul <8 x float> %{{.*}}, %{{.*}}
4457 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4458 return _mm256_mask_mul_ps(__W
,__U
,__A
,__B
);
4460 __m256
test_mm256_maskz_mul_ps(__mmask8 __U
, __m256 __A
, __m256 __B
) {
4461 // CHECK-LABEL: @test_mm256_maskz_mul_ps
4462 // CHECK: fmul <8 x float> %{{.*}}, %{{.*}}
4463 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4464 return _mm256_maskz_mul_ps(__U
,__A
,__B
);
4466 __m128i
test_mm_mask_abs_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
) {
4467 // CHECK-LABEL: @test_mm_mask_abs_epi32
4468 // CHECK: [[ABS:%.*]] = call <4 x i32> @llvm.abs.v4i32(<4 x i32> %{{.*}}, i1 false)
4469 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[ABS]] to <2 x i64>
4470 // CHECK: [[ABS:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4471 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> [[ABS]], <4 x i32> %{{.*}}
4472 return _mm_mask_abs_epi32(__W
,__U
,__A
);
4474 __m128i
test_mm_maskz_abs_epi32(__mmask8 __U
, __m128i __A
) {
4475 // CHECK-LABEL: @test_mm_maskz_abs_epi32
4476 // CHECK: [[ABS:%.*]] = call <4 x i32> @llvm.abs.v4i32(<4 x i32> %{{.*}}, i1 false)
4477 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[ABS]] to <2 x i64>
4478 // CHECK: [[ABS:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4479 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> [[ABS]], <4 x i32> %{{.*}}
4480 return _mm_maskz_abs_epi32(__U
,__A
);
4482 __m256i
test_mm256_mask_abs_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
) {
4483 // CHECK-LABEL: @test_mm256_mask_abs_epi32
4484 // CHECK: [[ABS:%.*]] = call <8 x i32> @llvm.abs.v8i32(<8 x i32> %{{.*}}, i1 false)
4485 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[ABS]] to <4 x i64>
4486 // CHECK: [[ABS:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4487 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> [[ABS]], <8 x i32> %{{.*}}
4488 return _mm256_mask_abs_epi32(__W
,__U
,__A
);
4490 __m256i
test_mm256_maskz_abs_epi32(__mmask8 __U
, __m256i __A
) {
4491 // CHECK-LABEL: @test_mm256_maskz_abs_epi32
4492 // CHECK: [[ABS:%.*]] = call <8 x i32> @llvm.abs.v8i32(<8 x i32> %{{.*}}, i1 false)
4493 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[ABS]] to <4 x i64>
4494 // CHECK: [[ABS:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4495 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> [[ABS]], <8 x i32> %{{.*}}
4496 return _mm256_maskz_abs_epi32(__U
,__A
);
4498 __m128i
test_mm_abs_epi64(__m128i __A
) {
4499 // CHECK-LABEL: @test_mm_abs_epi64
4500 // CHECK: [[ABS:%.*]] = call <2 x i64> @llvm.abs.v2i64(<2 x i64> %{{.*}}, i1 false)
4501 return _mm_abs_epi64(__A
);
4503 __m128i
test_mm_mask_abs_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
) {
4504 // CHECK-LABEL: @test_mm_mask_abs_epi64
4505 // CHECK: [[ABS:%.*]] = call <2 x i64> @llvm.abs.v2i64(<2 x i64> %{{.*}}, i1 false)
4506 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> [[ABS]], <2 x i64> %{{.*}}
4507 return _mm_mask_abs_epi64(__W
,__U
,__A
);
4509 __m128i
test_mm_maskz_abs_epi64(__mmask8 __U
, __m128i __A
) {
4510 // CHECK-LABEL: @test_mm_maskz_abs_epi64
4511 // CHECK: [[ABS:%.*]] = call <2 x i64> @llvm.abs.v2i64(<2 x i64> %{{.*}}, i1 false)
4512 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> [[ABS]], <2 x i64> %{{.*}}
4513 return _mm_maskz_abs_epi64(__U
,__A
);
4515 __m256i
test_mm256_abs_epi64(__m256i __A
) {
4516 // CHECK-LABEL: @test_mm256_abs_epi64
4517 // CHECK: [[ABS:%.*]] = call <4 x i64> @llvm.abs.v4i64(<4 x i64> %{{.*}}, i1 false)
4518 return _mm256_abs_epi64(__A
);
4520 __m256i
test_mm256_mask_abs_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
) {
4521 // CHECK-LABEL: @test_mm256_mask_abs_epi64
4522 // CHECK: [[ABS:%.*]] = call <4 x i64> @llvm.abs.v4i64(<4 x i64> %{{.*}}, i1 false)
4523 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> [[ABS]], <4 x i64> %{{.*}}
4524 return _mm256_mask_abs_epi64(__W
,__U
,__A
);
4526 __m256i
test_mm256_maskz_abs_epi64(__mmask8 __U
, __m256i __A
) {
4527 // CHECK-LABEL: @test_mm256_maskz_abs_epi64
4528 // CHECK: [[ABS:%.*]] = call <4 x i64> @llvm.abs.v4i64(<4 x i64> %{{.*}}, i1 false)
4529 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> [[ABS]], <4 x i64> %{{.*}}
4530 return _mm256_maskz_abs_epi64(__U
,__A
);
4532 __m128i
test_mm_maskz_max_epi32(__mmask8 __M
, __m128i __A
, __m128i __B
) {
4533 // CHECK-LABEL: @test_mm_maskz_max_epi32
4534 // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.smax.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4535 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4536 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4537 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4538 return _mm_maskz_max_epi32(__M
,__A
,__B
);
4540 __m128i
test_mm_mask_max_epi32(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
4541 // CHECK-LABEL: @test_mm_mask_max_epi32
4542 // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.smax.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4543 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4544 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4545 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4546 return _mm_mask_max_epi32(__W
,__M
,__A
,__B
);
4548 __m256i
test_mm256_maskz_max_epi32(__mmask8 __M
, __m256i __A
, __m256i __B
) {
4549 // CHECK-LABEL: @test_mm256_maskz_max_epi32
4550 // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.smax.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4551 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4552 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4553 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4554 return _mm256_maskz_max_epi32(__M
,__A
,__B
);
4556 __m256i
test_mm256_mask_max_epi32(__m256i __W
, __mmask8 __M
, __m256i __A
, __m256i __B
) {
4557 // CHECK-LABEL: @test_mm256_mask_max_epi32
4558 // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.smax.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4559 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4560 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4561 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4562 return _mm256_mask_max_epi32(__W
,__M
,__A
,__B
);
4564 __m128i
test_mm_maskz_max_epi64(__mmask8 __M
, __m128i __A
, __m128i __B
) {
4565 // CHECK-LABEL: @test_mm_maskz_max_epi64
4566 // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.smax.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4567 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4568 return _mm_maskz_max_epi64(__M
,__A
,__B
);
4570 __m128i
test_mm_mask_max_epi64(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
4571 // CHECK-LABEL: @test_mm_mask_max_epi64
4572 // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.smax.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4573 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4574 return _mm_mask_max_epi64(__W
,__M
,__A
,__B
);
4576 __m128i
test_mm_max_epi64(__m128i __A
, __m128i __B
) {
4577 // CHECK-LABEL: @test_mm_max_epi64
4578 // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.smax.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4579 return _mm_max_epi64(__A
,__B
);
4581 __m256i
test_mm256_maskz_max_epi64(__mmask8 __M
, __m256i __A
, __m256i __B
) {
4582 // CHECK-LABEL: @test_mm256_maskz_max_epi64
4583 // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.smax.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4584 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4585 return _mm256_maskz_max_epi64(__M
,__A
,__B
);
4587 __m256i
test_mm256_mask_max_epi64(__m256i __W
, __mmask8 __M
, __m256i __A
, __m256i __B
) {
4588 // CHECK-LABEL: @test_mm256_mask_max_epi64
4589 // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.smax.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4590 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4591 return _mm256_mask_max_epi64(__W
,__M
,__A
,__B
);
4593 __m256i
test_mm256_max_epi64(__m256i __A
, __m256i __B
) {
4594 // CHECK-LABEL: @test_mm256_max_epi64
4595 // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.smax.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4596 return _mm256_max_epi64(__A
,__B
);
4598 __m128i
test_mm_maskz_max_epu32(__mmask8 __M
, __m128i __A
, __m128i __B
) {
4599 // CHECK-LABEL: @test_mm_maskz_max_epu32
4600 // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.umax.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4601 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4602 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4603 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4604 return _mm_maskz_max_epu32(__M
,__A
,__B
);
4606 __m128i
test_mm_mask_max_epu32(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
4607 // CHECK-LABEL: @test_mm_mask_max_epu32
4608 // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.umax.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4609 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4610 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4611 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4612 return _mm_mask_max_epu32(__W
,__M
,__A
,__B
);
4614 __m256i
test_mm256_maskz_max_epu32(__mmask8 __M
, __m256i __A
, __m256i __B
) {
4615 // CHECK-LABEL: @test_mm256_maskz_max_epu32
4616 // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.umax.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4617 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4618 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4619 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4620 return _mm256_maskz_max_epu32(__M
,__A
,__B
);
4622 __m256i
test_mm256_mask_max_epu32(__m256i __W
, __mmask8 __M
, __m256i __A
, __m256i __B
) {
4623 // CHECK-LABEL: @test_mm256_mask_max_epu32
4624 // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.umax.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4625 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4626 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4627 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4628 return _mm256_mask_max_epu32(__W
,__M
,__A
,__B
);
4630 __m128i
test_mm_maskz_max_epu64(__mmask8 __M
, __m128i __A
, __m128i __B
) {
4631 // CHECK-LABEL: @test_mm_maskz_max_epu64
4632 // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.umax.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4633 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4634 return _mm_maskz_max_epu64(__M
,__A
,__B
);
4636 __m128i
test_mm_max_epu64(__m128i __A
, __m128i __B
) {
4637 // CHECK-LABEL: @test_mm_max_epu64
4638 // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.umax.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4639 return _mm_max_epu64(__A
,__B
);
4641 __m128i
test_mm_mask_max_epu64(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
4642 // CHECK-LABEL: @test_mm_mask_max_epu64
4643 // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.umax.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4644 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4645 return _mm_mask_max_epu64(__W
,__M
,__A
,__B
);
4647 __m256i
test_mm256_maskz_max_epu64(__mmask8 __M
, __m256i __A
, __m256i __B
) {
4648 // CHECK-LABEL: @test_mm256_maskz_max_epu64
4649 // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.umax.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4650 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4651 return _mm256_maskz_max_epu64(__M
,__A
,__B
);
4653 __m256i
test_mm256_max_epu64(__m256i __A
, __m256i __B
) {
4654 // CHECK-LABEL: @test_mm256_max_epu64
4655 // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.umax.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4656 return _mm256_max_epu64(__A
,__B
);
4658 __m256i
test_mm256_mask_max_epu64(__m256i __W
, __mmask8 __M
, __m256i __A
, __m256i __B
) {
4659 // CHECK-LABEL: @test_mm256_mask_max_epu64
4660 // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.umax.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4661 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4662 return _mm256_mask_max_epu64(__W
,__M
,__A
,__B
);
4664 __m128i
test_mm_maskz_min_epi32(__mmask8 __M
, __m128i __A
, __m128i __B
) {
4665 // CHECK-LABEL: @test_mm_maskz_min_epi32
4666 // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.smin.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4667 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4668 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4669 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4670 return _mm_maskz_min_epi32(__M
,__A
,__B
);
4672 __m128i
test_mm_mask_min_epi32(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
4673 // CHECK-LABEL: @test_mm_mask_min_epi32
4674 // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.smin.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4675 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4676 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4677 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4678 return _mm_mask_min_epi32(__W
,__M
,__A
,__B
);
4680 __m256i
test_mm256_maskz_min_epi32(__mmask8 __M
, __m256i __A
, __m256i __B
) {
4681 // CHECK-LABEL: @test_mm256_maskz_min_epi32
4682 // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.smin.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4683 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4684 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4685 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4686 return _mm256_maskz_min_epi32(__M
,__A
,__B
);
4688 __m256i
test_mm256_mask_min_epi32(__m256i __W
, __mmask8 __M
, __m256i __A
, __m256i __B
) {
4689 // CHECK-LABEL: @test_mm256_mask_min_epi32
4690 // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.smin.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4691 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4692 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4693 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4694 return _mm256_mask_min_epi32(__W
,__M
,__A
,__B
);
4696 __m128i
test_mm_min_epi64(__m128i __A
, __m128i __B
) {
4697 // CHECK-LABEL: @test_mm_min_epi64
4698 // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.smin.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4699 return _mm_min_epi64(__A
,__B
);
4701 __m128i
test_mm_mask_min_epi64(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
4702 // CHECK-LABEL: @test_mm_mask_min_epi64
4703 // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.smin.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4704 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4705 return _mm_mask_min_epi64(__W
,__M
,__A
,__B
);
4707 __m128i
test_mm_maskz_min_epi64(__mmask8 __M
, __m128i __A
, __m128i __B
) {
4708 // CHECK-LABEL: @test_mm_maskz_min_epi64
4709 // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.smin.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4710 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4711 return _mm_maskz_min_epi64(__M
,__A
,__B
);
4713 __m256i
test_mm256_min_epi64(__m256i __A
, __m256i __B
) {
4714 // CHECK-LABEL: @test_mm256_min_epi64
4715 // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.smin.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4716 return _mm256_min_epi64(__A
,__B
);
4718 __m256i
test_mm256_mask_min_epi64(__m256i __W
, __mmask8 __M
, __m256i __A
, __m256i __B
) {
4719 // CHECK-LABEL: @test_mm256_mask_min_epi64
4720 // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.smin.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4721 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4722 return _mm256_mask_min_epi64(__W
,__M
,__A
,__B
);
4724 __m256i
test_mm256_maskz_min_epi64(__mmask8 __M
, __m256i __A
, __m256i __B
) {
4725 // CHECK-LABEL: @test_mm256_maskz_min_epi64
4726 // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.smin.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4727 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4728 return _mm256_maskz_min_epi64(__M
,__A
,__B
);
4730 __m128i
test_mm_maskz_min_epu32(__mmask8 __M
, __m128i __A
, __m128i __B
) {
4731 // CHECK-LABEL: @test_mm_maskz_min_epu32
4732 // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.umin.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4733 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4734 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4735 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4736 return _mm_maskz_min_epu32(__M
,__A
,__B
);
4738 __m128i
test_mm_mask_min_epu32(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
4739 // CHECK-LABEL: @test_mm_mask_min_epu32
4740 // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.umin.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4741 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4742 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4743 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4744 return _mm_mask_min_epu32(__W
,__M
,__A
,__B
);
4746 __m256i
test_mm256_maskz_min_epu32(__mmask8 __M
, __m256i __A
, __m256i __B
) {
4747 // CHECK-LABEL: @test_mm256_maskz_min_epu32
4748 // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.umin.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4749 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4750 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4751 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4752 return _mm256_maskz_min_epu32(__M
,__A
,__B
);
4754 __m256i
test_mm256_mask_min_epu32(__m256i __W
, __mmask8 __M
, __m256i __A
, __m256i __B
) {
4755 // CHECK-LABEL: @test_mm256_mask_min_epu32
4756 // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.umin.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4757 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4758 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4759 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4760 return _mm256_mask_min_epu32(__W
,__M
,__A
,__B
);
4762 __m128i
test_mm_min_epu64(__m128i __A
, __m128i __B
) {
4763 // CHECK-LABEL: @test_mm_min_epu64
4764 // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.umin.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4765 return _mm_min_epu64(__A
,__B
);
4767 __m128i
test_mm_mask_min_epu64(__m128i __W
, __mmask8 __M
, __m128i __A
, __m128i __B
) {
4768 // CHECK-LABEL: @test_mm_mask_min_epu64
4769 // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.umin.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4770 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4771 return _mm_mask_min_epu64(__W
,__M
,__A
,__B
);
4773 __m128i
test_mm_maskz_min_epu64(__mmask8 __M
, __m128i __A
, __m128i __B
) {
4774 // CHECK-LABEL: @test_mm_maskz_min_epu64
4775 // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.umin.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4776 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4777 return _mm_maskz_min_epu64(__M
,__A
,__B
);
4779 __m256i
test_mm256_min_epu64(__m256i __A
, __m256i __B
) {
4780 // CHECK-LABEL: @test_mm256_min_epu64
4781 // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.umin.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4782 return _mm256_min_epu64(__A
,__B
);
4784 __m256i
test_mm256_mask_min_epu64(__m256i __W
, __mmask8 __M
, __m256i __A
, __m256i __B
) {
4785 // CHECK-LABEL: @test_mm256_mask_min_epu64
4786 // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.umin.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4787 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4788 return _mm256_mask_min_epu64(__W
,__M
,__A
,__B
);
4790 __m256i
test_mm256_maskz_min_epu64(__mmask8 __M
, __m256i __A
, __m256i __B
) {
4791 // CHECK-LABEL: @test_mm256_maskz_min_epu64
4792 // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.umin.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4793 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4794 return _mm256_maskz_min_epu64(__M
,__A
,__B
);
4796 __m128d
test_mm_roundscale_pd(__m128d __A
) {
4797 // CHECK-LABEL: @test_mm_roundscale_pd
4798 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4799 return _mm_roundscale_pd(__A
,4);
4801 __m128d
test_mm_mask_roundscale_pd(__m128d __W
, __mmask8 __U
, __m128d __A
) {
4802 // CHECK-LABEL: @test_mm_mask_roundscale_pd
4803 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4804 return _mm_mask_roundscale_pd(__W
,__U
,__A
,4);
4806 __m128d
test_mm_maskz_roundscale_pd(__mmask8 __U
, __m128d __A
) {
4807 // CHECK-LABEL: @test_mm_maskz_roundscale_pd
4808 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4809 return _mm_maskz_roundscale_pd(__U
,__A
,4);
4811 __m256d
test_mm256_roundscale_pd(__m256d __A
) {
4812 // CHECK-LABEL: @test_mm256_roundscale_pd
4813 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
4814 return _mm256_roundscale_pd(__A
,4);
4816 __m256d
test_mm256_mask_roundscale_pd(__m256d __W
, __mmask8 __U
, __m256d __A
) {
4817 // CHECK-LABEL: @test_mm256_mask_roundscale_pd
4818 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
4819 return _mm256_mask_roundscale_pd(__W
,__U
,__A
,4);
4821 __m256d
test_mm256_maskz_roundscale_pd(__mmask8 __U
, __m256d __A
) {
4822 // CHECK-LABEL: @test_mm256_maskz_roundscale_pd
4823 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
4824 return _mm256_maskz_roundscale_pd(__U
,__A
,4);
4826 __m128
test_mm_roundscale_ps(__m128 __A
) {
4827 // CHECK-LABEL: @test_mm_roundscale_ps
4828 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
4829 return _mm_roundscale_ps(__A
,4);
4831 __m128
test_mm_mask_roundscale_ps(__m128 __W
, __mmask8 __U
, __m128 __A
) {
4832 // CHECK-LABEL: @test_mm_mask_roundscale_ps
4833 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
4834 return _mm_mask_roundscale_ps(__W
,__U
,__A
,4);
4836 __m128
test_mm_maskz_roundscale_ps(__mmask8 __U
, __m128 __A
) {
4837 // CHECK-LABEL: @test_mm_maskz_roundscale_ps
4838 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
4839 return _mm_maskz_roundscale_ps(__U
,__A
, 4);
4841 __m256
test_mm256_roundscale_ps(__m256 __A
) {
4842 // CHECK-LABEL: @test_mm256_roundscale_ps
4843 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
4844 return _mm256_roundscale_ps(__A
,4);
4846 __m256
test_mm256_mask_roundscale_ps(__m256 __W
, __mmask8 __U
, __m256 __A
) {
4847 // CHECK-LABEL: @test_mm256_mask_roundscale_ps
4848 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
4849 return _mm256_mask_roundscale_ps(__W
,__U
,__A
,4);
4851 __m256
test_mm256_maskz_roundscale_ps(__mmask8 __U
, __m256 __A
) {
4852 // CHECK-LABEL: @test_mm256_maskz_roundscale_ps
4853 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
4854 return _mm256_maskz_roundscale_ps(__U
,__A
,4);
4856 __m128d
test_mm_scalef_pd(__m128d __A
, __m128d __B
) {
4857 // CHECK-LABEL: @test_mm_scalef_pd
4858 // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
4859 return _mm_scalef_pd(__A
,__B
);
4861 __m128d
test_mm_mask_scalef_pd(__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
) {
4862 // CHECK-LABEL: @test_mm_mask_scalef_pd
4863 // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
4864 return _mm_mask_scalef_pd(__W
,__U
,__A
,__B
);
4866 __m128d
test_mm_maskz_scalef_pd(__mmask8 __U
, __m128d __A
, __m128d __B
) {
4867 // CHECK-LABEL: @test_mm_maskz_scalef_pd
4868 // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
4869 return _mm_maskz_scalef_pd(__U
,__A
,__B
);
4871 __m256d
test_mm256_scalef_pd(__m256d __A
, __m256d __B
) {
4872 // CHECK-LABEL: @test_mm256_scalef_pd
4873 // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
4874 return _mm256_scalef_pd(__A
,__B
);
4876 __m256d
test_mm256_mask_scalef_pd(__m256d __W
, __mmask8 __U
, __m256d __A
, __m256d __B
) {
4877 // CHECK-LABEL: @test_mm256_mask_scalef_pd
4878 // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
4879 return _mm256_mask_scalef_pd(__W
,__U
,__A
,__B
);
4881 __m256d
test_mm256_maskz_scalef_pd(__mmask8 __U
, __m256d __A
, __m256d __B
) {
4882 // CHECK-LABEL: @test_mm256_maskz_scalef_pd
4883 // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
4884 return _mm256_maskz_scalef_pd(__U
,__A
,__B
);
4886 __m128
test_mm_scalef_ps(__m128 __A
, __m128 __B
) {
4887 // CHECK-LABEL: @test_mm_scalef_ps
4888 // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
4889 return _mm_scalef_ps(__A
,__B
);
4891 __m128
test_mm_mask_scalef_ps(__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
) {
4892 // CHECK-LABEL: @test_mm_mask_scalef_ps
4893 // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
4894 return _mm_mask_scalef_ps(__W
,__U
,__A
,__B
);
4896 __m128
test_mm_maskz_scalef_ps(__mmask8 __U
, __m128 __A
, __m128 __B
) {
4897 // CHECK-LABEL: @test_mm_maskz_scalef_ps
4898 // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
4899 return _mm_maskz_scalef_ps(__U
,__A
,__B
);
4901 __m256
test_mm256_scalef_ps(__m256 __A
, __m256 __B
) {
4902 // CHECK-LABEL: @test_mm256_scalef_ps
4903 // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
4904 return _mm256_scalef_ps(__A
,__B
);
4906 __m256
test_mm256_mask_scalef_ps(__m256 __W
, __mmask8 __U
, __m256 __A
, __m256 __B
) {
4907 // CHECK-LABEL: @test_mm256_mask_scalef_ps
4908 // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
4909 return _mm256_mask_scalef_ps(__W
,__U
,__A
,__B
);
4911 __m256
test_mm256_maskz_scalef_ps(__mmask8 __U
, __m256 __A
, __m256 __B
) {
4912 // CHECK-LABEL: @test_mm256_maskz_scalef_ps
4913 // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
4914 return _mm256_maskz_scalef_ps(__U
,__A
,__B
);
4916 void test_mm_i64scatter_pd(double *__addr
, __m128i __index
, __m128d __v1
) {
4917 // CHECK-LABEL: @test_mm_i64scatter_pd
4918 // CHECK: @llvm.x86.avx512.mask.scatterdiv2.df
4919 return _mm_i64scatter_pd(__addr
,__index
,__v1
,2);
4921 void test_mm_mask_i64scatter_pd(double *__addr
, __mmask8 __mask
, __m128i __index
, __m128d __v1
) {
4922 // CHECK-LABEL: @test_mm_mask_i64scatter_pd
4923 // CHECK: @llvm.x86.avx512.mask.scatterdiv2.df
4924 return _mm_mask_i64scatter_pd(__addr
,__mask
,__index
,__v1
,2);
4926 void test_mm_i64scatter_epi64(long long *__addr
, __m128i __index
, __m128i __v1
) {
4927 // CHECK-LABEL: @test_mm_i64scatter_epi64
4928 // CHECK: @llvm.x86.avx512.mask.scatterdiv2.di
4929 return _mm_i64scatter_epi64(__addr
,__index
,__v1
,2);
4931 void test_mm_mask_i64scatter_epi64(long long *__addr
, __mmask8 __mask
, __m128i __index
, __m128i __v1
) {
4932 // CHECK-LABEL: @test_mm_mask_i64scatter_epi64
4933 // CHECK: @llvm.x86.avx512.mask.scatterdiv2.di
4934 return _mm_mask_i64scatter_epi64(__addr
,__mask
,__index
,__v1
,2);
4936 void test_mm256_i64scatter_pd(double *__addr
, __m256i __index
, __m256d __v1
) {
4937 // CHECK-LABEL: @test_mm256_i64scatter_pd
4938 // CHECK: @llvm.x86.avx512.mask.scatterdiv4.df
4939 return _mm256_i64scatter_pd(__addr
,__index
,__v1
,2);
4941 void test_mm256_mask_i64scatter_pd(double *__addr
, __mmask8 __mask
, __m256i __index
, __m256d __v1
) {
4942 // CHECK-LABEL: @test_mm256_mask_i64scatter_pd
4943 // CHECK: @llvm.x86.avx512.mask.scatterdiv4.df
4944 return _mm256_mask_i64scatter_pd(__addr
,__mask
,__index
,__v1
,2);
4946 void test_mm256_i64scatter_epi64(long long *__addr
, __m256i __index
, __m256i __v1
) {
4947 // CHECK-LABEL: @test_mm256_i64scatter_epi64
4948 // CHECK: @llvm.x86.avx512.mask.scatterdiv4.di
4949 return _mm256_i64scatter_epi64(__addr
,__index
,__v1
,2);
4951 void test_mm256_mask_i64scatter_epi64(long long *__addr
, __mmask8 __mask
, __m256i __index
, __m256i __v1
) {
4952 // CHECK-LABEL: @test_mm256_mask_i64scatter_epi64
4953 // CHECK: @llvm.x86.avx512.mask.scatterdiv4.di
4954 return _mm256_mask_i64scatter_epi64(__addr
,__mask
,__index
,__v1
,2);
4956 void test_mm_i64scatter_ps(float *__addr
, __m128i __index
, __m128 __v1
) {
4957 // CHECK-LABEL: @test_mm_i64scatter_ps
4958 // CHECK: @llvm.x86.avx512.mask.scatterdiv4.sf
4959 return _mm_i64scatter_ps(__addr
,__index
,__v1
,2);
4961 void test_mm_mask_i64scatter_ps(float *__addr
, __mmask8 __mask
, __m128i __index
, __m128 __v1
) {
4962 // CHECK-LABEL: @test_mm_mask_i64scatter_ps
4963 // CHECK: @llvm.x86.avx512.mask.scatterdiv4.sf
4964 return _mm_mask_i64scatter_ps(__addr
,__mask
,__index
,__v1
,2);
4966 void test_mm_i64scatter_epi32(int *__addr
, __m128i __index
, __m128i __v1
) {
4967 // CHECK-LABEL: @test_mm_i64scatter_epi32
4968 // CHECK: @llvm.x86.avx512.mask.scatterdiv4.si
4969 return _mm_i64scatter_epi32(__addr
,__index
,__v1
,2);
4971 void test_mm_mask_i64scatter_epi32(int *__addr
, __mmask8 __mask
, __m128i __index
, __m128i __v1
) {
4972 // CHECK-LABEL: @test_mm_mask_i64scatter_epi32
4973 // CHECK: @llvm.x86.avx512.mask.scatterdiv4.si
4974 return _mm_mask_i64scatter_epi32(__addr
,__mask
,__index
,__v1
,2);
4976 void test_mm256_i64scatter_ps(float *__addr
, __m256i __index
, __m128 __v1
) {
4977 // CHECK-LABEL: @test_mm256_i64scatter_ps
4978 // CHECK: @llvm.x86.avx512.mask.scatterdiv8.sf
4979 return _mm256_i64scatter_ps(__addr
,__index
,__v1
,2);
4981 void test_mm256_mask_i64scatter_ps(float *__addr
, __mmask8 __mask
, __m256i __index
, __m128 __v1
) {
4982 // CHECK-LABEL: @test_mm256_mask_i64scatter_ps
4983 // CHECK: @llvm.x86.avx512.mask.scatterdiv8.sf
4984 return _mm256_mask_i64scatter_ps(__addr
,__mask
,__index
,__v1
,2);
4986 void test_mm256_i64scatter_epi32(int *__addr
, __m256i __index
, __m128i __v1
) {
4987 // CHECK-LABEL: @test_mm256_i64scatter_epi32
4988 // CHECK: @llvm.x86.avx512.mask.scatterdiv8.si
4989 return _mm256_i64scatter_epi32(__addr
,__index
,__v1
,2);
4991 void test_mm256_mask_i64scatter_epi32(int *__addr
, __mmask8 __mask
, __m256i __index
, __m128i __v1
) {
4992 // CHECK-LABEL: @test_mm256_mask_i64scatter_epi32
4993 // CHECK: @llvm.x86.avx512.mask.scatterdiv8.si
4994 return _mm256_mask_i64scatter_epi32(__addr
,__mask
,__index
,__v1
,2);
4996 void test_mm_i32scatter_pd(double *__addr
, __m128i __index
, __m128d __v1
) {
4997 // CHECK-LABEL: @test_mm_i32scatter_pd
4998 // CHECK: @llvm.x86.avx512.mask.scattersiv2.df
4999 return _mm_i32scatter_pd(__addr
,__index
,__v1
,2);
5001 void test_mm_mask_i32scatter_pd(double *__addr
, __mmask8 __mask
, __m128i __index
, __m128d __v1
) {
5002 // CHECK-LABEL: @test_mm_mask_i32scatter_pd
5003 // CHECK: @llvm.x86.avx512.mask.scattersiv2.df
5004 return _mm_mask_i32scatter_pd(__addr
,__mask
,__index
,__v1
,2);
5006 void test_mm_i32scatter_epi64(long long *__addr
, __m128i __index
, __m128i __v1
) {
5007 // CHECK-LABEL: @test_mm_i32scatter_epi64
5008 // CHECK: @llvm.x86.avx512.mask.scattersiv2.di
5009 return _mm_i32scatter_epi64(__addr
,__index
,__v1
,2);
5011 void test_mm_mask_i32scatter_epi64(long long *__addr
, __mmask8 __mask
, __m128i __index
, __m128i __v1
) {
5012 // CHECK-LABEL: @test_mm_mask_i32scatter_epi64
5013 // CHECK: @llvm.x86.avx512.mask.scattersiv2.di
5014 return _mm_mask_i32scatter_epi64(__addr
,__mask
,__index
,__v1
,2);
5016 void test_mm256_i32scatter_pd(double *__addr
, __m128i __index
, __m256d __v1
) {
5017 // CHECK-LABEL: @test_mm256_i32scatter_pd
5018 // CHECK: @llvm.x86.avx512.mask.scattersiv4.df
5019 return _mm256_i32scatter_pd(__addr
,__index
,__v1
,2);
5021 void test_mm256_mask_i32scatter_pd(double *__addr
, __mmask8 __mask
, __m128i __index
, __m256d __v1
) {
5022 // CHECK-LABEL: @test_mm256_mask_i32scatter_pd
5023 // CHECK: @llvm.x86.avx512.mask.scattersiv4.df
5024 return _mm256_mask_i32scatter_pd(__addr
,__mask
,__index
,__v1
,2);
5026 void test_mm256_i32scatter_epi64(long long *__addr
, __m128i __index
, __m256i __v1
) {
5027 // CHECK-LABEL: @test_mm256_i32scatter_epi64
5028 // CHECK: @llvm.x86.avx512.mask.scattersiv4.di
5029 return _mm256_i32scatter_epi64(__addr
,__index
,__v1
,2);
5031 void test_mm256_mask_i32scatter_epi64(long long *__addr
, __mmask8 __mask
, __m128i __index
, __m256i __v1
) {
5032 // CHECK-LABEL: @test_mm256_mask_i32scatter_epi64
5033 // CHECK: @llvm.x86.avx512.mask.scattersiv4.di
5034 return _mm256_mask_i32scatter_epi64(__addr
,__mask
,__index
,__v1
,2);
5036 void test_mm_i32scatter_ps(float *__addr
, __m128i __index
, __m128 __v1
) {
5037 // CHECK-LABEL: @test_mm_i32scatter_ps
5038 // CHECK: @llvm.x86.avx512.mask.scattersiv4.sf
5039 return _mm_i32scatter_ps(__addr
,__index
,__v1
,2);
5041 void test_mm_mask_i32scatter_ps(float *__addr
, __mmask8 __mask
, __m128i __index
, __m128 __v1
) {
5042 // CHECK-LABEL: @test_mm_mask_i32scatter_ps
5043 // CHECK: @llvm.x86.avx512.mask.scattersiv4.sf
5044 return _mm_mask_i32scatter_ps(__addr
,__mask
,__index
,__v1
,2);
5046 void test_mm_i32scatter_epi32(int *__addr
, __m128i __index
, __m128i __v1
) {
5047 // CHECK-LABEL: @test_mm_i32scatter_epi32
5048 // CHECK: @llvm.x86.avx512.mask.scattersiv4.si
5049 return _mm_i32scatter_epi32(__addr
,__index
,__v1
,2);
5051 void test_mm_mask_i32scatter_epi32(int *__addr
, __mmask8 __mask
, __m128i __index
, __m128i __v1
) {
5052 // CHECK-LABEL: @test_mm_mask_i32scatter_epi32
5053 // CHECK: @llvm.x86.avx512.mask.scattersiv4.si
5054 return _mm_mask_i32scatter_epi32(__addr
,__mask
,__index
,__v1
,2);
5056 void test_mm256_i32scatter_ps(float *__addr
, __m256i __index
, __m256 __v1
) {
5057 // CHECK-LABEL: @test_mm256_i32scatter_ps
5058 // CHECK: @llvm.x86.avx512.mask.scattersiv8.sf
5059 return _mm256_i32scatter_ps(__addr
,__index
,__v1
,2);
5061 void test_mm256_mask_i32scatter_ps(float *__addr
, __mmask8 __mask
, __m256i __index
, __m256 __v1
) {
5062 // CHECK-LABEL: @test_mm256_mask_i32scatter_ps
5063 // CHECK: @llvm.x86.avx512.mask.scattersiv8.sf
5064 return _mm256_mask_i32scatter_ps(__addr
,__mask
,__index
,__v1
,2);
5066 void test_mm256_i32scatter_epi32(int *__addr
, __m256i __index
, __m256i __v1
) {
5067 // CHECK-LABEL: @test_mm256_i32scatter_epi32
5068 // CHECK: @llvm.x86.avx512.mask.scattersiv8.si
5069 return _mm256_i32scatter_epi32(__addr
,__index
,__v1
,2);
5071 void test_mm256_mask_i32scatter_epi32(int *__addr
, __mmask8 __mask
, __m256i __index
, __m256i __v1
) {
5072 // CHECK-LABEL: @test_mm256_mask_i32scatter_epi32
5073 // CHECK: @llvm.x86.avx512.mask.scattersiv8.si
5074 return _mm256_mask_i32scatter_epi32(__addr
,__mask
,__index
,__v1
,2);
5076 __m128d
test_mm_mask_sqrt_pd(__m128d __W
, __mmask8 __U
, __m128d __A
) {
5077 // CHECK-LABEL: @test_mm_mask_sqrt_pd
5078 // CHECK: @llvm.sqrt.v2f64
5079 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5080 return _mm_mask_sqrt_pd(__W
,__U
,__A
);
5082 __m128d
test_mm_maskz_sqrt_pd(__mmask8 __U
, __m128d __A
) {
5083 // CHECK-LABEL: @test_mm_maskz_sqrt_pd
5084 // CHECK: @llvm.sqrt.v2f64
5085 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5086 return _mm_maskz_sqrt_pd(__U
,__A
);
5088 __m256d
test_mm256_mask_sqrt_pd(__m256d __W
, __mmask8 __U
, __m256d __A
) {
5089 // CHECK-LABEL: @test_mm256_mask_sqrt_pd
5090 // CHECK: @llvm.sqrt.v4f64
5091 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5092 return _mm256_mask_sqrt_pd(__W
,__U
,__A
);
5094 __m256d
test_mm256_maskz_sqrt_pd(__mmask8 __U
, __m256d __A
) {
5095 // CHECK-LABEL: @test_mm256_maskz_sqrt_pd
5096 // CHECK: @llvm.sqrt.v4f64
5097 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5098 return _mm256_maskz_sqrt_pd(__U
,__A
);
5100 __m128
test_mm_mask_sqrt_ps(__m128 __W
, __mmask8 __U
, __m128 __A
) {
5101 // CHECK-LABEL: @test_mm_mask_sqrt_ps
5102 // CHECK: @llvm.sqrt.v4f32
5103 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5104 return _mm_mask_sqrt_ps(__W
,__U
,__A
);
5106 __m128
test_mm_maskz_sqrt_ps(__mmask8 __U
, __m128 __A
) {
5107 // CHECK-LABEL: @test_mm_maskz_sqrt_ps
5108 // CHECK: @llvm.sqrt.v4f32
5109 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5110 return _mm_maskz_sqrt_ps(__U
,__A
);
5112 __m256
test_mm256_mask_sqrt_ps(__m256 __W
, __mmask8 __U
, __m256 __A
) {
5113 // CHECK-LABEL: @test_mm256_mask_sqrt_ps
5114 // CHECK: @llvm.sqrt.v8f32
5115 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5116 return _mm256_mask_sqrt_ps(__W
,__U
,__A
);
5118 __m256
test_mm256_maskz_sqrt_ps(__mmask8 __U
, __m256 __A
) {
5119 // CHECK-LABEL: @test_mm256_maskz_sqrt_ps
5120 // CHECK: @llvm.sqrt.v8f32
5121 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5122 return _mm256_maskz_sqrt_ps(__U
,__A
);
5124 __m128d
test_mm_mask_sub_pd(__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
) {
5125 // CHECK-LABEL: @test_mm_mask_sub_pd
5126 // CHECK: fsub <2 x double> %{{.*}}, %{{.*}}
5127 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5128 return _mm_mask_sub_pd(__W
,__U
,__A
,__B
);
5130 __m128d
test_mm_maskz_sub_pd(__mmask8 __U
, __m128d __A
, __m128d __B
) {
5131 // CHECK-LABEL: @test_mm_maskz_sub_pd
5132 // CHECK: fsub <2 x double> %{{.*}}, %{{.*}}
5133 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5134 return _mm_maskz_sub_pd(__U
,__A
,__B
);
5136 __m256d
test_mm256_mask_sub_pd(__m256d __W
, __mmask8 __U
, __m256d __A
, __m256d __B
) {
5137 // CHECK-LABEL: @test_mm256_mask_sub_pd
5138 // CHECK: fsub <4 x double> %{{.*}}, %{{.*}}
5139 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5140 return _mm256_mask_sub_pd(__W
,__U
,__A
,__B
);
5142 __m256d
test_mm256_maskz_sub_pd(__mmask8 __U
, __m256d __A
, __m256d __B
) {
5143 // CHECK-LABEL: @test_mm256_maskz_sub_pd
5144 // CHECK: fsub <4 x double> %{{.*}}, %{{.*}}
5145 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5146 return _mm256_maskz_sub_pd(__U
,__A
,__B
);
5148 __m128
test_mm_mask_sub_ps(__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
) {
5149 // CHECK-LABEL: @test_mm_mask_sub_ps
5150 // CHECK: fsub <4 x float> %{{.*}}, %{{.*}}
5151 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5152 return _mm_mask_sub_ps(__W
,__U
,__A
,__B
);
5154 __m128
test_mm_maskz_sub_ps(__mmask8 __U
, __m128 __A
, __m128 __B
) {
5155 // CHECK-LABEL: @test_mm_maskz_sub_ps
5156 // CHECK: fsub <4 x float> %{{.*}}, %{{.*}}
5157 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5158 return _mm_maskz_sub_ps(__U
,__A
,__B
);
5160 __m256
test_mm256_mask_sub_ps(__m256 __W
, __mmask8 __U
, __m256 __A
, __m256 __B
) {
5161 // CHECK-LABEL: @test_mm256_mask_sub_ps
5162 // CHECK: fsub <8 x float> %{{.*}}, %{{.*}}
5163 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5164 return _mm256_mask_sub_ps(__W
,__U
,__A
,__B
);
5166 __m256
test_mm256_maskz_sub_ps(__mmask8 __U
, __m256 __A
, __m256 __B
) {
5167 // CHECK-LABEL: @test_mm256_maskz_sub_ps
5168 // CHECK: fsub <8 x float> %{{.*}}, %{{.*}}
5169 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5170 return _mm256_maskz_sub_ps(__U
,__A
,__B
);
5172 __m128i
test_mm_mask2_permutex2var_epi32(__m128i __A
, __m128i __I
, __mmask8 __U
, __m128i __B
) {
5173 // CHECK-LABEL: @test_mm_mask2_permutex2var_epi32
5174 // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5175 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5176 return _mm_mask2_permutex2var_epi32(__A
,__I
,__U
,__B
);
5178 __m256i
test_mm256_mask2_permutex2var_epi32(__m256i __A
, __m256i __I
, __mmask8 __U
, __m256i __B
) {
5179 // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi32
5180 // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5181 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5182 return _mm256_mask2_permutex2var_epi32(__A
,__I
,__U
,__B
);
5184 __m128d
test_mm_mask2_permutex2var_pd(__m128d __A
, __m128i __I
, __mmask8 __U
, __m128d __B
) {
5185 // CHECK-LABEL: @test_mm_mask2_permutex2var_pd
5186 // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5187 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5188 return _mm_mask2_permutex2var_pd(__A
,__I
,__U
,__B
);
5190 __m256d
test_mm256_mask2_permutex2var_pd(__m256d __A
, __m256i __I
, __mmask8 __U
, __m256d __B
) {
5191 // CHECK-LABEL: @test_mm256_mask2_permutex2var_pd
5192 // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5193 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5194 return _mm256_mask2_permutex2var_pd(__A
,__I
,__U
,__B
);
5196 __m128
test_mm_mask2_permutex2var_ps(__m128 __A
, __m128i __I
, __mmask8 __U
, __m128 __B
) {
5197 // CHECK-LABEL: @test_mm_mask2_permutex2var_ps
5198 // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5199 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5200 return _mm_mask2_permutex2var_ps(__A
,__I
,__U
,__B
);
5202 __m256
test_mm256_mask2_permutex2var_ps(__m256 __A
, __m256i __I
, __mmask8 __U
, __m256 __B
) {
5203 // CHECK-LABEL: @test_mm256_mask2_permutex2var_ps
5204 // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5205 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5206 return _mm256_mask2_permutex2var_ps(__A
,__I
,__U
,__B
);
5208 __m128i
test_mm_mask2_permutex2var_epi64(__m128i __A
, __m128i __I
, __mmask8 __U
, __m128i __B
) {
5209 // CHECK-LABEL: @test_mm_mask2_permutex2var_epi64
5210 // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5211 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5212 return _mm_mask2_permutex2var_epi64(__A
,__I
,__U
,__B
);
5214 __m256i
test_mm256_mask2_permutex2var_epi64(__m256i __A
, __m256i __I
, __mmask8 __U
, __m256i __B
) {
5215 // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi64
5216 // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5217 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5218 return _mm256_mask2_permutex2var_epi64(__A
,__I
,__U
,__B
);
5220 __m128i
test_mm_permutex2var_epi32(__m128i __A
, __m128i __I
, __m128i __B
) {
5221 // CHECK-LABEL: @test_mm_permutex2var_epi32
5222 // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5223 return _mm_permutex2var_epi32(__A
,__I
,__B
);
5225 __m128i
test_mm_mask_permutex2var_epi32(__m128i __A
, __mmask8 __U
, __m128i __I
, __m128i __B
) {
5226 // CHECK-LABEL: @test_mm_mask_permutex2var_epi32
5227 // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5228 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5229 return _mm_mask_permutex2var_epi32(__A
,__U
,__I
,__B
);
5231 __m128i
test_mm_maskz_permutex2var_epi32(__mmask8 __U
, __m128i __A
, __m128i __I
, __m128i __B
) {
5232 // CHECK-LABEL: @test_mm_maskz_permutex2var_epi32
5233 // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5234 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5235 return _mm_maskz_permutex2var_epi32(__U
,__A
,__I
,__B
);
5237 __m256i
test_mm256_permutex2var_epi32(__m256i __A
, __m256i __I
, __m256i __B
) {
5238 // CHECK-LABEL: @test_mm256_permutex2var_epi32
5239 // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5240 return _mm256_permutex2var_epi32(__A
,__I
,__B
);
5242 __m256i
test_mm256_mask_permutex2var_epi32(__m256i __A
, __mmask8 __U
, __m256i __I
, __m256i __B
) {
5243 // CHECK-LABEL: @test_mm256_mask_permutex2var_epi32
5244 // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5245 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5246 return _mm256_mask_permutex2var_epi32(__A
,__U
,__I
,__B
);
5248 __m256i
test_mm256_maskz_permutex2var_epi32(__mmask8 __U
, __m256i __A
, __m256i __I
, __m256i __B
) {
5249 // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi32
5250 // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5251 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5252 return _mm256_maskz_permutex2var_epi32(__U
,__A
,__I
,__B
);
5254 __m128d
test_mm_permutex2var_pd(__m128d __A
, __m128i __I
, __m128d __B
) {
5255 // CHECK-LABEL: @test_mm_permutex2var_pd
5256 // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5257 return _mm_permutex2var_pd(__A
,__I
,__B
);
5259 __m128d
test_mm_mask_permutex2var_pd(__m128d __A
, __mmask8 __U
, __m128i __I
, __m128d __B
) {
5260 // CHECK-LABEL: @test_mm_mask_permutex2var_pd
5261 // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5262 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5263 return _mm_mask_permutex2var_pd(__A
,__U
,__I
,__B
);
5265 __m128d
test_mm_maskz_permutex2var_pd(__mmask8 __U
, __m128d __A
, __m128i __I
, __m128d __B
) {
5266 // CHECK-LABEL: @test_mm_maskz_permutex2var_pd
5267 // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5268 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5269 return _mm_maskz_permutex2var_pd(__U
,__A
,__I
,__B
);
5271 __m256d
test_mm256_permutex2var_pd(__m256d __A
, __m256i __I
, __m256d __B
) {
5272 // CHECK-LABEL: @test_mm256_permutex2var_pd
5273 // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5274 return _mm256_permutex2var_pd(__A
,__I
,__B
);
5276 __m256d
test_mm256_mask_permutex2var_pd(__m256d __A
, __mmask8 __U
, __m256i __I
, __m256d __B
) {
5277 // CHECK-LABEL: @test_mm256_mask_permutex2var_pd
5278 // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5279 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5280 return _mm256_mask_permutex2var_pd(__A
,__U
,__I
,__B
);
5282 __m256d
test_mm256_maskz_permutex2var_pd(__mmask8 __U
, __m256d __A
, __m256i __I
, __m256d __B
) {
5283 // CHECK-LABEL: @test_mm256_maskz_permutex2var_pd
5284 // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5285 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5286 return _mm256_maskz_permutex2var_pd(__U
,__A
,__I
,__B
);
5288 __m128
test_mm_permutex2var_ps(__m128 __A
, __m128i __I
, __m128 __B
) {
5289 // CHECK-LABEL: @test_mm_permutex2var_ps
5290 // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5291 return _mm_permutex2var_ps(__A
,__I
,__B
);
5293 __m128
test_mm_mask_permutex2var_ps(__m128 __A
, __mmask8 __U
, __m128i __I
, __m128 __B
) {
5294 // CHECK-LABEL: @test_mm_mask_permutex2var_ps
5295 // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5296 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5297 return _mm_mask_permutex2var_ps(__A
,__U
,__I
,__B
);
5299 __m128
test_mm_maskz_permutex2var_ps(__mmask8 __U
, __m128 __A
, __m128i __I
, __m128 __B
) {
5300 // CHECK-LABEL: @test_mm_maskz_permutex2var_ps
5301 // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5302 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5303 return _mm_maskz_permutex2var_ps(__U
,__A
,__I
,__B
);
5305 __m256
test_mm256_permutex2var_ps(__m256 __A
, __m256i __I
, __m256 __B
) {
5306 // CHECK-LABEL: @test_mm256_permutex2var_ps
5307 // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5308 return _mm256_permutex2var_ps(__A
,__I
,__B
);
5310 __m256
test_mm256_mask_permutex2var_ps(__m256 __A
, __mmask8 __U
, __m256i __I
, __m256 __B
) {
5311 // CHECK-LABEL: @test_mm256_mask_permutex2var_ps
5312 // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5313 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5314 return _mm256_mask_permutex2var_ps(__A
,__U
,__I
,__B
);
5316 __m256
test_mm256_maskz_permutex2var_ps(__mmask8 __U
, __m256 __A
, __m256i __I
, __m256 __B
) {
5317 // CHECK-LABEL: @test_mm256_maskz_permutex2var_ps
5318 // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5319 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5320 return _mm256_maskz_permutex2var_ps(__U
,__A
,__I
,__B
);
5322 __m128i
test_mm_permutex2var_epi64(__m128i __A
, __m128i __I
, __m128i __B
) {
5323 // CHECK-LABEL: @test_mm_permutex2var_epi64
5324 // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5325 return _mm_permutex2var_epi64(__A
,__I
,__B
);
5327 __m128i
test_mm_mask_permutex2var_epi64(__m128i __A
, __mmask8 __U
, __m128i __I
, __m128i __B
) {
5328 // CHECK-LABEL: @test_mm_mask_permutex2var_epi64
5329 // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5330 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5331 return _mm_mask_permutex2var_epi64(__A
,__U
,__I
,__B
);
5333 __m128i
test_mm_maskz_permutex2var_epi64(__mmask8 __U
, __m128i __A
, __m128i __I
, __m128i __B
) {
5334 // CHECK-LABEL: @test_mm_maskz_permutex2var_epi64
5335 // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5336 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5337 return _mm_maskz_permutex2var_epi64(__U
,__A
,__I
,__B
);
5339 __m256i
test_mm256_permutex2var_epi64(__m256i __A
, __m256i __I
, __m256i __B
) {
5340 // CHECK-LABEL: @test_mm256_permutex2var_epi64
5341 // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5342 return _mm256_permutex2var_epi64(__A
,__I
,__B
);
5344 __m256i
test_mm256_mask_permutex2var_epi64(__m256i __A
, __mmask8 __U
, __m256i __I
, __m256i __B
) {
5345 // CHECK-LABEL: @test_mm256_mask_permutex2var_epi64
5346 // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5347 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5348 return _mm256_mask_permutex2var_epi64(__A
,__U
,__I
,__B
);
5350 __m256i
test_mm256_maskz_permutex2var_epi64(__mmask8 __U
, __m256i __A
, __m256i __I
, __m256i __B
) {
5351 // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi64
5352 // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5353 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5354 return _mm256_maskz_permutex2var_epi64(__U
,__A
,__I
,__B
);
5357 __m128i
test_mm_mask_cvtepi8_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
) {
5358 // CHECK-LABEL: @test_mm_mask_cvtepi8_epi32
5359 // CHECK: sext <4 x i8> %{{.*}} to <4 x i32>
5360 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5361 return _mm_mask_cvtepi8_epi32(__W
, __U
, __A
);
5364 __m128i
test_mm_maskz_cvtepi8_epi32(__mmask8 __U
, __m128i __A
) {
5365 // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi32
5366 // CHECK: sext <4 x i8> %{{.*}} to <4 x i32>
5367 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5368 return _mm_maskz_cvtepi8_epi32(__U
, __A
);
5371 __m256i
test_mm256_mask_cvtepi8_epi32(__m256i __W
, __mmask8 __U
, __m128i __A
) {
5372 // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi32
5373 // CHECK: sext <8 x i8> %{{.*}} to <8 x i32>
5374 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5375 return _mm256_mask_cvtepi8_epi32(__W
, __U
, __A
);
5378 __m256i
test_mm256_maskz_cvtepi8_epi32(__mmask8 __U
, __m128i __A
) {
5379 // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi32
5380 // CHECK: sext <8 x i8> %{{.*}} to <8 x i32>
5381 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5382 return _mm256_maskz_cvtepi8_epi32(__U
, __A
);
5385 __m128i
test_mm_mask_cvtepi8_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
) {
5386 // CHECK-LABEL: @test_mm_mask_cvtepi8_epi64
5387 // CHECK: sext <2 x i8> %{{.*}} to <2 x i64>
5388 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5389 return _mm_mask_cvtepi8_epi64(__W
, __U
, __A
);
5392 __m128i
test_mm_maskz_cvtepi8_epi64(__mmask8 __U
, __m128i __A
) {
5393 // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi64
5394 // CHECK: sext <2 x i8> %{{.*}} to <2 x i64>
5395 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5396 return _mm_maskz_cvtepi8_epi64(__U
, __A
);
5399 __m256i
test_mm256_mask_cvtepi8_epi64(__m256i __W
, __mmask8 __U
, __m128i __A
) {
5400 // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi64
5401 // CHECK: sext <4 x i8> %{{.*}} to <4 x i64>
5402 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5403 return _mm256_mask_cvtepi8_epi64(__W
, __U
, __A
);
5406 __m256i
test_mm256_maskz_cvtepi8_epi64(__mmask8 __U
, __m128i __A
) {
5407 // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi64
5408 // CHECK: sext <4 x i8> %{{.*}} to <4 x i64>
5409 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5410 return _mm256_maskz_cvtepi8_epi64(__U
, __A
);
5413 __m128i
test_mm_mask_cvtepi32_epi64(__m128i __W
, __mmask8 __U
, __m128i __X
) {
5414 // CHECK-LABEL: @test_mm_mask_cvtepi32_epi64
5415 // CHECK: sext <2 x i32> %{{.*}} to <2 x i64>
5416 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5417 return _mm_mask_cvtepi32_epi64(__W
, __U
, __X
);
5420 __m128i
test_mm_maskz_cvtepi32_epi64(__mmask8 __U
, __m128i __X
) {
5421 // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi64
5422 // CHECK: sext <2 x i32> %{{.*}} to <2 x i64>
5423 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5424 return _mm_maskz_cvtepi32_epi64(__U
, __X
);
5427 __m256i
test_mm256_mask_cvtepi32_epi64(__m256i __W
, __mmask8 __U
, __m128i __X
) {
5428 // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi64
5429 // CHECK: sext <4 x i32> %{{.*}} to <4 x i64>
5430 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5431 return _mm256_mask_cvtepi32_epi64(__W
, __U
, __X
);
5434 __m256i
test_mm256_maskz_cvtepi32_epi64(__mmask8 __U
, __m128i __X
) {
5435 // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi64
5436 // CHECK: sext <4 x i32> %{{.*}} to <4 x i64>
5437 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5438 return _mm256_maskz_cvtepi32_epi64(__U
, __X
);
5441 __m128i
test_mm_mask_cvtepi16_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
) {
5442 // CHECK-LABEL: @test_mm_mask_cvtepi16_epi32
5443 // CHECK: sext <4 x i16> %{{.*}} to <4 x i32>
5444 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5445 return _mm_mask_cvtepi16_epi32(__W
, __U
, __A
);
5448 __m128i
test_mm_maskz_cvtepi16_epi32(__mmask8 __U
, __m128i __A
) {
5449 // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi32
5450 // CHECK: sext <4 x i16> %{{.*}} to <4 x i32>
5451 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5452 return _mm_maskz_cvtepi16_epi32(__U
, __A
);
5455 __m256i
test_mm256_mask_cvtepi16_epi32(__m256i __W
, __mmask8 __U
, __m128i __A
) {
5456 // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi32
5457 // CHECK: sext <8 x i16> %{{.*}} to <8 x i32>
5458 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5459 return _mm256_mask_cvtepi16_epi32(__W
, __U
, __A
);
5462 __m256i
test_mm256_maskz_cvtepi16_epi32(__mmask8 __U
, __m128i __A
) {
5463 // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi32
5464 // CHECK: sext <8 x i16> %{{.*}} to <8 x i32>
5465 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5466 return _mm256_maskz_cvtepi16_epi32(__U
, __A
);
5469 __m128i
test_mm_mask_cvtepi16_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
) {
5470 // CHECK-LABEL: @test_mm_mask_cvtepi16_epi64
5471 // CHECK: sext <2 x i16> %{{.*}} to <2 x i64>
5472 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5473 return _mm_mask_cvtepi16_epi64(__W
, __U
, __A
);
5476 __m128i
test_mm_maskz_cvtepi16_epi64(__mmask8 __U
, __m128i __A
) {
5477 // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi64
5478 // CHECK: sext <2 x i16> %{{.*}} to <2 x i64>
5479 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5480 return _mm_maskz_cvtepi16_epi64(__U
, __A
);
5483 __m256i
test_mm256_mask_cvtepi16_epi64(__m256i __W
, __mmask8 __U
, __m128i __A
) {
5484 // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi64
5485 // CHECK: sext <4 x i16> %{{.*}} to <4 x i64>
5486 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5487 return _mm256_mask_cvtepi16_epi64(__W
, __U
, __A
);
5490 __m256i
test_mm256_maskz_cvtepi16_epi64(__mmask8 __U
, __m128i __A
) {
5491 // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi64
5492 // CHECK: sext <4 x i16> %{{.*}} to <4 x i64>
5493 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5494 return _mm256_maskz_cvtepi16_epi64(__U
, __A
);
5497 __m128i
test_mm_mask_cvtepu8_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
) {
5498 // CHECK-LABEL: @test_mm_mask_cvtepu8_epi32
5499 // CHECK: zext <4 x i8> %{{.*}} to <4 x i32>
5500 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5501 return _mm_mask_cvtepu8_epi32(__W
, __U
, __A
);
5504 __m128i
test_mm_maskz_cvtepu8_epi32(__mmask8 __U
, __m128i __A
) {
5505 // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi32
5506 // CHECK: zext <4 x i8> %{{.*}} to <4 x i32>
5507 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5508 return _mm_maskz_cvtepu8_epi32(__U
, __A
);
5511 __m256i
test_mm256_mask_cvtepu8_epi32(__m256i __W
, __mmask8 __U
, __m128i __A
) {
5512 // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi32
5513 // CHECK: zext <8 x i8> %{{.*}} to <8 x i32>
5514 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5515 return _mm256_mask_cvtepu8_epi32(__W
, __U
, __A
);
5518 __m256i
test_mm256_maskz_cvtepu8_epi32(__mmask8 __U
, __m128i __A
) {
5519 // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi32
5520 // CHECK: zext <8 x i8> %{{.*}} to <8 x i32>
5521 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5522 return _mm256_maskz_cvtepu8_epi32(__U
, __A
);
5525 __m128i
test_mm_mask_cvtepu8_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
) {
5526 // CHECK-LABEL: @test_mm_mask_cvtepu8_epi64
5527 // CHECK: zext <2 x i8> %{{.*}} to <2 x i64>
5528 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5529 return _mm_mask_cvtepu8_epi64(__W
, __U
, __A
);
5532 __m128i
test_mm_maskz_cvtepu8_epi64(__mmask8 __U
, __m128i __A
) {
5533 // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi64
5534 // CHECK: zext <2 x i8> %{{.*}} to <2 x i64>
5535 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5536 return _mm_maskz_cvtepu8_epi64(__U
, __A
);
5539 __m256i
test_mm256_mask_cvtepu8_epi64(__m256i __W
, __mmask8 __U
, __m128i __A
) {
5540 // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi64
5541 // CHECK: zext <4 x i8> %{{.*}} to <4 x i64>
5542 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5543 return _mm256_mask_cvtepu8_epi64(__W
, __U
, __A
);
5546 __m256i
test_mm256_maskz_cvtepu8_epi64(__mmask8 __U
, __m128i __A
) {
5547 // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi64
5548 // CHECK: zext <4 x i8> %{{.*}} to <4 x i64>
5549 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5550 return _mm256_maskz_cvtepu8_epi64(__U
, __A
);
5553 __m128i
test_mm_mask_cvtepu32_epi64(__m128i __W
, __mmask8 __U
, __m128i __X
) {
5554 // CHECK-LABEL: @test_mm_mask_cvtepu32_epi64
5555 // CHECK: zext <2 x i32> %{{.*}} to <2 x i64>
5556 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5557 return _mm_mask_cvtepu32_epi64(__W
, __U
, __X
);
5560 __m128i
test_mm_maskz_cvtepu32_epi64(__mmask8 __U
, __m128i __X
) {
5561 // CHECK-LABEL: @test_mm_maskz_cvtepu32_epi64
5562 // CHECK: zext <2 x i32> %{{.*}} to <2 x i64>
5563 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5564 return _mm_maskz_cvtepu32_epi64(__U
, __X
);
5567 __m256i
test_mm256_mask_cvtepu32_epi64(__m256i __W
, __mmask8 __U
, __m128i __X
) {
5568 // CHECK-LABEL: @test_mm256_mask_cvtepu32_epi64
5569 // CHECK: zext <4 x i32> %{{.*}} to <4 x i64>
5570 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5571 return _mm256_mask_cvtepu32_epi64(__W
, __U
, __X
);
5574 __m256i
test_mm256_maskz_cvtepu32_epi64(__mmask8 __U
, __m128i __X
) {
5575 // CHECK-LABEL: @test_mm256_maskz_cvtepu32_epi64
5576 // CHECK: zext <4 x i32> %{{.*}} to <4 x i64>
5577 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5578 return _mm256_maskz_cvtepu32_epi64(__U
, __X
);
5581 __m128i
test_mm_mask_cvtepu16_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
) {
5582 // CHECK-LABEL: @test_mm_mask_cvtepu16_epi32
5583 // CHECK: zext <4 x i16> %{{.*}} to <4 x i32>
5584 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5585 return _mm_mask_cvtepu16_epi32(__W
, __U
, __A
);
5588 __m128i
test_mm_maskz_cvtepu16_epi32(__mmask8 __U
, __m128i __A
) {
5589 // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi32
5590 // CHECK: zext <4 x i16> %{{.*}} to <4 x i32>
5591 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5592 return _mm_maskz_cvtepu16_epi32(__U
, __A
);
5595 __m256i
test_mm256_mask_cvtepu16_epi32(__m256i __W
, __mmask8 __U
, __m128i __A
) {
5596 // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi32
5597 // CHECK: zext <8 x i16> %{{.*}} to <8 x i32>
5598 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5599 return _mm256_mask_cvtepu16_epi32(__W
, __U
, __A
);
5602 __m256i
test_mm256_maskz_cvtepu16_epi32(__mmask8 __U
, __m128i __A
) {
5603 // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi32
5604 // CHECK: zext <8 x i16> %{{.*}} to <8 x i32>
5605 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5606 return _mm256_maskz_cvtepu16_epi32(__U
, __A
);
5609 __m128i
test_mm_mask_cvtepu16_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
) {
5610 // CHECK-LABEL: @test_mm_mask_cvtepu16_epi64
5611 // CHECK: zext <2 x i16> %{{.*}} to <2 x i64>
5612 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5613 return _mm_mask_cvtepu16_epi64(__W
, __U
, __A
);
5616 __m128i
test_mm_maskz_cvtepu16_epi64(__mmask8 __U
, __m128i __A
) {
5617 // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi64
5618 // CHECK: zext <2 x i16> %{{.*}} to <2 x i64>
5619 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5620 return _mm_maskz_cvtepu16_epi64(__U
, __A
);
5623 __m256i
test_mm256_mask_cvtepu16_epi64(__m256i __W
, __mmask8 __U
, __m128i __A
) {
5624 // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi64
5625 // CHECK: zext <4 x i16> %{{.*}} to <4 x i64>
5626 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5627 return _mm256_mask_cvtepu16_epi64(__W
, __U
, __A
);
5630 __m256i
test_mm256_maskz_cvtepu16_epi64(__mmask8 __U
, __m128i __A
) {
5631 // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi64
5632 // CHECK: zext <4 x i16> %{{.*}} to <4 x i64>
5633 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5634 return _mm256_maskz_cvtepu16_epi64(__U
, __A
);
5637 __m128i
test_mm_rol_epi32(__m128i __A
) {
5638 // CHECK-LABEL: @test_mm_rol_epi32
5639 // CHECK: @llvm.fshl.v4i32
5640 return _mm_rol_epi32(__A
, 5);
5643 __m128i
test_mm_mask_rol_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
) {
5644 // CHECK-LABEL: @test_mm_mask_rol_epi32
5645 // CHECK: @llvm.fshl.v4i32
5646 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5647 return _mm_mask_rol_epi32(__W
, __U
, __A
, 5);
5650 __m128i
test_mm_maskz_rol_epi32(__mmask8 __U
, __m128i __A
) {
5651 // CHECK-LABEL: @test_mm_maskz_rol_epi32
5652 // CHECK: @llvm.fshl.v4i32
5653 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5654 return _mm_maskz_rol_epi32(__U
, __A
, 5);
5657 __m256i
test_mm256_rol_epi32(__m256i __A
) {
5658 // CHECK-LABEL: @test_mm256_rol_epi32
5659 // CHECK: @llvm.fshl.v8i32
5660 return _mm256_rol_epi32(__A
, 5);
5663 __m256i
test_mm256_mask_rol_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
) {
5664 // CHECK-LABEL: @test_mm256_mask_rol_epi32
5665 // CHECK: @llvm.fshl.v8i32
5666 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5667 return _mm256_mask_rol_epi32(__W
, __U
, __A
, 5);
5670 __m256i
test_mm256_maskz_rol_epi32(__mmask8 __U
, __m256i __A
) {
5671 // CHECK-LABEL: @test_mm256_maskz_rol_epi32
5672 // CHECK: @llvm.fshl.v8i32
5673 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5674 return _mm256_maskz_rol_epi32(__U
, __A
, 5);
5677 __m128i
test_mm_rol_epi64(__m128i __A
) {
5678 // CHECK-LABEL: @test_mm_rol_epi64
5679 // CHECK: @llvm.fshl.v2i64
5680 return _mm_rol_epi64(__A
, 5);
5683 __m128i
test_mm_mask_rol_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
) {
5684 // CHECK-LABEL: @test_mm_mask_rol_epi64
5685 // CHECK: @llvm.fshl.v2i64
5686 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5687 return _mm_mask_rol_epi64(__W
, __U
, __A
, 5);
5690 __m128i
test_mm_maskz_rol_epi64(__mmask8 __U
, __m128i __A
) {
5691 // CHECK-LABEL: @test_mm_maskz_rol_epi64
5692 // CHECK: @llvm.fshl.v2i64
5693 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5694 return _mm_maskz_rol_epi64(__U
, __A
, 5);
5697 __m256i
test_mm256_rol_epi64(__m256i __A
) {
5698 // CHECK-LABEL: @test_mm256_rol_epi64
5699 // CHECK: @llvm.fshl.v4i64
5700 return _mm256_rol_epi64(__A
, 5);
5703 __m256i
test_mm256_mask_rol_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
) {
5704 // CHECK-LABEL: @test_mm256_mask_rol_epi64
5705 // CHECK: @llvm.fshl.v4i64
5706 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5707 return _mm256_mask_rol_epi64(__W
, __U
, __A
, 5);
5710 __m256i
test_mm256_maskz_rol_epi64(__mmask8 __U
, __m256i __A
) {
5711 // CHECK-LABEL: @test_mm256_maskz_rol_epi64
5712 // CHECK: @llvm.fshl.v4i64
5713 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5714 return _mm256_maskz_rol_epi64(__U
, __A
, 5);
5717 __m128i
test_mm_rolv_epi32(__m128i __A
, __m128i __B
) {
5718 // CHECK-LABEL: @test_mm_rolv_epi32
5719 // CHECK: llvm.fshl.v4i32
5720 return _mm_rolv_epi32(__A
, __B
);
5723 __m128i
test_mm_mask_rolv_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
5724 // CHECK-LABEL: @test_mm_mask_rolv_epi32
5725 // CHECK: llvm.fshl.v4i32
5726 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5727 return _mm_mask_rolv_epi32(__W
, __U
, __A
, __B
);
5730 __m128i
test_mm_maskz_rolv_epi32(__mmask8 __U
, __m128i __A
, __m128i __B
) {
5731 // CHECK-LABEL: @test_mm_maskz_rolv_epi32
5732 // CHECK: llvm.fshl.v4i32
5733 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5734 return _mm_maskz_rolv_epi32(__U
, __A
, __B
);
5737 __m256i
test_mm256_rolv_epi32(__m256i __A
, __m256i __B
) {
5738 // CHECK-LABEL: @test_mm256_rolv_epi32
5739 // CHECK: @llvm.fshl.v8i32
5740 return _mm256_rolv_epi32(__A
, __B
);
5743 __m256i
test_mm256_mask_rolv_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
5744 // CHECK-LABEL: @test_mm256_mask_rolv_epi32
5745 // CHECK: @llvm.fshl.v8i32
5746 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5747 return _mm256_mask_rolv_epi32(__W
, __U
, __A
, __B
);
5750 __m256i
test_mm256_maskz_rolv_epi32(__mmask8 __U
, __m256i __A
, __m256i __B
) {
5751 // CHECK-LABEL: @test_mm256_maskz_rolv_epi32
5752 // CHECK: @llvm.fshl.v8i32
5753 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5754 return _mm256_maskz_rolv_epi32(__U
, __A
, __B
);
5757 __m128i
test_mm_rolv_epi64(__m128i __A
, __m128i __B
) {
5758 // CHECK-LABEL: @test_mm_rolv_epi64
5759 // CHECK: @llvm.fshl.v2i64
5760 return _mm_rolv_epi64(__A
, __B
);
5763 __m128i
test_mm_mask_rolv_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
5764 // CHECK-LABEL: @test_mm_mask_rolv_epi64
5765 // CHECK: @llvm.fshl.v2i64
5766 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5767 return _mm_mask_rolv_epi64(__W
, __U
, __A
, __B
);
5770 __m128i
test_mm_maskz_rolv_epi64(__mmask8 __U
, __m128i __A
, __m128i __B
) {
5771 // CHECK-LABEL: @test_mm_maskz_rolv_epi64
5772 // CHECK: @llvm.fshl.v2i64
5773 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5774 return _mm_maskz_rolv_epi64(__U
, __A
, __B
);
5777 __m256i
test_mm256_rolv_epi64(__m256i __A
, __m256i __B
) {
5778 // CHECK-LABEL: @test_mm256_rolv_epi64
5779 // CHECK: @llvm.fshl.v4i64
5780 return _mm256_rolv_epi64(__A
, __B
);
5783 __m256i
test_mm256_mask_rolv_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
5784 // CHECK-LABEL: @test_mm256_mask_rolv_epi64
5785 // CHECK: @llvm.fshl.v4i64
5786 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5787 return _mm256_mask_rolv_epi64(__W
, __U
, __A
, __B
);
5790 __m256i
test_mm256_maskz_rolv_epi64(__mmask8 __U
, __m256i __A
, __m256i __B
) {
5791 // CHECK-LABEL: @test_mm256_maskz_rolv_epi64
5792 // CHECK: @llvm.fshl.v4i64
5793 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5794 return _mm256_maskz_rolv_epi64(__U
, __A
, __B
);
5797 __m128i
test_mm_ror_epi32(__m128i __A
) {
5798 // CHECK-LABEL: @test_mm_ror_epi32
5799 // CHECK: @llvm.fshr.v4i32
5800 return _mm_ror_epi32(__A
, 5);
5803 __m128i
test_mm_mask_ror_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
) {
5804 // CHECK-LABEL: @test_mm_mask_ror_epi32
5805 // CHECK: @llvm.fshr.v4i32
5806 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5807 return _mm_mask_ror_epi32(__W
, __U
, __A
, 5);
5810 __m128i
test_mm_maskz_ror_epi32(__mmask8 __U
, __m128i __A
) {
5811 // CHECK-LABEL: @test_mm_maskz_ror_epi32
5812 // CHECK: @llvm.fshr.v4i32
5813 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5814 return _mm_maskz_ror_epi32(__U
, __A
, 5);
5817 __m256i
test_mm256_ror_epi32(__m256i __A
) {
5818 // CHECK-LABEL: @test_mm256_ror_epi32
5819 // CHECK: @llvm.fshr.v8i32
5820 return _mm256_ror_epi32(__A
, 5);
5823 __m256i
test_mm256_mask_ror_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
) {
5824 // CHECK-LABEL: @test_mm256_mask_ror_epi32
5825 // CHECK: @llvm.fshr.v8i32
5826 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5827 return _mm256_mask_ror_epi32(__W
, __U
, __A
, 5);
5830 __m256i
test_mm256_maskz_ror_epi32(__mmask8 __U
, __m256i __A
) {
5831 // CHECK-LABEL: @test_mm256_maskz_ror_epi32
5832 // CHECK: @llvm.fshr.v8i32
5833 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5834 return _mm256_maskz_ror_epi32(__U
, __A
, 5);
5837 __m128i
test_mm_ror_epi64(__m128i __A
) {
5838 // CHECK-LABEL: @test_mm_ror_epi64
5839 // CHECK: @llvm.fshr.v2i64
5840 return _mm_ror_epi64(__A
, 5);
5843 __m128i
test_mm_mask_ror_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
) {
5844 // CHECK-LABEL: @test_mm_mask_ror_epi64
5845 // CHECK: @llvm.fshr.v2i64
5846 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5847 return _mm_mask_ror_epi64(__W
, __U
, __A
, 5);
5850 __m128i
test_mm_maskz_ror_epi64(__mmask8 __U
, __m128i __A
) {
5851 // CHECK-LABEL: @test_mm_maskz_ror_epi64
5852 // CHECK: @llvm.fshr.v2i64
5853 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5854 return _mm_maskz_ror_epi64(__U
, __A
, 5);
5857 __m256i
test_mm256_ror_epi64(__m256i __A
) {
5858 // CHECK-LABEL: @test_mm256_ror_epi64
5859 // CHECK: @llvm.fshr.v4i64
5860 return _mm256_ror_epi64(__A
, 5);
5863 __m256i
test_mm256_mask_ror_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
) {
5864 // CHECK-LABEL: @test_mm256_mask_ror_epi64
5865 // CHECK: @llvm.fshr.v4i64
5866 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5867 return _mm256_mask_ror_epi64(__W
, __U
, __A
,5);
5870 __m256i
test_mm256_maskz_ror_epi64(__mmask8 __U
, __m256i __A
) {
5871 // CHECK-LABEL: @test_mm256_maskz_ror_epi64
5872 // CHECK: @llvm.fshr.v4i64
5873 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5874 return _mm256_maskz_ror_epi64(__U
, __A
, 5);
5878 __m128i
test_mm_rorv_epi32(__m128i __A
, __m128i __B
) {
5879 // CHECK-LABEL: @test_mm_rorv_epi32
5880 // CHECK: @llvm.fshr.v4i32
5881 return _mm_rorv_epi32(__A
, __B
);
5884 __m128i
test_mm_mask_rorv_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
5885 // CHECK-LABEL: @test_mm_mask_rorv_epi32
5886 // CHECK: @llvm.fshr.v4i32
5887 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5888 return _mm_mask_rorv_epi32(__W
, __U
, __A
, __B
);
5891 __m128i
test_mm_maskz_rorv_epi32(__mmask8 __U
, __m128i __A
, __m128i __B
) {
5892 // CHECK-LABEL: @test_mm_maskz_rorv_epi32
5893 // CHECK: @llvm.fshr.v4i32
5894 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5895 return _mm_maskz_rorv_epi32(__U
, __A
, __B
);
5898 __m256i
test_mm256_rorv_epi32(__m256i __A
, __m256i __B
) {
5899 // CHECK-LABEL: @test_mm256_rorv_epi32
5900 // CHECK: @llvm.fshr.v8i32
5901 return _mm256_rorv_epi32(__A
, __B
);
5904 __m256i
test_mm256_mask_rorv_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
5905 // CHECK-LABEL: @test_mm256_mask_rorv_epi32
5906 // CHECK: @llvm.fshr.v8i32
5907 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5908 return _mm256_mask_rorv_epi32(__W
, __U
, __A
, __B
);
5911 __m256i
test_mm256_maskz_rorv_epi32(__mmask8 __U
, __m256i __A
, __m256i __B
) {
5912 // CHECK-LABEL: @test_mm256_maskz_rorv_epi32
5913 // CHECK: @llvm.fshr.v8i32
5914 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5915 return _mm256_maskz_rorv_epi32(__U
, __A
, __B
);
5918 __m128i
test_mm_rorv_epi64(__m128i __A
, __m128i __B
) {
5919 // CHECK-LABEL: @test_mm_rorv_epi64
5920 // CHECK: @llvm.fshr.v2i64
5921 return _mm_rorv_epi64(__A
, __B
);
5924 __m128i
test_mm_mask_rorv_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
5925 // CHECK-LABEL: @test_mm_mask_rorv_epi64
5926 // CHECK: @llvm.fshr.v2i64
5927 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5928 return _mm_mask_rorv_epi64(__W
, __U
, __A
, __B
);
5931 __m128i
test_mm_maskz_rorv_epi64(__mmask8 __U
, __m128i __A
, __m128i __B
) {
5932 // CHECK-LABEL: @test_mm_maskz_rorv_epi64
5933 // CHECK: @llvm.fshr.v2i64
5934 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5935 return _mm_maskz_rorv_epi64(__U
, __A
, __B
);
5938 __m256i
test_mm256_rorv_epi64(__m256i __A
, __m256i __B
) {
5939 // CHECK-LABEL: @test_mm256_rorv_epi64
5940 // CHECK: @llvm.fshr.v4i64
5941 return _mm256_rorv_epi64(__A
, __B
);
5944 __m256i
test_mm256_mask_rorv_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
5945 // CHECK-LABEL: @test_mm256_mask_rorv_epi64
5946 // CHECK: @llvm.fshr.v4i64
5947 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5948 return _mm256_mask_rorv_epi64(__W
, __U
, __A
, __B
);
5951 __m256i
test_mm256_maskz_rorv_epi64(__mmask8 __U
, __m256i __A
, __m256i __B
) {
5952 // CHECK-LABEL: @test_mm256_maskz_rorv_epi64
5953 // CHECK: @llvm.fshr.v4i64
5954 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5955 return _mm256_maskz_rorv_epi64(__U
, __A
, __B
);
5958 __m128i
test_mm_mask_sllv_epi64(__m128i __W
, __mmask8 __U
, __m128i __X
, __m128i __Y
) {
5959 // CHECK-LABEL: @test_mm_mask_sllv_epi64
5960 // CHECK: @llvm.x86.avx2.psllv.q
5961 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5962 return _mm_mask_sllv_epi64(__W
, __U
, __X
, __Y
);
5965 __m128i
test_mm_maskz_sllv_epi64(__mmask8 __U
, __m128i __X
, __m128i __Y
) {
5966 // CHECK-LABEL: @test_mm_maskz_sllv_epi64
5967 // CHECK: @llvm.x86.avx2.psllv.q
5968 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5969 return _mm_maskz_sllv_epi64(__U
, __X
, __Y
);
5972 __m256i
test_mm256_mask_sllv_epi64(__m256i __W
, __mmask8 __U
, __m256i __X
, __m256i __Y
) {
5973 // CHECK-LABEL: @test_mm256_mask_sllv_epi64
5974 // CHECK: @llvm.x86.avx2.psllv.q.256
5975 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5976 return _mm256_mask_sllv_epi64(__W
, __U
, __X
, __Y
);
5979 __m256i
test_mm256_maskz_sllv_epi64(__mmask8 __U
, __m256i __X
, __m256i __Y
) {
5980 // CHECK-LABEL: @test_mm256_maskz_sllv_epi64
5981 // CHECK: @llvm.x86.avx2.psllv.q.256
5982 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5983 return _mm256_maskz_sllv_epi64(__U
, __X
, __Y
);
5986 __m128i
test_mm_mask_sllv_epi32(__m128i __W
, __mmask8 __U
, __m128i __X
, __m128i __Y
) {
5987 // CHECK-LABEL: @test_mm_mask_sllv_epi32
5988 // CHECK: @llvm.x86.avx2.psllv.d
5989 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5990 return _mm_mask_sllv_epi32(__W
, __U
, __X
, __Y
);
5993 __m128i
test_mm_maskz_sllv_epi32(__mmask8 __U
, __m128i __X
, __m128i __Y
) {
5994 // CHECK-LABEL: @test_mm_maskz_sllv_epi32
5995 // CHECK: @llvm.x86.avx2.psllv.d
5996 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5997 return _mm_maskz_sllv_epi32(__U
, __X
, __Y
);
6000 __m256i
test_mm256_mask_sllv_epi32(__m256i __W
, __mmask8 __U
, __m256i __X
, __m256i __Y
) {
6001 // CHECK-LABEL: @test_mm256_mask_sllv_epi32
6002 // CHECK: @llvm.x86.avx2.psllv.d.256
6003 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6004 return _mm256_mask_sllv_epi32(__W
, __U
, __X
, __Y
);
6007 __m256i
test_mm256_maskz_sllv_epi32(__mmask8 __U
, __m256i __X
, __m256i __Y
) {
6008 // CHECK-LABEL: @test_mm256_maskz_sllv_epi32
6009 // CHECK: @llvm.x86.avx2.psllv.d.256
6010 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6011 return _mm256_maskz_sllv_epi32(__U
, __X
, __Y
);
6014 __m128i
test_mm_mask_srlv_epi64(__m128i __W
, __mmask8 __U
, __m128i __X
, __m128i __Y
) {
6015 // CHECK-LABEL: @test_mm_mask_srlv_epi64
6016 // CHECK: @llvm.x86.avx2.psrlv.q
6017 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6018 return _mm_mask_srlv_epi64(__W
, __U
, __X
, __Y
);
6021 __m128i
test_mm_maskz_srlv_epi64(__mmask8 __U
, __m128i __X
, __m128i __Y
) {
6022 // CHECK-LABEL: @test_mm_maskz_srlv_epi64
6023 // CHECK: @llvm.x86.avx2.psrlv.q
6024 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6025 return _mm_maskz_srlv_epi64(__U
, __X
, __Y
);
6028 __m256i
test_mm256_mask_srlv_epi64(__m256i __W
, __mmask8 __U
, __m256i __X
, __m256i __Y
) {
6029 // CHECK-LABEL: @test_mm256_mask_srlv_epi64
6030 // CHECK: @llvm.x86.avx2.psrlv.q.256
6031 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6032 return _mm256_mask_srlv_epi64(__W
, __U
, __X
, __Y
);
6035 __m256i
test_mm256_maskz_srlv_epi64(__mmask8 __U
, __m256i __X
, __m256i __Y
) {
6036 // CHECK-LABEL: @test_mm256_maskz_srlv_epi64
6037 // CHECK: @llvm.x86.avx2.psrlv.q.256
6038 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6039 return _mm256_maskz_srlv_epi64(__U
, __X
, __Y
);
6042 __m128i
test_mm_mask_srlv_epi32(__m128i __W
, __mmask8 __U
, __m128i __X
, __m128i __Y
) {
6043 // CHECK-LABEL: @test_mm_mask_srlv_epi32
6044 // CHECK: @llvm.x86.avx2.psrlv.d
6045 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6046 return _mm_mask_srlv_epi32(__W
, __U
, __X
, __Y
);
6049 __m128i
test_mm_maskz_srlv_epi32(__mmask8 __U
, __m128i __X
, __m128i __Y
) {
6050 // CHECK-LABEL: @test_mm_maskz_srlv_epi32
6051 // CHECK: @llvm.x86.avx2.psrlv.d
6052 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6053 return _mm_maskz_srlv_epi32(__U
, __X
, __Y
);
6056 __m256i
test_mm256_mask_srlv_epi32(__m256i __W
, __mmask8 __U
, __m256i __X
, __m256i __Y
) {
6057 // CHECK-LABEL: @test_mm256_mask_srlv_epi32
6058 // CHECK: @llvm.x86.avx2.psrlv.d.256
6059 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6060 return _mm256_mask_srlv_epi32(__W
, __U
, __X
, __Y
);
6063 __m256i
test_mm256_maskz_srlv_epi32(__mmask8 __U
, __m256i __X
, __m256i __Y
) {
6064 // CHECK-LABEL: @test_mm256_maskz_srlv_epi32
6065 // CHECK: @llvm.x86.avx2.psrlv.d.256
6066 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6067 return _mm256_maskz_srlv_epi32(__U
, __X
, __Y
);
6070 __m128i
test_mm_mask_srl_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
6071 // CHECK-LABEL: @test_mm_mask_srl_epi32
6072 // CHECK: @llvm.x86.sse2.psrl.d
6073 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6074 return _mm_mask_srl_epi32(__W
, __U
, __A
, __B
);
6077 __m128i
test_mm_maskz_srl_epi32(__mmask8 __U
, __m128i __A
, __m128i __B
) {
6078 // CHECK-LABEL: @test_mm_maskz_srl_epi32
6079 // CHECK: @llvm.x86.sse2.psrl.d
6080 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6081 return _mm_maskz_srl_epi32(__U
, __A
, __B
);
6084 __m256i
test_mm256_mask_srl_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
, __m128i __B
) {
6085 // CHECK-LABEL: @test_mm256_mask_srl_epi32
6086 // CHECK: @llvm.x86.avx2.psrl.d
6087 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6088 return _mm256_mask_srl_epi32(__W
, __U
, __A
, __B
);
6091 __m256i
test_mm256_maskz_srl_epi32(__mmask8 __U
, __m256i __A
, __m128i __B
) {
6092 // CHECK-LABEL: @test_mm256_maskz_srl_epi32
6093 // CHECK: @llvm.x86.avx2.psrl.d
6094 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6095 return _mm256_maskz_srl_epi32(__U
, __A
, __B
);
6098 __m128i
test_mm_mask_srli_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
) {
6099 // CHECK-LABEL: @test_mm_mask_srli_epi32
6100 // CHECK: @llvm.x86.sse2.psrli.d
6101 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6102 return _mm_mask_srli_epi32(__W
, __U
, __A
, 5);
6105 __m128i
test_mm_mask_srli_epi32_2(__m128i __W
, __mmask8 __U
, __m128i __A
, unsigned int __B
) {
6106 // CHECK-LABEL: @test_mm_mask_srli_epi32_2
6107 // CHECK: @llvm.x86.sse2.psrli.d
6108 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6109 return _mm_mask_srli_epi32(__W
, __U
, __A
, __B
);
6112 __m128i
test_mm_maskz_srli_epi32(__mmask8 __U
, __m128i __A
) {
6113 // CHECK-LABEL: @test_mm_maskz_srli_epi32
6114 // CHECK: @llvm.x86.sse2.psrli.d
6115 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6116 return _mm_maskz_srli_epi32(__U
, __A
, 5);
6119 __m128i
test_mm_maskz_srli_epi32_2(__mmask8 __U
, __m128i __A
, unsigned int __B
) {
6120 // CHECK-LABEL: @test_mm_maskz_srli_epi32_2
6121 // CHECK: @llvm.x86.sse2.psrli.d
6122 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6123 return _mm_maskz_srli_epi32(__U
, __A
, __B
);
6126 __m256i
test_mm256_mask_srli_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
) {
6127 // CHECK-LABEL: @test_mm256_mask_srli_epi32
6128 // CHECK: @llvm.x86.avx2.psrli.d
6129 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6130 return _mm256_mask_srli_epi32(__W
, __U
, __A
, 5);
6133 __m256i
test_mm256_mask_srli_epi32_2(__m256i __W
, __mmask8 __U
, __m256i __A
, unsigned int __B
) {
6134 // CHECK-LABEL: @test_mm256_mask_srli_epi32_2
6135 // CHECK: @llvm.x86.avx2.psrli.d
6136 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6137 return _mm256_mask_srli_epi32(__W
, __U
, __A
, __B
);
6140 __m256i
test_mm256_maskz_srli_epi32(__mmask8 __U
, __m256i __A
) {
6141 // CHECK-LABEL: @test_mm256_maskz_srli_epi32
6142 // CHECK: @llvm.x86.avx2.psrli.d
6143 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6144 return _mm256_maskz_srli_epi32(__U
, __A
, 5);
6147 __m256i
test_mm256_maskz_srli_epi32_2(__mmask8 __U
, __m256i __A
, unsigned int __B
) {
6148 // CHECK-LABEL: @test_mm256_maskz_srli_epi32_2
6149 // CHECK: @llvm.x86.avx2.psrli.d
6150 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6151 return _mm256_maskz_srli_epi32(__U
, __A
, __B
);
6153 __m128i
test_mm_mask_srl_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
6154 // CHECK-LABEL: @test_mm_mask_srl_epi64
6155 // CHECK: @llvm.x86.sse2.psrl.q
6156 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6157 return _mm_mask_srl_epi64(__W
, __U
, __A
, __B
);
6160 __m128i
test_mm_maskz_srl_epi64(__mmask8 __U
, __m128i __A
, __m128i __B
) {
6161 // CHECK-LABEL: @test_mm_maskz_srl_epi64
6162 // CHECK: @llvm.x86.sse2.psrl.q
6163 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6164 return _mm_maskz_srl_epi64(__U
, __A
, __B
);
6167 __m256i
test_mm256_mask_srl_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
, __m128i __B
) {
6168 // CHECK-LABEL: @test_mm256_mask_srl_epi64
6169 // CHECK: @llvm.x86.avx2.psrl.q
6170 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6171 return _mm256_mask_srl_epi64(__W
, __U
, __A
, __B
);
6174 __m256i
test_mm256_maskz_srl_epi64(__mmask8 __U
, __m256i __A
, __m128i __B
) {
6175 // CHECK-LABEL: @test_mm256_maskz_srl_epi64
6176 // CHECK: @llvm.x86.avx2.psrl.q
6177 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6178 return _mm256_maskz_srl_epi64(__U
, __A
, __B
);
6181 __m128i
test_mm_mask_srli_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
) {
6182 // CHECK-LABEL: @test_mm_mask_srli_epi64
6183 // CHECK: @llvm.x86.sse2.psrli.q
6184 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6185 return _mm_mask_srli_epi64(__W
, __U
, __A
, 5);
6188 __m128i
test_mm_mask_srli_epi64_2(__m128i __W
, __mmask8 __U
, __m128i __A
, unsigned int __B
) {
6189 // CHECK-LABEL: @test_mm_mask_srli_epi64_2
6190 // CHECK: @llvm.x86.sse2.psrli.q
6191 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6192 return _mm_mask_srli_epi64(__W
, __U
, __A
, __B
);
6195 __m128i
test_mm_maskz_srli_epi64(__mmask8 __U
, __m128i __A
) {
6196 // CHECK-LABEL: @test_mm_maskz_srli_epi64
6197 // CHECK: @llvm.x86.sse2.psrli.q
6198 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6199 return _mm_maskz_srli_epi64(__U
, __A
, 5);
6202 __m128i
test_mm_maskz_srli_epi64_2(__mmask8 __U
, __m128i __A
, unsigned int __B
) {
6203 // CHECK-LABEL: @test_mm_maskz_srli_epi64_2
6204 // CHECK: @llvm.x86.sse2.psrli.q
6205 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6206 return _mm_maskz_srli_epi64(__U
, __A
, __B
);
6209 __m256i
test_mm256_mask_srli_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
) {
6210 // CHECK-LABEL: @test_mm256_mask_srli_epi64
6211 // CHECK: @llvm.x86.avx2.psrli.q
6212 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6213 return _mm256_mask_srli_epi64(__W
, __U
, __A
, 5);
6216 __m256i
test_mm256_mask_srli_epi64_2(__m256i __W
, __mmask8 __U
, __m256i __A
, unsigned int __B
) {
6217 // CHECK-LABEL: @test_mm256_mask_srli_epi64_2
6218 // CHECK: @llvm.x86.avx2.psrli.q
6219 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6220 return _mm256_mask_srli_epi64(__W
, __U
, __A
, __B
);
6223 __m256i
test_mm256_maskz_srli_epi64(__mmask8 __U
, __m256i __A
) {
6224 // CHECK-LABEL: @test_mm256_maskz_srli_epi64
6225 // CHECK: @llvm.x86.avx2.psrli.q
6226 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6227 return _mm256_maskz_srli_epi64(__U
, __A
, 5);
6230 __m256i
test_mm256_maskz_srli_epi64_2(__mmask8 __U
,__m256i __A
, unsigned int __B
) {
6231 // CHECK-LABEL: @test_mm256_maskz_srli_epi64_2
6232 // CHECK: @llvm.x86.avx2.psrli.q
6233 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6234 return _mm256_maskz_srli_epi64(__U
, __A
, __B
);
6237 __m128i
test_mm_mask_sll_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
6238 // CHECK-LABEL: @test_mm_mask_sll_epi32
6239 // CHECK: @llvm.x86.sse2.psll.d
6240 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6241 return _mm_mask_sll_epi32(__W
, __U
, __A
, __B
);
6244 __m128i
test_mm_maskz_sll_epi32(__mmask8 __U
, __m128i __A
, __m128i __B
) {
6245 // CHECK-LABEL: @test_mm_maskz_sll_epi32
6246 // CHECK: @llvm.x86.sse2.psll.d
6247 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6248 return _mm_maskz_sll_epi32(__U
, __A
, __B
);
6251 __m256i
test_mm256_mask_sll_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
, __m128i __B
) {
6252 // CHECK-LABEL: @test_mm256_mask_sll_epi32
6253 // CHECK: @llvm.x86.avx2.psll.d
6254 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6255 return _mm256_mask_sll_epi32(__W
, __U
, __A
, __B
);
6258 __m256i
test_mm256_maskz_sll_epi32(__mmask8 __U
, __m256i __A
, __m128i __B
) {
6259 // CHECK-LABEL: @test_mm256_maskz_sll_epi32
6260 // CHECK: @llvm.x86.avx2.psll.d
6261 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6262 return _mm256_maskz_sll_epi32(__U
, __A
, __B
);
6265 __m128i
test_mm_mask_slli_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
) {
6266 // CHECK-LABEL: @test_mm_mask_slli_epi32
6267 // CHECK: @llvm.x86.sse2.pslli.d
6268 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6269 return _mm_mask_slli_epi32(__W
, __U
, __A
, 5);
6272 __m128i
test_mm_mask_slli_epi32_2(__m128i __W
, __mmask8 __U
, __m128i __A
, unsigned int __B
) {
6273 // CHECK-LABEL: @test_mm_mask_slli_epi32_2
6274 // CHECK: @llvm.x86.sse2.pslli.d
6275 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6276 return _mm_mask_slli_epi32(__W
, __U
, __A
, __B
);
6279 __m128i
test_mm_maskz_slli_epi32(__mmask8 __U
, __m128i __A
) {
6280 // CHECK-LABEL: @test_mm_maskz_slli_epi32
6281 // CHECK: @llvm.x86.sse2.pslli.d
6282 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6283 return _mm_maskz_slli_epi32(__U
, __A
, 5);
6286 __m128i
test_mm_maskz_slli_epi32_2(__mmask8 __U
, __m128i __A
, unsigned int __B
) {
6287 // CHECK-LABEL: @test_mm_maskz_slli_epi32_2
6288 // CHECK: @llvm.x86.sse2.pslli.d
6289 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6290 return _mm_maskz_slli_epi32(__U
, __A
, __B
);
6293 __m256i
test_mm256_mask_slli_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
) {
6294 // CHECK-LABEL: @test_mm256_mask_slli_epi32
6295 // CHECK: @llvm.x86.avx2.pslli.d
6296 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6297 return _mm256_mask_slli_epi32(__W
, __U
, __A
, 5);
6300 __m256i
test_mm256_mask_slli_epi32_2(__m256i __W
, __mmask8 __U
, __m256i __A
, unsigned int __B
) {
6301 // CHECK-LABEL: @test_mm256_mask_slli_epi32_2
6302 // CHECK: @llvm.x86.avx2.pslli.d
6303 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6304 return _mm256_mask_slli_epi32(__W
, __U
, __A
, __B
);
6307 __m256i
test_mm256_maskz_slli_epi32(__mmask8 __U
, __m256i __A
) {
6308 // CHECK-LABEL: @test_mm256_maskz_slli_epi32
6309 // CHECK: @llvm.x86.avx2.pslli.d
6310 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6311 return _mm256_maskz_slli_epi32(__U
, __A
, 5);
6314 __m256i
test_mm256_maskz_slli_epi32_2(__mmask8 __U
, __m256i __A
, unsigned int __B
) {
6315 // CHECK-LABEL: @test_mm256_maskz_slli_epi32_2
6316 // CHECK: @llvm.x86.avx2.pslli.d
6317 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6318 return _mm256_maskz_slli_epi32(__U
, __A
, __B
);
6321 __m128i
test_mm_mask_sll_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
6322 // CHECK-LABEL: @test_mm_mask_sll_epi64
6323 // CHECK: @llvm.x86.sse2.psll.q
6324 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6325 return _mm_mask_sll_epi64(__W
, __U
, __A
, __B
);
6328 __m128i
test_mm_maskz_sll_epi64(__mmask8 __U
, __m128i __A
, __m128i __B
) {
6329 // CHECK-LABEL: @test_mm_maskz_sll_epi64
6330 // CHECK: @llvm.x86.sse2.psll.q
6331 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6332 return _mm_maskz_sll_epi64(__U
, __A
, __B
);
6335 __m256i
test_mm256_mask_sll_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
, __m128i __B
) {
6336 // CHECK-LABEL: @test_mm256_mask_sll_epi64
6337 // CHECK: @llvm.x86.avx2.psll.q
6338 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6339 return _mm256_mask_sll_epi64(__W
, __U
, __A
, __B
);
6342 __m256i
test_mm256_maskz_sll_epi64(__mmask8 __U
, __m256i __A
, __m128i __B
) {
6343 // CHECK-LABEL: @test_mm256_maskz_sll_epi64
6344 // CHECK: @llvm.x86.avx2.psll.q
6345 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6346 return _mm256_maskz_sll_epi64(__U
, __A
, __B
);
6349 __m128i
test_mm_mask_slli_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
) {
6350 // CHECK-LABEL: @test_mm_mask_slli_epi64
6351 // CHECK: @llvm.x86.sse2.pslli.q
6352 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6353 return _mm_mask_slli_epi64(__W
, __U
, __A
, 5);
6356 __m128i
test_mm_mask_slli_epi64_2(__m128i __W
, __mmask8 __U
, __m128i __A
, unsigned int __B
) {
6357 // CHECK-LABEL: @test_mm_mask_slli_epi64_2
6358 // CHECK: @llvm.x86.sse2.pslli.q
6359 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6360 return _mm_mask_slli_epi64(__W
, __U
, __A
, __B
);
6363 __m128i
test_mm_maskz_slli_epi64(__mmask8 __U
, __m128i __A
) {
6364 // CHECK-LABEL: @test_mm_maskz_slli_epi64
6365 // CHECK: @llvm.x86.sse2.pslli.q
6366 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6367 return _mm_maskz_slli_epi64(__U
, __A
, 5);
6370 __m128i
test_mm_maskz_slli_epi64_2(__mmask8 __U
, __m128i __A
, unsigned int __B
) {
6371 // CHECK-LABEL: @test_mm_maskz_slli_epi64_2
6372 // CHECK: @llvm.x86.sse2.pslli.q
6373 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6374 return _mm_maskz_slli_epi64(__U
, __A
, __B
);
6377 __m256i
test_mm256_mask_slli_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
) {
6378 // CHECK-LABEL: @test_mm256_mask_slli_epi64
6379 // CHECK: @llvm.x86.avx2.pslli.q
6380 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6381 return _mm256_mask_slli_epi64(__W
, __U
, __A
, 5);
6384 __m256i
test_mm256_mask_slli_epi64_2(__m256i __W
, __mmask8 __U
, __m256i __A
, unsigned int __B
) {
6385 // CHECK-LABEL: @test_mm256_mask_slli_epi64_2
6386 // CHECK: @llvm.x86.avx2.pslli.q
6387 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6388 return _mm256_mask_slli_epi64(__W
, __U
, __A
, __B
);
6391 __m256i
test_mm256_maskz_slli_epi64(__mmask8 __U
, __m256i __A
) {
6392 // CHECK-LABEL: @test_mm256_maskz_slli_epi64
6393 // CHECK: @llvm.x86.avx2.pslli.q
6394 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6395 return _mm256_maskz_slli_epi64(__U
, __A
, 5);
6398 __m256i
test_mm256_maskz_slli_epi64_2(__mmask8 __U
, __m256i __A
, unsigned int __B
) {
6399 // CHECK-LABEL: @test_mm256_maskz_slli_epi64_2
6400 // CHECK: @llvm.x86.avx2.pslli.q
6401 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6402 return _mm256_maskz_slli_epi64(__U
, __A
, __B
);
6405 __m128i
test_mm_mask_srav_epi32(__m128i __W
, __mmask8 __U
, __m128i __X
, __m128i __Y
) {
6406 // CHECK-LABEL: @test_mm_mask_srav_epi32
6407 // CHECK: @llvm.x86.avx2.psrav.d
6408 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6409 return _mm_mask_srav_epi32(__W
, __U
, __X
, __Y
);
6412 __m128i
test_mm_maskz_srav_epi32(__mmask8 __U
, __m128i __X
, __m128i __Y
) {
6413 // CHECK-LABEL: @test_mm_maskz_srav_epi32
6414 // CHECK: @llvm.x86.avx2.psrav.d
6415 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6416 return _mm_maskz_srav_epi32(__U
, __X
, __Y
);
6419 __m256i
test_mm256_mask_srav_epi32(__m256i __W
, __mmask8 __U
, __m256i __X
, __m256i __Y
) {
6420 // CHECK-LABEL: @test_mm256_mask_srav_epi32
6421 // CHECK: @llvm.x86.avx2.psrav.d.256
6422 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6423 return _mm256_mask_srav_epi32(__W
, __U
, __X
, __Y
);
6426 __m256i
test_mm256_maskz_srav_epi32(__mmask8 __U
, __m256i __X
, __m256i __Y
) {
6427 // CHECK-LABEL: @test_mm256_maskz_srav_epi32
6428 // CHECK: @llvm.x86.avx2.psrav.d.256
6429 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6430 return _mm256_maskz_srav_epi32(__U
, __X
, __Y
);
6433 __m128i
test_mm_srav_epi64(__m128i __X
, __m128i __Y
) {
6434 // CHECK-LABEL: @test_mm_srav_epi64
6435 // CHECK: @llvm.x86.avx512.psrav.q.128
6436 return _mm_srav_epi64(__X
, __Y
);
6439 __m128i
test_mm_mask_srav_epi64(__m128i __W
, __mmask8 __U
, __m128i __X
, __m128i __Y
) {
6440 // CHECK-LABEL: @test_mm_mask_srav_epi64
6441 // CHECK: @llvm.x86.avx512.psrav.q.128
6442 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6443 return _mm_mask_srav_epi64(__W
, __U
, __X
, __Y
);
6446 __m128i
test_mm_maskz_srav_epi64(__mmask8 __U
, __m128i __X
, __m128i __Y
) {
6447 // CHECK-LABEL: @test_mm_maskz_srav_epi64
6448 // CHECK: @llvm.x86.avx512.psrav.q.128
6449 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6450 return _mm_maskz_srav_epi64(__U
, __X
, __Y
);
6453 __m256i
test_mm256_srav_epi64(__m256i __X
, __m256i __Y
) {
6454 // CHECK-LABEL: @test_mm256_srav_epi64
6455 // CHECK: @llvm.x86.avx512.psrav.q.256
6456 return _mm256_srav_epi64(__X
, __Y
);
6459 __m256i
test_mm256_mask_srav_epi64(__m256i __W
, __mmask8 __U
, __m256i __X
, __m256i __Y
) {
6460 // CHECK-LABEL: @test_mm256_mask_srav_epi64
6461 // CHECK: @llvm.x86.avx512.psrav.q.256
6462 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6463 return _mm256_mask_srav_epi64(__W
, __U
, __X
, __Y
);
6466 __m256i
test_mm256_maskz_srav_epi64(__mmask8 __U
, __m256i __X
, __m256i __Y
) {
6467 // CHECK-LABEL: @test_mm256_maskz_srav_epi64
6468 // CHECK: @llvm.x86.avx512.psrav.q.256
6469 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6470 return _mm256_maskz_srav_epi64(__U
, __X
, __Y
);
6473 void test_mm_store_epi32(void *__P
, __m128i __A
) {
6474 // CHECK-LABEL: @test_mm_store_epi32
6475 // CHECK: store <2 x i64> %{{.*}}, ptr %{{.*}}
6476 return _mm_store_epi32(__P
, __A
);
6479 void test_mm_mask_store_epi32(void *__P
, __mmask8 __U
, __m128i __A
) {
6480 // CHECK-LABEL: @test_mm_mask_store_epi32
6481 // CHECK: @llvm.masked.store.v4i32.p0(<4 x i32> %{{.*}}, ptr %{{.}}, i32 16, <4 x i1> %{{.*}})
6482 return _mm_mask_store_epi32(__P
, __U
, __A
);
6485 void test_mm256_store_epi32(void *__P
, __m256i __A
) {
6486 // CHECK-LABEL: @test_mm256_store_epi32
6487 // CHECK: store <4 x i64> %{{.*}}, ptr %{{.*}}
6488 return _mm256_store_epi32(__P
, __A
);
6491 void test_mm256_mask_store_epi32(void *__P
, __mmask8 __U
, __m256i __A
) {
6492 // CHECK-LABEL: @test_mm256_mask_store_epi32
6493 // CHECK: @llvm.masked.store.v8i32.p0(<8 x i32> %{{.*}}, ptr %{{.}}, i32 32, <8 x i1> %{{.*}})
6494 return _mm256_mask_store_epi32(__P
, __U
, __A
);
6497 __m128i
test_mm_mask_mov_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
) {
6498 // CHECK-LABEL: @test_mm_mask_mov_epi32
6499 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6500 return _mm_mask_mov_epi32(__W
, __U
, __A
);
6503 __m128i
test_mm_maskz_mov_epi32(__mmask8 __U
, __m128i __A
) {
6504 // CHECK-LABEL: @test_mm_maskz_mov_epi32
6505 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6506 return _mm_maskz_mov_epi32(__U
, __A
);
6509 __m256i
test_mm256_mask_mov_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
) {
6510 // CHECK-LABEL: @test_mm256_mask_mov_epi32
6511 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6512 return _mm256_mask_mov_epi32(__W
, __U
, __A
);
6515 __m256i
test_mm256_maskz_mov_epi32(__mmask8 __U
, __m256i __A
) {
6516 // CHECK-LABEL: @test_mm256_maskz_mov_epi32
6517 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6518 return _mm256_maskz_mov_epi32(__U
, __A
);
6521 __m128i
test_mm_mask_mov_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
) {
6522 // CHECK-LABEL: @test_mm_mask_mov_epi64
6523 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6524 return _mm_mask_mov_epi64(__W
, __U
, __A
);
6527 __m128i
test_mm_maskz_mov_epi64(__mmask8 __U
, __m128i __A
) {
6528 // CHECK-LABEL: @test_mm_maskz_mov_epi64
6529 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6530 return _mm_maskz_mov_epi64(__U
, __A
);
6533 __m256i
test_mm256_mask_mov_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
) {
6534 // CHECK-LABEL: @test_mm256_mask_mov_epi64
6535 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6536 return _mm256_mask_mov_epi64(__W
, __U
, __A
);
6539 __m256i
test_mm256_maskz_mov_epi64(__mmask8 __U
, __m256i __A
) {
6540 // CHECK-LABEL: @test_mm256_maskz_mov_epi64
6541 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6542 return _mm256_maskz_mov_epi64(__U
, __A
);
6545 __m128i
test_mm_load_epi32(void const *__P
) {
6546 // CHECK-LABEL: @test_mm_load_epi32
6547 // CHECK: load <2 x i64>, ptr %{{.*}}
6548 return _mm_load_epi32(__P
);
6551 __m128i
test_mm_mask_load_epi32(__m128i __W
, __mmask8 __U
, void const *__P
) {
6552 // CHECK-LABEL: @test_mm_mask_load_epi32
6553 // CHECK: @llvm.masked.load.v4i32.p0(ptr %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
6554 return _mm_mask_load_epi32(__W
, __U
, __P
);
6557 __m128i
test_mm_maskz_load_epi32(__mmask8 __U
, void const *__P
) {
6558 // CHECK-LABEL: @test_mm_maskz_load_epi32
6559 // CHECK: @llvm.masked.load.v4i32.p0(ptr %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
6560 return _mm_maskz_load_epi32(__U
, __P
);
6563 __m256i
test_mm256_load_epi32(void const *__P
) {
6564 // CHECK-LABEL: @test_mm256_load_epi32
6565 // CHECK: load <4 x i64>, ptr %{{.*}}
6566 return _mm256_load_epi32(__P
);
6569 __m256i
test_mm256_mask_load_epi32(__m256i __W
, __mmask8 __U
, void const *__P
) {
6570 // CHECK-LABEL: @test_mm256_mask_load_epi32
6571 // CHECK: @llvm.masked.load.v8i32.p0(ptr %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
6572 return _mm256_mask_load_epi32(__W
, __U
, __P
);
6575 __m256i
test_mm256_maskz_load_epi32(__mmask8 __U
, void const *__P
) {
6576 // CHECK-LABEL: @test_mm256_maskz_load_epi32
6577 // CHECK: @llvm.masked.load.v8i32.p0(ptr %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
6578 return _mm256_maskz_load_epi32(__U
, __P
);
6581 __m128i
test_mm_load_epi64(void const *__P
) {
6582 // CHECK-LABEL: @test_mm_load_epi64
6583 // CHECK: load <2 x i64>, ptr %{{.*}}
6584 return _mm_load_epi64(__P
);
6587 __m128i
test_mm_mask_load_epi64(__m128i __W
, __mmask8 __U
, void const *__P
) {
6588 // CHECK-LABEL: @test_mm_mask_load_epi64
6589 // CHECK: @llvm.masked.load.v2i64.p0(ptr %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
6590 return _mm_mask_load_epi64(__W
, __U
, __P
);
6593 __m128i
test_mm_maskz_load_epi64(__mmask8 __U
, void const *__P
) {
6594 // CHECK-LABEL: @test_mm_maskz_load_epi64
6595 // CHECK: @llvm.masked.load.v2i64.p0(ptr %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
6596 return _mm_maskz_load_epi64(__U
, __P
);
6599 __m256i
test_mm256_load_epi64(void const *__P
) {
6600 // CHECK-LABEL: @test_mm256_load_epi64
6601 // CHECK: load <4 x i64>, ptr %{{.*}}
6602 return _mm256_load_epi64(__P
);
6605 __m256i
test_mm256_mask_load_epi64(__m256i __W
, __mmask8 __U
, void const *__P
) {
6606 // CHECK-LABEL: @test_mm256_mask_load_epi64
6607 // CHECK: @llvm.masked.load.v4i64.p0(ptr %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
6608 return _mm256_mask_load_epi64(__W
, __U
, __P
);
6611 __m256i
test_mm256_maskz_load_epi64(__mmask8 __U
, void const *__P
) {
6612 // CHECK-LABEL: @test_mm256_maskz_load_epi64
6613 // CHECK: @llvm.masked.load.v4i64.p0(ptr %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
6614 return _mm256_maskz_load_epi64(__U
, __P
);
6617 void test_mm_store_epi64(void *__P
, __m128i __A
) {
6618 // CHECK-LABEL: @test_mm_store_epi64
6619 // CHECK: store <2 x i64> %{{.*}}, ptr %{{.*}}
6620 return _mm_store_epi64(__P
, __A
);
6623 void test_mm_mask_store_epi64(void *__P
, __mmask8 __U
, __m128i __A
) {
6624 // CHECK-LABEL: @test_mm_mask_store_epi64
6625 // CHECK: @llvm.masked.store.v2i64.p0(<2 x i64> %{{.*}}, ptr %{{.*}}, i32 16, <2 x i1> %{{.*}})
6626 return _mm_mask_store_epi64(__P
, __U
, __A
);
6629 void test_mm256_store_epi64(void *__P
, __m256i __A
) {
6630 // CHECK-LABEL: @test_mm256_store_epi64
6631 // CHECK: store <4 x i64> %{{.*}}, ptr %{{.*}}
6632 return _mm256_store_epi64(__P
, __A
);
6635 void test_mm256_mask_store_epi64(void *__P
, __mmask8 __U
, __m256i __A
) {
6636 // CHECK-LABEL: @test_mm256_mask_store_epi64
6637 // CHECK: @llvm.masked.store.v4i64.p0(<4 x i64> %{{.*}}, ptr %{{.*}}, i32 32, <4 x i1> %{{.*}})
6638 return _mm256_mask_store_epi64(__P
, __U
, __A
);
6641 __m128d
test_mm_mask_movedup_pd(__m128d __W
, __mmask8 __U
, __m128d __A
) {
6642 // CHECK-LABEL: @test_mm_mask_movedup_pd
6643 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> zeroinitializer
6644 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
6645 return _mm_mask_movedup_pd(__W
, __U
, __A
);
6648 __m128d
test_mm_maskz_movedup_pd(__mmask8 __U
, __m128d __A
) {
6649 // CHECK-LABEL: @test_mm_maskz_movedup_pd
6650 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> zeroinitializer
6651 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
6652 return _mm_maskz_movedup_pd(__U
, __A
);
6655 __m256d
test_mm256_mask_movedup_pd(__m256d __W
, __mmask8 __U
, __m256d __A
) {
6656 // CHECK-LABEL: @test_mm256_mask_movedup_pd
6657 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
6658 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
6659 return _mm256_mask_movedup_pd(__W
, __U
, __A
);
6662 __m256d
test_mm256_maskz_movedup_pd(__mmask8 __U
, __m256d __A
) {
6663 // CHECK-LABEL: @test_mm256_maskz_movedup_pd
6664 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
6665 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
6666 return _mm256_maskz_movedup_pd(__U
, __A
);
6669 __m128i
test_mm_mask_set1_epi32(__m128i __O
, __mmask8 __M
) {
6670 // CHECK-LABEL: @test_mm_mask_set1_epi32
6671 // CHECK: insertelement <4 x i32> poison, i32 %{{.*}}, i32 0
6672 // CHECK: insertelement <4 x i32> %{{.*}}32 1
6673 // CHECK: insertelement <4 x i32> %{{.*}}32 2
6674 // CHECK: insertelement <4 x i32> %{{.*}}32 3
6675 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6676 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6677 return _mm_mask_set1_epi32(__O
, __M
, 5);
6680 __m128i
test_mm_maskz_set1_epi32(__mmask8 __M
) {
6681 // CHECK-LABEL: @test_mm_maskz_set1_epi32
6682 // CHECK: insertelement <4 x i32> poison, i32 %{{.*}}, i32 0
6683 // CHECK: insertelement <4 x i32> %{{.*}}32 1
6684 // CHECK: insertelement <4 x i32> %{{.*}}32 2
6685 // CHECK: insertelement <4 x i32> %{{.*}}32 3
6686 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6687 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6688 return _mm_maskz_set1_epi32(__M
, 5);
6691 __m256i
test_mm256_mask_set1_epi32(__m256i __O
, __mmask8 __M
) {
6692 // CHECK-LABEL: @test_mm256_mask_set1_epi32
6693 // CHECK: insertelement <8 x i32> poison, i32 %{{.*}}, i32 0
6694 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 1
6695 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 2
6696 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 3
6697 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 4
6698 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 5
6699 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 6
6700 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 7
6701 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6702 return _mm256_mask_set1_epi32(__O
, __M
, 5);
6705 __m256i
test_mm256_maskz_set1_epi32(__mmask8 __M
) {
6706 // CHECK-LABEL: @test_mm256_maskz_set1_epi32
6707 // CHECK: insertelement <8 x i32> poison, i32 %{{.*}}, i32 0
6708 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 1
6709 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 2
6710 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 3
6711 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 4
6712 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 5
6713 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 6
6714 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 7
6715 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6716 return _mm256_maskz_set1_epi32(__M
, 5);
6719 __m128i
test_mm_mask_set1_epi64(__m128i __O
, __mmask8 __M
, long long __A
) {
6720 // CHECK-LABEL: @test_mm_mask_set1_epi64
6721 // CHECK: insertelement <2 x i64> poison, i64 %{{.*}}, i32 0
6722 // CHECK: insertelement <2 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6723 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
6724 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6725 return _mm_mask_set1_epi64(__O
, __M
, __A
);
6728 __m128i
test_mm_maskz_set1_epi64(__mmask8 __M
, long long __A
) {
6729 // CHECK-LABEL: @test_mm_maskz_set1_epi64
6730 // CHECK: insertelement <2 x i64> poison, i64 %{{.*}}, i32 0
6731 // CHECK: insertelement <2 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6732 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
6733 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6734 return _mm_maskz_set1_epi64(__M
, __A
);
6737 __m256i
test_mm256_mask_set1_epi64(__m256i __O
, __mmask8 __M
, long long __A
) {
6738 // CHECK-LABEL: @test_mm256_mask_set1_epi64
6739 // CHECK: insertelement <4 x i64> poison, i64 %{{.*}}, i32 0
6740 // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6741 // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 2
6742 // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 3
6743 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6744 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6745 return _mm256_mask_set1_epi64(__O
, __M
, __A
);
6748 __m256i
test_mm256_maskz_set1_epi64(__mmask8 __M
, long long __A
) {
6749 // CHECK-LABEL: @test_mm256_maskz_set1_epi64
6750 // CHECK: insertelement <4 x i64> poison, i64 %{{.*}}, i32 0
6751 // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6752 // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 2
6753 // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 3
6754 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6755 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6756 return _mm256_maskz_set1_epi64(__M
, __A
);
6759 __m128d
test_mm_fixupimm_pd(__m128d __A
, __m128d __B
, __m128i __C
) {
6760 // CHECK-LABEL: @test_mm_fixupimm_pd
6761 // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.128
6762 return _mm_fixupimm_pd(__A
, __B
, __C
, 5);
6765 __m128d
test_mm_mask_fixupimm_pd(__m128d __A
, __mmask8 __U
, __m128d __B
, __m128i __C
) {
6766 // CHECK-LABEL: @test_mm_mask_fixupimm_pd
6767 // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.128
6768 return _mm_mask_fixupimm_pd(__A
, __U
, __B
, __C
, 5);
6771 __m128d
test_mm_maskz_fixupimm_pd(__mmask8 __U
, __m128d __A
, __m128d __B
, __m128i __C
) {
6772 // CHECK-LABEL: @test_mm_maskz_fixupimm_pd
6773 // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.128
6774 return _mm_maskz_fixupimm_pd(__U
, __A
, __B
, __C
, 5);
6777 __m256d
test_mm256_fixupimm_pd(__m256d __A
, __m256d __B
, __m256i __C
) {
6778 // CHECK-LABEL: @test_mm256_fixupimm_pd
6779 // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.256
6780 return _mm256_fixupimm_pd(__A
, __B
, __C
, 5);
6783 __m256d
test_mm256_mask_fixupimm_pd(__m256d __A
, __mmask8 __U
, __m256d __B
, __m256i __C
) {
6784 // CHECK-LABEL: @test_mm256_mask_fixupimm_pd
6785 // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.256
6786 return _mm256_mask_fixupimm_pd(__A
, __U
, __B
, __C
, 5);
6789 __m256d
test_mm256_maskz_fixupimm_pd(__mmask8 __U
, __m256d __A
, __m256d __B
, __m256i __C
) {
6790 // CHECK-LABEL: @test_mm256_maskz_fixupimm_pd
6791 // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.256
6792 return _mm256_maskz_fixupimm_pd(__U
, __A
, __B
, __C
, 5);
6795 __m128
test_mm_fixupimm_ps(__m128 __A
, __m128 __B
, __m128i __C
) {
6796 // CHECK-LABEL: @test_mm_fixupimm_ps
6797 // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.128
6798 return _mm_fixupimm_ps(__A
, __B
, __C
, 5);
6801 __m128
test_mm_mask_fixupimm_ps(__m128 __A
, __mmask8 __U
, __m128 __B
, __m128i __C
) {
6802 // CHECK-LABEL: @test_mm_mask_fixupimm_ps
6803 // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.128
6804 return _mm_mask_fixupimm_ps(__A
, __U
, __B
, __C
, 5);
6807 __m128
test_mm_maskz_fixupimm_ps(__mmask8 __U
, __m128 __A
, __m128 __B
, __m128i __C
) {
6808 // CHECK-LABEL: @test_mm_maskz_fixupimm_ps
6809 // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.128
6810 return _mm_maskz_fixupimm_ps(__U
, __A
, __B
, __C
, 5);
6813 __m256
test_mm256_fixupimm_ps(__m256 __A
, __m256 __B
, __m256i __C
) {
6814 // CHECK-LABEL: @test_mm256_fixupimm_ps
6815 // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.256
6816 return _mm256_fixupimm_ps(__A
, __B
, __C
, 5);
6819 __m256
test_mm256_mask_fixupimm_ps(__m256 __A
, __mmask8 __U
, __m256 __B
, __m256i __C
) {
6820 // CHECK-LABEL: @test_mm256_mask_fixupimm_ps
6821 // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.256
6822 return _mm256_mask_fixupimm_ps(__A
, __U
, __B
, __C
, 5);
6825 __m256
test_mm256_maskz_fixupimm_ps(__mmask8 __U
, __m256 __A
, __m256 __B
, __m256i __C
) {
6826 // CHECK-LABEL: @test_mm256_maskz_fixupimm_ps
6827 // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.256
6828 return _mm256_maskz_fixupimm_ps(__U
, __A
, __B
, __C
, 5);
6831 __m128d
test_mm_mask_load_pd(__m128d __W
, __mmask8 __U
, void const *__P
) {
6832 // CHECK-LABEL: @test_mm_mask_load_pd
6833 // CHECK: @llvm.masked.load.v2f64.p0(ptr %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
6834 return _mm_mask_load_pd(__W
, __U
, __P
);
6837 __m128d
test_mm_maskz_load_pd(__mmask8 __U
, void const *__P
) {
6838 // CHECK-LABEL: @test_mm_maskz_load_pd
6839 // CHECK: @llvm.masked.load.v2f64.p0(ptr %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
6840 return _mm_maskz_load_pd(__U
, __P
);
6843 __m256d
test_mm256_mask_load_pd(__m256d __W
, __mmask8 __U
, void const *__P
) {
6844 // CHECK-LABEL: @test_mm256_mask_load_pd
6845 // CHECK: @llvm.masked.load.v4f64.p0(ptr %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
6846 return _mm256_mask_load_pd(__W
, __U
, __P
);
6849 __m256d
test_mm256_maskz_load_pd(__mmask8 __U
, void const *__P
) {
6850 // CHECK-LABEL: @test_mm256_maskz_load_pd
6851 // CHECK: @llvm.masked.load.v4f64.p0(ptr %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
6852 return _mm256_maskz_load_pd(__U
, __P
);
6855 __m128
test_mm_mask_load_ps(__m128 __W
, __mmask8 __U
, void const *__P
) {
6856 // CHECK-LABEL: @test_mm_mask_load_ps
6857 // CHECK: @llvm.masked.load.v4f32.p0(ptr %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
6858 return _mm_mask_load_ps(__W
, __U
, __P
);
6861 __m128
test_mm_maskz_load_ps(__mmask8 __U
, void const *__P
) {
6862 // CHECK-LABEL: @test_mm_maskz_load_ps
6863 // CHECK: @llvm.masked.load.v4f32.p0(ptr %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
6864 return _mm_maskz_load_ps(__U
, __P
);
6867 __m256
test_mm256_mask_load_ps(__m256 __W
, __mmask8 __U
, void const *__P
) {
6868 // CHECK-LABEL: @test_mm256_mask_load_ps
6869 // CHECK: @llvm.masked.load.v8f32.p0(ptr %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
6870 return _mm256_mask_load_ps(__W
, __U
, __P
);
6873 __m256
test_mm256_maskz_load_ps(__mmask8 __U
, void const *__P
) {
6874 // CHECK-LABEL: @test_mm256_maskz_load_ps
6875 // CHECK: @llvm.masked.load.v8f32.p0(ptr %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
6876 return _mm256_maskz_load_ps(__U
, __P
);
6879 __m128i
test_mm_loadu_epi64(void const *__P
) {
6880 // CHECK-LABEL: @test_mm_loadu_epi64
6881 // CHECK: load <2 x i64>, ptr %{{.*}}, align 1{{$}}
6882 return _mm_loadu_epi64(__P
);
6885 __m128i
test_mm_mask_loadu_epi64(__m128i __W
, __mmask8 __U
, void const *__P
) {
6886 // CHECK-LABEL: @test_mm_mask_loadu_epi64
6887 // CHECK: @llvm.masked.load.v2i64.p0(ptr %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
6888 return _mm_mask_loadu_epi64(__W
, __U
, __P
);
6891 __m128i
test_mm_maskz_loadu_epi64(__mmask8 __U
, void const *__P
) {
6892 // CHECK-LABEL: @test_mm_maskz_loadu_epi64
6893 // CHECK: @llvm.masked.load.v2i64.p0(ptr %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
6894 return _mm_maskz_loadu_epi64(__U
, __P
);
6897 __m256i
test_mm256_loadu_epi64(void const *__P
) {
6898 // CHECK-LABEL: @test_mm256_loadu_epi64
6899 // CHECK: load <4 x i64>, ptr %{{.*}}, align 1{{$}}
6900 return _mm256_loadu_epi64(__P
);
6903 __m256i
test_mm256_mask_loadu_epi64(__m256i __W
, __mmask8 __U
, void const *__P
) {
6904 // CHECK-LABEL: @test_mm256_mask_loadu_epi64
6905 // CHECK: @llvm.masked.load.v4i64.p0(ptr %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
6906 return _mm256_mask_loadu_epi64(__W
, __U
, __P
);
6909 __m256i
test_mm256_maskz_loadu_epi64(__mmask8 __U
, void const *__P
) {
6910 // CHECK-LABEL: @test_mm256_maskz_loadu_epi64
6911 // CHECK: @llvm.masked.load.v4i64.p0(ptr %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
6912 return _mm256_maskz_loadu_epi64(__U
, __P
);
6915 __m128i
test_mm_loadu_epi32(void const *__P
) {
6916 // CHECK-LABEL: @test_mm_loadu_epi32
6917 // CHECK: load <2 x i64>, ptr %{{.*}}, align 1{{$}}
6918 return _mm_loadu_epi32(__P
);
6921 __m128i
test_mm_mask_loadu_epi32(__m128i __W
, __mmask8 __U
, void const *__P
) {
6922 // CHECK-LABEL: @test_mm_mask_loadu_epi32
6923 // CHECK: @llvm.masked.load.v4i32.p0(ptr %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
6924 return _mm_mask_loadu_epi32(__W
, __U
, __P
);
6927 __m128i
test_mm_maskz_loadu_epi32(__mmask8 __U
, void const *__P
) {
6928 // CHECK-LABEL: @test_mm_maskz_loadu_epi32
6929 // CHECK: @llvm.masked.load.v4i32.p0(ptr %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
6930 return _mm_maskz_loadu_epi32(__U
, __P
);
6933 __m256i
test_mm256_loadu_epi32(void const *__P
) {
6934 // CHECK-LABEL: @test_mm256_loadu_epi32
6935 // CHECK: load <4 x i64>, ptr %{{.*}}, align 1{{$}}
6936 return _mm256_loadu_epi32(__P
);
6939 __m256i
test_mm256_mask_loadu_epi32(__m256i __W
, __mmask8 __U
, void const *__P
) {
6940 // CHECK-LABEL: @test_mm256_mask_loadu_epi32
6941 // CHECK: @llvm.masked.load.v8i32.p0(ptr %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
6942 return _mm256_mask_loadu_epi32(__W
, __U
, __P
);
6945 __m256i
test_mm256_maskz_loadu_epi32(__mmask8 __U
, void const *__P
) {
6946 // CHECK-LABEL: @test_mm256_maskz_loadu_epi32
6947 // CHECK: @llvm.masked.load.v8i32.p0(ptr %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
6948 return _mm256_maskz_loadu_epi32(__U
, __P
);
6951 __m128d
test_mm_mask_loadu_pd(__m128d __W
, __mmask8 __U
, void const *__P
) {
6952 // CHECK-LABEL: @test_mm_mask_loadu_pd
6953 // CHECK: @llvm.masked.load.v2f64.p0(ptr %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
6954 return _mm_mask_loadu_pd(__W
, __U
, __P
);
6957 __m128d
test_mm_maskz_loadu_pd(__mmask8 __U
, void const *__P
) {
6958 // CHECK-LABEL: @test_mm_maskz_loadu_pd
6959 // CHECK: @llvm.masked.load.v2f64.p0(ptr %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
6960 return _mm_maskz_loadu_pd(__U
, __P
);
6963 __m256d
test_mm256_mask_loadu_pd(__m256d __W
, __mmask8 __U
, void const *__P
) {
6964 // CHECK-LABEL: @test_mm256_mask_loadu_pd
6965 // CHECK: @llvm.masked.load.v4f64.p0(ptr %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
6966 return _mm256_mask_loadu_pd(__W
, __U
, __P
);
6969 __m256d
test_mm256_maskz_loadu_pd(__mmask8 __U
, void const *__P
) {
6970 // CHECK-LABEL: @test_mm256_maskz_loadu_pd
6971 // CHECK: @llvm.masked.load.v4f64.p0(ptr %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
6972 return _mm256_maskz_loadu_pd(__U
, __P
);
6975 __m128
test_mm_mask_loadu_ps(__m128 __W
, __mmask8 __U
, void const *__P
) {
6976 // CHECK-LABEL: @test_mm_mask_loadu_ps
6977 // CHECK: @llvm.masked.load.v4f32.p0(ptr %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
6978 return _mm_mask_loadu_ps(__W
, __U
, __P
);
6981 __m128
test_mm_maskz_loadu_ps(__mmask8 __U
, void const *__P
) {
6982 // CHECK-LABEL: @test_mm_maskz_loadu_ps
6983 // CHECK: @llvm.masked.load.v4f32.p0(ptr %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
6984 return _mm_maskz_loadu_ps(__U
, __P
);
6987 __m256
test_mm256_mask_loadu_ps(__m256 __W
, __mmask8 __U
, void const *__P
) {
6988 // CHECK-LABEL: @test_mm256_mask_loadu_ps
6989 // CHECK: @llvm.masked.load.v8f32.p0(ptr %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
6990 return _mm256_mask_loadu_ps(__W
, __U
, __P
);
6993 __m256
test_mm256_maskz_loadu_ps(__mmask8 __U
, void const *__P
) {
6994 // CHECK-LABEL: @test_mm256_maskz_loadu_ps
6995 // CHECK: @llvm.masked.load.v8f32.p0(ptr %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
6996 return _mm256_maskz_loadu_ps(__U
, __P
);
6999 void test_mm_mask_store_pd(void *__P
, __mmask8 __U
, __m128d __A
) {
7000 // CHECK-LABEL: @test_mm_mask_store_pd
7001 // CHECK: @llvm.masked.store.v2f64.p0(<2 x double> %{{.*}}, ptr %{{.*}}, i32 16, <2 x i1> %{{.*}})
7002 return _mm_mask_store_pd(__P
, __U
, __A
);
7005 void test_mm256_mask_store_pd(void *__P
, __mmask8 __U
, __m256d __A
) {
7006 // CHECK-LABEL: @test_mm256_mask_store_pd
7007 // CHECK: @llvm.masked.store.v4f64.p0(<4 x double> %{{.*}}, ptr %{{.*}}, i32 32, <4 x i1> %{{.*}})
7008 return _mm256_mask_store_pd(__P
, __U
, __A
);
7011 void test_mm_mask_store_ps(void *__P
, __mmask8 __U
, __m128 __A
) {
7012 // CHECK-LABEL: @test_mm_mask_store_ps
7013 // CHECK: @llvm.masked.store.v4f32.p0(<4 x float> %{{.*}}, ptr %{{.*}}, i32 16, <4 x i1> %{{.*}})
7014 return _mm_mask_store_ps(__P
, __U
, __A
);
7017 void test_mm256_mask_store_ps(void *__P
, __mmask8 __U
, __m256 __A
) {
7018 // CHECK-LABEL: @test_mm256_mask_store_ps
7019 // CHECK: @llvm.masked.store.v8f32.p0(<8 x float> %{{.*}}, ptr %{{.*}}, i32 32, <8 x i1> %{{.*}})
7020 return _mm256_mask_store_ps(__P
, __U
, __A
);
7023 void test_mm_storeu_epi64(void *__p
, __m128i __a
) {
7024 // check-label: @test_mm_storeu_epi64
7025 // check: store <2 x i64> %{{.*}}, ptr %{{.*}}, align 1{{$}}
7026 return _mm_storeu_epi64(__p
, __a
);
7029 void test_mm_mask_storeu_epi64(void *__P
, __mmask8 __U
, __m128i __A
) {
7030 // CHECK-LABEL: @test_mm_mask_storeu_epi64
7031 // CHECK: @llvm.masked.store.v2i64.p0(<2 x i64> %{{.*}}, ptr %{{.*}}, i32 1, <2 x i1> %{{.*}})
7032 return _mm_mask_storeu_epi64(__P
, __U
, __A
);
7035 void test_mm256_storeu_epi64(void *__P
, __m256i __A
) {
7036 // CHECK-LABEL: @test_mm256_storeu_epi64
7037 // CHECK: store <4 x i64> %{{.*}}, ptr %{{.*}}, align 1{{$}}
7038 return _mm256_storeu_epi64(__P
, __A
);
7041 void test_mm256_mask_storeu_epi64(void *__P
, __mmask8 __U
, __m256i __A
) {
7042 // CHECK-LABEL: @test_mm256_mask_storeu_epi64
7043 // CHECK: @llvm.masked.store.v4i64.p0(<4 x i64> %{{.*}}, ptr %{{.*}}, i32 1, <4 x i1> %{{.*}})
7044 return _mm256_mask_storeu_epi64(__P
, __U
, __A
);
7047 void test_mm_storeu_epi32(void *__P
, __m128i __A
) {
7048 // CHECK-LABEL: @test_mm_storeu_epi32
7049 // CHECK: store <2 x i64> %{{.*}}, ptr %{{.*}}, align 1{{$}}
7050 return _mm_storeu_epi32(__P
, __A
);
7053 void test_mm_mask_storeu_epi32(void *__P
, __mmask8 __U
, __m128i __A
) {
7054 // CHECK-LABEL: @test_mm_mask_storeu_epi32
7055 // CHECK: @llvm.masked.store.v4i32.p0(<4 x i32> %{{.*}}, ptr %{{.*}}, i32 1, <4 x i1> %{{.*}})
7056 return _mm_mask_storeu_epi32(__P
, __U
, __A
);
7059 void test_mm256_storeu_epi32(void *__P
, __m256i __A
) {
7060 // CHECK-LABEL: @test_mm256_storeu_epi32
7061 // CHECK: store <4 x i64> %{{.*}}, ptr %{{.*}}, align 1{{$}}
7062 return _mm256_storeu_epi32(__P
, __A
);
7065 void test_mm256_mask_storeu_epi32(void *__P
, __mmask8 __U
, __m256i __A
) {
7066 // CHECK-LABEL: @test_mm256_mask_storeu_epi32
7067 // CHECK: @llvm.masked.store.v8i32.p0(<8 x i32> %{{.*}}, ptr %{{.*}}, i32 1, <8 x i1> %{{.*}})
7068 return _mm256_mask_storeu_epi32(__P
, __U
, __A
);
7071 void test_mm_mask_storeu_pd(void *__P
, __mmask8 __U
, __m128d __A
) {
7072 // CHECK-LABEL: @test_mm_mask_storeu_pd
7073 // CHECK: @llvm.masked.store.v2f64.p0(<2 x double> %{{.*}}, ptr %{{.*}}, i32 1, <2 x i1> %{{.*}})
7074 return _mm_mask_storeu_pd(__P
, __U
, __A
);
7077 void test_mm256_mask_storeu_pd(void *__P
, __mmask8 __U
, __m256d __A
) {
7078 // CHECK-LABEL: @test_mm256_mask_storeu_pd
7079 // CHECK: @llvm.masked.store.v4f64.p0(<4 x double> %{{.*}}, ptr %{{.*}}, i32 1, <4 x i1> %{{.*}})
7080 return _mm256_mask_storeu_pd(__P
, __U
, __A
);
7083 void test_mm_mask_storeu_ps(void *__P
, __mmask8 __U
, __m128 __A
) {
7084 // CHECK-LABEL: @test_mm_mask_storeu_ps
7085 // CHECK: @llvm.masked.store.v4f32.p0(<4 x float> %{{.*}}, ptr %{{.*}}, i32 1, <4 x i1> %{{.*}})
7086 return _mm_mask_storeu_ps(__P
, __U
, __A
);
7089 void test_mm256_mask_storeu_ps(void *__P
, __mmask8 __U
, __m256 __A
) {
7090 // CHECK-LABEL: @test_mm256_mask_storeu_ps
7091 // CHECK: @llvm.masked.store.v8f32.p0(<8 x float> %{{.*}}, ptr %{{.*}}, i32 1, <8 x i1> %{{.*}})
7092 return _mm256_mask_storeu_ps(__P
, __U
, __A
);
7095 __m128d
test_mm_mask_unpackhi_pd(__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
) {
7096 // CHECK-LABEL: @test_mm_mask_unpackhi_pd
7097 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
7098 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7099 return _mm_mask_unpackhi_pd(__W
, __U
, __A
, __B
);
7102 __m128d
test_mm_maskz_unpackhi_pd(__mmask8 __U
, __m128d __A
, __m128d __B
) {
7103 // CHECK-LABEL: @test_mm_maskz_unpackhi_pd
7104 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
7105 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7106 return _mm_maskz_unpackhi_pd(__U
, __A
, __B
);
7109 __m256d
test_mm256_mask_unpackhi_pd(__m256d __W
, __mmask8 __U
, __m256d __A
, __m256d __B
) {
7110 // CHECK-LABEL: @test_mm256_mask_unpackhi_pd
7111 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7112 // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7113 return _mm256_mask_unpackhi_pd(__W
, __U
, __A
, __B
);
7116 __m256d
test_mm256_maskz_unpackhi_pd(__mmask8 __U
, __m256d __A
, __m256d __B
) {
7117 // CHECK-LABEL: @test_mm256_maskz_unpackhi_pd
7118 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7119 // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7120 return _mm256_maskz_unpackhi_pd(__U
, __A
, __B
);
7123 __m128
test_mm_mask_unpackhi_ps(__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
) {
7124 // CHECK-LABEL: @test_mm_mask_unpackhi_ps
7125 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7126 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}} <4 x float> %{{.*}}
7127 return _mm_mask_unpackhi_ps(__W
, __U
, __A
, __B
);
7130 __m128
test_mm_maskz_unpackhi_ps(__mmask8 __U
, __m128 __A
, __m128 __B
) {
7131 // CHECK-LABEL: @test_mm_maskz_unpackhi_ps
7132 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7133 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}} <4 x float> %{{.*}}
7134 return _mm_maskz_unpackhi_ps(__U
, __A
, __B
);
7137 __m256
test_mm256_mask_unpackhi_ps(__m256 __W
, __mmask8 __U
, __m256 __A
, __m256 __B
) {
7138 // CHECK-LABEL: @test_mm256_mask_unpackhi_ps
7139 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15>
7140 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7141 return _mm256_mask_unpackhi_ps(__W
, __U
, __A
, __B
);
7144 __m256
test_mm256_maskz_unpackhi_ps(__mmask8 __U
, __m256 __A
, __m256 __B
) {
7145 // CHECK-LABEL: @test_mm256_maskz_unpackhi_ps
7146 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15>
7147 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7148 return _mm256_maskz_unpackhi_ps(__U
, __A
, __B
);
7151 __m128d
test_mm_mask_unpacklo_pd(__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
) {
7152 // CHECK-LABEL: @test_mm_mask_unpacklo_pd
7153 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 0, i32 2>
7154 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7155 return _mm_mask_unpacklo_pd(__W
, __U
, __A
, __B
);
7158 __m128d
test_mm_maskz_unpacklo_pd(__mmask8 __U
, __m128d __A
, __m128d __B
) {
7159 // CHECK-LABEL: @test_mm_maskz_unpacklo_pd
7160 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 0, i32 2>
7161 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7162 return _mm_maskz_unpacklo_pd(__U
, __A
, __B
);
7165 __m256d
test_mm256_mask_unpacklo_pd(__m256d __W
, __mmask8 __U
, __m256d __A
, __m256d __B
) {
7166 // CHECK-LABEL: @test_mm256_mask_unpacklo_pd
7167 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7168 // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7169 return _mm256_mask_unpacklo_pd(__W
, __U
, __A
, __B
);
7172 __m256d
test_mm256_maskz_unpacklo_pd(__mmask8 __U
, __m256d __A
, __m256d __B
) {
7173 // CHECK-LABEL: @test_mm256_maskz_unpacklo_pd
7174 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7175 // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7176 return _mm256_maskz_unpacklo_pd(__U
, __A
, __B
);
7179 __m128
test_mm_mask_unpacklo_ps(__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
) {
7180 // CHECK-LABEL: @test_mm_mask_unpacklo_ps
7181 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7182 // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
7183 return _mm_mask_unpacklo_ps(__W
, __U
, __A
, __B
);
7186 __m128
test_mm_maskz_unpacklo_ps(__mmask8 __U
, __m128 __A
, __m128 __B
) {
7187 // CHECK-LABEL: @test_mm_maskz_unpacklo_ps
7188 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7189 // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
7190 return _mm_maskz_unpacklo_ps(__U
, __A
, __B
);
7193 __m256
test_mm256_mask_unpacklo_ps(__m256 __W
, __mmask8 __U
, __m256 __A
, __m256 __B
) {
7194 // CHECK-LABEL: @test_mm256_mask_unpacklo_ps
7195 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13>
7196 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7197 return _mm256_mask_unpacklo_ps(__W
, __U
, __A
, __B
);
7200 __m256
test_mm256_maskz_unpacklo_ps(__mmask8 __U
, __m256 __A
, __m256 __B
) {
7201 // CHECK-LABEL: @test_mm256_maskz_unpacklo_ps
7202 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13>
7203 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7204 return _mm256_maskz_unpacklo_ps(__U
, __A
, __B
);
7207 __m128d
test_mm_rcp14_pd(__m128d __A
) {
7208 // CHECK-LABEL: @test_mm_rcp14_pd
7209 // CHECK: @llvm.x86.avx512.rcp14.pd.128
7210 return _mm_rcp14_pd(__A
);
7213 __m128d
test_mm_mask_rcp14_pd(__m128d __W
, __mmask8 __U
, __m128d __A
) {
7214 // CHECK-LABEL: @test_mm_mask_rcp14_pd
7215 // CHECK: @llvm.x86.avx512.rcp14.pd.128
7216 return _mm_mask_rcp14_pd(__W
, __U
, __A
);
7219 __m128d
test_mm_maskz_rcp14_pd(__mmask8 __U
, __m128d __A
) {
7220 // CHECK-LABEL: @test_mm_maskz_rcp14_pd
7221 // CHECK: @llvm.x86.avx512.rcp14.pd.128
7222 return _mm_maskz_rcp14_pd(__U
, __A
);
7225 __m256d
test_mm256_rcp14_pd(__m256d __A
) {
7226 // CHECK-LABEL: @test_mm256_rcp14_pd
7227 // CHECK: @llvm.x86.avx512.rcp14.pd.256
7228 return _mm256_rcp14_pd(__A
);
7231 __m256d
test_mm256_mask_rcp14_pd(__m256d __W
, __mmask8 __U
, __m256d __A
) {
7232 // CHECK-LABEL: @test_mm256_mask_rcp14_pd
7233 // CHECK: @llvm.x86.avx512.rcp14.pd.256
7234 return _mm256_mask_rcp14_pd(__W
, __U
, __A
);
7237 __m256d
test_mm256_maskz_rcp14_pd(__mmask8 __U
, __m256d __A
) {
7238 // CHECK-LABEL: @test_mm256_maskz_rcp14_pd
7239 // CHECK: @llvm.x86.avx512.rcp14.pd.256
7240 return _mm256_maskz_rcp14_pd(__U
, __A
);
7243 __m128
test_mm_rcp14_ps(__m128 __A
) {
7244 // CHECK-LABEL: @test_mm_rcp14_ps
7245 // CHECK: @llvm.x86.avx512.rcp14.ps.128
7246 return _mm_rcp14_ps(__A
);
7249 __m128
test_mm_mask_rcp14_ps(__m128 __W
, __mmask8 __U
, __m128 __A
) {
7250 // CHECK-LABEL: @test_mm_mask_rcp14_ps
7251 // CHECK: @llvm.x86.avx512.rcp14.ps.128
7252 return _mm_mask_rcp14_ps(__W
, __U
, __A
);
7255 __m128
test_mm_maskz_rcp14_ps(__mmask8 __U
, __m128 __A
) {
7256 // CHECK-LABEL: @test_mm_maskz_rcp14_ps
7257 // CHECK: @llvm.x86.avx512.rcp14.ps.128
7258 return _mm_maskz_rcp14_ps(__U
, __A
);
7261 __m256
test_mm256_rcp14_ps(__m256 __A
) {
7262 // CHECK-LABEL: @test_mm256_rcp14_ps
7263 // CHECK: @llvm.x86.avx512.rcp14.ps.256
7264 return _mm256_rcp14_ps(__A
);
7267 __m256
test_mm256_mask_rcp14_ps(__m256 __W
, __mmask8 __U
, __m256 __A
) {
7268 // CHECK-LABEL: @test_mm256_mask_rcp14_ps
7269 // CHECK: @llvm.x86.avx512.rcp14.ps.256
7270 return _mm256_mask_rcp14_ps(__W
, __U
, __A
);
7273 __m256
test_mm256_maskz_rcp14_ps(__mmask8 __U
, __m256 __A
) {
7274 // CHECK-LABEL: @test_mm256_maskz_rcp14_ps
7275 // CHECK: @llvm.x86.avx512.rcp14.ps.256
7276 return _mm256_maskz_rcp14_ps(__U
, __A
);
7279 __m128d
test_mm_mask_permute_pd(__m128d __W
, __mmask8 __U
, __m128d __X
) {
7280 // CHECK-LABEL: @test_mm_mask_permute_pd
7281 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> poison, <2 x i32> <i32 1, i32 0>
7282 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7283 return _mm_mask_permute_pd(__W
, __U
, __X
, 1);
7286 __m128d
test_mm_maskz_permute_pd(__mmask8 __U
, __m128d __X
) {
7287 // CHECK-LABEL: @test_mm_maskz_permute_pd
7288 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> poison, <2 x i32> <i32 1, i32 0>
7289 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7290 return _mm_maskz_permute_pd(__U
, __X
, 1);
7293 __m256d
test_mm256_mask_permute_pd(__m256d __W
, __mmask8 __U
, __m256d __X
) {
7294 // CHECK-LABEL: @test_mm256_mask_permute_pd
7295 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> poison, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
7296 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7297 return _mm256_mask_permute_pd(__W
, __U
, __X
, 5);
7300 __m256d
test_mm256_maskz_permute_pd(__mmask8 __U
, __m256d __X
) {
7301 // CHECK-LABEL: @test_mm256_maskz_permute_pd
7302 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> poison, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
7303 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7304 return _mm256_maskz_permute_pd(__U
, __X
, 5);
7307 __m128
test_mm_mask_permute_ps(__m128 __W
, __mmask8 __U
, __m128 __X
) {
7308 // CHECK-LABEL: @test_mm_mask_permute_ps
7309 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
7310 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7311 return _mm_mask_permute_ps(__W
, __U
, __X
, 0x1b);
7314 __m128
test_mm_maskz_permute_ps(__mmask8 __U
, __m128 __X
) {
7315 // CHECK-LABEL: @test_mm_maskz_permute_ps
7316 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
7317 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7318 return _mm_maskz_permute_ps(__U
, __X
, 0x1b);
7321 __m256
test_mm256_mask_permute_ps(__m256 __W
, __mmask8 __U
, __m256 __X
) {
7322 // CHECK-LABEL: @test_mm256_mask_permute_ps
7323 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> poison, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4>
7324 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7325 return _mm256_mask_permute_ps(__W
, __U
, __X
, 0x1b);
7328 __m256
test_mm256_maskz_permute_ps(__mmask8 __U
, __m256 __X
) {
7329 // CHECK-LABEL: @test_mm256_maskz_permute_ps
7330 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> poison, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4>
7331 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7332 return _mm256_maskz_permute_ps(__U
, __X
, 0x1b);
7335 __m128d
test_mm_mask_permutevar_pd(__m128d __W
, __mmask8 __U
, __m128d __A
, __m128i __C
) {
7336 // CHECK-LABEL: @test_mm_mask_permutevar_pd
7337 // CHECK: @llvm.x86.avx.vpermilvar.pd
7338 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7339 return _mm_mask_permutevar_pd(__W
, __U
, __A
, __C
);
7342 __m128d
test_mm_maskz_permutevar_pd(__mmask8 __U
, __m128d __A
, __m128i __C
) {
7343 // CHECK-LABEL: @test_mm_maskz_permutevar_pd
7344 // CHECK: @llvm.x86.avx.vpermilvar.pd
7345 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7346 return _mm_maskz_permutevar_pd(__U
, __A
, __C
);
7349 __m256d
test_mm256_mask_permutevar_pd(__m256d __W
, __mmask8 __U
, __m256d __A
, __m256i __C
) {
7350 // CHECK-LABEL: @test_mm256_mask_permutevar_pd
7351 // CHECK: @llvm.x86.avx.vpermilvar.pd.256
7352 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7353 return _mm256_mask_permutevar_pd(__W
, __U
, __A
, __C
);
7356 __m256d
test_mm256_maskz_permutevar_pd(__mmask8 __U
, __m256d __A
, __m256i __C
) {
7357 // CHECK-LABEL: @test_mm256_maskz_permutevar_pd
7358 // CHECK: @llvm.x86.avx.vpermilvar.pd.256
7359 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7360 return _mm256_maskz_permutevar_pd(__U
, __A
, __C
);
7363 __m128
test_mm_mask_permutevar_ps(__m128 __W
, __mmask8 __U
, __m128 __A
, __m128i __C
) {
7364 // CHECK-LABEL: @test_mm_mask_permutevar_ps
7365 // CHECK: @llvm.x86.avx.vpermilvar.ps
7366 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7367 return _mm_mask_permutevar_ps(__W
, __U
, __A
, __C
);
7370 __m128
test_mm_maskz_permutevar_ps(__mmask8 __U
, __m128 __A
, __m128i __C
) {
7371 // CHECK-LABEL: @test_mm_maskz_permutevar_ps
7372 // CHECK: @llvm.x86.avx.vpermilvar.ps
7373 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7374 return _mm_maskz_permutevar_ps(__U
, __A
, __C
);
7377 __m256
test_mm256_mask_permutevar_ps(__m256 __W
, __mmask8 __U
, __m256 __A
, __m256i __C
) {
7378 // CHECK-LABEL: @test_mm256_mask_permutevar_ps
7379 // CHECK: @llvm.x86.avx.vpermilvar.ps.256
7380 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7381 return _mm256_mask_permutevar_ps(__W
, __U
, __A
, __C
);
7384 __m256
test_mm256_maskz_permutevar_ps(__mmask8 __U
, __m256 __A
, __m256i __C
) {
7385 // CHECK-LABEL: @test_mm256_maskz_permutevar_ps
7386 // CHECK: @llvm.x86.avx.vpermilvar.ps.256
7387 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7388 return _mm256_maskz_permutevar_ps(__U
, __A
, __C
);
7391 __mmask8
test_mm_test_epi32_mask(__m128i __A
, __m128i __B
) {
7392 // CHECK-LABEL: @test_mm_test_epi32_mask
7393 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7394 // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
7395 return _mm_test_epi32_mask(__A
, __B
);
7398 __mmask8
test_mm_mask_test_epi32_mask(__mmask8 __U
, __m128i __A
, __m128i __B
) {
7399 // CHECK-LABEL: @test_mm_mask_test_epi32_mask
7400 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7401 // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
7402 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7403 return _mm_mask_test_epi32_mask(__U
, __A
, __B
);
7406 __mmask8
test_mm256_test_epi32_mask(__m256i __A
, __m256i __B
) {
7407 // CHECK-LABEL: @test_mm256_test_epi32_mask
7408 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7409 // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
7410 return _mm256_test_epi32_mask(__A
, __B
);
7413 __mmask8
test_mm256_mask_test_epi32_mask(__mmask8 __U
, __m256i __A
, __m256i __B
) {
7414 // CHECK-LABEL: @test_mm256_mask_test_epi32_mask
7415 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7416 // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
7417 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
7418 return _mm256_mask_test_epi32_mask(__U
, __A
, __B
);
7421 __mmask8
test_mm_test_epi64_mask(__m128i __A
, __m128i __B
) {
7422 // CHECK-LABEL: @test_mm_test_epi64_mask
7423 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7424 // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
7425 return _mm_test_epi64_mask(__A
, __B
);
7428 __mmask8
test_mm_mask_test_epi64_mask(__mmask8 __U
, __m128i __A
, __m128i __B
) {
7429 // CHECK-LABEL: @test_mm_mask_test_epi64_mask
7430 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7431 // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
7432 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
7433 return _mm_mask_test_epi64_mask(__U
, __A
, __B
);
7436 __mmask8
test_mm256_test_epi64_mask(__m256i __A
, __m256i __B
) {
7437 // CHECK-LABEL: @test_mm256_test_epi64_mask
7438 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7439 // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
7440 return _mm256_test_epi64_mask(__A
, __B
);
7443 __mmask8
test_mm256_mask_test_epi64_mask(__mmask8 __U
, __m256i __A
, __m256i __B
) {
7444 // CHECK-LABEL: @test_mm256_mask_test_epi64_mask
7445 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7446 // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
7447 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7448 return _mm256_mask_test_epi64_mask(__U
, __A
, __B
);
7451 __mmask8
test_mm_testn_epi32_mask(__m128i __A
, __m128i __B
) {
7452 // CHECK-LABEL: @test_mm_testn_epi32_mask
7453 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7454 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
7455 return _mm_testn_epi32_mask(__A
, __B
);
7458 __mmask8
test_mm_mask_testn_epi32_mask(__mmask8 __U
, __m128i __A
, __m128i __B
) {
7459 // CHECK-LABEL: @test_mm_mask_testn_epi32_mask
7460 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7461 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
7462 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7463 return _mm_mask_testn_epi32_mask(__U
, __A
, __B
);
7466 __mmask8
test_mm256_testn_epi32_mask(__m256i __A
, __m256i __B
) {
7467 // CHECK-LABEL: @test_mm256_testn_epi32_mask
7468 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7469 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
7470 return _mm256_testn_epi32_mask(__A
, __B
);
7473 __mmask8
test_mm256_mask_testn_epi32_mask(__mmask8 __U
, __m256i __A
, __m256i __B
) {
7474 // CHECK-LABEL: @test_mm256_mask_testn_epi32_mask
7475 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7476 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
7477 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
7478 return _mm256_mask_testn_epi32_mask(__U
, __A
, __B
);
7481 __mmask8
test_mm_testn_epi64_mask(__m128i __A
, __m128i __B
) {
7482 // CHECK-LABEL: @test_mm_testn_epi64_mask
7483 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7484 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
7485 return _mm_testn_epi64_mask(__A
, __B
);
7488 __mmask8
test_mm_mask_testn_epi64_mask(__mmask8 __U
, __m128i __A
, __m128i __B
) {
7489 // CHECK-LABEL: @test_mm_mask_testn_epi64_mask
7490 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7491 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
7492 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
7493 return _mm_mask_testn_epi64_mask(__U
, __A
, __B
);
7496 __mmask8
test_mm256_testn_epi64_mask(__m256i __A
, __m256i __B
) {
7497 // CHECK-LABEL: @test_mm256_testn_epi64_mask
7498 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7499 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
7500 return _mm256_testn_epi64_mask(__A
, __B
);
7503 __mmask8
test_mm256_mask_testn_epi64_mask(__mmask8 __U
, __m256i __A
, __m256i __B
) {
7504 // CHECK-LABEL: @test_mm256_mask_testn_epi64_mask
7505 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7506 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
7507 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7508 return _mm256_mask_testn_epi64_mask(__U
, __A
, __B
);
7511 __m128i
test_mm_mask_unpackhi_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
7512 // CHECK-LABEL: @test_mm_mask_unpackhi_epi32
7513 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7514 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7515 return _mm_mask_unpackhi_epi32(__W
, __U
, __A
, __B
);
7518 __m128i
test_mm_maskz_unpackhi_epi32(__mmask8 __U
, __m128i __A
, __m128i __B
) {
7519 // CHECK-LABEL: @test_mm_maskz_unpackhi_epi32
7520 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7521 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7522 return _mm_maskz_unpackhi_epi32(__U
, __A
, __B
);
7525 __m256i
test_mm256_mask_unpackhi_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
7526 // CHECK-LABEL: @test_mm256_mask_unpackhi_epi32
7527 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15>
7528 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7529 return _mm256_mask_unpackhi_epi32(__W
, __U
, __A
, __B
);
7532 __m256i
test_mm256_maskz_unpackhi_epi32(__mmask8 __U
, __m256i __A
, __m256i __B
) {
7533 // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi32
7534 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15>
7535 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7536 return _mm256_maskz_unpackhi_epi32(__U
, __A
, __B
);
7539 __m128i
test_mm_mask_unpackhi_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
7540 // CHECK-LABEL: @test_mm_mask_unpackhi_epi64
7541 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 3>
7542 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7543 return _mm_mask_unpackhi_epi64(__W
, __U
, __A
, __B
);
7546 __m128i
test_mm_maskz_unpackhi_epi64(__mmask8 __U
, __m128i __A
, __m128i __B
) {
7547 // CHECK-LABEL: @test_mm_maskz_unpackhi_epi64
7548 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 3>
7549 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7550 return _mm_maskz_unpackhi_epi64(__U
, __A
, __B
);
7553 __m256i
test_mm256_mask_unpackhi_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
7554 // CHECK-LABEL: @test_mm256_mask_unpackhi_epi64
7555 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 3, i32 7>
7556 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7557 return _mm256_mask_unpackhi_epi64(__W
, __U
, __A
, __B
);
7560 __m256i
test_mm256_maskz_unpackhi_epi64(__mmask8 __U
, __m256i __A
, __m256i __B
) {
7561 // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi64
7562 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 3, i32 7>
7563 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7564 return _mm256_maskz_unpackhi_epi64(__U
, __A
, __B
);
7567 __m128i
test_mm_mask_unpacklo_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
7568 // CHECK-LABEL: @test_mm_mask_unpacklo_epi32
7569 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7570 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7571 return _mm_mask_unpacklo_epi32(__W
, __U
, __A
, __B
);
7574 __m128i
test_mm_maskz_unpacklo_epi32(__mmask8 __U
, __m128i __A
, __m128i __B
) {
7575 // CHECK-LABEL: @test_mm_maskz_unpacklo_epi32
7576 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7577 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7578 return _mm_maskz_unpacklo_epi32(__U
, __A
, __B
);
7581 __m256i
test_mm256_mask_unpacklo_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
7582 // CHECK-LABEL: @test_mm256_mask_unpacklo_epi32
7583 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13>
7584 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7585 return _mm256_mask_unpacklo_epi32(__W
, __U
, __A
, __B
);
7588 __m256i
test_mm256_maskz_unpacklo_epi32(__mmask8 __U
, __m256i __A
, __m256i __B
) {
7589 // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi32
7590 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13>
7591 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7592 return _mm256_maskz_unpacklo_epi32(__U
, __A
, __B
);
7595 __m128i
test_mm_mask_unpacklo_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
7596 // CHECK-LABEL: @test_mm_mask_unpacklo_epi64
7597 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2>
7598 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7599 return _mm_mask_unpacklo_epi64(__W
, __U
, __A
, __B
);
7602 __m128i
test_mm_maskz_unpacklo_epi64(__mmask8 __U
, __m128i __A
, __m128i __B
) {
7603 // CHECK-LABEL: @test_mm_maskz_unpacklo_epi64
7604 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2>
7605 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7606 return _mm_maskz_unpacklo_epi64(__U
, __A
, __B
);
7609 __m256i
test_mm256_mask_unpacklo_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
7610 // CHECK-LABEL: @test_mm256_mask_unpacklo_epi64
7611 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7612 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7613 return _mm256_mask_unpacklo_epi64(__W
, __U
, __A
, __B
);
7616 __m256i
test_mm256_maskz_unpacklo_epi64(__mmask8 __U
, __m256i __A
, __m256i __B
) {
7617 // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi64
7618 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7619 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7620 return _mm256_maskz_unpacklo_epi64(__U
, __A
, __B
);
7623 __m128i
test_mm_mask_sra_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
7624 // CHECK-LABEL: @test_mm_mask_sra_epi32
7625 // CHECK: @llvm.x86.sse2.psra.d
7626 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7627 return _mm_mask_sra_epi32(__W
, __U
, __A
, __B
);
7630 __m128i
test_mm_maskz_sra_epi32(__mmask8 __U
, __m128i __A
, __m128i __B
) {
7631 // CHECK-LABEL: @test_mm_maskz_sra_epi32
7632 // CHECK: @llvm.x86.sse2.psra.d
7633 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7634 return _mm_maskz_sra_epi32(__U
, __A
, __B
);
7637 __m256i
test_mm256_mask_sra_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
, __m128i __B
) {
7638 // CHECK-LABEL: @test_mm256_mask_sra_epi32
7639 // CHECK: @llvm.x86.avx2.psra.d
7640 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7641 return _mm256_mask_sra_epi32(__W
, __U
, __A
, __B
);
7644 __m256i
test_mm256_maskz_sra_epi32(__mmask8 __U
, __m256i __A
, __m128i __B
) {
7645 // CHECK-LABEL: @test_mm256_maskz_sra_epi32
7646 // CHECK: @llvm.x86.avx2.psra.d
7647 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7648 return _mm256_maskz_sra_epi32(__U
, __A
, __B
);
7651 __m128i
test_mm_mask_srai_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
) {
7652 // CHECK-LABEL: @test_mm_mask_srai_epi32
7653 // CHECK: @llvm.x86.sse2.psrai.d
7654 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7655 return _mm_mask_srai_epi32(__W
, __U
, __A
, 5);
7658 __m128i
test_mm_mask_srai_epi32_2(__m128i __W
, __mmask8 __U
, __m128i __A
, unsigned int __B
) {
7659 // CHECK-LABEL: @test_mm_mask_srai_epi32_2
7660 // CHECK: @llvm.x86.sse2.psrai.d
7661 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7662 return _mm_mask_srai_epi32(__W
, __U
, __A
, __B
);
7665 __m128i
test_mm_maskz_srai_epi32(__mmask8 __U
, __m128i __A
) {
7666 // CHECK-LABEL: @test_mm_maskz_srai_epi32
7667 // CHECK: @llvm.x86.sse2.psrai.d
7668 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7669 return _mm_maskz_srai_epi32(__U
, __A
, 5);
7672 __m128i
test_mm_maskz_srai_epi32_2(__mmask8 __U
, __m128i __A
, unsigned int __B
) {
7673 // CHECK-LABEL: @test_mm_maskz_srai_epi32_2
7674 // CHECK: @llvm.x86.sse2.psrai.d
7675 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7676 return _mm_maskz_srai_epi32(__U
, __A
, __B
);
7679 __m256i
test_mm256_mask_srai_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
) {
7680 // CHECK-LABEL: @test_mm256_mask_srai_epi32
7681 // CHECK: @llvm.x86.avx2.psrai.d
7682 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7683 return _mm256_mask_srai_epi32(__W
, __U
, __A
, 5);
7686 __m256i
test_mm256_mask_srai_epi32_2(__m256i __W
, __mmask8 __U
, __m256i __A
, unsigned int __B
) {
7687 // CHECK-LABEL: @test_mm256_mask_srai_epi32_2
7688 // CHECK: @llvm.x86.avx2.psrai.d
7689 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7690 return _mm256_mask_srai_epi32(__W
, __U
, __A
, __B
);
7693 __m256i
test_mm256_maskz_srai_epi32(__mmask8 __U
, __m256i __A
) {
7694 // CHECK-LABEL: @test_mm256_maskz_srai_epi32
7695 // CHECK: @llvm.x86.avx2.psrai.d
7696 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7697 return _mm256_maskz_srai_epi32(__U
, __A
, 5);
7700 __m256i
test_mm256_maskz_srai_epi32_2(__mmask8 __U
, __m256i __A
, unsigned int __B
) {
7701 // CHECK-LABEL: @test_mm256_maskz_srai_epi32_2
7702 // CHECK: @llvm.x86.avx2.psrai.d
7703 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7704 return _mm256_maskz_srai_epi32(__U
, __A
, __B
);
7707 __m128i
test_mm_sra_epi64(__m128i __A
, __m128i __B
) {
7708 // CHECK-LABEL: @test_mm_sra_epi64
7709 // CHECK: @llvm.x86.avx512.psra.q.128
7710 return _mm_sra_epi64(__A
, __B
);
7713 __m128i
test_mm_mask_sra_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
7714 // CHECK-LABEL: @test_mm_mask_sra_epi64
7715 // CHECK: @llvm.x86.avx512.psra.q.128
7716 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7717 return _mm_mask_sra_epi64(__W
, __U
, __A
, __B
);
7720 __m128i
test_mm_maskz_sra_epi64(__mmask8 __U
, __m128i __A
, __m128i __B
) {
7721 // CHECK-LABEL: @test_mm_maskz_sra_epi64
7722 // CHECK: @llvm.x86.avx512.psra.q.128
7723 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7724 return _mm_maskz_sra_epi64(__U
, __A
, __B
);
7727 __m256i
test_mm256_sra_epi64(__m256i __A
, __m128i __B
) {
7728 // CHECK-LABEL: @test_mm256_sra_epi64
7729 // CHECK: @llvm.x86.avx512.psra.q.256
7730 return _mm256_sra_epi64(__A
, __B
);
7733 __m256i
test_mm256_mask_sra_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
, __m128i __B
) {
7734 // CHECK-LABEL: @test_mm256_mask_sra_epi64
7735 // CHECK: @llvm.x86.avx512.psra.q.256
7736 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7737 return _mm256_mask_sra_epi64(__W
, __U
, __A
, __B
);
7740 __m256i
test_mm256_maskz_sra_epi64(__mmask8 __U
, __m256i __A
, __m128i __B
) {
7741 // CHECK-LABEL: @test_mm256_maskz_sra_epi64
7742 // CHECK: @llvm.x86.avx512.psra.q.256
7743 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7744 return _mm256_maskz_sra_epi64(__U
, __A
, __B
);
7747 __m128i
test_mm_srai_epi64(__m128i __A
) {
7748 // CHECK-LABEL: @test_mm_srai_epi64
7749 // CHECK: @llvm.x86.avx512.psrai.q.128
7750 return _mm_srai_epi64(__A
, 5);
7753 __m128i
test_mm_srai_epi64_2(__m128i __A
, unsigned int __B
) {
7754 // CHECK-LABEL: @test_mm_srai_epi64_2
7755 // CHECK: @llvm.x86.avx512.psrai.q.128
7756 return _mm_srai_epi64(__A
, __B
);
7759 __m128i
test_mm_mask_srai_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
) {
7760 // CHECK-LABEL: @test_mm_mask_srai_epi64
7761 // CHECK: @llvm.x86.avx512.psrai.q.128
7762 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7763 return _mm_mask_srai_epi64(__W
, __U
, __A
, 5);
7766 __m128i
test_mm_mask_srai_epi64_2(__m128i __W
, __mmask8 __U
, __m128i __A
, unsigned int __B
) {
7767 // CHECK-LABEL: @test_mm_mask_srai_epi64_2
7768 // CHECK: @llvm.x86.avx512.psrai.q.128
7769 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7770 return _mm_mask_srai_epi64(__W
, __U
, __A
, __B
);
7773 __m128i
test_mm_maskz_srai_epi64(__mmask8 __U
, __m128i __A
) {
7774 // CHECK-LABEL: @test_mm_maskz_srai_epi64
7775 // CHECK: @llvm.x86.avx512.psrai.q.128
7776 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7777 return _mm_maskz_srai_epi64(__U
, __A
, 5);
7780 __m128i
test_mm_maskz_srai_epi64_2(__mmask8 __U
, __m128i __A
, unsigned int __B
) {
7781 // CHECK-LABEL: @test_mm_maskz_srai_epi64_2
7782 // CHECK: @llvm.x86.avx512.psrai.q.128
7783 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7784 return _mm_maskz_srai_epi64(__U
, __A
, __B
);
7787 __m256i
test_mm256_srai_epi64(__m256i __A
) {
7788 // CHECK-LABEL: @test_mm256_srai_epi64
7789 // CHECK: @llvm.x86.avx512.psrai.q.256
7790 return _mm256_srai_epi64(__A
, 5);
7793 __m256i
test_mm256_srai_epi64_2(__m256i __A
, unsigned int __B
) {
7794 // CHECK-LABEL: @test_mm256_srai_epi64_2
7795 // CHECK: @llvm.x86.avx512.psrai.q.256
7796 return _mm256_srai_epi64(__A
, __B
);
7799 __m256i
test_mm256_mask_srai_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
) {
7800 // CHECK-LABEL: @test_mm256_mask_srai_epi64
7801 // CHECK: @llvm.x86.avx512.psrai.q.256
7802 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7803 return _mm256_mask_srai_epi64(__W
, __U
, __A
, 5);
7806 __m256i
test_mm256_mask_srai_epi64_2(__m256i __W
, __mmask8 __U
, __m256i __A
, unsigned int __B
) {
7807 // CHECK-LABEL: @test_mm256_mask_srai_epi64_2
7808 // CHECK: @llvm.x86.avx512.psrai.q.256
7809 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7810 return _mm256_mask_srai_epi64(__W
, __U
, __A
, __B
);
7813 __m256i
test_mm256_maskz_srai_epi64(__mmask8 __U
, __m256i __A
) {
7814 // CHECK-LABEL: @test_mm256_maskz_srai_epi64
7815 // CHECK: @llvm.x86.avx512.psrai.q.256
7816 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7817 return _mm256_maskz_srai_epi64(__U
, __A
, 5);
7820 __m256i
test_mm256_maskz_srai_epi64_2(__mmask8 __U
, __m256i __A
, unsigned int __B
) {
7821 // CHECK-LABEL: @test_mm256_maskz_srai_epi64_2
7822 // CHECK: @llvm.x86.avx512.psrai.q.256
7823 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7824 return _mm256_maskz_srai_epi64(__U
, __A
, __B
);
7827 __m128i
test_mm_ternarylogic_epi32(__m128i __A
, __m128i __B
, __m128i __C
) {
7828 // CHECK-LABEL: @test_mm_ternarylogic_epi32
7829 // CHECK: @llvm.x86.avx512.pternlog.d.128
7830 return _mm_ternarylogic_epi32(__A
, __B
, __C
, 4);
7833 __m128i
test_mm_mask_ternarylogic_epi32(__m128i __A
, __mmask8 __U
, __m128i __B
, __m128i __C
) {
7834 // CHECK-LABEL: @test_mm_mask_ternarylogic_epi32
7835 // CHECK: @llvm.x86.avx512.pternlog.d.128
7836 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7837 return _mm_mask_ternarylogic_epi32(__A
, __U
, __B
, __C
, 4);
7840 __m128i
test_mm_maskz_ternarylogic_epi32(__mmask8 __U
, __m128i __A
, __m128i __B
, __m128i __C
) {
7841 // CHECK-LABEL: @test_mm_maskz_ternarylogic_epi32
7842 // CHECK: @llvm.x86.avx512.pternlog.d.128
7843 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
7844 return _mm_maskz_ternarylogic_epi32(__U
, __A
, __B
, __C
, 4);
7847 __m256i
test_mm256_ternarylogic_epi32(__m256i __A
, __m256i __B
, __m256i __C
) {
7848 // CHECK-LABEL: @test_mm256_ternarylogic_epi32
7849 // CHECK: @llvm.x86.avx512.pternlog.d.256
7850 return _mm256_ternarylogic_epi32(__A
, __B
, __C
, 4);
7853 __m256i
test_mm256_mask_ternarylogic_epi32(__m256i __A
, __mmask8 __U
, __m256i __B
, __m256i __C
) {
7854 // CHECK-LABEL: @test_mm256_mask_ternarylogic_epi32
7855 // CHECK: @llvm.x86.avx512.pternlog.d.256
7856 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7857 return _mm256_mask_ternarylogic_epi32(__A
, __U
, __B
, __C
, 4);
7860 __m256i
test_mm256_maskz_ternarylogic_epi32(__mmask8 __U
, __m256i __A
, __m256i __B
, __m256i __C
) {
7861 // CHECK-LABEL: @test_mm256_maskz_ternarylogic_epi32
7862 // CHECK: @llvm.x86.avx512.pternlog.d.256
7863 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> zeroinitializer
7864 return _mm256_maskz_ternarylogic_epi32(__U
, __A
, __B
, __C
, 4);
7867 __m128i
test_mm_ternarylogic_epi64(__m128i __A
, __m128i __B
, __m128i __C
) {
7868 // CHECK-LABEL: @test_mm_ternarylogic_epi64
7869 // CHECK: @llvm.x86.avx512.pternlog.q.128
7870 return _mm_ternarylogic_epi64(__A
, __B
, __C
, 4);
7873 __m128i
test_mm_mask_ternarylogic_epi64(__m128i __A
, __mmask8 __U
, __m128i __B
, __m128i __C
) {
7874 // CHECK-LABEL: @test_mm_mask_ternarylogic_epi64
7875 // CHECK: @llvm.x86.avx512.pternlog.q.128
7876 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7877 return _mm_mask_ternarylogic_epi64(__A
, __U
, __B
, __C
, 4);
7880 __m128i
test_mm_maskz_ternarylogic_epi64(__mmask8 __U
, __m128i __A
, __m128i __B
, __m128i __C
) {
7881 // CHECK-LABEL: @test_mm_maskz_ternarylogic_epi64
7882 // CHECK: @llvm.x86.avx512.pternlog.q.128
7883 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> zeroinitializer
7884 return _mm_maskz_ternarylogic_epi64(__U
, __A
, __B
, __C
, 4);
7887 __m256i
test_mm256_ternarylogic_epi64(__m256i __A
, __m256i __B
, __m256i __C
) {
7888 // CHECK-LABEL: @test_mm256_ternarylogic_epi64
7889 // CHECK: @llvm.x86.avx512.pternlog.q.256
7890 return _mm256_ternarylogic_epi64(__A
, __B
, __C
, 4);
7893 __m256i
test_mm256_mask_ternarylogic_epi64(__m256i __A
, __mmask8 __U
, __m256i __B
, __m256i __C
) {
7894 // CHECK-LABEL: @test_mm256_mask_ternarylogic_epi64
7895 // CHECK: @llvm.x86.avx512.pternlog.q.256
7896 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7897 return _mm256_mask_ternarylogic_epi64(__A
, __U
, __B
, __C
, 4);
7900 __m256i
test_mm256_maskz_ternarylogic_epi64(__mmask8 __U
, __m256i __A
, __m256i __B
, __m256i __C
) {
7901 // CHECK-LABEL: @test_mm256_maskz_ternarylogic_epi64
7902 // CHECK: @llvm.x86.avx512.pternlog.q.256
7903 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> zeroinitializer
7904 return _mm256_maskz_ternarylogic_epi64(__U
, __A
, __B
, __C
, 4);
7906 __m256
test_mm256_shuffle_f32x4(__m256 __A
, __m256 __B
) {
7907 // CHECK-LABEL: @test_mm256_shuffle_f32x4
7908 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15>
7909 return _mm256_shuffle_f32x4(__A
, __B
, 3);
7912 __m256
test_mm256_mask_shuffle_f32x4(__m256 __W
, __mmask8 __U
, __m256 __A
, __m256 __B
) {
7913 // CHECK-LABEL: @test_mm256_mask_shuffle_f32x4
7914 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15>
7915 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7916 return _mm256_mask_shuffle_f32x4(__W
, __U
, __A
, __B
, 3);
7919 __m256
test_mm256_maskz_shuffle_f32x4(__mmask8 __U
, __m256 __A
, __m256 __B
) {
7920 // CHECK-LABEL: @test_mm256_maskz_shuffle_f32x4
7921 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15>
7922 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7923 return _mm256_maskz_shuffle_f32x4(__U
, __A
, __B
, 3);
7926 __m256d
test_mm256_shuffle_f64x2(__m256d __A
, __m256d __B
) {
7927 // CHECK-LABEL: @test_mm256_shuffle_f64x2
7928 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
7929 return _mm256_shuffle_f64x2(__A
, __B
, 3);
7932 __m256d
test_mm256_mask_shuffle_f64x2(__m256d __W
, __mmask8 __U
, __m256d __A
, __m256d __B
) {
7933 // CHECK-LABEL: @test_mm256_mask_shuffle_f64x2
7934 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
7935 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7936 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7937 return _mm256_mask_shuffle_f64x2(__W
, __U
, __A
, __B
, 3);
7940 __m256d
test_mm256_maskz_shuffle_f64x2(__mmask8 __U
, __m256d __A
, __m256d __B
) {
7941 // CHECK-LABEL: @test_mm256_maskz_shuffle_f64x2
7942 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
7943 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7944 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7945 return _mm256_maskz_shuffle_f64x2(__U
, __A
, __B
, 3);
7948 __m256i
test_mm256_shuffle_i32x4(__m256i __A
, __m256i __B
) {
7949 // CHECK-LABEL: @test_mm256_shuffle_i32x4
7950 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15>
7951 return _mm256_shuffle_i32x4(__A
, __B
, 3);
7954 __m256i
test_mm256_mask_shuffle_i32x4(__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
7955 // CHECK-LABEL: @test_mm256_mask_shuffle_i32x4
7956 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15>
7957 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7958 return _mm256_mask_shuffle_i32x4(__W
, __U
, __A
, __B
, 3);
7961 __m256i
test_mm256_maskz_shuffle_i32x4(__mmask8 __U
, __m256i __A
, __m256i __B
) {
7962 // CHECK-LABEL: @test_mm256_maskz_shuffle_i32x4
7963 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15>
7964 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7965 return _mm256_maskz_shuffle_i32x4(__U
, __A
, __B
, 3);
7968 __m256i
test_mm256_shuffle_i64x2(__m256i __A
, __m256i __B
) {
7969 // CHECK-LABEL: @test_mm256_shuffle_i64x2
7970 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
7971 return _mm256_shuffle_i64x2(__A
, __B
, 3);
7974 __m256i
test_mm256_mask_shuffle_i64x2(__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
7975 // CHECK-LABEL: @test_mm256_mask_shuffle_i64x2
7976 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
7977 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7978 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7979 return _mm256_mask_shuffle_i64x2(__W
, __U
, __A
, __B
, 3);
7982 __m256i
test_mm256_maskz_shuffle_i64x2(__mmask8 __U
, __m256i __A
, __m256i __B
) {
7983 // CHECK-LABEL: @test_mm256_maskz_shuffle_i64x2
7984 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
7985 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7986 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7987 return _mm256_maskz_shuffle_i64x2(__U
, __A
, __B
, 3);
7990 __m128d
test_mm_mask_shuffle_pd(__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
) {
7991 // CHECK-LABEL: @test_mm_mask_shuffle_pd
7992 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
7993 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7994 return _mm_mask_shuffle_pd(__W
, __U
, __A
, __B
, 3);
7997 __m128d
test_mm_maskz_shuffle_pd(__mmask8 __U
, __m128d __A
, __m128d __B
) {
7998 // CHECK-LABEL: @test_mm_maskz_shuffle_pd
7999 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
8000 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
8001 return _mm_maskz_shuffle_pd(__U
, __A
, __B
, 3);
8004 __m256d
test_mm256_mask_shuffle_pd(__m256d __W
, __mmask8 __U
, __m256d __A
, __m256d __B
) {
8005 // CHECK-LABEL: @test_mm256_mask_shuffle_pd
8006 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 2, i32 6>
8007 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8008 return _mm256_mask_shuffle_pd(__W
, __U
, __A
, __B
, 3);
8011 __m256d
test_mm256_maskz_shuffle_pd(__mmask8 __U
, __m256d __A
, __m256d __B
) {
8012 // CHECK-LABEL: @test_mm256_maskz_shuffle_pd
8013 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 2, i32 6>
8014 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8015 return _mm256_maskz_shuffle_pd(__U
, __A
, __B
, 3);
8018 __m128
test_mm_mask_shuffle_ps(__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
) {
8019 // CHECK-LABEL: @test_mm_mask_shuffle_ps
8020 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 4>
8021 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8022 return _mm_mask_shuffle_ps(__W
, __U
, __A
, __B
, 4);
8025 __m128
test_mm_maskz_shuffle_ps(__mmask8 __U
, __m128 __A
, __m128 __B
) {
8026 // CHECK-LABEL: @test_mm_maskz_shuffle_ps
8027 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 4>
8028 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8029 return _mm_maskz_shuffle_ps(__U
, __A
, __B
, 4);
8032 __m256
test_mm256_mask_shuffle_ps(__m256 __W
, __mmask8 __U
, __m256 __A
, __m256 __B
) {
8033 // CHECK-LABEL: @test_mm256_mask_shuffle_ps
8034 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 8, i32 8, i32 4, i32 5, i32 12, i32 12>
8035 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8036 return _mm256_mask_shuffle_ps(__W
, __U
, __A
, __B
, 4);
8039 __m256
test_mm256_maskz_shuffle_ps(__mmask8 __U
, __m256 __A
, __m256 __B
) {
8040 // CHECK-LABEL: @test_mm256_maskz_shuffle_ps
8041 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 8, i32 8, i32 4, i32 5, i32 12, i32 12>
8042 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8043 return _mm256_maskz_shuffle_ps(__U
, __A
, __B
, 4);
8046 __m128d
test_mm_rsqrt14_pd(__m128d __A
) {
8047 // CHECK-LABEL: @test_mm_rsqrt14_pd
8048 // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8049 return _mm_rsqrt14_pd(__A
);
8052 __m128d
test_mm_mask_rsqrt14_pd(__m128d __W
, __mmask8 __U
, __m128d __A
) {
8053 // CHECK-LABEL: @test_mm_mask_rsqrt14_pd
8054 // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8055 return _mm_mask_rsqrt14_pd(__W
, __U
, __A
);
8058 __m128d
test_mm_maskz_rsqrt14_pd(__mmask8 __U
, __m128d __A
) {
8059 // CHECK-LABEL: @test_mm_maskz_rsqrt14_pd
8060 // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8061 return _mm_maskz_rsqrt14_pd(__U
, __A
);
8064 __m256d
test_mm256_rsqrt14_pd(__m256d __A
) {
8065 // CHECK-LABEL: @test_mm256_rsqrt14_pd
8066 // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8067 return _mm256_rsqrt14_pd(__A
);
8070 __m256d
test_mm256_mask_rsqrt14_pd(__m256d __W
, __mmask8 __U
, __m256d __A
) {
8071 // CHECK-LABEL: @test_mm256_mask_rsqrt14_pd
8072 // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8073 return _mm256_mask_rsqrt14_pd(__W
, __U
, __A
);
8076 __m256d
test_mm256_maskz_rsqrt14_pd(__mmask8 __U
, __m256d __A
) {
8077 // CHECK-LABEL: @test_mm256_maskz_rsqrt14_pd
8078 // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8079 return _mm256_maskz_rsqrt14_pd(__U
, __A
);
8082 __m128
test_mm_rsqrt14_ps(__m128 __A
) {
8083 // CHECK-LABEL: @test_mm_rsqrt14_ps
8084 // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8085 return _mm_rsqrt14_ps(__A
);
8088 __m128
test_mm_mask_rsqrt14_ps(__m128 __W
, __mmask8 __U
, __m128 __A
) {
8089 // CHECK-LABEL: @test_mm_mask_rsqrt14_ps
8090 // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8091 return _mm_mask_rsqrt14_ps(__W
, __U
, __A
);
8094 __m128
test_mm_maskz_rsqrt14_ps(__mmask8 __U
, __m128 __A
) {
8095 // CHECK-LABEL: @test_mm_maskz_rsqrt14_ps
8096 // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8097 return _mm_maskz_rsqrt14_ps(__U
, __A
);
8100 __m256
test_mm256_rsqrt14_ps(__m256 __A
) {
8101 // CHECK-LABEL: @test_mm256_rsqrt14_ps
8102 // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8103 return _mm256_rsqrt14_ps(__A
);
8106 __m256
test_mm256_mask_rsqrt14_ps(__m256 __W
, __mmask8 __U
, __m256 __A
) {
8107 // CHECK-LABEL: @test_mm256_mask_rsqrt14_ps
8108 // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8109 return _mm256_mask_rsqrt14_ps(__W
, __U
, __A
);
8112 __m256
test_mm256_maskz_rsqrt14_ps(__mmask8 __U
, __m256 __A
) {
8113 // CHECK-LABEL: @test_mm256_maskz_rsqrt14_ps
8114 // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8115 return _mm256_maskz_rsqrt14_ps(__U
, __A
);
8118 __m256
test_mm256_broadcast_f32x4(__m128 __A
) {
8119 // CHECK-LABEL: @test_mm256_broadcast_f32x4
8120 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
8121 return _mm256_broadcast_f32x4(__A
);
8124 __m256
test_mm256_mask_broadcast_f32x4(__m256 __O
, __mmask8 __M
, __m128 __A
) {
8125 // CHECK-LABEL: @test_mm256_mask_broadcast_f32x4
8126 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
8127 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8128 return _mm256_mask_broadcast_f32x4(__O
, __M
, __A
);
8131 __m256
test_mm256_maskz_broadcast_f32x4(__mmask8 __M
, __m128 __A
) {
8132 // CHECK-LABEL: @test_mm256_maskz_broadcast_f32x4
8133 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
8134 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8135 return _mm256_maskz_broadcast_f32x4(__M
, __A
);
8138 __m256i
test_mm256_broadcast_i32x4(__m128i
const* __A
) {
8139 // CHECK-LABEL: @test_mm256_broadcast_i32x4
8140 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
8141 return _mm256_broadcast_i32x4(_mm_loadu_si128(__A
));
8144 __m256i
test_mm256_mask_broadcast_i32x4(__m256i __O
, __mmask8 __M
, __m128i
const* __A
) {
8145 // CHECK-LABEL: @test_mm256_mask_broadcast_i32x4
8146 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
8147 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8148 return _mm256_mask_broadcast_i32x4(__O
, __M
, _mm_loadu_si128(__A
));
8151 __m256i
test_mm256_maskz_broadcast_i32x4(__mmask8 __M
, __m128i
const* __A
) {
8152 // CHECK-LABEL: @test_mm256_maskz_broadcast_i32x4
8153 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
8154 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8155 return _mm256_maskz_broadcast_i32x4(__M
, _mm_loadu_si128(__A
));
8158 __m256d
test_mm256_mask_broadcastsd_pd(__m256d __O
, __mmask8 __M
, __m128d __A
) {
8159 // CHECK-LABEL: @test_mm256_mask_broadcastsd_pd
8160 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer
8161 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8162 return _mm256_mask_broadcastsd_pd(__O
, __M
, __A
);
8165 __m256d
test_mm256_maskz_broadcastsd_pd(__mmask8 __M
, __m128d __A
) {
8166 // CHECK-LABEL: @test_mm256_maskz_broadcastsd_pd
8167 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer
8168 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8169 return _mm256_maskz_broadcastsd_pd(__M
, __A
);
8172 __m128
test_mm_mask_broadcastss_ps(__m128 __O
, __mmask8 __M
, __m128 __A
) {
8173 // CHECK-LABEL: @test_mm_mask_broadcastss_ps
8174 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer
8175 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8176 return _mm_mask_broadcastss_ps(__O
, __M
, __A
);
8179 __m128
test_mm_maskz_broadcastss_ps(__mmask8 __M
, __m128 __A
) {
8180 // CHECK-LABEL: @test_mm_maskz_broadcastss_ps
8181 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer
8182 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8183 return _mm_maskz_broadcastss_ps(__M
, __A
);
8186 __m256
test_mm256_mask_broadcastss_ps(__m256 __O
, __mmask8 __M
, __m128 __A
) {
8187 // CHECK-LABEL: @test_mm256_mask_broadcastss_ps
8188 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer
8189 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8190 return _mm256_mask_broadcastss_ps(__O
, __M
, __A
);
8193 __m256
test_mm256_maskz_broadcastss_ps(__mmask8 __M
, __m128 __A
) {
8194 // CHECK-LABEL: @test_mm256_maskz_broadcastss_ps
8195 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer
8196 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8197 return _mm256_maskz_broadcastss_ps(__M
, __A
);
8200 __m128i
test_mm_mask_broadcastd_epi32(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8201 // CHECK-LABEL: @test_mm_mask_broadcastd_epi32
8202 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
8203 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8204 return _mm_mask_broadcastd_epi32(__O
, __M
, __A
);
8207 __m128i
test_mm_maskz_broadcastd_epi32(__mmask8 __M
, __m128i __A
) {
8208 // CHECK-LABEL: @test_mm_maskz_broadcastd_epi32
8209 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
8210 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8211 return _mm_maskz_broadcastd_epi32(__M
, __A
);
8214 __m256i
test_mm256_mask_broadcastd_epi32(__m256i __O
, __mmask8 __M
, __m128i __A
) {
8215 // CHECK-LABEL: @test_mm256_mask_broadcastd_epi32
8216 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer
8217 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8218 return _mm256_mask_broadcastd_epi32(__O
, __M
, __A
);
8221 __m256i
test_mm256_maskz_broadcastd_epi32(__mmask8 __M
, __m128i __A
) {
8222 // CHECK-LABEL: @test_mm256_maskz_broadcastd_epi32
8223 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer
8224 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8225 return _mm256_maskz_broadcastd_epi32(__M
, __A
);
8228 __m128i
test_mm_mask_broadcastq_epi64(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8229 // CHECK-LABEL: @test_mm_mask_broadcastq_epi64
8230 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer
8231 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
8232 return _mm_mask_broadcastq_epi64(__O
, __M
, __A
);
8235 __m128i
test_mm_maskz_broadcastq_epi64(__mmask8 __M
, __m128i __A
) {
8236 // CHECK-LABEL: @test_mm_maskz_broadcastq_epi64
8237 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer
8238 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
8239 return _mm_maskz_broadcastq_epi64(__M
, __A
);
8242 __m256i
test_mm256_mask_broadcastq_epi64(__m256i __O
, __mmask8 __M
, __m128i __A
) {
8243 // CHECK-LABEL: @test_mm256_mask_broadcastq_epi64
8244 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer
8245 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8246 return _mm256_mask_broadcastq_epi64(__O
, __M
, __A
);
8249 __m256i
test_mm256_maskz_broadcastq_epi64(__mmask8 __M
, __m128i __A
) {
8250 // CHECK-LABEL: @test_mm256_maskz_broadcastq_epi64
8251 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer
8252 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8253 return _mm256_maskz_broadcastq_epi64(__M
, __A
);
8256 __m128i
test_mm_cvtsepi32_epi8(__m128i __A
) {
8257 // CHECK-LABEL: @test_mm_cvtsepi32_epi8
8258 // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8259 return _mm_cvtsepi32_epi8(__A
);
8262 __m128i
test_mm_mask_cvtsepi32_epi8(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8263 // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi8
8264 // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8265 return _mm_mask_cvtsepi32_epi8(__O
, __M
, __A
);
8268 __m128i
test_mm_maskz_cvtsepi32_epi8(__mmask8 __M
, __m128i __A
) {
8269 // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi8
8270 // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8271 return _mm_maskz_cvtsepi32_epi8(__M
, __A
);
8274 void test_mm_mask_cvtsepi32_storeu_epi8(void * __P
, __mmask8 __M
, __m128i __A
) {
8275 // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi8
8276 // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.128
8277 return _mm_mask_cvtsepi32_storeu_epi8(__P
, __M
, __A
);
8280 __m128i
test_mm256_cvtsepi32_epi8(__m256i __A
) {
8281 // CHECK-LABEL: @test_mm256_cvtsepi32_epi8
8282 // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8283 return _mm256_cvtsepi32_epi8(__A
);
8286 __m128i
test_mm256_mask_cvtsepi32_epi8(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8287 // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi8
8288 // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8289 return _mm256_mask_cvtsepi32_epi8(__O
, __M
, __A
);
8292 __m128i
test_mm256_maskz_cvtsepi32_epi8(__mmask8 __M
, __m256i __A
) {
8293 // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi8
8294 // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8295 return _mm256_maskz_cvtsepi32_epi8(__M
, __A
);
8298 void test_mm256_mask_cvtsepi32_storeu_epi8(void * __P
, __mmask8 __M
, __m256i __A
) {
8299 // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi8
8300 // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.256
8301 return _mm256_mask_cvtsepi32_storeu_epi8(__P
, __M
, __A
);
8304 __m128i
test_mm_cvtsepi32_epi16(__m128i __A
) {
8305 // CHECK-LABEL: @test_mm_cvtsepi32_epi16
8306 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8307 return _mm_cvtsepi32_epi16(__A
);
8310 __m128i
test_mm_mask_cvtsepi32_epi16(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8311 // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi16
8312 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8313 return _mm_mask_cvtsepi32_epi16(__O
, __M
, __A
);
8316 __m128i
test_mm_maskz_cvtsepi32_epi16(__mmask8 __M
, __m128i __A
) {
8317 // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi16
8318 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8319 return _mm_maskz_cvtsepi32_epi16(__M
, __A
);
8322 void test_mm_mask_cvtsepi32_storeu_epi16(void * __P
, __mmask8 __M
, __m128i __A
) {
8323 // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi16
8324 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.128
8325 return _mm_mask_cvtsepi32_storeu_epi16(__P
, __M
, __A
);
8328 __m128i
test_mm256_cvtsepi32_epi16(__m256i __A
) {
8329 // CHECK-LABEL: @test_mm256_cvtsepi32_epi16
8330 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8331 return _mm256_cvtsepi32_epi16(__A
);
8334 __m128i
test_mm256_mask_cvtsepi32_epi16(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8335 // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi16
8336 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8337 return _mm256_mask_cvtsepi32_epi16(__O
, __M
, __A
);
8340 __m128i
test_mm256_maskz_cvtsepi32_epi16(__mmask8 __M
, __m256i __A
) {
8341 // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi16
8342 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8343 return _mm256_maskz_cvtsepi32_epi16(__M
, __A
);
8346 void test_mm256_mask_cvtsepi32_storeu_epi16(void * __P
, __mmask8 __M
, __m256i __A
) {
8347 // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi16
8348 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.256
8349 return _mm256_mask_cvtsepi32_storeu_epi16(__P
, __M
, __A
);
8352 __m128i
test_mm_cvtsepi64_epi8(__m128i __A
) {
8353 // CHECK-LABEL: @test_mm_cvtsepi64_epi8
8354 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8355 return _mm_cvtsepi64_epi8(__A
);
8358 __m128i
test_mm_mask_cvtsepi64_epi8(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8359 // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi8
8360 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8361 return _mm_mask_cvtsepi64_epi8(__O
, __M
, __A
);
8364 __m128i
test_mm_maskz_cvtsepi64_epi8(__mmask8 __M
, __m128i __A
) {
8365 // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi8
8366 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8367 return _mm_maskz_cvtsepi64_epi8(__M
, __A
);
8370 void test_mm_mask_cvtsepi64_storeu_epi8(void * __P
, __mmask8 __M
, __m128i __A
) {
8371 // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi8
8372 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.128
8373 return _mm_mask_cvtsepi64_storeu_epi8(__P
, __M
, __A
);
8376 __m128i
test_mm256_cvtsepi64_epi8(__m256i __A
) {
8377 // CHECK-LABEL: @test_mm256_cvtsepi64_epi8
8378 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8379 return _mm256_cvtsepi64_epi8(__A
);
8382 __m128i
test_mm256_mask_cvtsepi64_epi8(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8383 // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi8
8384 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8385 return _mm256_mask_cvtsepi64_epi8(__O
, __M
, __A
);
8388 __m128i
test_mm256_maskz_cvtsepi64_epi8(__mmask8 __M
, __m256i __A
) {
8389 // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi8
8390 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8391 return _mm256_maskz_cvtsepi64_epi8(__M
, __A
);
8394 void test_mm256_mask_cvtsepi64_storeu_epi8(void * __P
, __mmask8 __M
, __m256i __A
) {
8395 // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi8
8396 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.256
8397 return _mm256_mask_cvtsepi64_storeu_epi8(__P
, __M
, __A
);
8400 __m128i
test_mm_cvtsepi64_epi32(__m128i __A
) {
8401 // CHECK-LABEL: @test_mm_cvtsepi64_epi32
8402 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8403 return _mm_cvtsepi64_epi32(__A
);
8406 __m128i
test_mm_mask_cvtsepi64_epi32(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8407 // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi32
8408 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8409 return _mm_mask_cvtsepi64_epi32(__O
, __M
, __A
);
8412 __m128i
test_mm_maskz_cvtsepi64_epi32(__mmask8 __M
, __m128i __A
) {
8413 // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi32
8414 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8415 return _mm_maskz_cvtsepi64_epi32(__M
, __A
);
8418 void test_mm_mask_cvtsepi64_storeu_epi32(void * __P
, __mmask8 __M
, __m128i __A
) {
8419 // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi32
8420 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.128
8421 return _mm_mask_cvtsepi64_storeu_epi32(__P
, __M
, __A
);
8424 __m128i
test_mm256_cvtsepi64_epi32(__m256i __A
) {
8425 // CHECK-LABEL: @test_mm256_cvtsepi64_epi32
8426 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8427 return _mm256_cvtsepi64_epi32(__A
);
8430 __m128i
test_mm256_mask_cvtsepi64_epi32(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8431 // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi32
8432 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8433 return _mm256_mask_cvtsepi64_epi32(__O
, __M
, __A
);
8436 __m128i
test_mm256_maskz_cvtsepi64_epi32(__mmask8 __M
, __m256i __A
) {
8437 // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi32
8438 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8439 return _mm256_maskz_cvtsepi64_epi32(__M
, __A
);
8442 void test_mm256_mask_cvtsepi64_storeu_epi32(void * __P
, __mmask8 __M
, __m256i __A
) {
8443 // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi32
8444 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.256
8445 return _mm256_mask_cvtsepi64_storeu_epi32(__P
, __M
, __A
);
8448 __m128i
test_mm_cvtsepi64_epi16(__m128i __A
) {
8449 // CHECK-LABEL: @test_mm_cvtsepi64_epi16
8450 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8451 return _mm_cvtsepi64_epi16(__A
);
8454 __m128i
test_mm_mask_cvtsepi64_epi16(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8455 // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi16
8456 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8457 return _mm_mask_cvtsepi64_epi16(__O
, __M
, __A
);
8460 __m128i
test_mm_maskz_cvtsepi64_epi16(__mmask8 __M
, __m128i __A
) {
8461 // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi16
8462 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8463 return _mm_maskz_cvtsepi64_epi16(__M
, __A
);
8466 void test_mm_mask_cvtsepi64_storeu_epi16(void * __P
, __mmask8 __M
, __m128i __A
) {
8467 // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi16
8468 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.128
8469 return _mm_mask_cvtsepi64_storeu_epi16(__P
, __M
, __A
);
8472 __m128i
test_mm256_cvtsepi64_epi16(__m256i __A
) {
8473 // CHECK-LABEL: @test_mm256_cvtsepi64_epi16
8474 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8475 return _mm256_cvtsepi64_epi16(__A
);
8478 __m128i
test_mm256_mask_cvtsepi64_epi16(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8479 // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi16
8480 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8481 return _mm256_mask_cvtsepi64_epi16(__O
, __M
, __A
);
8484 __m128i
test_mm256_maskz_cvtsepi64_epi16(__mmask8 __M
, __m256i __A
) {
8485 // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi16
8486 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8487 return _mm256_maskz_cvtsepi64_epi16(__M
, __A
);
8490 void test_mm256_mask_cvtsepi64_storeu_epi16(void * __P
, __mmask8 __M
, __m256i __A
) {
8491 // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi16
8492 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.256
8493 return _mm256_mask_cvtsepi64_storeu_epi16(__P
, __M
, __A
);
8496 __m128i
test_mm_cvtusepi32_epi8(__m128i __A
) {
8497 // CHECK-LABEL: @test_mm_cvtusepi32_epi8
8498 // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8499 return _mm_cvtusepi32_epi8(__A
);
8502 __m128i
test_mm_mask_cvtusepi32_epi8(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8503 // CHECK-LABEL: @test_mm_mask_cvtusepi32_epi8
8504 // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8505 return _mm_mask_cvtusepi32_epi8(__O
, __M
, __A
);
8508 __m128i
test_mm_maskz_cvtusepi32_epi8(__mmask8 __M
, __m128i __A
) {
8509 // CHECK-LABEL: @test_mm_maskz_cvtusepi32_epi8
8510 // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8511 return _mm_maskz_cvtusepi32_epi8(__M
, __A
);
8514 void test_mm_mask_cvtusepi32_storeu_epi8(void * __P
, __mmask8 __M
, __m128i __A
) {
8515 // CHECK-LABEL: @test_mm_mask_cvtusepi32_storeu_epi8
8516 // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.128
8517 return _mm_mask_cvtusepi32_storeu_epi8(__P
, __M
, __A
);
8520 __m128i
test_mm256_cvtusepi32_epi8(__m256i __A
) {
8521 // CHECK-LABEL: @test_mm256_cvtusepi32_epi8
8522 // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8523 return _mm256_cvtusepi32_epi8(__A
);
8526 __m128i
test_mm256_mask_cvtusepi32_epi8(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8527 // CHECK-LABEL: @test_mm256_mask_cvtusepi32_epi8
8528 // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8529 return _mm256_mask_cvtusepi32_epi8(__O
, __M
, __A
);
8532 __m128i
test_mm256_maskz_cvtusepi32_epi8(__mmask8 __M
, __m256i __A
) {
8533 // CHECK-LABEL: @test_mm256_maskz_cvtusepi32_epi8
8534 // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8535 return _mm256_maskz_cvtusepi32_epi8(__M
, __A
);
8538 void test_mm256_mask_cvtusepi32_storeu_epi8(void * __P
, __mmask8 __M
, __m256i __A
) {
8539 // CHECK-LABEL: @test_mm256_mask_cvtusepi32_storeu_epi8
8540 // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.256
8541 return _mm256_mask_cvtusepi32_storeu_epi8(__P
, __M
, __A
);
8544 __m128i
test_mm_cvtusepi32_epi16(__m128i __A
) {
8545 // CHECK-LABEL: @test_mm_cvtusepi32_epi16
8546 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8547 return _mm_cvtusepi32_epi16(__A
);
8550 __m128i
test_mm_mask_cvtusepi32_epi16(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8551 // CHECK-LABEL: @test_mm_mask_cvtusepi32_epi16
8552 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8553 return _mm_mask_cvtusepi32_epi16(__O
, __M
, __A
);
8556 __m128i
test_mm_maskz_cvtusepi32_epi16(__mmask8 __M
, __m128i __A
) {
8557 // CHECK-LABEL: @test_mm_maskz_cvtusepi32_epi16
8558 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8559 return _mm_maskz_cvtusepi32_epi16(__M
, __A
);
8562 void test_mm_mask_cvtusepi32_storeu_epi16(void * __P
, __mmask8 __M
, __m128i __A
) {
8563 // CHECK-LABEL: @test_mm_mask_cvtusepi32_storeu_epi16
8564 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.128
8565 return _mm_mask_cvtusepi32_storeu_epi16(__P
, __M
, __A
);
8568 __m128i
test_mm256_cvtusepi32_epi16(__m256i __A
) {
8569 // CHECK-LABEL: @test_mm256_cvtusepi32_epi16
8570 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8571 return _mm256_cvtusepi32_epi16(__A
);
8574 __m128i
test_mm256_mask_cvtusepi32_epi16(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8575 // CHECK-LABEL: @test_mm256_mask_cvtusepi32_epi16
8576 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8577 return _mm256_mask_cvtusepi32_epi16(__O
, __M
, __A
);
8580 __m128i
test_mm256_maskz_cvtusepi32_epi16(__mmask8 __M
, __m256i __A
) {
8581 // CHECK-LABEL: @test_mm256_maskz_cvtusepi32_epi16
8582 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8583 return _mm256_maskz_cvtusepi32_epi16(__M
, __A
);
8586 void test_mm256_mask_cvtusepi32_storeu_epi16(void * __P
, __mmask8 __M
, __m256i __A
) {
8587 // CHECK-LABEL: @test_mm256_mask_cvtusepi32_storeu_epi16
8588 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.256
8589 return _mm256_mask_cvtusepi32_storeu_epi16(__P
, __M
, __A
);
8592 __m128i
test_mm_cvtusepi64_epi8(__m128i __A
) {
8593 // CHECK-LABEL: @test_mm_cvtusepi64_epi8
8594 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8595 return _mm_cvtusepi64_epi8(__A
);
8598 __m128i
test_mm_mask_cvtusepi64_epi8(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8599 // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi8
8600 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8601 return _mm_mask_cvtusepi64_epi8(__O
, __M
, __A
);
8604 __m128i
test_mm_maskz_cvtusepi64_epi8(__mmask8 __M
, __m128i __A
) {
8605 // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi8
8606 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8607 return _mm_maskz_cvtusepi64_epi8(__M
, __A
);
8610 void test_mm_mask_cvtusepi64_storeu_epi8(void * __P
, __mmask8 __M
, __m128i __A
) {
8611 // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi8
8612 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.128
8613 return _mm_mask_cvtusepi64_storeu_epi8(__P
, __M
, __A
);
8616 __m128i
test_mm256_cvtusepi64_epi8(__m256i __A
) {
8617 // CHECK-LABEL: @test_mm256_cvtusepi64_epi8
8618 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8619 return _mm256_cvtusepi64_epi8(__A
);
8622 __m128i
test_mm256_mask_cvtusepi64_epi8(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8623 // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi8
8624 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8625 return _mm256_mask_cvtusepi64_epi8(__O
, __M
, __A
);
8628 __m128i
test_mm256_maskz_cvtusepi64_epi8(__mmask8 __M
, __m256i __A
) {
8629 // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi8
8630 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8631 return _mm256_maskz_cvtusepi64_epi8(__M
, __A
);
8634 void test_mm256_mask_cvtusepi64_storeu_epi8(void * __P
, __mmask8 __M
, __m256i __A
) {
8635 // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi8
8636 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.256
8637 return _mm256_mask_cvtusepi64_storeu_epi8(__P
, __M
, __A
);
8640 __m128i
test_mm_cvtusepi64_epi32(__m128i __A
) {
8641 // CHECK-LABEL: @test_mm_cvtusepi64_epi32
8642 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8643 return _mm_cvtusepi64_epi32(__A
);
8646 __m128i
test_mm_mask_cvtusepi64_epi32(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8647 // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi32
8648 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8649 return _mm_mask_cvtusepi64_epi32(__O
, __M
, __A
);
8652 __m128i
test_mm_maskz_cvtusepi64_epi32(__mmask8 __M
, __m128i __A
) {
8653 // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi32
8654 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8655 return _mm_maskz_cvtusepi64_epi32(__M
, __A
);
8658 void test_mm_mask_cvtusepi64_storeu_epi32(void * __P
, __mmask8 __M
, __m128i __A
) {
8659 // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi32
8660 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.128
8661 return _mm_mask_cvtusepi64_storeu_epi32(__P
, __M
, __A
);
8664 __m128i
test_mm256_cvtusepi64_epi32(__m256i __A
) {
8665 // CHECK-LABEL: @test_mm256_cvtusepi64_epi32
8666 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8667 return _mm256_cvtusepi64_epi32(__A
);
8670 __m128i
test_mm256_mask_cvtusepi64_epi32(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8671 // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi32
8672 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8673 return _mm256_mask_cvtusepi64_epi32(__O
, __M
, __A
);
8676 __m128i
test_mm256_maskz_cvtusepi64_epi32(__mmask8 __M
, __m256i __A
) {
8677 // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi32
8678 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8679 return _mm256_maskz_cvtusepi64_epi32(__M
, __A
);
8682 void test_mm256_mask_cvtusepi64_storeu_epi32(void * __P
, __mmask8 __M
, __m256i __A
) {
8683 // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi32
8684 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.256
8685 return _mm256_mask_cvtusepi64_storeu_epi32(__P
, __M
, __A
);
8688 __m128i
test_mm_cvtusepi64_epi16(__m128i __A
) {
8689 // CHECK-LABEL: @test_mm_cvtusepi64_epi16
8690 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8691 return _mm_cvtusepi64_epi16(__A
);
8694 __m128i
test_mm_mask_cvtusepi64_epi16(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8695 // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi16
8696 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8697 return _mm_mask_cvtusepi64_epi16(__O
, __M
, __A
);
8700 __m128i
test_mm_maskz_cvtusepi64_epi16(__mmask8 __M
, __m128i __A
) {
8701 // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi16
8702 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8703 return _mm_maskz_cvtusepi64_epi16(__M
, __A
);
8706 void test_mm_mask_cvtusepi64_storeu_epi16(void * __P
, __mmask8 __M
, __m128i __A
) {
8707 // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi16
8708 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.128
8709 return _mm_mask_cvtusepi64_storeu_epi16(__P
, __M
, __A
);
8712 __m128i
test_mm256_cvtusepi64_epi16(__m256i __A
) {
8713 // CHECK-LABEL: @test_mm256_cvtusepi64_epi16
8714 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8715 return _mm256_cvtusepi64_epi16(__A
);
8718 __m128i
test_mm256_mask_cvtusepi64_epi16(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8719 // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi16
8720 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8721 return _mm256_mask_cvtusepi64_epi16(__O
, __M
, __A
);
8724 __m128i
test_mm256_maskz_cvtusepi64_epi16(__mmask8 __M
, __m256i __A
) {
8725 // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi16
8726 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8727 return _mm256_maskz_cvtusepi64_epi16(__M
, __A
);
8730 void test_mm256_mask_cvtusepi64_storeu_epi16(void * __P
, __mmask8 __M
, __m256i __A
) {
8731 // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi16
8732 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.256
8733 return _mm256_mask_cvtusepi64_storeu_epi16(__P
, __M
, __A
);
8736 __m128i
test_mm_cvtepi32_epi8(__m128i __A
) {
8737 // CHECK-LABEL: @test_mm_cvtepi32_epi8
8738 // CHECK: trunc <4 x i32> %{{.*}} to <4 x i8>
8739 // CHECK: shufflevector <4 x i8> %{{.*}}, <4 x i8> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7>
8740 return _mm_cvtepi32_epi8(__A
);
8743 __m128i
test_mm_mask_cvtepi32_epi8(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8744 // CHECK-LABEL: @test_mm_mask_cvtepi32_epi8
8745 // CHECK: @llvm.x86.avx512.mask.pmov.db.128
8746 return _mm_mask_cvtepi32_epi8(__O
, __M
, __A
);
8749 __m128i
test_mm_maskz_cvtepi32_epi8(__mmask8 __M
, __m128i __A
) {
8750 // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi8
8751 // CHECK: @llvm.x86.avx512.mask.pmov.db.128
8752 return _mm_maskz_cvtepi32_epi8(__M
, __A
);
8755 void test_mm_mask_cvtepi32_storeu_epi8(void * __P
, __mmask8 __M
, __m128i __A
) {
8756 // CHECK-LABEL: @test_mm_mask_cvtepi32_storeu_epi8
8757 // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.128
8758 return _mm_mask_cvtepi32_storeu_epi8(__P
, __M
, __A
);
8761 __m128i
test_mm256_cvtepi32_epi8(__m256i __A
) {
8762 // CHECK-LABEL: @test_mm256_cvtepi32_epi8
8763 // CHECK: trunc <8 x i32> %{{.*}} to <8 x i8>
8764 // 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>
8765 return _mm256_cvtepi32_epi8(__A
);
8768 __m128i
test_mm256_mask_cvtepi32_epi8(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8769 // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi8
8770 // CHECK: @llvm.x86.avx512.mask.pmov.db.256
8771 return _mm256_mask_cvtepi32_epi8(__O
, __M
, __A
);
8774 __m128i
test_mm256_maskz_cvtepi32_epi8(__mmask8 __M
, __m256i __A
) {
8775 // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi8
8776 // CHECK: @llvm.x86.avx512.mask.pmov.db.256
8777 return _mm256_maskz_cvtepi32_epi8(__M
, __A
);
8780 void test_mm256_mask_cvtepi32_storeu_epi8(void * __P
, __mmask8 __M
, __m256i __A
) {
8781 // CHECK-LABEL: @test_mm256_mask_cvtepi32_storeu_epi8
8782 // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.256
8783 return _mm256_mask_cvtepi32_storeu_epi8(__P
, __M
, __A
);
8786 __m128i
test_mm_cvtepi32_epi16(__m128i __A
) {
8787 // CHECK-LABEL: @test_mm_cvtepi32_epi16
8788 // CHECK: trunc <4 x i32> %{{.*}} to <4 x i16>
8789 // CHECK: shufflevector <4 x i16> %{{.*}}, <4 x i16> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
8790 return _mm_cvtepi32_epi16(__A
);
8793 __m128i
test_mm_mask_cvtepi32_epi16(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8794 // CHECK-LABEL: @test_mm_mask_cvtepi32_epi16
8795 // CHECK: @llvm.x86.avx512.mask.pmov.dw.128
8796 return _mm_mask_cvtepi32_epi16(__O
, __M
, __A
);
8799 __m128i
test_mm_maskz_cvtepi32_epi16(__mmask8 __M
, __m128i __A
) {
8800 // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi16
8801 // CHECK: @llvm.x86.avx512.mask.pmov.dw.128
8802 return _mm_maskz_cvtepi32_epi16(__M
, __A
);
8805 void test_mm_mask_cvtepi32_storeu_epi16(void * __P
, __mmask8 __M
, __m128i __A
) {
8806 // CHECK-LABEL: @test_mm_mask_cvtepi32_storeu_epi16
8807 // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.128
8808 return _mm_mask_cvtepi32_storeu_epi16(__P
, __M
, __A
);
8811 __m128i
test_mm256_cvtepi32_epi16(__m256i __A
) {
8812 // CHECK-LABEL: @test_mm256_cvtepi32_epi16
8813 // CHECK: trunc <8 x i32> %{{.*}} to <8 x i16>
8814 return _mm256_cvtepi32_epi16(__A
);
8817 __m128i
test_mm256_mask_cvtepi32_epi16(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8818 // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi16
8819 // CHECK: @llvm.x86.avx512.mask.pmov.dw.256
8820 return _mm256_mask_cvtepi32_epi16(__O
, __M
, __A
);
8823 __m128i
test_mm256_maskz_cvtepi32_epi16(__mmask8 __M
, __m256i __A
) {
8824 // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi16
8825 // CHECK: @llvm.x86.avx512.mask.pmov.dw.256
8826 return _mm256_maskz_cvtepi32_epi16(__M
, __A
);
8829 void test_mm256_mask_cvtepi32_storeu_epi16(void * __P
, __mmask8 __M
, __m256i __A
) {
8830 // CHECK-LABEL: @test_mm256_mask_cvtepi32_storeu_epi16
8831 // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.256
8832 return _mm256_mask_cvtepi32_storeu_epi16(__P
, __M
, __A
);
8835 __m128i
test_mm_cvtepi64_epi8(__m128i __A
) {
8836 // CHECK-LABEL: @test_mm_cvtepi64_epi8
8837 // CHECK: trunc <2 x i64> %{{.*}} to <2 x i8>
8838 // CHECK: shufflevector <2 x i8> %{{.*}}, <2 x i8> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
8839 return _mm_cvtepi64_epi8(__A
);
8842 __m128i
test_mm_mask_cvtepi64_epi8(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8843 // CHECK-LABEL: @test_mm_mask_cvtepi64_epi8
8844 // CHECK: @llvm.x86.avx512.mask.pmov.qb.128
8845 return _mm_mask_cvtepi64_epi8(__O
, __M
, __A
);
8848 __m128i
test_mm_maskz_cvtepi64_epi8(__mmask8 __M
, __m128i __A
) {
8849 // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi8
8850 // CHECK: @llvm.x86.avx512.mask.pmov.qb.128
8851 return _mm_maskz_cvtepi64_epi8(__M
, __A
);
8854 void test_mm_mask_cvtepi64_storeu_epi8(void * __P
, __mmask8 __M
, __m128i __A
) {
8855 // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi8
8856 // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.128
8857 return _mm_mask_cvtepi64_storeu_epi8(__P
, __M
, __A
);
8860 __m128i
test_mm256_cvtepi64_epi8(__m256i __A
) {
8861 // CHECK-LABEL: @test_mm256_cvtepi64_epi8
8862 // CHECK: trunc <4 x i64> %{{.*}} to <4 x i8>
8863 // CHECK: shufflevector <4 x i8> %{{.*}}, <4 x i8> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7>
8864 return _mm256_cvtepi64_epi8(__A
);
8867 __m128i
test_mm256_mask_cvtepi64_epi8(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8868 // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi8
8869 // CHECK: @llvm.x86.avx512.mask.pmov.qb.256
8870 return _mm256_mask_cvtepi64_epi8(__O
, __M
, __A
);
8873 __m128i
test_mm256_maskz_cvtepi64_epi8(__mmask8 __M
, __m256i __A
) {
8874 // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi8
8875 // CHECK: @llvm.x86.avx512.mask.pmov.qb.256
8876 return _mm256_maskz_cvtepi64_epi8(__M
, __A
);
8879 void test_mm256_mask_cvtepi64_storeu_epi8(void * __P
, __mmask8 __M
, __m256i __A
) {
8880 // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi8
8881 // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.256
8882 return _mm256_mask_cvtepi64_storeu_epi8(__P
, __M
, __A
);
8885 __m128i
test_mm_cvtepi64_epi32(__m128i __A
) {
8886 // CHECK-LABEL: @test_mm_cvtepi64_epi32
8887 // CHECK: trunc <2 x i64> %{{.*}} to <2 x i32>
8888 // CHECK: shufflevector <2 x i32> %{{.*}}, <2 x i32> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8889 return _mm_cvtepi64_epi32(__A
);
8892 __m128i
test_mm_mask_cvtepi64_epi32(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8893 // CHECK-LABEL: @test_mm_mask_cvtepi64_epi32
8894 // CHECK: @llvm.x86.avx512.mask.pmov.qd.128
8895 return _mm_mask_cvtepi64_epi32(__O
, __M
, __A
);
8898 __m128i
test_mm_maskz_cvtepi64_epi32(__mmask8 __M
, __m128i __A
) {
8899 // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi32
8900 // CHECK: @llvm.x86.avx512.mask.pmov.qd.128
8901 return _mm_maskz_cvtepi64_epi32(__M
, __A
);
8904 void test_mm_mask_cvtepi64_storeu_epi32(void * __P
, __mmask8 __M
, __m128i __A
) {
8905 // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi32
8906 // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.128
8907 return _mm_mask_cvtepi64_storeu_epi32(__P
, __M
, __A
);
8910 __m128i
test_mm256_cvtepi64_epi32(__m256i __A
) {
8911 // CHECK-LABEL: @test_mm256_cvtepi64_epi32
8912 // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
8913 return _mm256_cvtepi64_epi32(__A
);
8916 __m128i
test_mm256_mask_cvtepi64_epi32(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8917 // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi32
8918 // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
8919 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8920 return _mm256_mask_cvtepi64_epi32(__O
, __M
, __A
);
8923 __m128i
test_mm256_maskz_cvtepi64_epi32(__mmask8 __M
, __m256i __A
) {
8924 // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi32
8925 // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
8926 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8927 return _mm256_maskz_cvtepi64_epi32(__M
, __A
);
8930 void test_mm256_mask_cvtepi64_storeu_epi32(void * __P
, __mmask8 __M
, __m256i __A
) {
8931 // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi32
8932 // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.256
8933 return _mm256_mask_cvtepi64_storeu_epi32(__P
, __M
, __A
);
8936 __m128i
test_mm_cvtepi64_epi16(__m128i __A
) {
8937 // CHECK-LABEL: @test_mm_cvtepi64_epi16
8938 // CHECK: trunc <2 x i64> %{{.*}} to <2 x i16>
8939 // CHECK: shufflevector <2 x i16> %{{.*}}, <2 x i16> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3>
8940 return _mm_cvtepi64_epi16(__A
);
8943 __m128i
test_mm_mask_cvtepi64_epi16(__m128i __O
, __mmask8 __M
, __m128i __A
) {
8944 // CHECK-LABEL: @test_mm_mask_cvtepi64_epi16
8945 // CHECK: @llvm.x86.avx512.mask.pmov.qw.128
8946 return _mm_mask_cvtepi64_epi16(__O
, __M
, __A
);
8949 __m128i
test_mm_maskz_cvtepi64_epi16(__mmask8 __M
, __m128i __A
) {
8950 // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi16
8951 // CHECK: @llvm.x86.avx512.mask.pmov.qw.128
8952 return _mm_maskz_cvtepi64_epi16(__M
, __A
);
8955 void test_mm_mask_cvtepi64_storeu_epi16(void * __P
, __mmask8 __M
, __m128i __A
) {
8956 // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi16
8957 // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.128
8958 return _mm_mask_cvtepi64_storeu_epi16(__P
, __M
, __A
);
8961 __m128i
test_mm256_cvtepi64_epi16(__m256i __A
) {
8962 // CHECK-LABEL: @test_mm256_cvtepi64_epi16
8963 // CHECK: trunc <4 x i64> %{{.*}} to <4 x i16>
8964 // CHECK: shufflevector <4 x i16> %{{.*}}, <4 x i16> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
8965 return _mm256_cvtepi64_epi16(__A
);
8968 __m128i
test_mm256_mask_cvtepi64_epi16(__m128i __O
, __mmask8 __M
, __m256i __A
) {
8969 // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi16
8970 // CHECK: @llvm.x86.avx512.mask.pmov.qw.256
8971 return _mm256_mask_cvtepi64_epi16(__O
, __M
, __A
);
8974 __m128i
test_mm256_maskz_cvtepi64_epi16(__mmask8 __M
, __m256i __A
) {
8975 // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi16
8976 // CHECK: @llvm.x86.avx512.mask.pmov.qw.256
8977 return _mm256_maskz_cvtepi64_epi16(__M
, __A
);
8980 void test_mm256_mask_cvtepi64_storeu_epi16(void * __P
, __mmask8 __M
, __m256i __A
) {
8981 // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi16
8982 // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.256
8983 return _mm256_mask_cvtepi64_storeu_epi16(__P
, __M
, __A
);
8986 __m128
test_mm256_extractf32x4_ps(__m256 __A
) {
8987 // CHECK-LABEL: @test_mm256_extractf32x4_ps
8988 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> poison, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
8989 return _mm256_extractf32x4_ps(__A
, 1);
8992 __m128
test_mm256_mask_extractf32x4_ps(__m128 __W
, __mmask8 __U
, __m256 __A
) {
8993 // CHECK-LABEL: @test_mm256_mask_extractf32x4_ps
8994 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> poison, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
8995 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8996 return _mm256_mask_extractf32x4_ps(__W
, __U
, __A
, 1);
8999 __m128
test_mm256_maskz_extractf32x4_ps(__mmask8 __U
, __m256 __A
) {
9000 // CHECK-LABEL: @test_mm256_maskz_extractf32x4_ps
9001 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> poison, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9002 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9003 return _mm256_maskz_extractf32x4_ps(__U
, __A
, 1);
9006 __m128i
test_mm256_extracti32x4_epi32(__m256i __A
) {
9007 // CHECK-LABEL: @test_mm256_extracti32x4_epi32
9008 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> poison, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9009 return _mm256_extracti32x4_epi32(__A
, 1);
9012 __m128i
test_mm256_mask_extracti32x4_epi32(__m128i __W
, __mmask8 __U
, __m256i __A
) {
9013 // CHECK-LABEL: @test_mm256_mask_extracti32x4_epi32
9014 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> poison, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9015 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9016 return _mm256_mask_extracti32x4_epi32(__W
, __U
, __A
, 1);
9019 __m128i
test_mm256_maskz_extracti32x4_epi32(__mmask8 __U
, __m256i __A
) {
9020 // CHECK-LABEL: @test_mm256_maskz_extracti32x4_epi32
9021 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> poison, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9022 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9023 return _mm256_maskz_extracti32x4_epi32(__U
, __A
, 1);
9026 __m256
test_mm256_insertf32x4(__m256 __A
, __m128 __B
) {
9027 // CHECK-LABEL: @test_mm256_insertf32x4
9028 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
9029 return _mm256_insertf32x4(__A
, __B
, 1);
9032 __m256
test_mm256_mask_insertf32x4(__m256 __W
, __mmask8 __U
, __m256 __A
, __m128 __B
) {
9033 // CHECK-LABEL: @test_mm256_mask_insertf32x4
9034 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
9035 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9036 return _mm256_mask_insertf32x4(__W
, __U
, __A
, __B
, 1);
9039 __m256
test_mm256_maskz_insertf32x4(__mmask8 __U
, __m256 __A
, __m128 __B
) {
9040 // CHECK-LABEL: @test_mm256_maskz_insertf32x4
9041 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
9042 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9043 return _mm256_maskz_insertf32x4(__U
, __A
, __B
, 1);
9046 __m256i
test_mm256_inserti32x4(__m256i __A
, __m128i __B
) {
9047 // CHECK-LABEL: @test_mm256_inserti32x4
9048 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
9049 return _mm256_inserti32x4(__A
, __B
, 1);
9052 __m256i
test_mm256_mask_inserti32x4(__m256i __W
, __mmask8 __U
, __m256i __A
, __m128i __B
) {
9053 // CHECK-LABEL: @test_mm256_mask_inserti32x4
9054 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
9055 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9056 return _mm256_mask_inserti32x4(__W
, __U
, __A
, __B
, 1);
9059 __m256i
test_mm256_maskz_inserti32x4(__mmask8 __U
, __m256i __A
, __m128i __B
) {
9060 // CHECK-LABEL: @test_mm256_maskz_inserti32x4
9061 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
9062 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9063 return _mm256_maskz_inserti32x4(__U
, __A
, __B
, 1);
9066 __m128d
test_mm_getmant_pd(__m128d __A
) {
9067 // CHECK-LABEL: @test_mm_getmant_pd
9068 // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9069 return _mm_getmant_pd(__A
,_MM_MANT_NORM_p5_2
, _MM_MANT_SIGN_nan
);
9072 __m128d
test_mm_mask_getmant_pd(__m128d __W
, __mmask8 __U
, __m128d __A
) {
9073 // CHECK-LABEL: @test_mm_mask_getmant_pd
9074 // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9075 return _mm_mask_getmant_pd(__W
, __U
, __A
,_MM_MANT_NORM_p5_2
, _MM_MANT_SIGN_nan
);
9078 __m128d
test_mm_maskz_getmant_pd(__mmask8 __U
, __m128d __A
) {
9079 // CHECK-LABEL: @test_mm_maskz_getmant_pd
9080 // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9081 return _mm_maskz_getmant_pd(__U
, __A
,_MM_MANT_NORM_p5_2
, _MM_MANT_SIGN_nan
);
9084 __m256d
test_mm256_getmant_pd(__m256d __A
) {
9085 // CHECK-LABEL: @test_mm256_getmant_pd
9086 // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9087 return _mm256_getmant_pd(__A
,_MM_MANT_NORM_p5_2
, _MM_MANT_SIGN_nan
);
9090 __m256d
test_mm256_mask_getmant_pd(__m256d __W
, __mmask8 __U
, __m256d __A
) {
9091 // CHECK-LABEL: @test_mm256_mask_getmant_pd
9092 // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9093 return _mm256_mask_getmant_pd(__W
, __U
, __A
,_MM_MANT_NORM_p5_2
, _MM_MANT_SIGN_nan
);
9096 __m256d
test_mm256_maskz_getmant_pd(__mmask8 __U
, __m256d __A
) {
9097 // CHECK-LABEL: @test_mm256_maskz_getmant_pd
9098 // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9099 return _mm256_maskz_getmant_pd(__U
, __A
,_MM_MANT_NORM_p5_2
, _MM_MANT_SIGN_nan
);
9102 __m128
test_mm_getmant_ps(__m128 __A
) {
9103 // CHECK-LABEL: @test_mm_getmant_ps
9104 // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9105 return _mm_getmant_ps(__A
,_MM_MANT_NORM_p5_2
, _MM_MANT_SIGN_nan
);
9108 __m128
test_mm_mask_getmant_ps(__m128 __W
, __mmask8 __U
, __m128 __A
) {
9109 // CHECK-LABEL: @test_mm_mask_getmant_ps
9110 // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9111 return _mm_mask_getmant_ps(__W
, __U
, __A
,_MM_MANT_NORM_p5_2
, _MM_MANT_SIGN_nan
);
9114 __m128
test_mm_maskz_getmant_ps(__mmask8 __U
, __m128 __A
) {
9115 // CHECK-LABEL: @test_mm_maskz_getmant_ps
9116 // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9117 return _mm_maskz_getmant_ps(__U
, __A
,_MM_MANT_NORM_p5_2
, _MM_MANT_SIGN_nan
);
9120 __m256
test_mm256_getmant_ps(__m256 __A
) {
9121 // CHECK-LABEL: @test_mm256_getmant_ps
9122 // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9123 return _mm256_getmant_ps(__A
,_MM_MANT_NORM_p5_2
, _MM_MANT_SIGN_nan
);
9126 __m256
test_mm256_mask_getmant_ps(__m256 __W
, __mmask8 __U
, __m256 __A
) {
9127 // CHECK-LABEL: @test_mm256_mask_getmant_ps
9128 // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9129 return _mm256_mask_getmant_ps(__W
, __U
, __A
,_MM_MANT_NORM_p5_2
, _MM_MANT_SIGN_nan
);
9132 __m256
test_mm256_maskz_getmant_ps(__mmask8 __U
, __m256 __A
) {
9133 // CHECK-LABEL: @test_mm256_maskz_getmant_ps
9134 // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9135 return _mm256_maskz_getmant_ps(__U
, __A
,_MM_MANT_NORM_p5_2
, _MM_MANT_SIGN_nan
);
9138 __m128d
test_mm_mmask_i64gather_pd(__m128d __v1_old
, __mmask8 __mask
, __m128i __index
, void const *__addr
) {
9139 // CHECK-LABEL: @test_mm_mmask_i64gather_pd
9140 // CHECK: @llvm.x86.avx512.mask.gather3div2.df
9141 return _mm_mmask_i64gather_pd(__v1_old
, __mask
, __index
, __addr
, 2);
9144 __m128i
test_mm_mmask_i64gather_epi64(__m128i __v1_old
, __mmask8 __mask
, __m128i __index
, void const *__addr
) {
9145 // CHECK-LABEL: @test_mm_mmask_i64gather_epi64
9146 // CHECK: @llvm.x86.avx512.mask.gather3div2.di
9147 return _mm_mmask_i64gather_epi64(__v1_old
, __mask
, __index
, __addr
, 2);
9150 __m256d
test_mm256_mmask_i64gather_pd(__m256d __v1_old
, __mmask8 __mask
, __m256i __index
, void const *__addr
) {
9151 // CHECK-LABEL: @test_mm256_mmask_i64gather_pd
9152 // CHECK: @llvm.x86.avx512.mask.gather3div4.df
9153 return _mm256_mmask_i64gather_pd(__v1_old
, __mask
, __index
, __addr
, 2);
9156 __m256i
test_mm256_mmask_i64gather_epi64(__m256i __v1_old
, __mmask8 __mask
, __m256i __index
, void const *__addr
) {
9157 // CHECK-LABEL: @test_mm256_mmask_i64gather_epi64
9158 // CHECK: @llvm.x86.avx512.mask.gather3div4.di
9159 return _mm256_mmask_i64gather_epi64(__v1_old
, __mask
, __index
, __addr
, 2);
9162 __m128
test_mm_mmask_i64gather_ps(__m128 __v1_old
, __mmask8 __mask
, __m128i __index
, void const *__addr
) {
9163 // CHECK-LABEL: @test_mm_mmask_i64gather_ps
9164 // CHECK: @llvm.x86.avx512.mask.gather3div4.sf
9165 return _mm_mmask_i64gather_ps(__v1_old
, __mask
, __index
, __addr
, 2);
9168 __m128i
test_mm_mmask_i64gather_epi32(__m128i __v1_old
, __mmask8 __mask
, __m128i __index
, void const *__addr
) {
9169 // CHECK-LABEL: @test_mm_mmask_i64gather_epi32
9170 // CHECK: @llvm.x86.avx512.mask.gather3div4.si
9171 return _mm_mmask_i64gather_epi32(__v1_old
, __mask
, __index
, __addr
, 2);
9174 __m128
test_mm256_mmask_i64gather_ps(__m128 __v1_old
, __mmask8 __mask
, __m256i __index
, void const *__addr
) {
9175 // CHECK-LABEL: @test_mm256_mmask_i64gather_ps
9176 // CHECK: @llvm.x86.avx512.mask.gather3div8.sf
9177 return _mm256_mmask_i64gather_ps(__v1_old
, __mask
, __index
, __addr
, 2);
9180 __m128i
test_mm256_mmask_i64gather_epi32(__m128i __v1_old
, __mmask8 __mask
, __m256i __index
, void const *__addr
) {
9181 // CHECK-LABEL: @test_mm256_mmask_i64gather_epi32
9182 // CHECK: @llvm.x86.avx512.mask.gather3div8.si
9183 return _mm256_mmask_i64gather_epi32(__v1_old
, __mask
, __index
, __addr
, 2);
9186 __m128d
test_mm_mask_i32gather_pd(__m128d __v1_old
, __mmask8 __mask
, __m128i __index
, void const *__addr
) {
9187 // CHECK-LABEL: @test_mm_mask_i32gather_pd
9188 // CHECK: @llvm.x86.avx512.mask.gather3siv2.df
9189 return _mm_mmask_i32gather_pd(__v1_old
, __mask
, __index
, __addr
, 2);
9192 __m128i
test_mm_mask_i32gather_epi64(__m128i __v1_old
, __mmask8 __mask
, __m128i __index
, void const *__addr
) {
9193 // CHECK-LABEL: @test_mm_mask_i32gather_epi64
9194 // CHECK: @llvm.x86.avx512.mask.gather3siv2.di
9195 return _mm_mmask_i32gather_epi64(__v1_old
, __mask
, __index
, __addr
, 2);
9198 __m256d
test_mm256_mask_i32gather_pd(__m256d __v1_old
, __mmask8 __mask
, __m128i __index
, void const *__addr
) {
9199 // CHECK-LABEL: @test_mm256_mask_i32gather_pd
9200 // CHECK: @llvm.x86.avx512.mask.gather3siv4.df
9201 return _mm256_mmask_i32gather_pd(__v1_old
, __mask
, __index
, __addr
, 2);
9204 __m256i
test_mm256_mask_i32gather_epi64(__m256i __v1_old
, __mmask8 __mask
, __m128i __index
, void const *__addr
) {
9205 // CHECK-LABEL: @test_mm256_mask_i32gather_epi64
9206 // CHECK: @llvm.x86.avx512.mask.gather3siv4.di
9207 return _mm256_mmask_i32gather_epi64(__v1_old
, __mask
, __index
, __addr
, 2);
9210 __m128
test_mm_mask_i32gather_ps(__m128 __v1_old
, __mmask8 __mask
, __m128i __index
, void const *__addr
) {
9211 // CHECK-LABEL: @test_mm_mask_i32gather_ps
9212 // CHECK: @llvm.x86.avx512.mask.gather3siv4.sf
9213 return _mm_mmask_i32gather_ps(__v1_old
, __mask
, __index
, __addr
, 2);
9216 __m128i
test_mm_mask_i32gather_epi32(__m128i __v1_old
, __mmask8 __mask
, __m128i __index
, void const *__addr
) {
9217 // CHECK-LABEL: @test_mm_mask_i32gather_epi32
9218 // CHECK: @llvm.x86.avx512.mask.gather3siv4.si
9219 return _mm_mmask_i32gather_epi32(__v1_old
, __mask
, __index
, __addr
, 2);
9222 __m256
test_mm256_mask_i32gather_ps(__m256 __v1_old
, __mmask8 __mask
, __m256i __index
, void const *__addr
) {
9223 // CHECK-LABEL: @test_mm256_mask_i32gather_ps
9224 // CHECK: @llvm.x86.avx512.mask.gather3siv8.sf
9225 return _mm256_mmask_i32gather_ps(__v1_old
, __mask
, __index
, __addr
, 2);
9228 __m256i
test_mm256_mask_i32gather_epi32(__m256i __v1_old
, __mmask8 __mask
, __m256i __index
, void const *__addr
) {
9229 // CHECK-LABEL: @test_mm256_mask_i32gather_epi32
9230 // CHECK: @llvm.x86.avx512.mask.gather3siv8.si
9231 return _mm256_mmask_i32gather_epi32(__v1_old
, __mask
, __index
, __addr
, 2);
9234 __m256d
test_mm256_permutex_pd(__m256d __X
) {
9235 // CHECK-LABEL: @test_mm256_permutex_pd
9236 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> poison, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9237 return _mm256_permutex_pd(__X
, 3);
9240 __m256d
test_mm256_mask_permutex_pd(__m256d __W
, __mmask8 __U
, __m256d __X
) {
9241 // CHECK-LABEL: @test_mm256_mask_permutex_pd
9242 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> poison, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9243 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9244 return _mm256_mask_permutex_pd(__W
, __U
, __X
, 1);
9247 __m256d
test_mm256_maskz_permutex_pd(__mmask8 __U
, __m256d __X
) {
9248 // CHECK-LABEL: @test_mm256_maskz_permutex_pd
9249 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> poison, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9250 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9251 return _mm256_maskz_permutex_pd(__U
, __X
, 1);
9254 __m256i
test_mm256_permutex_epi64(__m256i __X
) {
9255 // CHECK-LABEL: @test_mm256_permutex_epi64
9256 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> poison, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9257 return _mm256_permutex_epi64(__X
, 3);
9260 __m256i
test_mm256_mask_permutex_epi64(__m256i __W
, __mmask8 __M
, __m256i __X
) {
9261 // CHECK-LABEL: @test_mm256_mask_permutex_epi64
9262 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> poison, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9263 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9264 return _mm256_mask_permutex_epi64(__W
, __M
, __X
, 3);
9267 __m256i
test_mm256_maskz_permutex_epi64(__mmask8 __M
, __m256i __X
) {
9268 // CHECK-LABEL: @test_mm256_maskz_permutex_epi64
9269 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> poison, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9270 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9271 return _mm256_maskz_permutex_epi64(__M
, __X
, 3);
9274 __m256d
test_mm256_permutexvar_pd(__m256i __X
, __m256d __Y
) {
9275 // CHECK-LABEL: @test_mm256_permutexvar_pd
9276 // CHECK: @llvm.x86.avx512.permvar.df.256
9277 return _mm256_permutexvar_pd(__X
, __Y
);
9280 __m256d
test_mm256_mask_permutexvar_pd(__m256d __W
, __mmask8 __U
, __m256i __X
, __m256d __Y
) {
9281 // CHECK-LABEL: @test_mm256_mask_permutexvar_pd
9282 // CHECK: @llvm.x86.avx512.permvar.df.256
9283 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9284 return _mm256_mask_permutexvar_pd(__W
, __U
, __X
, __Y
);
9287 __m256d
test_mm256_maskz_permutexvar_pd(__mmask8 __U
, __m256i __X
, __m256d __Y
) {
9288 // CHECK-LABEL: @test_mm256_maskz_permutexvar_pd
9289 // CHECK: @llvm.x86.avx512.permvar.df.256
9290 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9291 return _mm256_maskz_permutexvar_pd(__U
, __X
, __Y
);
9294 __m256i
test_mm256_maskz_permutexvar_epi64(__mmask8 __M
, __m256i __X
, __m256i __Y
) {
9295 // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi64
9296 // CHECK: @llvm.x86.avx512.permvar.di.256
9297 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9298 return _mm256_maskz_permutexvar_epi64(__M
, __X
, __Y
);
9301 __m256i
test_mm256_mask_permutexvar_epi64(__m256i __W
, __mmask8 __M
, __m256i __X
, __m256i __Y
) {
9302 // CHECK-LABEL: @test_mm256_mask_permutexvar_epi64
9303 // CHECK: @llvm.x86.avx512.permvar.di.256
9304 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9305 return _mm256_mask_permutexvar_epi64(__W
, __M
, __X
, __Y
);
9308 __m256
test_mm256_mask_permutexvar_ps(__m256 __W
, __mmask8 __U
, __m256i __X
, __m256 __Y
) {
9309 // CHECK-LABEL: @test_mm256_mask_permutexvar_ps
9310 // CHECK: @llvm.x86.avx2.permps
9311 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9312 return _mm256_mask_permutexvar_ps(__W
, __U
, __X
, __Y
);
9315 __m256
test_mm256_maskz_permutexvar_ps(__mmask8 __U
, __m256i __X
, __m256 __Y
) {
9316 // CHECK-LABEL: @test_mm256_maskz_permutexvar_ps
9317 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9318 return _mm256_maskz_permutexvar_ps(__U
, __X
, __Y
);
9321 __m256
test_mm256_permutexvar_ps(__m256i __X
, __m256 __Y
) {
9322 // CHECK-LABEL: @test_mm256_permutexvar_ps
9323 // CHECK: @llvm.x86.avx2.permps
9324 return _mm256_permutexvar_ps( __X
, __Y
);
9327 __m256i
test_mm256_maskz_permutexvar_epi32(__mmask8 __M
, __m256i __X
, __m256i __Y
) {
9328 // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi32
9329 // CHECK: @llvm.x86.avx2.permd
9330 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9331 return _mm256_maskz_permutexvar_epi32(__M
, __X
, __Y
);
9334 __m256i
test_mm256_permutexvar_epi32(__m256i __X
, __m256i __Y
) {
9335 // CHECK-LABEL: @test_mm256_permutexvar_epi32
9336 // CHECK: @llvm.x86.avx2.permd
9337 return _mm256_permutexvar_epi32(__X
, __Y
);
9340 __m256i
test_mm256_mask_permutexvar_epi32(__m256i __W
, __mmask8 __M
, __m256i __X
, __m256i __Y
) {
9341 // CHECK-LABEL: @test_mm256_mask_permutexvar_epi32
9342 // CHECK: @llvm.x86.avx2.permd
9343 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9344 return _mm256_mask_permutexvar_epi32(__W
, __M
, __X
, __Y
);
9347 __m128i
test_mm_alignr_epi32(__m128i __A
, __m128i __B
) {
9348 // CHECK-LABEL: @test_mm_alignr_epi32
9349 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9350 return _mm_alignr_epi32(__A
, __B
, 1);
9353 __m128i
test_mm_mask_alignr_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
9354 // CHECK-LABEL: @test_mm_mask_alignr_epi32
9355 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9356 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9357 return _mm_mask_alignr_epi32(__W
, __U
, __A
, __B
, 5);
9360 __m128i
test_mm_maskz_alignr_epi32(__mmask8 __U
, __m128i __A
, __m128i __B
) {
9361 // CHECK-LABEL: @test_mm_maskz_alignr_epi32
9362 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9363 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9364 return _mm_maskz_alignr_epi32(__U
, __A
, __B
, 1);
9367 __m256i
test_mm256_alignr_epi32(__m256i __A
, __m256i __B
) {
9368 // CHECK-LABEL: @test_mm256_alignr_epi32
9369 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8>
9370 return _mm256_alignr_epi32(__A
, __B
, 1);
9373 __m256i
test_mm256_mask_alignr_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
9374 // CHECK-LABEL: @test_mm256_mask_alignr_epi32
9375 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8>
9376 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9377 return _mm256_mask_alignr_epi32(__W
, __U
, __A
, __B
, 9);
9380 __m256i
test_mm256_maskz_alignr_epi32(__mmask8 __U
, __m256i __A
, __m256i __B
) {
9381 // CHECK-LABEL: @test_mm256_maskz_alignr_epi32
9382 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8>
9383 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9384 return _mm256_maskz_alignr_epi32(__U
, __A
, __B
, 1);
9387 __m128i
test_mm_alignr_epi64(__m128i __A
, __m128i __B
) {
9388 // CHECK-LABEL: @test_mm_alignr_epi64
9389 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9390 return _mm_alignr_epi64(__A
, __B
, 1);
9393 __m128i
test_mm_mask_alignr_epi64(__m128i __W
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
9394 // CHECK-LABEL: @test_mm_mask_alignr_epi64
9395 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9396 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
9397 return _mm_mask_alignr_epi64(__W
, __U
, __A
, __B
, 3);
9400 __m128i
test_mm_maskz_alignr_epi64(__mmask8 __U
, __m128i __A
, __m128i __B
) {
9401 // CHECK-LABEL: @test_mm_maskz_alignr_epi64
9402 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9403 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
9404 return _mm_maskz_alignr_epi64(__U
, __A
, __B
, 1);
9407 __m256i
test_mm256_alignr_epi64(__m256i __A
, __m256i __B
) {
9408 // CHECK-LABEL: @test_mm256_alignr_epi64
9409 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9410 return _mm256_alignr_epi64(__A
, __B
, 1);
9413 __m256i
test_mm256_mask_alignr_epi64(__m256i __W
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
9414 // CHECK-LABEL: @test_mm256_mask_alignr_epi64
9415 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9416 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9417 return _mm256_mask_alignr_epi64(__W
, __U
, __A
, __B
, 5);
9420 __m256i
test_mm256_maskz_alignr_epi64(__mmask8 __U
, __m256i __A
, __m256i __B
) {
9421 // CHECK-LABEL: @test_mm256_maskz_alignr_epi64
9422 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9423 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9424 return _mm256_maskz_alignr_epi64(__U
, __A
, __B
, 1);
9427 __m128
test_mm_mask_movehdup_ps(__m128 __W
, __mmask8 __U
, __m128 __A
) {
9428 // CHECK-LABEL: @test_mm_mask_movehdup_ps
9429 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
9430 // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9431 return _mm_mask_movehdup_ps(__W
, __U
, __A
);
9434 __m128
test_mm_maskz_movehdup_ps(__mmask8 __U
, __m128 __A
) {
9435 // CHECK-LABEL: @test_mm_maskz_movehdup_ps
9436 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
9437 // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9438 return _mm_maskz_movehdup_ps(__U
, __A
);
9441 __m256
test_mm256_mask_movehdup_ps(__m256 __W
, __mmask8 __U
, __m256 __A
) {
9442 // CHECK-LABEL: @test_mm256_mask_movehdup_ps
9443 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7>
9444 // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9445 return _mm256_mask_movehdup_ps(__W
, __U
, __A
);
9448 __m256
test_mm256_maskz_movehdup_ps(__mmask8 __U
, __m256 __A
) {
9449 // CHECK-LABEL: @test_mm256_maskz_movehdup_ps
9450 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7>
9451 // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9452 return _mm256_maskz_movehdup_ps(__U
, __A
);
9455 __m128
test_mm_mask_moveldup_ps(__m128 __W
, __mmask8 __U
, __m128 __A
) {
9456 // CHECK-LABEL: @test_mm_mask_moveldup_ps
9457 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
9458 // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9459 return _mm_mask_moveldup_ps(__W
, __U
, __A
);
9462 __m128
test_mm_maskz_moveldup_ps(__mmask8 __U
, __m128 __A
) {
9463 // CHECK-LABEL: @test_mm_maskz_moveldup_ps
9464 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
9465 // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9466 return _mm_maskz_moveldup_ps(__U
, __A
);
9469 __m256
test_mm256_mask_moveldup_ps(__m256 __W
, __mmask8 __U
, __m256 __A
) {
9470 // CHECK-LABEL: @test_mm256_mask_moveldup_ps
9471 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
9472 // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9473 return _mm256_mask_moveldup_ps(__W
, __U
, __A
);
9476 __m256
test_mm256_maskz_moveldup_ps(__mmask8 __U
, __m256 __A
) {
9477 // CHECK-LABEL: @test_mm256_maskz_moveldup_ps
9478 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
9479 // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9480 return _mm256_maskz_moveldup_ps(__U
, __A
);
9483 __m128i
test_mm_mask_shuffle_epi32(__m128i __W
, __mmask8 __U
, __m128i __A
) {
9484 // CHECK-LABEL: @test_mm_mask_shuffle_epi32
9485 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> poison, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9486 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9487 return _mm_mask_shuffle_epi32(__W
, __U
, __A
, 1);
9490 __m128i
test_mm_maskz_shuffle_epi32(__mmask8 __U
, __m128i __A
) {
9491 // CHECK-LABEL: @test_mm_maskz_shuffle_epi32
9492 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> poison, <4 x i32> <i32 2, i32 0, i32 0, i32 0>
9493 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9494 return _mm_maskz_shuffle_epi32(__U
, __A
, 2);
9497 __m256i
test_mm256_mask_shuffle_epi32(__m256i __W
, __mmask8 __U
, __m256i __A
) {
9498 // CHECK-LABEL: @test_mm256_mask_shuffle_epi32
9499 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> poison, <8 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4>
9500 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9501 return _mm256_mask_shuffle_epi32(__W
, __U
, __A
, 2);
9504 __m256i
test_mm256_maskz_shuffle_epi32(__mmask8 __U
, __m256i __A
) {
9505 // CHECK-LABEL: @test_mm256_maskz_shuffle_epi32
9506 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> poison, <8 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4>
9507 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9508 return _mm256_maskz_shuffle_epi32(__U
, __A
, 2);
9511 __m128d
test_mm_mask_mov_pd(__m128d __W
, __mmask8 __U
, __m128d __A
) {
9512 // CHECK-LABEL: @test_mm_mask_mov_pd
9513 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
9514 return _mm_mask_mov_pd(__W
, __U
, __A
);
9517 __m128d
test_mm_maskz_mov_pd(__mmask8 __U
, __m128d __A
) {
9518 // CHECK-LABEL: @test_mm_maskz_mov_pd
9519 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
9520 return _mm_maskz_mov_pd(__U
, __A
);
9523 __m256d
test_mm256_mask_mov_pd(__m256d __W
, __mmask8 __U
, __m256d __A
) {
9524 // CHECK-LABEL: @test_mm256_mask_mov_pd
9525 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9526 return _mm256_mask_mov_pd(__W
, __U
, __A
);
9529 __m256d
test_mm256_maskz_mov_pd(__mmask8 __U
, __m256d __A
) {
9530 // CHECK-LABEL: @test_mm256_maskz_mov_pd
9531 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9532 return _mm256_maskz_mov_pd(__U
, __A
);
9535 __m128
test_mm_mask_mov_ps(__m128 __W
, __mmask8 __U
, __m128 __A
) {
9536 // CHECK-LABEL: @test_mm_mask_mov_ps
9537 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9538 return _mm_mask_mov_ps(__W
, __U
, __A
);
9541 __m128
test_mm_maskz_mov_ps(__mmask8 __U
, __m128 __A
) {
9542 // CHECK-LABEL: @test_mm_maskz_mov_ps
9543 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9544 return _mm_maskz_mov_ps(__U
, __A
);
9547 __m256
test_mm256_mask_mov_ps(__m256 __W
, __mmask8 __U
, __m256 __A
) {
9548 // CHECK-LABEL: @test_mm256_mask_mov_ps
9549 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9550 return _mm256_mask_mov_ps(__W
, __U
, __A
);
9553 __m256
test_mm256_maskz_mov_ps(__mmask8 __U
, __m256 __A
) {
9554 // CHECK-LABEL: @test_mm256_maskz_mov_ps
9555 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9556 return _mm256_maskz_mov_ps(__U
, __A
);
9559 __m128
test_mm_mask_cvtph_ps(__m128 __W
, __mmask8 __U
, __m128i __A
) {
9560 // CHECK-LABEL: @test_mm_mask_cvtph_ps
9561 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
9562 // CHECK: fpext <4 x half> %{{.*}} to <4 x float>
9563 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9564 return _mm_mask_cvtph_ps(__W
, __U
, __A
);
9567 __m128
test_mm_maskz_cvtph_ps(__mmask8 __U
, __m128i __A
) {
9568 // CHECK-LABEL: @test_mm_maskz_cvtph_ps
9569 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
9570 // CHECK: fpext <4 x half> %{{.*}} to <4 x float>
9571 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9572 return _mm_maskz_cvtph_ps(__U
, __A
);
9575 __m256
test_mm256_mask_cvtph_ps(__m256 __W
, __mmask8 __U
, __m128i __A
) {
9576 // CHECK-LABEL: @test_mm256_mask_cvtph_ps
9577 // CHECK: fpext <8 x half> %{{.*}} to <8 x float>
9578 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9579 return _mm256_mask_cvtph_ps(__W
, __U
, __A
);
9582 __m256
test_mm256_maskz_cvtph_ps(__mmask8 __U
, __m128i __A
) {
9583 // CHECK-LABEL: @test_mm256_maskz_cvtph_ps
9584 // CHECK: fpext <8 x half> %{{.*}} to <8 x float>
9585 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9586 return _mm256_maskz_cvtph_ps(__U
, __A
);
9589 __m128i
test_mm_mask_cvtps_ph(__m128i __W
, __mmask8 __U
, __m128 __A
) {
9590 // CHECK-LABEL: @test_mm_mask_cvtps_ph
9591 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9592 return _mm_mask_cvtps_ph(__W
, __U
, __A
, _MM_FROUND_TO_ZERO
| _MM_FROUND_NO_EXC
);
9595 __m128i
test_mm_maskz_cvtps_ph(__mmask8 __U
, __m128 __A
) {
9596 // CHECK-LABEL: @test_mm_maskz_cvtps_ph
9597 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9598 return _mm_maskz_cvtps_ph(__U
, __A
, _MM_FROUND_TO_ZERO
| _MM_FROUND_NO_EXC
);
9601 __m128i
test_mm256_mask_cvtps_ph(__m128i __W
, __mmask8 __U
, __m256 __A
) {
9602 // CHECK-LABEL: @test_mm256_mask_cvtps_ph
9603 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9604 return _mm256_mask_cvtps_ph(__W
, __U
, __A
, _MM_FROUND_TO_ZERO
| _MM_FROUND_NO_EXC
);
9607 __m128i
test_mm256_maskz_cvtps_ph(__mmask8 __U
, __m256 __A
) {
9608 // CHECK-LABEL: @test_mm256_maskz_cvtps_ph
9609 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9610 return _mm256_maskz_cvtps_ph(__U
, __A
, _MM_FROUND_TO_ZERO
| _MM_FROUND_NO_EXC
);
9613 __m128i
test_mm_mask_cvt_roundps_ph(__m128i __W
, __mmask8 __U
, __m128 __A
) {
9614 // CHECK-LABEL: @test_mm_mask_cvt_roundps_ph
9615 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9616 return _mm_mask_cvt_roundps_ph(__W
, __U
, __A
, _MM_FROUND_TO_ZERO
);
9619 __m128i
test_mm_maskz_cvt_roundps_ph(__mmask8 __U
, __m128 __A
) {
9620 // CHECK-LABEL: @test_mm_maskz_cvt_roundps_ph
9621 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9622 return _mm_maskz_cvt_roundps_ph(__U
, __A
, _MM_FROUND_TO_ZERO
);
9625 __m128i
test_mm256_mask_cvt_roundps_ph(__m128i __W
, __mmask8 __U
, __m256 __A
) {
9626 // CHECK-LABEL: @test_mm256_mask_cvt_roundps_ph
9627 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9628 return _mm256_mask_cvt_roundps_ph(__W
, __U
, __A
, _MM_FROUND_TO_ZERO
);
9631 __m128i
test_mm256_maskz_cvt_roundps_ph(__mmask8 __U
, __m256 __A
) {
9632 // CHECK-LABEL: @test_mm256_maskz_cvt_roundps_ph
9633 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9634 return _mm256_maskz_cvt_roundps_ph(__U
, __A
, _MM_FROUND_TO_ZERO
);
9637 __mmask8
test_mm_cmpeq_epi32_mask(__m128i __a
, __m128i __b
) {
9638 // CHECK-LABEL: @test_mm_cmpeq_epi32_mask
9639 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
9640 return (__mmask8
)_mm_cmpeq_epi32_mask(__a
, __b
);
9643 __mmask8
test_mm_mask_cmpeq_epi32_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
9644 // CHECK-LABEL: @test_mm_mask_cmpeq_epi32_mask
9645 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
9646 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9647 return (__mmask8
)_mm_mask_cmpeq_epi32_mask(__u
, __a
, __b
);
9650 __mmask8
test_mm_mask_cmpeq_epi64_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
9651 // CHECK-LABEL: @test_mm_mask_cmpeq_epi64_mask
9652 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
9653 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
9654 return (__mmask8
)_mm_mask_cmpeq_epi64_mask(__u
, __a
, __b
);
9657 __mmask8
test_mm_cmpeq_epi64_mask(__m128i __a
, __m128i __b
) {
9658 // CHECK-LABEL: @test_mm_cmpeq_epi64_mask
9659 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
9660 return (__mmask8
)_mm_cmpeq_epi64_mask(__a
, __b
);
9663 __mmask8
test_mm_cmpgt_epi32_mask(__m128i __a
, __m128i __b
) {
9664 // CHECK-LABEL: @test_mm_cmpgt_epi32_mask
9665 // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}}
9666 return (__mmask8
)_mm_cmpgt_epi32_mask(__a
, __b
);
9669 __mmask8
test_mm_mask_cmpgt_epi32_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
9670 // CHECK-LABEL: @test_mm_mask_cmpgt_epi32_mask
9671 // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}}
9672 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9673 return (__mmask8
)_mm_mask_cmpgt_epi32_mask(__u
, __a
, __b
);
9676 __mmask8
test_mm_mask_cmpgt_epi64_mask(__mmask8 __u
, __m128i __a
, __m128i __b
) {
9677 // CHECK-LABEL: @test_mm_mask_cmpgt_epi64_mask
9678 // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}}
9679 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
9680 return (__mmask8
)_mm_mask_cmpgt_epi64_mask(__u
, __a
, __b
);
9683 __mmask8
test_mm_cmpgt_epi64_mask(__m128i __a
, __m128i __b
) {
9684 // CHECK-LABEL: @test_mm_cmpgt_epi64_mask
9685 // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}}
9686 return (__mmask8
)_mm_cmpgt_epi64_mask(__a
, __b
);
9689 __mmask8
test_mm256_cmpeq_epi32_mask(__m256i __a
, __m256i __b
) {
9690 // CHECK-LABEL: @test_mm256_cmpeq_epi32_mask
9691 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
9692 return (__mmask8
)_mm256_cmpeq_epi32_mask(__a
, __b
);
9695 __mmask8
test_mm256_mask_cmpeq_epi32_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
9696 // CHECK-LABEL: @test_mm256_mask_cmpeq_epi32_mask
9697 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
9698 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
9699 return (__mmask8
)_mm256_mask_cmpeq_epi32_mask(__u
, __a
, __b
);
9702 __mmask8
test_mm256_mask_cmpeq_epi64_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
9703 // CHECK-LABEL: @test_mm256_mask_cmpeq_epi64_mask
9704 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
9705 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9706 return (__mmask8
)_mm256_mask_cmpeq_epi64_mask(__u
, __a
, __b
);
9709 __mmask8
test_mm256_cmpeq_epi64_mask(__m256i __a
, __m256i __b
) {
9710 // CHECK-LABEL: @test_mm256_cmpeq_epi64_mask
9711 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
9712 return (__mmask8
)_mm256_cmpeq_epi64_mask(__a
, __b
);
9715 __mmask8
test_mm256_cmpgt_epi32_mask(__m256i __a
, __m256i __b
) {
9716 // CHECK-LABEL: @test_mm256_cmpgt_epi32_mask
9717 // CHECK: icmp sgt <8 x i32> %{{.*}}, %{{.*}}
9718 return (__mmask8
)_mm256_cmpgt_epi32_mask(__a
, __b
);
9721 __mmask8
test_mm256_mask_cmpgt_epi32_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
9722 // CHECK-LABEL: @test_mm256_mask_cmpgt_epi32_mask
9723 // CHECK: icmp sgt <8 x i32> %{{.*}}, %{{.*}}
9724 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
9725 return (__mmask8
)_mm256_mask_cmpgt_epi32_mask(__u
, __a
, __b
);
9728 __mmask8
test_mm256_mask_cmpgt_epi64_mask(__mmask8 __u
, __m256i __a
, __m256i __b
) {
9729 // CHECK-LABEL: @test_mm256_mask_cmpgt_epi64_mask
9730 // CHECK: icmp sgt <4 x i64> %{{.*}}, %{{.*}}
9731 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9732 return (__mmask8
)_mm256_mask_cmpgt_epi64_mask(__u
, __a
, __b
);
9735 __mmask8
test_mm256_cmpgt_epi64_mask(__m256i __a
, __m256i __b
) {
9736 // CHECK-LABEL: @test_mm256_cmpgt_epi64_mask
9737 // CHECK: icmp sgt <4 x i64> %{{.*}}, %{{.*}}
9738 return (__mmask8
)_mm256_cmpgt_epi64_mask(__a
, __b
);