1 // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512f -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s
2 
3 
4 #include <immintrin.h>
5 
test_mm_cmpeq_epu32_mask(__m128i __a,__m128i __b)6 __mmask8 test_mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) {
7   // CHECK-LABEL: @test_mm_cmpeq_epu32_mask
8   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
9   // 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>
10   return (__mmask8)_mm_cmpeq_epu32_mask(__a, __b);
11 }
12 
test_mm_mask_cmpeq_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)13 __mmask8 test_mm_mask_cmpeq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
14   // CHECK-LABEL: @test_mm_mask_cmpeq_epu32_mask
15   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
16   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
17   return (__mmask8)_mm_mask_cmpeq_epu32_mask(__u, __a, __b);
18 }
19 
test_mm_cmpeq_epu64_mask(__m128i __a,__m128i __b)20 __mmask8 test_mm_cmpeq_epu64_mask(__m128i __a, __m128i __b) {
21   // CHECK-LABEL: @test_mm_cmpeq_epu64_mask
22   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
23   // 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>
24   return (__mmask8)_mm_cmpeq_epu64_mask(__a, __b);
25 }
26 
test_mm_mask_cmpeq_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)27 __mmask8 test_mm_mask_cmpeq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
28   // CHECK-LABEL: @test_mm_mask_cmpeq_epu64_mask
29   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
30   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
31   return (__mmask8)_mm_mask_cmpeq_epu64_mask(__u, __a, __b);
32 }
33 
test_mm_cmpge_epi32_mask(__m128i __a,__m128i __b)34 __mmask8 test_mm_cmpge_epi32_mask(__m128i __a, __m128i __b) {
35   // CHECK-LABEL: @test_mm_cmpge_epi32_mask
36   // CHECK: icmp sge <4 x i32> %{{.*}}, %{{.*}}
37   return (__mmask8)_mm_cmpge_epi32_mask(__a, __b);
38 }
39 
test_mm_mask_cmpge_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)40 __mmask8 test_mm_mask_cmpge_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
41   // CHECK-LABEL: @test_mm_mask_cmpge_epi32_mask
42   // CHECK: icmp sge <4 x i32> %{{.*}}, %{{.*}}
43   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
44   return (__mmask8)_mm_mask_cmpge_epi32_mask(__u, __a, __b);
45 }
46 
test_mm_cmpge_epi64_mask(__m128i __a,__m128i __b)47 __mmask8 test_mm_cmpge_epi64_mask(__m128i __a, __m128i __b) {
48   // CHECK-LABEL: @test_mm_cmpge_epi64_mask
49   // CHECK: icmp sge <2 x i64> %{{.*}}, %{{.*}}
50   return (__mmask8)_mm_cmpge_epi64_mask(__a, __b);
51 }
52 
test_mm_mask_cmpge_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)53 __mmask8 test_mm_mask_cmpge_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
54   // CHECK-LABEL: @test_mm_mask_cmpge_epi64_mask
55   // CHECK: icmp sge <2 x i64> %{{.*}}, %{{.*}}
56   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
57   return (__mmask8)_mm_mask_cmpge_epi64_mask(__u, __a, __b);
58 }
59 
test_mm256_cmpge_epi32_mask(__m256i __a,__m256i __b)60 __mmask8 test_mm256_cmpge_epi32_mask(__m256i __a, __m256i __b) {
61   // CHECK-LABEL: @test_mm256_cmpge_epi32_mask
62   // CHECK: icmp sge <8 x i32> %{{.*}}, %{{.*}}
63   return (__mmask8)_mm256_cmpge_epi32_mask(__a, __b);
64 }
65 
test_mm256_mask_cmpge_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)66 __mmask8 test_mm256_mask_cmpge_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
67   // CHECK-LABEL: @test_mm256_mask_cmpge_epi32_mask
68   // CHECK: icmp sge <8 x i32> %{{.*}}, %{{.*}}
69   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
70   return (__mmask8)_mm256_mask_cmpge_epi32_mask(__u, __a, __b);
71 }
72 
test_mm256_cmpge_epi64_mask(__m256i __a,__m256i __b)73 __mmask8 test_mm256_cmpge_epi64_mask(__m256i __a, __m256i __b) {
74   // CHECK-LABEL: @test_mm256_cmpge_epi64_mask
75   // CHECK: icmp sge <4 x i64> %{{.*}}, %{{.*}}
76   return (__mmask8)_mm256_cmpge_epi64_mask(__a, __b);
77 }
78 
test_mm256_mask_cmpge_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)79 __mmask8 test_mm256_mask_cmpge_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
80   // CHECK-LABEL: @test_mm256_mask_cmpge_epi64_mask
81   // CHECK: icmp sge <4 x i64> %{{.*}}, %{{.*}}
82   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
83   return (__mmask8)_mm256_mask_cmpge_epi64_mask(__u, __a, __b);
84 }
85 
test_mm_cmpge_epu32_mask(__m128i __a,__m128i __b)86 __mmask8 test_mm_cmpge_epu32_mask(__m128i __a, __m128i __b) {
87   // CHECK-LABEL: @test_mm_cmpge_epu32_mask
88   // CHECK: icmp uge <4 x i32> %{{.*}}, %{{.*}}
89   return (__mmask8)_mm_cmpge_epu32_mask(__a, __b);
90 }
91 
test_mm_mask_cmpge_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)92 __mmask8 test_mm_mask_cmpge_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
93   // CHECK-LABEL: @test_mm_mask_cmpge_epu32_mask
94   // CHECK: icmp uge <4 x i32> %{{.*}}, %{{.*}}
95   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
96   return (__mmask8)_mm_mask_cmpge_epu32_mask(__u, __a, __b);
97 }
98 
test_mm_cmpge_epu64_mask(__m128i __a,__m128i __b)99 __mmask8 test_mm_cmpge_epu64_mask(__m128i __a, __m128i __b) {
100   // CHECK-LABEL: @test_mm_cmpge_epu64_mask
101   // CHECK: icmp uge <2 x i64> %{{.*}}, %{{.*}}
102   return (__mmask8)_mm_cmpge_epu64_mask(__a, __b);
103 }
104 
test_mm_mask_cmpge_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)105 __mmask8 test_mm_mask_cmpge_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
106   // CHECK-LABEL: @test_mm_mask_cmpge_epu64_mask
107   // CHECK: icmp uge <2 x i64> %{{.*}}, %{{.*}}
108   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
109   return (__mmask8)_mm_mask_cmpge_epu64_mask(__u, __a, __b);
110 }
111 
test_mm256_cmpge_epu32_mask(__m256i __a,__m256i __b)112 __mmask8 test_mm256_cmpge_epu32_mask(__m256i __a, __m256i __b) {
113   // CHECK-LABEL: @test_mm256_cmpge_epu32_mask
114   // CHECK: icmp uge <8 x i32> %{{.*}}, %{{.*}}
115   return (__mmask8)_mm256_cmpge_epu32_mask(__a, __b);
116 }
117 
test_mm256_mask_cmpge_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)118 __mmask8 test_mm256_mask_cmpge_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
119   // CHECK-LABEL: @test_mm256_mask_cmpge_epu32_mask
120   // CHECK: icmp uge <8 x i32> %{{.*}}, %{{.*}}
121   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
122   return (__mmask8)_mm256_mask_cmpge_epu32_mask(__u, __a, __b);
123 }
124 
test_mm256_cmpge_epu64_mask(__m256i __a,__m256i __b)125 __mmask8 test_mm256_cmpge_epu64_mask(__m256i __a, __m256i __b) {
126   // CHECK-LABEL: @test_mm256_cmpge_epu64_mask
127   // CHECK: icmp uge <4 x i64> %{{.*}}, %{{.*}}
128   return (__mmask8)_mm256_cmpge_epu64_mask(__a, __b);
129 }
130 
test_mm256_mask_cmpge_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)131 __mmask8 test_mm256_mask_cmpge_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
132   // CHECK-LABEL: @test_mm256_mask_cmpge_epu64_mask
133   // CHECK: icmp uge <4 x i64> %{{.*}}, %{{.*}}
134   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
135   return (__mmask8)_mm256_mask_cmpge_epu64_mask(__u, __a, __b);
136 }
137 
test_mm_cmpgt_epu32_mask(__m128i __a,__m128i __b)138 __mmask8 test_mm_cmpgt_epu32_mask(__m128i __a, __m128i __b) {
139   // CHECK-LABEL: @test_mm_cmpgt_epu32_mask
140   // CHECK: icmp ugt <4 x i32> %{{.*}}, %{{.*}}
141   return (__mmask8)_mm_cmpgt_epu32_mask(__a, __b);
142 }
143 
test_mm_mask_cmpgt_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)144 __mmask8 test_mm_mask_cmpgt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
145   // CHECK-LABEL: @test_mm_mask_cmpgt_epu32_mask
146   // CHECK: icmp ugt <4 x i32> %{{.*}}, %{{.*}}
147   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
148   return (__mmask8)_mm_mask_cmpgt_epu32_mask(__u, __a, __b);
149 }
150 
test_mm_cmpgt_epu64_mask(__m128i __a,__m128i __b)151 __mmask8 test_mm_cmpgt_epu64_mask(__m128i __a, __m128i __b) {
152   // CHECK-LABEL: @test_mm_cmpgt_epu64_mask
153   // CHECK: icmp ugt <2 x i64> %{{.*}}, %{{.*}}
154   return (__mmask8)_mm_cmpgt_epu64_mask(__a, __b);
155 }
156 
test_mm_mask_cmpgt_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)157 __mmask8 test_mm_mask_cmpgt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
158   // CHECK-LABEL: @test_mm_mask_cmpgt_epu64_mask
159   // CHECK: icmp ugt <2 x i64> %{{.*}}, %{{.*}}
160   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
161   return (__mmask8)_mm_mask_cmpgt_epu64_mask(__u, __a, __b);
162 }
163 
test_mm256_cmpgt_epu32_mask(__m256i __a,__m256i __b)164 __mmask8 test_mm256_cmpgt_epu32_mask(__m256i __a, __m256i __b) {
165   // CHECK-LABEL: @test_mm256_cmpgt_epu32_mask
166   // CHECK: icmp ugt <8 x i32> %{{.*}}, %{{.*}}
167   return (__mmask8)_mm256_cmpgt_epu32_mask(__a, __b);
168 }
169 
test_mm256_mask_cmpgt_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)170 __mmask8 test_mm256_mask_cmpgt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
171   // CHECK-LABEL: @test_mm256_mask_cmpgt_epu32_mask
172   // CHECK: icmp ugt <8 x i32> %{{.*}}, %{{.*}}
173   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
174   return (__mmask8)_mm256_mask_cmpgt_epu32_mask(__u, __a, __b);
175 }
176 
test_mm256_cmpgt_epu64_mask(__m256i __a,__m256i __b)177 __mmask8 test_mm256_cmpgt_epu64_mask(__m256i __a, __m256i __b) {
178   // CHECK-LABEL: @test_mm256_cmpgt_epu64_mask
179   // CHECK: icmp ugt <4 x i64> %{{.*}}, %{{.*}}
180   return (__mmask8)_mm256_cmpgt_epu64_mask(__a, __b);
181 }
182 
test_mm256_mask_cmpgt_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)183 __mmask8 test_mm256_mask_cmpgt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
184   // CHECK-LABEL: @test_mm256_mask_cmpgt_epu64_mask
185   // CHECK: icmp ugt <4 x i64> %{{.*}}, %{{.*}}
186   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
187   return (__mmask8)_mm256_mask_cmpgt_epu64_mask(__u, __a, __b);
188 }
189 
test_mm_cmple_epi32_mask(__m128i __a,__m128i __b)190 __mmask8 test_mm_cmple_epi32_mask(__m128i __a, __m128i __b) {
191   // CHECK-LABEL: @test_mm_cmple_epi32_mask
192   // CHECK: icmp sle <4 x i32> %{{.*}}, %{{.*}}
193   return (__mmask8)_mm_cmple_epi32_mask(__a, __b);
194 }
195 
test_mm_mask_cmple_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)196 __mmask8 test_mm_mask_cmple_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
197   // CHECK-LABEL: @test_mm_mask_cmple_epi32_mask
198   // CHECK: icmp sle <4 x i32> %{{.*}}, %{{.*}}
199   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
200   return (__mmask8)_mm_mask_cmple_epi32_mask(__u, __a, __b);
201 }
202 
test_mm_cmple_epi64_mask(__m128i __a,__m128i __b)203 __mmask8 test_mm_cmple_epi64_mask(__m128i __a, __m128i __b) {
204   // CHECK-LABEL: @test_mm_cmple_epi64_mask
205   // CHECK: icmp sle <2 x i64> %{{.*}}, %{{.*}}
206   return (__mmask8)_mm_cmple_epi64_mask(__a, __b);
207 }
208 
test_mm_mask_cmple_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)209 __mmask8 test_mm_mask_cmple_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
210   // CHECK-LABEL: @test_mm_mask_cmple_epi64_mask
211   // CHECK: icmp sle <2 x i64> %{{.*}}, %{{.*}}
212   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
213   return (__mmask8)_mm_mask_cmple_epi64_mask(__u, __a, __b);
214 }
215 
test_mm256_cmple_epi32_mask(__m256i __a,__m256i __b)216 __mmask8 test_mm256_cmple_epi32_mask(__m256i __a, __m256i __b) {
217   // CHECK-LABEL: @test_mm256_cmple_epi32_mask
218   // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
219   return (__mmask8)_mm256_cmple_epi32_mask(__a, __b);
220 }
221 
test_mm256_mask_cmple_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)222 __mmask8 test_mm256_mask_cmple_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
223   // CHECK-LABEL: @test_mm256_mask_cmple_epi32_mask
224   // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
225   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
226   return (__mmask8)_mm256_mask_cmple_epi32_mask(__u, __a, __b);
227 }
228 
test_mm256_cmple_epi64_mask(__m256i __a,__m256i __b)229 __mmask8 test_mm256_cmple_epi64_mask(__m256i __a, __m256i __b) {
230   // CHECK-LABEL: @test_mm256_cmple_epi64_mask
231   // CHECK: icmp sle <4 x i64> %{{.*}}, %{{.*}}
232   return (__mmask8)_mm256_cmple_epi64_mask(__a, __b);
233 }
234 
test_mm256_mask_cmple_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)235 __mmask8 test_mm256_mask_cmple_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
236   // CHECK-LABEL: @test_mm256_mask_cmple_epi64_mask
237   // CHECK: icmp sle <4 x i64> %{{.*}}, %{{.*}}
238   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
239   return (__mmask8)_mm256_mask_cmple_epi64_mask(__u, __a, __b);
240 }
241 
test_mm_cmple_epu32_mask(__m128i __a,__m128i __b)242 __mmask8 test_mm_cmple_epu32_mask(__m128i __a, __m128i __b) {
243   // CHECK-LABEL: @test_mm_cmple_epu32_mask
244   // CHECK: icmp ule <4 x i32> %{{.*}}, %{{.*}}
245   return (__mmask8)_mm_cmple_epu32_mask(__a, __b);
246 }
247 
test_mm_mask_cmple_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)248 __mmask8 test_mm_mask_cmple_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
249   // CHECK-LABEL: @test_mm_mask_cmple_epu32_mask
250   // CHECK: icmp ule <4 x i32> %{{.*}}, %{{.*}}
251   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
252   return (__mmask8)_mm_mask_cmple_epu32_mask(__u, __a, __b);
253 }
254 
test_mm_cmple_epu64_mask(__m128i __a,__m128i __b)255 __mmask8 test_mm_cmple_epu64_mask(__m128i __a, __m128i __b) {
256   // CHECK-LABEL: @test_mm_cmple_epu64_mask
257   // CHECK: icmp ule <2 x i64> %{{.*}}, %{{.*}}
258   return (__mmask8)_mm_cmple_epu64_mask(__a, __b);
259 }
260 
test_mm_mask_cmple_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)261 __mmask8 test_mm_mask_cmple_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
262   // CHECK-LABEL: @test_mm_mask_cmple_epu64_mask
263   // CHECK: icmp ule <2 x i64> %{{.*}}, %{{.*}}
264   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
265   return (__mmask8)_mm_mask_cmple_epu64_mask(__u, __a, __b);
266 }
267 
test_mm256_cmple_epu32_mask(__m256i __a,__m256i __b)268 __mmask8 test_mm256_cmple_epu32_mask(__m256i __a, __m256i __b) {
269   // CHECK-LABEL: @test_mm256_cmple_epu32_mask
270   // CHECK: icmp ule <8 x i32> %{{.*}}, %{{.*}}
271   return (__mmask8)_mm256_cmple_epu32_mask(__a, __b);
272 }
273 
test_mm256_mask_cmple_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)274 __mmask8 test_mm256_mask_cmple_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
275   // CHECK-LABEL: @test_mm256_mask_cmple_epu32_mask
276   // CHECK: icmp ule <8 x i32> %{{.*}}, %{{.*}}
277   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
278   return (__mmask8)_mm256_mask_cmple_epu32_mask(__u, __a, __b);
279 }
280 
test_mm256_cmple_epu64_mask(__m256i __a,__m256i __b)281 __mmask8 test_mm256_cmple_epu64_mask(__m256i __a, __m256i __b) {
282   // CHECK-LABEL: @test_mm256_cmple_epu64_mask
283   // CHECK: icmp ule <4 x i64> %{{.*}}, %{{.*}}
284   return (__mmask8)_mm256_cmple_epu64_mask(__a, __b);
285 }
286 
test_mm256_mask_cmple_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)287 __mmask8 test_mm256_mask_cmple_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
288   // CHECK-LABEL: @test_mm256_mask_cmple_epu64_mask
289   // CHECK: icmp ule <4 x i64> %{{.*}}, %{{.*}}
290   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
291   return (__mmask8)_mm256_mask_cmple_epu64_mask(__u, __a, __b);
292 }
293 
test_mm_cmplt_epi32_mask(__m128i __a,__m128i __b)294 __mmask8 test_mm_cmplt_epi32_mask(__m128i __a, __m128i __b) {
295   // CHECK-LABEL: @test_mm_cmplt_epi32_mask
296   // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
297   return (__mmask8)_mm_cmplt_epi32_mask(__a, __b);
298 }
299 
test_mm_mask_cmplt_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)300 __mmask8 test_mm_mask_cmplt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
301   // CHECK-LABEL: @test_mm_mask_cmplt_epi32_mask
302   // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
303   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
304   return (__mmask8)_mm_mask_cmplt_epi32_mask(__u, __a, __b);
305 }
306 
test_mm_cmplt_epi64_mask(__m128i __a,__m128i __b)307 __mmask8 test_mm_cmplt_epi64_mask(__m128i __a, __m128i __b) {
308   // CHECK-LABEL: @test_mm_cmplt_epi64_mask
309   // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
310   return (__mmask8)_mm_cmplt_epi64_mask(__a, __b);
311 }
312 
test_mm_mask_cmplt_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)313 __mmask8 test_mm_mask_cmplt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
314   // CHECK-LABEL: @test_mm_mask_cmplt_epi64_mask
315   // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
316   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
317   return (__mmask8)_mm_mask_cmplt_epi64_mask(__u, __a, __b);
318 }
319 
test_mm256_cmplt_epi32_mask(__m256i __a,__m256i __b)320 __mmask8 test_mm256_cmplt_epi32_mask(__m256i __a, __m256i __b) {
321   // CHECK-LABEL: @test_mm256_cmplt_epi32_mask
322   // CHECK: icmp slt <8 x i32> %{{.*}}, %{{.*}}
323   return (__mmask8)_mm256_cmplt_epi32_mask(__a, __b);
324 }
325 
test_mm256_mask_cmplt_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)326 __mmask8 test_mm256_mask_cmplt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
327   // CHECK-LABEL: @test_mm256_mask_cmplt_epi32_mask
328   // CHECK: icmp slt <8 x i32> %{{.*}}, %{{.*}}
329   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
330   return (__mmask8)_mm256_mask_cmplt_epi32_mask(__u, __a, __b);
331 }
332 
test_mm256_cmplt_epi64_mask(__m256i __a,__m256i __b)333 __mmask8 test_mm256_cmplt_epi64_mask(__m256i __a, __m256i __b) {
334   // CHECK-LABEL: @test_mm256_cmplt_epi64_mask
335   // CHECK: icmp slt <4 x i64> %{{.*}}, %{{.*}}
336   return (__mmask8)_mm256_cmplt_epi64_mask(__a, __b);
337 }
338 
test_mm256_mask_cmplt_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)339 __mmask8 test_mm256_mask_cmplt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
340   // CHECK-LABEL: @test_mm256_mask_cmplt_epi64_mask
341   // CHECK: icmp slt <4 x i64> %{{.*}}, %{{.*}}
342   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
343   return (__mmask8)_mm256_mask_cmplt_epi64_mask(__u, __a, __b);
344 }
345 
test_mm_cmplt_epu32_mask(__m128i __a,__m128i __b)346 __mmask8 test_mm_cmplt_epu32_mask(__m128i __a, __m128i __b) {
347   // CHECK-LABEL: @test_mm_cmplt_epu32_mask
348   // CHECK: icmp ult <4 x i32> %{{.*}}, %{{.*}}
349   return (__mmask8)_mm_cmplt_epu32_mask(__a, __b);
350 }
351 
test_mm_mask_cmplt_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)352 __mmask8 test_mm_mask_cmplt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
353   // CHECK-LABEL: @test_mm_mask_cmplt_epu32_mask
354   // CHECK: icmp ult <4 x i32> %{{.*}}, %{{.*}}
355   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
356   return (__mmask8)_mm_mask_cmplt_epu32_mask(__u, __a, __b);
357 }
358 
test_mm_cmplt_epu64_mask(__m128i __a,__m128i __b)359 __mmask8 test_mm_cmplt_epu64_mask(__m128i __a, __m128i __b) {
360   // CHECK-LABEL: @test_mm_cmplt_epu64_mask
361   // CHECK: icmp ult <2 x i64> %{{.*}}, %{{.*}}
362   return (__mmask8)_mm_cmplt_epu64_mask(__a, __b);
363 }
364 
test_mm_mask_cmplt_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)365 __mmask8 test_mm_mask_cmplt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
366   // CHECK-LABEL: @test_mm_mask_cmplt_epu64_mask
367   // CHECK: icmp ult <2 x i64> %{{.*}}, %{{.*}}
368   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
369   return (__mmask8)_mm_mask_cmplt_epu64_mask(__u, __a, __b);
370 }
371 
test_mm256_cmplt_epu32_mask(__m256i __a,__m256i __b)372 __mmask8 test_mm256_cmplt_epu32_mask(__m256i __a, __m256i __b) {
373   // CHECK-LABEL: @test_mm256_cmplt_epu32_mask
374   // CHECK: icmp ult <8 x i32> %{{.*}}, %{{.*}}
375   return (__mmask8)_mm256_cmplt_epu32_mask(__a, __b);
376 }
377 
test_mm256_mask_cmplt_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)378 __mmask8 test_mm256_mask_cmplt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
379   // CHECK-LABEL: @test_mm256_mask_cmplt_epu32_mask
380   // CHECK: icmp ult <8 x i32> %{{.*}}, %{{.*}}
381   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
382   return (__mmask8)_mm256_mask_cmplt_epu32_mask(__u, __a, __b);
383 }
384 
test_mm256_cmplt_epu64_mask(__m256i __a,__m256i __b)385 __mmask8 test_mm256_cmplt_epu64_mask(__m256i __a, __m256i __b) {
386   // CHECK-LABEL: @test_mm256_cmplt_epu64_mask
387   // CHECK: icmp ult <4 x i64> %{{.*}}, %{{.*}}
388   return (__mmask8)_mm256_cmplt_epu64_mask(__a, __b);
389 }
390 
test_mm256_mask_cmplt_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)391 __mmask8 test_mm256_mask_cmplt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
392   // CHECK-LABEL: @test_mm256_mask_cmplt_epu64_mask
393   // CHECK: icmp ult <4 x i64> %{{.*}}, %{{.*}}
394   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
395   return (__mmask8)_mm256_mask_cmplt_epu64_mask(__u, __a, __b);
396 }
397 
test_mm_cmpneq_epi32_mask(__m128i __a,__m128i __b)398 __mmask8 test_mm_cmpneq_epi32_mask(__m128i __a, __m128i __b) {
399   // CHECK-LABEL: @test_mm_cmpneq_epi32_mask
400   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
401   return (__mmask8)_mm_cmpneq_epi32_mask(__a, __b);
402 }
403 
test_mm_mask_cmpneq_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)404 __mmask8 test_mm_mask_cmpneq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
405   // CHECK-LABEL: @test_mm_mask_cmpneq_epi32_mask
406   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
407   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
408   return (__mmask8)_mm_mask_cmpneq_epi32_mask(__u, __a, __b);
409 }
410 
test_mm_cmpneq_epi64_mask(__m128i __a,__m128i __b)411 __mmask8 test_mm_cmpneq_epi64_mask(__m128i __a, __m128i __b) {
412   // CHECK-LABEL: @test_mm_cmpneq_epi64_mask
413   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
414   return (__mmask8)_mm_cmpneq_epi64_mask(__a, __b);
415 }
416 
test_mm_mask_cmpneq_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)417 __mmask8 test_mm_mask_cmpneq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
418   // CHECK-LABEL: @test_mm_mask_cmpneq_epi64_mask
419   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
420   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
421   return (__mmask8)_mm_mask_cmpneq_epi64_mask(__u, __a, __b);
422 }
423 
test_mm256_cmpneq_epi32_mask(__m256i __a,__m256i __b)424 __mmask8 test_mm256_cmpneq_epi32_mask(__m256i __a, __m256i __b) {
425   // CHECK-LABEL: @test_mm256_cmpneq_epi32_mask
426   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
427   return (__mmask8)_mm256_cmpneq_epi32_mask(__a, __b);
428 }
429 
test_mm256_mask_cmpneq_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)430 __mmask8 test_mm256_mask_cmpneq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
431   // CHECK-LABEL: @test_mm256_mask_cmpneq_epi32_mask
432   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
433   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
434   return (__mmask8)_mm256_mask_cmpneq_epi32_mask(__u, __a, __b);
435 }
436 
test_mm256_cmpneq_epi64_mask(__m256i __a,__m256i __b)437 __mmask8 test_mm256_cmpneq_epi64_mask(__m256i __a, __m256i __b) {
438   // CHECK-LABEL: @test_mm256_cmpneq_epi64_mask
439   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
440   return (__mmask8)_mm256_cmpneq_epi64_mask(__a, __b);
441 }
442 
test_mm256_mask_cmpneq_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)443 __mmask8 test_mm256_mask_cmpneq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
444   // CHECK-LABEL: @test_mm256_mask_cmpneq_epi64_mask
445   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
446   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
447   return (__mmask8)_mm256_mask_cmpneq_epi64_mask(__u, __a, __b);
448 }
449 
test_mm_cmpneq_epu32_mask(__m128i __a,__m128i __b)450 __mmask8 test_mm_cmpneq_epu32_mask(__m128i __a, __m128i __b) {
451   // CHECK-LABEL: @test_mm_cmpneq_epu32_mask
452   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
453   return (__mmask8)_mm_cmpneq_epu32_mask(__a, __b);
454 }
455 
test_mm_mask_cmpneq_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)456 __mmask8 test_mm_mask_cmpneq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
457   // CHECK-LABEL: @test_mm_mask_cmpneq_epu32_mask
458   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
459   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
460   return (__mmask8)_mm_mask_cmpneq_epu32_mask(__u, __a, __b);
461 }
462 
test_mm_cmpneq_epu64_mask(__m128i __a,__m128i __b)463 __mmask8 test_mm_cmpneq_epu64_mask(__m128i __a, __m128i __b) {
464   // CHECK-LABEL: @test_mm_cmpneq_epu64_mask
465   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
466   return (__mmask8)_mm_cmpneq_epu64_mask(__a, __b);
467 }
468 
test_mm_mask_cmpneq_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)469 __mmask8 test_mm_mask_cmpneq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
470   // CHECK-LABEL: @test_mm_mask_cmpneq_epu64_mask
471   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
472   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
473   return (__mmask8)_mm_mask_cmpneq_epu64_mask(__u, __a, __b);
474 }
475 
test_mm256_cmpneq_epu32_mask(__m256i __a,__m256i __b)476 __mmask8 test_mm256_cmpneq_epu32_mask(__m256i __a, __m256i __b) {
477   // CHECK-LABEL: @test_mm256_cmpneq_epu32_mask
478   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
479   return (__mmask8)_mm256_cmpneq_epu32_mask(__a, __b);
480 }
481 
test_mm256_mask_cmpneq_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)482 __mmask8 test_mm256_mask_cmpneq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
483   // CHECK-LABEL: @test_mm256_mask_cmpneq_epu32_mask
484   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
485   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
486   return (__mmask8)_mm256_mask_cmpneq_epu32_mask(__u, __a, __b);
487 }
488 
test_mm256_cmpneq_epu64_mask(__m256i __a,__m256i __b)489 __mmask8 test_mm256_cmpneq_epu64_mask(__m256i __a, __m256i __b) {
490   // CHECK-LABEL: @test_mm256_cmpneq_epu64_mask
491   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
492   return (__mmask8)_mm256_cmpneq_epu64_mask(__a, __b);
493 }
494 
test_mm256_mask_cmpneq_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)495 __mmask8 test_mm256_mask_cmpneq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
496   // CHECK-LABEL: @test_mm256_mask_cmpneq_epu64_mask
497   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
498   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
499   return (__mmask8)_mm256_mask_cmpneq_epu64_mask(__u, __a, __b);
500 }
501 
test_mm_cmp_eq_epi32_mask(__m128i __a,__m128i __b)502 __mmask8 test_mm_cmp_eq_epi32_mask(__m128i __a, __m128i __b) {
503   // CHECK-LABEL: @test_mm_cmp_eq_epi32_mask
504   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
505   return (__mmask8)_mm_cmp_epi32_mask(__a, __b, _MM_CMPINT_EQ);
506 }
507 
test_mm_mask_cmp_lt_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)508 __mmask8 test_mm_mask_cmp_lt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
509   // CHECK-LABEL: @test_mm_mask_cmp_lt_epi32_mask
510   // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
511   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
512   return (__mmask8)_mm_mask_cmp_epi32_mask(__u, __a, __b, _MM_CMPINT_LT);
513 }
514 
test_mm_cmp_lt_epi64_mask(__m128i __a,__m128i __b)515 __mmask8 test_mm_cmp_lt_epi64_mask(__m128i __a, __m128i __b) {
516   // CHECK-LABEL: @test_mm_cmp_lt_epi64_mask
517   // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
518   return (__mmask8)_mm_cmp_epi64_mask(__a, __b, _MM_CMPINT_LT);
519 }
520 
test_mm_mask_cmp_eq_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)521 __mmask8 test_mm_mask_cmp_eq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
522   // CHECK-LABEL: @test_mm_mask_cmp_eq_epi64_mask
523   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
524   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
525   return (__mmask8)_mm_mask_cmp_epi64_mask(__u, __a, __b, _MM_CMPINT_EQ);
526 }
527 
test_mm256_cmp_eq_epi32_mask(__m256i __a,__m256i __b)528 __mmask8 test_mm256_cmp_eq_epi32_mask(__m256i __a, __m256i __b) {
529   // CHECK-LABEL: @test_mm256_cmp_eq_epi32_mask
530   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
531   return (__mmask8)_mm256_cmp_epi32_mask(__a, __b, _MM_CMPINT_EQ);
532 }
533 
test_mm256_mask_cmp_le_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)534 __mmask8 test_mm256_mask_cmp_le_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
535   // CHECK-LABEL: @test_mm256_mask_cmp_le_epi32_mask
536   // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
537   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
538   return (__mmask8)_mm256_mask_cmp_epi32_mask(__u, __a, __b, _MM_CMPINT_LE);
539 }
540 
test_mm256_cmp_eq_epi64_mask(__m256i __a,__m256i __b)541 __mmask8 test_mm256_cmp_eq_epi64_mask(__m256i __a, __m256i __b) {
542   // CHECK-LABEL: @test_mm256_cmp_eq_epi64_mask
543   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
544   return (__mmask8)_mm256_cmp_epi64_mask(__a, __b, _MM_CMPINT_EQ);
545 }
546 
test_mm256_mask_cmp_eq_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)547 __mmask8 test_mm256_mask_cmp_eq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
548   // CHECK-LABEL: @test_mm256_mask_cmp_eq_epi64_mask
549   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
550   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
551   return (__mmask8)_mm256_mask_cmp_epi64_mask(__u, __a, __b, _MM_CMPINT_EQ);
552 }
553 
test_mm_cmp_epu32_mask(__m128i __a,__m128i __b)554 __mmask8 test_mm_cmp_epu32_mask(__m128i __a, __m128i __b) {
555   // CHECK-LABEL: @test_mm_cmp_epu32_mask
556   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
557   return (__mmask8)_mm_cmp_epu32_mask(__a, __b, 0);
558 }
559 
test_mm_mask_cmp_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)560 __mmask8 test_mm_mask_cmp_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
561   // CHECK-LABEL: @test_mm_mask_cmp_epu32_mask
562   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
563   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
564   return (__mmask8)_mm_mask_cmp_epu32_mask(__u, __a, __b, 0);
565 }
566 
test_mm_cmp_epu64_mask(__m128i __a,__m128i __b)567 __mmask8 test_mm_cmp_epu64_mask(__m128i __a, __m128i __b) {
568   // CHECK-LABEL: @test_mm_cmp_epu64_mask
569   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
570   return (__mmask8)_mm_cmp_epu64_mask(__a, __b, 0);
571 }
572 
test_mm_mask_cmp_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)573 __mmask8 test_mm_mask_cmp_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
574   // CHECK-LABEL: @test_mm_mask_cmp_epu64_mask
575   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
576   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
577   return (__mmask8)_mm_mask_cmp_epu64_mask(__u, __a, __b, 0);
578 }
579 
test_mm256_cmp_epu32_mask(__m256i __a,__m256i __b)580 __mmask8 test_mm256_cmp_epu32_mask(__m256i __a, __m256i __b) {
581   // CHECK-LABEL: @test_mm256_cmp_epu32_mask
582   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
583   return (__mmask8)_mm256_cmp_epu32_mask(__a, __b, 0);
584 }
585 
test_mm256_mask_cmp_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)586 __mmask8 test_mm256_mask_cmp_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
587   // CHECK-LABEL: @test_mm256_mask_cmp_epu32_mask
588   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
589   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
590   return (__mmask8)_mm256_mask_cmp_epu32_mask(__u, __a, __b, 0);
591 }
592 
test_mm256_cmp_epu64_mask(__m256i __a,__m256i __b)593 __mmask8 test_mm256_cmp_epu64_mask(__m256i __a, __m256i __b) {
594   // CHECK-LABEL: @test_mm256_cmp_epu64_mask
595   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
596   return (__mmask8)_mm256_cmp_epu64_mask(__a, __b, 0);
597 }
598 
test_mm256_mask_cmp_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)599 __mmask8 test_mm256_mask_cmp_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
600   // CHECK-LABEL: @test_mm256_mask_cmp_epu64_mask
601   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
602   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
603   return (__mmask8)_mm256_mask_cmp_epu64_mask(__u, __a, __b, 0);
604 }
605 
test_mm256_mask_add_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)606 __m256i test_mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
607            __m256i __B) {
608   //CHECK-LABEL: @test_mm256_mask_add_epi32
609   //CHECK: add <8 x i32> %{{.*}}, %{{.*}}
610   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
611   return _mm256_mask_add_epi32(__W, __U, __A, __B);
612 }
613 
test_mm256_maskz_add_epi32(__mmask8 __U,__m256i __A,__m256i __B)614 __m256i test_mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
615   //CHECK-LABEL: @test_mm256_maskz_add_epi32
616   //CHECK: add <8 x i32> %{{.*}}, %{{.*}}
617   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
618   return _mm256_maskz_add_epi32(__U, __A, __B);
619 }
620 
test_mm256_mask_add_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)621 __m256i test_mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
622            __m256i __B) {
623   //CHECK-LABEL: @test_mm256_mask_add_epi64
624   //CHECK: add <4 x i64> %{{.*}}, %{{.*}}
625   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
626   return _mm256_mask_add_epi64(__W,__U,__A,__B);
627 }
628 
test_mm256_maskz_add_epi64(__mmask8 __U,__m256i __A,__m256i __B)629 __m256i test_mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
630   //CHECK-LABEL: @test_mm256_maskz_add_epi64
631   //CHECK: add <4 x i64> %{{.*}}, %{{.*}}
632   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
633   return _mm256_maskz_add_epi64 (__U,__A,__B);
634 }
635 
test_mm256_mask_sub_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)636 __m256i test_mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
637            __m256i __B) {
638   //CHECK-LABEL: @test_mm256_mask_sub_epi32
639   //CHECK: sub <8 x i32> %{{.*}}, %{{.*}}
640   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
641   return _mm256_mask_sub_epi32 (__W,__U,__A,__B);
642 }
643 
test_mm256_maskz_sub_epi32(__mmask8 __U,__m256i __A,__m256i __B)644 __m256i test_mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
645   //CHECK-LABEL: @test_mm256_maskz_sub_epi32
646   //CHECK: sub <8 x i32> %{{.*}}, %{{.*}}
647   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
648   return _mm256_maskz_sub_epi32 (__U,__A,__B);
649 }
650 
test_mm256_mask_sub_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)651 __m256i test_mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
652            __m256i __B) {
653   //CHECK-LABEL: @test_mm256_mask_sub_epi64
654   //CHECK: sub <4 x i64> %{{.*}}, %{{.*}}
655   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
656   return _mm256_mask_sub_epi64 (__W,__U,__A,__B);
657 }
658 
test_mm256_maskz_sub_epi64(__mmask8 __U,__m256i __A,__m256i __B)659 __m256i test_mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
660   //CHECK-LABEL: @test_mm256_maskz_sub_epi64
661   //CHECK: sub <4 x i64> %{{.*}}, %{{.*}}
662   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
663   return _mm256_maskz_sub_epi64 (__U,__A,__B);
664 }
665 
test_mm_mask_add_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)666 __m128i test_mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
667         __m128i __B) {
668   //CHECK-LABEL: @test_mm_mask_add_epi32
669   //CHECK: add <4 x i32> %{{.*}}, %{{.*}}
670   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
671   return _mm_mask_add_epi32(__W,__U,__A,__B);
672 }
673 
674 
test_mm_maskz_add_epi32(__mmask8 __U,__m128i __A,__m128i __B)675 __m128i test_mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
676   //CHECK-LABEL: @test_mm_maskz_add_epi32
677   //CHECK: add <4 x i32> %{{.*}}, %{{.*}}
678   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
679   return _mm_maskz_add_epi32 (__U,__A,__B);
680 }
681 
test_mm_mask_add_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)682 __m128i test_mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
683         __m128i __B) {
684   //CHECK-LABEL: @test_mm_mask_add_epi64
685   //CHECK: add <2 x i64> %{{.*}}, %{{.*}}
686   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
687   return _mm_mask_add_epi64 (__W,__U,__A,__B);
688 }
689 
test_mm_maskz_add_epi64(__mmask8 __U,__m128i __A,__m128i __B)690 __m128i test_mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
691   //CHECK-LABEL: @test_mm_maskz_add_epi64
692   //CHECK: add <2 x i64> %{{.*}}, %{{.*}}
693   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
694   return _mm_maskz_add_epi64 (__U,__A,__B);
695 }
696 
test_mm_mask_sub_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)697 __m128i test_mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
698         __m128i __B) {
699   //CHECK-LABEL: @test_mm_mask_sub_epi32
700   //CHECK: sub <4 x i32> %{{.*}}, %{{.*}}
701   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
702   return _mm_mask_sub_epi32(__W, __U, __A, __B);
703 }
704 
test_mm_maskz_sub_epi32(__mmask8 __U,__m128i __A,__m128i __B)705 __m128i test_mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
706   //CHECK-LABEL: @test_mm_maskz_sub_epi32
707   //CHECK: sub <4 x i32> %{{.*}}, %{{.*}}
708   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
709   return _mm_maskz_sub_epi32(__U, __A, __B);
710 }
711 
test_mm_mask_sub_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)712 __m128i test_mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
713         __m128i __B) {
714   //CHECK-LABEL: @test_mm_mask_sub_epi64
715   //CHECK: sub <2 x i64> %{{.*}}, %{{.*}}
716   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
717   return _mm_mask_sub_epi64 (__W, __U, __A, __B);
718 }
719 
test_mm_maskz_sub_epi64(__mmask8 __U,__m128i __A,__m128i __B)720 __m128i test_mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
721   //CHECK-LABEL: @test_mm_maskz_sub_epi64
722   //CHECK: sub <2 x i64> %{{.*}}, %{{.*}}
723   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
724   return _mm_maskz_sub_epi64 (__U, __A, __B);
725 }
726 
test_mm256_mask_mul_epi32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)727 __m256i test_mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
728            __m256i __Y) {
729   //CHECK-LABEL: @test_mm256_mask_mul_epi32
730   //CHECK: shl <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
731   //CHECK: ashr <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
732   //CHECK: shl <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
733   //CHECK: ashr <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
734   //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
735   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
736   return _mm256_mask_mul_epi32(__W, __M, __X, __Y);
737 }
738 
test_mm256_maskz_mul_epi32(__mmask8 __M,__m256i __X,__m256i __Y)739 __m256i test_mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y) {
740   //CHECK-LABEL: @test_mm256_maskz_mul_epi32
741   //CHECK: shl <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
742   //CHECK: ashr <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
743   //CHECK: shl <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
744   //CHECK: ashr <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
745   //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
746   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
747   return _mm256_maskz_mul_epi32(__M, __X, __Y);
748 }
749 
750 
test_mm_mask_mul_epi32(__m128i __W,__mmask8 __M,__m128i __X,__m128i __Y)751 __m128i test_mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X,
752         __m128i __Y) {
753   //CHECK-LABEL: @test_mm_mask_mul_epi32
754   //CHECK: shl <2 x i64> %{{.*}}, <i64 32, i64 32>
755   //CHECK: ashr <2 x i64> %{{.*}}, <i64 32, i64 32>
756   //CHECK: shl <2 x i64> %{{.*}}, <i64 32, i64 32>
757   //CHECK: ashr <2 x i64> %{{.*}}, <i64 32, i64 32>
758   //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
759   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
760   return _mm_mask_mul_epi32(__W, __M, __X, __Y);
761 }
762 
test_mm_maskz_mul_epi32(__mmask8 __M,__m128i __X,__m128i __Y)763 __m128i test_mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y) {
764   //CHECK-LABEL: @test_mm_maskz_mul_epi32
765   //CHECK: shl <2 x i64> %{{.*}}, <i64 32, i64 32>
766   //CHECK: ashr <2 x i64> %{{.*}}, <i64 32, i64 32>
767   //CHECK: shl <2 x i64> %{{.*}}, <i64 32, i64 32>
768   //CHECK: ashr <2 x i64> %{{.*}}, <i64 32, i64 32>
769   //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
770   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
771   return _mm_maskz_mul_epi32(__M, __X, __Y);
772 }
773 
test_mm256_mask_mul_epu32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)774 __m256i test_mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X,
775            __m256i __Y) {
776   //CHECK-LABEL: @test_mm256_mask_mul_epu32
777   //CHECK: and <4 x i64> %{{.*}}, <i64 4294967295, i64 4294967295, i64 4294967295, i64 4294967295>
778   //CHECK: and <4 x i64> %{{.*}}, <i64 4294967295, i64 4294967295, i64 4294967295, i64 4294967295>
779   //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
780   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
781   return _mm256_mask_mul_epu32(__W, __M, __X, __Y);
782 }
783 
test_mm256_maskz_mul_epu32(__mmask8 __M,__m256i __X,__m256i __Y)784 __m256i test_mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y) {
785   //CHECK-LABEL: @test_mm256_maskz_mul_epu32
786   //CHECK: and <4 x i64> %{{.*}}, <i64 4294967295, i64 4294967295, i64 4294967295, i64 4294967295>
787   //CHECK: and <4 x i64> %{{.*}}, <i64 4294967295, i64 4294967295, i64 4294967295, i64 4294967295>
788   //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
789   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
790   return _mm256_maskz_mul_epu32(__M, __X, __Y);
791 }
792 
test_mm_mask_mul_epu32(__m128i __W,__mmask8 __M,__m128i __X,__m128i __Y)793 __m128i test_mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X,
794         __m128i __Y) {
795   //CHECK-LABEL: @test_mm_mask_mul_epu32
796   //CHECK: and <2 x i64> %{{.*}}, <i64 4294967295, i64 4294967295>
797   //CHECK: and <2 x i64> %{{.*}}, <i64 4294967295, i64 4294967295>
798   //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
799   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
800   return _mm_mask_mul_epu32(__W, __M, __X, __Y);
801 }
802 
test_mm_maskz_mul_epu32(__mmask8 __M,__m128i __X,__m128i __Y)803 __m128i test_mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y) {
804   //CHECK-LABEL: @test_mm_maskz_mul_epu32
805   //CHECK: and <2 x i64> %{{.*}}, <i64 4294967295, i64 4294967295>
806   //CHECK: and <2 x i64> %{{.*}}, <i64 4294967295, i64 4294967295>
807   //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
808   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
809   return _mm_maskz_mul_epu32(__M, __X, __Y);
810 }
811 
test_mm_maskz_mullo_epi32(__mmask8 __M,__m128i __A,__m128i __B)812 __m128i test_mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
813   //CHECK-LABEL: @test_mm_maskz_mullo_epi32
814   //CHECK: mul <4 x i32> %{{.*}}, %{{.*}}
815   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
816   return _mm_maskz_mullo_epi32(__M, __A, __B);
817 }
818 
test_mm_mask_mullo_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)819 __m128i test_mm_mask_mullo_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
820           __m128i __B) {
821   //CHECK-LABEL: @test_mm_mask_mullo_epi32
822   //CHECK: mul <4 x i32> %{{.*}}, %{{.*}}
823   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
824   return _mm_mask_mullo_epi32(__W, __M, __A, __B);
825 }
826 
test_mm256_maskz_mullo_epi32(__mmask8 __M,__m256i __A,__m256i __B)827 __m256i test_mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
828   //CHECK-LABEL: @test_mm256_maskz_mullo_epi32
829   //CHECK: mul <8 x i32> %{{.*}}, %{{.*}}
830   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
831   return _mm256_maskz_mullo_epi32(__M, __A, __B);
832 }
833 
test_mm256_mask_mullo_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)834 __m256i test_mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
835        __m256i __B) {
836   //CHECK-LABEL: @test_mm256_mask_mullo_epi32
837   //CHECK: mul <8 x i32> %{{.*}}, %{{.*}}
838   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
839   return _mm256_mask_mullo_epi32(__W, __M, __A, __B);
840 }
841 
test_mm256_and_epi32(__m256i __A,__m256i __B)842 __m256i test_mm256_and_epi32 (__m256i __A, __m256i __B) {
843   //CHECK-LABEL: @test_mm256_and_epi32
844   //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
845   return _mm256_and_epi32(__A, __B);
846 }
847 
test_mm256_mask_and_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)848 __m256i test_mm256_mask_and_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
849   //CHECK-LABEL: @test_mm256_mask_and_epi32
850   //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
851   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
852   return _mm256_mask_and_epi32(__W, __U, __A, __B);
853 }
854 
test_mm256_maskz_and_epi32(__mmask8 __U,__m256i __A,__m256i __B)855 __m256i test_mm256_maskz_and_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
856   //CHECK-LABEL: @test_mm256_maskz_and_epi32
857   //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
858   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
859   return _mm256_maskz_and_epi32(__U, __A, __B);
860 }
861 
test_mm_and_epi32(__m128i __A,__m128i __B)862 __m128i test_mm_and_epi32 (__m128i __A, __m128i __B) {
863   //CHECK-LABEL: @test_mm_and_epi32
864   //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
865   return _mm_and_epi32(__A, __B);
866 }
867 
test_mm_mask_and_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)868 __m128i test_mm_mask_and_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
869   //CHECK-LABEL: @test_mm_mask_and_epi32
870   //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
871   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
872   return _mm_mask_and_epi32(__W, __U, __A, __B);
873 }
874 
test_mm_maskz_and_epi32(__mmask8 __U,__m128i __A,__m128i __B)875 __m128i test_mm_maskz_and_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
876   //CHECK-LABEL: @test_mm_maskz_and_epi32
877   //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
878   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
879   return _mm_maskz_and_epi32(__U, __A, __B);
880 }
881 
test_mm256_andnot_epi32(__m256i __A,__m256i __B)882 __m256i test_mm256_andnot_epi32 (__m256i __A, __m256i __B) {
883   //CHECK-LABEL: @test_mm256_andnot_epi32
884   //CHECK: xor <8 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
885   //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
886   return _mm256_andnot_epi32(__A, __B);
887 }
888 
test_mm256_mask_andnot_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)889 __m256i test_mm256_mask_andnot_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
890   //CHECK-LABEL: @test_mm256_mask_andnot_epi32
891   //CHECK: xor <8 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
892   //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
893   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
894   return _mm256_mask_andnot_epi32(__W, __U, __A, __B);
895 }
896 
test_mm256_maskz_andnot_epi32(__mmask8 __U,__m256i __A,__m256i __B)897 __m256i test_mm256_maskz_andnot_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
898   //CHECK-LABEL: @test_mm256_maskz_andnot_epi32
899   //CHECK: xor <8 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
900   //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
901   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
902   return _mm256_maskz_andnot_epi32(__U, __A, __B);
903 }
904 
test_mm_andnot_epi32(__m128i __A,__m128i __B)905 __m128i test_mm_andnot_epi32 (__m128i __A, __m128i __B) {
906   //CHECK-LABEL: @test_mm_andnot_epi32
907   //CHECK: xor <4 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1>
908   //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
909   return _mm_andnot_epi32(__A, __B);
910 }
911 
test_mm_mask_andnot_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)912 __m128i test_mm_mask_andnot_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
913   //CHECK-LABEL: @test_mm_mask_andnot_epi32
914   //CHECK: xor <4 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1>
915   //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
916   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
917   return _mm_mask_andnot_epi32(__W, __U, __A, __B);
918 }
919 
test_mm_maskz_andnot_epi32(__mmask8 __U,__m128i __A,__m128i __B)920 __m128i test_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
921   //CHECK-LABEL: @test_mm_maskz_andnot_epi32
922   //CHECK: xor <4 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1>
923   //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
924   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
925   return _mm_maskz_andnot_epi32(__U, __A, __B);
926 }
927 
test_mm256_or_epi32(__m256i __A,__m256i __B)928 __m256i test_mm256_or_epi32 (__m256i __A, __m256i __B) {
929   //CHECK-LABEL: @test_mm256_or_epi32
930   //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
931   return _mm256_or_epi32(__A, __B);
932 }
933 
test_mm256_mask_or_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)934 __m256i test_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
935   //CHECK-LABEL: @test_mm256_mask_or_epi32
936   //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
937   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
938   return _mm256_mask_or_epi32(__W, __U, __A, __B);
939 }
940 
test_mm256_maskz_or_epi32(__mmask8 __U,__m256i __A,__m256i __B)941  __m256i test_mm256_maskz_or_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
942   //CHECK-LABEL: @test_mm256_maskz_or_epi32
943   //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
944   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
945   return _mm256_maskz_or_epi32(__U, __A, __B);
946 }
947 
test_mm_or_epi32(__m128i __A,__m128i __B)948 __m128i test_mm_or_epi32 (__m128i __A, __m128i __B) {
949   //CHECK-LABEL: @test_mm_or_epi32
950   //CHECK: or <4 x i32> %{{.*}}, %{{.*}}
951   return _mm_or_epi32(__A, __B);
952 }
953 
test_mm_mask_or_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)954 __m128i test_mm_mask_or_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
955   //CHECK-LABEL: @test_mm_mask_or_epi32
956   //CHECK: or <4 x i32> %{{.*}}, %{{.*}}
957   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
958   return _mm_mask_or_epi32(__W, __U, __A, __B);
959 }
960 
test_mm_maskz_or_epi32(__mmask8 __U,__m128i __A,__m128i __B)961 __m128i test_mm_maskz_or_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
962   //CHECK-LABEL: @test_mm_maskz_or_epi32
963   //CHECK: or <4 x i32> %{{.*}}, %{{.*}}
964   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
965   return _mm_maskz_or_epi32(__U, __A, __B);
966 }
967 
test_mm256_xor_epi32(__m256i __A,__m256i __B)968 __m256i test_mm256_xor_epi32 (__m256i __A, __m256i __B) {
969   //CHECK-LABEL: @test_mm256_xor_epi32
970   //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
971   return _mm256_xor_epi32(__A, __B);
972 }
973 
test_mm256_mask_xor_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)974 __m256i test_mm256_mask_xor_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
975   //CHECK-LABEL: @test_mm256_mask_xor_epi32
976   //CHECK: xor <8 x i32> %{{.*}}, %{{.*}}
977   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
978   return _mm256_mask_xor_epi32(__W, __U, __A, __B);
979 }
980 
test_mm256_maskz_xor_epi32(__mmask8 __U,__m256i __A,__m256i __B)981 __m256i test_mm256_maskz_xor_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
982   //CHECK-LABEL: @test_mm256_maskz_xor_epi32
983   //CHECK: xor <8 x i32> %{{.*}}, %{{.*}}
984   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
985   return _mm256_maskz_xor_epi32(__U, __A, __B);
986 }
987 
test_mm_xor_epi32(__m128i __A,__m128i __B)988 __m128i test_mm_xor_epi32 (__m128i __A, __m128i __B) {
989   //CHECK-LABEL: @test_mm_xor_epi32
990   //CHECK: xor <4 x i32> %{{.*}}, %{{.*}}
991   return _mm_xor_epi32(__A, __B);
992 }
993 
test_mm_mask_xor_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)994 __m128i test_mm_mask_xor_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
995   //CHECK-LABEL: @test_mm_mask_xor_epi32
996   //CHECK: xor <4 x i32> %{{.*}}, %{{.*}}
997   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
998   return _mm_mask_xor_epi32(__W, __U, __A, __B);
999 }
1000 
test_mm_maskz_xor_epi32(__mmask8 __U,__m128i __A,__m128i __B)1001 __m128i test_mm_maskz_xor_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
1002   //CHECK-LABEL: @test_mm_maskz_xor_epi32
1003   //CHECK: xor <4 x i32> %{{.*}}, %{{.*}}
1004   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
1005   return _mm_maskz_xor_epi32(__U, __A, __B);
1006 }
1007 
test_mm256_and_epi64(__m256i __A,__m256i __B)1008 __m256i test_mm256_and_epi64 (__m256i __A, __m256i __B) {
1009   //CHECK-LABEL: @test_mm256_and_epi64
1010   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1011   return _mm256_and_epi64(__A, __B);
1012 }
1013 
test_mm256_mask_and_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1014 __m256i test_mm256_mask_and_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1015   //CHECK-LABEL: @test_mm256_mask_and_epi64
1016   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1017   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1018   return _mm256_mask_and_epi64(__W, __U, __A, __B);
1019 }
1020 
test_mm256_maskz_and_epi64(__mmask8 __U,__m256i __A,__m256i __B)1021 __m256i test_mm256_maskz_and_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
1022   //CHECK-LABEL: @test_mm256_maskz_and_epi64
1023   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1024   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1025   return _mm256_maskz_and_epi64(__U, __A, __B);
1026 }
1027 
test_mm_and_epi64(__m128i __A,__m128i __B)1028 __m128i test_mm_and_epi64 (__m128i __A, __m128i __B) {
1029   //CHECK-LABEL: @test_mm_and_epi64
1030   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1031   return _mm_and_epi64(__A, __B);
1032 }
1033 
test_mm_mask_and_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1034 __m128i test_mm_mask_and_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1035   //CHECK-LABEL: @test_mm_mask_and_epi64
1036   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1037   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1038   return _mm_mask_and_epi64(__W,__U, __A, __B);
1039 }
1040 
test_mm_maskz_and_epi64(__mmask8 __U,__m128i __A,__m128i __B)1041 __m128i test_mm_maskz_and_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
1042   //CHECK-LABEL: @test_mm_maskz_and_epi64
1043   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1044   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1045   return _mm_maskz_and_epi64(__U, __A, __B);
1046 }
1047 
test_mm256_andnot_epi64(__m256i __A,__m256i __B)1048 __m256i test_mm256_andnot_epi64 (__m256i __A, __m256i __B) {
1049   //CHECK-LABEL: @test_mm256_andnot_epi64
1050   //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1>
1051   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1052   return _mm256_andnot_epi64(__A, __B);
1053 }
1054 
test_mm256_mask_andnot_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1055 __m256i test_mm256_mask_andnot_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1056   //CHECK-LABEL: @test_mm256_mask_andnot_epi64
1057   //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1>
1058   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1059   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1060   return _mm256_mask_andnot_epi64(__W, __U, __A, __B);
1061 }
1062 
test_mm256_maskz_andnot_epi64(__mmask8 __U,__m256i __A,__m256i __B)1063 __m256i test_mm256_maskz_andnot_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
1064   //CHECK-LABEL: @test_mm256_maskz_andnot_epi64
1065   //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1>
1066   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1067   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1068   return _mm256_maskz_andnot_epi64(__U, __A, __B);
1069 }
1070 
test_mm_andnot_epi64(__m128i __A,__m128i __B)1071 __m128i test_mm_andnot_epi64 (__m128i __A, __m128i __B) {
1072   //CHECK-LABEL: @test_mm_andnot_epi64
1073   //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1>
1074   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1075   return _mm_andnot_epi64(__A, __B);
1076 }
1077 
test_mm_mask_andnot_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1078 __m128i test_mm_mask_andnot_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1079   //CHECK-LABEL: @test_mm_mask_andnot_epi64
1080   //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1>
1081   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1082   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1083   return _mm_mask_andnot_epi64(__W,__U, __A, __B);
1084 }
1085 
test_mm_maskz_andnot_epi64(__mmask8 __U,__m128i __A,__m128i __B)1086 __m128i test_mm_maskz_andnot_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
1087   //CHECK-LABEL: @test_mm_maskz_andnot_epi64
1088   //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1>
1089   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1090   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1091   return _mm_maskz_andnot_epi64(__U, __A, __B);
1092 }
1093 
test_mm256_or_epi64(__m256i __A,__m256i __B)1094 __m256i test_mm256_or_epi64 (__m256i __A, __m256i __B) {
1095   //CHECK-LABEL: @test_mm256_or_epi64
1096   //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
1097   return _mm256_or_epi64(__A, __B);
1098 }
1099 
test_mm256_mask_or_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1100 __m256i test_mm256_mask_or_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1101   //CHECK-LABEL: @test_mm256_mask_or_epi64
1102   //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
1103   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1104   return _mm256_mask_or_epi64(__W,__U, __A, __B);
1105 }
1106 
test_mm256_maskz_or_epi64(__mmask8 __U,__m256i __A,__m256i __B)1107 __m256i test_mm256_maskz_or_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
1108   //CHECK-LABEL: @test_mm256_maskz_or_epi64
1109   //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
1110   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1111   return _mm256_maskz_or_epi64(__U, __A, __B);
1112 }
1113 
test_mm_or_epi64(__m128i __A,__m128i __B)1114 __m128i test_mm_or_epi64 (__m128i __A, __m128i __B) {
1115   //CHECK-LABEL: @test_mm_or_epi64
1116   //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
1117   return _mm_or_epi64(__A, __B);
1118 }
1119 
test_mm_mask_or_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1120 __m128i test_mm_mask_or_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1121   //CHECK-LABEL: @test_mm_mask_or_epi64
1122   //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
1123   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1124   return _mm_mask_or_epi64(__W, __U, __A, __B);
1125 }
1126 
test_mm_maskz_or_epi64(__mmask8 __U,__m128i __A,__m128i __B)1127 __m128i test_mm_maskz_or_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
1128   //CHECK-LABEL: @test_mm_maskz_or_epi64
1129   //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
1130   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1131   return _mm_maskz_or_epi64( __U, __A, __B);
1132 }
1133 
test_mm256_xor_epi64(__m256i __A,__m256i __B)1134 __m256i test_mm256_xor_epi64 (__m256i __A, __m256i __B) {
1135   //CHECK-LABEL: @test_mm256_xor_epi64
1136   //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
1137   return _mm256_xor_epi64(__A, __B);
1138 }
1139 
test_mm256_mask_xor_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1140 __m256i test_mm256_mask_xor_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1141   //CHECK-LABEL: @test_mm256_mask_xor_epi64
1142   //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
1143   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1144   return _mm256_mask_xor_epi64(__W,__U, __A, __B);
1145 }
1146 
test_mm256_maskz_xor_epi64(__mmask8 __U,__m256i __A,__m256i __B)1147 __m256i test_mm256_maskz_xor_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
1148   //CHECK-LABEL: @test_mm256_maskz_xor_epi64
1149   //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
1150   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1151   return _mm256_maskz_xor_epi64(__U, __A, __B);
1152 }
1153 
test_mm_xor_epi64(__m128i __A,__m128i __B)1154 __m128i test_mm_xor_epi64 (__m128i __A, __m128i __B) {
1155   //CHECK-LABEL: @test_mm_xor_epi64
1156   //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
1157   return _mm_xor_epi64(__A, __B);
1158 }
1159 
test_mm_mask_xor_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1160 __m128i test_mm_mask_xor_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1161   //CHECK-LABEL: @test_mm_mask_xor_epi64
1162   //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
1163   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1164   return _mm_mask_xor_epi64(__W, __U, __A, __B);
1165 }
1166 
test_mm_maskz_xor_epi64(__mmask8 __U,__m128i __A,__m128i __B)1167 __m128i test_mm_maskz_xor_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
1168   //CHECK-LABEL: @test_mm_maskz_xor_epi64
1169   //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
1170   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1171   return _mm_maskz_xor_epi64( __U, __A, __B);
1172 }
1173 
test_mm256_cmp_ps_mask_eq_oq(__m256 a,__m256 b)1174 __mmask8 test_mm256_cmp_ps_mask_eq_oq(__m256 a, __m256 b) {
1175   // CHECK-LABEL: @test_mm256_cmp_ps_mask_eq_oq
1176   // CHECK: fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1177   return _mm256_cmp_ps_mask(a, b, _CMP_EQ_OQ);
1178 }
1179 
test_mm256_cmp_ps_mask_lt_os(__m256 a,__m256 b)1180 __mmask8 test_mm256_cmp_ps_mask_lt_os(__m256 a, __m256 b) {
1181   // CHECK-LABEL: test_mm256_cmp_ps_mask_lt_os
1182   // CHECK: fcmp olt <8 x float> %{{.*}}, %{{.*}}
1183   return _mm256_cmp_ps_mask(a, b, _CMP_LT_OS);
1184 }
1185 
test_mm256_cmp_ps_mask_le_os(__m256 a,__m256 b)1186 __mmask8 test_mm256_cmp_ps_mask_le_os(__m256 a, __m256 b) {
1187   // CHECK-LABEL: test_mm256_cmp_ps_mask_le_os
1188   // CHECK: fcmp ole <8 x float> %{{.*}}, %{{.*}}
1189   return _mm256_cmp_ps_mask(a, b, _CMP_LE_OS);
1190 }
1191 
test_mm256_cmp_ps_mask_unord_q(__m256 a,__m256 b)1192 __mmask8 test_mm256_cmp_ps_mask_unord_q(__m256 a, __m256 b) {
1193   // CHECK-LABEL: test_mm256_cmp_ps_mask_unord_q
1194   // CHECK: fcmp uno <8 x float> %{{.*}}, %{{.*}}
1195   return _mm256_cmp_ps_mask(a, b, _CMP_UNORD_Q);
1196 }
1197 
test_mm256_cmp_ps_mask_neq_uq(__m256 a,__m256 b)1198 __mmask8 test_mm256_cmp_ps_mask_neq_uq(__m256 a, __m256 b) {
1199   // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_uq
1200   // CHECK: fcmp une <8 x float> %{{.*}}, %{{.*}}
1201   return _mm256_cmp_ps_mask(a, b, _CMP_NEQ_UQ);
1202 }
1203 
test_mm256_cmp_ps_mask_nlt_us(__m256 a,__m256 b)1204 __mmask8 test_mm256_cmp_ps_mask_nlt_us(__m256 a, __m256 b) {
1205   // CHECK-LABEL: test_mm256_cmp_ps_mask_nlt_us
1206   // CHECK: fcmp uge <8 x float> %{{.*}}, %{{.*}}
1207   return _mm256_cmp_ps_mask(a, b, _CMP_NLT_US);
1208 }
1209 
test_mm256_cmp_ps_mask_nle_us(__m256 a,__m256 b)1210 __mmask8 test_mm256_cmp_ps_mask_nle_us(__m256 a, __m256 b) {
1211   // CHECK-LABEL: test_mm256_cmp_ps_mask_nle_us
1212   // CHECK: fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1213   return _mm256_cmp_ps_mask(a, b, _CMP_NLE_US);
1214 }
1215 
test_mm256_cmp_ps_mask_ord_q(__m256 a,__m256 b)1216 __mmask8 test_mm256_cmp_ps_mask_ord_q(__m256 a, __m256 b) {
1217   // CHECK-LABEL: test_mm256_cmp_ps_mask_ord_q
1218   // CHECK: fcmp ord <8 x float> %{{.*}}, %{{.*}}
1219   return _mm256_cmp_ps_mask(a, b, _CMP_ORD_Q);
1220 }
1221 
test_mm256_cmp_ps_mask_eq_uq(__m256 a,__m256 b)1222 __mmask8 test_mm256_cmp_ps_mask_eq_uq(__m256 a, __m256 b) {
1223   // CHECK-LABEL: test_mm256_cmp_ps_mask_eq_uq
1224   // CHECK: fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1225   return _mm256_cmp_ps_mask(a, b, _CMP_EQ_UQ);
1226 }
1227 
test_mm256_cmp_ps_mask_nge_us(__m256 a,__m256 b)1228 __mmask8 test_mm256_cmp_ps_mask_nge_us(__m256 a, __m256 b) {
1229   // CHECK-LABEL: test_mm256_cmp_ps_mask_nge_us
1230   // CHECK: fcmp ult <8 x float> %{{.*}}, %{{.*}}
1231   return _mm256_cmp_ps_mask(a, b, _CMP_NGE_US);
1232 }
1233 
test_mm256_cmp_ps_mask_ngt_us(__m256 a,__m256 b)1234 __mmask8 test_mm256_cmp_ps_mask_ngt_us(__m256 a, __m256 b) {
1235   // CHECK-LABEL: test_mm256_cmp_ps_mask_ngt_us
1236   // CHECK: fcmp ule <8 x float> %{{.*}}, %{{.*}}
1237   return _mm256_cmp_ps_mask(a, b, _CMP_NGT_US);
1238 }
1239 
test_mm256_cmp_ps_mask_false_oq(__m256 a,__m256 b)1240 __mmask8 test_mm256_cmp_ps_mask_false_oq(__m256 a, __m256 b) {
1241   // CHECK-LABEL: test_mm256_cmp_ps_mask_false_oq
1242   // CHECK: fcmp false <8 x float> %{{.*}}, %{{.*}}
1243   return _mm256_cmp_ps_mask(a, b, _CMP_FALSE_OQ);
1244 }
1245 
test_mm256_cmp_ps_mask_neq_oq(__m256 a,__m256 b)1246 __mmask8 test_mm256_cmp_ps_mask_neq_oq(__m256 a, __m256 b) {
1247   // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_oq
1248   // CHECK: fcmp one <8 x float> %{{.*}}, %{{.*}}
1249   return _mm256_cmp_ps_mask(a, b, _CMP_NEQ_OQ);
1250 }
1251 
test_mm256_cmp_ps_mask_ge_os(__m256 a,__m256 b)1252 __mmask8 test_mm256_cmp_ps_mask_ge_os(__m256 a, __m256 b) {
1253   // CHECK-LABEL: test_mm256_cmp_ps_mask_ge_os
1254   // CHECK: fcmp oge <8 x float> %{{.*}}, %{{.*}}
1255   return _mm256_cmp_ps_mask(a, b, _CMP_GE_OS);
1256 }
1257 
test_mm256_cmp_ps_mask_gt_os(__m256 a,__m256 b)1258 __mmask8 test_mm256_cmp_ps_mask_gt_os(__m256 a, __m256 b) {
1259   // CHECK-LABEL: test_mm256_cmp_ps_mask_gt_os
1260   // CHECK: fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1261   return _mm256_cmp_ps_mask(a, b, _CMP_GT_OS);
1262 }
1263 
test_mm256_cmp_ps_mask_true_uq(__m256 a,__m256 b)1264 __mmask8 test_mm256_cmp_ps_mask_true_uq(__m256 a, __m256 b) {
1265   // CHECK-LABEL: test_mm256_cmp_ps_mask_true_uq
1266   // CHECK: fcmp true <8 x float> %{{.*}}, %{{.*}}
1267   return _mm256_cmp_ps_mask(a, b, _CMP_TRUE_UQ);
1268 }
1269 
test_mm256_cmp_ps_mask_eq_os(__m256 a,__m256 b)1270 __mmask8 test_mm256_cmp_ps_mask_eq_os(__m256 a, __m256 b) {
1271   // CHECK-LABEL: test_mm256_cmp_ps_mask_eq_os
1272   // CHECK: fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1273   return _mm256_cmp_ps_mask(a, b, _CMP_EQ_OS);
1274 }
1275 
test_mm256_cmp_ps_mask_lt_oq(__m256 a,__m256 b)1276 __mmask8 test_mm256_cmp_ps_mask_lt_oq(__m256 a, __m256 b) {
1277   // CHECK-LABEL: test_mm256_cmp_ps_mask_lt_oq
1278   // CHECK: fcmp olt <8 x float> %{{.*}}, %{{.*}}
1279   return _mm256_cmp_ps_mask(a, b, _CMP_LT_OQ);
1280 }
1281 
test_mm256_cmp_ps_mask_le_oq(__m256 a,__m256 b)1282 __mmask8 test_mm256_cmp_ps_mask_le_oq(__m256 a, __m256 b) {
1283   // CHECK-LABEL: test_mm256_cmp_ps_mask_le_oq
1284   // CHECK: fcmp ole <8 x float> %{{.*}}, %{{.*}}
1285   return _mm256_cmp_ps_mask(a, b, _CMP_LE_OQ);
1286 }
1287 
test_mm256_cmp_ps_mask_unord_s(__m256 a,__m256 b)1288 __mmask8 test_mm256_cmp_ps_mask_unord_s(__m256 a, __m256 b) {
1289   // CHECK-LABEL: test_mm256_cmp_ps_mask_unord_s
1290   // CHECK: fcmp uno <8 x float> %{{.*}}, %{{.*}}
1291   return _mm256_cmp_ps_mask(a, b, _CMP_UNORD_S);
1292 }
1293 
test_mm256_cmp_ps_mask_neq_us(__m256 a,__m256 b)1294 __mmask8 test_mm256_cmp_ps_mask_neq_us(__m256 a, __m256 b) {
1295   // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_us
1296   // CHECK: fcmp une <8 x float> %{{.*}}, %{{.*}}
1297   return _mm256_cmp_ps_mask(a, b, _CMP_NEQ_US);
1298 }
1299 
test_mm256_cmp_ps_mask_nlt_uq(__m256 a,__m256 b)1300 __mmask8 test_mm256_cmp_ps_mask_nlt_uq(__m256 a, __m256 b) {
1301   // CHECK-LABEL: test_mm256_cmp_ps_mask_nlt_uq
1302   // CHECK: fcmp uge <8 x float> %{{.*}}, %{{.*}}
1303   return _mm256_cmp_ps_mask(a, b, _CMP_NLT_UQ);
1304 }
1305 
test_mm256_cmp_ps_mask_nle_uq(__m256 a,__m256 b)1306 __mmask8 test_mm256_cmp_ps_mask_nle_uq(__m256 a, __m256 b) {
1307   // CHECK-LABEL: test_mm256_cmp_ps_mask_nle_uq
1308   // CHECK: fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1309   return _mm256_cmp_ps_mask(a, b, _CMP_NLE_UQ);
1310 }
1311 
test_mm256_cmp_ps_mask_ord_s(__m256 a,__m256 b)1312 __mmask8 test_mm256_cmp_ps_mask_ord_s(__m256 a, __m256 b) {
1313   // CHECK-LABEL: test_mm256_cmp_ps_mask_ord_s
1314   // CHECK: fcmp ord <8 x float> %{{.*}}, %{{.*}}
1315   return _mm256_cmp_ps_mask(a, b, _CMP_ORD_S);
1316 }
1317 
test_mm256_cmp_ps_mask_eq_us(__m256 a,__m256 b)1318 __mmask8 test_mm256_cmp_ps_mask_eq_us(__m256 a, __m256 b) {
1319   // CHECK-LABEL: test_mm256_cmp_ps_mask_eq_us
1320   // CHECK: fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1321   return _mm256_cmp_ps_mask(a, b, _CMP_EQ_US);
1322 }
1323 
test_mm256_cmp_ps_mask_nge_uq(__m256 a,__m256 b)1324 __mmask8 test_mm256_cmp_ps_mask_nge_uq(__m256 a, __m256 b) {
1325   // CHECK-LABEL: test_mm256_cmp_ps_mask_nge_uq
1326   // CHECK: fcmp ult <8 x float> %{{.*}}, %{{.*}}
1327   return _mm256_cmp_ps_mask(a, b, _CMP_NGE_UQ);
1328 }
1329 
test_mm256_cmp_ps_mask_ngt_uq(__m256 a,__m256 b)1330 __mmask8 test_mm256_cmp_ps_mask_ngt_uq(__m256 a, __m256 b) {
1331   // CHECK-LABEL: test_mm256_cmp_ps_mask_ngt_uq
1332   // CHECK: fcmp ule <8 x float> %{{.*}}, %{{.*}}
1333   return _mm256_cmp_ps_mask(a, b, _CMP_NGT_UQ);
1334 }
1335 
test_mm256_cmp_ps_mask_false_os(__m256 a,__m256 b)1336 __mmask8 test_mm256_cmp_ps_mask_false_os(__m256 a, __m256 b) {
1337   // CHECK-LABEL: test_mm256_cmp_ps_mask_false_os
1338   // CHECK: fcmp false <8 x float> %{{.*}}, %{{.*}}
1339   return _mm256_cmp_ps_mask(a, b, _CMP_FALSE_OS);
1340 }
1341 
test_mm256_cmp_ps_mask_neq_os(__m256 a,__m256 b)1342 __mmask8 test_mm256_cmp_ps_mask_neq_os(__m256 a, __m256 b) {
1343   // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_os
1344   // CHECK: fcmp one <8 x float> %{{.*}}, %{{.*}}
1345   return _mm256_cmp_ps_mask(a, b, _CMP_NEQ_OS);
1346 }
1347 
test_mm256_cmp_ps_mask_ge_oq(__m256 a,__m256 b)1348 __mmask8 test_mm256_cmp_ps_mask_ge_oq(__m256 a, __m256 b) {
1349   // CHECK-LABEL: test_mm256_cmp_ps_mask_ge_oq
1350   // CHECK: fcmp oge <8 x float> %{{.*}}, %{{.*}}
1351   return _mm256_cmp_ps_mask(a, b, _CMP_GE_OQ);
1352 }
1353 
test_mm256_cmp_ps_mask_gt_oq(__m256 a,__m256 b)1354 __mmask8 test_mm256_cmp_ps_mask_gt_oq(__m256 a, __m256 b) {
1355   // CHECK-LABEL: test_mm256_cmp_ps_mask_gt_oq
1356   // CHECK: fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1357   return _mm256_cmp_ps_mask(a, b, _CMP_GT_OQ);
1358 }
1359 
test_mm256_cmp_ps_mask_true_us(__m256 a,__m256 b)1360 __mmask8 test_mm256_cmp_ps_mask_true_us(__m256 a, __m256 b) {
1361   // CHECK-LABEL: test_mm256_cmp_ps_mask_true_us
1362   // CHECK: fcmp true <8 x float> %{{.*}}, %{{.*}}
1363   return _mm256_cmp_ps_mask(a, b, _CMP_TRUE_US);
1364 }
1365 
test_mm256_mask_cmp_ps_mask_eq_oq(__mmask8 m,__m256 a,__m256 b)1366 __mmask8 test_mm256_mask_cmp_ps_mask_eq_oq(__mmask8 m, __m256 a, __m256 b) {
1367   // CHECK-LABEL: @test_mm256_mask_cmp_ps_mask_eq_oq
1368   // CHECK: [[CMP:%.*]] = fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1369   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1370   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_EQ_OQ);
1371 }
1372 
test_mm256_mask_cmp_ps_mask_lt_os(__mmask8 m,__m256 a,__m256 b)1373 __mmask8 test_mm256_mask_cmp_ps_mask_lt_os(__mmask8 m, __m256 a, __m256 b) {
1374   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_lt_os
1375   // CHECK: [[CMP:%.*]] = fcmp olt <8 x float> %{{.*}}, %{{.*}}
1376   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1377   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_LT_OS);
1378 }
1379 
test_mm256_mask_cmp_ps_mask_le_os(__mmask8 m,__m256 a,__m256 b)1380 __mmask8 test_mm256_mask_cmp_ps_mask_le_os(__mmask8 m, __m256 a, __m256 b) {
1381   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_le_os
1382   // CHECK: [[CMP:%.*]] = fcmp ole <8 x float> %{{.*}}, %{{.*}}
1383   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1384   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_LE_OS);
1385 }
1386 
test_mm256_mask_cmp_ps_mask_unord_q(__mmask8 m,__m256 a,__m256 b)1387 __mmask8 test_mm256_mask_cmp_ps_mask_unord_q(__mmask8 m, __m256 a, __m256 b) {
1388   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_unord_q
1389   // CHECK: [[CMP:%.*]] = fcmp uno <8 x float> %{{.*}}, %{{.*}}
1390   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1391   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_UNORD_Q);
1392 }
1393 
test_mm256_mask_cmp_ps_mask_neq_uq(__mmask8 m,__m256 a,__m256 b)1394 __mmask8 test_mm256_mask_cmp_ps_mask_neq_uq(__mmask8 m, __m256 a, __m256 b) {
1395   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_uq
1396   // CHECK: [[CMP:%.*]] = fcmp une <8 x float> %{{.*}}, %{{.*}}
1397   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1398   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_UQ);
1399 }
1400 
test_mm256_mask_cmp_ps_mask_nlt_us(__mmask8 m,__m256 a,__m256 b)1401 __mmask8 test_mm256_mask_cmp_ps_mask_nlt_us(__mmask8 m, __m256 a, __m256 b) {
1402   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nlt_us
1403   // CHECK: [[CMP:%.*]] = fcmp uge <8 x float> %{{.*}}, %{{.*}}
1404   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1405   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NLT_US);
1406 }
1407 
test_mm256_mask_cmp_ps_mask_nle_us(__mmask8 m,__m256 a,__m256 b)1408 __mmask8 test_mm256_mask_cmp_ps_mask_nle_us(__mmask8 m, __m256 a, __m256 b) {
1409   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nle_us
1410   // CHECK: [[CMP:%.*]] = fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1411   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1412   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NLE_US);
1413 }
1414 
test_mm256_mask_cmp_ps_mask_ord_q(__mmask8 m,__m256 a,__m256 b)1415 __mmask8 test_mm256_mask_cmp_ps_mask_ord_q(__mmask8 m, __m256 a, __m256 b) {
1416   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ord_q
1417   // CHECK: [[CMP:%.*]] = fcmp ord <8 x float> %{{.*}}, %{{.*}}
1418   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1419   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_ORD_Q);
1420 }
1421 
test_mm256_mask_cmp_ps_mask_eq_uq(__mmask8 m,__m256 a,__m256 b)1422 __mmask8 test_mm256_mask_cmp_ps_mask_eq_uq(__mmask8 m, __m256 a, __m256 b) {
1423   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_eq_uq
1424   // CHECK: [[CMP:%.*]] = fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1425   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1426   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_EQ_UQ);
1427 }
1428 
test_mm256_mask_cmp_ps_mask_nge_us(__mmask8 m,__m256 a,__m256 b)1429 __mmask8 test_mm256_mask_cmp_ps_mask_nge_us(__mmask8 m, __m256 a, __m256 b) {
1430   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nge_us
1431   // CHECK: [[CMP:%.*]] = fcmp ult <8 x float> %{{.*}}, %{{.*}}
1432   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1433   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NGE_US);
1434 }
1435 
test_mm256_mask_cmp_ps_mask_ngt_us(__mmask8 m,__m256 a,__m256 b)1436 __mmask8 test_mm256_mask_cmp_ps_mask_ngt_us(__mmask8 m, __m256 a, __m256 b) {
1437   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ngt_us
1438   // CHECK: [[CMP:%.*]] = fcmp ule <8 x float> %{{.*}}, %{{.*}}
1439   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1440   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NGT_US);
1441 }
1442 
test_mm256_mask_cmp_ps_mask_false_oq(__mmask8 m,__m256 a,__m256 b)1443 __mmask8 test_mm256_mask_cmp_ps_mask_false_oq(__mmask8 m, __m256 a, __m256 b) {
1444   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_false_oq
1445   // CHECK: [[CMP:%.*]] = fcmp false <8 x float> %{{.*}}, %{{.*}}
1446   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1447   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_FALSE_OQ);
1448 }
1449 
test_mm256_mask_cmp_ps_mask_neq_oq(__mmask8 m,__m256 a,__m256 b)1450 __mmask8 test_mm256_mask_cmp_ps_mask_neq_oq(__mmask8 m, __m256 a, __m256 b) {
1451   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_oq
1452   // CHECK: [[CMP:%.*]] = fcmp one <8 x float> %{{.*}}, %{{.*}}
1453   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1454   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_OQ);
1455 }
1456 
test_mm256_mask_cmp_ps_mask_ge_os(__mmask8 m,__m256 a,__m256 b)1457 __mmask8 test_mm256_mask_cmp_ps_mask_ge_os(__mmask8 m, __m256 a, __m256 b) {
1458   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ge_os
1459   // CHECK: [[CMP:%.*]] = fcmp oge <8 x float> %{{.*}}, %{{.*}}
1460   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1461   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_GE_OS);
1462 }
1463 
test_mm256_mask_cmp_ps_mask_gt_os(__mmask8 m,__m256 a,__m256 b)1464 __mmask8 test_mm256_mask_cmp_ps_mask_gt_os(__mmask8 m, __m256 a, __m256 b) {
1465   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_gt_os
1466   // CHECK: [[CMP:%.*]] = fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1467   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1468   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_GT_OS);
1469 }
1470 
test_mm256_mask_cmp_ps_mask_true_uq(__mmask8 m,__m256 a,__m256 b)1471 __mmask8 test_mm256_mask_cmp_ps_mask_true_uq(__mmask8 m, __m256 a, __m256 b) {
1472   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_true_uq
1473   // CHECK: [[CMP:%.*]] = fcmp true <8 x float> %{{.*}}, %{{.*}}
1474   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1475   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_TRUE_UQ);
1476 }
1477 
test_mm256_mask_cmp_ps_mask_eq_os(__mmask8 m,__m256 a,__m256 b)1478 __mmask8 test_mm256_mask_cmp_ps_mask_eq_os(__mmask8 m, __m256 a, __m256 b) {
1479   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_eq_os
1480   // CHECK: [[CMP:%.*]] = fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1481   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1482   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_EQ_OS);
1483 }
1484 
test_mm256_mask_cmp_ps_mask_lt_oq(__mmask8 m,__m256 a,__m256 b)1485 __mmask8 test_mm256_mask_cmp_ps_mask_lt_oq(__mmask8 m, __m256 a, __m256 b) {
1486   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_lt_oq
1487   // CHECK: [[CMP:%.*]] = fcmp olt <8 x float> %{{.*}}, %{{.*}}
1488   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1489   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_LT_OQ);
1490 }
1491 
test_mm256_mask_cmp_ps_mask_le_oq(__mmask8 m,__m256 a,__m256 b)1492 __mmask8 test_mm256_mask_cmp_ps_mask_le_oq(__mmask8 m, __m256 a, __m256 b) {
1493   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_le_oq
1494   // CHECK: [[CMP:%.*]] = fcmp ole <8 x float> %{{.*}}, %{{.*}}
1495   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1496   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_LE_OQ);
1497 }
1498 
test_mm256_mask_cmp_ps_mask_unord_s(__mmask8 m,__m256 a,__m256 b)1499 __mmask8 test_mm256_mask_cmp_ps_mask_unord_s(__mmask8 m, __m256 a, __m256 b) {
1500   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_unord_s
1501   // CHECK: [[CMP:%.*]] = fcmp uno <8 x float> %{{.*}}, %{{.*}}
1502   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1503   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_UNORD_S);
1504 }
1505 
test_mm256_mask_cmp_ps_mask_neq_us(__mmask8 m,__m256 a,__m256 b)1506 __mmask8 test_mm256_mask_cmp_ps_mask_neq_us(__mmask8 m, __m256 a, __m256 b) {
1507   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_us
1508   // CHECK: [[CMP:%.*]] = fcmp une <8 x float> %{{.*}}, %{{.*}}
1509   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1510   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_US);
1511 }
1512 
test_mm256_mask_cmp_ps_mask_nlt_uq(__mmask8 m,__m256 a,__m256 b)1513 __mmask8 test_mm256_mask_cmp_ps_mask_nlt_uq(__mmask8 m, __m256 a, __m256 b) {
1514   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nlt_uq
1515   // CHECK: [[CMP:%.*]] = fcmp uge <8 x float> %{{.*}}, %{{.*}}
1516   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1517   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NLT_UQ);
1518 }
1519 
test_mm256_mask_cmp_ps_mask_nle_uq(__mmask8 m,__m256 a,__m256 b)1520 __mmask8 test_mm256_mask_cmp_ps_mask_nle_uq(__mmask8 m, __m256 a, __m256 b) {
1521   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nle_uq
1522   // CHECK: [[CMP:%.*]] = fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1523   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1524   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NLE_UQ);
1525 }
1526 
test_mm256_mask_cmp_ps_mask_ord_s(__mmask8 m,__m256 a,__m256 b)1527 __mmask8 test_mm256_mask_cmp_ps_mask_ord_s(__mmask8 m, __m256 a, __m256 b) {
1528   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ord_s
1529   // CHECK: [[CMP:%.*]] = fcmp ord <8 x float> %{{.*}}, %{{.*}}
1530   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1531   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_ORD_S);
1532 }
1533 
test_mm256_mask_cmp_ps_mask_eq_us(__mmask8 m,__m256 a,__m256 b)1534 __mmask8 test_mm256_mask_cmp_ps_mask_eq_us(__mmask8 m, __m256 a, __m256 b) {
1535   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_eq_us
1536   // CHECK: [[CMP:%.*]] = fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1537   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1538   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_EQ_US);
1539 }
1540 
test_mm256_mask_cmp_ps_mask_nge_uq(__mmask8 m,__m256 a,__m256 b)1541 __mmask8 test_mm256_mask_cmp_ps_mask_nge_uq(__mmask8 m, __m256 a, __m256 b) {
1542   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nge_uq
1543   // CHECK: [[CMP:%.*]] = fcmp ult <8 x float> %{{.*}}, %{{.*}}
1544   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1545   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NGE_UQ);
1546 }
1547 
test_mm256_mask_cmp_ps_mask_ngt_uq(__mmask8 m,__m256 a,__m256 b)1548 __mmask8 test_mm256_mask_cmp_ps_mask_ngt_uq(__mmask8 m, __m256 a, __m256 b) {
1549   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ngt_uq
1550   // CHECK: [[CMP:%.*]] = fcmp ule <8 x float> %{{.*}}, %{{.*}}
1551   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1552   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NGT_UQ);
1553 }
1554 
test_mm256_mask_cmp_ps_mask_false_os(__mmask8 m,__m256 a,__m256 b)1555 __mmask8 test_mm256_mask_cmp_ps_mask_false_os(__mmask8 m, __m256 a, __m256 b) {
1556   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_false_os
1557   // CHECK: [[CMP:%.*]] = fcmp false <8 x float> %{{.*}}, %{{.*}}
1558   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1559   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_FALSE_OS);
1560 }
1561 
test_mm256_mask_cmp_ps_mask_neq_os(__mmask8 m,__m256 a,__m256 b)1562 __mmask8 test_mm256_mask_cmp_ps_mask_neq_os(__mmask8 m, __m256 a, __m256 b) {
1563   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_os
1564   // CHECK: [[CMP:%.*]] = fcmp one <8 x float> %{{.*}}, %{{.*}}
1565   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1566   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_OS);
1567 }
1568 
test_mm256_mask_cmp_ps_mask_ge_oq(__mmask8 m,__m256 a,__m256 b)1569 __mmask8 test_mm256_mask_cmp_ps_mask_ge_oq(__mmask8 m, __m256 a, __m256 b) {
1570   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ge_oq
1571   // CHECK: [[CMP:%.*]] = fcmp oge <8 x float> %{{.*}}, %{{.*}}
1572   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1573   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_GE_OQ);
1574 }
1575 
test_mm256_mask_cmp_ps_mask_gt_oq(__mmask8 m,__m256 a,__m256 b)1576 __mmask8 test_mm256_mask_cmp_ps_mask_gt_oq(__mmask8 m, __m256 a, __m256 b) {
1577   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_gt_oq
1578   // CHECK: [[CMP:%.*]] = fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1579   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1580   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_GT_OQ);
1581 }
1582 
test_mm256_mask_cmp_ps_mask_true_us(__mmask8 m,__m256 a,__m256 b)1583 __mmask8 test_mm256_mask_cmp_ps_mask_true_us(__mmask8 m, __m256 a, __m256 b) {
1584   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_true_us
1585   // CHECK: [[CMP:%.*]] = fcmp true <8 x float> %{{.*}}, %{{.*}}
1586   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1587   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_TRUE_US);
1588 }
1589 
test_mm256_cmp_pd_mask_eq_oq(__m256d a,__m256d b)1590 __mmask8 test_mm256_cmp_pd_mask_eq_oq(__m256d a, __m256d b) {
1591   // CHECK-LABEL: @test_mm256_cmp_pd_mask_eq_oq
1592   // CHECK: fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1593   return _mm256_cmp_pd_mask(a, b, _CMP_EQ_OQ);
1594 }
1595 
test_mm256_cmp_pd_mask_lt_os(__m256d a,__m256d b)1596 __mmask8 test_mm256_cmp_pd_mask_lt_os(__m256d a, __m256d b) {
1597   // CHECK-LABEL: test_mm256_cmp_pd_mask_lt_os
1598   // CHECK: fcmp olt <4 x double> %{{.*}}, %{{.*}}
1599   return _mm256_cmp_pd_mask(a, b, _CMP_LT_OS);
1600 }
1601 
test_mm256_cmp_pd_mask_le_os(__m256d a,__m256d b)1602 __mmask8 test_mm256_cmp_pd_mask_le_os(__m256d a, __m256d b) {
1603   // CHECK-LABEL: test_mm256_cmp_pd_mask_le_os
1604   // CHECK: fcmp ole <4 x double> %{{.*}}, %{{.*}}
1605   return _mm256_cmp_pd_mask(a, b, _CMP_LE_OS);
1606 }
1607 
test_mm256_cmp_pd_mask_unord_q(__m256d a,__m256d b)1608 __mmask8 test_mm256_cmp_pd_mask_unord_q(__m256d a, __m256d b) {
1609   // CHECK-LABEL: test_mm256_cmp_pd_mask_unord_q
1610   // CHECK: fcmp uno <4 x double> %{{.*}}, %{{.*}}
1611   return _mm256_cmp_pd_mask(a, b, _CMP_UNORD_Q);
1612 }
1613 
test_mm256_cmp_pd_mask_neq_uq(__m256d a,__m256d b)1614 __mmask8 test_mm256_cmp_pd_mask_neq_uq(__m256d a, __m256d b) {
1615   // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_uq
1616   // CHECK: fcmp une <4 x double> %{{.*}}, %{{.*}}
1617   return _mm256_cmp_pd_mask(a, b, _CMP_NEQ_UQ);
1618 }
1619 
test_mm256_cmp_pd_mask_nlt_us(__m256d a,__m256d b)1620 __mmask8 test_mm256_cmp_pd_mask_nlt_us(__m256d a, __m256d b) {
1621   // CHECK-LABEL: test_mm256_cmp_pd_mask_nlt_us
1622   // CHECK: fcmp uge <4 x double> %{{.*}}, %{{.*}}
1623   return _mm256_cmp_pd_mask(a, b, _CMP_NLT_US);
1624 }
1625 
test_mm256_cmp_pd_mask_nle_us(__m256d a,__m256d b)1626 __mmask8 test_mm256_cmp_pd_mask_nle_us(__m256d a, __m256d b) {
1627   // CHECK-LABEL: test_mm256_cmp_pd_mask_nle_us
1628   // CHECK: fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1629   return _mm256_cmp_pd_mask(a, b, _CMP_NLE_US);
1630 }
1631 
test_mm256_cmp_pd_mask_ord_q(__m256d a,__m256d b)1632 __mmask8 test_mm256_cmp_pd_mask_ord_q(__m256d a, __m256d b) {
1633   // CHECK-LABEL: test_mm256_cmp_pd_mask_ord_q
1634   // CHECK: fcmp ord <4 x double> %{{.*}}, %{{.*}}
1635   return _mm256_cmp_pd_mask(a, b, _CMP_ORD_Q);
1636 }
1637 
test_mm256_cmp_pd_mask_eq_uq(__m256d a,__m256d b)1638 __mmask8 test_mm256_cmp_pd_mask_eq_uq(__m256d a, __m256d b) {
1639   // CHECK-LABEL: test_mm256_cmp_pd_mask_eq_uq
1640   // CHECK: fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1641   return _mm256_cmp_pd_mask(a, b, _CMP_EQ_UQ);
1642 }
1643 
test_mm256_cmp_pd_mask_nge_us(__m256d a,__m256d b)1644 __mmask8 test_mm256_cmp_pd_mask_nge_us(__m256d a, __m256d b) {
1645   // CHECK-LABEL: test_mm256_cmp_pd_mask_nge_us
1646   // CHECK: fcmp ult <4 x double> %{{.*}}, %{{.*}}
1647   return _mm256_cmp_pd_mask(a, b, _CMP_NGE_US);
1648 }
1649 
test_mm256_cmp_pd_mask_ngt_us(__m256d a,__m256d b)1650 __mmask8 test_mm256_cmp_pd_mask_ngt_us(__m256d a, __m256d b) {
1651   // CHECK-LABEL: test_mm256_cmp_pd_mask_ngt_us
1652   // CHECK: fcmp ule <4 x double> %{{.*}}, %{{.*}}
1653   return _mm256_cmp_pd_mask(a, b, _CMP_NGT_US);
1654 }
1655 
test_mm256_cmp_pd_mask_false_oq(__m256d a,__m256d b)1656 __mmask8 test_mm256_cmp_pd_mask_false_oq(__m256d a, __m256d b) {
1657   // CHECK-LABEL: test_mm256_cmp_pd_mask_false_oq
1658   // CHECK: fcmp false <4 x double> %{{.*}}, %{{.*}}
1659   return _mm256_cmp_pd_mask(a, b, _CMP_FALSE_OQ);
1660 }
1661 
test_mm256_cmp_pd_mask_neq_oq(__m256d a,__m256d b)1662 __mmask8 test_mm256_cmp_pd_mask_neq_oq(__m256d a, __m256d b) {
1663   // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_oq
1664   // CHECK: fcmp one <4 x double> %{{.*}}, %{{.*}}
1665   return _mm256_cmp_pd_mask(a, b, _CMP_NEQ_OQ);
1666 }
1667 
test_mm256_cmp_pd_mask_ge_os(__m256d a,__m256d b)1668 __mmask8 test_mm256_cmp_pd_mask_ge_os(__m256d a, __m256d b) {
1669   // CHECK-LABEL: test_mm256_cmp_pd_mask_ge_os
1670   // CHECK: fcmp oge <4 x double> %{{.*}}, %{{.*}}
1671   return _mm256_cmp_pd_mask(a, b, _CMP_GE_OS);
1672 }
1673 
test_mm256_cmp_pd_mask_gt_os(__m256d a,__m256d b)1674 __mmask8 test_mm256_cmp_pd_mask_gt_os(__m256d a, __m256d b) {
1675   // CHECK-LABEL: test_mm256_cmp_pd_mask_gt_os
1676   // CHECK: fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1677   return _mm256_cmp_pd_mask(a, b, _CMP_GT_OS);
1678 }
1679 
test_mm256_cmp_pd_mask_true_uq(__m256d a,__m256d b)1680 __mmask8 test_mm256_cmp_pd_mask_true_uq(__m256d a, __m256d b) {
1681   // CHECK-LABEL: test_mm256_cmp_pd_mask_true_uq
1682   // CHECK: fcmp true <4 x double> %{{.*}}, %{{.*}}
1683   return _mm256_cmp_pd_mask(a, b, _CMP_TRUE_UQ);
1684 }
1685 
test_mm256_cmp_pd_mask_eq_os(__m256d a,__m256d b)1686 __mmask8 test_mm256_cmp_pd_mask_eq_os(__m256d a, __m256d b) {
1687   // CHECK-LABEL: test_mm256_cmp_pd_mask_eq_os
1688   // CHECK: fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1689   return _mm256_cmp_pd_mask(a, b, _CMP_EQ_OS);
1690 }
1691 
test_mm256_cmp_pd_mask_lt_oq(__m256d a,__m256d b)1692 __mmask8 test_mm256_cmp_pd_mask_lt_oq(__m256d a, __m256d b) {
1693   // CHECK-LABEL: test_mm256_cmp_pd_mask_lt_oq
1694   // CHECK: fcmp olt <4 x double> %{{.*}}, %{{.*}}
1695   return _mm256_cmp_pd_mask(a, b, _CMP_LT_OQ);
1696 }
1697 
test_mm256_cmp_pd_mask_le_oq(__m256d a,__m256d b)1698 __mmask8 test_mm256_cmp_pd_mask_le_oq(__m256d a, __m256d b) {
1699   // CHECK-LABEL: test_mm256_cmp_pd_mask_le_oq
1700   // CHECK: fcmp ole <4 x double> %{{.*}}, %{{.*}}
1701   return _mm256_cmp_pd_mask(a, b, _CMP_LE_OQ);
1702 }
1703 
test_mm256_cmp_pd_mask_unord_s(__m256d a,__m256d b)1704 __mmask8 test_mm256_cmp_pd_mask_unord_s(__m256d a, __m256d b) {
1705   // CHECK-LABEL: test_mm256_cmp_pd_mask_unord_s
1706   // CHECK: fcmp uno <4 x double> %{{.*}}, %{{.*}}
1707   return _mm256_cmp_pd_mask(a, b, _CMP_UNORD_S);
1708 }
1709 
test_mm256_cmp_pd_mask_neq_us(__m256d a,__m256d b)1710 __mmask8 test_mm256_cmp_pd_mask_neq_us(__m256d a, __m256d b) {
1711   // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_us
1712   // CHECK: fcmp une <4 x double> %{{.*}}, %{{.*}}
1713   return _mm256_cmp_pd_mask(a, b, _CMP_NEQ_US);
1714 }
1715 
test_mm256_cmp_pd_mask_nlt_uq(__m256d a,__m256d b)1716 __mmask8 test_mm256_cmp_pd_mask_nlt_uq(__m256d a, __m256d b) {
1717   // CHECK-LABEL: test_mm256_cmp_pd_mask_nlt_uq
1718   // CHECK: fcmp uge <4 x double> %{{.*}}, %{{.*}}
1719   return _mm256_cmp_pd_mask(a, b, _CMP_NLT_UQ);
1720 }
1721 
test_mm256_cmp_pd_mask_nle_uq(__m256d a,__m256d b)1722 __mmask8 test_mm256_cmp_pd_mask_nle_uq(__m256d a, __m256d b) {
1723   // CHECK-LABEL: test_mm256_cmp_pd_mask_nle_uq
1724   // CHECK: fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1725   return _mm256_cmp_pd_mask(a, b, _CMP_NLE_UQ);
1726 }
1727 
test_mm256_cmp_pd_mask_ord_s(__m256d a,__m256d b)1728 __mmask8 test_mm256_cmp_pd_mask_ord_s(__m256d a, __m256d b) {
1729   // CHECK-LABEL: test_mm256_cmp_pd_mask_ord_s
1730   // CHECK: fcmp ord <4 x double> %{{.*}}, %{{.*}}
1731   return _mm256_cmp_pd_mask(a, b, _CMP_ORD_S);
1732 }
1733 
test_mm256_cmp_pd_mask_eq_us(__m256d a,__m256d b)1734 __mmask8 test_mm256_cmp_pd_mask_eq_us(__m256d a, __m256d b) {
1735   // CHECK-LABEL: test_mm256_cmp_pd_mask_eq_us
1736   // CHECK: fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1737   return _mm256_cmp_pd_mask(a, b, _CMP_EQ_US);
1738 }
1739 
test_mm256_cmp_pd_mask_nge_uq(__m256d a,__m256d b)1740 __mmask8 test_mm256_cmp_pd_mask_nge_uq(__m256d a, __m256d b) {
1741   // CHECK-LABEL: test_mm256_cmp_pd_mask_nge_uq
1742   // CHECK: fcmp ult <4 x double> %{{.*}}, %{{.*}}
1743   return _mm256_cmp_pd_mask(a, b, _CMP_NGE_UQ);
1744 }
1745 
test_mm256_cmp_pd_mask_ngt_uq(__m256d a,__m256d b)1746 __mmask8 test_mm256_cmp_pd_mask_ngt_uq(__m256d a, __m256d b) {
1747   // CHECK-LABEL: test_mm256_cmp_pd_mask_ngt_uq
1748   // CHECK: fcmp ule <4 x double> %{{.*}}, %{{.*}}
1749   return _mm256_cmp_pd_mask(a, b, _CMP_NGT_UQ);
1750 }
1751 
test_mm256_cmp_pd_mask_false_os(__m256d a,__m256d b)1752 __mmask8 test_mm256_cmp_pd_mask_false_os(__m256d a, __m256d b) {
1753   // CHECK-LABEL: test_mm256_cmp_pd_mask_false_os
1754   // CHECK: fcmp false <4 x double> %{{.*}}, %{{.*}}
1755   return _mm256_cmp_pd_mask(a, b, _CMP_FALSE_OS);
1756 }
1757 
test_mm256_cmp_pd_mask_neq_os(__m256d a,__m256d b)1758 __mmask8 test_mm256_cmp_pd_mask_neq_os(__m256d a, __m256d b) {
1759   // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_os
1760   // CHECK: fcmp one <4 x double> %{{.*}}, %{{.*}}
1761   return _mm256_cmp_pd_mask(a, b, _CMP_NEQ_OS);
1762 }
1763 
test_mm256_cmp_pd_mask_ge_oq(__m256d a,__m256d b)1764 __mmask8 test_mm256_cmp_pd_mask_ge_oq(__m256d a, __m256d b) {
1765   // CHECK-LABEL: test_mm256_cmp_pd_mask_ge_oq
1766   // CHECK: fcmp oge <4 x double> %{{.*}}, %{{.*}}
1767   return _mm256_cmp_pd_mask(a, b, _CMP_GE_OQ);
1768 }
1769 
test_mm256_cmp_pd_mask_gt_oq(__m256d a,__m256d b)1770 __mmask8 test_mm256_cmp_pd_mask_gt_oq(__m256d a, __m256d b) {
1771   // CHECK-LABEL: test_mm256_cmp_pd_mask_gt_oq
1772   // CHECK: fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1773   return _mm256_cmp_pd_mask(a, b, _CMP_GT_OQ);
1774 }
1775 
test_mm256_cmp_pd_mask_true_us(__m256d a,__m256d b)1776 __mmask8 test_mm256_cmp_pd_mask_true_us(__m256d a, __m256d b) {
1777   // CHECK-LABEL: test_mm256_cmp_pd_mask_true_us
1778   // CHECK: fcmp true <4 x double> %{{.*}}, %{{.*}}
1779   return _mm256_cmp_pd_mask(a, b, _CMP_TRUE_US);
1780 }
1781 
test_mm256_mask_cmp_pd_mask_eq_oq(__mmask8 m,__m256d a,__m256d b)1782 __mmask8 test_mm256_mask_cmp_pd_mask_eq_oq(__mmask8 m, __m256d a, __m256d b) {
1783   // CHECK-LABEL: @test_mm256_mask_cmp_pd_mask_eq_oq
1784   // CHECK: [[CMP:%.*]] = fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1785   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1786   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_EQ_OQ);
1787 }
1788 
test_mm256_mask_cmp_pd_mask_lt_os(__mmask8 m,__m256d a,__m256d b)1789 __mmask8 test_mm256_mask_cmp_pd_mask_lt_os(__mmask8 m, __m256d a, __m256d b) {
1790   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_lt_os
1791   // CHECK: [[CMP:%.*]] = fcmp olt <4 x double> %{{.*}}, %{{.*}}
1792   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1793   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_LT_OS);
1794 }
1795 
test_mm256_mask_cmp_pd_mask_le_os(__mmask8 m,__m256d a,__m256d b)1796 __mmask8 test_mm256_mask_cmp_pd_mask_le_os(__mmask8 m, __m256d a, __m256d b) {
1797   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_le_os
1798   // CHECK: [[CMP:%.*]] = fcmp ole <4 x double> %{{.*}}, %{{.*}}
1799   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1800   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_LE_OS);
1801 }
1802 
test_mm256_mask_cmp_pd_mask_unord_q(__mmask8 m,__m256d a,__m256d b)1803 __mmask8 test_mm256_mask_cmp_pd_mask_unord_q(__mmask8 m, __m256d a, __m256d b) {
1804   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_unord_q
1805   // CHECK: [[CMP:%.*]] = fcmp uno <4 x double> %{{.*}}, %{{.*}}
1806   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1807   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_UNORD_Q);
1808 }
1809 
test_mm256_mask_cmp_pd_mask_neq_uq(__mmask8 m,__m256d a,__m256d b)1810 __mmask8 test_mm256_mask_cmp_pd_mask_neq_uq(__mmask8 m, __m256d a, __m256d b) {
1811   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_uq
1812   // CHECK: [[CMP:%.*]] = fcmp une <4 x double> %{{.*}}, %{{.*}}
1813   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1814   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_UQ);
1815 }
1816 
test_mm256_mask_cmp_pd_mask_nlt_us(__mmask8 m,__m256d a,__m256d b)1817 __mmask8 test_mm256_mask_cmp_pd_mask_nlt_us(__mmask8 m, __m256d a, __m256d b) {
1818   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nlt_us
1819   // CHECK: [[CMP:%.*]] = fcmp uge <4 x double> %{{.*}}, %{{.*}}
1820   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1821   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NLT_US);
1822 }
1823 
test_mm256_mask_cmp_pd_mask_nle_us(__mmask8 m,__m256d a,__m256d b)1824 __mmask8 test_mm256_mask_cmp_pd_mask_nle_us(__mmask8 m, __m256d a, __m256d b) {
1825   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nle_us
1826   // CHECK: [[CMP:%.*]] = fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1827   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1828   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NLE_US);
1829 }
1830 
test_mm256_mask_cmp_pd_mask_ord_q(__mmask8 m,__m256d a,__m256d b)1831 __mmask8 test_mm256_mask_cmp_pd_mask_ord_q(__mmask8 m, __m256d a, __m256d b) {
1832   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ord_q
1833   // CHECK: [[CMP:%.*]] = fcmp ord <4 x double> %{{.*}}, %{{.*}}
1834   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1835   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_ORD_Q);
1836 }
1837 
test_mm256_mask_cmp_pd_mask_eq_uq(__mmask8 m,__m256d a,__m256d b)1838 __mmask8 test_mm256_mask_cmp_pd_mask_eq_uq(__mmask8 m, __m256d a, __m256d b) {
1839   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_eq_uq
1840   // CHECK: [[CMP:%.*]] = fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1841   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1842   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_EQ_UQ);
1843 }
1844 
test_mm256_mask_cmp_pd_mask_nge_us(__mmask8 m,__m256d a,__m256d b)1845 __mmask8 test_mm256_mask_cmp_pd_mask_nge_us(__mmask8 m, __m256d a, __m256d b) {
1846   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nge_us
1847   // CHECK: [[CMP:%.*]] = fcmp ult <4 x double> %{{.*}}, %{{.*}}
1848   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1849   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NGE_US);
1850 }
1851 
test_mm256_mask_cmp_pd_mask_ngt_us(__mmask8 m,__m256d a,__m256d b)1852 __mmask8 test_mm256_mask_cmp_pd_mask_ngt_us(__mmask8 m, __m256d a, __m256d b) {
1853   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ngt_us
1854   // CHECK: [[CMP:%.*]] = fcmp ule <4 x double> %{{.*}}, %{{.*}}
1855   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1856   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NGT_US);
1857 }
1858 
test_mm256_mask_cmp_pd_mask_false_oq(__mmask8 m,__m256d a,__m256d b)1859 __mmask8 test_mm256_mask_cmp_pd_mask_false_oq(__mmask8 m, __m256d a, __m256d b) {
1860   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_false_oq
1861   // CHECK: [[CMP:%.*]] = fcmp false <4 x double> %{{.*}}, %{{.*}}
1862   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1863   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_FALSE_OQ);
1864 }
1865 
test_mm256_mask_cmp_pd_mask_neq_oq(__mmask8 m,__m256d a,__m256d b)1866 __mmask8 test_mm256_mask_cmp_pd_mask_neq_oq(__mmask8 m, __m256d a, __m256d b) {
1867   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_oq
1868   // CHECK: [[CMP:%.*]] = fcmp one <4 x double> %{{.*}}, %{{.*}}
1869   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1870   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_OQ);
1871 }
1872 
test_mm256_mask_cmp_pd_mask_ge_os(__mmask8 m,__m256d a,__m256d b)1873 __mmask8 test_mm256_mask_cmp_pd_mask_ge_os(__mmask8 m, __m256d a, __m256d b) {
1874   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ge_os
1875   // CHECK: [[CMP:%.*]] = fcmp oge <4 x double> %{{.*}}, %{{.*}}
1876   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1877   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_GE_OS);
1878 }
1879 
test_mm256_mask_cmp_pd_mask_gt_os(__mmask8 m,__m256d a,__m256d b)1880 __mmask8 test_mm256_mask_cmp_pd_mask_gt_os(__mmask8 m, __m256d a, __m256d b) {
1881   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_gt_os
1882   // CHECK: [[CMP:%.*]] = fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1883   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1884   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_GT_OS);
1885 }
1886 
test_mm256_mask_cmp_pd_mask_true_uq(__mmask8 m,__m256d a,__m256d b)1887 __mmask8 test_mm256_mask_cmp_pd_mask_true_uq(__mmask8 m, __m256d a, __m256d b) {
1888   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_true_uq
1889   // CHECK: [[CMP:%.*]] = fcmp true <4 x double> %{{.*}}, %{{.*}}
1890   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1891   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_TRUE_UQ);
1892 }
1893 
test_mm256_mask_cmp_pd_mask_eq_os(__mmask8 m,__m256d a,__m256d b)1894 __mmask8 test_mm256_mask_cmp_pd_mask_eq_os(__mmask8 m, __m256d a, __m256d b) {
1895   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_eq_os
1896   // CHECK: [[CMP:%.*]] = fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1897   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1898   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_EQ_OS);
1899 }
1900 
test_mm256_mask_cmp_pd_mask_lt_oq(__mmask8 m,__m256d a,__m256d b)1901 __mmask8 test_mm256_mask_cmp_pd_mask_lt_oq(__mmask8 m, __m256d a, __m256d b) {
1902   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_lt_oq
1903   // CHECK: [[CMP:%.*]] = fcmp olt <4 x double> %{{.*}}, %{{.*}}
1904   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1905   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_LT_OQ);
1906 }
1907 
test_mm256_mask_cmp_pd_mask_le_oq(__mmask8 m,__m256d a,__m256d b)1908 __mmask8 test_mm256_mask_cmp_pd_mask_le_oq(__mmask8 m, __m256d a, __m256d b) {
1909   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_le_oq
1910   // CHECK: [[CMP:%.*]] = fcmp ole <4 x double> %{{.*}}, %{{.*}}
1911   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1912   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_LE_OQ);
1913 }
1914 
test_mm256_mask_cmp_pd_mask_unord_s(__mmask8 m,__m256d a,__m256d b)1915 __mmask8 test_mm256_mask_cmp_pd_mask_unord_s(__mmask8 m, __m256d a, __m256d b) {
1916   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_unord_s
1917   // CHECK: [[CMP:%.*]] = fcmp uno <4 x double> %{{.*}}, %{{.*}}
1918   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1919   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_UNORD_S);
1920 }
1921 
test_mm256_mask_cmp_pd_mask_neq_us(__mmask8 m,__m256d a,__m256d b)1922 __mmask8 test_mm256_mask_cmp_pd_mask_neq_us(__mmask8 m, __m256d a, __m256d b) {
1923   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_us
1924   // CHECK: [[CMP:%.*]] = fcmp une <4 x double> %{{.*}}, %{{.*}}
1925   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1926   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_US);
1927 }
1928 
test_mm256_mask_cmp_pd_mask_nlt_uq(__mmask8 m,__m256d a,__m256d b)1929 __mmask8 test_mm256_mask_cmp_pd_mask_nlt_uq(__mmask8 m, __m256d a, __m256d b) {
1930   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nlt_uq
1931   // CHECK: [[CMP:%.*]] = fcmp uge <4 x double> %{{.*}}, %{{.*}}
1932   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1933   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NLT_UQ);
1934 }
1935 
test_mm256_mask_cmp_pd_mask_nle_uq(__mmask8 m,__m256d a,__m256d b)1936 __mmask8 test_mm256_mask_cmp_pd_mask_nle_uq(__mmask8 m, __m256d a, __m256d b) {
1937   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nle_uq
1938   // CHECK: [[CMP:%.*]] = fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1939   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1940   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NLE_UQ);
1941 }
1942 
test_mm256_mask_cmp_pd_mask_ord_s(__mmask8 m,__m256d a,__m256d b)1943 __mmask8 test_mm256_mask_cmp_pd_mask_ord_s(__mmask8 m, __m256d a, __m256d b) {
1944   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ord_s
1945   // CHECK: [[CMP:%.*]] = fcmp ord <4 x double> %{{.*}}, %{{.*}}
1946   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1947   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_ORD_S);
1948 }
1949 
test_mm256_mask_cmp_pd_mask_eq_us(__mmask8 m,__m256d a,__m256d b)1950 __mmask8 test_mm256_mask_cmp_pd_mask_eq_us(__mmask8 m, __m256d a, __m256d b) {
1951   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_eq_us
1952   // CHECK: [[CMP:%.*]] = fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1953   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1954   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_EQ_US);
1955 }
1956 
test_mm256_mask_cmp_pd_mask_nge_uq(__mmask8 m,__m256d a,__m256d b)1957 __mmask8 test_mm256_mask_cmp_pd_mask_nge_uq(__mmask8 m, __m256d a, __m256d b) {
1958   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nge_uq
1959   // CHECK: [[CMP:%.*]] = fcmp ult <4 x double> %{{.*}}, %{{.*}}
1960   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1961   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NGE_UQ);
1962 }
1963 
test_mm256_mask_cmp_pd_mask_ngt_uq(__mmask8 m,__m256d a,__m256d b)1964 __mmask8 test_mm256_mask_cmp_pd_mask_ngt_uq(__mmask8 m, __m256d a, __m256d b) {
1965   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ngt_uq
1966   // CHECK: [[CMP:%.*]] = fcmp ule <4 x double> %{{.*}}, %{{.*}}
1967   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1968   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NGT_UQ);
1969 }
1970 
test_mm256_mask_cmp_pd_mask_false_os(__mmask8 m,__m256d a,__m256d b)1971 __mmask8 test_mm256_mask_cmp_pd_mask_false_os(__mmask8 m, __m256d a, __m256d b) {
1972   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_false_os
1973   // CHECK: [[CMP:%.*]] = fcmp false <4 x double> %{{.*}}, %{{.*}}
1974   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1975   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_FALSE_OS);
1976 }
1977 
test_mm256_mask_cmp_pd_mask_neq_os(__mmask8 m,__m256d a,__m256d b)1978 __mmask8 test_mm256_mask_cmp_pd_mask_neq_os(__mmask8 m, __m256d a, __m256d b) {
1979   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_os
1980   // CHECK: [[CMP:%.*]] = fcmp one <4 x double> %{{.*}}, %{{.*}}
1981   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1982   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_OS);
1983 }
1984 
test_mm256_mask_cmp_pd_mask_ge_oq(__mmask8 m,__m256d a,__m256d b)1985 __mmask8 test_mm256_mask_cmp_pd_mask_ge_oq(__mmask8 m, __m256d a, __m256d b) {
1986   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ge_oq
1987   // CHECK: [[CMP:%.*]] = fcmp oge <4 x double> %{{.*}}, %{{.*}}
1988   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1989   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_GE_OQ);
1990 }
1991 
test_mm256_mask_cmp_pd_mask_gt_oq(__mmask8 m,__m256d a,__m256d b)1992 __mmask8 test_mm256_mask_cmp_pd_mask_gt_oq(__mmask8 m, __m256d a, __m256d b) {
1993   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_gt_oq
1994   // CHECK: [[CMP:%.*]] = fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1995   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1996   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_GT_OQ);
1997 }
1998 
test_mm256_mask_cmp_pd_mask_true_us(__mmask8 m,__m256d a,__m256d b)1999 __mmask8 test_mm256_mask_cmp_pd_mask_true_us(__mmask8 m, __m256d a, __m256d b) {
2000   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_true_us
2001   // CHECK: [[CMP:%.*]] = fcmp true <4 x double> %{{.*}}, %{{.*}}
2002   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2003   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_TRUE_US);
2004 }
2005 
test_mm_cmp_ps_mask_eq_oq(__m128 a,__m128 b)2006 __mmask8 test_mm_cmp_ps_mask_eq_oq(__m128 a, __m128 b) {
2007   // CHECK-LABEL: @test_mm_cmp_ps_mask_eq_oq
2008   // CHECK: fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2009   return _mm_cmp_ps_mask(a, b, _CMP_EQ_OQ);
2010 }
2011 
test_mm_cmp_ps_mask_lt_os(__m128 a,__m128 b)2012 __mmask8 test_mm_cmp_ps_mask_lt_os(__m128 a, __m128 b) {
2013   // CHECK-LABEL: test_mm_cmp_ps_mask_lt_os
2014   // CHECK: fcmp olt <4 x float> %{{.*}}, %{{.*}}
2015   return _mm_cmp_ps_mask(a, b, _CMP_LT_OS);
2016 }
2017 
test_mm_cmp_ps_mask_le_os(__m128 a,__m128 b)2018 __mmask8 test_mm_cmp_ps_mask_le_os(__m128 a, __m128 b) {
2019   // CHECK-LABEL: test_mm_cmp_ps_mask_le_os
2020   // CHECK: fcmp ole <4 x float> %{{.*}}, %{{.*}}
2021   return _mm_cmp_ps_mask(a, b, _CMP_LE_OS);
2022 }
2023 
test_mm_cmp_ps_mask_unord_q(__m128 a,__m128 b)2024 __mmask8 test_mm_cmp_ps_mask_unord_q(__m128 a, __m128 b) {
2025   // CHECK-LABEL: test_mm_cmp_ps_mask_unord_q
2026   // CHECK: fcmp uno <4 x float> %{{.*}}, %{{.*}}
2027   return _mm_cmp_ps_mask(a, b, _CMP_UNORD_Q);
2028 }
2029 
test_mm_cmp_ps_mask_neq_uq(__m128 a,__m128 b)2030 __mmask8 test_mm_cmp_ps_mask_neq_uq(__m128 a, __m128 b) {
2031   // CHECK-LABEL: test_mm_cmp_ps_mask_neq_uq
2032   // CHECK: fcmp une <4 x float> %{{.*}}, %{{.*}}
2033   return _mm_cmp_ps_mask(a, b, _CMP_NEQ_UQ);
2034 }
2035 
test_mm_cmp_ps_mask_nlt_us(__m128 a,__m128 b)2036 __mmask8 test_mm_cmp_ps_mask_nlt_us(__m128 a, __m128 b) {
2037   // CHECK-LABEL: test_mm_cmp_ps_mask_nlt_us
2038   // CHECK: fcmp uge <4 x float> %{{.*}}, %{{.*}}
2039   return _mm_cmp_ps_mask(a, b, _CMP_NLT_US);
2040 }
2041 
test_mm_cmp_ps_mask_nle_us(__m128 a,__m128 b)2042 __mmask8 test_mm_cmp_ps_mask_nle_us(__m128 a, __m128 b) {
2043   // CHECK-LABEL: test_mm_cmp_ps_mask_nle_us
2044   // CHECK: fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2045   return _mm_cmp_ps_mask(a, b, _CMP_NLE_US);
2046 }
2047 
test_mm_cmp_ps_mask_ord_q(__m128 a,__m128 b)2048 __mmask8 test_mm_cmp_ps_mask_ord_q(__m128 a, __m128 b) {
2049   // CHECK-LABEL: test_mm_cmp_ps_mask_ord_q
2050   // CHECK: fcmp ord <4 x float> %{{.*}}, %{{.*}}
2051   return _mm_cmp_ps_mask(a, b, _CMP_ORD_Q);
2052 }
2053 
test_mm_cmp_ps_mask_eq_uq(__m128 a,__m128 b)2054 __mmask8 test_mm_cmp_ps_mask_eq_uq(__m128 a, __m128 b) {
2055   // CHECK-LABEL: test_mm_cmp_ps_mask_eq_uq
2056   // CHECK: fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2057   return _mm_cmp_ps_mask(a, b, _CMP_EQ_UQ);
2058 }
2059 
test_mm_cmp_ps_mask_nge_us(__m128 a,__m128 b)2060 __mmask8 test_mm_cmp_ps_mask_nge_us(__m128 a, __m128 b) {
2061   // CHECK-LABEL: test_mm_cmp_ps_mask_nge_us
2062   // CHECK: fcmp ult <4 x float> %{{.*}}, %{{.*}}
2063   return _mm_cmp_ps_mask(a, b, _CMP_NGE_US);
2064 }
2065 
test_mm_cmp_ps_mask_ngt_us(__m128 a,__m128 b)2066 __mmask8 test_mm_cmp_ps_mask_ngt_us(__m128 a, __m128 b) {
2067   // CHECK-LABEL: test_mm_cmp_ps_mask_ngt_us
2068   // CHECK: fcmp ule <4 x float> %{{.*}}, %{{.*}}
2069   return _mm_cmp_ps_mask(a, b, _CMP_NGT_US);
2070 }
2071 
test_mm_cmp_ps_mask_false_oq(__m128 a,__m128 b)2072 __mmask8 test_mm_cmp_ps_mask_false_oq(__m128 a, __m128 b) {
2073   // CHECK-LABEL: test_mm_cmp_ps_mask_false_oq
2074   // CHECK: fcmp false <4 x float> %{{.*}}, %{{.*}}
2075   return _mm_cmp_ps_mask(a, b, _CMP_FALSE_OQ);
2076 }
2077 
test_mm_cmp_ps_mask_neq_oq(__m128 a,__m128 b)2078 __mmask8 test_mm_cmp_ps_mask_neq_oq(__m128 a, __m128 b) {
2079   // CHECK-LABEL: test_mm_cmp_ps_mask_neq_oq
2080   // CHECK: fcmp one <4 x float> %{{.*}}, %{{.*}}
2081   return _mm_cmp_ps_mask(a, b, _CMP_NEQ_OQ);
2082 }
2083 
test_mm_cmp_ps_mask_ge_os(__m128 a,__m128 b)2084 __mmask8 test_mm_cmp_ps_mask_ge_os(__m128 a, __m128 b) {
2085   // CHECK-LABEL: test_mm_cmp_ps_mask_ge_os
2086   // CHECK: fcmp oge <4 x float> %{{.*}}, %{{.*}}
2087   return _mm_cmp_ps_mask(a, b, _CMP_GE_OS);
2088 }
2089 
test_mm_cmp_ps_mask_gt_os(__m128 a,__m128 b)2090 __mmask8 test_mm_cmp_ps_mask_gt_os(__m128 a, __m128 b) {
2091   // CHECK-LABEL: test_mm_cmp_ps_mask_gt_os
2092   // CHECK: fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2093   return _mm_cmp_ps_mask(a, b, _CMP_GT_OS);
2094 }
2095 
test_mm_cmp_ps_mask_true_uq(__m128 a,__m128 b)2096 __mmask8 test_mm_cmp_ps_mask_true_uq(__m128 a, __m128 b) {
2097   // CHECK-LABEL: test_mm_cmp_ps_mask_true_uq
2098   // CHECK: fcmp true <4 x float> %{{.*}}, %{{.*}}
2099   return _mm_cmp_ps_mask(a, b, _CMP_TRUE_UQ);
2100 }
2101 
test_mm_cmp_ps_mask_eq_os(__m128 a,__m128 b)2102 __mmask8 test_mm_cmp_ps_mask_eq_os(__m128 a, __m128 b) {
2103   // CHECK-LABEL: test_mm_cmp_ps_mask_eq_os
2104   // CHECK: fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2105   return _mm_cmp_ps_mask(a, b, _CMP_EQ_OS);
2106 }
2107 
test_mm_cmp_ps_mask_lt_oq(__m128 a,__m128 b)2108 __mmask8 test_mm_cmp_ps_mask_lt_oq(__m128 a, __m128 b) {
2109   // CHECK-LABEL: test_mm_cmp_ps_mask_lt_oq
2110   // CHECK: fcmp olt <4 x float> %{{.*}}, %{{.*}}
2111   return _mm_cmp_ps_mask(a, b, _CMP_LT_OQ);
2112 }
2113 
test_mm_cmp_ps_mask_le_oq(__m128 a,__m128 b)2114 __mmask8 test_mm_cmp_ps_mask_le_oq(__m128 a, __m128 b) {
2115   // CHECK-LABEL: test_mm_cmp_ps_mask_le_oq
2116   // CHECK: fcmp ole <4 x float> %{{.*}}, %{{.*}}
2117   return _mm_cmp_ps_mask(a, b, _CMP_LE_OQ);
2118 }
2119 
test_mm_cmp_ps_mask_unord_s(__m128 a,__m128 b)2120 __mmask8 test_mm_cmp_ps_mask_unord_s(__m128 a, __m128 b) {
2121   // CHECK-LABEL: test_mm_cmp_ps_mask_unord_s
2122   // CHECK: fcmp uno <4 x float> %{{.*}}, %{{.*}}
2123   return _mm_cmp_ps_mask(a, b, _CMP_UNORD_S);
2124 }
2125 
test_mm_cmp_ps_mask_neq_us(__m128 a,__m128 b)2126 __mmask8 test_mm_cmp_ps_mask_neq_us(__m128 a, __m128 b) {
2127   // CHECK-LABEL: test_mm_cmp_ps_mask_neq_us
2128   // CHECK: fcmp une <4 x float> %{{.*}}, %{{.*}}
2129   return _mm_cmp_ps_mask(a, b, _CMP_NEQ_US);
2130 }
2131 
test_mm_cmp_ps_mask_nlt_uq(__m128 a,__m128 b)2132 __mmask8 test_mm_cmp_ps_mask_nlt_uq(__m128 a, __m128 b) {
2133   // CHECK-LABEL: test_mm_cmp_ps_mask_nlt_uq
2134   // CHECK: fcmp uge <4 x float> %{{.*}}, %{{.*}}
2135   return _mm_cmp_ps_mask(a, b, _CMP_NLT_UQ);
2136 }
2137 
test_mm_cmp_ps_mask_nle_uq(__m128 a,__m128 b)2138 __mmask8 test_mm_cmp_ps_mask_nle_uq(__m128 a, __m128 b) {
2139   // CHECK-LABEL: test_mm_cmp_ps_mask_nle_uq
2140   // CHECK: fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2141   return _mm_cmp_ps_mask(a, b, _CMP_NLE_UQ);
2142 }
2143 
test_mm_cmp_ps_mask_ord_s(__m128 a,__m128 b)2144 __mmask8 test_mm_cmp_ps_mask_ord_s(__m128 a, __m128 b) {
2145   // CHECK-LABEL: test_mm_cmp_ps_mask_ord_s
2146   // CHECK: fcmp ord <4 x float> %{{.*}}, %{{.*}}
2147   return _mm_cmp_ps_mask(a, b, _CMP_ORD_S);
2148 }
2149 
test_mm_cmp_ps_mask_eq_us(__m128 a,__m128 b)2150 __mmask8 test_mm_cmp_ps_mask_eq_us(__m128 a, __m128 b) {
2151   // CHECK-LABEL: test_mm_cmp_ps_mask_eq_us
2152   // CHECK: fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2153   return _mm_cmp_ps_mask(a, b, _CMP_EQ_US);
2154 }
2155 
test_mm_cmp_ps_mask_nge_uq(__m128 a,__m128 b)2156 __mmask8 test_mm_cmp_ps_mask_nge_uq(__m128 a, __m128 b) {
2157   // CHECK-LABEL: test_mm_cmp_ps_mask_nge_uq
2158   // CHECK: fcmp ult <4 x float> %{{.*}}, %{{.*}}
2159   return _mm_cmp_ps_mask(a, b, _CMP_NGE_UQ);
2160 }
2161 
test_mm_cmp_ps_mask_ngt_uq(__m128 a,__m128 b)2162 __mmask8 test_mm_cmp_ps_mask_ngt_uq(__m128 a, __m128 b) {
2163   // CHECK-LABEL: test_mm_cmp_ps_mask_ngt_uq
2164   // CHECK: fcmp ule <4 x float> %{{.*}}, %{{.*}}
2165   return _mm_cmp_ps_mask(a, b, _CMP_NGT_UQ);
2166 }
2167 
test_mm_cmp_ps_mask_false_os(__m128 a,__m128 b)2168 __mmask8 test_mm_cmp_ps_mask_false_os(__m128 a, __m128 b) {
2169   // CHECK-LABEL: test_mm_cmp_ps_mask_false_os
2170   // CHECK: fcmp false <4 x float> %{{.*}}, %{{.*}}
2171   return _mm_cmp_ps_mask(a, b, _CMP_FALSE_OS);
2172 }
2173 
test_mm_cmp_ps_mask_neq_os(__m128 a,__m128 b)2174 __mmask8 test_mm_cmp_ps_mask_neq_os(__m128 a, __m128 b) {
2175   // CHECK-LABEL: test_mm_cmp_ps_mask_neq_os
2176   // CHECK: fcmp one <4 x float> %{{.*}}, %{{.*}}
2177   return _mm_cmp_ps_mask(a, b, _CMP_NEQ_OS);
2178 }
2179 
test_mm_cmp_ps_mask_ge_oq(__m128 a,__m128 b)2180 __mmask8 test_mm_cmp_ps_mask_ge_oq(__m128 a, __m128 b) {
2181   // CHECK-LABEL: test_mm_cmp_ps_mask_ge_oq
2182   // CHECK: fcmp oge <4 x float> %{{.*}}, %{{.*}}
2183   return _mm_cmp_ps_mask(a, b, _CMP_GE_OQ);
2184 }
2185 
test_mm_cmp_ps_mask_gt_oq(__m128 a,__m128 b)2186 __mmask8 test_mm_cmp_ps_mask_gt_oq(__m128 a, __m128 b) {
2187   // CHECK-LABEL: test_mm_cmp_ps_mask_gt_oq
2188   // CHECK: fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2189   return _mm_cmp_ps_mask(a, b, _CMP_GT_OQ);
2190 }
2191 
test_mm_cmp_ps_mask_true_us(__m128 a,__m128 b)2192 __mmask8 test_mm_cmp_ps_mask_true_us(__m128 a, __m128 b) {
2193   // CHECK-LABEL: test_mm_cmp_ps_mask_true_us
2194   // CHECK: fcmp true <4 x float> %{{.*}}, %{{.*}}
2195   return _mm_cmp_ps_mask(a, b, _CMP_TRUE_US);
2196 }
2197 
test_mm_mask_cmp_ps_mask_eq_oq(__mmask8 m,__m128 a,__m128 b)2198 __mmask8 test_mm_mask_cmp_ps_mask_eq_oq(__mmask8 m, __m128 a, __m128 b) {
2199   // CHECK-LABEL: @test_mm_mask_cmp_ps_mask_eq_oq
2200   // CHECK: [[CMP:%.*]] = fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2201   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2202   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_EQ_OQ);
2203 }
2204 
test_mm_mask_cmp_ps_mask_lt_os(__mmask8 m,__m128 a,__m128 b)2205 __mmask8 test_mm_mask_cmp_ps_mask_lt_os(__mmask8 m, __m128 a, __m128 b) {
2206   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_lt_os
2207   // CHECK: [[CMP:%.*]] = fcmp olt <4 x float> %{{.*}}, %{{.*}}
2208   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2209   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_LT_OS);
2210 }
2211 
test_mm_mask_cmp_ps_mask_le_os(__mmask8 m,__m128 a,__m128 b)2212 __mmask8 test_mm_mask_cmp_ps_mask_le_os(__mmask8 m, __m128 a, __m128 b) {
2213   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_le_os
2214   // CHECK: [[CMP:%.*]] = fcmp ole <4 x float> %{{.*}}, %{{.*}}
2215   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2216   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_LE_OS);
2217 }
2218 
test_mm_mask_cmp_ps_mask_unord_q(__mmask8 m,__m128 a,__m128 b)2219 __mmask8 test_mm_mask_cmp_ps_mask_unord_q(__mmask8 m, __m128 a, __m128 b) {
2220   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_unord_q
2221   // CHECK: [[CMP:%.*]] = fcmp uno <4 x float> %{{.*}}, %{{.*}}
2222   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2223   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_UNORD_Q);
2224 }
2225 
test_mm_mask_cmp_ps_mask_neq_uq(__mmask8 m,__m128 a,__m128 b)2226 __mmask8 test_mm_mask_cmp_ps_mask_neq_uq(__mmask8 m, __m128 a, __m128 b) {
2227   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_uq
2228   // CHECK: [[CMP:%.*]] = fcmp une <4 x float> %{{.*}}, %{{.*}}
2229   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2230   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_UQ);
2231 }
2232 
test_mm_mask_cmp_ps_mask_nlt_us(__mmask8 m,__m128 a,__m128 b)2233 __mmask8 test_mm_mask_cmp_ps_mask_nlt_us(__mmask8 m, __m128 a, __m128 b) {
2234   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nlt_us
2235   // CHECK: [[CMP:%.*]] = fcmp uge <4 x float> %{{.*}}, %{{.*}}
2236   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2237   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NLT_US);
2238 }
2239 
test_mm_mask_cmp_ps_mask_nle_us(__mmask8 m,__m128 a,__m128 b)2240 __mmask8 test_mm_mask_cmp_ps_mask_nle_us(__mmask8 m, __m128 a, __m128 b) {
2241   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nle_us
2242   // CHECK: [[CMP:%.*]] = fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2243   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2244   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NLE_US);
2245 }
2246 
test_mm_mask_cmp_ps_mask_ord_q(__mmask8 m,__m128 a,__m128 b)2247 __mmask8 test_mm_mask_cmp_ps_mask_ord_q(__mmask8 m, __m128 a, __m128 b) {
2248   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ord_q
2249   // CHECK: [[CMP:%.*]] = fcmp ord <4 x float> %{{.*}}, %{{.*}}
2250   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2251   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_ORD_Q);
2252 }
2253 
test_mm_mask_cmp_ps_mask_eq_uq(__mmask8 m,__m128 a,__m128 b)2254 __mmask8 test_mm_mask_cmp_ps_mask_eq_uq(__mmask8 m, __m128 a, __m128 b) {
2255   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_eq_uq
2256   // CHECK: [[CMP:%.*]] = fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2257   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2258   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_EQ_UQ);
2259 }
2260 
test_mm_mask_cmp_ps_mask_nge_us(__mmask8 m,__m128 a,__m128 b)2261 __mmask8 test_mm_mask_cmp_ps_mask_nge_us(__mmask8 m, __m128 a, __m128 b) {
2262   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nge_us
2263   // CHECK: [[CMP:%.*]] = fcmp ult <4 x float> %{{.*}}, %{{.*}}
2264   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2265   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NGE_US);
2266 }
2267 
test_mm_mask_cmp_ps_mask_ngt_us(__mmask8 m,__m128 a,__m128 b)2268 __mmask8 test_mm_mask_cmp_ps_mask_ngt_us(__mmask8 m, __m128 a, __m128 b) {
2269   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ngt_us
2270   // CHECK: [[CMP:%.*]] = fcmp ule <4 x float> %{{.*}}, %{{.*}}
2271   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2272   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NGT_US);
2273 }
2274 
test_mm_mask_cmp_ps_mask_false_oq(__mmask8 m,__m128 a,__m128 b)2275 __mmask8 test_mm_mask_cmp_ps_mask_false_oq(__mmask8 m, __m128 a, __m128 b) {
2276   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_false_oq
2277   // CHECK: [[CMP:%.*]] = fcmp false <4 x float> %{{.*}}, %{{.*}}
2278   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2279   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_FALSE_OQ);
2280 }
2281 
test_mm_mask_cmp_ps_mask_neq_oq(__mmask8 m,__m128 a,__m128 b)2282 __mmask8 test_mm_mask_cmp_ps_mask_neq_oq(__mmask8 m, __m128 a, __m128 b) {
2283   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_oq
2284   // CHECK: [[CMP:%.*]] = fcmp one <4 x float> %{{.*}}, %{{.*}}
2285   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2286   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_OQ);
2287 }
2288 
test_mm_mask_cmp_ps_mask_ge_os(__mmask8 m,__m128 a,__m128 b)2289 __mmask8 test_mm_mask_cmp_ps_mask_ge_os(__mmask8 m, __m128 a, __m128 b) {
2290   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ge_os
2291   // CHECK: [[CMP:%.*]] = fcmp oge <4 x float> %{{.*}}, %{{.*}}
2292   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2293   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_GE_OS);
2294 }
2295 
test_mm_mask_cmp_ps_mask_gt_os(__mmask8 m,__m128 a,__m128 b)2296 __mmask8 test_mm_mask_cmp_ps_mask_gt_os(__mmask8 m, __m128 a, __m128 b) {
2297   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_gt_os
2298   // CHECK: [[CMP:%.*]] = fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2299   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2300   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_GT_OS);
2301 }
2302 
test_mm_mask_cmp_ps_mask_true_uq(__mmask8 m,__m128 a,__m128 b)2303 __mmask8 test_mm_mask_cmp_ps_mask_true_uq(__mmask8 m, __m128 a, __m128 b) {
2304   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_true_uq
2305   // CHECK: [[CMP:%.*]] = fcmp true <4 x float> %{{.*}}, %{{.*}}
2306   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2307   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_TRUE_UQ);
2308 }
2309 
test_mm_mask_cmp_ps_mask_eq_os(__mmask8 m,__m128 a,__m128 b)2310 __mmask8 test_mm_mask_cmp_ps_mask_eq_os(__mmask8 m, __m128 a, __m128 b) {
2311   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_eq_os
2312   // CHECK: [[CMP:%.*]] = fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2313   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2314   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_EQ_OS);
2315 }
2316 
test_mm_mask_cmp_ps_mask_lt_oq(__mmask8 m,__m128 a,__m128 b)2317 __mmask8 test_mm_mask_cmp_ps_mask_lt_oq(__mmask8 m, __m128 a, __m128 b) {
2318   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_lt_oq
2319   // CHECK: [[CMP:%.*]] = fcmp olt <4 x float> %{{.*}}, %{{.*}}
2320   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2321   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_LT_OQ);
2322 }
2323 
test_mm_mask_cmp_ps_mask_le_oq(__mmask8 m,__m128 a,__m128 b)2324 __mmask8 test_mm_mask_cmp_ps_mask_le_oq(__mmask8 m, __m128 a, __m128 b) {
2325   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_le_oq
2326   // CHECK: [[CMP:%.*]] = fcmp ole <4 x float> %{{.*}}, %{{.*}}
2327   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2328   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_LE_OQ);
2329 }
2330 
test_mm_mask_cmp_ps_mask_unord_s(__mmask8 m,__m128 a,__m128 b)2331 __mmask8 test_mm_mask_cmp_ps_mask_unord_s(__mmask8 m, __m128 a, __m128 b) {
2332   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_unord_s
2333   // CHECK: [[CMP:%.*]] = fcmp uno <4 x float> %{{.*}}, %{{.*}}
2334   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2335   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_UNORD_S);
2336 }
2337 
test_mm_mask_cmp_ps_mask_neq_us(__mmask8 m,__m128 a,__m128 b)2338 __mmask8 test_mm_mask_cmp_ps_mask_neq_us(__mmask8 m, __m128 a, __m128 b) {
2339   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_us
2340   // CHECK: [[CMP:%.*]] = fcmp une <4 x float> %{{.*}}, %{{.*}}
2341   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2342   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_US);
2343 }
2344 
test_mm_mask_cmp_ps_mask_nlt_uq(__mmask8 m,__m128 a,__m128 b)2345 __mmask8 test_mm_mask_cmp_ps_mask_nlt_uq(__mmask8 m, __m128 a, __m128 b) {
2346   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nlt_uq
2347   // CHECK: [[CMP:%.*]] = fcmp uge <4 x float> %{{.*}}, %{{.*}}
2348   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2349   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NLT_UQ);
2350 }
2351 
test_mm_mask_cmp_ps_mask_nle_uq(__mmask8 m,__m128 a,__m128 b)2352 __mmask8 test_mm_mask_cmp_ps_mask_nle_uq(__mmask8 m, __m128 a, __m128 b) {
2353   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nle_uq
2354   // CHECK: [[CMP:%.*]] = fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2355   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2356   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NLE_UQ);
2357 }
2358 
test_mm_mask_cmp_ps_mask_ord_s(__mmask8 m,__m128 a,__m128 b)2359 __mmask8 test_mm_mask_cmp_ps_mask_ord_s(__mmask8 m, __m128 a, __m128 b) {
2360   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ord_s
2361   // CHECK: [[CMP:%.*]] = fcmp ord <4 x float> %{{.*}}, %{{.*}}
2362   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2363   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_ORD_S);
2364 }
2365 
test_mm_mask_cmp_ps_mask_eq_us(__mmask8 m,__m128 a,__m128 b)2366 __mmask8 test_mm_mask_cmp_ps_mask_eq_us(__mmask8 m, __m128 a, __m128 b) {
2367   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_eq_us
2368   // CHECK: [[CMP:%.*]] = fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2369   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2370   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_EQ_US);
2371 }
2372 
test_mm_mask_cmp_ps_mask_nge_uq(__mmask8 m,__m128 a,__m128 b)2373 __mmask8 test_mm_mask_cmp_ps_mask_nge_uq(__mmask8 m, __m128 a, __m128 b) {
2374   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nge_uq
2375   // CHECK: [[CMP:%.*]] = fcmp ult <4 x float> %{{.*}}, %{{.*}}
2376   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2377   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NGE_UQ);
2378 }
2379 
test_mm_mask_cmp_ps_mask_ngt_uq(__mmask8 m,__m128 a,__m128 b)2380 __mmask8 test_mm_mask_cmp_ps_mask_ngt_uq(__mmask8 m, __m128 a, __m128 b) {
2381   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ngt_uq
2382   // CHECK: [[CMP:%.*]] = fcmp ule <4 x float> %{{.*}}, %{{.*}}
2383   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2384   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NGT_UQ);
2385 }
2386 
test_mm_mask_cmp_ps_mask_false_os(__mmask8 m,__m128 a,__m128 b)2387 __mmask8 test_mm_mask_cmp_ps_mask_false_os(__mmask8 m, __m128 a, __m128 b) {
2388   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_false_os
2389   // CHECK: [[CMP:%.*]] = fcmp false <4 x float> %{{.*}}, %{{.*}}
2390   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2391   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_FALSE_OS);
2392 }
2393 
test_mm_mask_cmp_ps_mask_neq_os(__mmask8 m,__m128 a,__m128 b)2394 __mmask8 test_mm_mask_cmp_ps_mask_neq_os(__mmask8 m, __m128 a, __m128 b) {
2395   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_os
2396   // CHECK: [[CMP:%.*]] = fcmp one <4 x float> %{{.*}}, %{{.*}}
2397   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2398   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_OS);
2399 }
2400 
test_mm_mask_cmp_ps_mask_ge_oq(__mmask8 m,__m128 a,__m128 b)2401 __mmask8 test_mm_mask_cmp_ps_mask_ge_oq(__mmask8 m, __m128 a, __m128 b) {
2402   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ge_oq
2403   // CHECK: [[CMP:%.*]] = fcmp oge <4 x float> %{{.*}}, %{{.*}}
2404   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2405   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_GE_OQ);
2406 }
2407 
test_mm_mask_cmp_ps_mask_gt_oq(__mmask8 m,__m128 a,__m128 b)2408 __mmask8 test_mm_mask_cmp_ps_mask_gt_oq(__mmask8 m, __m128 a, __m128 b) {
2409   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_gt_oq
2410   // CHECK: [[CMP:%.*]] = fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2411   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2412   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_GT_OQ);
2413 }
2414 
test_mm_mask_cmp_ps_mask_true_us(__mmask8 m,__m128 a,__m128 b)2415 __mmask8 test_mm_mask_cmp_ps_mask_true_us(__mmask8 m, __m128 a, __m128 b) {
2416   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_true_us
2417   // CHECK: [[CMP:%.*]] = fcmp true <4 x float> %{{.*}}, %{{.*}}
2418   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2419   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_TRUE_US);
2420 }
2421 
test_mm_cmp_pd_mask_eq_oq(__m128d a,__m128d b)2422 __mmask8 test_mm_cmp_pd_mask_eq_oq(__m128d a, __m128d b) {
2423   // CHECK-LABEL: @test_mm_cmp_pd_mask_eq_oq
2424   // CHECK: fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2425   return _mm_cmp_pd_mask(a, b, _CMP_EQ_OQ);
2426 }
2427 
test_mm_cmp_pd_mask_lt_os(__m128d a,__m128d b)2428 __mmask8 test_mm_cmp_pd_mask_lt_os(__m128d a, __m128d b) {
2429   // CHECK-LABEL: test_mm_cmp_pd_mask_lt_os
2430   // CHECK: fcmp olt <2 x double> %{{.*}}, %{{.*}}
2431   return _mm_cmp_pd_mask(a, b, _CMP_LT_OS);
2432 }
2433 
test_mm_cmp_pd_mask_le_os(__m128d a,__m128d b)2434 __mmask8 test_mm_cmp_pd_mask_le_os(__m128d a, __m128d b) {
2435   // CHECK-LABEL: test_mm_cmp_pd_mask_le_os
2436   // CHECK: fcmp ole <2 x double> %{{.*}}, %{{.*}}
2437   return _mm_cmp_pd_mask(a, b, _CMP_LE_OS);
2438 }
2439 
test_mm_cmp_pd_mask_unord_q(__m128d a,__m128d b)2440 __mmask8 test_mm_cmp_pd_mask_unord_q(__m128d a, __m128d b) {
2441   // CHECK-LABEL: test_mm_cmp_pd_mask_unord_q
2442   // CHECK: fcmp uno <2 x double> %{{.*}}, %{{.*}}
2443   return _mm_cmp_pd_mask(a, b, _CMP_UNORD_Q);
2444 }
2445 
test_mm_cmp_pd_mask_neq_uq(__m128d a,__m128d b)2446 __mmask8 test_mm_cmp_pd_mask_neq_uq(__m128d a, __m128d b) {
2447   // CHECK-LABEL: test_mm_cmp_pd_mask_neq_uq
2448   // CHECK: fcmp une <2 x double> %{{.*}}, %{{.*}}
2449   return _mm_cmp_pd_mask(a, b, _CMP_NEQ_UQ);
2450 }
2451 
test_mm_cmp_pd_mask_nlt_us(__m128d a,__m128d b)2452 __mmask8 test_mm_cmp_pd_mask_nlt_us(__m128d a, __m128d b) {
2453   // CHECK-LABEL: test_mm_cmp_pd_mask_nlt_us
2454   // CHECK: fcmp uge <2 x double> %{{.*}}, %{{.*}}
2455   return _mm_cmp_pd_mask(a, b, _CMP_NLT_US);
2456 }
2457 
test_mm_cmp_pd_mask_nle_us(__m128d a,__m128d b)2458 __mmask8 test_mm_cmp_pd_mask_nle_us(__m128d a, __m128d b) {
2459   // CHECK-LABEL: test_mm_cmp_pd_mask_nle_us
2460   // CHECK: fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2461   return _mm_cmp_pd_mask(a, b, _CMP_NLE_US);
2462 }
2463 
test_mm_cmp_pd_mask_ord_q(__m128d a,__m128d b)2464 __mmask8 test_mm_cmp_pd_mask_ord_q(__m128d a, __m128d b) {
2465   // CHECK-LABEL: test_mm_cmp_pd_mask_ord_q
2466   // CHECK: fcmp ord <2 x double> %{{.*}}, %{{.*}}
2467   return _mm_cmp_pd_mask(a, b, _CMP_ORD_Q);
2468 }
2469 
test_mm_cmp_pd_mask_eq_uq(__m128d a,__m128d b)2470 __mmask8 test_mm_cmp_pd_mask_eq_uq(__m128d a, __m128d b) {
2471   // CHECK-LABEL: test_mm_cmp_pd_mask_eq_uq
2472   // CHECK: fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2473   return _mm_cmp_pd_mask(a, b, _CMP_EQ_UQ);
2474 }
2475 
test_mm_cmp_pd_mask_nge_us(__m128d a,__m128d b)2476 __mmask8 test_mm_cmp_pd_mask_nge_us(__m128d a, __m128d b) {
2477   // CHECK-LABEL: test_mm_cmp_pd_mask_nge_us
2478   // CHECK: fcmp ult <2 x double> %{{.*}}, %{{.*}}
2479   return _mm_cmp_pd_mask(a, b, _CMP_NGE_US);
2480 }
2481 
test_mm_cmp_pd_mask_ngt_us(__m128d a,__m128d b)2482 __mmask8 test_mm_cmp_pd_mask_ngt_us(__m128d a, __m128d b) {
2483   // CHECK-LABEL: test_mm_cmp_pd_mask_ngt_us
2484   // CHECK: fcmp ule <2 x double> %{{.*}}, %{{.*}}
2485   return _mm_cmp_pd_mask(a, b, _CMP_NGT_US);
2486 }
2487 
test_mm_cmp_pd_mask_false_oq(__m128d a,__m128d b)2488 __mmask8 test_mm_cmp_pd_mask_false_oq(__m128d a, __m128d b) {
2489   // CHECK-LABEL: test_mm_cmp_pd_mask_false_oq
2490   // CHECK: fcmp false <2 x double> %{{.*}}, %{{.*}}
2491   return _mm_cmp_pd_mask(a, b, _CMP_FALSE_OQ);
2492 }
2493 
test_mm_cmp_pd_mask_neq_oq(__m128d a,__m128d b)2494 __mmask8 test_mm_cmp_pd_mask_neq_oq(__m128d a, __m128d b) {
2495   // CHECK-LABEL: test_mm_cmp_pd_mask_neq_oq
2496   // CHECK: fcmp one <2 x double> %{{.*}}, %{{.*}}
2497   return _mm_cmp_pd_mask(a, b, _CMP_NEQ_OQ);
2498 }
2499 
test_mm_cmp_pd_mask_ge_os(__m128d a,__m128d b)2500 __mmask8 test_mm_cmp_pd_mask_ge_os(__m128d a, __m128d b) {
2501   // CHECK-LABEL: test_mm_cmp_pd_mask_ge_os
2502   // CHECK: fcmp oge <2 x double> %{{.*}}, %{{.*}}
2503   return _mm_cmp_pd_mask(a, b, _CMP_GE_OS);
2504 }
2505 
test_mm_cmp_pd_mask_gt_os(__m128d a,__m128d b)2506 __mmask8 test_mm_cmp_pd_mask_gt_os(__m128d a, __m128d b) {
2507   // CHECK-LABEL: test_mm_cmp_pd_mask_gt_os
2508   // CHECK: fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2509   return _mm_cmp_pd_mask(a, b, _CMP_GT_OS);
2510 }
2511 
test_mm_cmp_pd_mask_true_uq(__m128d a,__m128d b)2512 __mmask8 test_mm_cmp_pd_mask_true_uq(__m128d a, __m128d b) {
2513   // CHECK-LABEL: test_mm_cmp_pd_mask_true_uq
2514   // CHECK: fcmp true <2 x double> %{{.*}}, %{{.*}}
2515   return _mm_cmp_pd_mask(a, b, _CMP_TRUE_UQ);
2516 }
2517 
test_mm_cmp_pd_mask_eq_os(__m128d a,__m128d b)2518 __mmask8 test_mm_cmp_pd_mask_eq_os(__m128d a, __m128d b) {
2519   // CHECK-LABEL: test_mm_cmp_pd_mask_eq_os
2520   // CHECK: fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2521   return _mm_cmp_pd_mask(a, b, _CMP_EQ_OS);
2522 }
2523 
test_mm_cmp_pd_mask_lt_oq(__m128d a,__m128d b)2524 __mmask8 test_mm_cmp_pd_mask_lt_oq(__m128d a, __m128d b) {
2525   // CHECK-LABEL: test_mm_cmp_pd_mask_lt_oq
2526   // CHECK: fcmp olt <2 x double> %{{.*}}, %{{.*}}
2527   return _mm_cmp_pd_mask(a, b, _CMP_LT_OQ);
2528 }
2529 
test_mm_cmp_pd_mask_le_oq(__m128d a,__m128d b)2530 __mmask8 test_mm_cmp_pd_mask_le_oq(__m128d a, __m128d b) {
2531   // CHECK-LABEL: test_mm_cmp_pd_mask_le_oq
2532   // CHECK: fcmp ole <2 x double> %{{.*}}, %{{.*}}
2533   return _mm_cmp_pd_mask(a, b, _CMP_LE_OQ);
2534 }
2535 
test_mm_cmp_pd_mask_unord_s(__m128d a,__m128d b)2536 __mmask8 test_mm_cmp_pd_mask_unord_s(__m128d a, __m128d b) {
2537   // CHECK-LABEL: test_mm_cmp_pd_mask_unord_s
2538   // CHECK: fcmp uno <2 x double> %{{.*}}, %{{.*}}
2539   return _mm_cmp_pd_mask(a, b, _CMP_UNORD_S);
2540 }
2541 
test_mm_cmp_pd_mask_neq_us(__m128d a,__m128d b)2542 __mmask8 test_mm_cmp_pd_mask_neq_us(__m128d a, __m128d b) {
2543   // CHECK-LABEL: test_mm_cmp_pd_mask_neq_us
2544   // CHECK: fcmp une <2 x double> %{{.*}}, %{{.*}}
2545   return _mm_cmp_pd_mask(a, b, _CMP_NEQ_US);
2546 }
2547 
test_mm_cmp_pd_mask_nlt_uq(__m128d a,__m128d b)2548 __mmask8 test_mm_cmp_pd_mask_nlt_uq(__m128d a, __m128d b) {
2549   // CHECK-LABEL: test_mm_cmp_pd_mask_nlt_uq
2550   // CHECK: fcmp uge <2 x double> %{{.*}}, %{{.*}}
2551   return _mm_cmp_pd_mask(a, b, _CMP_NLT_UQ);
2552 }
2553 
test_mm_cmp_pd_mask_nle_uq(__m128d a,__m128d b)2554 __mmask8 test_mm_cmp_pd_mask_nle_uq(__m128d a, __m128d b) {
2555   // CHECK-LABEL: test_mm_cmp_pd_mask_nle_uq
2556   // CHECK: fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2557   return _mm_cmp_pd_mask(a, b, _CMP_NLE_UQ);
2558 }
2559 
test_mm_cmp_pd_mask_ord_s(__m128d a,__m128d b)2560 __mmask8 test_mm_cmp_pd_mask_ord_s(__m128d a, __m128d b) {
2561   // CHECK-LABEL: test_mm_cmp_pd_mask_ord_s
2562   // CHECK: fcmp ord <2 x double> %{{.*}}, %{{.*}}
2563   return _mm_cmp_pd_mask(a, b, _CMP_ORD_S);
2564 }
2565 
test_mm_cmp_pd_mask_eq_us(__m128d a,__m128d b)2566 __mmask8 test_mm_cmp_pd_mask_eq_us(__m128d a, __m128d b) {
2567   // CHECK-LABEL: test_mm_cmp_pd_mask_eq_us
2568   // CHECK: fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2569   return _mm_cmp_pd_mask(a, b, _CMP_EQ_US);
2570 }
2571 
test_mm_cmp_pd_mask_nge_uq(__m128d a,__m128d b)2572 __mmask8 test_mm_cmp_pd_mask_nge_uq(__m128d a, __m128d b) {
2573   // CHECK-LABEL: test_mm_cmp_pd_mask_nge_uq
2574   // CHECK: fcmp ult <2 x double> %{{.*}}, %{{.*}}
2575   return _mm_cmp_pd_mask(a, b, _CMP_NGE_UQ);
2576 }
2577 
test_mm_cmp_pd_mask_ngt_uq(__m128d a,__m128d b)2578 __mmask8 test_mm_cmp_pd_mask_ngt_uq(__m128d a, __m128d b) {
2579   // CHECK-LABEL: test_mm_cmp_pd_mask_ngt_uq
2580   // CHECK: fcmp ule <2 x double> %{{.*}}, %{{.*}}
2581   return _mm_cmp_pd_mask(a, b, _CMP_NGT_UQ);
2582 }
2583 
test_mm_cmp_pd_mask_false_os(__m128d a,__m128d b)2584 __mmask8 test_mm_cmp_pd_mask_false_os(__m128d a, __m128d b) {
2585   // CHECK-LABEL: test_mm_cmp_pd_mask_false_os
2586   // CHECK: fcmp false <2 x double> %{{.*}}, %{{.*}}
2587   return _mm_cmp_pd_mask(a, b, _CMP_FALSE_OS);
2588 }
2589 
test_mm_cmp_pd_mask_neq_os(__m128d a,__m128d b)2590 __mmask8 test_mm_cmp_pd_mask_neq_os(__m128d a, __m128d b) {
2591   // CHECK-LABEL: test_mm_cmp_pd_mask_neq_os
2592   // CHECK: fcmp one <2 x double> %{{.*}}, %{{.*}}
2593   return _mm_cmp_pd_mask(a, b, _CMP_NEQ_OS);
2594 }
2595 
test_mm_cmp_pd_mask_ge_oq(__m128d a,__m128d b)2596 __mmask8 test_mm_cmp_pd_mask_ge_oq(__m128d a, __m128d b) {
2597   // CHECK-LABEL: test_mm_cmp_pd_mask_ge_oq
2598   // CHECK: fcmp oge <2 x double> %{{.*}}, %{{.*}}
2599   return _mm_cmp_pd_mask(a, b, _CMP_GE_OQ);
2600 }
2601 
test_mm_cmp_pd_mask_gt_oq(__m128d a,__m128d b)2602 __mmask8 test_mm_cmp_pd_mask_gt_oq(__m128d a, __m128d b) {
2603   // CHECK-LABEL: test_mm_cmp_pd_mask_gt_oq
2604   // CHECK: fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2605   return _mm_cmp_pd_mask(a, b, _CMP_GT_OQ);
2606 }
2607 
test_mm_cmp_pd_mask_true_us(__m128d a,__m128d b)2608 __mmask8 test_mm_cmp_pd_mask_true_us(__m128d a, __m128d b) {
2609   // CHECK-LABEL: test_mm_cmp_pd_mask_true_us
2610   // CHECK: fcmp true <2 x double> %{{.*}}, %{{.*}}
2611   return _mm_cmp_pd_mask(a, b, _CMP_TRUE_US);
2612 }
2613 
test_mm_mask_cmp_pd_mask_eq_oq(__mmask8 m,__m128d a,__m128d b)2614 __mmask8 test_mm_mask_cmp_pd_mask_eq_oq(__mmask8 m, __m128d a, __m128d b) {
2615   // CHECK-LABEL: @test_mm_mask_cmp_pd_mask_eq_oq
2616   // CHECK: [[CMP:%.*]] = fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2617   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2618   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_EQ_OQ);
2619 }
2620 
test_mm_mask_cmp_pd_mask_lt_os(__mmask8 m,__m128d a,__m128d b)2621 __mmask8 test_mm_mask_cmp_pd_mask_lt_os(__mmask8 m, __m128d a, __m128d b) {
2622   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_lt_os
2623   // CHECK: [[CMP:%.*]] = fcmp olt <2 x double> %{{.*}}, %{{.*}}
2624   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2625   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_LT_OS);
2626 }
2627 
test_mm_mask_cmp_pd_mask_le_os(__mmask8 m,__m128d a,__m128d b)2628 __mmask8 test_mm_mask_cmp_pd_mask_le_os(__mmask8 m, __m128d a, __m128d b) {
2629   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_le_os
2630   // CHECK: [[CMP:%.*]] = fcmp ole <2 x double> %{{.*}}, %{{.*}}
2631   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2632   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_LE_OS);
2633 }
2634 
test_mm_mask_cmp_pd_mask_unord_q(__mmask8 m,__m128d a,__m128d b)2635 __mmask8 test_mm_mask_cmp_pd_mask_unord_q(__mmask8 m, __m128d a, __m128d b) {
2636   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_unord_q
2637   // CHECK: [[CMP:%.*]] = fcmp uno <2 x double> %{{.*}}, %{{.*}}
2638   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2639   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_UNORD_Q);
2640 }
2641 
test_mm_mask_cmp_pd_mask_neq_uq(__mmask8 m,__m128d a,__m128d b)2642 __mmask8 test_mm_mask_cmp_pd_mask_neq_uq(__mmask8 m, __m128d a, __m128d b) {
2643   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_uq
2644   // CHECK: [[CMP:%.*]] = fcmp une <2 x double> %{{.*}}, %{{.*}}
2645   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2646   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_UQ);
2647 }
2648 
test_mm_mask_cmp_pd_mask_nlt_us(__mmask8 m,__m128d a,__m128d b)2649 __mmask8 test_mm_mask_cmp_pd_mask_nlt_us(__mmask8 m, __m128d a, __m128d b) {
2650   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nlt_us
2651   // CHECK: [[CMP:%.*]] = fcmp uge <2 x double> %{{.*}}, %{{.*}}
2652   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2653   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NLT_US);
2654 }
2655 
test_mm_mask_cmp_pd_mask_nle_us(__mmask8 m,__m128d a,__m128d b)2656 __mmask8 test_mm_mask_cmp_pd_mask_nle_us(__mmask8 m, __m128d a, __m128d b) {
2657   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nle_us
2658   // CHECK: [[CMP:%.*]] = fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2659   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2660   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NLE_US);
2661 }
2662 
test_mm_mask_cmp_pd_mask_ord_q(__mmask8 m,__m128d a,__m128d b)2663 __mmask8 test_mm_mask_cmp_pd_mask_ord_q(__mmask8 m, __m128d a, __m128d b) {
2664   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ord_q
2665   // CHECK: [[CMP:%.*]] = fcmp ord <2 x double> %{{.*}}, %{{.*}}
2666   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2667   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_ORD_Q);
2668 }
2669 
test_mm_mask_cmp_pd_mask_eq_uq(__mmask8 m,__m128d a,__m128d b)2670 __mmask8 test_mm_mask_cmp_pd_mask_eq_uq(__mmask8 m, __m128d a, __m128d b) {
2671   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_eq_uq
2672   // CHECK: [[CMP:%.*]] = fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2673   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2674   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_EQ_UQ);
2675 }
2676 
test_mm_mask_cmp_pd_mask_nge_us(__mmask8 m,__m128d a,__m128d b)2677 __mmask8 test_mm_mask_cmp_pd_mask_nge_us(__mmask8 m, __m128d a, __m128d b) {
2678   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nge_us
2679   // CHECK: [[CMP:%.*]] = fcmp ult <2 x double> %{{.*}}, %{{.*}}
2680   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2681   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NGE_US);
2682 }
2683 
test_mm_mask_cmp_pd_mask_ngt_us(__mmask8 m,__m128d a,__m128d b)2684 __mmask8 test_mm_mask_cmp_pd_mask_ngt_us(__mmask8 m, __m128d a, __m128d b) {
2685   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ngt_us
2686   // CHECK: [[CMP:%.*]] = fcmp ule <2 x double> %{{.*}}, %{{.*}}
2687   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2688   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NGT_US);
2689 }
2690 
test_mm_mask_cmp_pd_mask_false_oq(__mmask8 m,__m128d a,__m128d b)2691 __mmask8 test_mm_mask_cmp_pd_mask_false_oq(__mmask8 m, __m128d a, __m128d b) {
2692   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_false_oq
2693   // CHECK: [[CMP:%.*]] = fcmp false <2 x double> %{{.*}}, %{{.*}}
2694   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2695   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_FALSE_OQ);
2696 }
2697 
test_mm_mask_cmp_pd_mask_neq_oq(__mmask8 m,__m128d a,__m128d b)2698 __mmask8 test_mm_mask_cmp_pd_mask_neq_oq(__mmask8 m, __m128d a, __m128d b) {
2699   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_oq
2700   // CHECK: [[CMP:%.*]] = fcmp one <2 x double> %{{.*}}, %{{.*}}
2701   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2702   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_OQ);
2703 }
2704 
test_mm_mask_cmp_pd_mask_ge_os(__mmask8 m,__m128d a,__m128d b)2705 __mmask8 test_mm_mask_cmp_pd_mask_ge_os(__mmask8 m, __m128d a, __m128d b) {
2706   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ge_os
2707   // CHECK: [[CMP:%.*]] = fcmp oge <2 x double> %{{.*}}, %{{.*}}
2708   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2709   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_GE_OS);
2710 }
2711 
test_mm_mask_cmp_pd_mask_gt_os(__mmask8 m,__m128d a,__m128d b)2712 __mmask8 test_mm_mask_cmp_pd_mask_gt_os(__mmask8 m, __m128d a, __m128d b) {
2713   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_gt_os
2714   // CHECK: [[CMP:%.*]] = fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2715   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2716   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_GT_OS);
2717 }
2718 
test_mm_mask_cmp_pd_mask_true_uq(__mmask8 m,__m128d a,__m128d b)2719 __mmask8 test_mm_mask_cmp_pd_mask_true_uq(__mmask8 m, __m128d a, __m128d b) {
2720   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_true_uq
2721   // CHECK: [[CMP:%.*]] = fcmp true <2 x double> %{{.*}}, %{{.*}}
2722   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2723   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_TRUE_UQ);
2724 }
2725 
test_mm_mask_cmp_pd_mask_eq_os(__mmask8 m,__m128d a,__m128d b)2726 __mmask8 test_mm_mask_cmp_pd_mask_eq_os(__mmask8 m, __m128d a, __m128d b) {
2727   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_eq_os
2728   // CHECK: [[CMP:%.*]] = fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2729   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2730   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_EQ_OS);
2731 }
2732 
test_mm_mask_cmp_pd_mask_lt_oq(__mmask8 m,__m128d a,__m128d b)2733 __mmask8 test_mm_mask_cmp_pd_mask_lt_oq(__mmask8 m, __m128d a, __m128d b) {
2734   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_lt_oq
2735   // CHECK: [[CMP:%.*]] = fcmp olt <2 x double> %{{.*}}, %{{.*}}
2736   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2737   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_LT_OQ);
2738 }
2739 
test_mm_mask_cmp_pd_mask_le_oq(__mmask8 m,__m128d a,__m128d b)2740 __mmask8 test_mm_mask_cmp_pd_mask_le_oq(__mmask8 m, __m128d a, __m128d b) {
2741   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_le_oq
2742   // CHECK: [[CMP:%.*]] = fcmp ole <2 x double> %{{.*}}, %{{.*}}
2743   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2744   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_LE_OQ);
2745 }
2746 
test_mm_mask_cmp_pd_mask_unord_s(__mmask8 m,__m128d a,__m128d b)2747 __mmask8 test_mm_mask_cmp_pd_mask_unord_s(__mmask8 m, __m128d a, __m128d b) {
2748   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_unord_s
2749   // CHECK: [[CMP:%.*]] = fcmp uno <2 x double> %{{.*}}, %{{.*}}
2750   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2751   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_UNORD_S);
2752 }
2753 
test_mm_mask_cmp_pd_mask_neq_us(__mmask8 m,__m128d a,__m128d b)2754 __mmask8 test_mm_mask_cmp_pd_mask_neq_us(__mmask8 m, __m128d a, __m128d b) {
2755   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_us
2756   // CHECK: [[CMP:%.*]] = fcmp une <2 x double> %{{.*}}, %{{.*}}
2757   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2758   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_US);
2759 }
2760 
test_mm_mask_cmp_pd_mask_nlt_uq(__mmask8 m,__m128d a,__m128d b)2761 __mmask8 test_mm_mask_cmp_pd_mask_nlt_uq(__mmask8 m, __m128d a, __m128d b) {
2762   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nlt_uq
2763   // CHECK: [[CMP:%.*]] = fcmp uge <2 x double> %{{.*}}, %{{.*}}
2764   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2765   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NLT_UQ);
2766 }
2767 
test_mm_mask_cmp_pd_mask_nle_uq(__mmask8 m,__m128d a,__m128d b)2768 __mmask8 test_mm_mask_cmp_pd_mask_nle_uq(__mmask8 m, __m128d a, __m128d b) {
2769   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nle_uq
2770   // CHECK: [[CMP:%.*]] = fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2771   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2772   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NLE_UQ);
2773 }
2774 
test_mm_mask_cmp_pd_mask_ord_s(__mmask8 m,__m128d a,__m128d b)2775 __mmask8 test_mm_mask_cmp_pd_mask_ord_s(__mmask8 m, __m128d a, __m128d b) {
2776   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ord_s
2777   // CHECK: [[CMP:%.*]] = fcmp ord <2 x double> %{{.*}}, %{{.*}}
2778   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2779   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_ORD_S);
2780 }
2781 
test_mm_mask_cmp_pd_mask_eq_us(__mmask8 m,__m128d a,__m128d b)2782 __mmask8 test_mm_mask_cmp_pd_mask_eq_us(__mmask8 m, __m128d a, __m128d b) {
2783   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_eq_us
2784   // CHECK: [[CMP:%.*]] = fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2785   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2786   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_EQ_US);
2787 }
2788 
test_mm_mask_cmp_pd_mask_nge_uq(__mmask8 m,__m128d a,__m128d b)2789 __mmask8 test_mm_mask_cmp_pd_mask_nge_uq(__mmask8 m, __m128d a, __m128d b) {
2790   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nge_uq
2791   // CHECK: [[CMP:%.*]] = fcmp ult <2 x double> %{{.*}}, %{{.*}}
2792   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2793   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NGE_UQ);
2794 }
2795 
test_mm_mask_cmp_pd_mask_ngt_uq(__mmask8 m,__m128d a,__m128d b)2796 __mmask8 test_mm_mask_cmp_pd_mask_ngt_uq(__mmask8 m, __m128d a, __m128d b) {
2797   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ngt_uq
2798   // CHECK: [[CMP:%.*]] = fcmp ule <2 x double> %{{.*}}, %{{.*}}
2799   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2800   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NGT_UQ);
2801 }
2802 
test_mm_mask_cmp_pd_mask_false_os(__mmask8 m,__m128d a,__m128d b)2803 __mmask8 test_mm_mask_cmp_pd_mask_false_os(__mmask8 m, __m128d a, __m128d b) {
2804   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_false_os
2805   // CHECK: [[CMP:%.*]] = fcmp false <2 x double> %{{.*}}, %{{.*}}
2806   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2807   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_FALSE_OS);
2808 }
2809 
test_mm_mask_cmp_pd_mask_neq_os(__mmask8 m,__m128d a,__m128d b)2810 __mmask8 test_mm_mask_cmp_pd_mask_neq_os(__mmask8 m, __m128d a, __m128d b) {
2811   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_os
2812   // CHECK: [[CMP:%.*]] = fcmp one <2 x double> %{{.*}}, %{{.*}}
2813   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2814   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_OS);
2815 }
2816 
test_mm_mask_cmp_pd_mask_ge_oq(__mmask8 m,__m128d a,__m128d b)2817 __mmask8 test_mm_mask_cmp_pd_mask_ge_oq(__mmask8 m, __m128d a, __m128d b) {
2818   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ge_oq
2819   // CHECK: [[CMP:%.*]] = fcmp oge <2 x double> %{{.*}}, %{{.*}}
2820   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2821   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_GE_OQ);
2822 }
2823 
test_mm_mask_cmp_pd_mask_gt_oq(__mmask8 m,__m128d a,__m128d b)2824 __mmask8 test_mm_mask_cmp_pd_mask_gt_oq(__mmask8 m, __m128d a, __m128d b) {
2825   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_gt_oq
2826   // CHECK: [[CMP:%.*]] = fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2827   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2828   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_GT_OQ);
2829 }
2830 
test_mm_mask_cmp_pd_mask_true_us(__mmask8 m,__m128d a,__m128d b)2831 __mmask8 test_mm_mask_cmp_pd_mask_true_us(__mmask8 m, __m128d a, __m128d b) {
2832   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_true_us
2833   // CHECK: [[CMP:%.*]] = fcmp true <2 x double> %{{.*}}, %{{.*}}
2834   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2835   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_TRUE_US);
2836 }
2837 
test_mm_mask_fmadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)2838 __m128d test_mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
2839   // CHECK-LABEL: @test_mm_mask_fmadd_pd
2840   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2841   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2842   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2843   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2844   return _mm_mask_fmadd_pd(__A, __U, __B, __C);
2845 }
2846 
test_mm_mask_fmsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)2847 __m128d test_mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
2848   // CHECK-LABEL: @test_mm_mask_fmsub_pd
2849   // CHECK: fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.*}}
2850   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2851   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2852   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2853   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2854   return _mm_mask_fmsub_pd(__A, __U, __B, __C);
2855 }
2856 
test_mm_mask3_fmadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)2857 __m128d test_mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
2858   // CHECK-LABEL: @test_mm_mask3_fmadd_pd
2859   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2860   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2861   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2862   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2863   return _mm_mask3_fmadd_pd(__A, __B, __C, __U);
2864 }
2865 
test_mm_mask3_fnmadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)2866 __m128d test_mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
2867   // CHECK-LABEL: @test_mm_mask3_fnmadd_pd
2868   // CHECK: fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.*}}
2869   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2870   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2871   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2872   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2873   return _mm_mask3_fnmadd_pd(__A, __B, __C, __U);
2874 }
2875 
test_mm_maskz_fmadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)2876 __m128d test_mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
2877   // CHECK-LABEL: @test_mm_maskz_fmadd_pd
2878   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2879   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2880   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2881   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2882   return _mm_maskz_fmadd_pd(__U, __A, __B, __C);
2883 }
2884 
test_mm_maskz_fmsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)2885 __m128d test_mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
2886   // CHECK-LABEL: @test_mm_maskz_fmsub_pd
2887   // CHECK: fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.*}}
2888   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2889   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2890   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2891   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2892   return _mm_maskz_fmsub_pd(__U, __A, __B, __C);
2893 }
2894 
test_mm_maskz_fnmadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)2895 __m128d test_mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
2896   // CHECK-LABEL: @test_mm_maskz_fnmadd_pd
2897   // CHECK: fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.*}}
2898   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2899   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2900   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2901   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2902   return _mm_maskz_fnmadd_pd(__U, __A, __B, __C);
2903 }
2904 
test_mm_maskz_fnmsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)2905 __m128d test_mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
2906   // CHECK-LABEL: @test_mm_maskz_fnmsub_pd
2907   // CHECK: fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.*}}
2908   // CHECK: fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.*}}
2909   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2910   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2911   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2912   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2913   return _mm_maskz_fnmsub_pd(__U, __A, __B, __C);
2914 }
2915 
test_mm256_mask_fmadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)2916 __m256d test_mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
2917   // CHECK-LABEL: @test_mm256_mask_fmadd_pd
2918   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2919   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2920   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2921   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2922   return _mm256_mask_fmadd_pd(__A, __U, __B, __C);
2923 }
2924 
test_mm256_mask_fmsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)2925 __m256d test_mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
2926   // CHECK-LABEL: @test_mm256_mask_fmsub_pd
2927   // CHECK: fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.*}}
2928   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2929   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2930   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2931   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2932   return _mm256_mask_fmsub_pd(__A, __U, __B, __C);
2933 }
2934 
test_mm256_mask3_fmadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)2935 __m256d test_mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
2936   // CHECK-LABEL: @test_mm256_mask3_fmadd_pd
2937   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2938   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2939   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2940   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2941   return _mm256_mask3_fmadd_pd(__A, __B, __C, __U);
2942 }
2943 
test_mm256_mask3_fnmadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)2944 __m256d test_mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
2945   // CHECK-LABEL: @test_mm256_mask3_fnmadd_pd
2946   // CHECK: fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.*}}
2947   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2948   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2949   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2950   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2951   return _mm256_mask3_fnmadd_pd(__A, __B, __C, __U);
2952 }
2953 
test_mm256_maskz_fmadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)2954 __m256d test_mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
2955   // CHECK-LABEL: @test_mm256_maskz_fmadd_pd
2956   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2957   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2958   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2959   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2960   return _mm256_maskz_fmadd_pd(__U, __A, __B, __C);
2961 }
2962 
test_mm256_maskz_fmsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)2963 __m256d test_mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
2964   // CHECK-LABEL: @test_mm256_maskz_fmsub_pd
2965   // CHECK: fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.*}}
2966   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2967   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2968   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2969   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2970   return _mm256_maskz_fmsub_pd(__U, __A, __B, __C);
2971 }
2972 
test_mm256_maskz_fnmadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)2973 __m256d test_mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
2974   // CHECK-LABEL: @test_mm256_maskz_fnmadd_pd
2975   // CHECK: fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.*}}
2976   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2977   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2978   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2979   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2980   return _mm256_maskz_fnmadd_pd(__U, __A, __B, __C);
2981 }
2982 
test_mm256_maskz_fnmsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)2983 __m256d test_mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
2984   // CHECK-LABEL: @test_mm256_maskz_fnmsub_pd
2985   // CHECK: fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.*}}
2986   // CHECK: fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.*}}
2987   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2988   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
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 double> %{{.*}}, <4 x double> %{{.*}}
2991   return _mm256_maskz_fnmsub_pd(__U, __A, __B, __C);
2992 }
2993 
test_mm_mask_fmadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)2994 __m128 test_mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
2995   // CHECK-LABEL: @test_mm_mask_fmadd_ps
2996   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
2997   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2998   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2999   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3000   return _mm_mask_fmadd_ps(__A, __U, __B, __C);
3001 }
3002 
test_mm_mask_fmsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3003 __m128 test_mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3004   // CHECK-LABEL: @test_mm_mask_fmsub_ps
3005   // CHECK: fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3006   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3007   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3008   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3009   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3010   return _mm_mask_fmsub_ps(__A, __U, __B, __C);
3011 }
3012 
test_mm_mask3_fmadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3013 __m128 test_mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3014   // CHECK-LABEL: @test_mm_mask3_fmadd_ps
3015   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3016   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3017   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3018   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3019   return _mm_mask3_fmadd_ps(__A, __B, __C, __U);
3020 }
3021 
test_mm_mask3_fnmadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3022 __m128 test_mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3023   // CHECK-LABEL: @test_mm_mask3_fnmadd_ps
3024   // CHECK: fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3025   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3026   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3027   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3028   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3029   return _mm_mask3_fnmadd_ps(__A, __B, __C, __U);
3030 }
3031 
test_mm_maskz_fmadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3032 __m128 test_mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3033   // CHECK-LABEL: @test_mm_maskz_fmadd_ps
3034   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3035   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3036   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3037   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3038   return _mm_maskz_fmadd_ps(__U, __A, __B, __C);
3039 }
3040 
test_mm_maskz_fmsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3041 __m128 test_mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3042   // CHECK-LABEL: @test_mm_maskz_fmsub_ps
3043   // CHECK: fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3044   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3045   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3046   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3047   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3048   return _mm_maskz_fmsub_ps(__U, __A, __B, __C);
3049 }
3050 
test_mm_maskz_fnmadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3051 __m128 test_mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3052   // CHECK-LABEL: @test_mm_maskz_fnmadd_ps
3053   // CHECK: fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3054   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3055   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3056   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3057   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3058   return _mm_maskz_fnmadd_ps(__U, __A, __B, __C);
3059 }
3060 
test_mm_maskz_fnmsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3061 __m128 test_mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3062   // CHECK-LABEL: @test_mm_maskz_fnmsub_ps
3063   // CHECK: fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3064   // CHECK: fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3065   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3066   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3067   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3068   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3069   return _mm_maskz_fnmsub_ps(__U, __A, __B, __C);
3070 }
3071 
test_mm256_mask_fmadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3072 __m256 test_mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3073   // CHECK-LABEL: @test_mm256_mask_fmadd_ps
3074   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3075   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3076   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3077   return _mm256_mask_fmadd_ps(__A, __U, __B, __C);
3078 }
3079 
test_mm256_mask_fmsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3080 __m256 test_mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3081   // CHECK-LABEL: @test_mm256_mask_fmsub_ps
3082   // CHECK: fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3083   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3084   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3085   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3086   return _mm256_mask_fmsub_ps(__A, __U, __B, __C);
3087 }
3088 
test_mm256_mask3_fmadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3089 __m256 test_mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3090   // CHECK-LABEL: @test_mm256_mask3_fmadd_ps
3091   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3092   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3093   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3094   return _mm256_mask3_fmadd_ps(__A, __B, __C, __U);
3095 }
3096 
test_mm256_mask3_fnmadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3097 __m256 test_mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3098   // CHECK-LABEL: @test_mm256_mask3_fnmadd_ps
3099   // CHECK: fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3100   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3101   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3102   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3103   return _mm256_mask3_fnmadd_ps(__A, __B, __C, __U);
3104 }
3105 
test_mm256_maskz_fmadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3106 __m256 test_mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3107   // CHECK-LABEL: @test_mm256_maskz_fmadd_ps
3108   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3109   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3110   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3111   return _mm256_maskz_fmadd_ps(__U, __A, __B, __C);
3112 }
3113 
test_mm256_maskz_fmsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3114 __m256 test_mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3115   // CHECK-LABEL: @test_mm256_maskz_fmsub_ps
3116   // CHECK: fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3117   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3118   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3119   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3120   return _mm256_maskz_fmsub_ps(__U, __A, __B, __C);
3121 }
3122 
test_mm256_maskz_fnmadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3123 __m256 test_mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3124   // CHECK-LABEL: @test_mm256_maskz_fnmadd_ps
3125   // CHECK: fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3126   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3127   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3128   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3129   return _mm256_maskz_fnmadd_ps(__U, __A, __B, __C);
3130 }
3131 
test_mm256_maskz_fnmsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3132 __m256 test_mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3133   // CHECK-LABEL: @test_mm256_maskz_fnmsub_ps
3134   // CHECK: fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3135   // CHECK: fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3136   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3137   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3138   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3139   return _mm256_maskz_fnmsub_ps(__U, __A, __B, __C);
3140 }
3141 
test_mm_mask_fmaddsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3142 __m128d test_mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3143   // CHECK-LABEL: @test_mm_mask_fmaddsub_pd
3144   // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3145   // CHECK: [[NEG:%.+]] = fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.+}}
3146   // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3147   // CHECK: shufflevector <2 x double> [[SUB]], <2 x double> [[ADD]], <2 x i32> <i32 0, i32 3>
3148   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
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_mask_fmaddsub_pd(__A, __U, __B, __C);
3152 }
3153 
test_mm_mask_fmsubadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3154 __m128d test_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3155   // CHECK-LABEL: @test_mm_mask_fmsubadd_pd
3156   // CHECK: [[NEG:%.+]] = fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.+}}
3157   // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3158   // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3159   // CHECK: shufflevector <2 x double> [[ADD]], <2 x double> [[SUB]], <2 x i32> <i32 0, i32 3>
3160   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3161   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3162   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3163   return _mm_mask_fmsubadd_pd(__A, __U, __B, __C);
3164 }
3165 
test_mm_mask3_fmaddsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3166 __m128d test_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3167   // CHECK-LABEL: @test_mm_mask3_fmaddsub_pd
3168   // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3169   // CHECK: [[NEG:%.+]] = fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.+}}
3170   // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3171   // CHECK: shufflevector <2 x double> [[SUB]], <2 x double> [[ADD]], <2 x i32> <i32 0, i32 3>
3172   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3173   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3174   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3175   return _mm_mask3_fmaddsub_pd(__A, __B, __C, __U);
3176 }
3177 
test_mm_maskz_fmaddsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)3178 __m128d test_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
3179   // CHECK-LABEL: @test_mm_maskz_fmaddsub_pd
3180   // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3181   // CHECK: [[NEG:%.+]] = fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.+}}
3182   // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3183   // CHECK: shufflevector <2 x double> [[SUB]], <2 x double> [[ADD]], <2 x i32> <i32 0, i32 3>
3184   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3185   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3186   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3187   return _mm_maskz_fmaddsub_pd(__U, __A, __B, __C);
3188 }
3189 
test_mm_maskz_fmsubadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)3190 __m128d test_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
3191   // CHECK-LABEL: @test_mm_maskz_fmsubadd_pd
3192   // CHECK: [[NEG:%.+]] = fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.+}}
3193   // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3194   // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3195   // CHECK: shufflevector <2 x double> [[ADD]], <2 x double> [[SUB]], <2 x i32> <i32 0, i32 3>
3196   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3197   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3198   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3199   return _mm_maskz_fmsubadd_pd(__U, __A, __B, __C);
3200 }
3201 
test_mm256_mask_fmaddsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3202 __m256d test_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3203   // CHECK-LABEL: @test_mm256_mask_fmaddsub_pd
3204   // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3205   // CHECK: [[NEG:%.+]] = fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.+}}
3206   // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3207   // CHECK: shufflevector <4 x double> [[SUB]], <4 x double> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3208   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3209   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3210   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3211   return _mm256_mask_fmaddsub_pd(__A, __U, __B, __C);
3212 }
3213 
test_mm256_mask_fmsubadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3214 __m256d test_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3215   // CHECK-LABEL: @test_mm256_mask_fmsubadd_pd
3216   // CHECK: [[NEG:%.+]] = fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.+}}
3217   // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]]
3218   // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3219   // CHECK: shufflevector <4 x double> [[ADD]], <4 x double> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3220   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
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 double> %{{.*}}, <4 x double> %{{.*}}
3223   return _mm256_mask_fmsubadd_pd(__A, __U, __B, __C);
3224 }
3225 
test_mm256_mask3_fmaddsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3226 __m256d test_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3227   // CHECK-LABEL: @test_mm256_mask3_fmaddsub_pd
3228   // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3229   // CHECK: [[NEG:%.+]] = fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.+}}
3230   // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3231   // CHECK: shufflevector <4 x double> [[SUB]], <4 x double> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3232   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3233   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3234   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3235   return _mm256_mask3_fmaddsub_pd(__A, __B, __C, __U);
3236 }
3237 
test_mm256_maskz_fmaddsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)3238 __m256d test_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
3239   // CHECK-LABEL: @test_mm256_maskz_fmaddsub_pd
3240   // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3241   // CHECK: [[NEG:%.+]] = fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.+}}
3242   // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3243   // CHECK: shufflevector <4 x double> [[SUB]], <4 x double> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3244   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3245   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3246   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3247   return _mm256_maskz_fmaddsub_pd(__U, __A, __B, __C);
3248 }
3249 
test_mm256_maskz_fmsubadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)3250 __m256d test_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
3251   // CHECK-LABEL: @test_mm256_maskz_fmsubadd_pd
3252   // CHECK: [[NEG:%.+]] = fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.+}}
3253   // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]]
3254   // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3255   // CHECK: shufflevector <4 x double> [[ADD]], <4 x double> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3256   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3257   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3258   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3259   return _mm256_maskz_fmsubadd_pd(__U, __A, __B, __C);
3260 }
3261 
test_mm_mask_fmaddsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3262 __m128 test_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3263   // CHECK-LABEL: @test_mm_mask_fmaddsub_ps
3264   // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3265   // CHECK: [[NEG:%.+]] = fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.+}}
3266   // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3267   // CHECK: shufflevector <4 x float> [[SUB]], <4 x float> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3268   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3269   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3270   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3271   return _mm_mask_fmaddsub_ps(__A, __U, __B, __C);
3272 }
3273 
test_mm_mask_fmsubadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3274 __m128 test_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3275   // CHECK-LABEL: @test_mm_mask_fmsubadd_ps
3276   // CHECK: [[NEG:%.+]] = fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.+}}
3277   // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3278   // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3279   // CHECK: shufflevector <4 x float> [[ADD]], <4 x float> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3280   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3281   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3282   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3283   return _mm_mask_fmsubadd_ps(__A, __U, __B, __C);
3284 }
3285 
test_mm_mask3_fmaddsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3286 __m128 test_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3287   // CHECK-LABEL: @test_mm_mask3_fmaddsub_ps
3288   // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3289   // CHECK: [[NEG:%.+]] = fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.+}}
3290   // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3291   // CHECK: shufflevector <4 x float> [[SUB]], <4 x float> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3292   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3293   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3294   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3295   return _mm_mask3_fmaddsub_ps(__A, __B, __C, __U);
3296 }
3297 
test_mm_maskz_fmaddsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3298 __m128 test_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3299   // CHECK-LABEL: @test_mm_maskz_fmaddsub_ps
3300   // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3301   // CHECK: [[NEG:%.+]] = fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.+}}
3302   // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3303   // CHECK: shufflevector <4 x float> [[SUB]], <4 x float> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3304   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3305   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3306   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3307   return _mm_maskz_fmaddsub_ps(__U, __A, __B, __C);
3308 }
3309 
test_mm_maskz_fmsubadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3310 __m128 test_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3311   // CHECK-LABEL: @test_mm_maskz_fmsubadd_ps
3312   // CHECK: [[NEG:%.+]] = fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.+}}
3313   // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3314   // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3315   // CHECK: shufflevector <4 x float> [[ADD]], <4 x float> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3316   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3317   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3318   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3319   return _mm_maskz_fmsubadd_ps(__U, __A, __B, __C);
3320 }
3321 
test_mm256_mask_fmaddsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3322 __m256 test_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3323   // CHECK-LABEL: @test_mm256_mask_fmaddsub_ps
3324   // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3325   // CHECK: [[NEG:%.+]] = fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3326   // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3327   // CHECK: shufflevector <8 x float> [[SUB]], <8 x float> [[ADD]], <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15>
3328   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3329   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3330   return _mm256_mask_fmaddsub_ps(__A, __U, __B, __C);
3331 }
3332 
test_mm256_mask_fmsubadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3333 __m256 test_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3334   // CHECK-LABEL: @test_mm256_mask_fmsubadd_ps
3335   // CHECK: [[NEG:%.+]] = fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3336   // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3337   // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3338   // CHECK: shufflevector <8 x float> [[ADD]], <8 x float> [[SUB]], <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15>
3339   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3340   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3341   return _mm256_mask_fmsubadd_ps(__A, __U, __B, __C);
3342 }
3343 
test_mm256_mask3_fmaddsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3344 __m256 test_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3345   // CHECK-LABEL: @test_mm256_mask3_fmaddsub_ps
3346   // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3347   // CHECK: [[NEG:%.+]] = fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3348   // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3349   // CHECK: shufflevector <8 x float> [[SUB]], <8 x float> [[ADD]], <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15>
3350   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3351   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3352   return _mm256_mask3_fmaddsub_ps(__A, __B, __C, __U);
3353 }
3354 
test_mm256_maskz_fmaddsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3355 __m256 test_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3356   // CHECK-LABEL: @test_mm256_maskz_fmaddsub_ps
3357   // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3358   // CHECK: [[NEG:%.+]] = fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3359   // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3360   // CHECK: shufflevector <8 x float> [[SUB]], <8 x float> [[ADD]], <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15>
3361   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3362   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3363   return _mm256_maskz_fmaddsub_ps(__U, __A, __B, __C);
3364 }
3365 
test_mm256_maskz_fmsubadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3366 __m256 test_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3367   // CHECK-LABEL: @test_mm256_maskz_fmsubadd_ps
3368   // CHECK: [[NEG:%.+]] = fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3369   // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3370   // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3371   // CHECK: shufflevector <8 x float> [[ADD]], <8 x float> [[SUB]], <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15>
3372   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3373   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3374   return _mm256_maskz_fmsubadd_ps(__U, __A, __B, __C);
3375 }
3376 
test_mm_mask3_fmsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3377 __m128d test_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3378   // CHECK-LABEL: @test_mm_mask3_fmsub_pd
3379   // CHECK: fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.*}}
3380   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3381   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3382   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3383   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3384   return _mm_mask3_fmsub_pd(__A, __B, __C, __U);
3385 }
3386 
test_mm256_mask3_fmsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3387 __m256d test_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3388   // CHECK-LABEL: @test_mm256_mask3_fmsub_pd
3389   // CHECK: fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.*}}
3390   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3391   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3392   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3393   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3394   return _mm256_mask3_fmsub_pd(__A, __B, __C, __U);
3395 }
3396 
test_mm_mask3_fmsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3397 __m128 test_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3398   // CHECK-LABEL: @test_mm_mask3_fmsub_ps
3399   // CHECK: fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3400   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3401   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3402   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3403   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3404   return _mm_mask3_fmsub_ps(__A, __B, __C, __U);
3405 }
3406 
test_mm256_mask3_fmsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3407 __m256 test_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3408   // CHECK-LABEL: @test_mm256_mask3_fmsub_ps
3409   // CHECK: fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3410   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3411   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3412   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3413   return _mm256_mask3_fmsub_ps(__A, __B, __C, __U);
3414 }
3415 
test_mm_mask3_fmsubadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3416 __m128d test_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3417   // CHECK-LABEL: @test_mm_mask3_fmsubadd_pd
3418   // CHECK: [[NEG:%.+]] = fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.+}}
3419   // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3420   // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3421   // CHECK: shufflevector <2 x double> [[ADD]], <2 x double> [[SUB]], <2 x i32> <i32 0, i32 3>
3422   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3423   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3424   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3425   return _mm_mask3_fmsubadd_pd(__A, __B, __C, __U);
3426 }
3427 
test_mm256_mask3_fmsubadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3428 __m256d test_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3429   // CHECK-LABEL: @test_mm256_mask3_fmsubadd_pd
3430   // CHECK: [[NEG:%.+]] = fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.+}}
3431   // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]]
3432   // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3433   // CHECK: shufflevector <4 x double> [[ADD]], <4 x double> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3434   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3435   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3436   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3437   return _mm256_mask3_fmsubadd_pd(__A, __B, __C, __U);
3438 }
3439 
test_mm_mask3_fmsubadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3440 __m128 test_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3441   // CHECK-LABEL: @test_mm_mask3_fmsubadd_ps
3442   // CHECK: [[NEG:%.+]] = fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.+}}
3443   // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3444   // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3445   // CHECK: shufflevector <4 x float> [[ADD]], <4 x float> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3446   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3447   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3448   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3449   return _mm_mask3_fmsubadd_ps(__A, __B, __C, __U);
3450 }
3451 
test_mm256_mask3_fmsubadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3452 __m256 test_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3453   // CHECK-LABEL: @test_mm256_mask3_fmsubadd_ps
3454   // CHECK: [[NEG:%.+]] = fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3455   // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3456   // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3457   // CHECK: shufflevector <8 x float> [[ADD]], <8 x float> [[SUB]], <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15>
3458   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3459   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3460   return _mm256_mask3_fmsubadd_ps(__A, __B, __C, __U);
3461 }
3462 
test_mm_mask_fnmadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3463 __m128d test_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3464   // CHECK-LABEL: @test_mm_mask_fnmadd_pd
3465   // CHECK: fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.*}}
3466   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3467   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3468   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3469   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3470   return _mm_mask_fnmadd_pd(__A, __U, __B, __C);
3471 }
3472 
test_mm256_mask_fnmadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3473 __m256d test_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3474   // CHECK-LABEL: @test_mm256_mask_fnmadd_pd
3475   // CHECK: fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.*}}
3476   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3477   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3478   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3479   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3480   return _mm256_mask_fnmadd_pd(__A, __U, __B, __C);
3481 }
3482 
test_mm_mask_fnmadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3483 __m128 test_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3484   // CHECK-LABEL: @test_mm_mask_fnmadd_ps
3485   // CHECK: fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3486   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3487   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3488   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3489   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3490   return _mm_mask_fnmadd_ps(__A, __U, __B, __C);
3491 }
3492 
test_mm256_mask_fnmadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3493 __m256 test_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3494   // CHECK-LABEL: @test_mm256_mask_fnmadd_ps
3495   // CHECK: fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3496   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3497   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3498   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3499   return _mm256_mask_fnmadd_ps(__A, __U, __B, __C);
3500 }
3501 
test_mm_mask_fnmsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3502 __m128d test_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3503   // CHECK-LABEL: @test_mm_mask_fnmsub_pd
3504   // CHECK: fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.*}}
3505   // CHECK: fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.*}}
3506   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3507   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3508   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3509   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3510   return _mm_mask_fnmsub_pd(__A, __U, __B, __C);
3511 }
3512 
test_mm_mask3_fnmsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3513 __m128d test_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3514   // CHECK-LABEL: @test_mm_mask3_fnmsub_pd
3515   // CHECK: fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.*}}
3516   // CHECK: fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %{{.*}}
3517   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3518   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3519   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3520   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3521   return _mm_mask3_fnmsub_pd(__A, __B, __C, __U);
3522 }
3523 
test_mm256_mask_fnmsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3524 __m256d test_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3525   // CHECK-LABEL: @test_mm256_mask_fnmsub_pd
3526   // CHECK: fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.*}}
3527   // CHECK: fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.*}}
3528   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3529   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3530   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3531   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3532   return _mm256_mask_fnmsub_pd(__A, __U, __B, __C);
3533 }
3534 
test_mm256_mask3_fnmsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3535 __m256d test_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3536   // CHECK-LABEL: @test_mm256_mask3_fnmsub_pd
3537   // CHECK: fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.*}}
3538   // CHECK: fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %{{.*}}
3539   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3540   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3541   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3542   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3543   return _mm256_mask3_fnmsub_pd(__A, __B, __C, __U);
3544 }
3545 
test_mm_mask_fnmsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3546 __m128 test_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3547   // CHECK-LABEL: @test_mm_mask_fnmsub_ps
3548   // CHECK: fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3549   // CHECK: fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3550   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3551   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3552   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3553   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3554   return _mm_mask_fnmsub_ps(__A, __U, __B, __C);
3555 }
3556 
test_mm_mask3_fnmsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3557 __m128 test_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3558   // CHECK-LABEL: @test_mm_mask3_fnmsub_ps
3559   // CHECK: fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3560   // CHECK: fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3561   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3562   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3563   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3564   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3565   return _mm_mask3_fnmsub_ps(__A, __B, __C, __U);
3566 }
3567 
test_mm256_mask_fnmsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3568 __m256 test_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3569   // CHECK-LABEL: @test_mm256_mask_fnmsub_ps
3570   // CHECK: fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3571   // CHECK: fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3572   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3573   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3574   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3575   return _mm256_mask_fnmsub_ps(__A, __U, __B, __C);
3576 }
3577 
test_mm256_mask3_fnmsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3578 __m256 test_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3579   // CHECK-LABEL: @test_mm256_mask3_fnmsub_ps
3580   // CHECK: fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3581   // CHECK: fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %{{.*}}
3582   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3583   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3584   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3585   return _mm256_mask3_fnmsub_ps(__A, __B, __C, __U);
3586 }
3587 
test_mm_mask_add_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3588 __m128d test_mm_mask_add_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3589   // CHECK-LABEL: @test_mm_mask_add_pd
3590   // CHECK: fadd <2 x double> %{{.*}}, %{{.*}}
3591   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3592   return _mm_mask_add_pd(__W,__U,__A,__B);
3593 }
test_mm_maskz_add_pd(__mmask8 __U,__m128d __A,__m128d __B)3594 __m128d test_mm_maskz_add_pd(__mmask8 __U, __m128d __A, __m128d __B) {
3595   // CHECK-LABEL: @test_mm_maskz_add_pd
3596   // CHECK: fadd <2 x double> %{{.*}}, %{{.*}}
3597   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3598   return _mm_maskz_add_pd(__U,__A,__B);
3599 }
test_mm256_mask_add_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)3600 __m256d test_mm256_mask_add_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
3601   // CHECK-LABEL: @test_mm256_mask_add_pd
3602   // CHECK: fadd <4 x double> %{{.*}}, %{{.*}}
3603   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3604   return _mm256_mask_add_pd(__W,__U,__A,__B);
3605 }
test_mm256_maskz_add_pd(__mmask8 __U,__m256d __A,__m256d __B)3606 __m256d test_mm256_maskz_add_pd(__mmask8 __U, __m256d __A, __m256d __B) {
3607   // CHECK-LABEL: @test_mm256_maskz_add_pd
3608   // CHECK: fadd <4 x double> %{{.*}}, %{{.*}}
3609   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3610   return _mm256_maskz_add_pd(__U,__A,__B);
3611 }
test_mm_mask_add_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)3612 __m128 test_mm_mask_add_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3613   // CHECK-LABEL: @test_mm_mask_add_ps
3614   // CHECK: fadd <4 x float> %{{.*}}, %{{.*}}
3615   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3616   return _mm_mask_add_ps(__W,__U,__A,__B);
3617 }
test_mm_maskz_add_ps(__mmask8 __U,__m128 __A,__m128 __B)3618 __m128 test_mm_maskz_add_ps(__mmask8 __U, __m128 __A, __m128 __B) {
3619   // CHECK-LABEL: @test_mm_maskz_add_ps
3620   // CHECK: fadd <4 x float> %{{.*}}, %{{.*}}
3621   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3622   return _mm_maskz_add_ps(__U,__A,__B);
3623 }
test_mm256_mask_add_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)3624 __m256 test_mm256_mask_add_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3625   // CHECK-LABEL: @test_mm256_mask_add_ps
3626   // CHECK: fadd <8 x float> %{{.*}}, %{{.*}}
3627   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3628   return _mm256_mask_add_ps(__W,__U,__A,__B);
3629 }
test_mm256_maskz_add_ps(__mmask8 __U,__m256 __A,__m256 __B)3630 __m256 test_mm256_maskz_add_ps(__mmask8 __U, __m256 __A, __m256 __B) {
3631   // CHECK-LABEL: @test_mm256_maskz_add_ps
3632   // CHECK: fadd <8 x float> %{{.*}}, %{{.*}}
3633   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3634   return _mm256_maskz_add_ps(__U,__A,__B);
3635 }
test_mm_mask_blend_epi32(__mmask8 __U,__m128i __A,__m128i __W)3636 __m128i test_mm_mask_blend_epi32(__mmask8 __U, __m128i __A, __m128i __W) {
3637   // CHECK-LABEL: @test_mm_mask_blend_epi32
3638   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
3639   return _mm_mask_blend_epi32(__U,__A,__W);
3640 }
test_mm256_mask_blend_epi32(__mmask8 __U,__m256i __A,__m256i __W)3641 __m256i test_mm256_mask_blend_epi32(__mmask8 __U, __m256i __A, __m256i __W) {
3642   // CHECK-LABEL: @test_mm256_mask_blend_epi32
3643   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
3644   return _mm256_mask_blend_epi32(__U,__A,__W);
3645 }
test_mm_mask_blend_pd(__mmask8 __U,__m128d __A,__m128d __W)3646 __m128d test_mm_mask_blend_pd(__mmask8 __U, __m128d __A, __m128d __W) {
3647   // CHECK-LABEL: @test_mm_mask_blend_pd
3648   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3649   return _mm_mask_blend_pd(__U,__A,__W);
3650 }
test_mm256_mask_blend_pd(__mmask8 __U,__m256d __A,__m256d __W)3651 __m256d test_mm256_mask_blend_pd(__mmask8 __U, __m256d __A, __m256d __W) {
3652   // CHECK-LABEL: @test_mm256_mask_blend_pd
3653   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3654   return _mm256_mask_blend_pd(__U,__A,__W);
3655 }
test_mm_mask_blend_ps(__mmask8 __U,__m128 __A,__m128 __W)3656 __m128 test_mm_mask_blend_ps(__mmask8 __U, __m128 __A, __m128 __W) {
3657   // CHECK-LABEL: @test_mm_mask_blend_ps
3658   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3659   return _mm_mask_blend_ps(__U,__A,__W);
3660 }
test_mm256_mask_blend_ps(__mmask8 __U,__m256 __A,__m256 __W)3661 __m256 test_mm256_mask_blend_ps(__mmask8 __U, __m256 __A, __m256 __W) {
3662   // CHECK-LABEL: @test_mm256_mask_blend_ps
3663   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3664   return _mm256_mask_blend_ps(__U,__A,__W);
3665 }
test_mm_mask_blend_epi64(__mmask8 __U,__m128i __A,__m128i __W)3666 __m128i test_mm_mask_blend_epi64(__mmask8 __U, __m128i __A, __m128i __W) {
3667   // CHECK-LABEL: @test_mm_mask_blend_epi64
3668   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
3669   return _mm_mask_blend_epi64(__U,__A,__W);
3670 }
test_mm256_mask_blend_epi64(__mmask8 __U,__m256i __A,__m256i __W)3671 __m256i test_mm256_mask_blend_epi64(__mmask8 __U, __m256i __A, __m256i __W) {
3672   // CHECK-LABEL: @test_mm256_mask_blend_epi64
3673   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
3674   return _mm256_mask_blend_epi64(__U,__A,__W);
3675 }
test_mm_mask_compress_pd(__m128d __W,__mmask8 __U,__m128d __A)3676 __m128d test_mm_mask_compress_pd(__m128d __W, __mmask8 __U, __m128d __A) {
3677   // CHECK-LABEL: @test_mm_mask_compress_pd
3678   // CHECK: @llvm.x86.avx512.mask.compress
3679   return _mm_mask_compress_pd(__W,__U,__A);
3680 }
test_mm_maskz_compress_pd(__mmask8 __U,__m128d __A)3681 __m128d test_mm_maskz_compress_pd(__mmask8 __U, __m128d __A) {
3682   // CHECK-LABEL: @test_mm_maskz_compress_pd
3683   // CHECK: @llvm.x86.avx512.mask.compress
3684   return _mm_maskz_compress_pd(__U,__A);
3685 }
test_mm256_mask_compress_pd(__m256d __W,__mmask8 __U,__m256d __A)3686 __m256d test_mm256_mask_compress_pd(__m256d __W, __mmask8 __U, __m256d __A) {
3687   // CHECK-LABEL: @test_mm256_mask_compress_pd
3688   // CHECK: @llvm.x86.avx512.mask.compress
3689   return _mm256_mask_compress_pd(__W,__U,__A);
3690 }
test_mm256_maskz_compress_pd(__mmask8 __U,__m256d __A)3691 __m256d test_mm256_maskz_compress_pd(__mmask8 __U, __m256d __A) {
3692   // CHECK-LABEL: @test_mm256_maskz_compress_pd
3693   // CHECK: @llvm.x86.avx512.mask.compress
3694   return _mm256_maskz_compress_pd(__U,__A);
3695 }
test_mm_mask_compress_epi64(__m128i __W,__mmask8 __U,__m128i __A)3696 __m128i test_mm_mask_compress_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
3697   // CHECK-LABEL: @test_mm_mask_compress_epi64
3698   // CHECK: @llvm.x86.avx512.mask.compress
3699   return _mm_mask_compress_epi64(__W,__U,__A);
3700 }
test_mm_maskz_compress_epi64(__mmask8 __U,__m128i __A)3701 __m128i test_mm_maskz_compress_epi64(__mmask8 __U, __m128i __A) {
3702   // CHECK-LABEL: @test_mm_maskz_compress_epi64
3703   // CHECK: @llvm.x86.avx512.mask.compress
3704   return _mm_maskz_compress_epi64(__U,__A);
3705 }
test_mm256_mask_compress_epi64(__m256i __W,__mmask8 __U,__m256i __A)3706 __m256i test_mm256_mask_compress_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
3707   // CHECK-LABEL: @test_mm256_mask_compress_epi64
3708   // CHECK: @llvm.x86.avx512.mask.compress
3709   return _mm256_mask_compress_epi64(__W,__U,__A);
3710 }
test_mm256_maskz_compress_epi64(__mmask8 __U,__m256i __A)3711 __m256i test_mm256_maskz_compress_epi64(__mmask8 __U, __m256i __A) {
3712   // CHECK-LABEL: @test_mm256_maskz_compress_epi64
3713   // CHECK: @llvm.x86.avx512.mask.compress
3714   return _mm256_maskz_compress_epi64(__U,__A);
3715 }
test_mm_mask_compress_ps(__m128 __W,__mmask8 __U,__m128 __A)3716 __m128 test_mm_mask_compress_ps(__m128 __W, __mmask8 __U, __m128 __A) {
3717   // CHECK-LABEL: @test_mm_mask_compress_ps
3718   // CHECK: @llvm.x86.avx512.mask.compress
3719   return _mm_mask_compress_ps(__W,__U,__A);
3720 }
test_mm_maskz_compress_ps(__mmask8 __U,__m128 __A)3721 __m128 test_mm_maskz_compress_ps(__mmask8 __U, __m128 __A) {
3722   // CHECK-LABEL: @test_mm_maskz_compress_ps
3723   // CHECK: @llvm.x86.avx512.mask.compress
3724   return _mm_maskz_compress_ps(__U,__A);
3725 }
test_mm256_mask_compress_ps(__m256 __W,__mmask8 __U,__m256 __A)3726 __m256 test_mm256_mask_compress_ps(__m256 __W, __mmask8 __U, __m256 __A) {
3727   // CHECK-LABEL: @test_mm256_mask_compress_ps
3728   // CHECK: @llvm.x86.avx512.mask.compress
3729   return _mm256_mask_compress_ps(__W,__U,__A);
3730 }
test_mm256_maskz_compress_ps(__mmask8 __U,__m256 __A)3731 __m256 test_mm256_maskz_compress_ps(__mmask8 __U, __m256 __A) {
3732   // CHECK-LABEL: @test_mm256_maskz_compress_ps
3733   // CHECK: @llvm.x86.avx512.mask.compress
3734   return _mm256_maskz_compress_ps(__U,__A);
3735 }
test_mm_mask_compress_epi32(__m128i __W,__mmask8 __U,__m128i __A)3736 __m128i test_mm_mask_compress_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
3737   // CHECK-LABEL: @test_mm_mask_compress_epi32
3738   // CHECK: @llvm.x86.avx512.mask.compress
3739   return _mm_mask_compress_epi32(__W,__U,__A);
3740 }
test_mm_maskz_compress_epi32(__mmask8 __U,__m128i __A)3741 __m128i test_mm_maskz_compress_epi32(__mmask8 __U, __m128i __A) {
3742   // CHECK-LABEL: @test_mm_maskz_compress_epi32
3743   // CHECK: @llvm.x86.avx512.mask.compress
3744   return _mm_maskz_compress_epi32(__U,__A);
3745 }
test_mm256_mask_compress_epi32(__m256i __W,__mmask8 __U,__m256i __A)3746 __m256i test_mm256_mask_compress_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
3747   // CHECK-LABEL: @test_mm256_mask_compress_epi32
3748   // CHECK: @llvm.x86.avx512.mask.compress
3749   return _mm256_mask_compress_epi32(__W,__U,__A);
3750 }
test_mm256_maskz_compress_epi32(__mmask8 __U,__m256i __A)3751 __m256i test_mm256_maskz_compress_epi32(__mmask8 __U, __m256i __A) {
3752   // CHECK-LABEL: @test_mm256_maskz_compress_epi32
3753   // CHECK: @llvm.x86.avx512.mask.compress
3754   return _mm256_maskz_compress_epi32(__U,__A);
3755 }
test_mm_mask_compressstoreu_pd(void * __P,__mmask8 __U,__m128d __A)3756 void test_mm_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m128d __A) {
3757   // CHECK-LABEL: @test_mm_mask_compressstoreu_pd
3758   // CHECK: @llvm.masked.compressstore.v2f64(<2 x double> %{{.*}}, double* %{{.*}}, <2 x i1> %{{.*}})
3759   return _mm_mask_compressstoreu_pd(__P,__U,__A);
3760 }
test_mm256_mask_compressstoreu_pd(void * __P,__mmask8 __U,__m256d __A)3761 void test_mm256_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m256d __A) {
3762   // CHECK-LABEL: @test_mm256_mask_compressstoreu_pd
3763   // CHECK: @llvm.masked.compressstore.v4f64(<4 x double> %{{.*}}, double* %{{.*}}, <4 x i1> %{{.*}})
3764   return _mm256_mask_compressstoreu_pd(__P,__U,__A);
3765 }
test_mm_mask_compressstoreu_epi64(void * __P,__mmask8 __U,__m128i __A)3766 void test_mm_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m128i __A) {
3767   // CHECK-LABEL: @test_mm_mask_compressstoreu_epi64
3768   // CHECK: @llvm.masked.compressstore.v2i64(<2 x i64> %{{.*}}, i64* %{{.*}}, <2 x i1> %{{.*}})
3769   return _mm_mask_compressstoreu_epi64(__P,__U,__A);
3770 }
test_mm256_mask_compressstoreu_epi64(void * __P,__mmask8 __U,__m256i __A)3771 void test_mm256_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m256i __A) {
3772   // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi64
3773   // CHECK: @llvm.masked.compressstore.v4i64(<4 x i64> %{{.*}}, i64* %{{.*}}, <4 x i1> %{{.*}})
3774   return _mm256_mask_compressstoreu_epi64(__P,__U,__A);
3775 }
test_mm_mask_compressstoreu_ps(void * __P,__mmask8 __U,__m128 __A)3776 void test_mm_mask_compressstoreu_ps(void *__P, __mmask8 __U, __m128 __A) {
3777   // CHECK-LABEL: @test_mm_mask_compressstoreu_ps
3778   // CHECK: @llvm.masked.compressstore.v4f32(<4 x float> %{{.*}}, float* %{{.*}}, <4 x i1> %{{.*}})
3779   return _mm_mask_compressstoreu_ps(__P,__U,__A);
3780 }
test_mm256_mask_compressstoreu_ps(void * __P,__mmask8 __U,__m256 __A)3781 void test_mm256_mask_compressstoreu_ps(void *__P, __mmask8 __U, __m256 __A) {
3782   // CHECK-LABEL: @test_mm256_mask_compressstoreu_ps
3783   // CHECK: @llvm.masked.compressstore.v8f32(<8 x float> %{{.*}}, float* %{{.*}}, <8 x i1> %{{.*}})
3784   return _mm256_mask_compressstoreu_ps(__P,__U,__A);
3785 }
test_mm_mask_compressstoreu_epi32(void * __P,__mmask8 __U,__m128i __A)3786 void test_mm_mask_compressstoreu_epi32(void *__P, __mmask8 __U, __m128i __A) {
3787   // CHECK-LABEL: @test_mm_mask_compressstoreu_epi32
3788   // CHECK: @llvm.masked.compressstore.v4i32(<4 x i32> %{{.*}}, i32* %{{.*}}, <4 x i1> %{{.*}})
3789   return _mm_mask_compressstoreu_epi32(__P,__U,__A);
3790 }
test_mm256_mask_compressstoreu_epi32(void * __P,__mmask8 __U,__m256i __A)3791 void test_mm256_mask_compressstoreu_epi32(void *__P, __mmask8 __U, __m256i __A) {
3792   // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi32
3793   // CHECK: @llvm.masked.compressstore.v8i32(<8 x i32> %{{.*}}, i32* %{{.*}}, <8 x i1> %{{.*}})
3794   return _mm256_mask_compressstoreu_epi32(__P,__U,__A);
3795 }
test_mm_mask_cvtepi32_pd(__m128d __W,__mmask8 __U,__m128i __A)3796 __m128d test_mm_mask_cvtepi32_pd(__m128d __W, __mmask8 __U, __m128i __A) {
3797   // CHECK-LABEL: @test_mm_mask_cvtepi32_pd
3798   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
3799   // CHECK: sitofp <2 x i32> %{{.*}} to <2 x double>
3800   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3801   return _mm_mask_cvtepi32_pd(__W,__U,__A);
3802 }
test_mm_maskz_cvtepi32_pd(__mmask8 __U,__m128i __A)3803 __m128d test_mm_maskz_cvtepi32_pd(__mmask8 __U, __m128i __A) {
3804   // CHECK-LABEL: @test_mm_maskz_cvtepi32_pd
3805   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
3806   // CHECK: sitofp <2 x i32> %{{.*}} to <2 x double>
3807   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3808   return _mm_maskz_cvtepi32_pd(__U,__A);
3809 }
test_mm256_mask_cvtepi32_pd(__m256d __W,__mmask8 __U,__m128i __A)3810 __m256d test_mm256_mask_cvtepi32_pd(__m256d __W, __mmask8 __U, __m128i __A) {
3811   // CHECK-LABEL: @test_mm256_mask_cvtepi32_pd
3812   // CHECK: sitofp <4 x i32> %{{.*}} to <4 x double>
3813   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3814   return _mm256_mask_cvtepi32_pd(__W,__U,__A);
3815 }
test_mm256_maskz_cvtepi32_pd(__mmask8 __U,__m128i __A)3816 __m256d test_mm256_maskz_cvtepi32_pd(__mmask8 __U, __m128i __A) {
3817   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_pd
3818   // CHECK: sitofp <4 x i32> %{{.*}} to <4 x double>
3819   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3820   return _mm256_maskz_cvtepi32_pd(__U,__A);
3821 }
test_mm_mask_cvtepi32_ps(__m128 __W,__mmask8 __U,__m128i __A)3822 __m128 test_mm_mask_cvtepi32_ps(__m128 __W, __mmask8 __U, __m128i __A) {
3823   // CHECK-LABEL: @test_mm_mask_cvtepi32_ps
3824   // CHECK: sitofp <4 x i32> %{{.*}} to <4 x float>
3825   // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3826   return _mm_mask_cvtepi32_ps(__W,__U,__A);
3827 }
test_mm_maskz_cvtepi32_ps(__mmask8 __U,__m128i __A)3828 __m128 test_mm_maskz_cvtepi32_ps(__mmask8 __U, __m128i __A) {
3829   // CHECK-LABEL: @test_mm_maskz_cvtepi32_ps
3830   // CHECK: sitofp <4 x i32> %{{.*}} to <4 x float>
3831   // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3832   return _mm_maskz_cvtepi32_ps(__U,__A);
3833 }
test_mm256_mask_cvtepi32_ps(__m256 __W,__mmask8 __U,__m256i __A)3834 __m256 test_mm256_mask_cvtepi32_ps(__m256 __W, __mmask8 __U, __m256i __A) {
3835   // CHECK-LABEL: @test_mm256_mask_cvtepi32_ps
3836   // CHECK: sitofp <8 x i32> %{{.*}} to <8 x float>
3837   // CHECK: select <8 x i1> {{.*}}, <8 x float> {{.*}}, <8 x float> {{.*}}
3838   return _mm256_mask_cvtepi32_ps(__W,__U,__A);
3839 }
test_mm256_maskz_cvtepi32_ps(__mmask8 __U,__m256i __A)3840 __m256 test_mm256_maskz_cvtepi32_ps(__mmask8 __U, __m256i __A) {
3841   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_ps
3842   // CHECK: sitofp <8 x i32> %{{.*}} to <8 x float>
3843   // CHECK: select <8 x i1> {{.*}}, <8 x float> {{.*}}, <8 x float> {{.*}}
3844   return _mm256_maskz_cvtepi32_ps(__U,__A);
3845 }
test_mm_mask_cvtpd_epi32(__m128i __W,__mmask8 __U,__m128d __A)3846 __m128i test_mm_mask_cvtpd_epi32(__m128i __W, __mmask8 __U, __m128d __A) {
3847   // CHECK-LABEL: @test_mm_mask_cvtpd_epi32
3848   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.128
3849   return _mm_mask_cvtpd_epi32(__W,__U,__A);
3850 }
test_mm_maskz_cvtpd_epi32(__mmask8 __U,__m128d __A)3851 __m128i test_mm_maskz_cvtpd_epi32(__mmask8 __U, __m128d __A) {
3852   // CHECK-LABEL: @test_mm_maskz_cvtpd_epi32
3853   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.128
3854   return _mm_maskz_cvtpd_epi32(__U,__A);
3855 }
test_mm256_mask_cvtpd_epi32(__m128i __W,__mmask8 __U,__m256d __A)3856 __m128i test_mm256_mask_cvtpd_epi32(__m128i __W, __mmask8 __U, __m256d __A) {
3857   // CHECK-LABEL: @test_mm256_mask_cvtpd_epi32
3858   // CHECK: @llvm.x86.avx.cvt.pd2dq.256
3859   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3860   return _mm256_mask_cvtpd_epi32(__W,__U,__A);
3861 }
test_mm256_maskz_cvtpd_epi32(__mmask8 __U,__m256d __A)3862 __m128i test_mm256_maskz_cvtpd_epi32(__mmask8 __U, __m256d __A) {
3863   // CHECK-LABEL: @test_mm256_maskz_cvtpd_epi32
3864   // CHECK: @llvm.x86.avx.cvt.pd2dq.256
3865   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3866   return _mm256_maskz_cvtpd_epi32(__U,__A);
3867 }
test_mm_mask_cvtpd_ps(__m128 __W,__mmask8 __U,__m128d __A)3868 __m128 test_mm_mask_cvtpd_ps(__m128 __W, __mmask8 __U, __m128d __A) {
3869   // CHECK-LABEL: @test_mm_mask_cvtpd_ps
3870   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps
3871   return _mm_mask_cvtpd_ps(__W,__U,__A);
3872 }
test_mm_maskz_cvtpd_ps(__mmask8 __U,__m128d __A)3873 __m128 test_mm_maskz_cvtpd_ps(__mmask8 __U, __m128d __A) {
3874   // CHECK-LABEL: @test_mm_maskz_cvtpd_ps
3875   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps
3876   return _mm_maskz_cvtpd_ps(__U,__A);
3877 }
test_mm256_mask_cvtpd_ps(__m128 __W,__mmask8 __U,__m256d __A)3878 __m128 test_mm256_mask_cvtpd_ps(__m128 __W, __mmask8 __U, __m256d __A) {
3879   // CHECK-LABEL: @test_mm256_mask_cvtpd_ps
3880   // CHECK: @llvm.x86.avx.cvt.pd2.ps.256
3881   // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3882   return _mm256_mask_cvtpd_ps(__W,__U,__A);
3883 }
test_mm256_maskz_cvtpd_ps(__mmask8 __U,__m256d __A)3884 __m128 test_mm256_maskz_cvtpd_ps(__mmask8 __U, __m256d __A) {
3885   // CHECK-LABEL: @test_mm256_maskz_cvtpd_ps
3886   // CHECK: @llvm.x86.avx.cvt.pd2.ps.256
3887   // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3888   return _mm256_maskz_cvtpd_ps(__U,__A);
3889 }
test_mm_cvtpd_epu32(__m128d __A)3890 __m128i test_mm_cvtpd_epu32(__m128d __A) {
3891   // CHECK-LABEL: @test_mm_cvtpd_epu32
3892   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3893   return _mm_cvtpd_epu32(__A);
3894 }
test_mm_mask_cvtpd_epu32(__m128i __W,__mmask8 __U,__m128d __A)3895 __m128i test_mm_mask_cvtpd_epu32(__m128i __W, __mmask8 __U, __m128d __A) {
3896   // CHECK-LABEL: @test_mm_mask_cvtpd_epu32
3897   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3898   return _mm_mask_cvtpd_epu32(__W,__U,__A);
3899 }
test_mm_maskz_cvtpd_epu32(__mmask8 __U,__m128d __A)3900 __m128i test_mm_maskz_cvtpd_epu32(__mmask8 __U, __m128d __A) {
3901   // CHECK-LABEL: @test_mm_maskz_cvtpd_epu32
3902   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3903   return _mm_maskz_cvtpd_epu32(__U,__A);
3904 }
test_mm256_cvtpd_epu32(__m256d __A)3905 __m128i test_mm256_cvtpd_epu32(__m256d __A) {
3906   // CHECK-LABEL: @test_mm256_cvtpd_epu32
3907   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3908   return _mm256_cvtpd_epu32(__A);
3909 }
test_mm256_mask_cvtpd_epu32(__m128i __W,__mmask8 __U,__m256d __A)3910 __m128i test_mm256_mask_cvtpd_epu32(__m128i __W, __mmask8 __U, __m256d __A) {
3911   // CHECK-LABEL: @test_mm256_mask_cvtpd_epu32
3912   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3913   return _mm256_mask_cvtpd_epu32(__W,__U,__A);
3914 }
test_mm256_maskz_cvtpd_epu32(__mmask8 __U,__m256d __A)3915 __m128i test_mm256_maskz_cvtpd_epu32(__mmask8 __U, __m256d __A) {
3916   // CHECK-LABEL: @test_mm256_maskz_cvtpd_epu32
3917   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3918   return _mm256_maskz_cvtpd_epu32(__U,__A);
3919 }
test_mm_mask_cvtps_epi32(__m128i __W,__mmask8 __U,__m128 __A)3920 __m128i test_mm_mask_cvtps_epi32(__m128i __W, __mmask8 __U, __m128 __A) {
3921   // CHECK-LABEL: @test_mm_mask_cvtps_epi32
3922   // CHECK: @llvm.x86.sse2.cvtps2dq
3923   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3924   return _mm_mask_cvtps_epi32(__W,__U,__A);
3925 }
test_mm_maskz_cvtps_epi32(__mmask8 __U,__m128 __A)3926 __m128i test_mm_maskz_cvtps_epi32(__mmask8 __U, __m128 __A) {
3927   // CHECK-LABEL: @test_mm_maskz_cvtps_epi32
3928   // CHECK: @llvm.x86.sse2.cvtps2dq
3929   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3930   return _mm_maskz_cvtps_epi32(__U,__A);
3931 }
test_mm256_mask_cvtps_epi32(__m256i __W,__mmask8 __U,__m256 __A)3932 __m256i test_mm256_mask_cvtps_epi32(__m256i __W, __mmask8 __U, __m256 __A) {
3933   // CHECK-LABEL: @test_mm256_mask_cvtps_epi32
3934   // CHECK: @llvm.x86.avx.cvt.ps2dq.256
3935   // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
3936   return _mm256_mask_cvtps_epi32(__W,__U,__A);
3937 }
test_mm256_maskz_cvtps_epi32(__mmask8 __U,__m256 __A)3938 __m256i test_mm256_maskz_cvtps_epi32(__mmask8 __U, __m256 __A) {
3939   // CHECK-LABEL: @test_mm256_maskz_cvtps_epi32
3940   // CHECK: @llvm.x86.avx.cvt.ps2dq.256
3941   // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
3942   return _mm256_maskz_cvtps_epi32(__U,__A);
3943 }
test_mm_mask_cvtps_pd(__m128d __W,__mmask8 __U,__m128 __A)3944 __m128d test_mm_mask_cvtps_pd(__m128d __W, __mmask8 __U, __m128 __A) {
3945   // CHECK-LABEL: @test_mm_mask_cvtps_pd
3946   // CHECK: fpext <2 x float> %{{.*}} to <2 x double>
3947   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3948   return _mm_mask_cvtps_pd(__W,__U,__A);
3949 }
test_mm_maskz_cvtps_pd(__mmask8 __U,__m128 __A)3950 __m128d test_mm_maskz_cvtps_pd(__mmask8 __U, __m128 __A) {
3951   // CHECK-LABEL: @test_mm_maskz_cvtps_pd
3952   // CHECK: fpext <2 x float> %{{.*}} to <2 x double>
3953   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3954   return _mm_maskz_cvtps_pd(__U,__A);
3955 }
test_mm256_mask_cvtps_pd(__m256d __W,__mmask8 __U,__m128 __A)3956 __m256d test_mm256_mask_cvtps_pd(__m256d __W, __mmask8 __U, __m128 __A) {
3957   // CHECK-LABEL: @test_mm256_mask_cvtps_pd
3958   // CHECK: fpext <4 x float> %{{.*}} to <4 x double>
3959   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3960   return _mm256_mask_cvtps_pd(__W,__U,__A);
3961 }
test_mm256_maskz_cvtps_pd(__mmask8 __U,__m128 __A)3962 __m256d test_mm256_maskz_cvtps_pd(__mmask8 __U, __m128 __A) {
3963   // CHECK-LABEL: @test_mm256_maskz_cvtps_pd
3964   // CHECK: fpext <4 x float> %{{.*}} to <4 x double>
3965   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3966   return _mm256_maskz_cvtps_pd(__U,__A);
3967 }
test_mm_cvtps_epu32(__m128 __A)3968 __m128i test_mm_cvtps_epu32(__m128 __A) {
3969   // CHECK-LABEL: @test_mm_cvtps_epu32
3970   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3971   return _mm_cvtps_epu32(__A);
3972 }
test_mm_mask_cvtps_epu32(__m128i __W,__mmask8 __U,__m128 __A)3973 __m128i test_mm_mask_cvtps_epu32(__m128i __W, __mmask8 __U, __m128 __A) {
3974   // CHECK-LABEL: @test_mm_mask_cvtps_epu32
3975   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3976   return _mm_mask_cvtps_epu32(__W,__U,__A);
3977 }
test_mm_maskz_cvtps_epu32(__mmask8 __U,__m128 __A)3978 __m128i test_mm_maskz_cvtps_epu32(__mmask8 __U, __m128 __A) {
3979   // CHECK-LABEL: @test_mm_maskz_cvtps_epu32
3980   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3981   return _mm_maskz_cvtps_epu32(__U,__A);
3982 }
test_mm256_cvtps_epu32(__m256 __A)3983 __m256i test_mm256_cvtps_epu32(__m256 __A) {
3984   // CHECK-LABEL: @test_mm256_cvtps_epu32
3985   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3986   return _mm256_cvtps_epu32(__A);
3987 }
test_mm256_mask_cvtps_epu32(__m256i __W,__mmask8 __U,__m256 __A)3988 __m256i test_mm256_mask_cvtps_epu32(__m256i __W, __mmask8 __U, __m256 __A) {
3989   // CHECK-LABEL: @test_mm256_mask_cvtps_epu32
3990   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3991   return _mm256_mask_cvtps_epu32(__W,__U,__A);
3992 }
test_mm256_maskz_cvtps_epu32(__mmask8 __U,__m256 __A)3993 __m256i test_mm256_maskz_cvtps_epu32(__mmask8 __U, __m256 __A) {
3994   // CHECK-LABEL: @test_mm256_maskz_cvtps_epu32
3995   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3996   return _mm256_maskz_cvtps_epu32(__U,__A);
3997 }
test_mm_mask_cvttpd_epi32(__m128i __W,__mmask8 __U,__m128d __A)3998 __m128i test_mm_mask_cvttpd_epi32(__m128i __W, __mmask8 __U, __m128d __A) {
3999   // CHECK-LABEL: @test_mm_mask_cvttpd_epi32
4000   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.128
4001   return _mm_mask_cvttpd_epi32(__W,__U,__A);
4002 }
test_mm_maskz_cvttpd_epi32(__mmask8 __U,__m128d __A)4003 __m128i test_mm_maskz_cvttpd_epi32(__mmask8 __U, __m128d __A) {
4004   // CHECK-LABEL: @test_mm_maskz_cvttpd_epi32
4005   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.128
4006   return _mm_maskz_cvttpd_epi32(__U,__A);
4007 }
test_mm256_mask_cvttpd_epi32(__m128i __W,__mmask8 __U,__m256d __A)4008 __m128i test_mm256_mask_cvttpd_epi32(__m128i __W, __mmask8 __U, __m256d __A) {
4009   // CHECK-LABEL: @test_mm256_mask_cvttpd_epi32
4010   // CHECK: @llvm.x86.avx.cvtt.pd2dq.256
4011   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
4012   return _mm256_mask_cvttpd_epi32(__W,__U,__A);
4013 }
test_mm256_maskz_cvttpd_epi32(__mmask8 __U,__m256d __A)4014 __m128i test_mm256_maskz_cvttpd_epi32(__mmask8 __U, __m256d __A) {
4015   // CHECK-LABEL: @test_mm256_maskz_cvttpd_epi32
4016   // CHECK: @llvm.x86.avx.cvtt.pd2dq.256
4017   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
4018   return _mm256_maskz_cvttpd_epi32(__U,__A);
4019 }
test_mm_cvttpd_epu32(__m128d __A)4020 __m128i test_mm_cvttpd_epu32(__m128d __A) {
4021   // CHECK-LABEL: @test_mm_cvttpd_epu32
4022   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
4023   return _mm_cvttpd_epu32(__A);
4024 }
test_mm_mask_cvttpd_epu32(__m128i __W,__mmask8 __U,__m128d __A)4025 __m128i test_mm_mask_cvttpd_epu32(__m128i __W, __mmask8 __U, __m128d __A) {
4026   // CHECK-LABEL: @test_mm_mask_cvttpd_epu32
4027   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
4028   return _mm_mask_cvttpd_epu32(__W,__U,__A);
4029 }
test_mm_maskz_cvttpd_epu32(__mmask8 __U,__m128d __A)4030 __m128i test_mm_maskz_cvttpd_epu32(__mmask8 __U, __m128d __A) {
4031   // CHECK-LABEL: @test_mm_maskz_cvttpd_epu32
4032   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
4033   return _mm_maskz_cvttpd_epu32(__U,__A);
4034 }
test_mm256_cvttpd_epu32(__m256d __A)4035 __m128i test_mm256_cvttpd_epu32(__m256d __A) {
4036   // CHECK-LABEL: @test_mm256_cvttpd_epu32
4037   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
4038   return _mm256_cvttpd_epu32(__A);
4039 }
test_mm256_mask_cvttpd_epu32(__m128i __W,__mmask8 __U,__m256d __A)4040 __m128i test_mm256_mask_cvttpd_epu32(__m128i __W, __mmask8 __U, __m256d __A) {
4041   // CHECK-LABEL: @test_mm256_mask_cvttpd_epu32
4042   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
4043   return _mm256_mask_cvttpd_epu32(__W,__U,__A);
4044 }
test_mm256_maskz_cvttpd_epu32(__mmask8 __U,__m256d __A)4045 __m128i test_mm256_maskz_cvttpd_epu32(__mmask8 __U, __m256d __A) {
4046   // CHECK-LABEL: @test_mm256_maskz_cvttpd_epu32
4047   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
4048   return _mm256_maskz_cvttpd_epu32(__U,__A);
4049 }
test_mm_mask_cvttps_epi32(__m128i __W,__mmask8 __U,__m128 __A)4050 __m128i test_mm_mask_cvttps_epi32(__m128i __W, __mmask8 __U, __m128 __A) {
4051   // CHECK-LABEL: @test_mm_mask_cvttps_epi32
4052   // CHECK: @llvm.x86.sse2.cvttps2dq
4053   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
4054   return _mm_mask_cvttps_epi32(__W,__U,__A);
4055 }
test_mm_maskz_cvttps_epi32(__mmask8 __U,__m128 __A)4056 __m128i test_mm_maskz_cvttps_epi32(__mmask8 __U, __m128 __A) {
4057   // CHECK-LABEL: @test_mm_maskz_cvttps_epi32
4058   // CHECK: @llvm.x86.sse2.cvttps2dq
4059   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
4060   return _mm_maskz_cvttps_epi32(__U,__A);
4061 }
test_mm256_mask_cvttps_epi32(__m256i __W,__mmask8 __U,__m256 __A)4062 __m256i test_mm256_mask_cvttps_epi32(__m256i __W, __mmask8 __U, __m256 __A) {
4063   // CHECK-LABEL: @test_mm256_mask_cvttps_epi32
4064   // CHECK: @llvm.x86.avx.cvtt.ps2dq.256
4065   // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
4066   return _mm256_mask_cvttps_epi32(__W,__U,__A);
4067 }
test_mm256_maskz_cvttps_epi32(__mmask8 __U,__m256 __A)4068 __m256i test_mm256_maskz_cvttps_epi32(__mmask8 __U, __m256 __A) {
4069   // CHECK-LABEL: @test_mm256_maskz_cvttps_epi32
4070   // CHECK: @llvm.x86.avx.cvtt.ps2dq.256
4071   // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
4072   return _mm256_maskz_cvttps_epi32(__U,__A);
4073 }
test_mm_cvttps_epu32(__m128 __A)4074 __m128i test_mm_cvttps_epu32(__m128 __A) {
4075   // CHECK-LABEL: @test_mm_cvttps_epu32
4076   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
4077   return _mm_cvttps_epu32(__A);
4078 }
test_mm_mask_cvttps_epu32(__m128i __W,__mmask8 __U,__m128 __A)4079 __m128i test_mm_mask_cvttps_epu32(__m128i __W, __mmask8 __U, __m128 __A) {
4080   // CHECK-LABEL: @test_mm_mask_cvttps_epu32
4081   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
4082   return _mm_mask_cvttps_epu32(__W,__U,__A);
4083 }
test_mm_maskz_cvttps_epu32(__mmask8 __U,__m128 __A)4084 __m128i test_mm_maskz_cvttps_epu32(__mmask8 __U, __m128 __A) {
4085   // CHECK-LABEL: @test_mm_maskz_cvttps_epu32
4086   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
4087   return _mm_maskz_cvttps_epu32(__U,__A);
4088 }
test_mm256_cvttps_epu32(__m256 __A)4089 __m256i test_mm256_cvttps_epu32(__m256 __A) {
4090   // CHECK-LABEL: @test_mm256_cvttps_epu32
4091   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
4092   return _mm256_cvttps_epu32(__A);
4093 }
test_mm256_mask_cvttps_epu32(__m256i __W,__mmask8 __U,__m256 __A)4094 __m256i test_mm256_mask_cvttps_epu32(__m256i __W, __mmask8 __U, __m256 __A) {
4095   // CHECK-LABEL: @test_mm256_mask_cvttps_epu32
4096   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
4097   return _mm256_mask_cvttps_epu32(__W,__U,__A);
4098 }
test_mm256_maskz_cvttps_epu32(__mmask8 __U,__m256 __A)4099 __m256i test_mm256_maskz_cvttps_epu32(__mmask8 __U, __m256 __A) {
4100   // CHECK-LABEL: @test_mm256_maskz_cvttps_epu32
4101   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
4102   return _mm256_maskz_cvttps_epu32(__U,__A);
4103 }
test_mm_cvtepu32_pd(__m128i __A)4104 __m128d test_mm_cvtepu32_pd(__m128i __A) {
4105   // CHECK-LABEL: @test_mm_cvtepu32_pd
4106   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
4107   // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
4108   return _mm_cvtepu32_pd(__A);
4109 }
test_mm_mask_cvtepu32_pd(__m128d __W,__mmask8 __U,__m128i __A)4110 __m128d test_mm_mask_cvtepu32_pd(__m128d __W, __mmask8 __U, __m128i __A) {
4111   // CHECK-LABEL: @test_mm_mask_cvtepu32_pd
4112   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
4113   // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
4114   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
4115   return _mm_mask_cvtepu32_pd(__W,__U,__A);
4116 }
test_mm_maskz_cvtepu32_pd(__mmask8 __U,__m128i __A)4117 __m128d test_mm_maskz_cvtepu32_pd(__mmask8 __U, __m128i __A) {
4118   // CHECK-LABEL: @test_mm_maskz_cvtepu32_pd
4119   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
4120   // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
4121   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
4122   return _mm_maskz_cvtepu32_pd(__U,__A);
4123 }
test_mm256_cvtepu32_pd(__m128i __A)4124 __m256d test_mm256_cvtepu32_pd(__m128i __A) {
4125   // CHECK-LABEL: @test_mm256_cvtepu32_pd
4126   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4127   return _mm256_cvtepu32_pd(__A);
4128 }
test_mm256_mask_cvtepu32_pd(__m256d __W,__mmask8 __U,__m128i __A)4129 __m256d test_mm256_mask_cvtepu32_pd(__m256d __W, __mmask8 __U, __m128i __A) {
4130   // CHECK-LABEL: @test_mm256_mask_cvtepu32_pd
4131   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4132   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
4133   return _mm256_mask_cvtepu32_pd(__W,__U,__A);
4134 }
test_mm256_maskz_cvtepu32_pd(__mmask8 __U,__m128i __A)4135 __m256d test_mm256_maskz_cvtepu32_pd(__mmask8 __U, __m128i __A) {
4136   // CHECK-LABEL: @test_mm256_maskz_cvtepu32_pd
4137   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4138   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
4139   return _mm256_maskz_cvtepu32_pd(__U,__A);
4140 }
test_mm_cvtepu32_ps(__m128i __A)4141 __m128 test_mm_cvtepu32_ps(__m128i __A) {
4142   // CHECK-LABEL: @test_mm_cvtepu32_ps
4143   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4144   return _mm_cvtepu32_ps(__A);
4145 }
test_mm_mask_cvtepu32_ps(__m128 __W,__mmask8 __U,__m128i __A)4146 __m128 test_mm_mask_cvtepu32_ps(__m128 __W, __mmask8 __U, __m128i __A) {
4147   // CHECK-LABEL: @test_mm_mask_cvtepu32_ps
4148   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4149   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4150   return _mm_mask_cvtepu32_ps(__W,__U,__A);
4151 }
test_mm_maskz_cvtepu32_ps(__mmask8 __U,__m128i __A)4152 __m128 test_mm_maskz_cvtepu32_ps(__mmask8 __U, __m128i __A) {
4153   // CHECK-LABEL: @test_mm_maskz_cvtepu32_ps
4154   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4155   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4156   return _mm_maskz_cvtepu32_ps(__U,__A);
4157 }
test_mm256_cvtepu32_ps(__m256i __A)4158 __m256 test_mm256_cvtepu32_ps(__m256i __A) {
4159   // CHECK-LABEL: @test_mm256_cvtepu32_ps
4160   // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4161   return _mm256_cvtepu32_ps(__A);
4162 }
test_mm256_mask_cvtepu32_ps(__m256 __W,__mmask8 __U,__m256i __A)4163 __m256 test_mm256_mask_cvtepu32_ps(__m256 __W, __mmask8 __U, __m256i __A) {
4164   // CHECK-LABEL: @test_mm256_mask_cvtepu32_ps
4165   // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4166   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4167   return _mm256_mask_cvtepu32_ps(__W,__U,__A);
4168 }
test_mm256_maskz_cvtepu32_ps(__mmask8 __U,__m256i __A)4169 __m256 test_mm256_maskz_cvtepu32_ps(__mmask8 __U, __m256i __A) {
4170   // CHECK-LABEL: @test_mm256_maskz_cvtepu32_ps
4171   // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4172   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4173   return _mm256_maskz_cvtepu32_ps(__U,__A);
4174 }
test_mm_mask_div_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4175 __m128d test_mm_mask_div_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4176   // CHECK-LABEL: @test_mm_mask_div_pd
4177   // CHECK: fdiv <2 x double> %{{.*}}, %{{.*}}
4178   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4179   return _mm_mask_div_pd(__W,__U,__A,__B);
4180 }
test_mm_maskz_div_pd(__mmask8 __U,__m128d __A,__m128d __B)4181 __m128d test_mm_maskz_div_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4182   // CHECK-LABEL: @test_mm_maskz_div_pd
4183   // CHECK: fdiv <2 x double> %{{.*}}, %{{.*}}
4184   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4185   return _mm_maskz_div_pd(__U,__A,__B);
4186 }
test_mm256_mask_div_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4187 __m256d test_mm256_mask_div_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4188   // CHECK-LABEL: @test_mm256_mask_div_pd
4189   // CHECK: fdiv <4 x double> %{{.*}}, %{{.*}}
4190   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4191   return _mm256_mask_div_pd(__W,__U,__A,__B);
4192 }
test_mm256_maskz_div_pd(__mmask8 __U,__m256d __A,__m256d __B)4193 __m256d test_mm256_maskz_div_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4194   // CHECK-LABEL: @test_mm256_maskz_div_pd
4195   // CHECK: fdiv <4 x double> %{{.*}}, %{{.*}}
4196   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4197   return _mm256_maskz_div_pd(__U,__A,__B);
4198 }
test_mm_mask_div_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4199 __m128 test_mm_mask_div_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4200   // CHECK-LABEL: @test_mm_mask_div_ps
4201   // CHECK: fdiv <4 x float> %{{.*}}, %{{.*}}
4202   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4203   return _mm_mask_div_ps(__W,__U,__A,__B);
4204 }
test_mm_maskz_div_ps(__mmask8 __U,__m128 __A,__m128 __B)4205 __m128 test_mm_maskz_div_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4206   // CHECK-LABEL: @test_mm_maskz_div_ps
4207   // CHECK: fdiv <4 x float> %{{.*}}, %{{.*}}
4208   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4209   return _mm_maskz_div_ps(__U,__A,__B);
4210 }
test_mm256_mask_div_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4211 __m256 test_mm256_mask_div_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4212   // CHECK-LABEL: @test_mm256_mask_div_ps
4213   // CHECK: fdiv <8 x float> %{{.*}}, %{{.*}}
4214   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4215   return _mm256_mask_div_ps(__W,__U,__A,__B);
4216 }
test_mm256_maskz_div_ps(__mmask8 __U,__m256 __A,__m256 __B)4217 __m256 test_mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4218   // CHECK-LABEL: @test_mm256_maskz_div_ps
4219   // CHECK: fdiv <8 x float> %{{.*}}, %{{.*}}
4220   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4221   return _mm256_maskz_div_ps(__U,__A,__B);
4222 }
test_mm_mask_expand_pd(__m128d __W,__mmask8 __U,__m128d __A)4223 __m128d test_mm_mask_expand_pd(__m128d __W, __mmask8 __U, __m128d __A) {
4224   // CHECK-LABEL: @test_mm_mask_expand_pd
4225   // CHECK: @llvm.x86.avx512.mask.expand
4226   return _mm_mask_expand_pd(__W,__U,__A);
4227 }
test_mm_maskz_expand_pd(__mmask8 __U,__m128d __A)4228 __m128d test_mm_maskz_expand_pd(__mmask8 __U, __m128d __A) {
4229   // CHECK-LABEL: @test_mm_maskz_expand_pd
4230   // CHECK: @llvm.x86.avx512.mask.expand
4231   return _mm_maskz_expand_pd(__U,__A);
4232 }
test_mm256_mask_expand_pd(__m256d __W,__mmask8 __U,__m256d __A)4233 __m256d test_mm256_mask_expand_pd(__m256d __W, __mmask8 __U, __m256d __A) {
4234   // CHECK-LABEL: @test_mm256_mask_expand_pd
4235   // CHECK: @llvm.x86.avx512.mask.expand
4236   return _mm256_mask_expand_pd(__W,__U,__A);
4237 }
test_mm256_maskz_expand_pd(__mmask8 __U,__m256d __A)4238 __m256d test_mm256_maskz_expand_pd(__mmask8 __U, __m256d __A) {
4239   // CHECK-LABEL: @test_mm256_maskz_expand_pd
4240   // CHECK: @llvm.x86.avx512.mask.expand
4241   return _mm256_maskz_expand_pd(__U,__A);
4242 }
test_mm_mask_expand_epi64(__m128i __W,__mmask8 __U,__m128i __A)4243 __m128i test_mm_mask_expand_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
4244   // CHECK-LABEL: @test_mm_mask_expand_epi64
4245   // CHECK: @llvm.x86.avx512.mask.expand
4246   return _mm_mask_expand_epi64(__W,__U,__A);
4247 }
test_mm_maskz_expand_epi64(__mmask8 __U,__m128i __A)4248 __m128i test_mm_maskz_expand_epi64(__mmask8 __U, __m128i __A) {
4249   // CHECK-LABEL: @test_mm_maskz_expand_epi64
4250   // CHECK: @llvm.x86.avx512.mask.expand
4251   return _mm_maskz_expand_epi64(__U,__A);
4252 }
test_mm256_mask_expand_epi64(__m256i __W,__mmask8 __U,__m256i __A)4253 __m256i test_mm256_mask_expand_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
4254   // CHECK-LABEL: @test_mm256_mask_expand_epi64
4255   // CHECK: @llvm.x86.avx512.mask.expand
4256   return _mm256_mask_expand_epi64(__W,__U,__A);
4257 }
test_mm256_maskz_expand_epi64(__mmask8 __U,__m256i __A)4258 __m256i test_mm256_maskz_expand_epi64(__mmask8 __U, __m256i __A) {
4259   // CHECK-LABEL: @test_mm256_maskz_expand_epi64
4260   // CHECK: @llvm.x86.avx512.mask.expand
4261   return _mm256_maskz_expand_epi64(__U,__A);
4262 }
test_mm_mask_expandloadu_pd(__m128d __W,__mmask8 __U,void const * __P)4263 __m128d test_mm_mask_expandloadu_pd(__m128d __W, __mmask8 __U, void const *__P) {
4264   // CHECK-LABEL: @test_mm_mask_expandloadu_pd
4265   // CHECK: @llvm.masked.expandload.v2f64(double* %{{.*}}, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
4266   return _mm_mask_expandloadu_pd(__W,__U,__P);
4267 }
test_mm_maskz_expandloadu_pd(__mmask8 __U,void const * __P)4268 __m128d test_mm_maskz_expandloadu_pd(__mmask8 __U, void const *__P) {
4269   // CHECK-LABEL: @test_mm_maskz_expandloadu_pd
4270   // CHECK: @llvm.masked.expandload.v2f64(double* %{{.*}}, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
4271   return _mm_maskz_expandloadu_pd(__U,__P);
4272 }
test_mm256_mask_expandloadu_pd(__m256d __W,__mmask8 __U,void const * __P)4273 __m256d test_mm256_mask_expandloadu_pd(__m256d __W, __mmask8 __U, void const *__P) {
4274   // CHECK-LABEL: @test_mm256_mask_expandloadu_pd
4275   // CHECK: @llvm.masked.expandload.v4f64(double* %{{.*}}, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
4276   return _mm256_mask_expandloadu_pd(__W,__U,__P);
4277 }
test_mm256_maskz_expandloadu_pd(__mmask8 __U,void const * __P)4278 __m256d test_mm256_maskz_expandloadu_pd(__mmask8 __U, void const *__P) {
4279   // CHECK-LABEL: @test_mm256_maskz_expandloadu_pd
4280   // CHECK: @llvm.masked.expandload.v4f64(double* %{{.*}}, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
4281   return _mm256_maskz_expandloadu_pd(__U,__P);
4282 }
test_mm_mask_expandloadu_epi64(__m128i __W,__mmask8 __U,void const * __P)4283 __m128i test_mm_mask_expandloadu_epi64(__m128i __W, __mmask8 __U, void const *__P) {
4284   // CHECK-LABEL: @test_mm_mask_expandloadu_epi64
4285   // CHECK: @llvm.masked.expandload.v2i64(i64* %{{.*}}, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
4286   return _mm_mask_expandloadu_epi64(__W,__U,__P);
4287 }
test_mm_maskz_expandloadu_epi64(__mmask8 __U,void const * __P)4288 __m128i test_mm_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) {
4289   // CHECK-LABEL: @test_mm_maskz_expandloadu_epi64
4290   // CHECK: @llvm.masked.expandload.v2i64(i64* %{{.*}}, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
4291   return _mm_maskz_expandloadu_epi64(__U,__P);
4292 }
test_mm256_mask_expandloadu_epi64(__m256i __W,__mmask8 __U,void const * __P)4293 __m256i test_mm256_mask_expandloadu_epi64(__m256i __W, __mmask8 __U,   void const *__P) {
4294   // CHECK-LABEL: @test_mm256_mask_expandloadu_epi64
4295   // CHECK: @llvm.masked.expandload.v4i64(i64* %{{.*}}, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
4296   return _mm256_mask_expandloadu_epi64(__W,__U,__P);
4297 }
test_mm256_maskz_expandloadu_epi64(__mmask8 __U,void const * __P)4298 __m256i test_mm256_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) {
4299   // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi64
4300   // CHECK: @llvm.masked.expandload.v4i64(i64* %{{.*}}, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
4301   return _mm256_maskz_expandloadu_epi64(__U,__P);
4302 }
test_mm_mask_expandloadu_ps(__m128 __W,__mmask8 __U,void const * __P)4303 __m128 test_mm_mask_expandloadu_ps(__m128 __W, __mmask8 __U, void const *__P) {
4304   // CHECK-LABEL: @test_mm_mask_expandloadu_ps
4305   // CHECK: @llvm.masked.expandload.v4f32(float* %{{.*}}, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
4306   return _mm_mask_expandloadu_ps(__W,__U,__P);
4307 }
test_mm_maskz_expandloadu_ps(__mmask8 __U,void const * __P)4308 __m128 test_mm_maskz_expandloadu_ps(__mmask8 __U, void const *__P) {
4309   // CHECK-LABEL: @test_mm_maskz_expandloadu_ps
4310   // CHECK: @llvm.masked.expandload.v4f32(float* %{{.*}}, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
4311   return _mm_maskz_expandloadu_ps(__U,__P);
4312 }
test_mm256_mask_expandloadu_ps(__m256 __W,__mmask8 __U,void const * __P)4313 __m256 test_mm256_mask_expandloadu_ps(__m256 __W, __mmask8 __U, void const *__P) {
4314   // CHECK-LABEL: @test_mm256_mask_expandloadu_ps
4315   // CHECK: @llvm.masked.expandload.v8f32(float* %{{.*}}, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
4316   return _mm256_mask_expandloadu_ps(__W,__U,__P);
4317 }
test_mm256_maskz_expandloadu_ps(__mmask8 __U,void const * __P)4318 __m256 test_mm256_maskz_expandloadu_ps(__mmask8 __U, void const *__P) {
4319   // CHECK-LABEL: @test_mm256_maskz_expandloadu_ps
4320   // CHECK: @llvm.masked.expandload.v8f32(float* %{{.*}}, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
4321   return _mm256_maskz_expandloadu_ps(__U,__P);
4322 }
test_mm_mask_expandloadu_epi32(__m128i __W,__mmask8 __U,void const * __P)4323 __m128i test_mm_mask_expandloadu_epi32(__m128i __W, __mmask8 __U, void const *__P) {
4324   // CHECK-LABEL: @test_mm_mask_expandloadu_epi32
4325   // CHECK: @llvm.masked.expandload.v4i32(i32* %{{.*}}, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
4326   return _mm_mask_expandloadu_epi32(__W,__U,__P);
4327 }
test_mm_maskz_expandloadu_epi32(__mmask8 __U,void const * __P)4328 __m128i test_mm_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) {
4329   // CHECK-LABEL: @test_mm_maskz_expandloadu_epi32
4330   // CHECK: @llvm.masked.expandload.v4i32(i32* %{{.*}}, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
4331   return _mm_maskz_expandloadu_epi32(__U,__P);
4332 }
test_mm256_mask_expandloadu_epi32(__m256i __W,__mmask8 __U,void const * __P)4333 __m256i test_mm256_mask_expandloadu_epi32(__m256i __W, __mmask8 __U,   void const *__P) {
4334   // CHECK-LABEL: @test_mm256_mask_expandloadu_epi32
4335   // CHECK: @llvm.masked.expandload.v8i32(i32* %{{.*}}, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
4336   return _mm256_mask_expandloadu_epi32(__W,__U,__P);
4337 }
test_mm256_maskz_expandloadu_epi32(__mmask8 __U,void const * __P)4338 __m256i test_mm256_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) {
4339   // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi32
4340   // CHECK: @llvm.masked.expandload.v8i32(i32* %{{.*}}, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
4341   return _mm256_maskz_expandloadu_epi32(__U,__P);
4342 }
test_mm_mask_expand_ps(__m128 __W,__mmask8 __U,__m128 __A)4343 __m128 test_mm_mask_expand_ps(__m128 __W, __mmask8 __U, __m128 __A) {
4344   // CHECK-LABEL: @test_mm_mask_expand_ps
4345   // CHECK: @llvm.x86.avx512.mask.expand
4346   return _mm_mask_expand_ps(__W,__U,__A);
4347 }
test_mm_maskz_expand_ps(__mmask8 __U,__m128 __A)4348 __m128 test_mm_maskz_expand_ps(__mmask8 __U, __m128 __A) {
4349   // CHECK-LABEL: @test_mm_maskz_expand_ps
4350   // CHECK: @llvm.x86.avx512.mask.expand
4351   return _mm_maskz_expand_ps(__U,__A);
4352 }
test_mm256_mask_expand_ps(__m256 __W,__mmask8 __U,__m256 __A)4353 __m256 test_mm256_mask_expand_ps(__m256 __W, __mmask8 __U, __m256 __A) {
4354   // CHECK-LABEL: @test_mm256_mask_expand_ps
4355   // CHECK: @llvm.x86.avx512.mask.expand
4356   return _mm256_mask_expand_ps(__W,__U,__A);
4357 }
test_mm256_maskz_expand_ps(__mmask8 __U,__m256 __A)4358 __m256 test_mm256_maskz_expand_ps(__mmask8 __U, __m256 __A) {
4359   // CHECK-LABEL: @test_mm256_maskz_expand_ps
4360   // CHECK: @llvm.x86.avx512.mask.expand
4361   return _mm256_maskz_expand_ps(__U,__A);
4362 }
test_mm_mask_expand_epi32(__m128i __W,__mmask8 __U,__m128i __A)4363 __m128i test_mm_mask_expand_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
4364   // CHECK-LABEL: @test_mm_mask_expand_epi32
4365   // CHECK: @llvm.x86.avx512.mask.expand
4366   return _mm_mask_expand_epi32(__W,__U,__A);
4367 }
test_mm_maskz_expand_epi32(__mmask8 __U,__m128i __A)4368 __m128i test_mm_maskz_expand_epi32(__mmask8 __U, __m128i __A) {
4369   // CHECK-LABEL: @test_mm_maskz_expand_epi32
4370   // CHECK: @llvm.x86.avx512.mask.expand
4371   return _mm_maskz_expand_epi32(__U,__A);
4372 }
test_mm256_mask_expand_epi32(__m256i __W,__mmask8 __U,__m256i __A)4373 __m256i test_mm256_mask_expand_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
4374   // CHECK-LABEL: @test_mm256_mask_expand_epi32
4375   // CHECK: @llvm.x86.avx512.mask.expand
4376   return _mm256_mask_expand_epi32(__W,__U,__A);
4377 }
test_mm256_maskz_expand_epi32(__mmask8 __U,__m256i __A)4378 __m256i test_mm256_maskz_expand_epi32(__mmask8 __U, __m256i __A) {
4379   // CHECK-LABEL: @test_mm256_maskz_expand_epi32
4380   // CHECK: @llvm.x86.avx512.mask.expand
4381   return _mm256_maskz_expand_epi32(__U,__A);
4382 }
test_mm_getexp_pd(__m128d __A)4383 __m128d test_mm_getexp_pd(__m128d __A) {
4384   // CHECK-LABEL: @test_mm_getexp_pd
4385   // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4386   return _mm_getexp_pd(__A);
4387 }
test_mm_mask_getexp_pd(__m128d __W,__mmask8 __U,__m128d __A)4388 __m128d test_mm_mask_getexp_pd(__m128d __W, __mmask8 __U, __m128d __A) {
4389   // CHECK-LABEL: @test_mm_mask_getexp_pd
4390   // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4391   return _mm_mask_getexp_pd(__W,__U,__A);
4392 }
test_mm_maskz_getexp_pd(__mmask8 __U,__m128d __A)4393 __m128d test_mm_maskz_getexp_pd(__mmask8 __U, __m128d __A) {
4394   // CHECK-LABEL: @test_mm_maskz_getexp_pd
4395   // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4396   return _mm_maskz_getexp_pd(__U,__A);
4397 }
test_mm256_getexp_pd(__m256d __A)4398 __m256d test_mm256_getexp_pd(__m256d __A) {
4399   // CHECK-LABEL: @test_mm256_getexp_pd
4400   // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4401   return _mm256_getexp_pd(__A);
4402 }
test_mm256_mask_getexp_pd(__m256d __W,__mmask8 __U,__m256d __A)4403 __m256d test_mm256_mask_getexp_pd(__m256d __W, __mmask8 __U, __m256d __A) {
4404   // CHECK-LABEL: @test_mm256_mask_getexp_pd
4405   // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4406   return _mm256_mask_getexp_pd(__W,__U,__A);
4407 }
test_mm256_maskz_getexp_pd(__mmask8 __U,__m256d __A)4408 __m256d test_mm256_maskz_getexp_pd(__mmask8 __U, __m256d __A) {
4409   // CHECK-LABEL: @test_mm256_maskz_getexp_pd
4410   // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4411   return _mm256_maskz_getexp_pd(__U,__A);
4412 }
test_mm_getexp_ps(__m128 __A)4413 __m128 test_mm_getexp_ps(__m128 __A) {
4414   // CHECK-LABEL: @test_mm_getexp_ps
4415   // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4416   return _mm_getexp_ps(__A);
4417 }
test_mm_mask_getexp_ps(__m128 __W,__mmask8 __U,__m128 __A)4418 __m128 test_mm_mask_getexp_ps(__m128 __W, __mmask8 __U, __m128 __A) {
4419   // CHECK-LABEL: @test_mm_mask_getexp_ps
4420   // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4421   return _mm_mask_getexp_ps(__W,__U,__A);
4422 }
test_mm_maskz_getexp_ps(__mmask8 __U,__m128 __A)4423 __m128 test_mm_maskz_getexp_ps(__mmask8 __U, __m128 __A) {
4424   // CHECK-LABEL: @test_mm_maskz_getexp_ps
4425   // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4426   return _mm_maskz_getexp_ps(__U,__A);
4427 }
test_mm256_getexp_ps(__m256 __A)4428 __m256 test_mm256_getexp_ps(__m256 __A) {
4429   // CHECK-LABEL: @test_mm256_getexp_ps
4430   // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4431   return _mm256_getexp_ps(__A);
4432 }
test_mm256_mask_getexp_ps(__m256 __W,__mmask8 __U,__m256 __A)4433 __m256 test_mm256_mask_getexp_ps(__m256 __W, __mmask8 __U, __m256 __A) {
4434   // CHECK-LABEL: @test_mm256_mask_getexp_ps
4435   // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4436   return _mm256_mask_getexp_ps(__W,__U,__A);
4437 }
test_mm256_maskz_getexp_ps(__mmask8 __U,__m256 __A)4438 __m256 test_mm256_maskz_getexp_ps(__mmask8 __U, __m256 __A) {
4439   // CHECK-LABEL: @test_mm256_maskz_getexp_ps
4440   // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4441   return _mm256_maskz_getexp_ps(__U,__A);
4442 }
test_mm_mask_max_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4443 __m128d test_mm_mask_max_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4444   // CHECK-LABEL: @test_mm_mask_max_pd
4445   // CHECK: @llvm.x86.sse2.max.pd
4446   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4447   return _mm_mask_max_pd(__W,__U,__A,__B);
4448 }
test_mm_maskz_max_pd(__mmask8 __U,__m128d __A,__m128d __B)4449 __m128d test_mm_maskz_max_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4450   // CHECK-LABEL: @test_mm_maskz_max_pd
4451   // CHECK: @llvm.x86.sse2.max.pd
4452   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4453   return _mm_maskz_max_pd(__U,__A,__B);
4454 }
test_mm256_mask_max_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4455 __m256d test_mm256_mask_max_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4456   // CHECK-LABEL: @test_mm256_mask_max_pd
4457   // CHECK: @llvm.x86.avx.max.pd.256
4458   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4459   return _mm256_mask_max_pd(__W,__U,__A,__B);
4460 }
test_mm256_maskz_max_pd(__mmask8 __U,__m256d __A,__m256d __B)4461 __m256d test_mm256_maskz_max_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4462   // CHECK-LABEL: @test_mm256_maskz_max_pd
4463   // CHECK: @llvm.x86.avx.max.pd.256
4464   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4465   return _mm256_maskz_max_pd(__U,__A,__B);
4466 }
test_mm_mask_max_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4467 __m128 test_mm_mask_max_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4468   // CHECK-LABEL: @test_mm_mask_max_ps
4469   // CHECK: @llvm.x86.sse.max.ps
4470   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4471   return _mm_mask_max_ps(__W,__U,__A,__B);
4472 }
test_mm_maskz_max_ps(__mmask8 __U,__m128 __A,__m128 __B)4473 __m128 test_mm_maskz_max_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4474   // CHECK-LABEL: @test_mm_maskz_max_ps
4475   // CHECK: @llvm.x86.sse.max.ps
4476   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4477   return _mm_maskz_max_ps(__U,__A,__B);
4478 }
test_mm256_mask_max_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4479 __m256 test_mm256_mask_max_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4480   // CHECK-LABEL: @test_mm256_mask_max_ps
4481   // CHECK: @llvm.x86.avx.max.ps.256
4482   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4483   return _mm256_mask_max_ps(__W,__U,__A,__B);
4484 }
test_mm256_maskz_max_ps(__mmask8 __U,__m256 __A,__m256 __B)4485 __m256 test_mm256_maskz_max_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4486   // CHECK-LABEL: @test_mm256_maskz_max_ps
4487   // CHECK: @llvm.x86.avx.max.ps.256
4488   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4489   return _mm256_maskz_max_ps(__U,__A,__B);
4490 }
test_mm_mask_min_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4491 __m128d test_mm_mask_min_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4492   // CHECK-LABEL: @test_mm_mask_min_pd
4493   // CHECK: @llvm.x86.sse2.min.pd
4494   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4495   return _mm_mask_min_pd(__W,__U,__A,__B);
4496 }
test_mm_maskz_min_pd(__mmask8 __U,__m128d __A,__m128d __B)4497 __m128d test_mm_maskz_min_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4498   // CHECK-LABEL: @test_mm_maskz_min_pd
4499   // CHECK: @llvm.x86.sse2.min.pd
4500   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4501   return _mm_maskz_min_pd(__U,__A,__B);
4502 }
test_mm256_mask_min_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4503 __m256d test_mm256_mask_min_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4504   // CHECK-LABEL: @test_mm256_mask_min_pd
4505   // CHECK: @llvm.x86.avx.min.pd.256
4506   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4507   return _mm256_mask_min_pd(__W,__U,__A,__B);
4508 }
test_mm256_maskz_min_pd(__mmask8 __U,__m256d __A,__m256d __B)4509 __m256d test_mm256_maskz_min_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4510   // CHECK-LABEL: @test_mm256_maskz_min_pd
4511   // CHECK: @llvm.x86.avx.min.pd.256
4512   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4513   return _mm256_maskz_min_pd(__U,__A,__B);
4514 }
test_mm_mask_min_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4515 __m128 test_mm_mask_min_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4516   // CHECK-LABEL: @test_mm_mask_min_ps
4517   // CHECK: @llvm.x86.sse.min.ps
4518   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4519   return _mm_mask_min_ps(__W,__U,__A,__B);
4520 }
test_mm_maskz_min_ps(__mmask8 __U,__m128 __A,__m128 __B)4521 __m128 test_mm_maskz_min_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4522   // CHECK-LABEL: @test_mm_maskz_min_ps
4523   // CHECK: @llvm.x86.sse.min.ps
4524   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4525   return _mm_maskz_min_ps(__U,__A,__B);
4526 }
test_mm256_mask_min_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4527 __m256 test_mm256_mask_min_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4528   // CHECK-LABEL: @test_mm256_mask_min_ps
4529   // CHECK: @llvm.x86.avx.min.ps.256
4530   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4531   return _mm256_mask_min_ps(__W,__U,__A,__B);
4532 }
test_mm256_maskz_min_ps(__mmask8 __U,__m256 __A,__m256 __B)4533 __m256 test_mm256_maskz_min_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4534   // CHECK-LABEL: @test_mm256_maskz_min_ps
4535   // CHECK: @llvm.x86.avx.min.ps.256
4536   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4537   return _mm256_maskz_min_ps(__U,__A,__B);
4538 }
test_mm_mask_mul_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4539 __m128d test_mm_mask_mul_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4540   // CHECK-LABEL: @test_mm_mask_mul_pd
4541   // CHECK: fmul <2 x double> %{{.*}}, %{{.*}}
4542   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4543   return _mm_mask_mul_pd(__W,__U,__A,__B);
4544 }
test_mm_maskz_mul_pd(__mmask8 __U,__m128d __A,__m128d __B)4545 __m128d test_mm_maskz_mul_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4546   // CHECK-LABEL: @test_mm_maskz_mul_pd
4547   // CHECK: fmul <2 x double> %{{.*}}, %{{.*}}
4548   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4549   return _mm_maskz_mul_pd(__U,__A,__B);
4550 }
test_mm256_mask_mul_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4551 __m256d test_mm256_mask_mul_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4552   // CHECK-LABEL: @test_mm256_mask_mul_pd
4553   // CHECK: fmul <4 x double> %{{.*}}, %{{.*}}
4554   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4555   return _mm256_mask_mul_pd(__W,__U,__A,__B);
4556 }
test_mm256_maskz_mul_pd(__mmask8 __U,__m256d __A,__m256d __B)4557 __m256d test_mm256_maskz_mul_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4558   // CHECK-LABEL: @test_mm256_maskz_mul_pd
4559   // CHECK: fmul <4 x double> %{{.*}}, %{{.*}}
4560   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4561   return _mm256_maskz_mul_pd(__U,__A,__B);
4562 }
test_mm_mask_mul_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4563 __m128 test_mm_mask_mul_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4564   // CHECK-LABEL: @test_mm_mask_mul_ps
4565   // CHECK: fmul <4 x float> %{{.*}}, %{{.*}}
4566   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4567   return _mm_mask_mul_ps(__W,__U,__A,__B);
4568 }
test_mm_maskz_mul_ps(__mmask8 __U,__m128 __A,__m128 __B)4569 __m128 test_mm_maskz_mul_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4570   // CHECK-LABEL: @test_mm_maskz_mul_ps
4571   // CHECK: fmul <4 x float> %{{.*}}, %{{.*}}
4572   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4573   return _mm_maskz_mul_ps(__U,__A,__B);
4574 }
test_mm256_mask_mul_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4575 __m256 test_mm256_mask_mul_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4576   // CHECK-LABEL: @test_mm256_mask_mul_ps
4577   // CHECK: fmul <8 x float> %{{.*}}, %{{.*}}
4578   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4579   return _mm256_mask_mul_ps(__W,__U,__A,__B);
4580 }
test_mm256_maskz_mul_ps(__mmask8 __U,__m256 __A,__m256 __B)4581 __m256 test_mm256_maskz_mul_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4582   // CHECK-LABEL: @test_mm256_maskz_mul_ps
4583   // CHECK: fmul <8 x float> %{{.*}}, %{{.*}}
4584   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4585   return _mm256_maskz_mul_ps(__U,__A,__B);
4586 }
test_mm_mask_abs_epi32(__m128i __W,__mmask8 __U,__m128i __A)4587 __m128i test_mm_mask_abs_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
4588   // CHECK-LABEL: @test_mm_mask_abs_epi32
4589   // CHECK: [[SUB:%.*]] = sub <4 x i32> zeroinitializer, [[A:%.*]]
4590   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i32> [[A]], zeroinitializer
4591   // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[A]], <4 x i32> [[SUB]]
4592   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> [[SEL]], <4 x i32> %{{.*}}
4593   return _mm_mask_abs_epi32(__W,__U,__A);
4594 }
test_mm_maskz_abs_epi32(__mmask8 __U,__m128i __A)4595 __m128i test_mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) {
4596   // CHECK-LABEL: @test_mm_maskz_abs_epi32
4597   // CHECK: [[SUB:%.*]] = sub <4 x i32> zeroinitializer, [[A:%.*]]
4598   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i32> [[A]], zeroinitializer
4599   // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[A]], <4 x i32> [[SUB]]
4600   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> [[SEL]], <4 x i32> %{{.*}}
4601   return _mm_maskz_abs_epi32(__U,__A);
4602 }
test_mm256_mask_abs_epi32(__m256i __W,__mmask8 __U,__m256i __A)4603 __m256i test_mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
4604   // CHECK-LABEL: @test_mm256_mask_abs_epi32
4605   // CHECK: [[SUB:%.*]] = sub <8 x i32> zeroinitializer, [[A:%.*]]
4606   // CHECK: [[CMP:%.*]] = icmp sgt <8 x i32> [[A]], zeroinitializer
4607   // CHECK: [[SEL:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[A]], <8 x i32> [[SUB]]
4608   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> [[SEL]], <8 x i32> %{{.*}}
4609   return _mm256_mask_abs_epi32(__W,__U,__A);
4610 }
test_mm256_maskz_abs_epi32(__mmask8 __U,__m256i __A)4611 __m256i test_mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) {
4612   // CHECK-LABEL: @test_mm256_maskz_abs_epi32
4613   // CHECK: [[SUB:%.*]] = sub <8 x i32> zeroinitializer, [[A:%.*]]
4614   // CHECK: [[CMP:%.*]] = icmp sgt <8 x i32> [[A]], zeroinitializer
4615   // CHECK: [[SEL:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[A]], <8 x i32> [[SUB]]
4616   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> [[SEL]], <8 x i32> %{{.*}}
4617   return _mm256_maskz_abs_epi32(__U,__A);
4618 }
test_mm_abs_epi64(__m128i __A)4619 __m128i test_mm_abs_epi64(__m128i __A) {
4620   // CHECK-LABEL: @test_mm_abs_epi64
4621   // CHECK: [[SUB:%.*]] = sub <2 x i64> zeroinitializer, [[A:%.*]]
4622   // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[A]], zeroinitializer
4623   // CHECK: select <2 x i1> [[CMP]], <2 x i64> [[A]], <2 x i64> [[SUB]]
4624 
4625   return _mm_abs_epi64(__A);
4626 }
test_mm_mask_abs_epi64(__m128i __W,__mmask8 __U,__m128i __A)4627 __m128i test_mm_mask_abs_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
4628   // CHECK-LABEL: @test_mm_mask_abs_epi64
4629   // CHECK: [[SUB:%.*]] = sub <2 x i64> zeroinitializer, [[A:%.*]]
4630   // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[A]], zeroinitializer
4631   // CHECK: [[SEL:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[A]], <2 x i64> [[SUB]]
4632   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> [[SEL]], <2 x i64> %{{.*}}
4633 
4634   return _mm_mask_abs_epi64(__W,__U,__A);
4635 }
test_mm_maskz_abs_epi64(__mmask8 __U,__m128i __A)4636 __m128i test_mm_maskz_abs_epi64(__mmask8 __U, __m128i __A) {
4637   // CHECK-LABEL: @test_mm_maskz_abs_epi64
4638   // CHECK: [[SUB:%.*]] = sub <2 x i64> zeroinitializer, [[A:%.*]]
4639   // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[A]], zeroinitializer
4640   // CHECK: [[SEL:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[A]], <2 x i64> [[SUB]]
4641   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> [[SEL]], <2 x i64> %{{.*}}
4642   return _mm_maskz_abs_epi64(__U,__A);
4643 }
test_mm256_abs_epi64(__m256i __A)4644 __m256i test_mm256_abs_epi64(__m256i __A) {
4645   // CHECK-LABEL: @test_mm256_abs_epi64
4646   // CHECK: [[SUB:%.*]] = sub <4 x i64> zeroinitializer, [[A:%.*]]
4647   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[A]], zeroinitializer
4648   // CHECK: select <4 x i1> [[CMP]], <4 x i64> [[A]], <4 x i64> [[SUB]]
4649   return _mm256_abs_epi64(__A);
4650 }
test_mm256_mask_abs_epi64(__m256i __W,__mmask8 __U,__m256i __A)4651 __m256i test_mm256_mask_abs_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
4652   // CHECK-LABEL: @test_mm256_mask_abs_epi64
4653   // CHECK: [[SUB:%.*]] = sub <4 x i64> zeroinitializer, [[A:%.*]]
4654   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[A]], zeroinitializer
4655   // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[A]], <4 x i64> [[SUB]]
4656   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> [[SEL]], <4 x i64> %{{.*}}
4657   return _mm256_mask_abs_epi64(__W,__U,__A);
4658 }
test_mm256_maskz_abs_epi64(__mmask8 __U,__m256i __A)4659 __m256i test_mm256_maskz_abs_epi64(__mmask8 __U, __m256i __A) {
4660   // CHECK-LABEL: @test_mm256_maskz_abs_epi64
4661   // CHECK: [[SUB:%.*]] = sub <4 x i64> zeroinitializer, [[A:%.*]]
4662   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[A]], zeroinitializer
4663   // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[A]], <4 x i64> [[SUB]]
4664   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> [[SEL]], <4 x i64> %{{.*}}
4665   return _mm256_maskz_abs_epi64(__U,__A);
4666 }
test_mm_maskz_max_epi32(__mmask8 __M,__m128i __A,__m128i __B)4667 __m128i test_mm_maskz_max_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
4668   // CHECK-LABEL: @test_mm_maskz_max_epi32
4669   // CHECK:       [[CMP:%.*]] = icmp sgt <4 x i32> [[X:%.*]], [[Y:%.*]]
4670   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4671   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4672   return _mm_maskz_max_epi32(__M,__A,__B);
4673 }
test_mm_mask_max_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4674 __m128i test_mm_mask_max_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4675   // CHECK-LABEL: @test_mm_mask_max_epi32
4676   // CHECK:       [[CMP:%.*]] = icmp sgt <4 x i32> [[X:%.*]], [[Y:%.*]]
4677   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4678   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4679   return _mm_mask_max_epi32(__W,__M,__A,__B);
4680 }
test_mm256_maskz_max_epi32(__mmask8 __M,__m256i __A,__m256i __B)4681 __m256i test_mm256_maskz_max_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
4682   // CHECK-LABEL: @test_mm256_maskz_max_epi32
4683   // CHECK:       [[CMP:%.*]] = icmp sgt <8 x i32> [[X:%.*]], [[Y:%.*]]
4684   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4685   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4686   return _mm256_maskz_max_epi32(__M,__A,__B);
4687 }
test_mm256_mask_max_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4688 __m256i test_mm256_mask_max_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4689   // CHECK-LABEL: @test_mm256_mask_max_epi32
4690   // CHECK:       [[CMP:%.*]] = icmp sgt <8 x i32> [[X:%.*]], [[Y:%.*]]
4691   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4692   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4693   return _mm256_mask_max_epi32(__W,__M,__A,__B);
4694 }
test_mm_maskz_max_epi64(__mmask8 __M,__m128i __A,__m128i __B)4695 __m128i test_mm_maskz_max_epi64(__mmask8 __M, __m128i __A, __m128i __B) {
4696   // CHECK-LABEL: @test_mm_maskz_max_epi64
4697   // CHECK:       [[CMP:%.*]] = icmp sgt <2 x i64> [[X:%.*]], [[Y:%.*]]
4698   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4699   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4700   return _mm_maskz_max_epi64(__M,__A,__B);
4701 }
test_mm_mask_max_epi64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4702 __m128i test_mm_mask_max_epi64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4703   // CHECK-LABEL: @test_mm_mask_max_epi64
4704   // CHECK:       [[CMP:%.*]] = icmp sgt <2 x i64> [[X:%.*]], [[Y:%.*]]
4705   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4706   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4707   return _mm_mask_max_epi64(__W,__M,__A,__B);
4708 }
test_mm_max_epi64(__m128i __A,__m128i __B)4709 __m128i test_mm_max_epi64(__m128i __A, __m128i __B) {
4710   // CHECK-LABEL: @test_mm_max_epi64
4711   // CHECK:       [[CMP:%.*]] = icmp sgt <2 x i64> [[X:%.*]], [[Y:%.*]]
4712   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4713   return _mm_max_epi64(__A,__B);
4714 }
test_mm256_maskz_max_epi64(__mmask8 __M,__m256i __A,__m256i __B)4715 __m256i test_mm256_maskz_max_epi64(__mmask8 __M, __m256i __A, __m256i __B) {
4716   // CHECK-LABEL: @test_mm256_maskz_max_epi64
4717   // CHECK:       [[CMP:%.*]] = icmp sgt <4 x i64> [[X:%.*]], [[Y:%.*]]
4718   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4719   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4720   return _mm256_maskz_max_epi64(__M,__A,__B);
4721 }
test_mm256_mask_max_epi64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4722 __m256i test_mm256_mask_max_epi64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4723   // CHECK-LABEL: @test_mm256_mask_max_epi64
4724   // CHECK:       [[CMP:%.*]] = icmp sgt <4 x i64> [[X:%.*]], [[Y:%.*]]
4725   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4726   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4727   return _mm256_mask_max_epi64(__W,__M,__A,__B);
4728 }
test_mm256_max_epi64(__m256i __A,__m256i __B)4729 __m256i test_mm256_max_epi64(__m256i __A, __m256i __B) {
4730   // CHECK-LABEL: @test_mm256_max_epi64
4731   // CHECK:       [[CMP:%.*]] = icmp sgt <4 x i64> [[X:%.*]], [[Y:%.*]]
4732   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4733   return _mm256_max_epi64(__A,__B);
4734 }
test_mm_maskz_max_epu32(__mmask8 __M,__m128i __A,__m128i __B)4735 __m128i test_mm_maskz_max_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
4736   // CHECK-LABEL: @test_mm_maskz_max_epu32
4737   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i32> [[X:%.*]], [[Y:%.*]]
4738   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4739   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4740   return _mm_maskz_max_epu32(__M,__A,__B);
4741 }
test_mm_mask_max_epu32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4742 __m128i test_mm_mask_max_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4743   // CHECK-LABEL: @test_mm_mask_max_epu32
4744   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i32> [[X:%.*]], [[Y:%.*]]
4745   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4746   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4747   return _mm_mask_max_epu32(__W,__M,__A,__B);
4748 }
test_mm256_maskz_max_epu32(__mmask8 __M,__m256i __A,__m256i __B)4749 __m256i test_mm256_maskz_max_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
4750   // CHECK-LABEL: @test_mm256_maskz_max_epu32
4751   // CHECK:       [[CMP:%.*]] = icmp ugt <8 x i32> [[X:%.*]], [[Y:%.*]]
4752   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4753   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4754   return _mm256_maskz_max_epu32(__M,__A,__B);
4755 }
test_mm256_mask_max_epu32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4756 __m256i test_mm256_mask_max_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4757   // CHECK-LABEL: @test_mm256_mask_max_epu32
4758   // CHECK:       [[CMP:%.*]] = icmp ugt <8 x i32> [[X:%.*]], [[Y:%.*]]
4759   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4760   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4761   return _mm256_mask_max_epu32(__W,__M,__A,__B);
4762 }
test_mm_maskz_max_epu64(__mmask8 __M,__m128i __A,__m128i __B)4763 __m128i test_mm_maskz_max_epu64(__mmask8 __M, __m128i __A, __m128i __B) {
4764   // CHECK-LABEL: @test_mm_maskz_max_epu64
4765   // CHECK:       [[CMP:%.*]] = icmp ugt <2 x i64> [[X:%.*]], [[Y:%.*]]
4766   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4767   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4768   return _mm_maskz_max_epu64(__M,__A,__B);
4769 }
test_mm_max_epu64(__m128i __A,__m128i __B)4770 __m128i test_mm_max_epu64(__m128i __A, __m128i __B) {
4771   // CHECK-LABEL: @test_mm_max_epu64
4772   // CHECK:       [[CMP:%.*]] = icmp ugt <2 x i64> [[X:%.*]], [[Y:%.*]]
4773   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4774   return _mm_max_epu64(__A,__B);
4775 }
test_mm_mask_max_epu64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4776 __m128i test_mm_mask_max_epu64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4777   // CHECK-LABEL: @test_mm_mask_max_epu64
4778   // CHECK:       [[CMP:%.*]] = icmp ugt <2 x i64> [[X:%.*]], [[Y:%.*]]
4779   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4780   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4781   return _mm_mask_max_epu64(__W,__M,__A,__B);
4782 }
test_mm256_maskz_max_epu64(__mmask8 __M,__m256i __A,__m256i __B)4783 __m256i test_mm256_maskz_max_epu64(__mmask8 __M, __m256i __A, __m256i __B) {
4784   // CHECK-LABEL: @test_mm256_maskz_max_epu64
4785   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i64> [[X:%.*]], [[Y:%.*]]
4786   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4787   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4788   return _mm256_maskz_max_epu64(__M,__A,__B);
4789 }
test_mm256_max_epu64(__m256i __A,__m256i __B)4790 __m256i test_mm256_max_epu64(__m256i __A, __m256i __B) {
4791   // CHECK-LABEL: @test_mm256_max_epu64
4792   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i64> [[X:%.*]], [[Y:%.*]]
4793   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4794   return _mm256_max_epu64(__A,__B);
4795 }
test_mm256_mask_max_epu64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4796 __m256i test_mm256_mask_max_epu64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4797   // CHECK-LABEL: @test_mm256_mask_max_epu64
4798   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i64> [[X:%.*]], [[Y:%.*]]
4799   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4800   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4801   return _mm256_mask_max_epu64(__W,__M,__A,__B);
4802 }
test_mm_maskz_min_epi32(__mmask8 __M,__m128i __A,__m128i __B)4803 __m128i test_mm_maskz_min_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
4804   // CHECK-LABEL: @test_mm_maskz_min_epi32
4805   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i32> [[X:%.*]], [[Y:%.*]]
4806   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4807   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4808   return _mm_maskz_min_epi32(__M,__A,__B);
4809 }
test_mm_mask_min_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4810 __m128i test_mm_mask_min_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4811   // CHECK-LABEL: @test_mm_mask_min_epi32
4812   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i32> [[X:%.*]], [[Y:%.*]]
4813   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4814   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4815   return _mm_mask_min_epi32(__W,__M,__A,__B);
4816 }
test_mm256_maskz_min_epi32(__mmask8 __M,__m256i __A,__m256i __B)4817 __m256i test_mm256_maskz_min_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
4818   // CHECK-LABEL: @test_mm256_maskz_min_epi32
4819   // CHECK:       [[CMP:%.*]] = icmp slt <8 x i32> [[X:%.*]], [[Y:%.*]]
4820   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4821   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4822   return _mm256_maskz_min_epi32(__M,__A,__B);
4823 }
test_mm256_mask_min_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4824 __m256i test_mm256_mask_min_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4825   // CHECK-LABEL: @test_mm256_mask_min_epi32
4826   // CHECK:       [[CMP:%.*]] = icmp slt <8 x i32> [[X:%.*]], [[Y:%.*]]
4827   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4828   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4829   return _mm256_mask_min_epi32(__W,__M,__A,__B);
4830 }
test_mm_min_epi64(__m128i __A,__m128i __B)4831 __m128i test_mm_min_epi64(__m128i __A, __m128i __B) {
4832   // CHECK-LABEL: @test_mm_min_epi64
4833   // CHECK:       [[CMP:%.*]] = icmp slt <2 x i64> [[X:%.*]], [[Y:%.*]]
4834   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4835   return _mm_min_epi64(__A,__B);
4836 }
test_mm_mask_min_epi64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4837 __m128i test_mm_mask_min_epi64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4838   // CHECK-LABEL: @test_mm_mask_min_epi64
4839   // CHECK:       [[CMP:%.*]] = icmp slt <2 x i64> [[X:%.*]], [[Y:%.*]]
4840   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4841   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4842   return _mm_mask_min_epi64(__W,__M,__A,__B);
4843 }
test_mm_maskz_min_epi64(__mmask8 __M,__m128i __A,__m128i __B)4844 __m128i test_mm_maskz_min_epi64(__mmask8 __M, __m128i __A, __m128i __B) {
4845   // CHECK-LABEL: @test_mm_maskz_min_epi64
4846   // CHECK:       [[CMP:%.*]] = icmp slt <2 x i64> [[X:%.*]], [[Y:%.*]]
4847   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4848   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4849   return _mm_maskz_min_epi64(__M,__A,__B);
4850 }
test_mm256_min_epi64(__m256i __A,__m256i __B)4851 __m256i test_mm256_min_epi64(__m256i __A, __m256i __B) {
4852   // CHECK-LABEL: @test_mm256_min_epi64
4853   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i64> [[X:%.*]], [[Y:%.*]]
4854   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4855   return _mm256_min_epi64(__A,__B);
4856 }
test_mm256_mask_min_epi64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4857 __m256i test_mm256_mask_min_epi64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4858   // CHECK-LABEL: @test_mm256_mask_min_epi64
4859   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i64> [[X:%.*]], [[Y:%.*]]
4860   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4861   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4862   return _mm256_mask_min_epi64(__W,__M,__A,__B);
4863 }
test_mm256_maskz_min_epi64(__mmask8 __M,__m256i __A,__m256i __B)4864 __m256i test_mm256_maskz_min_epi64(__mmask8 __M, __m256i __A, __m256i __B) {
4865   // CHECK-LABEL: @test_mm256_maskz_min_epi64
4866   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i64> [[X:%.*]], [[Y:%.*]]
4867   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4868   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4869   return _mm256_maskz_min_epi64(__M,__A,__B);
4870 }
test_mm_maskz_min_epu32(__mmask8 __M,__m128i __A,__m128i __B)4871 __m128i test_mm_maskz_min_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
4872   // CHECK-LABEL: @test_mm_maskz_min_epu32
4873   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i32> [[X:%.*]], [[Y:%.*]]
4874   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4875   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4876   return _mm_maskz_min_epu32(__M,__A,__B);
4877 }
test_mm_mask_min_epu32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4878 __m128i test_mm_mask_min_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4879   // CHECK-LABEL: @test_mm_mask_min_epu32
4880   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i32> [[X:%.*]], [[Y:%.*]]
4881   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4882   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4883   return _mm_mask_min_epu32(__W,__M,__A,__B);
4884 }
test_mm256_maskz_min_epu32(__mmask8 __M,__m256i __A,__m256i __B)4885 __m256i test_mm256_maskz_min_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
4886   // CHECK-LABEL: @test_mm256_maskz_min_epu32
4887   // CHECK:       [[CMP:%.*]] = icmp ult <8 x i32> [[X:%.*]], [[Y:%.*]]
4888   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4889   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4890   return _mm256_maskz_min_epu32(__M,__A,__B);
4891 }
test_mm256_mask_min_epu32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4892 __m256i test_mm256_mask_min_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4893   // CHECK-LABEL: @test_mm256_mask_min_epu32
4894   // CHECK:       [[CMP:%.*]] = icmp ult <8 x i32> [[X:%.*]], [[Y:%.*]]
4895   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4896   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4897   return _mm256_mask_min_epu32(__W,__M,__A,__B);
4898 }
test_mm_min_epu64(__m128i __A,__m128i __B)4899 __m128i test_mm_min_epu64(__m128i __A, __m128i __B) {
4900   // CHECK-LABEL: @test_mm_min_epu64
4901   // CHECK:       [[CMP:%.*]] = icmp ult <2 x i64> [[X:%.*]], [[Y:%.*]]
4902   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4903   return _mm_min_epu64(__A,__B);
4904 }
test_mm_mask_min_epu64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4905 __m128i test_mm_mask_min_epu64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4906   // CHECK-LABEL: @test_mm_mask_min_epu64
4907   // CHECK:       [[CMP:%.*]] = icmp ult <2 x i64> [[X:%.*]], [[Y:%.*]]
4908   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4909   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4910   return _mm_mask_min_epu64(__W,__M,__A,__B);
4911 }
test_mm_maskz_min_epu64(__mmask8 __M,__m128i __A,__m128i __B)4912 __m128i test_mm_maskz_min_epu64(__mmask8 __M, __m128i __A, __m128i __B) {
4913   // CHECK-LABEL: @test_mm_maskz_min_epu64
4914   // CHECK:       [[CMP:%.*]] = icmp ult <2 x i64> [[X:%.*]], [[Y:%.*]]
4915   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4916   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4917   return _mm_maskz_min_epu64(__M,__A,__B);
4918 }
test_mm256_min_epu64(__m256i __A,__m256i __B)4919 __m256i test_mm256_min_epu64(__m256i __A, __m256i __B) {
4920   // CHECK-LABEL: @test_mm256_min_epu64
4921   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i64> [[X:%.*]], [[Y:%.*]]
4922   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4923   return _mm256_min_epu64(__A,__B);
4924 }
test_mm256_mask_min_epu64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4925 __m256i test_mm256_mask_min_epu64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4926   // CHECK-LABEL: @test_mm256_mask_min_epu64
4927   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i64> [[X:%.*]], [[Y:%.*]]
4928   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4929   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4930   return _mm256_mask_min_epu64(__W,__M,__A,__B);
4931 }
test_mm256_maskz_min_epu64(__mmask8 __M,__m256i __A,__m256i __B)4932 __m256i test_mm256_maskz_min_epu64(__mmask8 __M, __m256i __A, __m256i __B) {
4933   // CHECK-LABEL: @test_mm256_maskz_min_epu64
4934   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i64> [[X:%.*]], [[Y:%.*]]
4935   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4936   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4937   return _mm256_maskz_min_epu64(__M,__A,__B);
4938 }
test_mm_roundscale_pd(__m128d __A)4939 __m128d test_mm_roundscale_pd(__m128d __A) {
4940   // CHECK-LABEL: @test_mm_roundscale_pd
4941   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4942   return _mm_roundscale_pd(__A,4);
4943 }
test_mm_mask_roundscale_pd(__m128d __W,__mmask8 __U,__m128d __A)4944 __m128d test_mm_mask_roundscale_pd(__m128d __W, __mmask8 __U, __m128d __A) {
4945   // CHECK-LABEL: @test_mm_mask_roundscale_pd
4946   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4947   return _mm_mask_roundscale_pd(__W,__U,__A,4);
4948 }
test_mm_maskz_roundscale_pd(__mmask8 __U,__m128d __A)4949 __m128d test_mm_maskz_roundscale_pd(__mmask8 __U, __m128d __A) {
4950   // CHECK-LABEL: @test_mm_maskz_roundscale_pd
4951   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4952   return _mm_maskz_roundscale_pd(__U,__A,4);
4953 }
test_mm256_roundscale_pd(__m256d __A)4954 __m256d test_mm256_roundscale_pd(__m256d __A) {
4955   // CHECK-LABEL: @test_mm256_roundscale_pd
4956   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
4957   return _mm256_roundscale_pd(__A,4);
4958 }
test_mm256_mask_roundscale_pd(__m256d __W,__mmask8 __U,__m256d __A)4959 __m256d test_mm256_mask_roundscale_pd(__m256d __W, __mmask8 __U, __m256d __A) {
4960   // CHECK-LABEL: @test_mm256_mask_roundscale_pd
4961   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
4962   return _mm256_mask_roundscale_pd(__W,__U,__A,4);
4963 }
test_mm256_maskz_roundscale_pd(__mmask8 __U,__m256d __A)4964 __m256d test_mm256_maskz_roundscale_pd(__mmask8 __U, __m256d __A) {
4965   // CHECK-LABEL: @test_mm256_maskz_roundscale_pd
4966   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
4967   return _mm256_maskz_roundscale_pd(__U,__A,4);
4968 }
test_mm_roundscale_ps(__m128 __A)4969 __m128 test_mm_roundscale_ps(__m128 __A) {
4970   // CHECK-LABEL: @test_mm_roundscale_ps
4971   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
4972   return _mm_roundscale_ps(__A,4);
4973 }
test_mm_mask_roundscale_ps(__m128 __W,__mmask8 __U,__m128 __A)4974 __m128 test_mm_mask_roundscale_ps(__m128 __W, __mmask8 __U, __m128 __A) {
4975   // CHECK-LABEL: @test_mm_mask_roundscale_ps
4976   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
4977   return _mm_mask_roundscale_ps(__W,__U,__A,4);
4978 }
test_mm_maskz_roundscale_ps(__mmask8 __U,__m128 __A)4979 __m128 test_mm_maskz_roundscale_ps(__mmask8 __U, __m128 __A) {
4980   // CHECK-LABEL: @test_mm_maskz_roundscale_ps
4981   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
4982   return _mm_maskz_roundscale_ps(__U,__A, 4);
4983 }
test_mm256_roundscale_ps(__m256 __A)4984 __m256 test_mm256_roundscale_ps(__m256 __A) {
4985   // CHECK-LABEL: @test_mm256_roundscale_ps
4986   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
4987   return _mm256_roundscale_ps(__A,4);
4988 }
test_mm256_mask_roundscale_ps(__m256 __W,__mmask8 __U,__m256 __A)4989 __m256 test_mm256_mask_roundscale_ps(__m256 __W, __mmask8 __U, __m256 __A) {
4990   // CHECK-LABEL: @test_mm256_mask_roundscale_ps
4991   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
4992   return _mm256_mask_roundscale_ps(__W,__U,__A,4);
4993 }
test_mm256_maskz_roundscale_ps(__mmask8 __U,__m256 __A)4994 __m256 test_mm256_maskz_roundscale_ps(__mmask8 __U, __m256 __A) {
4995   // CHECK-LABEL: @test_mm256_maskz_roundscale_ps
4996   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
4997   return _mm256_maskz_roundscale_ps(__U,__A,4);
4998 }
test_mm_scalef_pd(__m128d __A,__m128d __B)4999 __m128d test_mm_scalef_pd(__m128d __A, __m128d __B) {
5000   // CHECK-LABEL: @test_mm_scalef_pd
5001   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
5002   return _mm_scalef_pd(__A,__B);
5003 }
test_mm_mask_scalef_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5004 __m128d test_mm_mask_scalef_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
5005   // CHECK-LABEL: @test_mm_mask_scalef_pd
5006   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
5007   return _mm_mask_scalef_pd(__W,__U,__A,__B);
5008 }
test_mm_maskz_scalef_pd(__mmask8 __U,__m128d __A,__m128d __B)5009 __m128d test_mm_maskz_scalef_pd(__mmask8 __U, __m128d __A, __m128d __B) {
5010   // CHECK-LABEL: @test_mm_maskz_scalef_pd
5011   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
5012   return _mm_maskz_scalef_pd(__U,__A,__B);
5013 }
test_mm256_scalef_pd(__m256d __A,__m256d __B)5014 __m256d test_mm256_scalef_pd(__m256d __A, __m256d __B) {
5015   // CHECK-LABEL: @test_mm256_scalef_pd
5016   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
5017   return _mm256_scalef_pd(__A,__B);
5018 }
test_mm256_mask_scalef_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)5019 __m256d test_mm256_mask_scalef_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
5020   // CHECK-LABEL: @test_mm256_mask_scalef_pd
5021   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
5022   return _mm256_mask_scalef_pd(__W,__U,__A,__B);
5023 }
test_mm256_maskz_scalef_pd(__mmask8 __U,__m256d __A,__m256d __B)5024 __m256d test_mm256_maskz_scalef_pd(__mmask8 __U, __m256d __A, __m256d __B) {
5025   // CHECK-LABEL: @test_mm256_maskz_scalef_pd
5026   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
5027   return _mm256_maskz_scalef_pd(__U,__A,__B);
5028 }
test_mm_scalef_ps(__m128 __A,__m128 __B)5029 __m128 test_mm_scalef_ps(__m128 __A, __m128 __B) {
5030   // CHECK-LABEL: @test_mm_scalef_ps
5031   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
5032   return _mm_scalef_ps(__A,__B);
5033 }
test_mm_mask_scalef_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5034 __m128 test_mm_mask_scalef_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
5035   // CHECK-LABEL: @test_mm_mask_scalef_ps
5036   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
5037   return _mm_mask_scalef_ps(__W,__U,__A,__B);
5038 }
test_mm_maskz_scalef_ps(__mmask8 __U,__m128 __A,__m128 __B)5039 __m128 test_mm_maskz_scalef_ps(__mmask8 __U, __m128 __A, __m128 __B) {
5040   // CHECK-LABEL: @test_mm_maskz_scalef_ps
5041   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
5042   return _mm_maskz_scalef_ps(__U,__A,__B);
5043 }
test_mm256_scalef_ps(__m256 __A,__m256 __B)5044 __m256 test_mm256_scalef_ps(__m256 __A, __m256 __B) {
5045   // CHECK-LABEL: @test_mm256_scalef_ps
5046   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
5047   return _mm256_scalef_ps(__A,__B);
5048 }
test_mm256_mask_scalef_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)5049 __m256 test_mm256_mask_scalef_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
5050   // CHECK-LABEL: @test_mm256_mask_scalef_ps
5051   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
5052   return _mm256_mask_scalef_ps(__W,__U,__A,__B);
5053 }
test_mm256_maskz_scalef_ps(__mmask8 __U,__m256 __A,__m256 __B)5054 __m256 test_mm256_maskz_scalef_ps(__mmask8 __U, __m256 __A, __m256 __B) {
5055   // CHECK-LABEL: @test_mm256_maskz_scalef_ps
5056   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
5057   return _mm256_maskz_scalef_ps(__U,__A,__B);
5058 }
test_mm_i64scatter_pd(double * __addr,__m128i __index,__m128d __v1)5059 void test_mm_i64scatter_pd(double *__addr, __m128i __index,  __m128d __v1) {
5060   // CHECK-LABEL: @test_mm_i64scatter_pd
5061   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.df
5062   return _mm_i64scatter_pd(__addr,__index,__v1,2);
5063 }
test_mm_mask_i64scatter_pd(double * __addr,__mmask8 __mask,__m128i __index,__m128d __v1)5064 void test_mm_mask_i64scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m128d __v1) {
5065   // CHECK-LABEL: @test_mm_mask_i64scatter_pd
5066   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.df
5067   return _mm_mask_i64scatter_pd(__addr,__mask,__index,__v1,2);
5068 }
test_mm_i64scatter_epi64(long long * __addr,__m128i __index,__m128i __v1)5069 void test_mm_i64scatter_epi64(long long *__addr, __m128i __index,  __m128i __v1) {
5070   // CHECK-LABEL: @test_mm_i64scatter_epi64
5071   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.di
5072   return _mm_i64scatter_epi64(__addr,__index,__v1,2);
5073 }
test_mm_mask_i64scatter_epi64(long long * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5074 void test_mm_mask_i64scatter_epi64(long long *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5075   // CHECK-LABEL: @test_mm_mask_i64scatter_epi64
5076   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.di
5077   return _mm_mask_i64scatter_epi64(__addr,__mask,__index,__v1,2);
5078 }
test_mm256_i64scatter_pd(double * __addr,__m256i __index,__m256d __v1)5079 void test_mm256_i64scatter_pd(double *__addr, __m256i __index,  __m256d __v1) {
5080   // CHECK-LABEL: @test_mm256_i64scatter_pd
5081   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.df
5082   return _mm256_i64scatter_pd(__addr,__index,__v1,2);
5083 }
test_mm256_mask_i64scatter_pd(double * __addr,__mmask8 __mask,__m256i __index,__m256d __v1)5084 void test_mm256_mask_i64scatter_pd(double *__addr, __mmask8 __mask, __m256i __index, __m256d __v1) {
5085   // CHECK-LABEL: @test_mm256_mask_i64scatter_pd
5086   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.df
5087   return _mm256_mask_i64scatter_pd(__addr,__mask,__index,__v1,2);
5088 }
test_mm256_i64scatter_epi64(long long * __addr,__m256i __index,__m256i __v1)5089 void test_mm256_i64scatter_epi64(long long *__addr, __m256i __index,  __m256i __v1) {
5090   // CHECK-LABEL: @test_mm256_i64scatter_epi64
5091   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.di
5092   return _mm256_i64scatter_epi64(__addr,__index,__v1,2);
5093 }
test_mm256_mask_i64scatter_epi64(long long * __addr,__mmask8 __mask,__m256i __index,__m256i __v1)5094 void test_mm256_mask_i64scatter_epi64(long long *__addr, __mmask8 __mask,  __m256i __index, __m256i __v1) {
5095   // CHECK-LABEL: @test_mm256_mask_i64scatter_epi64
5096   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.di
5097   return _mm256_mask_i64scatter_epi64(__addr,__mask,__index,__v1,2);
5098 }
test_mm_i64scatter_ps(float * __addr,__m128i __index,__m128 __v1)5099 void test_mm_i64scatter_ps(float *__addr, __m128i __index, __m128 __v1) {
5100   // CHECK-LABEL: @test_mm_i64scatter_ps
5101   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.sf
5102   return _mm_i64scatter_ps(__addr,__index,__v1,2);
5103 }
test_mm_mask_i64scatter_ps(float * __addr,__mmask8 __mask,__m128i __index,__m128 __v1)5104 void test_mm_mask_i64scatter_ps(float *__addr, __mmask8 __mask, __m128i __index, __m128 __v1) {
5105   // CHECK-LABEL: @test_mm_mask_i64scatter_ps
5106   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.sf
5107   return _mm_mask_i64scatter_ps(__addr,__mask,__index,__v1,2);
5108 }
test_mm_i64scatter_epi32(int * __addr,__m128i __index,__m128i __v1)5109 void test_mm_i64scatter_epi32(int *__addr, __m128i __index,  __m128i __v1) {
5110   // CHECK-LABEL: @test_mm_i64scatter_epi32
5111   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.si
5112   return _mm_i64scatter_epi32(__addr,__index,__v1,2);
5113 }
test_mm_mask_i64scatter_epi32(int * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5114 void test_mm_mask_i64scatter_epi32(int *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5115   // CHECK-LABEL: @test_mm_mask_i64scatter_epi32
5116   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.si
5117   return _mm_mask_i64scatter_epi32(__addr,__mask,__index,__v1,2);
5118 }
test_mm256_i64scatter_ps(float * __addr,__m256i __index,__m128 __v1)5119 void test_mm256_i64scatter_ps(float *__addr, __m256i __index,  __m128 __v1) {
5120   // CHECK-LABEL: @test_mm256_i64scatter_ps
5121   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.sf
5122   return _mm256_i64scatter_ps(__addr,__index,__v1,2);
5123 }
test_mm256_mask_i64scatter_ps(float * __addr,__mmask8 __mask,__m256i __index,__m128 __v1)5124 void test_mm256_mask_i64scatter_ps(float *__addr, __mmask8 __mask, __m256i __index, __m128 __v1) {
5125   // CHECK-LABEL: @test_mm256_mask_i64scatter_ps
5126   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.sf
5127   return _mm256_mask_i64scatter_ps(__addr,__mask,__index,__v1,2);
5128 }
test_mm256_i64scatter_epi32(int * __addr,__m256i __index,__m128i __v1)5129 void test_mm256_i64scatter_epi32(int *__addr, __m256i __index,  __m128i __v1) {
5130   // CHECK-LABEL: @test_mm256_i64scatter_epi32
5131   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.si
5132   return _mm256_i64scatter_epi32(__addr,__index,__v1,2);
5133 }
test_mm256_mask_i64scatter_epi32(int * __addr,__mmask8 __mask,__m256i __index,__m128i __v1)5134 void test_mm256_mask_i64scatter_epi32(int *__addr, __mmask8 __mask,  __m256i __index, __m128i __v1) {
5135   // CHECK-LABEL: @test_mm256_mask_i64scatter_epi32
5136   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.si
5137   return _mm256_mask_i64scatter_epi32(__addr,__mask,__index,__v1,2);
5138 }
test_mm_i32scatter_pd(double * __addr,__m128i __index,__m128d __v1)5139 void test_mm_i32scatter_pd(double *__addr, __m128i __index,  __m128d __v1) {
5140   // CHECK-LABEL: @test_mm_i32scatter_pd
5141   // CHECK: @llvm.x86.avx512.mask.scattersiv2.df
5142   return _mm_i32scatter_pd(__addr,__index,__v1,2);
5143 }
test_mm_mask_i32scatter_pd(double * __addr,__mmask8 __mask,__m128i __index,__m128d __v1)5144 void test_mm_mask_i32scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m128d __v1) {
5145   // CHECK-LABEL: @test_mm_mask_i32scatter_pd
5146   // CHECK: @llvm.x86.avx512.mask.scattersiv2.df
5147   return _mm_mask_i32scatter_pd(__addr,__mask,__index,__v1,2);
5148 }
test_mm_i32scatter_epi64(long long * __addr,__m128i __index,__m128i __v1)5149 void test_mm_i32scatter_epi64(long long *__addr, __m128i __index,  __m128i __v1) {
5150   // CHECK-LABEL: @test_mm_i32scatter_epi64
5151   // CHECK: @llvm.x86.avx512.mask.scattersiv2.di
5152   return _mm_i32scatter_epi64(__addr,__index,__v1,2);
5153 }
test_mm_mask_i32scatter_epi64(long long * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5154 void test_mm_mask_i32scatter_epi64(long long *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5155   // CHECK-LABEL: @test_mm_mask_i32scatter_epi64
5156   // CHECK: @llvm.x86.avx512.mask.scattersiv2.di
5157   return _mm_mask_i32scatter_epi64(__addr,__mask,__index,__v1,2);
5158 }
test_mm256_i32scatter_pd(double * __addr,__m128i __index,__m256d __v1)5159 void test_mm256_i32scatter_pd(double *__addr, __m128i __index,  __m256d __v1) {
5160   // CHECK-LABEL: @test_mm256_i32scatter_pd
5161   // CHECK: @llvm.x86.avx512.mask.scattersiv4.df
5162   return _mm256_i32scatter_pd(__addr,__index,__v1,2);
5163 }
test_mm256_mask_i32scatter_pd(double * __addr,__mmask8 __mask,__m128i __index,__m256d __v1)5164 void test_mm256_mask_i32scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m256d __v1) {
5165   // CHECK-LABEL: @test_mm256_mask_i32scatter_pd
5166   // CHECK: @llvm.x86.avx512.mask.scattersiv4.df
5167   return _mm256_mask_i32scatter_pd(__addr,__mask,__index,__v1,2);
5168 }
test_mm256_i32scatter_epi64(long long * __addr,__m128i __index,__m256i __v1)5169 void test_mm256_i32scatter_epi64(long long *__addr, __m128i __index,  __m256i __v1) {
5170   // CHECK-LABEL: @test_mm256_i32scatter_epi64
5171   // CHECK: @llvm.x86.avx512.mask.scattersiv4.di
5172   return _mm256_i32scatter_epi64(__addr,__index,__v1,2);
5173 }
test_mm256_mask_i32scatter_epi64(long long * __addr,__mmask8 __mask,__m128i __index,__m256i __v1)5174 void test_mm256_mask_i32scatter_epi64(long long *__addr, __mmask8 __mask,  __m128i __index, __m256i __v1) {
5175   // CHECK-LABEL: @test_mm256_mask_i32scatter_epi64
5176   // CHECK: @llvm.x86.avx512.mask.scattersiv4.di
5177   return _mm256_mask_i32scatter_epi64(__addr,__mask,__index,__v1,2);
5178 }
test_mm_i32scatter_ps(float * __addr,__m128i __index,__m128 __v1)5179 void test_mm_i32scatter_ps(float *__addr, __m128i __index, __m128 __v1) {
5180   // CHECK-LABEL: @test_mm_i32scatter_ps
5181   // CHECK: @llvm.x86.avx512.mask.scattersiv4.sf
5182   return _mm_i32scatter_ps(__addr,__index,__v1,2);
5183 }
test_mm_mask_i32scatter_ps(float * __addr,__mmask8 __mask,__m128i __index,__m128 __v1)5184 void test_mm_mask_i32scatter_ps(float *__addr, __mmask8 __mask, __m128i __index, __m128 __v1) {
5185   // CHECK-LABEL: @test_mm_mask_i32scatter_ps
5186   // CHECK: @llvm.x86.avx512.mask.scattersiv4.sf
5187   return _mm_mask_i32scatter_ps(__addr,__mask,__index,__v1,2);
5188 }
test_mm_i32scatter_epi32(int * __addr,__m128i __index,__m128i __v1)5189 void test_mm_i32scatter_epi32(int *__addr, __m128i __index,  __m128i __v1) {
5190   // CHECK-LABEL: @test_mm_i32scatter_epi32
5191   // CHECK: @llvm.x86.avx512.mask.scattersiv4.si
5192   return _mm_i32scatter_epi32(__addr,__index,__v1,2);
5193 }
test_mm_mask_i32scatter_epi32(int * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5194 void test_mm_mask_i32scatter_epi32(int *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5195   // CHECK-LABEL: @test_mm_mask_i32scatter_epi32
5196   // CHECK: @llvm.x86.avx512.mask.scattersiv4.si
5197   return _mm_mask_i32scatter_epi32(__addr,__mask,__index,__v1,2);
5198 }
test_mm256_i32scatter_ps(float * __addr,__m256i __index,__m256 __v1)5199 void test_mm256_i32scatter_ps(float *__addr, __m256i __index,  __m256 __v1) {
5200   // CHECK-LABEL: @test_mm256_i32scatter_ps
5201   // CHECK: @llvm.x86.avx512.mask.scattersiv8.sf
5202   return _mm256_i32scatter_ps(__addr,__index,__v1,2);
5203 }
test_mm256_mask_i32scatter_ps(float * __addr,__mmask8 __mask,__m256i __index,__m256 __v1)5204 void test_mm256_mask_i32scatter_ps(float *__addr, __mmask8 __mask, __m256i __index, __m256 __v1) {
5205   // CHECK-LABEL: @test_mm256_mask_i32scatter_ps
5206   // CHECK: @llvm.x86.avx512.mask.scattersiv8.sf
5207   return _mm256_mask_i32scatter_ps(__addr,__mask,__index,__v1,2);
5208 }
test_mm256_i32scatter_epi32(int * __addr,__m256i __index,__m256i __v1)5209 void test_mm256_i32scatter_epi32(int *__addr, __m256i __index,  __m256i __v1) {
5210   // CHECK-LABEL: @test_mm256_i32scatter_epi32
5211   // CHECK: @llvm.x86.avx512.mask.scattersiv8.si
5212   return _mm256_i32scatter_epi32(__addr,__index,__v1,2);
5213 }
test_mm256_mask_i32scatter_epi32(int * __addr,__mmask8 __mask,__m256i __index,__m256i __v1)5214 void test_mm256_mask_i32scatter_epi32(int *__addr, __mmask8 __mask,  __m256i __index, __m256i __v1) {
5215   // CHECK-LABEL: @test_mm256_mask_i32scatter_epi32
5216   // CHECK: @llvm.x86.avx512.mask.scattersiv8.si
5217   return _mm256_mask_i32scatter_epi32(__addr,__mask,__index,__v1,2);
5218 }
test_mm_mask_sqrt_pd(__m128d __W,__mmask8 __U,__m128d __A)5219 __m128d test_mm_mask_sqrt_pd(__m128d __W, __mmask8 __U, __m128d __A) {
5220   // CHECK-LABEL: @test_mm_mask_sqrt_pd
5221   // CHECK: @llvm.sqrt.v2f64
5222   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5223   return _mm_mask_sqrt_pd(__W,__U,__A);
5224 }
test_mm_maskz_sqrt_pd(__mmask8 __U,__m128d __A)5225 __m128d test_mm_maskz_sqrt_pd(__mmask8 __U, __m128d __A) {
5226   // CHECK-LABEL: @test_mm_maskz_sqrt_pd
5227   // CHECK: @llvm.sqrt.v2f64
5228   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5229   return _mm_maskz_sqrt_pd(__U,__A);
5230 }
test_mm256_mask_sqrt_pd(__m256d __W,__mmask8 __U,__m256d __A)5231 __m256d test_mm256_mask_sqrt_pd(__m256d __W, __mmask8 __U, __m256d __A) {
5232   // CHECK-LABEL: @test_mm256_mask_sqrt_pd
5233   // CHECK: @llvm.sqrt.v4f64
5234   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5235   return _mm256_mask_sqrt_pd(__W,__U,__A);
5236 }
test_mm256_maskz_sqrt_pd(__mmask8 __U,__m256d __A)5237 __m256d test_mm256_maskz_sqrt_pd(__mmask8 __U, __m256d __A) {
5238   // CHECK-LABEL: @test_mm256_maskz_sqrt_pd
5239   // CHECK: @llvm.sqrt.v4f64
5240   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5241   return _mm256_maskz_sqrt_pd(__U,__A);
5242 }
test_mm_mask_sqrt_ps(__m128 __W,__mmask8 __U,__m128 __A)5243 __m128 test_mm_mask_sqrt_ps(__m128 __W, __mmask8 __U, __m128 __A) {
5244   // CHECK-LABEL: @test_mm_mask_sqrt_ps
5245   // CHECK: @llvm.sqrt.v4f32
5246   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5247   return _mm_mask_sqrt_ps(__W,__U,__A);
5248 }
test_mm_maskz_sqrt_ps(__mmask8 __U,__m128 __A)5249 __m128 test_mm_maskz_sqrt_ps(__mmask8 __U, __m128 __A) {
5250   // CHECK-LABEL: @test_mm_maskz_sqrt_ps
5251   // CHECK: @llvm.sqrt.v4f32
5252   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5253   return _mm_maskz_sqrt_ps(__U,__A);
5254 }
test_mm256_mask_sqrt_ps(__m256 __W,__mmask8 __U,__m256 __A)5255 __m256 test_mm256_mask_sqrt_ps(__m256 __W, __mmask8 __U, __m256 __A) {
5256   // CHECK-LABEL: @test_mm256_mask_sqrt_ps
5257   // CHECK: @llvm.sqrt.v8f32
5258   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5259   return _mm256_mask_sqrt_ps(__W,__U,__A);
5260 }
test_mm256_maskz_sqrt_ps(__mmask8 __U,__m256 __A)5261 __m256 test_mm256_maskz_sqrt_ps(__mmask8 __U, __m256 __A) {
5262   // CHECK-LABEL: @test_mm256_maskz_sqrt_ps
5263   // CHECK: @llvm.sqrt.v8f32
5264   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5265   return _mm256_maskz_sqrt_ps(__U,__A);
5266 }
test_mm_mask_sub_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5267 __m128d test_mm_mask_sub_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
5268   // CHECK-LABEL: @test_mm_mask_sub_pd
5269   // CHECK: fsub <2 x double> %{{.*}}, %{{.*}}
5270   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5271   return _mm_mask_sub_pd(__W,__U,__A,__B);
5272 }
test_mm_maskz_sub_pd(__mmask8 __U,__m128d __A,__m128d __B)5273 __m128d test_mm_maskz_sub_pd(__mmask8 __U, __m128d __A, __m128d __B) {
5274   // CHECK-LABEL: @test_mm_maskz_sub_pd
5275   // CHECK: fsub <2 x double> %{{.*}}, %{{.*}}
5276   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5277   return _mm_maskz_sub_pd(__U,__A,__B);
5278 }
test_mm256_mask_sub_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)5279 __m256d test_mm256_mask_sub_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
5280   // CHECK-LABEL: @test_mm256_mask_sub_pd
5281   // CHECK: fsub <4 x double> %{{.*}}, %{{.*}}
5282   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5283   return _mm256_mask_sub_pd(__W,__U,__A,__B);
5284 }
test_mm256_maskz_sub_pd(__mmask8 __U,__m256d __A,__m256d __B)5285 __m256d test_mm256_maskz_sub_pd(__mmask8 __U, __m256d __A, __m256d __B) {
5286   // CHECK-LABEL: @test_mm256_maskz_sub_pd
5287   // CHECK: fsub <4 x double> %{{.*}}, %{{.*}}
5288   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5289   return _mm256_maskz_sub_pd(__U,__A,__B);
5290 }
test_mm_mask_sub_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5291 __m128 test_mm_mask_sub_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
5292   // CHECK-LABEL: @test_mm_mask_sub_ps
5293   // CHECK: fsub <4 x float> %{{.*}}, %{{.*}}
5294   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5295   return _mm_mask_sub_ps(__W,__U,__A,__B);
5296 }
test_mm_maskz_sub_ps(__mmask8 __U,__m128 __A,__m128 __B)5297 __m128 test_mm_maskz_sub_ps(__mmask8 __U, __m128 __A, __m128 __B) {
5298   // CHECK-LABEL: @test_mm_maskz_sub_ps
5299   // CHECK: fsub <4 x float> %{{.*}}, %{{.*}}
5300   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5301   return _mm_maskz_sub_ps(__U,__A,__B);
5302 }
test_mm256_mask_sub_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)5303 __m256 test_mm256_mask_sub_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
5304   // CHECK-LABEL: @test_mm256_mask_sub_ps
5305   // CHECK: fsub <8 x float> %{{.*}}, %{{.*}}
5306   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5307   return _mm256_mask_sub_ps(__W,__U,__A,__B);
5308 }
test_mm256_maskz_sub_ps(__mmask8 __U,__m256 __A,__m256 __B)5309 __m256 test_mm256_maskz_sub_ps(__mmask8 __U, __m256 __A, __m256 __B) {
5310   // CHECK-LABEL: @test_mm256_maskz_sub_ps
5311   // CHECK: fsub <8 x float> %{{.*}}, %{{.*}}
5312   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5313   return _mm256_maskz_sub_ps(__U,__A,__B);
5314 }
test_mm_mask2_permutex2var_epi32(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)5315 __m128i test_mm_mask2_permutex2var_epi32(__m128i __A, __m128i __I, __mmask8 __U,  __m128i __B) {
5316   // CHECK-LABEL: @test_mm_mask2_permutex2var_epi32
5317   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5318   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5319   return _mm_mask2_permutex2var_epi32(__A,__I,__U,__B);
5320 }
test_mm256_mask2_permutex2var_epi32(__m256i __A,__m256i __I,__mmask8 __U,__m256i __B)5321 __m256i test_mm256_mask2_permutex2var_epi32(__m256i __A, __m256i __I, __mmask8 __U, __m256i __B) {
5322   // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi32
5323   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5324   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5325   return _mm256_mask2_permutex2var_epi32(__A,__I,__U,__B);
5326 }
test_mm_mask2_permutex2var_pd(__m128d __A,__m128i __I,__mmask8 __U,__m128d __B)5327 __m128d test_mm_mask2_permutex2var_pd(__m128d __A, __m128i __I, __mmask8 __U, __m128d __B) {
5328   // CHECK-LABEL: @test_mm_mask2_permutex2var_pd
5329   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5330   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5331   return _mm_mask2_permutex2var_pd(__A,__I,__U,__B);
5332 }
test_mm256_mask2_permutex2var_pd(__m256d __A,__m256i __I,__mmask8 __U,__m256d __B)5333 __m256d test_mm256_mask2_permutex2var_pd(__m256d __A, __m256i __I, __mmask8 __U,  __m256d __B) {
5334   // CHECK-LABEL: @test_mm256_mask2_permutex2var_pd
5335   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5336   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5337   return _mm256_mask2_permutex2var_pd(__A,__I,__U,__B);
5338 }
test_mm_mask2_permutex2var_ps(__m128 __A,__m128i __I,__mmask8 __U,__m128 __B)5339 __m128 test_mm_mask2_permutex2var_ps(__m128 __A, __m128i __I, __mmask8 __U, __m128 __B) {
5340   // CHECK-LABEL: @test_mm_mask2_permutex2var_ps
5341   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5342   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5343   return _mm_mask2_permutex2var_ps(__A,__I,__U,__B);
5344 }
test_mm256_mask2_permutex2var_ps(__m256 __A,__m256i __I,__mmask8 __U,__m256 __B)5345 __m256 test_mm256_mask2_permutex2var_ps(__m256 __A, __m256i __I, __mmask8 __U,  __m256 __B) {
5346   // CHECK-LABEL: @test_mm256_mask2_permutex2var_ps
5347   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5348   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5349   return _mm256_mask2_permutex2var_ps(__A,__I,__U,__B);
5350 }
test_mm_mask2_permutex2var_epi64(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)5351 __m128i test_mm_mask2_permutex2var_epi64(__m128i __A, __m128i __I, __mmask8 __U,  __m128i __B) {
5352   // CHECK-LABEL: @test_mm_mask2_permutex2var_epi64
5353   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5354   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5355   return _mm_mask2_permutex2var_epi64(__A,__I,__U,__B);
5356 }
test_mm256_mask2_permutex2var_epi64(__m256i __A,__m256i __I,__mmask8 __U,__m256i __B)5357 __m256i test_mm256_mask2_permutex2var_epi64(__m256i __A, __m256i __I, __mmask8 __U, __m256i __B) {
5358   // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi64
5359   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5360   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5361   return _mm256_mask2_permutex2var_epi64(__A,__I,__U,__B);
5362 }
test_mm_permutex2var_epi32(__m128i __A,__m128i __I,__m128i __B)5363 __m128i test_mm_permutex2var_epi32(__m128i __A, __m128i __I, __m128i __B) {
5364   // CHECK-LABEL: @test_mm_permutex2var_epi32
5365   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5366   return _mm_permutex2var_epi32(__A,__I,__B);
5367 }
test_mm_mask_permutex2var_epi32(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)5368 __m128i test_mm_mask_permutex2var_epi32(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) {
5369   // CHECK-LABEL: @test_mm_mask_permutex2var_epi32
5370   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5371   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5372   return _mm_mask_permutex2var_epi32(__A,__U,__I,__B);
5373 }
test_mm_maskz_permutex2var_epi32(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)5374 __m128i test_mm_maskz_permutex2var_epi32(__mmask8 __U, __m128i __A, __m128i __I,  __m128i __B) {
5375   // CHECK-LABEL: @test_mm_maskz_permutex2var_epi32
5376   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5377   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5378   return _mm_maskz_permutex2var_epi32(__U,__A,__I,__B);
5379 }
test_mm256_permutex2var_epi32(__m256i __A,__m256i __I,__m256i __B)5380 __m256i test_mm256_permutex2var_epi32(__m256i __A, __m256i __I, __m256i __B) {
5381   // CHECK-LABEL: @test_mm256_permutex2var_epi32
5382   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5383   return _mm256_permutex2var_epi32(__A,__I,__B);
5384 }
test_mm256_mask_permutex2var_epi32(__m256i __A,__mmask8 __U,__m256i __I,__m256i __B)5385 __m256i test_mm256_mask_permutex2var_epi32(__m256i __A, __mmask8 __U, __m256i __I, __m256i __B) {
5386   // CHECK-LABEL: @test_mm256_mask_permutex2var_epi32
5387   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5388   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5389   return _mm256_mask_permutex2var_epi32(__A,__U,__I,__B);
5390 }
test_mm256_maskz_permutex2var_epi32(__mmask8 __U,__m256i __A,__m256i __I,__m256i __B)5391 __m256i test_mm256_maskz_permutex2var_epi32(__mmask8 __U, __m256i __A, __m256i __I, __m256i __B) {
5392   // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi32
5393   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5394   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5395   return _mm256_maskz_permutex2var_epi32(__U,__A,__I,__B);
5396 }
test_mm_permutex2var_pd(__m128d __A,__m128i __I,__m128d __B)5397 __m128d test_mm_permutex2var_pd(__m128d __A, __m128i __I, __m128d __B) {
5398   // CHECK-LABEL: @test_mm_permutex2var_pd
5399   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5400   return _mm_permutex2var_pd(__A,__I,__B);
5401 }
test_mm_mask_permutex2var_pd(__m128d __A,__mmask8 __U,__m128i __I,__m128d __B)5402 __m128d test_mm_mask_permutex2var_pd(__m128d __A, __mmask8 __U, __m128i __I, __m128d __B) {
5403   // CHECK-LABEL: @test_mm_mask_permutex2var_pd
5404   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5405   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5406   return _mm_mask_permutex2var_pd(__A,__U,__I,__B);
5407 }
test_mm_maskz_permutex2var_pd(__mmask8 __U,__m128d __A,__m128i __I,__m128d __B)5408 __m128d test_mm_maskz_permutex2var_pd(__mmask8 __U, __m128d __A, __m128i __I, __m128d __B) {
5409   // CHECK-LABEL: @test_mm_maskz_permutex2var_pd
5410   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5411   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5412   return _mm_maskz_permutex2var_pd(__U,__A,__I,__B);
5413 }
test_mm256_permutex2var_pd(__m256d __A,__m256i __I,__m256d __B)5414 __m256d test_mm256_permutex2var_pd(__m256d __A, __m256i __I, __m256d __B) {
5415   // CHECK-LABEL: @test_mm256_permutex2var_pd
5416   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5417   return _mm256_permutex2var_pd(__A,__I,__B);
5418 }
test_mm256_mask_permutex2var_pd(__m256d __A,__mmask8 __U,__m256i __I,__m256d __B)5419 __m256d test_mm256_mask_permutex2var_pd(__m256d __A, __mmask8 __U, __m256i __I, __m256d __B) {
5420   // CHECK-LABEL: @test_mm256_mask_permutex2var_pd
5421   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5422   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5423   return _mm256_mask_permutex2var_pd(__A,__U,__I,__B);
5424 }
test_mm256_maskz_permutex2var_pd(__mmask8 __U,__m256d __A,__m256i __I,__m256d __B)5425 __m256d test_mm256_maskz_permutex2var_pd(__mmask8 __U, __m256d __A, __m256i __I,  __m256d __B) {
5426   // CHECK-LABEL: @test_mm256_maskz_permutex2var_pd
5427   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5428   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5429   return _mm256_maskz_permutex2var_pd(__U,__A,__I,__B);
5430 }
test_mm_permutex2var_ps(__m128 __A,__m128i __I,__m128 __B)5431 __m128 test_mm_permutex2var_ps(__m128 __A, __m128i __I, __m128 __B) {
5432   // CHECK-LABEL: @test_mm_permutex2var_ps
5433   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5434   return _mm_permutex2var_ps(__A,__I,__B);
5435 }
test_mm_mask_permutex2var_ps(__m128 __A,__mmask8 __U,__m128i __I,__m128 __B)5436 __m128 test_mm_mask_permutex2var_ps(__m128 __A, __mmask8 __U, __m128i __I, __m128 __B) {
5437   // CHECK-LABEL: @test_mm_mask_permutex2var_ps
5438   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5439   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5440   return _mm_mask_permutex2var_ps(__A,__U,__I,__B);
5441 }
test_mm_maskz_permutex2var_ps(__mmask8 __U,__m128 __A,__m128i __I,__m128 __B)5442 __m128 test_mm_maskz_permutex2var_ps(__mmask8 __U, __m128 __A, __m128i __I, __m128 __B) {
5443   // CHECK-LABEL: @test_mm_maskz_permutex2var_ps
5444   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5445   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5446   return _mm_maskz_permutex2var_ps(__U,__A,__I,__B);
5447 }
test_mm256_permutex2var_ps(__m256 __A,__m256i __I,__m256 __B)5448 __m256 test_mm256_permutex2var_ps(__m256 __A, __m256i __I, __m256 __B) {
5449   // CHECK-LABEL: @test_mm256_permutex2var_ps
5450   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5451   return _mm256_permutex2var_ps(__A,__I,__B);
5452 }
test_mm256_mask_permutex2var_ps(__m256 __A,__mmask8 __U,__m256i __I,__m256 __B)5453 __m256 test_mm256_mask_permutex2var_ps(__m256 __A, __mmask8 __U, __m256i __I, __m256 __B) {
5454   // CHECK-LABEL: @test_mm256_mask_permutex2var_ps
5455   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5456   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5457   return _mm256_mask_permutex2var_ps(__A,__U,__I,__B);
5458 }
test_mm256_maskz_permutex2var_ps(__mmask8 __U,__m256 __A,__m256i __I,__m256 __B)5459 __m256 test_mm256_maskz_permutex2var_ps(__mmask8 __U, __m256 __A, __m256i __I, __m256 __B) {
5460   // CHECK-LABEL: @test_mm256_maskz_permutex2var_ps
5461   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5462   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5463   return _mm256_maskz_permutex2var_ps(__U,__A,__I,__B);
5464 }
test_mm_permutex2var_epi64(__m128i __A,__m128i __I,__m128i __B)5465 __m128i test_mm_permutex2var_epi64(__m128i __A, __m128i __I, __m128i __B) {
5466   // CHECK-LABEL: @test_mm_permutex2var_epi64
5467   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5468   return _mm_permutex2var_epi64(__A,__I,__B);
5469 }
test_mm_mask_permutex2var_epi64(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)5470 __m128i test_mm_mask_permutex2var_epi64(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) {
5471   // CHECK-LABEL: @test_mm_mask_permutex2var_epi64
5472   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5473   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5474   return _mm_mask_permutex2var_epi64(__A,__U,__I,__B);
5475 }
test_mm_maskz_permutex2var_epi64(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)5476 __m128i test_mm_maskz_permutex2var_epi64(__mmask8 __U, __m128i __A, __m128i __I, __m128i __B) {
5477   // CHECK-LABEL: @test_mm_maskz_permutex2var_epi64
5478   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5479   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5480   return _mm_maskz_permutex2var_epi64(__U,__A,__I,__B);
5481 }
test_mm256_permutex2var_epi64(__m256i __A,__m256i __I,__m256i __B)5482 __m256i test_mm256_permutex2var_epi64(__m256i __A, __m256i __I, __m256i __B) {
5483   // CHECK-LABEL: @test_mm256_permutex2var_epi64
5484   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5485   return _mm256_permutex2var_epi64(__A,__I,__B);
5486 }
test_mm256_mask_permutex2var_epi64(__m256i __A,__mmask8 __U,__m256i __I,__m256i __B)5487 __m256i test_mm256_mask_permutex2var_epi64(__m256i __A, __mmask8 __U, __m256i __I, __m256i __B) {
5488   // CHECK-LABEL: @test_mm256_mask_permutex2var_epi64
5489   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5490   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5491   return _mm256_mask_permutex2var_epi64(__A,__U,__I,__B);
5492 }
test_mm256_maskz_permutex2var_epi64(__mmask8 __U,__m256i __A,__m256i __I,__m256i __B)5493 __m256i test_mm256_maskz_permutex2var_epi64(__mmask8 __U, __m256i __A, __m256i __I, __m256i __B) {
5494   // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi64
5495   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5496   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5497   return _mm256_maskz_permutex2var_epi64(__U,__A,__I,__B);
5498 }
5499 
test_mm_mask_cvtepi8_epi32(__m128i __W,__mmask8 __U,__m128i __A)5500 __m128i test_mm_mask_cvtepi8_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5501   // CHECK-LABEL: @test_mm_mask_cvtepi8_epi32
5502   // CHECK: sext <4 x i8> %{{.*}} to <4 x i32>
5503   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5504   return _mm_mask_cvtepi8_epi32(__W, __U, __A);
5505 }
5506 
test_mm_maskz_cvtepi8_epi32(__mmask8 __U,__m128i __A)5507 __m128i test_mm_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) {
5508   // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi32
5509   // CHECK: sext <4 x i8> %{{.*}} to <4 x i32>
5510   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5511   return _mm_maskz_cvtepi8_epi32(__U, __A);
5512 }
5513 
test_mm256_mask_cvtepi8_epi32(__m256i __W,__mmask8 __U,__m128i __A)5514 __m256i test_mm256_mask_cvtepi8_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5515   // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi32
5516   // CHECK: sext <8 x i8> %{{.*}} to <8 x i32>
5517   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5518   return _mm256_mask_cvtepi8_epi32(__W, __U, __A);
5519 }
5520 
test_mm256_maskz_cvtepi8_epi32(__mmask8 __U,__m128i __A)5521 __m256i test_mm256_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) {
5522   // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi32
5523   // CHECK: sext <8 x i8> %{{.*}} to <8 x i32>
5524   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5525   return _mm256_maskz_cvtepi8_epi32(__U, __A);
5526 }
5527 
test_mm_mask_cvtepi8_epi64(__m128i __W,__mmask8 __U,__m128i __A)5528 __m128i test_mm_mask_cvtepi8_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5529   // CHECK-LABEL: @test_mm_mask_cvtepi8_epi64
5530   // CHECK: sext <2 x i8> %{{.*}} to <2 x i64>
5531   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5532   return _mm_mask_cvtepi8_epi64(__W, __U, __A);
5533 }
5534 
test_mm_maskz_cvtepi8_epi64(__mmask8 __U,__m128i __A)5535 __m128i test_mm_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
5536   // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi64
5537   // CHECK: sext <2 x i8> %{{.*}} to <2 x i64>
5538   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5539   return _mm_maskz_cvtepi8_epi64(__U, __A);
5540 }
5541 
test_mm256_mask_cvtepi8_epi64(__m256i __W,__mmask8 __U,__m128i __A)5542 __m256i test_mm256_mask_cvtepi8_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5543   // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi64
5544   // CHECK: sext <4 x i8> %{{.*}} to <4 x i64>
5545   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5546   return _mm256_mask_cvtepi8_epi64(__W, __U, __A);
5547 }
5548 
test_mm256_maskz_cvtepi8_epi64(__mmask8 __U,__m128i __A)5549 __m256i test_mm256_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
5550   // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi64
5551   // CHECK: sext <4 x i8> %{{.*}} to <4 x i64>
5552   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5553   return _mm256_maskz_cvtepi8_epi64(__U, __A);
5554 }
5555 
test_mm_mask_cvtepi32_epi64(__m128i __W,__mmask8 __U,__m128i __X)5556 __m128i test_mm_mask_cvtepi32_epi64(__m128i __W, __mmask8 __U, __m128i __X) {
5557   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi64
5558   // CHECK: sext <2 x i32> %{{.*}} to <2 x i64>
5559   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5560   return _mm_mask_cvtepi32_epi64(__W, __U, __X);
5561 }
5562 
test_mm_maskz_cvtepi32_epi64(__mmask8 __U,__m128i __X)5563 __m128i test_mm_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) {
5564   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi64
5565   // CHECK: sext <2 x i32> %{{.*}} to <2 x i64>
5566   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5567   return _mm_maskz_cvtepi32_epi64(__U, __X);
5568 }
5569 
test_mm256_mask_cvtepi32_epi64(__m256i __W,__mmask8 __U,__m128i __X)5570 __m256i test_mm256_mask_cvtepi32_epi64(__m256i __W, __mmask8 __U, __m128i __X) {
5571   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi64
5572   // CHECK: sext <4 x i32> %{{.*}} to <4 x i64>
5573   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5574   return _mm256_mask_cvtepi32_epi64(__W, __U, __X);
5575 }
5576 
test_mm256_maskz_cvtepi32_epi64(__mmask8 __U,__m128i __X)5577 __m256i test_mm256_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) {
5578   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi64
5579   // CHECK: sext <4 x i32> %{{.*}} to <4 x i64>
5580   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5581   return _mm256_maskz_cvtepi32_epi64(__U, __X);
5582 }
5583 
test_mm_mask_cvtepi16_epi32(__m128i __W,__mmask8 __U,__m128i __A)5584 __m128i test_mm_mask_cvtepi16_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5585   // CHECK-LABEL: @test_mm_mask_cvtepi16_epi32
5586   // CHECK: sext <4 x i16> %{{.*}} to <4 x i32>
5587   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5588   return _mm_mask_cvtepi16_epi32(__W, __U, __A);
5589 }
5590 
test_mm_maskz_cvtepi16_epi32(__mmask8 __U,__m128i __A)5591 __m128i test_mm_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) {
5592   // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi32
5593   // CHECK: sext <4 x i16> %{{.*}} to <4 x i32>
5594   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5595   return _mm_maskz_cvtepi16_epi32(__U, __A);
5596 }
5597 
test_mm256_mask_cvtepi16_epi32(__m256i __W,__mmask8 __U,__m128i __A)5598 __m256i test_mm256_mask_cvtepi16_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5599   // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi32
5600   // CHECK: sext <8 x i16> %{{.*}} to <8 x i32>
5601   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5602   return _mm256_mask_cvtepi16_epi32(__W, __U, __A);
5603 }
5604 
test_mm256_maskz_cvtepi16_epi32(__mmask8 __U,__m128i __A)5605 __m256i test_mm256_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) {
5606   // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi32
5607   // CHECK: sext <8 x i16> %{{.*}} to <8 x i32>
5608   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5609   return _mm256_maskz_cvtepi16_epi32(__U, __A);
5610 }
5611 
test_mm_mask_cvtepi16_epi64(__m128i __W,__mmask8 __U,__m128i __A)5612 __m128i test_mm_mask_cvtepi16_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5613   // CHECK-LABEL: @test_mm_mask_cvtepi16_epi64
5614   // CHECK: sext <2 x i16> %{{.*}} to <2 x i64>
5615   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5616   return _mm_mask_cvtepi16_epi64(__W, __U, __A);
5617 }
5618 
test_mm_maskz_cvtepi16_epi64(__mmask8 __U,__m128i __A)5619 __m128i test_mm_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
5620   // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi64
5621   // CHECK: sext <2 x i16> %{{.*}} to <2 x i64>
5622   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5623   return _mm_maskz_cvtepi16_epi64(__U, __A);
5624 }
5625 
test_mm256_mask_cvtepi16_epi64(__m256i __W,__mmask8 __U,__m128i __A)5626 __m256i test_mm256_mask_cvtepi16_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5627   // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi64
5628   // CHECK: sext <4 x i16> %{{.*}} to <4 x i64>
5629   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5630   return _mm256_mask_cvtepi16_epi64(__W, __U, __A);
5631 }
5632 
test_mm256_maskz_cvtepi16_epi64(__mmask8 __U,__m128i __A)5633 __m256i test_mm256_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
5634   // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi64
5635   // CHECK: sext <4 x i16> %{{.*}} to <4 x i64>
5636   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5637   return _mm256_maskz_cvtepi16_epi64(__U, __A);
5638 }
5639 
test_mm_mask_cvtepu8_epi32(__m128i __W,__mmask8 __U,__m128i __A)5640 __m128i test_mm_mask_cvtepu8_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5641   // CHECK-LABEL: @test_mm_mask_cvtepu8_epi32
5642   // CHECK: zext <4 x i8> %{{.*}} to <4 x i32>
5643   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5644   return _mm_mask_cvtepu8_epi32(__W, __U, __A);
5645 }
5646 
test_mm_maskz_cvtepu8_epi32(__mmask8 __U,__m128i __A)5647 __m128i test_mm_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) {
5648   // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi32
5649   // CHECK: zext <4 x i8> %{{.*}} to <4 x i32>
5650   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5651   return _mm_maskz_cvtepu8_epi32(__U, __A);
5652 }
5653 
test_mm256_mask_cvtepu8_epi32(__m256i __W,__mmask8 __U,__m128i __A)5654 __m256i test_mm256_mask_cvtepu8_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5655   // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi32
5656   // CHECK: zext <8 x i8> %{{.*}} to <8 x i32>
5657   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5658   return _mm256_mask_cvtepu8_epi32(__W, __U, __A);
5659 }
5660 
test_mm256_maskz_cvtepu8_epi32(__mmask8 __U,__m128i __A)5661 __m256i test_mm256_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) {
5662   // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi32
5663   // CHECK: zext <8 x i8> %{{.*}} to <8 x i32>
5664   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5665   return _mm256_maskz_cvtepu8_epi32(__U, __A);
5666 }
5667 
test_mm_mask_cvtepu8_epi64(__m128i __W,__mmask8 __U,__m128i __A)5668 __m128i test_mm_mask_cvtepu8_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5669   // CHECK-LABEL: @test_mm_mask_cvtepu8_epi64
5670   // CHECK: zext <2 x i8> %{{.*}} to <2 x i64>
5671   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5672   return _mm_mask_cvtepu8_epi64(__W, __U, __A);
5673 }
5674 
test_mm_maskz_cvtepu8_epi64(__mmask8 __U,__m128i __A)5675 __m128i test_mm_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
5676   // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi64
5677   // CHECK: zext <2 x i8> %{{.*}} to <2 x i64>
5678   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5679   return _mm_maskz_cvtepu8_epi64(__U, __A);
5680 }
5681 
test_mm256_mask_cvtepu8_epi64(__m256i __W,__mmask8 __U,__m128i __A)5682 __m256i test_mm256_mask_cvtepu8_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5683   // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi64
5684   // CHECK: zext <4 x i8> %{{.*}} to <4 x i64>
5685   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5686   return _mm256_mask_cvtepu8_epi64(__W, __U, __A);
5687 }
5688 
test_mm256_maskz_cvtepu8_epi64(__mmask8 __U,__m128i __A)5689 __m256i test_mm256_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
5690   // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi64
5691   // CHECK: zext <4 x i8> %{{.*}} to <4 x i64>
5692   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5693   return _mm256_maskz_cvtepu8_epi64(__U, __A);
5694 }
5695 
test_mm_mask_cvtepu32_epi64(__m128i __W,__mmask8 __U,__m128i __X)5696 __m128i test_mm_mask_cvtepu32_epi64(__m128i __W, __mmask8 __U, __m128i __X) {
5697   // CHECK-LABEL: @test_mm_mask_cvtepu32_epi64
5698   // CHECK: zext <2 x i32> %{{.*}} to <2 x i64>
5699   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5700   return _mm_mask_cvtepu32_epi64(__W, __U, __X);
5701 }
5702 
test_mm_maskz_cvtepu32_epi64(__mmask8 __U,__m128i __X)5703 __m128i test_mm_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) {
5704   // CHECK-LABEL: @test_mm_maskz_cvtepu32_epi64
5705   // CHECK: zext <2 x i32> %{{.*}} to <2 x i64>
5706   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5707   return _mm_maskz_cvtepu32_epi64(__U, __X);
5708 }
5709 
test_mm256_mask_cvtepu32_epi64(__m256i __W,__mmask8 __U,__m128i __X)5710 __m256i test_mm256_mask_cvtepu32_epi64(__m256i __W, __mmask8 __U, __m128i __X) {
5711   // CHECK-LABEL: @test_mm256_mask_cvtepu32_epi64
5712   // CHECK: zext <4 x i32> %{{.*}} to <4 x i64>
5713   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5714   return _mm256_mask_cvtepu32_epi64(__W, __U, __X);
5715 }
5716 
test_mm256_maskz_cvtepu32_epi64(__mmask8 __U,__m128i __X)5717 __m256i test_mm256_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) {
5718   // CHECK-LABEL: @test_mm256_maskz_cvtepu32_epi64
5719   // CHECK: zext <4 x i32> %{{.*}} to <4 x i64>
5720   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5721   return _mm256_maskz_cvtepu32_epi64(__U, __X);
5722 }
5723 
test_mm_mask_cvtepu16_epi32(__m128i __W,__mmask8 __U,__m128i __A)5724 __m128i test_mm_mask_cvtepu16_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5725   // CHECK-LABEL: @test_mm_mask_cvtepu16_epi32
5726   // CHECK: zext <4 x i16> %{{.*}} to <4 x i32>
5727   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5728   return _mm_mask_cvtepu16_epi32(__W, __U, __A);
5729 }
5730 
test_mm_maskz_cvtepu16_epi32(__mmask8 __U,__m128i __A)5731 __m128i test_mm_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) {
5732   // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi32
5733   // CHECK: zext <4 x i16> %{{.*}} to <4 x i32>
5734   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5735   return _mm_maskz_cvtepu16_epi32(__U, __A);
5736 }
5737 
test_mm256_mask_cvtepu16_epi32(__m256i __W,__mmask8 __U,__m128i __A)5738 __m256i test_mm256_mask_cvtepu16_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5739   // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi32
5740   // CHECK: zext <8 x i16> %{{.*}} to <8 x i32>
5741   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5742   return _mm256_mask_cvtepu16_epi32(__W, __U, __A);
5743 }
5744 
test_mm256_maskz_cvtepu16_epi32(__mmask8 __U,__m128i __A)5745 __m256i test_mm256_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) {
5746   // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi32
5747   // CHECK: zext <8 x i16> %{{.*}} to <8 x i32>
5748   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5749   return _mm256_maskz_cvtepu16_epi32(__U, __A);
5750 }
5751 
test_mm_mask_cvtepu16_epi64(__m128i __W,__mmask8 __U,__m128i __A)5752 __m128i test_mm_mask_cvtepu16_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5753   // CHECK-LABEL: @test_mm_mask_cvtepu16_epi64
5754   // CHECK: zext <2 x i16> %{{.*}} to <2 x i64>
5755   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5756   return _mm_mask_cvtepu16_epi64(__W, __U, __A);
5757 }
5758 
test_mm_maskz_cvtepu16_epi64(__mmask8 __U,__m128i __A)5759 __m128i test_mm_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
5760   // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi64
5761   // CHECK: zext <2 x i16> %{{.*}} to <2 x i64>
5762   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5763   return _mm_maskz_cvtepu16_epi64(__U, __A);
5764 }
5765 
test_mm256_mask_cvtepu16_epi64(__m256i __W,__mmask8 __U,__m128i __A)5766 __m256i test_mm256_mask_cvtepu16_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5767   // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi64
5768   // CHECK: zext <4 x i16> %{{.*}} to <4 x i64>
5769   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5770   return _mm256_mask_cvtepu16_epi64(__W, __U, __A);
5771 }
5772 
test_mm256_maskz_cvtepu16_epi64(__mmask8 __U,__m128i __A)5773 __m256i test_mm256_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
5774   // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi64
5775   // CHECK: zext <4 x i16> %{{.*}} to <4 x i64>
5776   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5777   return _mm256_maskz_cvtepu16_epi64(__U, __A);
5778 }
5779 
test_mm_rol_epi32(__m128i __A)5780 __m128i test_mm_rol_epi32(__m128i __A) {
5781   // CHECK-LABEL: @test_mm_rol_epi32
5782   // CHECK: @llvm.fshl.v4i32
5783   return _mm_rol_epi32(__A, 5);
5784 }
5785 
test_mm_mask_rol_epi32(__m128i __W,__mmask8 __U,__m128i __A)5786 __m128i test_mm_mask_rol_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5787   // CHECK-LABEL: @test_mm_mask_rol_epi32
5788   // CHECK: @llvm.fshl.v4i32
5789   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5790   return _mm_mask_rol_epi32(__W, __U, __A, 5);
5791 }
5792 
test_mm_maskz_rol_epi32(__mmask8 __U,__m128i __A)5793 __m128i test_mm_maskz_rol_epi32(__mmask8 __U, __m128i __A) {
5794   // CHECK-LABEL: @test_mm_maskz_rol_epi32
5795   // CHECK: @llvm.fshl.v4i32
5796   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5797   return _mm_maskz_rol_epi32(__U, __A, 5);
5798 }
5799 
test_mm256_rol_epi32(__m256i __A)5800 __m256i test_mm256_rol_epi32(__m256i __A) {
5801   // CHECK-LABEL: @test_mm256_rol_epi32
5802   // CHECK: @llvm.fshl.v8i32
5803   return _mm256_rol_epi32(__A, 5);
5804 }
5805 
test_mm256_mask_rol_epi32(__m256i __W,__mmask8 __U,__m256i __A)5806 __m256i test_mm256_mask_rol_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
5807   // CHECK-LABEL: @test_mm256_mask_rol_epi32
5808   // CHECK: @llvm.fshl.v8i32
5809   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5810   return _mm256_mask_rol_epi32(__W, __U, __A, 5);
5811 }
5812 
test_mm256_maskz_rol_epi32(__mmask8 __U,__m256i __A)5813 __m256i test_mm256_maskz_rol_epi32(__mmask8 __U, __m256i __A) {
5814   // CHECK-LABEL: @test_mm256_maskz_rol_epi32
5815   // CHECK: @llvm.fshl.v8i32
5816   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5817   return _mm256_maskz_rol_epi32(__U, __A, 5);
5818 }
5819 
test_mm_rol_epi64(__m128i __A)5820 __m128i test_mm_rol_epi64(__m128i __A) {
5821   // CHECK-LABEL: @test_mm_rol_epi64
5822   // CHECK: @llvm.fshl.v2i64
5823   return _mm_rol_epi64(__A, 5);
5824 }
5825 
test_mm_mask_rol_epi64(__m128i __W,__mmask8 __U,__m128i __A)5826 __m128i test_mm_mask_rol_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5827   // CHECK-LABEL: @test_mm_mask_rol_epi64
5828   // CHECK: @llvm.fshl.v2i64
5829   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5830   return _mm_mask_rol_epi64(__W, __U, __A, 5);
5831 }
5832 
test_mm_maskz_rol_epi64(__mmask8 __U,__m128i __A)5833 __m128i test_mm_maskz_rol_epi64(__mmask8 __U, __m128i __A) {
5834   // CHECK-LABEL: @test_mm_maskz_rol_epi64
5835   // CHECK: @llvm.fshl.v2i64
5836   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5837   return _mm_maskz_rol_epi64(__U, __A, 5);
5838 }
5839 
test_mm256_rol_epi64(__m256i __A)5840 __m256i test_mm256_rol_epi64(__m256i __A) {
5841   // CHECK-LABEL: @test_mm256_rol_epi64
5842   // CHECK: @llvm.fshl.v4i64
5843   return _mm256_rol_epi64(__A, 5);
5844 }
5845 
test_mm256_mask_rol_epi64(__m256i __W,__mmask8 __U,__m256i __A)5846 __m256i test_mm256_mask_rol_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
5847   // CHECK-LABEL: @test_mm256_mask_rol_epi64
5848   // CHECK: @llvm.fshl.v4i64
5849   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5850   return _mm256_mask_rol_epi64(__W, __U, __A, 5);
5851 }
5852 
test_mm256_maskz_rol_epi64(__mmask8 __U,__m256i __A)5853 __m256i test_mm256_maskz_rol_epi64(__mmask8 __U, __m256i __A) {
5854   // CHECK-LABEL: @test_mm256_maskz_rol_epi64
5855   // CHECK: @llvm.fshl.v4i64
5856   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5857   return _mm256_maskz_rol_epi64(__U, __A, 5);
5858 }
5859 
test_mm_rolv_epi32(__m128i __A,__m128i __B)5860 __m128i test_mm_rolv_epi32(__m128i __A, __m128i __B) {
5861   // CHECK-LABEL: @test_mm_rolv_epi32
5862   // CHECK: llvm.fshl.v4i32
5863   return _mm_rolv_epi32(__A, __B);
5864 }
5865 
test_mm_mask_rolv_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)5866 __m128i test_mm_mask_rolv_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
5867   // CHECK-LABEL: @test_mm_mask_rolv_epi32
5868   // CHECK: llvm.fshl.v4i32
5869   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5870   return _mm_mask_rolv_epi32(__W, __U, __A, __B);
5871 }
5872 
test_mm_maskz_rolv_epi32(__mmask8 __U,__m128i __A,__m128i __B)5873 __m128i test_mm_maskz_rolv_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
5874   // CHECK-LABEL: @test_mm_maskz_rolv_epi32
5875   // CHECK: llvm.fshl.v4i32
5876   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5877   return _mm_maskz_rolv_epi32(__U, __A, __B);
5878 }
5879 
test_mm256_rolv_epi32(__m256i __A,__m256i __B)5880 __m256i test_mm256_rolv_epi32(__m256i __A, __m256i __B) {
5881   // CHECK-LABEL: @test_mm256_rolv_epi32
5882   // CHECK: @llvm.fshl.v8i32
5883   return _mm256_rolv_epi32(__A, __B);
5884 }
5885 
test_mm256_mask_rolv_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)5886 __m256i test_mm256_mask_rolv_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
5887   // CHECK-LABEL: @test_mm256_mask_rolv_epi32
5888   // CHECK: @llvm.fshl.v8i32
5889   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5890   return _mm256_mask_rolv_epi32(__W, __U, __A, __B);
5891 }
5892 
test_mm256_maskz_rolv_epi32(__mmask8 __U,__m256i __A,__m256i __B)5893 __m256i test_mm256_maskz_rolv_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
5894   // CHECK-LABEL: @test_mm256_maskz_rolv_epi32
5895   // CHECK: @llvm.fshl.v8i32
5896   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5897   return _mm256_maskz_rolv_epi32(__U, __A, __B);
5898 }
5899 
test_mm_rolv_epi64(__m128i __A,__m128i __B)5900 __m128i test_mm_rolv_epi64(__m128i __A, __m128i __B) {
5901   // CHECK-LABEL: @test_mm_rolv_epi64
5902   // CHECK: @llvm.fshl.v2i64
5903   return _mm_rolv_epi64(__A, __B);
5904 }
5905 
test_mm_mask_rolv_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)5906 __m128i test_mm_mask_rolv_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
5907   // CHECK-LABEL: @test_mm_mask_rolv_epi64
5908   // CHECK: @llvm.fshl.v2i64
5909   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5910   return _mm_mask_rolv_epi64(__W, __U, __A, __B);
5911 }
5912 
test_mm_maskz_rolv_epi64(__mmask8 __U,__m128i __A,__m128i __B)5913 __m128i test_mm_maskz_rolv_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
5914   // CHECK-LABEL: @test_mm_maskz_rolv_epi64
5915   // CHECK: @llvm.fshl.v2i64
5916   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5917   return _mm_maskz_rolv_epi64(__U, __A, __B);
5918 }
5919 
test_mm256_rolv_epi64(__m256i __A,__m256i __B)5920 __m256i test_mm256_rolv_epi64(__m256i __A, __m256i __B) {
5921   // CHECK-LABEL: @test_mm256_rolv_epi64
5922   // CHECK: @llvm.fshl.v4i64
5923   return _mm256_rolv_epi64(__A, __B);
5924 }
5925 
test_mm256_mask_rolv_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)5926 __m256i test_mm256_mask_rolv_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
5927   // CHECK-LABEL: @test_mm256_mask_rolv_epi64
5928   // CHECK: @llvm.fshl.v4i64
5929   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5930   return _mm256_mask_rolv_epi64(__W, __U, __A, __B);
5931 }
5932 
test_mm256_maskz_rolv_epi64(__mmask8 __U,__m256i __A,__m256i __B)5933 __m256i test_mm256_maskz_rolv_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
5934   // CHECK-LABEL: @test_mm256_maskz_rolv_epi64
5935   // CHECK: @llvm.fshl.v4i64
5936   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5937   return _mm256_maskz_rolv_epi64(__U, __A, __B);
5938 }
5939 
test_mm_ror_epi32(__m128i __A)5940 __m128i test_mm_ror_epi32(__m128i __A) {
5941   // CHECK-LABEL: @test_mm_ror_epi32
5942   // CHECK: @llvm.fshr.v4i32
5943   return _mm_ror_epi32(__A, 5);
5944 }
5945 
test_mm_mask_ror_epi32(__m128i __W,__mmask8 __U,__m128i __A)5946 __m128i test_mm_mask_ror_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5947   // CHECK-LABEL: @test_mm_mask_ror_epi32
5948   // CHECK: @llvm.fshr.v4i32
5949   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5950   return _mm_mask_ror_epi32(__W, __U, __A, 5);
5951 }
5952 
test_mm_maskz_ror_epi32(__mmask8 __U,__m128i __A)5953 __m128i test_mm_maskz_ror_epi32(__mmask8 __U, __m128i __A) {
5954   // CHECK-LABEL: @test_mm_maskz_ror_epi32
5955   // CHECK: @llvm.fshr.v4i32
5956   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5957   return _mm_maskz_ror_epi32(__U, __A, 5);
5958 }
5959 
test_mm256_ror_epi32(__m256i __A)5960 __m256i test_mm256_ror_epi32(__m256i __A) {
5961   // CHECK-LABEL: @test_mm256_ror_epi32
5962   // CHECK: @llvm.fshr.v8i32
5963   return _mm256_ror_epi32(__A, 5);
5964 }
5965 
test_mm256_mask_ror_epi32(__m256i __W,__mmask8 __U,__m256i __A)5966 __m256i test_mm256_mask_ror_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
5967   // CHECK-LABEL: @test_mm256_mask_ror_epi32
5968   // CHECK: @llvm.fshr.v8i32
5969   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5970   return _mm256_mask_ror_epi32(__W, __U, __A, 5);
5971 }
5972 
test_mm256_maskz_ror_epi32(__mmask8 __U,__m256i __A)5973 __m256i test_mm256_maskz_ror_epi32(__mmask8 __U, __m256i __A) {
5974   // CHECK-LABEL: @test_mm256_maskz_ror_epi32
5975   // CHECK: @llvm.fshr.v8i32
5976   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5977   return _mm256_maskz_ror_epi32(__U, __A, 5);
5978 }
5979 
test_mm_ror_epi64(__m128i __A)5980 __m128i test_mm_ror_epi64(__m128i __A) {
5981   // CHECK-LABEL: @test_mm_ror_epi64
5982   // CHECK: @llvm.fshr.v2i64
5983   return _mm_ror_epi64(__A, 5);
5984 }
5985 
test_mm_mask_ror_epi64(__m128i __W,__mmask8 __U,__m128i __A)5986 __m128i test_mm_mask_ror_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5987   // CHECK-LABEL: @test_mm_mask_ror_epi64
5988   // CHECK: @llvm.fshr.v2i64
5989   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5990   return _mm_mask_ror_epi64(__W, __U, __A, 5);
5991 }
5992 
test_mm_maskz_ror_epi64(__mmask8 __U,__m128i __A)5993 __m128i test_mm_maskz_ror_epi64(__mmask8 __U, __m128i __A) {
5994   // CHECK-LABEL: @test_mm_maskz_ror_epi64
5995   // CHECK: @llvm.fshr.v2i64
5996   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5997   return _mm_maskz_ror_epi64(__U, __A, 5);
5998 }
5999 
test_mm256_ror_epi64(__m256i __A)6000 __m256i test_mm256_ror_epi64(__m256i __A) {
6001   // CHECK-LABEL: @test_mm256_ror_epi64
6002   // CHECK: @llvm.fshr.v4i64
6003   return _mm256_ror_epi64(__A, 5);
6004 }
6005 
test_mm256_mask_ror_epi64(__m256i __W,__mmask8 __U,__m256i __A)6006 __m256i test_mm256_mask_ror_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
6007   // CHECK-LABEL: @test_mm256_mask_ror_epi64
6008   // CHECK: @llvm.fshr.v4i64
6009   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6010   return _mm256_mask_ror_epi64(__W, __U, __A,5);
6011 }
6012 
test_mm256_maskz_ror_epi64(__mmask8 __U,__m256i __A)6013 __m256i test_mm256_maskz_ror_epi64(__mmask8 __U, __m256i __A) {
6014   // CHECK-LABEL: @test_mm256_maskz_ror_epi64
6015   // CHECK: @llvm.fshr.v4i64
6016   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6017   return _mm256_maskz_ror_epi64(__U, __A, 5);
6018 }
6019 
6020 
test_mm_rorv_epi32(__m128i __A,__m128i __B)6021 __m128i test_mm_rorv_epi32(__m128i __A, __m128i __B) {
6022   // CHECK-LABEL: @test_mm_rorv_epi32
6023   // CHECK: @llvm.fshr.v4i32
6024   return _mm_rorv_epi32(__A, __B);
6025 }
6026 
test_mm_mask_rorv_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6027 __m128i test_mm_mask_rorv_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6028   // CHECK-LABEL: @test_mm_mask_rorv_epi32
6029   // CHECK: @llvm.fshr.v4i32
6030   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6031   return _mm_mask_rorv_epi32(__W, __U, __A, __B);
6032 }
6033 
test_mm_maskz_rorv_epi32(__mmask8 __U,__m128i __A,__m128i __B)6034 __m128i test_mm_maskz_rorv_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
6035   // CHECK-LABEL: @test_mm_maskz_rorv_epi32
6036   // CHECK: @llvm.fshr.v4i32
6037   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6038   return _mm_maskz_rorv_epi32(__U, __A, __B);
6039 }
6040 
test_mm256_rorv_epi32(__m256i __A,__m256i __B)6041 __m256i test_mm256_rorv_epi32(__m256i __A, __m256i __B) {
6042   // CHECK-LABEL: @test_mm256_rorv_epi32
6043   // CHECK: @llvm.fshr.v8i32
6044   return _mm256_rorv_epi32(__A, __B);
6045 }
6046 
test_mm256_mask_rorv_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)6047 __m256i test_mm256_mask_rorv_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
6048   // CHECK-LABEL: @test_mm256_mask_rorv_epi32
6049   // CHECK: @llvm.fshr.v8i32
6050   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6051   return _mm256_mask_rorv_epi32(__W, __U, __A, __B);
6052 }
6053 
test_mm256_maskz_rorv_epi32(__mmask8 __U,__m256i __A,__m256i __B)6054 __m256i test_mm256_maskz_rorv_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
6055   // CHECK-LABEL: @test_mm256_maskz_rorv_epi32
6056   // CHECK: @llvm.fshr.v8i32
6057   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6058   return _mm256_maskz_rorv_epi32(__U, __A, __B);
6059 }
6060 
test_mm_rorv_epi64(__m128i __A,__m128i __B)6061 __m128i test_mm_rorv_epi64(__m128i __A, __m128i __B) {
6062   // CHECK-LABEL: @test_mm_rorv_epi64
6063   // CHECK: @llvm.fshr.v2i64
6064   return _mm_rorv_epi64(__A, __B);
6065 }
6066 
test_mm_mask_rorv_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6067 __m128i test_mm_mask_rorv_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6068   // CHECK-LABEL: @test_mm_mask_rorv_epi64
6069   // CHECK: @llvm.fshr.v2i64
6070   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6071   return _mm_mask_rorv_epi64(__W, __U, __A, __B);
6072 }
6073 
test_mm_maskz_rorv_epi64(__mmask8 __U,__m128i __A,__m128i __B)6074 __m128i test_mm_maskz_rorv_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
6075   // CHECK-LABEL: @test_mm_maskz_rorv_epi64
6076   // CHECK: @llvm.fshr.v2i64
6077   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6078   return _mm_maskz_rorv_epi64(__U, __A, __B);
6079 }
6080 
test_mm256_rorv_epi64(__m256i __A,__m256i __B)6081 __m256i test_mm256_rorv_epi64(__m256i __A, __m256i __B) {
6082   // CHECK-LABEL: @test_mm256_rorv_epi64
6083   // CHECK: @llvm.fshr.v4i64
6084   return _mm256_rorv_epi64(__A, __B);
6085 }
6086 
test_mm256_mask_rorv_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)6087 __m256i test_mm256_mask_rorv_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
6088   // CHECK-LABEL: @test_mm256_mask_rorv_epi64
6089   // CHECK: @llvm.fshr.v4i64
6090   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6091   return _mm256_mask_rorv_epi64(__W, __U, __A, __B);
6092 }
6093 
test_mm256_maskz_rorv_epi64(__mmask8 __U,__m256i __A,__m256i __B)6094 __m256i test_mm256_maskz_rorv_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
6095   // CHECK-LABEL: @test_mm256_maskz_rorv_epi64
6096   // CHECK: @llvm.fshr.v4i64
6097   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6098   return _mm256_maskz_rorv_epi64(__U, __A, __B);
6099 }
6100 
test_mm_mask_sllv_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6101 __m128i test_mm_mask_sllv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6102   // CHECK-LABEL: @test_mm_mask_sllv_epi64
6103   // CHECK: @llvm.x86.avx2.psllv.q
6104   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6105   return _mm_mask_sllv_epi64(__W, __U, __X, __Y);
6106 }
6107 
test_mm_maskz_sllv_epi64(__mmask8 __U,__m128i __X,__m128i __Y)6108 __m128i test_mm_maskz_sllv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
6109   // CHECK-LABEL: @test_mm_maskz_sllv_epi64
6110   // CHECK: @llvm.x86.avx2.psllv.q
6111   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6112   return _mm_maskz_sllv_epi64(__U, __X, __Y);
6113 }
6114 
test_mm256_mask_sllv_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6115 __m256i test_mm256_mask_sllv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6116   // CHECK-LABEL: @test_mm256_mask_sllv_epi64
6117   // CHECK: @llvm.x86.avx2.psllv.q.256
6118   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6119   return _mm256_mask_sllv_epi64(__W, __U, __X, __Y);
6120 }
6121 
test_mm256_maskz_sllv_epi64(__mmask8 __U,__m256i __X,__m256i __Y)6122 __m256i test_mm256_maskz_sllv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
6123   // CHECK-LABEL: @test_mm256_maskz_sllv_epi64
6124   // CHECK: @llvm.x86.avx2.psllv.q.256
6125   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6126   return _mm256_maskz_sllv_epi64(__U, __X, __Y);
6127 }
6128 
test_mm_mask_sllv_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6129 __m128i test_mm_mask_sllv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6130   // CHECK-LABEL: @test_mm_mask_sllv_epi32
6131   // CHECK: @llvm.x86.avx2.psllv.d
6132   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6133   return _mm_mask_sllv_epi32(__W, __U, __X, __Y);
6134 }
6135 
test_mm_maskz_sllv_epi32(__mmask8 __U,__m128i __X,__m128i __Y)6136 __m128i test_mm_maskz_sllv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
6137   // CHECK-LABEL: @test_mm_maskz_sllv_epi32
6138   // CHECK: @llvm.x86.avx2.psllv.d
6139   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6140   return _mm_maskz_sllv_epi32(__U, __X, __Y);
6141 }
6142 
test_mm256_mask_sllv_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6143 __m256i test_mm256_mask_sllv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6144   // CHECK-LABEL: @test_mm256_mask_sllv_epi32
6145   // CHECK: @llvm.x86.avx2.psllv.d.256
6146   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6147   return _mm256_mask_sllv_epi32(__W, __U, __X, __Y);
6148 }
6149 
test_mm256_maskz_sllv_epi32(__mmask8 __U,__m256i __X,__m256i __Y)6150 __m256i test_mm256_maskz_sllv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
6151   // CHECK-LABEL: @test_mm256_maskz_sllv_epi32
6152   // CHECK: @llvm.x86.avx2.psllv.d.256
6153   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6154   return _mm256_maskz_sllv_epi32(__U, __X, __Y);
6155 }
6156 
test_mm_mask_srlv_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6157 __m128i test_mm_mask_srlv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6158   // CHECK-LABEL: @test_mm_mask_srlv_epi64
6159   // CHECK: @llvm.x86.avx2.psrlv.q
6160   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6161   return _mm_mask_srlv_epi64(__W, __U, __X, __Y);
6162 }
6163 
test_mm_maskz_srlv_epi64(__mmask8 __U,__m128i __X,__m128i __Y)6164 __m128i test_mm_maskz_srlv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
6165   // CHECK-LABEL: @test_mm_maskz_srlv_epi64
6166   // CHECK: @llvm.x86.avx2.psrlv.q
6167   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6168   return _mm_maskz_srlv_epi64(__U, __X, __Y);
6169 }
6170 
test_mm256_mask_srlv_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6171 __m256i test_mm256_mask_srlv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6172   // CHECK-LABEL: @test_mm256_mask_srlv_epi64
6173   // CHECK: @llvm.x86.avx2.psrlv.q.256
6174   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6175   return _mm256_mask_srlv_epi64(__W, __U, __X, __Y);
6176 }
6177 
test_mm256_maskz_srlv_epi64(__mmask8 __U,__m256i __X,__m256i __Y)6178 __m256i test_mm256_maskz_srlv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
6179   // CHECK-LABEL: @test_mm256_maskz_srlv_epi64
6180   // CHECK: @llvm.x86.avx2.psrlv.q.256
6181   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6182   return _mm256_maskz_srlv_epi64(__U, __X, __Y);
6183 }
6184 
test_mm_mask_srlv_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6185 __m128i test_mm_mask_srlv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6186   // CHECK-LABEL: @test_mm_mask_srlv_epi32
6187   // CHECK: @llvm.x86.avx2.psrlv.d
6188   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6189   return _mm_mask_srlv_epi32(__W, __U, __X, __Y);
6190 }
6191 
test_mm_maskz_srlv_epi32(__mmask8 __U,__m128i __X,__m128i __Y)6192 __m128i test_mm_maskz_srlv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
6193   // CHECK-LABEL: @test_mm_maskz_srlv_epi32
6194   // CHECK: @llvm.x86.avx2.psrlv.d
6195   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6196   return _mm_maskz_srlv_epi32(__U, __X, __Y);
6197 }
6198 
test_mm256_mask_srlv_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6199 __m256i test_mm256_mask_srlv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6200   // CHECK-LABEL: @test_mm256_mask_srlv_epi32
6201   // CHECK: @llvm.x86.avx2.psrlv.d.256
6202   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6203   return _mm256_mask_srlv_epi32(__W, __U, __X, __Y);
6204 }
6205 
test_mm256_maskz_srlv_epi32(__mmask8 __U,__m256i __X,__m256i __Y)6206 __m256i test_mm256_maskz_srlv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
6207   // CHECK-LABEL: @test_mm256_maskz_srlv_epi32
6208   // CHECK: @llvm.x86.avx2.psrlv.d.256
6209   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6210   return _mm256_maskz_srlv_epi32(__U, __X, __Y);
6211 }
6212 
test_mm_mask_srl_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6213 __m128i test_mm_mask_srl_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6214   // CHECK-LABEL: @test_mm_mask_srl_epi32
6215   // CHECK: @llvm.x86.sse2.psrl.d
6216   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6217   return _mm_mask_srl_epi32(__W, __U, __A, __B);
6218 }
6219 
test_mm_maskz_srl_epi32(__mmask8 __U,__m128i __A,__m128i __B)6220 __m128i test_mm_maskz_srl_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
6221   // CHECK-LABEL: @test_mm_maskz_srl_epi32
6222   // CHECK: @llvm.x86.sse2.psrl.d
6223   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6224   return _mm_maskz_srl_epi32(__U, __A, __B);
6225 }
6226 
test_mm256_mask_srl_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6227 __m256i test_mm256_mask_srl_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6228   // CHECK-LABEL: @test_mm256_mask_srl_epi32
6229   // CHECK: @llvm.x86.avx2.psrl.d
6230   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6231   return _mm256_mask_srl_epi32(__W, __U, __A, __B);
6232 }
6233 
test_mm256_maskz_srl_epi32(__mmask8 __U,__m256i __A,__m128i __B)6234 __m256i test_mm256_maskz_srl_epi32(__mmask8 __U, __m256i __A, __m128i __B) {
6235   // CHECK-LABEL: @test_mm256_maskz_srl_epi32
6236   // CHECK: @llvm.x86.avx2.psrl.d
6237   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6238   return _mm256_maskz_srl_epi32(__U, __A, __B);
6239 }
6240 
test_mm_mask_srli_epi32(__m128i __W,__mmask8 __U,__m128i __A)6241 __m128i test_mm_mask_srli_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
6242   // CHECK-LABEL: @test_mm_mask_srli_epi32
6243   // CHECK: @llvm.x86.sse2.psrli.d
6244   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6245   return _mm_mask_srli_epi32(__W, __U, __A, 5);
6246 }
6247 
test_mm_mask_srli_epi32_2(__m128i __W,__mmask8 __U,__m128i __A,int __B)6248 __m128i test_mm_mask_srli_epi32_2(__m128i __W, __mmask8 __U, __m128i __A, int __B) {
6249   // CHECK-LABEL: @test_mm_mask_srli_epi32_2
6250   // CHECK: @llvm.x86.sse2.psrli.d
6251   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6252   return _mm_mask_srli_epi32(__W, __U, __A, __B);
6253 }
6254 
test_mm_maskz_srli_epi32(__mmask8 __U,__m128i __A)6255 __m128i test_mm_maskz_srli_epi32(__mmask8 __U, __m128i __A) {
6256   // CHECK-LABEL: @test_mm_maskz_srli_epi32
6257   // CHECK: @llvm.x86.sse2.psrli.d
6258   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6259   return _mm_maskz_srli_epi32(__U, __A, 5);
6260 }
6261 
test_mm_maskz_srli_epi32_2(__mmask8 __U,__m128i __A,int __B)6262 __m128i test_mm_maskz_srli_epi32_2(__mmask8 __U, __m128i __A, int __B) {
6263   // CHECK-LABEL: @test_mm_maskz_srli_epi32_2
6264   // CHECK: @llvm.x86.sse2.psrli.d
6265   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6266   return _mm_maskz_srli_epi32(__U, __A, __B);
6267 }
6268 
test_mm256_mask_srli_epi32(__m256i __W,__mmask8 __U,__m256i __A)6269 __m256i test_mm256_mask_srli_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
6270   // CHECK-LABEL: @test_mm256_mask_srli_epi32
6271   // CHECK: @llvm.x86.avx2.psrli.d
6272   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6273   return _mm256_mask_srli_epi32(__W, __U, __A, 5);
6274 }
6275 
test_mm256_mask_srli_epi32_2(__m256i __W,__mmask8 __U,__m256i __A,int __B)6276 __m256i test_mm256_mask_srli_epi32_2(__m256i __W, __mmask8 __U, __m256i __A, int __B) {
6277   // CHECK-LABEL: @test_mm256_mask_srli_epi32_2
6278   // CHECK: @llvm.x86.avx2.psrli.d
6279   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6280   return _mm256_mask_srli_epi32(__W, __U, __A, __B);
6281 }
6282 
test_mm256_maskz_srli_epi32(__mmask8 __U,__m256i __A)6283 __m256i test_mm256_maskz_srli_epi32(__mmask8 __U, __m256i __A) {
6284   // CHECK-LABEL: @test_mm256_maskz_srli_epi32
6285   // CHECK: @llvm.x86.avx2.psrli.d
6286   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6287   return _mm256_maskz_srli_epi32(__U, __A, 5);
6288 }
6289 
test_mm256_maskz_srli_epi32_2(__mmask8 __U,__m256i __A,int __B)6290 __m256i test_mm256_maskz_srli_epi32_2(__mmask8 __U, __m256i __A, int __B) {
6291   // CHECK-LABEL: @test_mm256_maskz_srli_epi32_2
6292   // CHECK: @llvm.x86.avx2.psrli.d
6293   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6294   return _mm256_maskz_srli_epi32(__U, __A, __B);
6295 }
test_mm_mask_srl_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6296 __m128i test_mm_mask_srl_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6297   // CHECK-LABEL: @test_mm_mask_srl_epi64
6298   // CHECK: @llvm.x86.sse2.psrl.q
6299   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6300   return _mm_mask_srl_epi64(__W, __U, __A, __B);
6301 }
6302 
test_mm_maskz_srl_epi64(__mmask8 __U,__m128i __A,__m128i __B)6303 __m128i test_mm_maskz_srl_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
6304   // CHECK-LABEL: @test_mm_maskz_srl_epi64
6305   // CHECK: @llvm.x86.sse2.psrl.q
6306   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6307   return _mm_maskz_srl_epi64(__U, __A, __B);
6308 }
6309 
test_mm256_mask_srl_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6310 __m256i test_mm256_mask_srl_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6311   // CHECK-LABEL: @test_mm256_mask_srl_epi64
6312   // CHECK: @llvm.x86.avx2.psrl.q
6313   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6314   return _mm256_mask_srl_epi64(__W, __U, __A, __B);
6315 }
6316 
test_mm256_maskz_srl_epi64(__mmask8 __U,__m256i __A,__m128i __B)6317 __m256i test_mm256_maskz_srl_epi64(__mmask8 __U, __m256i __A, __m128i __B) {
6318   // CHECK-LABEL: @test_mm256_maskz_srl_epi64
6319   // CHECK: @llvm.x86.avx2.psrl.q
6320   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6321   return _mm256_maskz_srl_epi64(__U, __A, __B);
6322 }
6323 
test_mm_mask_srli_epi64(__m128i __W,__mmask8 __U,__m128i __A)6324 __m128i test_mm_mask_srli_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
6325   // CHECK-LABEL: @test_mm_mask_srli_epi64
6326   // CHECK: @llvm.x86.sse2.psrli.q
6327   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6328   return _mm_mask_srli_epi64(__W, __U, __A, 5);
6329 }
6330 
test_mm_mask_srli_epi64_2(__m128i __W,__mmask8 __U,__m128i __A,int __B)6331 __m128i test_mm_mask_srli_epi64_2(__m128i __W, __mmask8 __U, __m128i __A, int __B) {
6332   // CHECK-LABEL: @test_mm_mask_srli_epi64_2
6333   // CHECK: @llvm.x86.sse2.psrli.q
6334   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6335   return _mm_mask_srli_epi64(__W, __U, __A, __B);
6336 }
6337 
test_mm_maskz_srli_epi64(__mmask8 __U,__m128i __A)6338 __m128i test_mm_maskz_srli_epi64(__mmask8 __U, __m128i __A) {
6339   // CHECK-LABEL: @test_mm_maskz_srli_epi64
6340   // CHECK: @llvm.x86.sse2.psrli.q
6341   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6342   return _mm_maskz_srli_epi64(__U, __A, 5);
6343 }
6344 
test_mm_maskz_srli_epi64_2(__mmask8 __U,__m128i __A,int __B)6345 __m128i test_mm_maskz_srli_epi64_2(__mmask8 __U, __m128i __A, int __B) {
6346   // CHECK-LABEL: @test_mm_maskz_srli_epi64_2
6347   // CHECK: @llvm.x86.sse2.psrli.q
6348   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6349   return _mm_maskz_srli_epi64(__U, __A, __B);
6350 }
6351 
test_mm256_mask_srli_epi64(__m256i __W,__mmask8 __U,__m256i __A)6352 __m256i test_mm256_mask_srli_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
6353   // CHECK-LABEL: @test_mm256_mask_srli_epi64
6354   // CHECK: @llvm.x86.avx2.psrli.q
6355   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6356   return _mm256_mask_srli_epi64(__W, __U, __A, 5);
6357 }
6358 
test_mm256_mask_srli_epi64_2(__m256i __W,__mmask8 __U,__m256i __A,int __B)6359 __m256i test_mm256_mask_srli_epi64_2(__m256i __W, __mmask8 __U, __m256i __A, int __B) {
6360   // CHECK-LABEL: @test_mm256_mask_srli_epi64_2
6361   // CHECK: @llvm.x86.avx2.psrli.q
6362   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6363   return _mm256_mask_srli_epi64(__W, __U, __A, __B);
6364 }
6365 
test_mm256_maskz_srli_epi64(__mmask8 __U,__m256i __A)6366 __m256i test_mm256_maskz_srli_epi64(__mmask8 __U, __m256i __A) {
6367   // CHECK-LABEL: @test_mm256_maskz_srli_epi64
6368   // CHECK: @llvm.x86.avx2.psrli.q
6369   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6370   return _mm256_maskz_srli_epi64(__U, __A, 5);
6371 }
6372 
test_mm256_maskz_srli_epi64_2(__mmask8 __U,__m256i __A)6373 __m256i test_mm256_maskz_srli_epi64_2(__mmask8 __U, __m256i __A) {
6374   // CHECK-LABEL: @test_mm256_maskz_srli_epi64_2
6375   // CHECK: @llvm.x86.avx2.psrli.q
6376   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6377   return _mm256_maskz_srli_epi64(__U, __A, 5);
6378 }
6379 
test_mm_mask_sll_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6380 __m128i test_mm_mask_sll_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6381   // CHECK-LABEL: @test_mm_mask_sll_epi32
6382   // CHECK: @llvm.x86.sse2.psll.d
6383   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6384   return _mm_mask_sll_epi32(__W, __U, __A, __B);
6385 }
6386 
test_mm_maskz_sll_epi32(__mmask8 __U,__m128i __A,__m128i __B)6387 __m128i test_mm_maskz_sll_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
6388   // CHECK-LABEL: @test_mm_maskz_sll_epi32
6389   // CHECK: @llvm.x86.sse2.psll.d
6390   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6391   return _mm_maskz_sll_epi32(__U, __A, __B);
6392 }
6393 
test_mm256_mask_sll_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6394 __m256i test_mm256_mask_sll_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6395   // CHECK-LABEL: @test_mm256_mask_sll_epi32
6396   // CHECK: @llvm.x86.avx2.psll.d
6397   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6398   return _mm256_mask_sll_epi32(__W, __U, __A, __B);
6399 }
6400 
test_mm256_maskz_sll_epi32(__mmask8 __U,__m256i __A,__m128i __B)6401 __m256i test_mm256_maskz_sll_epi32(__mmask8 __U, __m256i __A, __m128i __B) {
6402   // CHECK-LABEL: @test_mm256_maskz_sll_epi32
6403   // CHECK: @llvm.x86.avx2.psll.d
6404   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6405   return _mm256_maskz_sll_epi32(__U, __A, __B);
6406 }
6407 
test_mm_mask_slli_epi32(__m128i __W,__mmask8 __U,__m128i __A)6408 __m128i test_mm_mask_slli_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
6409   // CHECK-LABEL: @test_mm_mask_slli_epi32
6410   // CHECK: @llvm.x86.sse2.pslli.d
6411   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6412   return _mm_mask_slli_epi32(__W, __U, __A, 5);
6413 }
6414 
test_mm_mask_slli_epi32_2(__m128i __W,__mmask8 __U,__m128i __A,int __B)6415 __m128i test_mm_mask_slli_epi32_2(__m128i __W, __mmask8 __U, __m128i __A, int __B) {
6416   // CHECK-LABEL: @test_mm_mask_slli_epi32_2
6417   // CHECK: @llvm.x86.sse2.pslli.d
6418   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6419   return _mm_mask_slli_epi32(__W, __U, __A, __B);
6420 }
6421 
test_mm_maskz_slli_epi32(__mmask8 __U,__m128i __A)6422 __m128i test_mm_maskz_slli_epi32(__mmask8 __U, __m128i __A) {
6423   // CHECK-LABEL: @test_mm_maskz_slli_epi32
6424   // CHECK: @llvm.x86.sse2.pslli.d
6425   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6426   return _mm_maskz_slli_epi32(__U, __A, 5);
6427 }
6428 
test_mm_maskz_slli_epi32_2(__mmask8 __U,__m128i __A,int __B)6429 __m128i test_mm_maskz_slli_epi32_2(__mmask8 __U, __m128i __A, int __B) {
6430   // CHECK-LABEL: @test_mm_maskz_slli_epi32_2
6431   // CHECK: @llvm.x86.sse2.pslli.d
6432   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6433   return _mm_maskz_slli_epi32(__U, __A, __B);
6434 }
6435 
test_mm256_mask_slli_epi32(__m256i __W,__mmask8 __U,__m256i __A)6436 __m256i test_mm256_mask_slli_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
6437   // CHECK-LABEL: @test_mm256_mask_slli_epi32
6438   // CHECK: @llvm.x86.avx2.pslli.d
6439   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6440   return _mm256_mask_slli_epi32(__W, __U, __A, 5);
6441 }
6442 
test_mm256_mask_slli_epi32_2(__m256i __W,__mmask8 __U,__m256i __A,int __B)6443 __m256i test_mm256_mask_slli_epi32_2(__m256i __W, __mmask8 __U, __m256i __A, int __B) {
6444   // CHECK-LABEL: @test_mm256_mask_slli_epi32_2
6445   // CHECK: @llvm.x86.avx2.pslli.d
6446   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6447   return _mm256_mask_slli_epi32(__W, __U, __A, __B);
6448 }
6449 
test_mm256_maskz_slli_epi32(__mmask8 __U,__m256i __A)6450 __m256i test_mm256_maskz_slli_epi32(__mmask8 __U, __m256i __A) {
6451   // CHECK-LABEL: @test_mm256_maskz_slli_epi32
6452   // CHECK: @llvm.x86.avx2.pslli.d
6453   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6454   return _mm256_maskz_slli_epi32(__U, __A, 5);
6455 }
6456 
test_mm256_maskz_slli_epi32_2(__mmask8 __U,__m256i __A,int __B)6457 __m256i test_mm256_maskz_slli_epi32_2(__mmask8 __U, __m256i __A, int __B) {
6458   // CHECK-LABEL: @test_mm256_maskz_slli_epi32_2
6459   // CHECK: @llvm.x86.avx2.pslli.d
6460   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6461   return _mm256_maskz_slli_epi32(__U, __A, __B);
6462 }
6463 
test_mm_mask_sll_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6464 __m128i test_mm_mask_sll_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6465   // CHECK-LABEL: @test_mm_mask_sll_epi64
6466   // CHECK: @llvm.x86.sse2.psll.q
6467   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6468   return _mm_mask_sll_epi64(__W, __U, __A, __B);
6469 }
6470 
test_mm_maskz_sll_epi64(__mmask8 __U,__m128i __A,__m128i __B)6471 __m128i test_mm_maskz_sll_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
6472   // CHECK-LABEL: @test_mm_maskz_sll_epi64
6473   // CHECK: @llvm.x86.sse2.psll.q
6474   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6475   return _mm_maskz_sll_epi64(__U, __A, __B);
6476 }
6477 
test_mm256_mask_sll_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6478 __m256i test_mm256_mask_sll_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6479   // CHECK-LABEL: @test_mm256_mask_sll_epi64
6480   // CHECK: @llvm.x86.avx2.psll.q
6481   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6482   return _mm256_mask_sll_epi64(__W, __U, __A, __B);
6483 }
6484 
test_mm256_maskz_sll_epi64(__mmask8 __U,__m256i __A,__m128i __B)6485 __m256i test_mm256_maskz_sll_epi64(__mmask8 __U, __m256i __A, __m128i __B) {
6486   // CHECK-LABEL: @test_mm256_maskz_sll_epi64
6487   // CHECK: @llvm.x86.avx2.psll.q
6488   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6489   return _mm256_maskz_sll_epi64(__U, __A, __B);
6490 }
6491 
test_mm_mask_slli_epi64(__m128i __W,__mmask8 __U,__m128i __A)6492 __m128i test_mm_mask_slli_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
6493   // CHECK-LABEL: @test_mm_mask_slli_epi64
6494   // CHECK: @llvm.x86.sse2.pslli.q
6495   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6496   return _mm_mask_slli_epi64(__W, __U, __A, 5);
6497 }
6498 
test_mm_mask_slli_epi64_2(__m128i __W,__mmask8 __U,__m128i __A,int __B)6499 __m128i test_mm_mask_slli_epi64_2(__m128i __W, __mmask8 __U, __m128i __A, int __B) {
6500   // CHECK-LABEL: @test_mm_mask_slli_epi64_2
6501   // CHECK: @llvm.x86.sse2.pslli.q
6502   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6503   return _mm_mask_slli_epi64(__W, __U, __A, __B);
6504 }
6505 
test_mm_maskz_slli_epi64(__mmask8 __U,__m128i __A)6506 __m128i test_mm_maskz_slli_epi64(__mmask8 __U, __m128i __A) {
6507   // CHECK-LABEL: @test_mm_maskz_slli_epi64
6508   // CHECK: @llvm.x86.sse2.pslli.q
6509   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6510   return _mm_maskz_slli_epi64(__U, __A, 5);
6511 }
6512 
test_mm_maskz_slli_epi64_2(__mmask8 __U,__m128i __A,int __B)6513 __m128i test_mm_maskz_slli_epi64_2(__mmask8 __U, __m128i __A, int __B) {
6514   // CHECK-LABEL: @test_mm_maskz_slli_epi64_2
6515   // CHECK: @llvm.x86.sse2.pslli.q
6516   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6517   return _mm_maskz_slli_epi64(__U, __A, __B);
6518 }
6519 
test_mm256_mask_slli_epi64(__m256i __W,__mmask8 __U,__m256i __A)6520 __m256i test_mm256_mask_slli_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
6521   // CHECK-LABEL: @test_mm256_mask_slli_epi64
6522   // CHECK: @llvm.x86.avx2.pslli.q
6523   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6524   return _mm256_mask_slli_epi64(__W, __U, __A, 5);
6525 }
6526 
test_mm256_mask_slli_epi64_2(__m256i __W,__mmask8 __U,__m256i __A,int __B)6527 __m256i test_mm256_mask_slli_epi64_2(__m256i __W, __mmask8 __U, __m256i __A, int __B) {
6528   // CHECK-LABEL: @test_mm256_mask_slli_epi64_2
6529   // CHECK: @llvm.x86.avx2.pslli.q
6530   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6531   return _mm256_mask_slli_epi64(__W, __U, __A, __B);
6532 }
6533 
test_mm256_maskz_slli_epi64(__mmask8 __U,__m256i __A)6534 __m256i test_mm256_maskz_slli_epi64(__mmask8 __U, __m256i __A) {
6535   // CHECK-LABEL: @test_mm256_maskz_slli_epi64
6536   // CHECK: @llvm.x86.avx2.pslli.q
6537   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6538   return _mm256_maskz_slli_epi64(__U, __A, 5);
6539 }
6540 
test_mm256_maskz_slli_epi64_2(__mmask8 __U,__m256i __A)6541 __m256i test_mm256_maskz_slli_epi64_2(__mmask8 __U, __m256i __A) {
6542   // CHECK-LABEL: @test_mm256_maskz_slli_epi64_2
6543   // CHECK: @llvm.x86.avx2.pslli.q
6544   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6545   return _mm256_maskz_slli_epi64(__U, __A, 5);
6546 }
6547 
test_mm_mask_srav_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6548 __m128i test_mm_mask_srav_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6549   // CHECK-LABEL: @test_mm_mask_srav_epi32
6550   // CHECK: @llvm.x86.avx2.psrav.d
6551   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6552   return _mm_mask_srav_epi32(__W, __U, __X, __Y);
6553 }
6554 
test_mm_maskz_srav_epi32(__mmask8 __U,__m128i __X,__m128i __Y)6555 __m128i test_mm_maskz_srav_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
6556   // CHECK-LABEL: @test_mm_maskz_srav_epi32
6557   // CHECK: @llvm.x86.avx2.psrav.d
6558   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6559   return _mm_maskz_srav_epi32(__U, __X, __Y);
6560 }
6561 
test_mm256_mask_srav_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6562 __m256i test_mm256_mask_srav_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6563   // CHECK-LABEL: @test_mm256_mask_srav_epi32
6564   // CHECK: @llvm.x86.avx2.psrav.d.256
6565   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6566   return _mm256_mask_srav_epi32(__W, __U, __X, __Y);
6567 }
6568 
test_mm256_maskz_srav_epi32(__mmask8 __U,__m256i __X,__m256i __Y)6569 __m256i test_mm256_maskz_srav_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
6570   // CHECK-LABEL: @test_mm256_maskz_srav_epi32
6571   // CHECK: @llvm.x86.avx2.psrav.d.256
6572   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6573   return _mm256_maskz_srav_epi32(__U, __X, __Y);
6574 }
6575 
test_mm_srav_epi64(__m128i __X,__m128i __Y)6576 __m128i test_mm_srav_epi64(__m128i __X, __m128i __Y) {
6577   // CHECK-LABEL: @test_mm_srav_epi64
6578   // CHECK: @llvm.x86.avx512.psrav.q.128
6579   return _mm_srav_epi64(__X, __Y);
6580 }
6581 
test_mm_mask_srav_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6582 __m128i test_mm_mask_srav_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6583   // CHECK-LABEL: @test_mm_mask_srav_epi64
6584   // CHECK: @llvm.x86.avx512.psrav.q.128
6585   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6586   return _mm_mask_srav_epi64(__W, __U, __X, __Y);
6587 }
6588 
test_mm_maskz_srav_epi64(__mmask8 __U,__m128i __X,__m128i __Y)6589 __m128i test_mm_maskz_srav_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
6590   // CHECK-LABEL: @test_mm_maskz_srav_epi64
6591   // CHECK: @llvm.x86.avx512.psrav.q.128
6592   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6593   return _mm_maskz_srav_epi64(__U, __X, __Y);
6594 }
6595 
test_mm256_srav_epi64(__m256i __X,__m256i __Y)6596 __m256i test_mm256_srav_epi64(__m256i __X, __m256i __Y) {
6597   // CHECK-LABEL: @test_mm256_srav_epi64
6598   // CHECK: @llvm.x86.avx512.psrav.q.256
6599   return _mm256_srav_epi64(__X, __Y);
6600 }
6601 
test_mm256_mask_srav_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6602 __m256i test_mm256_mask_srav_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6603   // CHECK-LABEL: @test_mm256_mask_srav_epi64
6604   // CHECK: @llvm.x86.avx512.psrav.q.256
6605   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6606   return _mm256_mask_srav_epi64(__W, __U, __X, __Y);
6607 }
6608 
test_mm256_maskz_srav_epi64(__mmask8 __U,__m256i __X,__m256i __Y)6609 __m256i test_mm256_maskz_srav_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
6610   // CHECK-LABEL: @test_mm256_maskz_srav_epi64
6611   // CHECK: @llvm.x86.avx512.psrav.q.256
6612   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6613   return _mm256_maskz_srav_epi64(__U, __X, __Y);
6614 }
6615 
test_mm_store_epi32(void * __P,__m128i __A)6616 void test_mm_store_epi32(void *__P, __m128i __A) {
6617   // CHECK-LABEL: @test_mm_store_epi32
6618   // CHECK: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}
6619   return _mm_store_epi32(__P, __A);
6620 }
6621 
test_mm_mask_store_epi32(void * __P,__mmask8 __U,__m128i __A)6622 void test_mm_mask_store_epi32(void *__P, __mmask8 __U, __m128i __A) {
6623   // CHECK-LABEL: @test_mm_mask_store_epi32
6624   // CHECK: @llvm.masked.store.v4i32.p0v4i32(<4 x i32> %{{.*}}, <4 x i32>* %{{.}}, i32 16, <4 x i1> %{{.*}})
6625   return _mm_mask_store_epi32(__P, __U, __A);
6626 }
6627 
test_mm256_store_epi32(void * __P,__m256i __A)6628 void test_mm256_store_epi32(void *__P, __m256i __A) {
6629   // CHECK-LABEL: @test_mm256_store_epi32
6630   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}
6631   return _mm256_store_epi32(__P, __A);
6632 }
6633 
test_mm256_mask_store_epi32(void * __P,__mmask8 __U,__m256i __A)6634 void test_mm256_mask_store_epi32(void *__P, __mmask8 __U, __m256i __A) {
6635   // CHECK-LABEL: @test_mm256_mask_store_epi32
6636   // CHECK: @llvm.masked.store.v8i32.p0v8i32(<8 x i32> %{{.*}}, <8 x i32>* %{{.}}, i32 32, <8 x i1> %{{.*}})
6637   return _mm256_mask_store_epi32(__P, __U, __A);
6638 }
6639 
test_mm_mask_mov_epi32(__m128i __W,__mmask8 __U,__m128i __A)6640 __m128i test_mm_mask_mov_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
6641   // CHECK-LABEL: @test_mm_mask_mov_epi32
6642   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6643   return _mm_mask_mov_epi32(__W, __U, __A);
6644 }
6645 
test_mm_maskz_mov_epi32(__mmask8 __U,__m128i __A)6646 __m128i test_mm_maskz_mov_epi32(__mmask8 __U, __m128i __A) {
6647   // CHECK-LABEL: @test_mm_maskz_mov_epi32
6648   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6649   return _mm_maskz_mov_epi32(__U, __A);
6650 }
6651 
test_mm256_mask_mov_epi32(__m256i __W,__mmask8 __U,__m256i __A)6652 __m256i test_mm256_mask_mov_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
6653   // CHECK-LABEL: @test_mm256_mask_mov_epi32
6654   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6655   return _mm256_mask_mov_epi32(__W, __U, __A);
6656 }
6657 
test_mm256_maskz_mov_epi32(__mmask8 __U,__m256i __A)6658 __m256i test_mm256_maskz_mov_epi32(__mmask8 __U, __m256i __A) {
6659   // CHECK-LABEL: @test_mm256_maskz_mov_epi32
6660   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6661   return _mm256_maskz_mov_epi32(__U, __A);
6662 }
6663 
test_mm_mask_mov_epi64(__m128i __W,__mmask8 __U,__m128i __A)6664 __m128i test_mm_mask_mov_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
6665   // CHECK-LABEL: @test_mm_mask_mov_epi64
6666   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6667   return _mm_mask_mov_epi64(__W, __U, __A);
6668 }
6669 
test_mm_maskz_mov_epi64(__mmask8 __U,__m128i __A)6670 __m128i test_mm_maskz_mov_epi64(__mmask8 __U, __m128i __A) {
6671   // CHECK-LABEL: @test_mm_maskz_mov_epi64
6672   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6673   return _mm_maskz_mov_epi64(__U, __A);
6674 }
6675 
test_mm256_mask_mov_epi64(__m256i __W,__mmask8 __U,__m256i __A)6676 __m256i test_mm256_mask_mov_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
6677   // CHECK-LABEL: @test_mm256_mask_mov_epi64
6678   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6679   return _mm256_mask_mov_epi64(__W, __U, __A);
6680 }
6681 
test_mm256_maskz_mov_epi64(__mmask8 __U,__m256i __A)6682 __m256i test_mm256_maskz_mov_epi64(__mmask8 __U, __m256i __A) {
6683   // CHECK-LABEL: @test_mm256_maskz_mov_epi64
6684   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6685   return _mm256_maskz_mov_epi64(__U, __A);
6686 }
6687 
test_mm_load_epi32(void const * __P)6688 __m128i test_mm_load_epi32(void const *__P) {
6689   // CHECK-LABEL: @test_mm_load_epi32
6690   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}
6691   return _mm_load_epi32(__P);
6692 }
6693 
test_mm_mask_load_epi32(__m128i __W,__mmask8 __U,void const * __P)6694 __m128i test_mm_mask_load_epi32(__m128i __W, __mmask8 __U, void const *__P) {
6695   // CHECK-LABEL: @test_mm_mask_load_epi32
6696   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
6697   return _mm_mask_load_epi32(__W, __U, __P);
6698 }
6699 
test_mm_maskz_load_epi32(__mmask8 __U,void const * __P)6700 __m128i test_mm_maskz_load_epi32(__mmask8 __U, void const *__P) {
6701   // CHECK-LABEL: @test_mm_maskz_load_epi32
6702   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
6703   return _mm_maskz_load_epi32(__U, __P);
6704 }
6705 
test_mm256_load_epi32(void const * __P)6706 __m256i test_mm256_load_epi32(void const *__P) {
6707   // CHECK-LABEL: @test_mm256_load_epi32
6708   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}
6709   return _mm256_load_epi32(__P);
6710 }
6711 
test_mm256_mask_load_epi32(__m256i __W,__mmask8 __U,void const * __P)6712 __m256i test_mm256_mask_load_epi32(__m256i __W, __mmask8 __U, void const *__P) {
6713   // CHECK-LABEL: @test_mm256_mask_load_epi32
6714   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
6715   return _mm256_mask_load_epi32(__W, __U, __P);
6716 }
6717 
test_mm256_maskz_load_epi32(__mmask8 __U,void const * __P)6718 __m256i test_mm256_maskz_load_epi32(__mmask8 __U, void const *__P) {
6719   // CHECK-LABEL: @test_mm256_maskz_load_epi32
6720   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
6721   return _mm256_maskz_load_epi32(__U, __P);
6722 }
6723 
test_mm_load_epi64(void const * __P)6724 __m128i test_mm_load_epi64(void const *__P) {
6725   // CHECK-LABEL: @test_mm_load_epi64
6726   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}
6727   return _mm_load_epi64(__P);
6728 }
6729 
test_mm_mask_load_epi64(__m128i __W,__mmask8 __U,void const * __P)6730 __m128i test_mm_mask_load_epi64(__m128i __W, __mmask8 __U, void const *__P) {
6731   // CHECK-LABEL: @test_mm_mask_load_epi64
6732   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
6733   return _mm_mask_load_epi64(__W, __U, __P);
6734 }
6735 
test_mm_maskz_load_epi64(__mmask8 __U,void const * __P)6736 __m128i test_mm_maskz_load_epi64(__mmask8 __U, void const *__P) {
6737   // CHECK-LABEL: @test_mm_maskz_load_epi64
6738   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
6739   return _mm_maskz_load_epi64(__U, __P);
6740 }
6741 
test_mm256_load_epi64(void const * __P)6742 __m256i test_mm256_load_epi64(void const *__P) {
6743   // CHECK-LABEL: @test_mm256_load_epi64
6744   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}
6745   return _mm256_load_epi64(__P);
6746 }
6747 
test_mm256_mask_load_epi64(__m256i __W,__mmask8 __U,void const * __P)6748 __m256i test_mm256_mask_load_epi64(__m256i __W, __mmask8 __U, void const *__P) {
6749   // CHECK-LABEL: @test_mm256_mask_load_epi64
6750   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
6751   return _mm256_mask_load_epi64(__W, __U, __P);
6752 }
6753 
test_mm256_maskz_load_epi64(__mmask8 __U,void const * __P)6754 __m256i test_mm256_maskz_load_epi64(__mmask8 __U, void const *__P) {
6755   // CHECK-LABEL: @test_mm256_maskz_load_epi64
6756   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
6757   return _mm256_maskz_load_epi64(__U, __P);
6758 }
6759 
test_mm_store_epi64(void * __P,__m128i __A)6760 void test_mm_store_epi64(void *__P, __m128i __A) {
6761   // CHECK-LABEL: @test_mm_store_epi64
6762   // CHECK: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}
6763   return _mm_store_epi64(__P, __A);
6764 }
6765 
test_mm_mask_store_epi64(void * __P,__mmask8 __U,__m128i __A)6766 void test_mm_mask_store_epi64(void *__P, __mmask8 __U, __m128i __A) {
6767   // CHECK-LABEL: @test_mm_mask_store_epi64
6768   // CHECK: @llvm.masked.store.v2i64.p0v2i64(<2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}})
6769   return _mm_mask_store_epi64(__P, __U, __A);
6770 }
6771 
test_mm256_store_epi64(void * __P,__m256i __A)6772 void test_mm256_store_epi64(void *__P, __m256i __A) {
6773   // CHECK-LABEL: @test_mm256_store_epi64
6774   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}
6775   return _mm256_store_epi64(__P, __A);
6776 }
6777 
test_mm256_mask_store_epi64(void * __P,__mmask8 __U,__m256i __A)6778 void test_mm256_mask_store_epi64(void *__P, __mmask8 __U, __m256i __A) {
6779   // CHECK-LABEL: @test_mm256_mask_store_epi64
6780   // CHECK: @llvm.masked.store.v4i64.p0v4i64(<4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}})
6781   return _mm256_mask_store_epi64(__P, __U, __A);
6782 }
6783 
test_mm_mask_movedup_pd(__m128d __W,__mmask8 __U,__m128d __A)6784 __m128d test_mm_mask_movedup_pd(__m128d __W, __mmask8 __U, __m128d __A) {
6785   // CHECK-LABEL: @test_mm_mask_movedup_pd
6786   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> zeroinitializer
6787   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
6788   return _mm_mask_movedup_pd(__W, __U, __A);
6789 }
6790 
test_mm_maskz_movedup_pd(__mmask8 __U,__m128d __A)6791 __m128d test_mm_maskz_movedup_pd(__mmask8 __U, __m128d __A) {
6792   // CHECK-LABEL: @test_mm_maskz_movedup_pd
6793   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> zeroinitializer
6794   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
6795   return _mm_maskz_movedup_pd(__U, __A);
6796 }
6797 
test_mm256_mask_movedup_pd(__m256d __W,__mmask8 __U,__m256d __A)6798 __m256d test_mm256_mask_movedup_pd(__m256d __W, __mmask8 __U, __m256d __A) {
6799   // CHECK-LABEL: @test_mm256_mask_movedup_pd
6800   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
6801   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
6802   return _mm256_mask_movedup_pd(__W, __U, __A);
6803 }
6804 
test_mm256_maskz_movedup_pd(__mmask8 __U,__m256d __A)6805 __m256d test_mm256_maskz_movedup_pd(__mmask8 __U, __m256d __A) {
6806   // CHECK-LABEL: @test_mm256_maskz_movedup_pd
6807   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
6808   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
6809   return _mm256_maskz_movedup_pd(__U, __A);
6810 }
6811 
test_mm_mask_set1_epi32(__m128i __O,__mmask8 __M)6812 __m128i test_mm_mask_set1_epi32(__m128i __O, __mmask8 __M) {
6813   // CHECK-LABEL: @test_mm_mask_set1_epi32
6814   // CHECK: insertelement <4 x i32> undef, i32 %{{.*}}, i32 0
6815   // CHECK: insertelement <4 x i32> %{{.*}}32 1
6816   // CHECK: insertelement <4 x i32> %{{.*}}32 2
6817   // CHECK: insertelement <4 x i32> %{{.*}}32 3
6818   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6819   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6820   return _mm_mask_set1_epi32(__O, __M, 5);
6821 }
6822 
test_mm_maskz_set1_epi32(__mmask8 __M)6823 __m128i test_mm_maskz_set1_epi32(__mmask8 __M) {
6824   // CHECK-LABEL: @test_mm_maskz_set1_epi32
6825   // CHECK: insertelement <4 x i32> undef, i32 %{{.*}}, i32 0
6826   // CHECK: insertelement <4 x i32> %{{.*}}32 1
6827   // CHECK: insertelement <4 x i32> %{{.*}}32 2
6828   // CHECK: insertelement <4 x i32> %{{.*}}32 3
6829   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6830   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6831   return _mm_maskz_set1_epi32(__M, 5);
6832 }
6833 
test_mm256_mask_set1_epi32(__m256i __O,__mmask8 __M)6834 __m256i test_mm256_mask_set1_epi32(__m256i __O, __mmask8 __M) {
6835   // CHECK-LABEL: @test_mm256_mask_set1_epi32
6836   // CHECK:  insertelement <8 x i32> undef, i32 %{{.*}}, i32 0
6837   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 1
6838   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 2
6839   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 3
6840   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 4
6841   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 5
6842   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 6
6843   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 7
6844   // CHECK:  select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6845   return _mm256_mask_set1_epi32(__O, __M, 5);
6846 }
6847 
test_mm256_maskz_set1_epi32(__mmask8 __M)6848 __m256i test_mm256_maskz_set1_epi32(__mmask8 __M) {
6849   // CHECK-LABEL: @test_mm256_maskz_set1_epi32
6850   // CHECK:  insertelement <8 x i32> undef, i32 %{{.*}}, i32 0
6851   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 1
6852   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 2
6853   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 3
6854   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 4
6855   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 5
6856   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 6
6857   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 7
6858   // CHECK:  select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6859   return _mm256_maskz_set1_epi32(__M, 5);
6860 }
6861 
test_mm_mask_set1_epi64(__m128i __O,__mmask8 __M,long long __A)6862 __m128i test_mm_mask_set1_epi64(__m128i __O, __mmask8 __M, long long __A) {
6863   // CHECK-LABEL: @test_mm_mask_set1_epi64
6864   // CHECK: insertelement <2 x i64> undef, i64 %{{.*}}, i32 0
6865   // CHECK: insertelement <2 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6866   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
6867   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6868   return _mm_mask_set1_epi64(__O, __M, __A);
6869 }
6870 
test_mm_maskz_set1_epi64(__mmask8 __M,long long __A)6871 __m128i test_mm_maskz_set1_epi64(__mmask8 __M, long long __A) {
6872   // CHECK-LABEL: @test_mm_maskz_set1_epi64
6873   // CHECK: insertelement <2 x i64> undef, i64 %{{.*}}, i32 0
6874   // CHECK: insertelement <2 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6875   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
6876   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6877   return _mm_maskz_set1_epi64(__M, __A);
6878 }
6879 
test_mm256_mask_set1_epi64(__m256i __O,__mmask8 __M,long long __A)6880 __m256i test_mm256_mask_set1_epi64(__m256i __O, __mmask8 __M, long long __A) {
6881   // CHECK-LABEL: @test_mm256_mask_set1_epi64
6882   // CHECK: insertelement <4 x i64> undef, i64 %{{.*}}, i32 0
6883   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6884   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 2
6885   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 3
6886   // CHECK:  shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6887   // CHECK:  select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6888   return _mm256_mask_set1_epi64(__O, __M, __A);
6889 }
6890 
test_mm256_maskz_set1_epi64(__mmask8 __M,long long __A)6891 __m256i test_mm256_maskz_set1_epi64(__mmask8 __M, long long __A) {
6892   // CHECK-LABEL: @test_mm256_maskz_set1_epi64
6893   // CHECK: insertelement <4 x i64> undef, i64 %{{.*}}, i32 0
6894   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6895   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 2
6896   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 3
6897   // CHECK:  shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6898   // CHECK:  select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6899   return _mm256_maskz_set1_epi64(__M, __A);
6900 }
6901 
test_mm_fixupimm_pd(__m128d __A,__m128d __B,__m128i __C)6902 __m128d test_mm_fixupimm_pd(__m128d __A, __m128d __B, __m128i __C) {
6903   // CHECK-LABEL: @test_mm_fixupimm_pd
6904   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.128
6905   return _mm_fixupimm_pd(__A, __B, __C, 5);
6906 }
6907 
test_mm_mask_fixupimm_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128i __C)6908 __m128d test_mm_mask_fixupimm_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128i __C) {
6909   // CHECK-LABEL: @test_mm_mask_fixupimm_pd
6910   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.128
6911   return _mm_mask_fixupimm_pd(__A, __U, __B, __C, 5);
6912 }
6913 
test_mm_maskz_fixupimm_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128i __C)6914 __m128d test_mm_maskz_fixupimm_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128i __C) {
6915   // CHECK-LABEL: @test_mm_maskz_fixupimm_pd
6916   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.128
6917   return _mm_maskz_fixupimm_pd(__U, __A, __B, __C, 5);
6918 }
6919 
test_mm256_fixupimm_pd(__m256d __A,__m256d __B,__m256i __C)6920 __m256d test_mm256_fixupimm_pd(__m256d __A, __m256d __B, __m256i __C) {
6921   // CHECK-LABEL: @test_mm256_fixupimm_pd
6922   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.256
6923   return _mm256_fixupimm_pd(__A, __B, __C, 5);
6924 }
6925 
test_mm256_mask_fixupimm_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256i __C)6926 __m256d test_mm256_mask_fixupimm_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256i __C) {
6927   // CHECK-LABEL: @test_mm256_mask_fixupimm_pd
6928   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.256
6929   return _mm256_mask_fixupimm_pd(__A, __U, __B, __C, 5);
6930 }
6931 
test_mm256_maskz_fixupimm_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256i __C)6932 __m256d test_mm256_maskz_fixupimm_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256i __C) {
6933   // CHECK-LABEL: @test_mm256_maskz_fixupimm_pd
6934   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.256
6935   return _mm256_maskz_fixupimm_pd(__U, __A, __B, __C, 5);
6936 }
6937 
test_mm_fixupimm_ps(__m128 __A,__m128 __B,__m128i __C)6938 __m128 test_mm_fixupimm_ps(__m128 __A, __m128 __B, __m128i __C) {
6939   // CHECK-LABEL: @test_mm_fixupimm_ps
6940   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.128
6941   return _mm_fixupimm_ps(__A, __B, __C, 5);
6942 }
6943 
test_mm_mask_fixupimm_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128i __C)6944 __m128 test_mm_mask_fixupimm_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128i __C) {
6945   // CHECK-LABEL: @test_mm_mask_fixupimm_ps
6946   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.128
6947   return _mm_mask_fixupimm_ps(__A, __U, __B, __C, 5);
6948 }
6949 
test_mm_maskz_fixupimm_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128i __C)6950 __m128 test_mm_maskz_fixupimm_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128i __C) {
6951   // CHECK-LABEL: @test_mm_maskz_fixupimm_ps
6952   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.128
6953   return _mm_maskz_fixupimm_ps(__U, __A, __B, __C, 5);
6954 }
6955 
test_mm256_fixupimm_ps(__m256 __A,__m256 __B,__m256i __C)6956 __m256 test_mm256_fixupimm_ps(__m256 __A, __m256 __B, __m256i __C) {
6957   // CHECK-LABEL: @test_mm256_fixupimm_ps
6958   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.256
6959   return _mm256_fixupimm_ps(__A, __B, __C, 5);
6960 }
6961 
test_mm256_mask_fixupimm_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256i __C)6962 __m256 test_mm256_mask_fixupimm_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256i __C) {
6963   // CHECK-LABEL: @test_mm256_mask_fixupimm_ps
6964   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.256
6965   return _mm256_mask_fixupimm_ps(__A, __U, __B, __C, 5);
6966 }
6967 
test_mm256_maskz_fixupimm_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256i __C)6968 __m256 test_mm256_maskz_fixupimm_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256i __C) {
6969   // CHECK-LABEL: @test_mm256_maskz_fixupimm_ps
6970   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.256
6971   return _mm256_maskz_fixupimm_ps(__U, __A, __B, __C, 5);
6972 }
6973 
test_mm_mask_load_pd(__m128d __W,__mmask8 __U,void const * __P)6974 __m128d test_mm_mask_load_pd(__m128d __W, __mmask8 __U, void const *__P) {
6975   // CHECK-LABEL: @test_mm_mask_load_pd
6976   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
6977   return _mm_mask_load_pd(__W, __U, __P);
6978 }
6979 
test_mm_maskz_load_pd(__mmask8 __U,void const * __P)6980 __m128d test_mm_maskz_load_pd(__mmask8 __U, void const *__P) {
6981   // CHECK-LABEL: @test_mm_maskz_load_pd
6982   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
6983   return _mm_maskz_load_pd(__U, __P);
6984 }
6985 
test_mm256_mask_load_pd(__m256d __W,__mmask8 __U,void const * __P)6986 __m256d test_mm256_mask_load_pd(__m256d __W, __mmask8 __U, void const *__P) {
6987   // CHECK-LABEL: @test_mm256_mask_load_pd
6988   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
6989   return _mm256_mask_load_pd(__W, __U, __P);
6990 }
6991 
test_mm256_maskz_load_pd(__mmask8 __U,void const * __P)6992 __m256d test_mm256_maskz_load_pd(__mmask8 __U, void const *__P) {
6993   // CHECK-LABEL: @test_mm256_maskz_load_pd
6994   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
6995   return _mm256_maskz_load_pd(__U, __P);
6996 }
6997 
test_mm_mask_load_ps(__m128 __W,__mmask8 __U,void const * __P)6998 __m128 test_mm_mask_load_ps(__m128 __W, __mmask8 __U, void const *__P) {
6999   // CHECK-LABEL: @test_mm_mask_load_ps
7000   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
7001   return _mm_mask_load_ps(__W, __U, __P);
7002 }
7003 
test_mm_maskz_load_ps(__mmask8 __U,void const * __P)7004 __m128 test_mm_maskz_load_ps(__mmask8 __U, void const *__P) {
7005   // CHECK-LABEL: @test_mm_maskz_load_ps
7006   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
7007   return _mm_maskz_load_ps(__U, __P);
7008 }
7009 
test_mm256_mask_load_ps(__m256 __W,__mmask8 __U,void const * __P)7010 __m256 test_mm256_mask_load_ps(__m256 __W, __mmask8 __U, void const *__P) {
7011   // CHECK-LABEL: @test_mm256_mask_load_ps
7012   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
7013   return _mm256_mask_load_ps(__W, __U, __P);
7014 }
7015 
test_mm256_maskz_load_ps(__mmask8 __U,void const * __P)7016 __m256 test_mm256_maskz_load_ps(__mmask8 __U, void const *__P) {
7017   // CHECK-LABEL: @test_mm256_maskz_load_ps
7018   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
7019   return _mm256_maskz_load_ps(__U, __P);
7020 }
7021 
test_mm_loadu_epi64(void const * __P)7022 __m128i test_mm_loadu_epi64(void const *__P) {
7023   // CHECK-LABEL: @test_mm_loadu_epi64
7024   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
7025   return _mm_loadu_epi64(__P);
7026 }
7027 
test_mm_mask_loadu_epi64(__m128i __W,__mmask8 __U,void const * __P)7028 __m128i test_mm_mask_loadu_epi64(__m128i __W, __mmask8 __U, void const *__P) {
7029   // CHECK-LABEL: @test_mm_mask_loadu_epi64
7030   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
7031   return _mm_mask_loadu_epi64(__W, __U, __P);
7032 }
7033 
test_mm_maskz_loadu_epi64(__mmask8 __U,void const * __P)7034 __m128i test_mm_maskz_loadu_epi64(__mmask8 __U, void const *__P) {
7035   // CHECK-LABEL: @test_mm_maskz_loadu_epi64
7036   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
7037   return _mm_maskz_loadu_epi64(__U, __P);
7038 }
7039 
test_mm256_loadu_epi64(void const * __P)7040 __m256i test_mm256_loadu_epi64(void const *__P) {
7041   // CHECK-LABEL: @test_mm256_loadu_epi64
7042   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}, align 1{{$}}
7043   return _mm256_loadu_epi64(__P);
7044 }
7045 
test_mm256_mask_loadu_epi64(__m256i __W,__mmask8 __U,void const * __P)7046 __m256i test_mm256_mask_loadu_epi64(__m256i __W, __mmask8 __U, void const *__P) {
7047   // CHECK-LABEL: @test_mm256_mask_loadu_epi64
7048   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
7049   return _mm256_mask_loadu_epi64(__W, __U, __P);
7050 }
7051 
test_mm256_maskz_loadu_epi64(__mmask8 __U,void const * __P)7052 __m256i test_mm256_maskz_loadu_epi64(__mmask8 __U, void const *__P) {
7053   // CHECK-LABEL: @test_mm256_maskz_loadu_epi64
7054   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
7055   return _mm256_maskz_loadu_epi64(__U, __P);
7056 }
7057 
test_mm_loadu_epi32(void const * __P)7058 __m128i test_mm_loadu_epi32(void const *__P) {
7059   // CHECK-LABEL: @test_mm_loadu_epi32
7060   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
7061   return _mm_loadu_epi32(__P);
7062 }
7063 
test_mm_mask_loadu_epi32(__m128i __W,__mmask8 __U,void const * __P)7064 __m128i test_mm_mask_loadu_epi32(__m128i __W, __mmask8 __U, void const *__P) {
7065   // CHECK-LABEL: @test_mm_mask_loadu_epi32
7066   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
7067   return _mm_mask_loadu_epi32(__W, __U, __P);
7068 }
7069 
test_mm_maskz_loadu_epi32(__mmask8 __U,void const * __P)7070 __m128i test_mm_maskz_loadu_epi32(__mmask8 __U, void const *__P) {
7071   // CHECK-LABEL: @test_mm_maskz_loadu_epi32
7072   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
7073   return _mm_maskz_loadu_epi32(__U, __P);
7074 }
7075 
test_mm256_loadu_epi32(void const * __P)7076 __m256i test_mm256_loadu_epi32(void const *__P) {
7077   // CHECK-LABEL: @test_mm256_loadu_epi32
7078   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}, align 1{{$}}
7079   return _mm256_loadu_epi32(__P);
7080 }
7081 
test_mm256_mask_loadu_epi32(__m256i __W,__mmask8 __U,void const * __P)7082 __m256i test_mm256_mask_loadu_epi32(__m256i __W, __mmask8 __U, void const *__P) {
7083   // CHECK-LABEL: @test_mm256_mask_loadu_epi32
7084   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
7085   return _mm256_mask_loadu_epi32(__W, __U, __P);
7086 }
7087 
test_mm256_maskz_loadu_epi32(__mmask8 __U,void const * __P)7088 __m256i test_mm256_maskz_loadu_epi32(__mmask8 __U, void const *__P) {
7089   // CHECK-LABEL: @test_mm256_maskz_loadu_epi32
7090   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
7091   return _mm256_maskz_loadu_epi32(__U, __P);
7092 }
7093 
test_mm_mask_loadu_pd(__m128d __W,__mmask8 __U,void const * __P)7094 __m128d test_mm_mask_loadu_pd(__m128d __W, __mmask8 __U, void const *__P) {
7095   // CHECK-LABEL: @test_mm_mask_loadu_pd
7096   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
7097   return _mm_mask_loadu_pd(__W, __U, __P);
7098 }
7099 
test_mm_maskz_loadu_pd(__mmask8 __U,void const * __P)7100 __m128d test_mm_maskz_loadu_pd(__mmask8 __U, void const *__P) {
7101   // CHECK-LABEL: @test_mm_maskz_loadu_pd
7102   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
7103   return _mm_maskz_loadu_pd(__U, __P);
7104 }
7105 
test_mm256_mask_loadu_pd(__m256d __W,__mmask8 __U,void const * __P)7106 __m256d test_mm256_mask_loadu_pd(__m256d __W, __mmask8 __U, void const *__P) {
7107   // CHECK-LABEL: @test_mm256_mask_loadu_pd
7108   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
7109   return _mm256_mask_loadu_pd(__W, __U, __P);
7110 }
7111 
test_mm256_maskz_loadu_pd(__mmask8 __U,void const * __P)7112 __m256d test_mm256_maskz_loadu_pd(__mmask8 __U, void const *__P) {
7113   // CHECK-LABEL: @test_mm256_maskz_loadu_pd
7114   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
7115   return _mm256_maskz_loadu_pd(__U, __P);
7116 }
7117 
test_mm_mask_loadu_ps(__m128 __W,__mmask8 __U,void const * __P)7118 __m128 test_mm_mask_loadu_ps(__m128 __W, __mmask8 __U, void const *__P) {
7119   // CHECK-LABEL: @test_mm_mask_loadu_ps
7120   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
7121   return _mm_mask_loadu_ps(__W, __U, __P);
7122 }
7123 
test_mm_maskz_loadu_ps(__mmask8 __U,void const * __P)7124 __m128 test_mm_maskz_loadu_ps(__mmask8 __U, void const *__P) {
7125   // CHECK-LABEL: @test_mm_maskz_loadu_ps
7126   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
7127   return _mm_maskz_loadu_ps(__U, __P);
7128 }
7129 
test_mm256_mask_loadu_ps(__m256 __W,__mmask8 __U,void const * __P)7130 __m256 test_mm256_mask_loadu_ps(__m256 __W, __mmask8 __U, void const *__P) {
7131   // CHECK-LABEL: @test_mm256_mask_loadu_ps
7132   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
7133   return _mm256_mask_loadu_ps(__W, __U, __P);
7134 }
7135 
test_mm256_maskz_loadu_ps(__mmask8 __U,void const * __P)7136 __m256 test_mm256_maskz_loadu_ps(__mmask8 __U, void const *__P) {
7137   // CHECK-LABEL: @test_mm256_maskz_loadu_ps
7138   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
7139   return _mm256_maskz_loadu_ps(__U, __P);
7140 }
7141 
test_mm_mask_store_pd(void * __P,__mmask8 __U,__m128d __A)7142 void test_mm_mask_store_pd(void *__P, __mmask8 __U, __m128d __A) {
7143   // CHECK-LABEL: @test_mm_mask_store_pd
7144   // CHECK: @llvm.masked.store.v2f64.p0v2f64(<2 x double> %{{.*}}, <2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}})
7145   return _mm_mask_store_pd(__P, __U, __A);
7146 }
7147 
test_mm256_mask_store_pd(void * __P,__mmask8 __U,__m256d __A)7148 void test_mm256_mask_store_pd(void *__P, __mmask8 __U, __m256d __A) {
7149   // CHECK-LABEL: @test_mm256_mask_store_pd
7150   // CHECK: @llvm.masked.store.v4f64.p0v4f64(<4 x double> %{{.*}}, <4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}})
7151   return _mm256_mask_store_pd(__P, __U, __A);
7152 }
7153 
test_mm_mask_store_ps(void * __P,__mmask8 __U,__m128 __A)7154 void test_mm_mask_store_ps(void *__P, __mmask8 __U, __m128 __A) {
7155   // CHECK-LABEL: @test_mm_mask_store_ps
7156   // CHECK: @llvm.masked.store.v4f32.p0v4f32(<4 x float> %{{.*}}, <4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}})
7157   return _mm_mask_store_ps(__P, __U, __A);
7158 }
7159 
test_mm256_mask_store_ps(void * __P,__mmask8 __U,__m256 __A)7160 void test_mm256_mask_store_ps(void *__P, __mmask8 __U, __m256 __A) {
7161   // CHECK-LABEL: @test_mm256_mask_store_ps
7162   // CHECK: @llvm.masked.store.v8f32.p0v8f32(<8 x float> %{{.*}}, <8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}})
7163   return _mm256_mask_store_ps(__P, __U, __A);
7164 }
7165 
test_mm_storeu_epi64(void * __p,__m128i __a)7166 void test_mm_storeu_epi64(void *__p, __m128i __a) {
7167   // check-label: @test_mm_storeu_epi64
7168   // check: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1{{$}}
7169   return _mm_storeu_epi64(__p, __a);
7170 }
7171 
test_mm_mask_storeu_epi64(void * __P,__mmask8 __U,__m128i __A)7172 void test_mm_mask_storeu_epi64(void *__P, __mmask8 __U, __m128i __A) {
7173   // CHECK-LABEL: @test_mm_mask_storeu_epi64
7174   // CHECK: @llvm.masked.store.v2i64.p0v2i64(<2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}})
7175   return _mm_mask_storeu_epi64(__P, __U, __A);
7176 }
7177 
test_mm256_storeu_epi64(void * __P,__m256i __A)7178 void test_mm256_storeu_epi64(void *__P, __m256i __A) {
7179   // CHECK-LABEL: @test_mm256_storeu_epi64
7180   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, align 1{{$}}
7181   return _mm256_storeu_epi64(__P, __A);
7182 }
7183 
test_mm256_mask_storeu_epi64(void * __P,__mmask8 __U,__m256i __A)7184 void test_mm256_mask_storeu_epi64(void *__P, __mmask8 __U, __m256i __A) {
7185   // CHECK-LABEL: @test_mm256_mask_storeu_epi64
7186   // CHECK: @llvm.masked.store.v4i64.p0v4i64(<4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7187   return _mm256_mask_storeu_epi64(__P, __U, __A);
7188 }
7189 
test_mm_storeu_epi32(void * __P,__m128i __A)7190 void test_mm_storeu_epi32(void *__P, __m128i __A) {
7191   // CHECK-LABEL: @test_mm_storeu_epi32
7192   // CHECK: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1{{$}}
7193   return _mm_storeu_epi32(__P, __A);
7194 }
7195 
test_mm_mask_storeu_epi32(void * __P,__mmask8 __U,__m128i __A)7196 void test_mm_mask_storeu_epi32(void *__P, __mmask8 __U, __m128i __A) {
7197   // CHECK-LABEL: @test_mm_mask_storeu_epi32
7198   // CHECK: @llvm.masked.store.v4i32.p0v4i32(<4 x i32> %{{.*}}, <4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7199   return _mm_mask_storeu_epi32(__P, __U, __A);
7200 }
7201 
test_mm256_storeu_epi32(void * __P,__m256i __A)7202 void test_mm256_storeu_epi32(void *__P, __m256i __A) {
7203   // CHECK-LABEL: @test_mm256_storeu_epi32
7204   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, align 1{{$}}
7205   return _mm256_storeu_epi32(__P, __A);
7206 }
7207 
test_mm256_mask_storeu_epi32(void * __P,__mmask8 __U,__m256i __A)7208 void test_mm256_mask_storeu_epi32(void *__P, __mmask8 __U, __m256i __A) {
7209   // CHECK-LABEL: @test_mm256_mask_storeu_epi32
7210   // CHECK: @llvm.masked.store.v8i32.p0v8i32(<8 x i32> %{{.*}}, <8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
7211   return _mm256_mask_storeu_epi32(__P, __U, __A);
7212 }
7213 
test_mm_mask_storeu_pd(void * __P,__mmask8 __U,__m128d __A)7214 void test_mm_mask_storeu_pd(void *__P, __mmask8 __U, __m128d __A) {
7215   // CHECK-LABEL: @test_mm_mask_storeu_pd
7216   // CHECK: @llvm.masked.store.v2f64.p0v2f64(<2 x double> %{{.*}}, <2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}})
7217   return _mm_mask_storeu_pd(__P, __U, __A);
7218 }
7219 
test_mm256_mask_storeu_pd(void * __P,__mmask8 __U,__m256d __A)7220 void test_mm256_mask_storeu_pd(void *__P, __mmask8 __U, __m256d __A) {
7221   // CHECK-LABEL: @test_mm256_mask_storeu_pd
7222   // CHECK: @llvm.masked.store.v4f64.p0v4f64(<4 x double> %{{.*}}, <4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7223   return _mm256_mask_storeu_pd(__P, __U, __A);
7224 }
7225 
test_mm_mask_storeu_ps(void * __P,__mmask8 __U,__m128 __A)7226 void test_mm_mask_storeu_ps(void *__P, __mmask8 __U, __m128 __A) {
7227   // CHECK-LABEL: @test_mm_mask_storeu_ps
7228   // CHECK: @llvm.masked.store.v4f32.p0v4f32(<4 x float> %{{.*}}, <4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7229   return _mm_mask_storeu_ps(__P, __U, __A);
7230 }
7231 
test_mm256_mask_storeu_ps(void * __P,__mmask8 __U,__m256 __A)7232 void test_mm256_mask_storeu_ps(void *__P, __mmask8 __U, __m256 __A) {
7233   // CHECK-LABEL: @test_mm256_mask_storeu_ps
7234   // CHECK: @llvm.masked.store.v8f32.p0v8f32(<8 x float> %{{.*}}, <8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
7235   return _mm256_mask_storeu_ps(__P, __U, __A);
7236 }
7237 
test_mm_mask_unpackhi_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)7238 __m128d test_mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
7239   // CHECK-LABEL: @test_mm_mask_unpackhi_pd
7240   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
7241   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7242   return _mm_mask_unpackhi_pd(__W, __U, __A, __B);
7243 }
7244 
test_mm_maskz_unpackhi_pd(__mmask8 __U,__m128d __A,__m128d __B)7245 __m128d test_mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B) {
7246   // CHECK-LABEL: @test_mm_maskz_unpackhi_pd
7247   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
7248   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7249   return _mm_maskz_unpackhi_pd(__U, __A, __B);
7250 }
7251 
test_mm256_mask_unpackhi_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)7252 __m256d test_mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
7253   // CHECK-LABEL: @test_mm256_mask_unpackhi_pd
7254   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7255   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7256   return _mm256_mask_unpackhi_pd(__W, __U, __A, __B);
7257 }
7258 
test_mm256_maskz_unpackhi_pd(__mmask8 __U,__m256d __A,__m256d __B)7259 __m256d test_mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B) {
7260   // CHECK-LABEL: @test_mm256_maskz_unpackhi_pd
7261   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7262   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7263   return _mm256_maskz_unpackhi_pd(__U, __A, __B);
7264 }
7265 
test_mm_mask_unpackhi_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)7266 __m128 test_mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
7267   // CHECK-LABEL: @test_mm_mask_unpackhi_ps
7268   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7269   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}} <4 x float> %{{.*}}
7270   return _mm_mask_unpackhi_ps(__W, __U, __A, __B);
7271 }
7272 
test_mm_maskz_unpackhi_ps(__mmask8 __U,__m128 __A,__m128 __B)7273 __m128 test_mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B) {
7274   // CHECK-LABEL: @test_mm_maskz_unpackhi_ps
7275   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7276   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}} <4 x float> %{{.*}}
7277   return _mm_maskz_unpackhi_ps(__U, __A, __B);
7278 }
7279 
test_mm256_mask_unpackhi_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)7280 __m256 test_mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
7281   // CHECK-LABEL: @test_mm256_mask_unpackhi_ps
7282   // 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>
7283   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7284   return _mm256_mask_unpackhi_ps(__W, __U, __A, __B);
7285 }
7286 
test_mm256_maskz_unpackhi_ps(__mmask8 __U,__m256 __A,__m256 __B)7287 __m256 test_mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B) {
7288   // CHECK-LABEL: @test_mm256_maskz_unpackhi_ps
7289   // 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>
7290   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7291   return _mm256_maskz_unpackhi_ps(__U, __A, __B);
7292 }
7293 
test_mm_mask_unpacklo_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)7294 __m128d test_mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
7295   // CHECK-LABEL: @test_mm_mask_unpacklo_pd
7296   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 0, i32 2>
7297   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7298   return _mm_mask_unpacklo_pd(__W, __U, __A, __B);
7299 }
7300 
test_mm_maskz_unpacklo_pd(__mmask8 __U,__m128d __A,__m128d __B)7301 __m128d test_mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B) {
7302   // CHECK-LABEL: @test_mm_maskz_unpacklo_pd
7303   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 0, i32 2>
7304   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7305   return _mm_maskz_unpacklo_pd(__U, __A, __B);
7306 }
7307 
test_mm256_mask_unpacklo_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)7308 __m256d test_mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
7309   // CHECK-LABEL: @test_mm256_mask_unpacklo_pd
7310   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7311   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7312   return _mm256_mask_unpacklo_pd(__W, __U, __A, __B);
7313 }
7314 
test_mm256_maskz_unpacklo_pd(__mmask8 __U,__m256d __A,__m256d __B)7315 __m256d test_mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B) {
7316   // CHECK-LABEL: @test_mm256_maskz_unpacklo_pd
7317   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7318   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7319   return _mm256_maskz_unpacklo_pd(__U, __A, __B);
7320 }
7321 
test_mm_mask_unpacklo_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)7322 __m128 test_mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
7323   // CHECK-LABEL: @test_mm_mask_unpacklo_ps
7324   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7325   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
7326   return _mm_mask_unpacklo_ps(__W, __U, __A, __B);
7327 }
7328 
test_mm_maskz_unpacklo_ps(__mmask8 __U,__m128 __A,__m128 __B)7329 __m128 test_mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B) {
7330   // CHECK-LABEL: @test_mm_maskz_unpacklo_ps
7331   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7332   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
7333   return _mm_maskz_unpacklo_ps(__U, __A, __B);
7334 }
7335 
test_mm256_mask_unpacklo_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)7336 __m256 test_mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
7337   // CHECK-LABEL: @test_mm256_mask_unpacklo_ps
7338   // 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>
7339   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7340   return _mm256_mask_unpacklo_ps(__W, __U, __A, __B);
7341 }
7342 
test_mm256_maskz_unpacklo_ps(__mmask8 __U,__m256 __A,__m256 __B)7343 __m256 test_mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B) {
7344   // CHECK-LABEL: @test_mm256_maskz_unpacklo_ps
7345   // 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>
7346   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7347   return _mm256_maskz_unpacklo_ps(__U, __A, __B);
7348 }
7349 
test_mm_rcp14_pd(__m128d __A)7350 __m128d test_mm_rcp14_pd(__m128d __A) {
7351   // CHECK-LABEL: @test_mm_rcp14_pd
7352   // CHECK: @llvm.x86.avx512.rcp14.pd.128
7353   return _mm_rcp14_pd(__A);
7354 }
7355 
test_mm_mask_rcp14_pd(__m128d __W,__mmask8 __U,__m128d __A)7356 __m128d test_mm_mask_rcp14_pd(__m128d __W, __mmask8 __U, __m128d __A) {
7357   // CHECK-LABEL: @test_mm_mask_rcp14_pd
7358   // CHECK: @llvm.x86.avx512.rcp14.pd.128
7359   return _mm_mask_rcp14_pd(__W, __U, __A);
7360 }
7361 
test_mm_maskz_rcp14_pd(__mmask8 __U,__m128d __A)7362 __m128d test_mm_maskz_rcp14_pd(__mmask8 __U, __m128d __A) {
7363   // CHECK-LABEL: @test_mm_maskz_rcp14_pd
7364   // CHECK: @llvm.x86.avx512.rcp14.pd.128
7365   return _mm_maskz_rcp14_pd(__U, __A);
7366 }
7367 
test_mm256_rcp14_pd(__m256d __A)7368 __m256d test_mm256_rcp14_pd(__m256d __A) {
7369   // CHECK-LABEL: @test_mm256_rcp14_pd
7370   // CHECK: @llvm.x86.avx512.rcp14.pd.256
7371   return _mm256_rcp14_pd(__A);
7372 }
7373 
test_mm256_mask_rcp14_pd(__m256d __W,__mmask8 __U,__m256d __A)7374 __m256d test_mm256_mask_rcp14_pd(__m256d __W, __mmask8 __U, __m256d __A) {
7375   // CHECK-LABEL: @test_mm256_mask_rcp14_pd
7376   // CHECK: @llvm.x86.avx512.rcp14.pd.256
7377   return _mm256_mask_rcp14_pd(__W, __U, __A);
7378 }
7379 
test_mm256_maskz_rcp14_pd(__mmask8 __U,__m256d __A)7380 __m256d test_mm256_maskz_rcp14_pd(__mmask8 __U, __m256d __A) {
7381   // CHECK-LABEL: @test_mm256_maskz_rcp14_pd
7382   // CHECK: @llvm.x86.avx512.rcp14.pd.256
7383   return _mm256_maskz_rcp14_pd(__U, __A);
7384 }
7385 
test_mm_rcp14_ps(__m128 __A)7386 __m128 test_mm_rcp14_ps(__m128 __A) {
7387   // CHECK-LABEL: @test_mm_rcp14_ps
7388   // CHECK: @llvm.x86.avx512.rcp14.ps.128
7389   return _mm_rcp14_ps(__A);
7390 }
7391 
test_mm_mask_rcp14_ps(__m128 __W,__mmask8 __U,__m128 __A)7392 __m128 test_mm_mask_rcp14_ps(__m128 __W, __mmask8 __U, __m128 __A) {
7393   // CHECK-LABEL: @test_mm_mask_rcp14_ps
7394   // CHECK: @llvm.x86.avx512.rcp14.ps.128
7395   return _mm_mask_rcp14_ps(__W, __U, __A);
7396 }
7397 
test_mm_maskz_rcp14_ps(__mmask8 __U,__m128 __A)7398 __m128 test_mm_maskz_rcp14_ps(__mmask8 __U, __m128 __A) {
7399   // CHECK-LABEL: @test_mm_maskz_rcp14_ps
7400   // CHECK: @llvm.x86.avx512.rcp14.ps.128
7401   return _mm_maskz_rcp14_ps(__U, __A);
7402 }
7403 
test_mm256_rcp14_ps(__m256 __A)7404 __m256 test_mm256_rcp14_ps(__m256 __A) {
7405   // CHECK-LABEL: @test_mm256_rcp14_ps
7406   // CHECK: @llvm.x86.avx512.rcp14.ps.256
7407   return _mm256_rcp14_ps(__A);
7408 }
7409 
test_mm256_mask_rcp14_ps(__m256 __W,__mmask8 __U,__m256 __A)7410 __m256 test_mm256_mask_rcp14_ps(__m256 __W, __mmask8 __U, __m256 __A) {
7411   // CHECK-LABEL: @test_mm256_mask_rcp14_ps
7412   // CHECK: @llvm.x86.avx512.rcp14.ps.256
7413   return _mm256_mask_rcp14_ps(__W, __U, __A);
7414 }
7415 
test_mm256_maskz_rcp14_ps(__mmask8 __U,__m256 __A)7416 __m256 test_mm256_maskz_rcp14_ps(__mmask8 __U, __m256 __A) {
7417   // CHECK-LABEL: @test_mm256_maskz_rcp14_ps
7418   // CHECK: @llvm.x86.avx512.rcp14.ps.256
7419   return _mm256_maskz_rcp14_ps(__U, __A);
7420 }
7421 
test_mm_mask_permute_pd(__m128d __W,__mmask8 __U,__m128d __X)7422 __m128d test_mm_mask_permute_pd(__m128d __W, __mmask8 __U, __m128d __X) {
7423   // CHECK-LABEL: @test_mm_mask_permute_pd
7424   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <2 x i32> <i32 1, i32 0>
7425   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7426   return _mm_mask_permute_pd(__W, __U, __X, 1);
7427 }
7428 
test_mm_maskz_permute_pd(__mmask8 __U,__m128d __X)7429 __m128d test_mm_maskz_permute_pd(__mmask8 __U, __m128d __X) {
7430   // CHECK-LABEL: @test_mm_maskz_permute_pd
7431   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <2 x i32> <i32 1, i32 0>
7432   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7433   return _mm_maskz_permute_pd(__U, __X, 1);
7434 }
7435 
test_mm256_mask_permute_pd(__m256d __W,__mmask8 __U,__m256d __X)7436 __m256d test_mm256_mask_permute_pd(__m256d __W, __mmask8 __U, __m256d __X) {
7437   // CHECK-LABEL: @test_mm256_mask_permute_pd
7438   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
7439   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7440   return _mm256_mask_permute_pd(__W, __U, __X, 5);
7441 }
7442 
test_mm256_maskz_permute_pd(__mmask8 __U,__m256d __X)7443 __m256d test_mm256_maskz_permute_pd(__mmask8 __U, __m256d __X) {
7444   // CHECK-LABEL: @test_mm256_maskz_permute_pd
7445   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
7446   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7447   return _mm256_maskz_permute_pd(__U, __X, 5);
7448 }
7449 
test_mm_mask_permute_ps(__m128 __W,__mmask8 __U,__m128 __X)7450 __m128 test_mm_mask_permute_ps(__m128 __W, __mmask8 __U, __m128 __X) {
7451   // CHECK-LABEL: @test_mm_mask_permute_ps
7452   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
7453   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7454   return _mm_mask_permute_ps(__W, __U, __X, 0x1b);
7455 }
7456 
test_mm_maskz_permute_ps(__mmask8 __U,__m128 __X)7457 __m128 test_mm_maskz_permute_ps(__mmask8 __U, __m128 __X) {
7458   // CHECK-LABEL: @test_mm_maskz_permute_ps
7459   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
7460   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7461   return _mm_maskz_permute_ps(__U, __X, 0x1b);
7462 }
7463 
test_mm256_mask_permute_ps(__m256 __W,__mmask8 __U,__m256 __X)7464 __m256 test_mm256_mask_permute_ps(__m256 __W, __mmask8 __U, __m256 __X) {
7465   // CHECK-LABEL: @test_mm256_mask_permute_ps
7466   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4>
7467   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7468   return _mm256_mask_permute_ps(__W, __U, __X, 0x1b);
7469 }
7470 
test_mm256_maskz_permute_ps(__mmask8 __U,__m256 __X)7471 __m256 test_mm256_maskz_permute_ps(__mmask8 __U, __m256 __X) {
7472   // CHECK-LABEL: @test_mm256_maskz_permute_ps
7473   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4>
7474   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7475   return _mm256_maskz_permute_ps(__U, __X, 0x1b);
7476 }
7477 
test_mm_mask_permutevar_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128i __C)7478 __m128d test_mm_mask_permutevar_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128i __C) {
7479   // CHECK-LABEL: @test_mm_mask_permutevar_pd
7480   // CHECK: @llvm.x86.avx.vpermilvar.pd
7481   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7482   return _mm_mask_permutevar_pd(__W, __U, __A, __C);
7483 }
7484 
test_mm_maskz_permutevar_pd(__mmask8 __U,__m128d __A,__m128i __C)7485 __m128d test_mm_maskz_permutevar_pd(__mmask8 __U, __m128d __A, __m128i __C) {
7486   // CHECK-LABEL: @test_mm_maskz_permutevar_pd
7487   // CHECK: @llvm.x86.avx.vpermilvar.pd
7488   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7489   return _mm_maskz_permutevar_pd(__U, __A, __C);
7490 }
7491 
test_mm256_mask_permutevar_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256i __C)7492 __m256d test_mm256_mask_permutevar_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256i __C) {
7493   // CHECK-LABEL: @test_mm256_mask_permutevar_pd
7494   // CHECK: @llvm.x86.avx.vpermilvar.pd.256
7495   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7496   return _mm256_mask_permutevar_pd(__W, __U, __A, __C);
7497 }
7498 
test_mm256_maskz_permutevar_pd(__mmask8 __U,__m256d __A,__m256i __C)7499 __m256d test_mm256_maskz_permutevar_pd(__mmask8 __U, __m256d __A, __m256i __C) {
7500   // CHECK-LABEL: @test_mm256_maskz_permutevar_pd
7501   // CHECK: @llvm.x86.avx.vpermilvar.pd.256
7502   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7503   return _mm256_maskz_permutevar_pd(__U, __A, __C);
7504 }
7505 
test_mm_mask_permutevar_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128i __C)7506 __m128 test_mm_mask_permutevar_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128i __C) {
7507   // CHECK-LABEL: @test_mm_mask_permutevar_ps
7508   // CHECK: @llvm.x86.avx.vpermilvar.ps
7509   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7510   return _mm_mask_permutevar_ps(__W, __U, __A, __C);
7511 }
7512 
test_mm_maskz_permutevar_ps(__mmask8 __U,__m128 __A,__m128i __C)7513 __m128 test_mm_maskz_permutevar_ps(__mmask8 __U, __m128 __A, __m128i __C) {
7514   // CHECK-LABEL: @test_mm_maskz_permutevar_ps
7515   // CHECK: @llvm.x86.avx.vpermilvar.ps
7516   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7517   return _mm_maskz_permutevar_ps(__U, __A, __C);
7518 }
7519 
test_mm256_mask_permutevar_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256i __C)7520 __m256 test_mm256_mask_permutevar_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256i __C) {
7521   // CHECK-LABEL: @test_mm256_mask_permutevar_ps
7522   // CHECK: @llvm.x86.avx.vpermilvar.ps.256
7523   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7524   return _mm256_mask_permutevar_ps(__W, __U, __A, __C);
7525 }
7526 
test_mm256_maskz_permutevar_ps(__mmask8 __U,__m256 __A,__m256i __C)7527 __m256 test_mm256_maskz_permutevar_ps(__mmask8 __U, __m256 __A, __m256i __C) {
7528   // CHECK-LABEL: @test_mm256_maskz_permutevar_ps
7529   // CHECK: @llvm.x86.avx.vpermilvar.ps.256
7530   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7531   return _mm256_maskz_permutevar_ps(__U, __A, __C);
7532 }
7533 
test_mm_test_epi32_mask(__m128i __A,__m128i __B)7534 __mmask8 test_mm_test_epi32_mask(__m128i __A, __m128i __B) {
7535   // CHECK-LABEL: @test_mm_test_epi32_mask
7536   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7537   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
7538   return _mm_test_epi32_mask(__A, __B);
7539 }
7540 
test_mm_mask_test_epi32_mask(__mmask8 __U,__m128i __A,__m128i __B)7541 __mmask8 test_mm_mask_test_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7542   // CHECK-LABEL: @test_mm_mask_test_epi32_mask
7543   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7544   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
7545   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7546   return _mm_mask_test_epi32_mask(__U, __A, __B);
7547 }
7548 
test_mm256_test_epi32_mask(__m256i __A,__m256i __B)7549 __mmask8 test_mm256_test_epi32_mask(__m256i __A, __m256i __B) {
7550   // CHECK-LABEL: @test_mm256_test_epi32_mask
7551   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7552   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
7553   return _mm256_test_epi32_mask(__A, __B);
7554 }
7555 
test_mm256_mask_test_epi32_mask(__mmask8 __U,__m256i __A,__m256i __B)7556 __mmask8 test_mm256_mask_test_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7557   // CHECK-LABEL: @test_mm256_mask_test_epi32_mask
7558   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7559   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
7560   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
7561   return _mm256_mask_test_epi32_mask(__U, __A, __B);
7562 }
7563 
test_mm_test_epi64_mask(__m128i __A,__m128i __B)7564 __mmask8 test_mm_test_epi64_mask(__m128i __A, __m128i __B) {
7565   // CHECK-LABEL: @test_mm_test_epi64_mask
7566   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7567   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
7568   return _mm_test_epi64_mask(__A, __B);
7569 }
7570 
test_mm_mask_test_epi64_mask(__mmask8 __U,__m128i __A,__m128i __B)7571 __mmask8 test_mm_mask_test_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7572   // CHECK-LABEL: @test_mm_mask_test_epi64_mask
7573   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7574   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
7575   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
7576   return _mm_mask_test_epi64_mask(__U, __A, __B);
7577 }
7578 
test_mm256_test_epi64_mask(__m256i __A,__m256i __B)7579 __mmask8 test_mm256_test_epi64_mask(__m256i __A, __m256i __B) {
7580   // CHECK-LABEL: @test_mm256_test_epi64_mask
7581   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7582   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
7583   return _mm256_test_epi64_mask(__A, __B);
7584 }
7585 
test_mm256_mask_test_epi64_mask(__mmask8 __U,__m256i __A,__m256i __B)7586 __mmask8 test_mm256_mask_test_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7587   // CHECK-LABEL: @test_mm256_mask_test_epi64_mask
7588   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7589   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
7590   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7591   return _mm256_mask_test_epi64_mask(__U, __A, __B);
7592 }
7593 
test_mm_testn_epi32_mask(__m128i __A,__m128i __B)7594 __mmask8 test_mm_testn_epi32_mask(__m128i __A, __m128i __B) {
7595   // CHECK-LABEL: @test_mm_testn_epi32_mask
7596   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7597   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
7598   return _mm_testn_epi32_mask(__A, __B);
7599 }
7600 
test_mm_mask_testn_epi32_mask(__mmask8 __U,__m128i __A,__m128i __B)7601 __mmask8 test_mm_mask_testn_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7602   // CHECK-LABEL: @test_mm_mask_testn_epi32_mask
7603   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7604   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
7605   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7606   return _mm_mask_testn_epi32_mask(__U, __A, __B);
7607 }
7608 
test_mm256_testn_epi32_mask(__m256i __A,__m256i __B)7609 __mmask8 test_mm256_testn_epi32_mask(__m256i __A, __m256i __B) {
7610   // CHECK-LABEL: @test_mm256_testn_epi32_mask
7611   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7612   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
7613   return _mm256_testn_epi32_mask(__A, __B);
7614 }
7615 
test_mm256_mask_testn_epi32_mask(__mmask8 __U,__m256i __A,__m256i __B)7616 __mmask8 test_mm256_mask_testn_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7617   // CHECK-LABEL: @test_mm256_mask_testn_epi32_mask
7618   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7619   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
7620   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
7621   return _mm256_mask_testn_epi32_mask(__U, __A, __B);
7622 }
7623 
test_mm_testn_epi64_mask(__m128i __A,__m128i __B)7624 __mmask8 test_mm_testn_epi64_mask(__m128i __A, __m128i __B) {
7625   // CHECK-LABEL: @test_mm_testn_epi64_mask
7626   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7627   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
7628   return _mm_testn_epi64_mask(__A, __B);
7629 }
7630 
test_mm_mask_testn_epi64_mask(__mmask8 __U,__m128i __A,__m128i __B)7631 __mmask8 test_mm_mask_testn_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7632   // CHECK-LABEL: @test_mm_mask_testn_epi64_mask
7633   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7634   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
7635   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
7636   return _mm_mask_testn_epi64_mask(__U, __A, __B);
7637 }
7638 
test_mm256_testn_epi64_mask(__m256i __A,__m256i __B)7639 __mmask8 test_mm256_testn_epi64_mask(__m256i __A, __m256i __B) {
7640   // CHECK-LABEL: @test_mm256_testn_epi64_mask
7641   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7642   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
7643   return _mm256_testn_epi64_mask(__A, __B);
7644 }
7645 
test_mm256_mask_testn_epi64_mask(__mmask8 __U,__m256i __A,__m256i __B)7646 __mmask8 test_mm256_mask_testn_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7647   // CHECK-LABEL: @test_mm256_mask_testn_epi64_mask
7648   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7649   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
7650   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7651   return _mm256_mask_testn_epi64_mask(__U, __A, __B);
7652 }
7653 
test_mm_mask_unpackhi_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7654 __m128i test_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7655   // CHECK-LABEL: @test_mm_mask_unpackhi_epi32
7656   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7657   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7658   return _mm_mask_unpackhi_epi32(__W, __U, __A, __B);
7659 }
7660 
test_mm_maskz_unpackhi_epi32(__mmask8 __U,__m128i __A,__m128i __B)7661 __m128i test_mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
7662   // CHECK-LABEL: @test_mm_maskz_unpackhi_epi32
7663   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7664   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7665   return _mm_maskz_unpackhi_epi32(__U, __A, __B);
7666 }
7667 
test_mm256_mask_unpackhi_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7668 __m256i test_mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7669   // CHECK-LABEL: @test_mm256_mask_unpackhi_epi32
7670   // 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>
7671   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7672   return _mm256_mask_unpackhi_epi32(__W, __U, __A, __B);
7673 }
7674 
test_mm256_maskz_unpackhi_epi32(__mmask8 __U,__m256i __A,__m256i __B)7675 __m256i test_mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
7676   // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi32
7677   // 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>
7678   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7679   return _mm256_maskz_unpackhi_epi32(__U, __A, __B);
7680 }
7681 
test_mm_mask_unpackhi_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7682 __m128i test_mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7683   // CHECK-LABEL: @test_mm_mask_unpackhi_epi64
7684   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 3>
7685   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7686   return _mm_mask_unpackhi_epi64(__W, __U, __A, __B);
7687 }
7688 
test_mm_maskz_unpackhi_epi64(__mmask8 __U,__m128i __A,__m128i __B)7689 __m128i test_mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
7690   // CHECK-LABEL: @test_mm_maskz_unpackhi_epi64
7691   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 3>
7692   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7693   return _mm_maskz_unpackhi_epi64(__U, __A, __B);
7694 }
7695 
test_mm256_mask_unpackhi_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7696 __m256i test_mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7697   // CHECK-LABEL: @test_mm256_mask_unpackhi_epi64
7698   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 3, i32 7>
7699   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7700   return _mm256_mask_unpackhi_epi64(__W, __U, __A, __B);
7701 }
7702 
test_mm256_maskz_unpackhi_epi64(__mmask8 __U,__m256i __A,__m256i __B)7703 __m256i test_mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
7704   // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi64
7705   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 3, i32 7>
7706   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7707   return _mm256_maskz_unpackhi_epi64(__U, __A, __B);
7708 }
7709 
test_mm_mask_unpacklo_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7710 __m128i test_mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7711   // CHECK-LABEL: @test_mm_mask_unpacklo_epi32
7712   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7713   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7714   return _mm_mask_unpacklo_epi32(__W, __U, __A, __B);
7715 }
7716 
test_mm_maskz_unpacklo_epi32(__mmask8 __U,__m128i __A,__m128i __B)7717 __m128i test_mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
7718   // CHECK-LABEL: @test_mm_maskz_unpacklo_epi32
7719   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7720   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7721   return _mm_maskz_unpacklo_epi32(__U, __A, __B);
7722 }
7723 
test_mm256_mask_unpacklo_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7724 __m256i test_mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7725   // CHECK-LABEL: @test_mm256_mask_unpacklo_epi32
7726   // 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>
7727   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7728   return _mm256_mask_unpacklo_epi32(__W, __U, __A, __B);
7729 }
7730 
test_mm256_maskz_unpacklo_epi32(__mmask8 __U,__m256i __A,__m256i __B)7731 __m256i test_mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
7732   // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi32
7733   // 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>
7734   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7735   return _mm256_maskz_unpacklo_epi32(__U, __A, __B);
7736 }
7737 
test_mm_mask_unpacklo_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7738 __m128i test_mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7739   // CHECK-LABEL: @test_mm_mask_unpacklo_epi64
7740   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2>
7741   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7742   return _mm_mask_unpacklo_epi64(__W, __U, __A, __B);
7743 }
7744 
test_mm_maskz_unpacklo_epi64(__mmask8 __U,__m128i __A,__m128i __B)7745 __m128i test_mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
7746   // CHECK-LABEL: @test_mm_maskz_unpacklo_epi64
7747   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2>
7748   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7749   return _mm_maskz_unpacklo_epi64(__U, __A, __B);
7750 }
7751 
test_mm256_mask_unpacklo_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7752 __m256i test_mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7753   // CHECK-LABEL: @test_mm256_mask_unpacklo_epi64
7754   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7755   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7756   return _mm256_mask_unpacklo_epi64(__W, __U, __A, __B);
7757 }
7758 
test_mm256_maskz_unpacklo_epi64(__mmask8 __U,__m256i __A,__m256i __B)7759 __m256i test_mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
7760   // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi64
7761   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7762   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7763   return _mm256_maskz_unpacklo_epi64(__U, __A, __B);
7764 }
7765 
test_mm_mask_sra_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7766 __m128i test_mm_mask_sra_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7767   // CHECK-LABEL: @test_mm_mask_sra_epi32
7768   // CHECK: @llvm.x86.sse2.psra.d
7769   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7770   return _mm_mask_sra_epi32(__W, __U, __A, __B);
7771 }
7772 
test_mm_maskz_sra_epi32(__mmask8 __U,__m128i __A,__m128i __B)7773 __m128i test_mm_maskz_sra_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
7774   // CHECK-LABEL: @test_mm_maskz_sra_epi32
7775   // CHECK: @llvm.x86.sse2.psra.d
7776   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7777   return _mm_maskz_sra_epi32(__U, __A, __B);
7778 }
7779 
test_mm256_mask_sra_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)7780 __m256i test_mm256_mask_sra_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
7781   // CHECK-LABEL: @test_mm256_mask_sra_epi32
7782   // CHECK: @llvm.x86.avx2.psra.d
7783   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7784   return _mm256_mask_sra_epi32(__W, __U, __A, __B);
7785 }
7786 
test_mm256_maskz_sra_epi32(__mmask8 __U,__m256i __A,__m128i __B)7787 __m256i test_mm256_maskz_sra_epi32(__mmask8 __U, __m256i __A, __m128i __B) {
7788   // CHECK-LABEL: @test_mm256_maskz_sra_epi32
7789   // CHECK: @llvm.x86.avx2.psra.d
7790   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7791   return _mm256_maskz_sra_epi32(__U, __A, __B);
7792 }
7793 
test_mm_mask_srai_epi32(__m128i __W,__mmask8 __U,__m128i __A)7794 __m128i test_mm_mask_srai_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
7795   // CHECK-LABEL: @test_mm_mask_srai_epi32
7796   // CHECK: @llvm.x86.sse2.psrai.d
7797   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7798   return _mm_mask_srai_epi32(__W, __U, __A, 5);
7799 }
7800 
test_mm_mask_srai_epi32_2(__m128i __W,__mmask8 __U,__m128i __A,int __B)7801 __m128i test_mm_mask_srai_epi32_2(__m128i __W, __mmask8 __U, __m128i __A, int __B) {
7802   // CHECK-LABEL: @test_mm_mask_srai_epi32_2
7803   // CHECK: @llvm.x86.sse2.psrai.d
7804   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7805   return _mm_mask_srai_epi32(__W, __U, __A, __B);
7806 }
7807 
test_mm_maskz_srai_epi32(__mmask8 __U,__m128i __A)7808 __m128i test_mm_maskz_srai_epi32(__mmask8 __U, __m128i __A) {
7809   // CHECK-LABEL: @test_mm_maskz_srai_epi32
7810   // CHECK: @llvm.x86.sse2.psrai.d
7811   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7812   return _mm_maskz_srai_epi32(__U, __A, 5);
7813 }
7814 
test_mm_maskz_srai_epi32_2(__mmask8 __U,__m128i __A,int __B)7815 __m128i test_mm_maskz_srai_epi32_2(__mmask8 __U, __m128i __A, int __B) {
7816   // CHECK-LABEL: @test_mm_maskz_srai_epi32_2
7817   // CHECK: @llvm.x86.sse2.psrai.d
7818   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7819   return _mm_maskz_srai_epi32(__U, __A, __B);
7820 }
7821 
test_mm256_mask_srai_epi32(__m256i __W,__mmask8 __U,__m256i __A)7822 __m256i test_mm256_mask_srai_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
7823   // CHECK-LABEL: @test_mm256_mask_srai_epi32
7824   // CHECK: @llvm.x86.avx2.psrai.d
7825   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7826   return _mm256_mask_srai_epi32(__W, __U, __A, 5);
7827 }
7828 
test_mm256_mask_srai_epi32_2(__m256i __W,__mmask8 __U,__m256i __A,int __B)7829 __m256i test_mm256_mask_srai_epi32_2(__m256i __W, __mmask8 __U, __m256i __A, int __B) {
7830   // CHECK-LABEL: @test_mm256_mask_srai_epi32_2
7831   // CHECK: @llvm.x86.avx2.psrai.d
7832   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7833   return _mm256_mask_srai_epi32(__W, __U, __A, __B);
7834 }
7835 
test_mm256_maskz_srai_epi32(__mmask8 __U,__m256i __A)7836 __m256i test_mm256_maskz_srai_epi32(__mmask8 __U, __m256i __A) {
7837   // CHECK-LABEL: @test_mm256_maskz_srai_epi32
7838   // CHECK: @llvm.x86.avx2.psrai.d
7839   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7840   return _mm256_maskz_srai_epi32(__U, __A, 5);
7841 }
7842 
test_mm256_maskz_srai_epi32_2(__mmask8 __U,__m256i __A,int __B)7843 __m256i test_mm256_maskz_srai_epi32_2(__mmask8 __U, __m256i __A, int __B) {
7844   // CHECK-LABEL: @test_mm256_maskz_srai_epi32_2
7845   // CHECK: @llvm.x86.avx2.psrai.d
7846   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7847   return _mm256_maskz_srai_epi32(__U, __A, __B);
7848 }
7849 
test_mm_sra_epi64(__m128i __A,__m128i __B)7850 __m128i test_mm_sra_epi64(__m128i __A, __m128i __B) {
7851   // CHECK-LABEL: @test_mm_sra_epi64
7852   // CHECK: @llvm.x86.avx512.psra.q.128
7853   return _mm_sra_epi64(__A, __B);
7854 }
7855 
test_mm_mask_sra_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7856 __m128i test_mm_mask_sra_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7857   // CHECK-LABEL: @test_mm_mask_sra_epi64
7858   // CHECK: @llvm.x86.avx512.psra.q.128
7859   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7860   return _mm_mask_sra_epi64(__W, __U, __A, __B);
7861 }
7862 
test_mm_maskz_sra_epi64(__mmask8 __U,__m128i __A,__m128i __B)7863 __m128i test_mm_maskz_sra_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
7864   // CHECK-LABEL: @test_mm_maskz_sra_epi64
7865   // CHECK: @llvm.x86.avx512.psra.q.128
7866   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7867   return _mm_maskz_sra_epi64(__U, __A, __B);
7868 }
7869 
test_mm256_sra_epi64(__m256i __A,__m128i __B)7870 __m256i test_mm256_sra_epi64(__m256i __A, __m128i __B) {
7871   // CHECK-LABEL: @test_mm256_sra_epi64
7872   // CHECK: @llvm.x86.avx512.psra.q.256
7873   return _mm256_sra_epi64(__A, __B);
7874 }
7875 
test_mm256_mask_sra_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)7876 __m256i test_mm256_mask_sra_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
7877   // CHECK-LABEL: @test_mm256_mask_sra_epi64
7878   // CHECK: @llvm.x86.avx512.psra.q.256
7879   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7880   return _mm256_mask_sra_epi64(__W, __U, __A, __B);
7881 }
7882 
test_mm256_maskz_sra_epi64(__mmask8 __U,__m256i __A,__m128i __B)7883 __m256i test_mm256_maskz_sra_epi64(__mmask8 __U, __m256i __A, __m128i __B) {
7884   // CHECK-LABEL: @test_mm256_maskz_sra_epi64
7885   // CHECK: @llvm.x86.avx512.psra.q.256
7886   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7887   return _mm256_maskz_sra_epi64(__U, __A, __B);
7888 }
7889 
test_mm_srai_epi64(__m128i __A)7890 __m128i test_mm_srai_epi64(__m128i __A) {
7891   // CHECK-LABEL: @test_mm_srai_epi64
7892   // CHECK: @llvm.x86.avx512.psrai.q.128
7893   return _mm_srai_epi64(__A, 5);
7894 }
7895 
test_mm_srai_epi64_2(__m128i __A,int __B)7896 __m128i test_mm_srai_epi64_2(__m128i __A, int __B) {
7897   // CHECK-LABEL: @test_mm_srai_epi64_2
7898   // CHECK: @llvm.x86.avx512.psrai.q.128
7899   return _mm_srai_epi64(__A, __B);
7900 }
7901 
test_mm_mask_srai_epi64(__m128i __W,__mmask8 __U,__m128i __A)7902 __m128i test_mm_mask_srai_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
7903   // CHECK-LABEL: @test_mm_mask_srai_epi64
7904   // CHECK: @llvm.x86.avx512.psrai.q.128
7905   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7906   return _mm_mask_srai_epi64(__W, __U, __A, 5);
7907 }
7908 
test_mm_mask_srai_epi64_2(__m128i __W,__mmask8 __U,__m128i __A,int __B)7909 __m128i test_mm_mask_srai_epi64_2(__m128i __W, __mmask8 __U, __m128i __A, int __B) {
7910   // CHECK-LABEL: @test_mm_mask_srai_epi64_2
7911   // CHECK: @llvm.x86.avx512.psrai.q.128
7912   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7913   return _mm_mask_srai_epi64(__W, __U, __A, __B);
7914 }
7915 
test_mm_maskz_srai_epi64(__mmask8 __U,__m128i __A)7916 __m128i test_mm_maskz_srai_epi64(__mmask8 __U, __m128i __A) {
7917   // CHECK-LABEL: @test_mm_maskz_srai_epi64
7918   // CHECK: @llvm.x86.avx512.psrai.q.128
7919   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7920   return _mm_maskz_srai_epi64(__U, __A, 5);
7921 }
7922 
test_mm_maskz_srai_epi64_2(__mmask8 __U,__m128i __A,int __B)7923 __m128i test_mm_maskz_srai_epi64_2(__mmask8 __U, __m128i __A, int __B) {
7924   // CHECK-LABEL: @test_mm_maskz_srai_epi64_2
7925   // CHECK: @llvm.x86.avx512.psrai.q.128
7926   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7927   return _mm_maskz_srai_epi64(__U, __A, __B);
7928 }
7929 
test_mm256_srai_epi64(__m256i __A)7930 __m256i test_mm256_srai_epi64(__m256i __A) {
7931   // CHECK-LABEL: @test_mm256_srai_epi64
7932   // CHECK: @llvm.x86.avx512.psrai.q.256
7933   return _mm256_srai_epi64(__A, 5);
7934 }
7935 
test_mm256_srai_epi64_2(__m256i __A,int __B)7936 __m256i test_mm256_srai_epi64_2(__m256i __A, int __B) {
7937   // CHECK-LABEL: @test_mm256_srai_epi64_2
7938   // CHECK: @llvm.x86.avx512.psrai.q.256
7939   return _mm256_srai_epi64(__A, __B);
7940 }
7941 
test_mm256_mask_srai_epi64(__m256i __W,__mmask8 __U,__m256i __A)7942 __m256i test_mm256_mask_srai_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
7943   // CHECK-LABEL: @test_mm256_mask_srai_epi64
7944   // CHECK: @llvm.x86.avx512.psrai.q.256
7945   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7946   return _mm256_mask_srai_epi64(__W, __U, __A, 5);
7947 }
7948 
test_mm256_mask_srai_epi64_2(__m256i __W,__mmask8 __U,__m256i __A,int __B)7949 __m256i test_mm256_mask_srai_epi64_2(__m256i __W, __mmask8 __U, __m256i __A, int __B) {
7950   // CHECK-LABEL: @test_mm256_mask_srai_epi64_2
7951   // CHECK: @llvm.x86.avx512.psrai.q.256
7952   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7953   return _mm256_mask_srai_epi64(__W, __U, __A, __B);
7954 }
7955 
test_mm256_maskz_srai_epi64(__mmask8 __U,__m256i __A)7956 __m256i test_mm256_maskz_srai_epi64(__mmask8 __U, __m256i __A) {
7957   // CHECK-LABEL: @test_mm256_maskz_srai_epi64
7958   // CHECK: @llvm.x86.avx512.psrai.q.256
7959   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7960   return _mm256_maskz_srai_epi64(__U, __A, 5);
7961 }
7962 
test_mm256_maskz_srai_epi64_2(__mmask8 __U,__m256i __A,int __B)7963 __m256i test_mm256_maskz_srai_epi64_2(__mmask8 __U, __m256i __A, int __B) {
7964   // CHECK-LABEL: @test_mm256_maskz_srai_epi64_2
7965   // CHECK: @llvm.x86.avx512.psrai.q.256
7966   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7967   return _mm256_maskz_srai_epi64(__U, __A, __B);
7968 }
7969 
test_mm_ternarylogic_epi32(__m128i __A,__m128i __B,__m128i __C)7970 __m128i test_mm_ternarylogic_epi32(__m128i __A, __m128i __B, __m128i __C) {
7971   // CHECK-LABEL: @test_mm_ternarylogic_epi32
7972   // CHECK: @llvm.x86.avx512.pternlog.d.128
7973   return _mm_ternarylogic_epi32(__A, __B, __C, 4);
7974 }
7975 
test_mm_mask_ternarylogic_epi32(__m128i __A,__mmask8 __U,__m128i __B,__m128i __C)7976 __m128i test_mm_mask_ternarylogic_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
7977   // CHECK-LABEL: @test_mm_mask_ternarylogic_epi32
7978   // CHECK: @llvm.x86.avx512.pternlog.d.128
7979   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7980   return _mm_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
7981 }
7982 
test_mm_maskz_ternarylogic_epi32(__mmask8 __U,__m128i __A,__m128i __B,__m128i __C)7983 __m128i test_mm_maskz_ternarylogic_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
7984   // CHECK-LABEL: @test_mm_maskz_ternarylogic_epi32
7985   // CHECK: @llvm.x86.avx512.pternlog.d.128
7986   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
7987   return _mm_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
7988 }
7989 
test_mm256_ternarylogic_epi32(__m256i __A,__m256i __B,__m256i __C)7990 __m256i test_mm256_ternarylogic_epi32(__m256i __A, __m256i __B, __m256i __C) {
7991   // CHECK-LABEL: @test_mm256_ternarylogic_epi32
7992   // CHECK: @llvm.x86.avx512.pternlog.d.256
7993   return _mm256_ternarylogic_epi32(__A, __B, __C, 4);
7994 }
7995 
test_mm256_mask_ternarylogic_epi32(__m256i __A,__mmask8 __U,__m256i __B,__m256i __C)7996 __m256i test_mm256_mask_ternarylogic_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) {
7997   // CHECK-LABEL: @test_mm256_mask_ternarylogic_epi32
7998   // CHECK: @llvm.x86.avx512.pternlog.d.256
7999   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8000   return _mm256_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
8001 }
8002 
test_mm256_maskz_ternarylogic_epi32(__mmask8 __U,__m256i __A,__m256i __B,__m256i __C)8003 __m256i test_mm256_maskz_ternarylogic_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) {
8004   // CHECK-LABEL: @test_mm256_maskz_ternarylogic_epi32
8005   // CHECK: @llvm.x86.avx512.pternlog.d.256
8006   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> zeroinitializer
8007   return _mm256_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
8008 }
8009 
test_mm_ternarylogic_epi64(__m128i __A,__m128i __B,__m128i __C)8010 __m128i test_mm_ternarylogic_epi64(__m128i __A, __m128i __B, __m128i __C) {
8011   // CHECK-LABEL: @test_mm_ternarylogic_epi64
8012   // CHECK: @llvm.x86.avx512.pternlog.q.128
8013   return _mm_ternarylogic_epi64(__A, __B, __C, 4);
8014 }
8015 
test_mm_mask_ternarylogic_epi64(__m128i __A,__mmask8 __U,__m128i __B,__m128i __C)8016 __m128i test_mm_mask_ternarylogic_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
8017   // CHECK-LABEL: @test_mm_mask_ternarylogic_epi64
8018   // CHECK: @llvm.x86.avx512.pternlog.q.128
8019   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
8020   return _mm_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
8021 }
8022 
test_mm_maskz_ternarylogic_epi64(__mmask8 __U,__m128i __A,__m128i __B,__m128i __C)8023 __m128i test_mm_maskz_ternarylogic_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
8024   // CHECK-LABEL: @test_mm_maskz_ternarylogic_epi64
8025   // CHECK: @llvm.x86.avx512.pternlog.q.128
8026   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> zeroinitializer
8027   return _mm_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
8028 }
8029 
test_mm256_ternarylogic_epi64(__m256i __A,__m256i __B,__m256i __C)8030 __m256i test_mm256_ternarylogic_epi64(__m256i __A, __m256i __B, __m256i __C) {
8031   // CHECK-LABEL: @test_mm256_ternarylogic_epi64
8032   // CHECK: @llvm.x86.avx512.pternlog.q.256
8033   return _mm256_ternarylogic_epi64(__A, __B, __C, 4);
8034 }
8035 
test_mm256_mask_ternarylogic_epi64(__m256i __A,__mmask8 __U,__m256i __B,__m256i __C)8036 __m256i test_mm256_mask_ternarylogic_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) {
8037   // CHECK-LABEL: @test_mm256_mask_ternarylogic_epi64
8038   // CHECK: @llvm.x86.avx512.pternlog.q.256
8039   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8040   return _mm256_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
8041 }
8042 
test_mm256_maskz_ternarylogic_epi64(__mmask8 __U,__m256i __A,__m256i __B,__m256i __C)8043 __m256i test_mm256_maskz_ternarylogic_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) {
8044   // CHECK-LABEL: @test_mm256_maskz_ternarylogic_epi64
8045   // CHECK: @llvm.x86.avx512.pternlog.q.256
8046   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> zeroinitializer
8047   return _mm256_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
8048 }
test_mm256_shuffle_f32x4(__m256 __A,__m256 __B)8049 __m256 test_mm256_shuffle_f32x4(__m256 __A, __m256 __B) {
8050   // CHECK-LABEL: @test_mm256_shuffle_f32x4
8051   // 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>
8052   return _mm256_shuffle_f32x4(__A, __B, 3);
8053 }
8054 
test_mm256_mask_shuffle_f32x4(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)8055 __m256 test_mm256_mask_shuffle_f32x4(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
8056   // CHECK-LABEL: @test_mm256_mask_shuffle_f32x4
8057   // 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>
8058   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8059   return _mm256_mask_shuffle_f32x4(__W, __U, __A, __B, 3);
8060 }
8061 
test_mm256_maskz_shuffle_f32x4(__mmask8 __U,__m256 __A,__m256 __B)8062 __m256 test_mm256_maskz_shuffle_f32x4(__mmask8 __U, __m256 __A, __m256 __B) {
8063   // CHECK-LABEL: @test_mm256_maskz_shuffle_f32x4
8064   // 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>
8065   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8066   return _mm256_maskz_shuffle_f32x4(__U, __A, __B, 3);
8067 }
8068 
test_mm256_shuffle_f64x2(__m256d __A,__m256d __B)8069 __m256d test_mm256_shuffle_f64x2(__m256d __A, __m256d __B) {
8070   // CHECK-LABEL: @test_mm256_shuffle_f64x2
8071   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8072   return _mm256_shuffle_f64x2(__A, __B, 3);
8073 }
8074 
test_mm256_mask_shuffle_f64x2(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)8075 __m256d test_mm256_mask_shuffle_f64x2(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
8076   // CHECK-LABEL: @test_mm256_mask_shuffle_f64x2
8077   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8078   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8079   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8080   return _mm256_mask_shuffle_f64x2(__W, __U, __A, __B, 3);
8081 }
8082 
test_mm256_maskz_shuffle_f64x2(__mmask8 __U,__m256d __A,__m256d __B)8083 __m256d test_mm256_maskz_shuffle_f64x2(__mmask8 __U, __m256d __A, __m256d __B) {
8084   // CHECK-LABEL: @test_mm256_maskz_shuffle_f64x2
8085   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8086   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8087   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8088   return _mm256_maskz_shuffle_f64x2(__U, __A, __B, 3);
8089 }
8090 
test_mm256_shuffle_i32x4(__m256i __A,__m256i __B)8091 __m256i test_mm256_shuffle_i32x4(__m256i __A, __m256i __B) {
8092   // CHECK-LABEL: @test_mm256_shuffle_i32x4
8093   // 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>
8094   return _mm256_shuffle_i32x4(__A, __B, 3);
8095 }
8096 
test_mm256_mask_shuffle_i32x4(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)8097 __m256i test_mm256_mask_shuffle_i32x4(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
8098   // CHECK-LABEL: @test_mm256_mask_shuffle_i32x4
8099   // 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>
8100   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8101   return _mm256_mask_shuffle_i32x4(__W, __U, __A, __B, 3);
8102 }
8103 
test_mm256_maskz_shuffle_i32x4(__mmask8 __U,__m256i __A,__m256i __B)8104 __m256i test_mm256_maskz_shuffle_i32x4(__mmask8 __U, __m256i __A, __m256i __B) {
8105   // CHECK-LABEL: @test_mm256_maskz_shuffle_i32x4
8106   // 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>
8107   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8108   return _mm256_maskz_shuffle_i32x4(__U, __A, __B, 3);
8109 }
8110 
test_mm256_shuffle_i64x2(__m256i __A,__m256i __B)8111 __m256i test_mm256_shuffle_i64x2(__m256i __A, __m256i __B) {
8112   // CHECK-LABEL: @test_mm256_shuffle_i64x2
8113   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8114   return _mm256_shuffle_i64x2(__A, __B, 3);
8115 }
8116 
test_mm256_mask_shuffle_i64x2(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)8117 __m256i test_mm256_mask_shuffle_i64x2(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
8118   // CHECK-LABEL: @test_mm256_mask_shuffle_i64x2
8119   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8120   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8121   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8122   return _mm256_mask_shuffle_i64x2(__W, __U, __A, __B, 3);
8123 }
8124 
test_mm256_maskz_shuffle_i64x2(__mmask8 __U,__m256i __A,__m256i __B)8125 __m256i test_mm256_maskz_shuffle_i64x2(__mmask8 __U, __m256i __A, __m256i __B) {
8126   // CHECK-LABEL: @test_mm256_maskz_shuffle_i64x2
8127   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8128   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8129   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8130   return _mm256_maskz_shuffle_i64x2(__U, __A, __B, 3);
8131 }
8132 
test_mm_mask_shuffle_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)8133 __m128d test_mm_mask_shuffle_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
8134   // CHECK-LABEL: @test_mm_mask_shuffle_pd
8135   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
8136   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
8137   return _mm_mask_shuffle_pd(__W, __U, __A, __B, 3);
8138 }
8139 
test_mm_maskz_shuffle_pd(__mmask8 __U,__m128d __A,__m128d __B)8140 __m128d test_mm_maskz_shuffle_pd(__mmask8 __U, __m128d __A, __m128d __B) {
8141   // CHECK-LABEL: @test_mm_maskz_shuffle_pd
8142   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
8143   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
8144   return _mm_maskz_shuffle_pd(__U, __A, __B, 3);
8145 }
8146 
test_mm256_mask_shuffle_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)8147 __m256d test_mm256_mask_shuffle_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
8148   // CHECK-LABEL: @test_mm256_mask_shuffle_pd
8149   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 2, i32 6>
8150   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8151   return _mm256_mask_shuffle_pd(__W, __U, __A, __B, 3);
8152 }
8153 
test_mm256_maskz_shuffle_pd(__mmask8 __U,__m256d __A,__m256d __B)8154 __m256d test_mm256_maskz_shuffle_pd(__mmask8 __U, __m256d __A, __m256d __B) {
8155   // CHECK-LABEL: @test_mm256_maskz_shuffle_pd
8156   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 2, i32 6>
8157   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8158   return _mm256_maskz_shuffle_pd(__U, __A, __B, 3);
8159 }
8160 
test_mm_mask_shuffle_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)8161 __m128 test_mm_mask_shuffle_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
8162   // CHECK-LABEL: @test_mm_mask_shuffle_ps
8163   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 4>
8164   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8165   return _mm_mask_shuffle_ps(__W, __U, __A, __B, 4);
8166 }
8167 
test_mm_maskz_shuffle_ps(__mmask8 __U,__m128 __A,__m128 __B)8168 __m128 test_mm_maskz_shuffle_ps(__mmask8 __U, __m128 __A, __m128 __B) {
8169   // CHECK-LABEL: @test_mm_maskz_shuffle_ps
8170   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 4>
8171   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8172   return _mm_maskz_shuffle_ps(__U, __A, __B, 4);
8173 }
8174 
test_mm256_mask_shuffle_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)8175 __m256 test_mm256_mask_shuffle_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
8176   // CHECK-LABEL: @test_mm256_mask_shuffle_ps
8177   // 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>
8178   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8179   return _mm256_mask_shuffle_ps(__W, __U, __A, __B, 4);
8180 }
8181 
test_mm256_maskz_shuffle_ps(__mmask8 __U,__m256 __A,__m256 __B)8182 __m256 test_mm256_maskz_shuffle_ps(__mmask8 __U, __m256 __A, __m256 __B) {
8183   // CHECK-LABEL: @test_mm256_maskz_shuffle_ps
8184   // 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>
8185   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8186   return _mm256_maskz_shuffle_ps(__U, __A, __B, 4);
8187 }
8188 
test_mm_rsqrt14_pd(__m128d __A)8189 __m128d test_mm_rsqrt14_pd(__m128d __A) {
8190   // CHECK-LABEL: @test_mm_rsqrt14_pd
8191   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8192   return _mm_rsqrt14_pd(__A);
8193 }
8194 
test_mm_mask_rsqrt14_pd(__m128d __W,__mmask8 __U,__m128d __A)8195 __m128d test_mm_mask_rsqrt14_pd(__m128d __W, __mmask8 __U, __m128d __A) {
8196   // CHECK-LABEL: @test_mm_mask_rsqrt14_pd
8197   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8198   return _mm_mask_rsqrt14_pd(__W, __U, __A);
8199 }
8200 
test_mm_maskz_rsqrt14_pd(__mmask8 __U,__m128d __A)8201 __m128d test_mm_maskz_rsqrt14_pd(__mmask8 __U, __m128d __A) {
8202   // CHECK-LABEL: @test_mm_maskz_rsqrt14_pd
8203   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8204   return _mm_maskz_rsqrt14_pd(__U, __A);
8205 }
8206 
test_mm256_rsqrt14_pd(__m256d __A)8207 __m256d test_mm256_rsqrt14_pd(__m256d __A) {
8208   // CHECK-LABEL: @test_mm256_rsqrt14_pd
8209   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8210   return _mm256_rsqrt14_pd(__A);
8211 }
8212 
test_mm256_mask_rsqrt14_pd(__m256d __W,__mmask8 __U,__m256d __A)8213 __m256d test_mm256_mask_rsqrt14_pd(__m256d __W, __mmask8 __U, __m256d __A) {
8214   // CHECK-LABEL: @test_mm256_mask_rsqrt14_pd
8215   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8216   return _mm256_mask_rsqrt14_pd(__W, __U, __A);
8217 }
8218 
test_mm256_maskz_rsqrt14_pd(__mmask8 __U,__m256d __A)8219 __m256d test_mm256_maskz_rsqrt14_pd(__mmask8 __U, __m256d __A) {
8220   // CHECK-LABEL: @test_mm256_maskz_rsqrt14_pd
8221   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8222   return _mm256_maskz_rsqrt14_pd(__U, __A);
8223 }
8224 
test_mm_rsqrt14_ps(__m128 __A)8225 __m128 test_mm_rsqrt14_ps(__m128 __A) {
8226   // CHECK-LABEL: @test_mm_rsqrt14_ps
8227   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8228   return _mm_rsqrt14_ps(__A);
8229 }
8230 
test_mm_mask_rsqrt14_ps(__m128 __W,__mmask8 __U,__m128 __A)8231 __m128 test_mm_mask_rsqrt14_ps(__m128 __W, __mmask8 __U, __m128 __A) {
8232   // CHECK-LABEL: @test_mm_mask_rsqrt14_ps
8233   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8234   return _mm_mask_rsqrt14_ps(__W, __U, __A);
8235 }
8236 
test_mm_maskz_rsqrt14_ps(__mmask8 __U,__m128 __A)8237 __m128 test_mm_maskz_rsqrt14_ps(__mmask8 __U, __m128 __A) {
8238   // CHECK-LABEL: @test_mm_maskz_rsqrt14_ps
8239   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8240   return _mm_maskz_rsqrt14_ps(__U, __A);
8241 }
8242 
test_mm256_rsqrt14_ps(__m256 __A)8243 __m256 test_mm256_rsqrt14_ps(__m256 __A) {
8244   // CHECK-LABEL: @test_mm256_rsqrt14_ps
8245   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8246   return _mm256_rsqrt14_ps(__A);
8247 }
8248 
test_mm256_mask_rsqrt14_ps(__m256 __W,__mmask8 __U,__m256 __A)8249 __m256 test_mm256_mask_rsqrt14_ps(__m256 __W, __mmask8 __U, __m256 __A) {
8250   // CHECK-LABEL: @test_mm256_mask_rsqrt14_ps
8251   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8252   return _mm256_mask_rsqrt14_ps(__W, __U, __A);
8253 }
8254 
test_mm256_maskz_rsqrt14_ps(__mmask8 __U,__m256 __A)8255 __m256 test_mm256_maskz_rsqrt14_ps(__mmask8 __U, __m256 __A) {
8256   // CHECK-LABEL: @test_mm256_maskz_rsqrt14_ps
8257   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8258   return _mm256_maskz_rsqrt14_ps(__U, __A);
8259 }
8260 
test_mm256_broadcast_f32x4(__m128 __A)8261 __m256 test_mm256_broadcast_f32x4(__m128 __A) {
8262   // CHECK-LABEL: @test_mm256_broadcast_f32x4
8263   // 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>
8264   return _mm256_broadcast_f32x4(__A);
8265 }
8266 
test_mm256_mask_broadcast_f32x4(__m256 __O,__mmask8 __M,__m128 __A)8267 __m256 test_mm256_mask_broadcast_f32x4(__m256 __O, __mmask8 __M, __m128 __A) {
8268   // CHECK-LABEL: @test_mm256_mask_broadcast_f32x4
8269   // 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>
8270   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8271   return _mm256_mask_broadcast_f32x4(__O, __M, __A);
8272 }
8273 
test_mm256_maskz_broadcast_f32x4(__mmask8 __M,__m128 __A)8274 __m256 test_mm256_maskz_broadcast_f32x4(__mmask8 __M, __m128 __A) {
8275   // CHECK-LABEL: @test_mm256_maskz_broadcast_f32x4
8276   // 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>
8277   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8278   return _mm256_maskz_broadcast_f32x4(__M, __A);
8279 }
8280 
test_mm256_broadcast_i32x4(__m128i const * __A)8281 __m256i test_mm256_broadcast_i32x4(__m128i const* __A) {
8282   // CHECK-LABEL: @test_mm256_broadcast_i32x4
8283   // 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>
8284   return _mm256_broadcast_i32x4(_mm_loadu_si128(__A));
8285 }
8286 
test_mm256_mask_broadcast_i32x4(__m256i __O,__mmask8 __M,__m128i const * __A)8287 __m256i test_mm256_mask_broadcast_i32x4(__m256i __O, __mmask8 __M, __m128i const* __A) {
8288   // CHECK-LABEL: @test_mm256_mask_broadcast_i32x4
8289   // 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>
8290   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8291   return _mm256_mask_broadcast_i32x4(__O, __M, _mm_loadu_si128(__A));
8292 }
8293 
test_mm256_maskz_broadcast_i32x4(__mmask8 __M,__m128i const * __A)8294 __m256i test_mm256_maskz_broadcast_i32x4(__mmask8 __M, __m128i const* __A) {
8295   // CHECK-LABEL: @test_mm256_maskz_broadcast_i32x4
8296   // 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>
8297   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8298   return _mm256_maskz_broadcast_i32x4(__M, _mm_loadu_si128(__A));
8299 }
8300 
test_mm256_mask_broadcastsd_pd(__m256d __O,__mmask8 __M,__m128d __A)8301 __m256d test_mm256_mask_broadcastsd_pd(__m256d __O, __mmask8 __M, __m128d __A) {
8302   // CHECK-LABEL: @test_mm256_mask_broadcastsd_pd
8303   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer
8304   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8305   return _mm256_mask_broadcastsd_pd(__O, __M, __A);
8306 }
8307 
test_mm256_maskz_broadcastsd_pd(__mmask8 __M,__m128d __A)8308 __m256d test_mm256_maskz_broadcastsd_pd(__mmask8 __M, __m128d __A) {
8309   // CHECK-LABEL: @test_mm256_maskz_broadcastsd_pd
8310   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer
8311   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8312   return _mm256_maskz_broadcastsd_pd(__M, __A);
8313 }
8314 
test_mm_mask_broadcastss_ps(__m128 __O,__mmask8 __M,__m128 __A)8315 __m128 test_mm_mask_broadcastss_ps(__m128 __O, __mmask8 __M, __m128 __A) {
8316   // CHECK-LABEL: @test_mm_mask_broadcastss_ps
8317   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer
8318   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8319   return _mm_mask_broadcastss_ps(__O, __M, __A);
8320 }
8321 
test_mm_maskz_broadcastss_ps(__mmask8 __M,__m128 __A)8322 __m128 test_mm_maskz_broadcastss_ps(__mmask8 __M, __m128 __A) {
8323   // CHECK-LABEL: @test_mm_maskz_broadcastss_ps
8324   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer
8325   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8326   return _mm_maskz_broadcastss_ps(__M, __A);
8327 }
8328 
test_mm256_mask_broadcastss_ps(__m256 __O,__mmask8 __M,__m128 __A)8329 __m256 test_mm256_mask_broadcastss_ps(__m256 __O, __mmask8 __M, __m128 __A) {
8330   // CHECK-LABEL: @test_mm256_mask_broadcastss_ps
8331   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer
8332   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8333   return _mm256_mask_broadcastss_ps(__O, __M, __A);
8334 }
8335 
test_mm256_maskz_broadcastss_ps(__mmask8 __M,__m128 __A)8336 __m256 test_mm256_maskz_broadcastss_ps(__mmask8 __M, __m128 __A) {
8337   // CHECK-LABEL: @test_mm256_maskz_broadcastss_ps
8338   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer
8339   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8340   return _mm256_maskz_broadcastss_ps(__M, __A);
8341 }
8342 
test_mm_mask_broadcastd_epi32(__m128i __O,__mmask8 __M,__m128i __A)8343 __m128i test_mm_mask_broadcastd_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
8344   // CHECK-LABEL: @test_mm_mask_broadcastd_epi32
8345   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
8346   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8347   return _mm_mask_broadcastd_epi32(__O, __M, __A);
8348 }
8349 
test_mm_maskz_broadcastd_epi32(__mmask8 __M,__m128i __A)8350 __m128i test_mm_maskz_broadcastd_epi32(__mmask8 __M, __m128i __A) {
8351   // CHECK-LABEL: @test_mm_maskz_broadcastd_epi32
8352   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
8353   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8354   return _mm_maskz_broadcastd_epi32(__M, __A);
8355 }
8356 
test_mm256_mask_broadcastd_epi32(__m256i __O,__mmask8 __M,__m128i __A)8357 __m256i test_mm256_mask_broadcastd_epi32(__m256i __O, __mmask8 __M, __m128i __A) {
8358   // CHECK-LABEL: @test_mm256_mask_broadcastd_epi32
8359   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer
8360   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8361   return _mm256_mask_broadcastd_epi32(__O, __M, __A);
8362 }
8363 
test_mm256_maskz_broadcastd_epi32(__mmask8 __M,__m128i __A)8364 __m256i test_mm256_maskz_broadcastd_epi32(__mmask8 __M, __m128i __A) {
8365   // CHECK-LABEL: @test_mm256_maskz_broadcastd_epi32
8366   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer
8367   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8368   return _mm256_maskz_broadcastd_epi32(__M, __A);
8369 }
8370 
test_mm_mask_broadcastq_epi64(__m128i __O,__mmask8 __M,__m128i __A)8371 __m128i test_mm_mask_broadcastq_epi64(__m128i __O, __mmask8 __M, __m128i __A) {
8372   // CHECK-LABEL: @test_mm_mask_broadcastq_epi64
8373   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer
8374   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
8375   return _mm_mask_broadcastq_epi64(__O, __M, __A);
8376 }
8377 
test_mm_maskz_broadcastq_epi64(__mmask8 __M,__m128i __A)8378 __m128i test_mm_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
8379   // CHECK-LABEL: @test_mm_maskz_broadcastq_epi64
8380   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer
8381   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
8382   return _mm_maskz_broadcastq_epi64(__M, __A);
8383 }
8384 
test_mm256_mask_broadcastq_epi64(__m256i __O,__mmask8 __M,__m128i __A)8385 __m256i test_mm256_mask_broadcastq_epi64(__m256i __O, __mmask8 __M, __m128i __A) {
8386   // CHECK-LABEL: @test_mm256_mask_broadcastq_epi64
8387   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer
8388   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8389   return _mm256_mask_broadcastq_epi64(__O, __M, __A);
8390 }
8391 
test_mm256_maskz_broadcastq_epi64(__mmask8 __M,__m128i __A)8392 __m256i test_mm256_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
8393   // CHECK-LABEL: @test_mm256_maskz_broadcastq_epi64
8394   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer
8395   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8396   return _mm256_maskz_broadcastq_epi64(__M, __A);
8397 }
8398 
test_mm_cvtsepi32_epi8(__m128i __A)8399 __m128i test_mm_cvtsepi32_epi8(__m128i __A) {
8400   // CHECK-LABEL: @test_mm_cvtsepi32_epi8
8401   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8402   return _mm_cvtsepi32_epi8(__A);
8403 }
8404 
test_mm_mask_cvtsepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)8405 __m128i test_mm_mask_cvtsepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8406   // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi8
8407   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8408   return _mm_mask_cvtsepi32_epi8(__O, __M, __A);
8409 }
8410 
test_mm_maskz_cvtsepi32_epi8(__mmask8 __M,__m128i __A)8411 __m128i test_mm_maskz_cvtsepi32_epi8(__mmask8 __M, __m128i __A) {
8412   // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi8
8413   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8414   return _mm_maskz_cvtsepi32_epi8(__M, __A);
8415 }
8416 
test_mm_mask_cvtsepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8417 void test_mm_mask_cvtsepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8418   // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi8
8419   // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.128
8420   return _mm_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
8421 }
8422 
test_mm256_cvtsepi32_epi8(__m256i __A)8423 __m128i test_mm256_cvtsepi32_epi8(__m256i __A) {
8424   // CHECK-LABEL: @test_mm256_cvtsepi32_epi8
8425   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8426   return _mm256_cvtsepi32_epi8(__A);
8427 }
8428 
test_mm256_mask_cvtsepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)8429 __m128i test_mm256_mask_cvtsepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8430   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi8
8431   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8432   return _mm256_mask_cvtsepi32_epi8(__O, __M, __A);
8433 }
8434 
test_mm256_maskz_cvtsepi32_epi8(__mmask8 __M,__m256i __A)8435 __m128i test_mm256_maskz_cvtsepi32_epi8(__mmask8 __M, __m256i __A) {
8436   // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi8
8437   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8438   return _mm256_maskz_cvtsepi32_epi8(__M, __A);
8439 }
8440 
test_mm256_mask_cvtsepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8441 void test_mm256_mask_cvtsepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8442   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi8
8443   // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.256
8444   return _mm256_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
8445 }
8446 
test_mm_cvtsepi32_epi16(__m128i __A)8447 __m128i test_mm_cvtsepi32_epi16(__m128i __A) {
8448   // CHECK-LABEL: @test_mm_cvtsepi32_epi16
8449   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8450   return _mm_cvtsepi32_epi16(__A);
8451 }
8452 
test_mm_mask_cvtsepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)8453 __m128i test_mm_mask_cvtsepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8454   // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi16
8455   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8456   return _mm_mask_cvtsepi32_epi16(__O, __M, __A);
8457 }
8458 
test_mm_maskz_cvtsepi32_epi16(__mmask8 __M,__m128i __A)8459 __m128i test_mm_maskz_cvtsepi32_epi16(__mmask8 __M, __m128i __A) {
8460   // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi16
8461   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8462   return _mm_maskz_cvtsepi32_epi16(__M, __A);
8463 }
8464 
test_mm_mask_cvtsepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8465 void test_mm_mask_cvtsepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8466   // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi16
8467   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.128
8468   return _mm_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
8469 }
8470 
test_mm256_cvtsepi32_epi16(__m256i __A)8471 __m128i test_mm256_cvtsepi32_epi16(__m256i __A) {
8472   // CHECK-LABEL: @test_mm256_cvtsepi32_epi16
8473   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8474   return _mm256_cvtsepi32_epi16(__A);
8475 }
8476 
test_mm256_mask_cvtsepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)8477 __m128i test_mm256_mask_cvtsepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8478   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi16
8479   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8480   return _mm256_mask_cvtsepi32_epi16(__O, __M, __A);
8481 }
8482 
test_mm256_maskz_cvtsepi32_epi16(__mmask8 __M,__m256i __A)8483 __m128i test_mm256_maskz_cvtsepi32_epi16(__mmask8 __M, __m256i __A) {
8484   // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi16
8485   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8486   return _mm256_maskz_cvtsepi32_epi16(__M, __A);
8487 }
8488 
test_mm256_mask_cvtsepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8489 void test_mm256_mask_cvtsepi32_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8490   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi16
8491   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.256
8492   return _mm256_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
8493 }
8494 
test_mm_cvtsepi64_epi8(__m128i __A)8495 __m128i test_mm_cvtsepi64_epi8(__m128i __A) {
8496   // CHECK-LABEL: @test_mm_cvtsepi64_epi8
8497   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8498   return _mm_cvtsepi64_epi8(__A);
8499 }
8500 
test_mm_mask_cvtsepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)8501 __m128i test_mm_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8502   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi8
8503   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8504   return _mm_mask_cvtsepi64_epi8(__O, __M, __A);
8505 }
8506 
test_mm_maskz_cvtsepi64_epi8(__mmask8 __M,__m128i __A)8507 __m128i test_mm_maskz_cvtsepi64_epi8(__mmask8 __M, __m128i __A) {
8508   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi8
8509   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8510   return _mm_maskz_cvtsepi64_epi8(__M, __A);
8511 }
8512 
test_mm_mask_cvtsepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8513 void test_mm_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8514   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi8
8515   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.128
8516   return _mm_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
8517 }
8518 
test_mm256_cvtsepi64_epi8(__m256i __A)8519 __m128i test_mm256_cvtsepi64_epi8(__m256i __A) {
8520   // CHECK-LABEL: @test_mm256_cvtsepi64_epi8
8521   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8522   return _mm256_cvtsepi64_epi8(__A);
8523 }
8524 
test_mm256_mask_cvtsepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)8525 __m128i test_mm256_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8526   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi8
8527   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8528   return _mm256_mask_cvtsepi64_epi8(__O, __M, __A);
8529 }
8530 
test_mm256_maskz_cvtsepi64_epi8(__mmask8 __M,__m256i __A)8531 __m128i test_mm256_maskz_cvtsepi64_epi8(__mmask8 __M, __m256i __A) {
8532   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi8
8533   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8534   return _mm256_maskz_cvtsepi64_epi8(__M, __A);
8535 }
8536 
test_mm256_mask_cvtsepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8537 void test_mm256_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8538   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi8
8539   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.256
8540   return _mm256_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
8541 }
8542 
test_mm_cvtsepi64_epi32(__m128i __A)8543 __m128i test_mm_cvtsepi64_epi32(__m128i __A) {
8544   // CHECK-LABEL: @test_mm_cvtsepi64_epi32
8545   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8546   return _mm_cvtsepi64_epi32(__A);
8547 }
8548 
test_mm_mask_cvtsepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)8549 __m128i test_mm_mask_cvtsepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
8550   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi32
8551   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8552   return _mm_mask_cvtsepi64_epi32(__O, __M, __A);
8553 }
8554 
test_mm_maskz_cvtsepi64_epi32(__mmask8 __M,__m128i __A)8555 __m128i test_mm_maskz_cvtsepi64_epi32(__mmask8 __M, __m128i __A) {
8556   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi32
8557   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8558   return _mm_maskz_cvtsepi64_epi32(__M, __A);
8559 }
8560 
test_mm_mask_cvtsepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)8561 void test_mm_mask_cvtsepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
8562   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi32
8563   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.128
8564   return _mm_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
8565 }
8566 
test_mm256_cvtsepi64_epi32(__m256i __A)8567 __m128i test_mm256_cvtsepi64_epi32(__m256i __A) {
8568   // CHECK-LABEL: @test_mm256_cvtsepi64_epi32
8569   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8570   return _mm256_cvtsepi64_epi32(__A);
8571 }
8572 
test_mm256_mask_cvtsepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)8573 __m128i test_mm256_mask_cvtsepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
8574   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi32
8575   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8576   return _mm256_mask_cvtsepi64_epi32(__O, __M, __A);
8577 }
8578 
test_mm256_maskz_cvtsepi64_epi32(__mmask8 __M,__m256i __A)8579 __m128i test_mm256_maskz_cvtsepi64_epi32(__mmask8 __M, __m256i __A) {
8580   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi32
8581   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8582   return _mm256_maskz_cvtsepi64_epi32(__M, __A);
8583 }
8584 
test_mm256_mask_cvtsepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)8585 void test_mm256_mask_cvtsepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
8586   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi32
8587   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.256
8588   return _mm256_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
8589 }
8590 
test_mm_cvtsepi64_epi16(__m128i __A)8591 __m128i test_mm_cvtsepi64_epi16(__m128i __A) {
8592   // CHECK-LABEL: @test_mm_cvtsepi64_epi16
8593   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8594   return _mm_cvtsepi64_epi16(__A);
8595 }
8596 
test_mm_mask_cvtsepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)8597 __m128i test_mm_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8598   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi16
8599   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8600   return _mm_mask_cvtsepi64_epi16(__O, __M, __A);
8601 }
8602 
test_mm_maskz_cvtsepi64_epi16(__mmask8 __M,__m128i __A)8603 __m128i test_mm_maskz_cvtsepi64_epi16(__mmask8 __M, __m128i __A) {
8604   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi16
8605   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8606   return _mm_maskz_cvtsepi64_epi16(__M, __A);
8607 }
8608 
test_mm_mask_cvtsepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8609 void test_mm_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8610   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi16
8611   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.128
8612   return _mm_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
8613 }
8614 
test_mm256_cvtsepi64_epi16(__m256i __A)8615 __m128i test_mm256_cvtsepi64_epi16(__m256i __A) {
8616   // CHECK-LABEL: @test_mm256_cvtsepi64_epi16
8617   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8618   return _mm256_cvtsepi64_epi16(__A);
8619 }
8620 
test_mm256_mask_cvtsepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)8621 __m128i test_mm256_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8622   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi16
8623   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8624   return _mm256_mask_cvtsepi64_epi16(__O, __M, __A);
8625 }
8626 
test_mm256_maskz_cvtsepi64_epi16(__mmask8 __M,__m256i __A)8627 __m128i test_mm256_maskz_cvtsepi64_epi16(__mmask8 __M, __m256i __A) {
8628   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi16
8629   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8630   return _mm256_maskz_cvtsepi64_epi16(__M, __A);
8631 }
8632 
test_mm256_mask_cvtsepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8633 void test_mm256_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8634   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi16
8635   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.256
8636   return _mm256_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
8637 }
8638 
test_mm_cvtusepi32_epi8(__m128i __A)8639 __m128i test_mm_cvtusepi32_epi8(__m128i __A) {
8640   // CHECK-LABEL: @test_mm_cvtusepi32_epi8
8641   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8642   return _mm_cvtusepi32_epi8(__A);
8643 }
8644 
test_mm_mask_cvtusepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)8645 __m128i test_mm_mask_cvtusepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8646   // CHECK-LABEL: @test_mm_mask_cvtusepi32_epi8
8647   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8648   return _mm_mask_cvtusepi32_epi8(__O, __M, __A);
8649 }
8650 
test_mm_maskz_cvtusepi32_epi8(__mmask8 __M,__m128i __A)8651 __m128i test_mm_maskz_cvtusepi32_epi8(__mmask8 __M, __m128i __A) {
8652   // CHECK-LABEL: @test_mm_maskz_cvtusepi32_epi8
8653   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8654   return _mm_maskz_cvtusepi32_epi8(__M, __A);
8655 }
8656 
test_mm_mask_cvtusepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8657 void test_mm_mask_cvtusepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8658   // CHECK-LABEL: @test_mm_mask_cvtusepi32_storeu_epi8
8659   // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.128
8660   return _mm_mask_cvtusepi32_storeu_epi8(__P, __M, __A);
8661 }
8662 
test_mm256_cvtusepi32_epi8(__m256i __A)8663 __m128i test_mm256_cvtusepi32_epi8(__m256i __A) {
8664   // CHECK-LABEL: @test_mm256_cvtusepi32_epi8
8665   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8666   return _mm256_cvtusepi32_epi8(__A);
8667 }
8668 
test_mm256_mask_cvtusepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)8669 __m128i test_mm256_mask_cvtusepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8670   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_epi8
8671   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8672   return _mm256_mask_cvtusepi32_epi8(__O, __M, __A);
8673 }
8674 
test_mm256_maskz_cvtusepi32_epi8(__mmask8 __M,__m256i __A)8675 __m128i test_mm256_maskz_cvtusepi32_epi8(__mmask8 __M, __m256i __A) {
8676   // CHECK-LABEL: @test_mm256_maskz_cvtusepi32_epi8
8677   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8678   return _mm256_maskz_cvtusepi32_epi8(__M, __A);
8679 }
8680 
test_mm256_mask_cvtusepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8681 void test_mm256_mask_cvtusepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8682   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_storeu_epi8
8683   // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.256
8684   return _mm256_mask_cvtusepi32_storeu_epi8(__P, __M, __A);
8685 }
8686 
test_mm_cvtusepi32_epi16(__m128i __A)8687 __m128i test_mm_cvtusepi32_epi16(__m128i __A) {
8688   // CHECK-LABEL: @test_mm_cvtusepi32_epi16
8689   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8690   return _mm_cvtusepi32_epi16(__A);
8691 }
8692 
test_mm_mask_cvtusepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)8693 __m128i test_mm_mask_cvtusepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8694   // CHECK-LABEL: @test_mm_mask_cvtusepi32_epi16
8695   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8696   return _mm_mask_cvtusepi32_epi16(__O, __M, __A);
8697 }
8698 
test_mm_maskz_cvtusepi32_epi16(__mmask8 __M,__m128i __A)8699 __m128i test_mm_maskz_cvtusepi32_epi16(__mmask8 __M, __m128i __A) {
8700   // CHECK-LABEL: @test_mm_maskz_cvtusepi32_epi16
8701   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8702   return _mm_maskz_cvtusepi32_epi16(__M, __A);
8703 }
8704 
test_mm_mask_cvtusepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8705 void test_mm_mask_cvtusepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8706   // CHECK-LABEL: @test_mm_mask_cvtusepi32_storeu_epi16
8707   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.128
8708   return _mm_mask_cvtusepi32_storeu_epi16(__P, __M, __A);
8709 }
8710 
test_mm256_cvtusepi32_epi16(__m256i __A)8711 __m128i test_mm256_cvtusepi32_epi16(__m256i __A) {
8712   // CHECK-LABEL: @test_mm256_cvtusepi32_epi16
8713   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8714   return _mm256_cvtusepi32_epi16(__A);
8715 }
8716 
test_mm256_mask_cvtusepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)8717 __m128i test_mm256_mask_cvtusepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8718   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_epi16
8719   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8720   return _mm256_mask_cvtusepi32_epi16(__O, __M, __A);
8721 }
8722 
test_mm256_maskz_cvtusepi32_epi16(__mmask8 __M,__m256i __A)8723 __m128i test_mm256_maskz_cvtusepi32_epi16(__mmask8 __M, __m256i __A) {
8724   // CHECK-LABEL: @test_mm256_maskz_cvtusepi32_epi16
8725   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8726   return _mm256_maskz_cvtusepi32_epi16(__M, __A);
8727 }
8728 
test_mm256_mask_cvtusepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8729 void test_mm256_mask_cvtusepi32_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8730   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_storeu_epi16
8731   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.256
8732   return _mm256_mask_cvtusepi32_storeu_epi16(__P, __M, __A);
8733 }
8734 
test_mm_cvtusepi64_epi8(__m128i __A)8735 __m128i test_mm_cvtusepi64_epi8(__m128i __A) {
8736   // CHECK-LABEL: @test_mm_cvtusepi64_epi8
8737   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8738   return _mm_cvtusepi64_epi8(__A);
8739 }
8740 
test_mm_mask_cvtusepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)8741 __m128i test_mm_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8742   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi8
8743   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8744   return _mm_mask_cvtusepi64_epi8(__O, __M, __A);
8745 }
8746 
test_mm_maskz_cvtusepi64_epi8(__mmask8 __M,__m128i __A)8747 __m128i test_mm_maskz_cvtusepi64_epi8(__mmask8 __M, __m128i __A) {
8748   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi8
8749   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8750   return _mm_maskz_cvtusepi64_epi8(__M, __A);
8751 }
8752 
test_mm_mask_cvtusepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8753 void test_mm_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8754   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi8
8755   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.128
8756   return _mm_mask_cvtusepi64_storeu_epi8(__P, __M, __A);
8757 }
8758 
test_mm256_cvtusepi64_epi8(__m256i __A)8759 __m128i test_mm256_cvtusepi64_epi8(__m256i __A) {
8760   // CHECK-LABEL: @test_mm256_cvtusepi64_epi8
8761   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8762   return _mm256_cvtusepi64_epi8(__A);
8763 }
8764 
test_mm256_mask_cvtusepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)8765 __m128i test_mm256_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8766   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi8
8767   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8768   return _mm256_mask_cvtusepi64_epi8(__O, __M, __A);
8769 }
8770 
test_mm256_maskz_cvtusepi64_epi8(__mmask8 __M,__m256i __A)8771 __m128i test_mm256_maskz_cvtusepi64_epi8(__mmask8 __M, __m256i __A) {
8772   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi8
8773   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8774   return _mm256_maskz_cvtusepi64_epi8(__M, __A);
8775 }
8776 
test_mm256_mask_cvtusepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8777 void test_mm256_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8778   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi8
8779   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.256
8780   return _mm256_mask_cvtusepi64_storeu_epi8(__P, __M, __A);
8781 }
8782 
test_mm_cvtusepi64_epi32(__m128i __A)8783 __m128i test_mm_cvtusepi64_epi32(__m128i __A) {
8784   // CHECK-LABEL: @test_mm_cvtusepi64_epi32
8785   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8786   return _mm_cvtusepi64_epi32(__A);
8787 }
8788 
test_mm_mask_cvtusepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)8789 __m128i test_mm_mask_cvtusepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
8790   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi32
8791   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8792   return _mm_mask_cvtusepi64_epi32(__O, __M, __A);
8793 }
8794 
test_mm_maskz_cvtusepi64_epi32(__mmask8 __M,__m128i __A)8795 __m128i test_mm_maskz_cvtusepi64_epi32(__mmask8 __M, __m128i __A) {
8796   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi32
8797   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8798   return _mm_maskz_cvtusepi64_epi32(__M, __A);
8799 }
8800 
test_mm_mask_cvtusepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)8801 void test_mm_mask_cvtusepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
8802   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi32
8803   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.128
8804   return _mm_mask_cvtusepi64_storeu_epi32(__P, __M, __A);
8805 }
8806 
test_mm256_cvtusepi64_epi32(__m256i __A)8807 __m128i test_mm256_cvtusepi64_epi32(__m256i __A) {
8808   // CHECK-LABEL: @test_mm256_cvtusepi64_epi32
8809   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8810   return _mm256_cvtusepi64_epi32(__A);
8811 }
8812 
test_mm256_mask_cvtusepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)8813 __m128i test_mm256_mask_cvtusepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
8814   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi32
8815   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8816   return _mm256_mask_cvtusepi64_epi32(__O, __M, __A);
8817 }
8818 
test_mm256_maskz_cvtusepi64_epi32(__mmask8 __M,__m256i __A)8819 __m128i test_mm256_maskz_cvtusepi64_epi32(__mmask8 __M, __m256i __A) {
8820   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi32
8821   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8822   return _mm256_maskz_cvtusepi64_epi32(__M, __A);
8823 }
8824 
test_mm256_mask_cvtusepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)8825 void test_mm256_mask_cvtusepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
8826   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi32
8827   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.256
8828   return _mm256_mask_cvtusepi64_storeu_epi32(__P, __M, __A);
8829 }
8830 
test_mm_cvtusepi64_epi16(__m128i __A)8831 __m128i test_mm_cvtusepi64_epi16(__m128i __A) {
8832   // CHECK-LABEL: @test_mm_cvtusepi64_epi16
8833   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8834   return _mm_cvtusepi64_epi16(__A);
8835 }
8836 
test_mm_mask_cvtusepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)8837 __m128i test_mm_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8838   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi16
8839   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8840   return _mm_mask_cvtusepi64_epi16(__O, __M, __A);
8841 }
8842 
test_mm_maskz_cvtusepi64_epi16(__mmask8 __M,__m128i __A)8843 __m128i test_mm_maskz_cvtusepi64_epi16(__mmask8 __M, __m128i __A) {
8844   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi16
8845   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8846   return _mm_maskz_cvtusepi64_epi16(__M, __A);
8847 }
8848 
test_mm_mask_cvtusepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8849 void test_mm_mask_cvtusepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8850   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi16
8851   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.128
8852   return _mm_mask_cvtusepi64_storeu_epi16(__P, __M, __A);
8853 }
8854 
test_mm256_cvtusepi64_epi16(__m256i __A)8855 __m128i test_mm256_cvtusepi64_epi16(__m256i __A) {
8856   // CHECK-LABEL: @test_mm256_cvtusepi64_epi16
8857   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8858   return _mm256_cvtusepi64_epi16(__A);
8859 }
8860 
test_mm256_mask_cvtusepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)8861 __m128i test_mm256_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8862   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi16
8863   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8864   return _mm256_mask_cvtusepi64_epi16(__O, __M, __A);
8865 }
8866 
test_mm256_maskz_cvtusepi64_epi16(__mmask8 __M,__m256i __A)8867 __m128i test_mm256_maskz_cvtusepi64_epi16(__mmask8 __M, __m256i __A) {
8868   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi16
8869   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8870   return _mm256_maskz_cvtusepi64_epi16(__M, __A);
8871 }
8872 
test_mm256_mask_cvtusepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8873 void test_mm256_mask_cvtusepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8874   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi16
8875   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.256
8876   return _mm256_mask_cvtusepi64_storeu_epi16(__P, __M, __A);
8877 }
8878 
test_mm_cvtepi32_epi8(__m128i __A)8879 __m128i test_mm_cvtepi32_epi8(__m128i __A) {
8880   // CHECK-LABEL: @test_mm_cvtepi32_epi8
8881   // CHECK: trunc <4 x i32> %{{.*}} to <4 x i8>
8882   // 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>
8883   return _mm_cvtepi32_epi8(__A);
8884 }
8885 
test_mm_mask_cvtepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)8886 __m128i test_mm_mask_cvtepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8887   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi8
8888   // CHECK: @llvm.x86.avx512.mask.pmov.db.128
8889   return _mm_mask_cvtepi32_epi8(__O, __M, __A);
8890 }
8891 
test_mm_maskz_cvtepi32_epi8(__mmask8 __M,__m128i __A)8892 __m128i test_mm_maskz_cvtepi32_epi8(__mmask8 __M, __m128i __A) {
8893   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi8
8894   // CHECK: @llvm.x86.avx512.mask.pmov.db.128
8895   return _mm_maskz_cvtepi32_epi8(__M, __A);
8896 }
8897 
test_mm_mask_cvtepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8898 void test_mm_mask_cvtepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8899   // CHECK-LABEL: @test_mm_mask_cvtepi32_storeu_epi8
8900   // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.128
8901   return _mm_mask_cvtepi32_storeu_epi8(__P, __M, __A);
8902 }
8903 
test_mm256_cvtepi32_epi8(__m256i __A)8904 __m128i test_mm256_cvtepi32_epi8(__m256i __A) {
8905   // CHECK-LABEL: @test_mm256_cvtepi32_epi8
8906   // CHECK: trunc <8 x i32> %{{.*}} to <8 x i8>
8907   // 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>
8908   return _mm256_cvtepi32_epi8(__A);
8909 }
8910 
test_mm256_mask_cvtepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)8911 __m128i test_mm256_mask_cvtepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8912   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi8
8913   // CHECK: @llvm.x86.avx512.mask.pmov.db.256
8914   return _mm256_mask_cvtepi32_epi8(__O, __M, __A);
8915 }
8916 
test_mm256_maskz_cvtepi32_epi8(__mmask8 __M,__m256i __A)8917 __m128i test_mm256_maskz_cvtepi32_epi8(__mmask8 __M, __m256i __A) {
8918   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi8
8919   // CHECK: @llvm.x86.avx512.mask.pmov.db.256
8920   return _mm256_maskz_cvtepi32_epi8(__M, __A);
8921 }
8922 
test_mm256_mask_cvtepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8923 void test_mm256_mask_cvtepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8924   // CHECK-LABEL: @test_mm256_mask_cvtepi32_storeu_epi8
8925   // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.256
8926   return _mm256_mask_cvtepi32_storeu_epi8(__P, __M, __A);
8927 }
8928 
test_mm_cvtepi32_epi16(__m128i __A)8929 __m128i test_mm_cvtepi32_epi16(__m128i __A) {
8930   // CHECK-LABEL: @test_mm_cvtepi32_epi16
8931   // CHECK: trunc <4 x i32> %{{.*}} to <4 x i16>
8932   // 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>
8933   return _mm_cvtepi32_epi16(__A);
8934 }
8935 
test_mm_mask_cvtepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)8936 __m128i test_mm_mask_cvtepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8937   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi16
8938   // CHECK: @llvm.x86.avx512.mask.pmov.dw.128
8939   return _mm_mask_cvtepi32_epi16(__O, __M, __A);
8940 }
8941 
test_mm_maskz_cvtepi32_epi16(__mmask8 __M,__m128i __A)8942 __m128i test_mm_maskz_cvtepi32_epi16(__mmask8 __M, __m128i __A) {
8943   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi16
8944   // CHECK: @llvm.x86.avx512.mask.pmov.dw.128
8945   return _mm_maskz_cvtepi32_epi16(__M, __A);
8946 }
8947 
test_mm_mask_cvtepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8948 void test_mm_mask_cvtepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8949   // CHECK-LABEL: @test_mm_mask_cvtepi32_storeu_epi16
8950   // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.128
8951   return _mm_mask_cvtepi32_storeu_epi16(__P, __M, __A);
8952 }
8953 
test_mm256_cvtepi32_epi16(__m256i __A)8954 __m128i test_mm256_cvtepi32_epi16(__m256i __A) {
8955   // CHECK-LABEL: @test_mm256_cvtepi32_epi16
8956   // CHECK: trunc <8 x i32> %{{.*}} to <8 x i16>
8957   return _mm256_cvtepi32_epi16(__A);
8958 }
8959 
test_mm256_mask_cvtepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)8960 __m128i test_mm256_mask_cvtepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8961   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi16
8962   // CHECK: @llvm.x86.avx512.mask.pmov.dw.256
8963   return _mm256_mask_cvtepi32_epi16(__O, __M, __A);
8964 }
8965 
test_mm256_maskz_cvtepi32_epi16(__mmask8 __M,__m256i __A)8966 __m128i test_mm256_maskz_cvtepi32_epi16(__mmask8 __M, __m256i __A) {
8967   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi16
8968   // CHECK: @llvm.x86.avx512.mask.pmov.dw.256
8969   return _mm256_maskz_cvtepi32_epi16(__M, __A);
8970 }
8971 
test_mm256_mask_cvtepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8972 void test_mm256_mask_cvtepi32_storeu_epi16(void *  __P, __mmask8 __M, __m256i __A) {
8973   // CHECK-LABEL: @test_mm256_mask_cvtepi32_storeu_epi16
8974   // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.256
8975   return _mm256_mask_cvtepi32_storeu_epi16(__P, __M, __A);
8976 }
8977 
test_mm_cvtepi64_epi8(__m128i __A)8978 __m128i test_mm_cvtepi64_epi8(__m128i __A) {
8979   // CHECK-LABEL: @test_mm_cvtepi64_epi8
8980   // CHECK: trunc <2 x i64> %{{.*}} to <2 x i8>
8981   // 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>
8982   return _mm_cvtepi64_epi8(__A);
8983 }
8984 
test_mm_mask_cvtepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)8985 __m128i test_mm_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8986   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi8
8987   // CHECK: @llvm.x86.avx512.mask.pmov.qb.128
8988   return _mm_mask_cvtepi64_epi8(__O, __M, __A);
8989 }
8990 
test_mm_maskz_cvtepi64_epi8(__mmask8 __M,__m128i __A)8991 __m128i test_mm_maskz_cvtepi64_epi8(__mmask8 __M, __m128i __A) {
8992   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi8
8993   // CHECK: @llvm.x86.avx512.mask.pmov.qb.128
8994   return _mm_maskz_cvtepi64_epi8(__M, __A);
8995 }
8996 
test_mm_mask_cvtepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8997 void test_mm_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8998   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi8
8999   // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.128
9000   return _mm_mask_cvtepi64_storeu_epi8(__P, __M, __A);
9001 }
9002 
test_mm256_cvtepi64_epi8(__m256i __A)9003 __m128i test_mm256_cvtepi64_epi8(__m256i __A) {
9004   // CHECK-LABEL: @test_mm256_cvtepi64_epi8
9005   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i8>
9006   // 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>
9007   return _mm256_cvtepi64_epi8(__A);
9008 }
9009 
test_mm256_mask_cvtepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)9010 __m128i test_mm256_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
9011   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi8
9012   // CHECK: @llvm.x86.avx512.mask.pmov.qb.256
9013   return _mm256_mask_cvtepi64_epi8(__O, __M, __A);
9014 }
9015 
test_mm256_maskz_cvtepi64_epi8(__mmask8 __M,__m256i __A)9016 __m128i test_mm256_maskz_cvtepi64_epi8(__mmask8 __M, __m256i __A) {
9017   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi8
9018   // CHECK: @llvm.x86.avx512.mask.pmov.qb.256
9019   return _mm256_maskz_cvtepi64_epi8(__M, __A);
9020 }
9021 
test_mm256_mask_cvtepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)9022 void test_mm256_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
9023   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi8
9024   // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.256
9025   return _mm256_mask_cvtepi64_storeu_epi8(__P, __M, __A);
9026 }
9027 
test_mm_cvtepi64_epi32(__m128i __A)9028 __m128i test_mm_cvtepi64_epi32(__m128i __A) {
9029   // CHECK-LABEL: @test_mm_cvtepi64_epi32
9030   // CHECK: trunc <2 x i64> %{{.*}} to <2 x i32>
9031   // CHECK: shufflevector <2 x i32> %{{.*}}, <2 x i32> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
9032   return _mm_cvtepi64_epi32(__A);
9033 }
9034 
test_mm_mask_cvtepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)9035 __m128i test_mm_mask_cvtepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
9036   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi32
9037   // CHECK: @llvm.x86.avx512.mask.pmov.qd.128
9038   return _mm_mask_cvtepi64_epi32(__O, __M, __A);
9039 }
9040 
test_mm_maskz_cvtepi64_epi32(__mmask8 __M,__m128i __A)9041 __m128i test_mm_maskz_cvtepi64_epi32(__mmask8 __M, __m128i __A) {
9042   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi32
9043   // CHECK: @llvm.x86.avx512.mask.pmov.qd.128
9044   return _mm_maskz_cvtepi64_epi32(__M, __A);
9045 }
9046 
test_mm_mask_cvtepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)9047 void test_mm_mask_cvtepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
9048   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi32
9049   // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.128
9050   return _mm_mask_cvtepi64_storeu_epi32(__P, __M, __A);
9051 }
9052 
test_mm256_cvtepi64_epi32(__m256i __A)9053 __m128i test_mm256_cvtepi64_epi32(__m256i __A) {
9054   // CHECK-LABEL: @test_mm256_cvtepi64_epi32
9055   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
9056   return _mm256_cvtepi64_epi32(__A);
9057 }
9058 
test_mm256_mask_cvtepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)9059 __m128i test_mm256_mask_cvtepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
9060   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi32
9061   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
9062   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9063   return _mm256_mask_cvtepi64_epi32(__O, __M, __A);
9064 }
9065 
test_mm256_maskz_cvtepi64_epi32(__mmask8 __M,__m256i __A)9066 __m128i test_mm256_maskz_cvtepi64_epi32(__mmask8 __M, __m256i __A) {
9067   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi32
9068   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
9069   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9070   return _mm256_maskz_cvtepi64_epi32(__M, __A);
9071 }
9072 
test_mm256_mask_cvtepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)9073 void test_mm256_mask_cvtepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
9074   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi32
9075   // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.256
9076   return _mm256_mask_cvtepi64_storeu_epi32(__P, __M, __A);
9077 }
9078 
test_mm_cvtepi64_epi16(__m128i __A)9079 __m128i test_mm_cvtepi64_epi16(__m128i __A) {
9080   // CHECK-LABEL: @test_mm_cvtepi64_epi16
9081   // CHECK: trunc <2 x i64> %{{.*}} to <2 x i16>
9082   // 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>
9083   return _mm_cvtepi64_epi16(__A);
9084 }
9085 
test_mm_mask_cvtepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)9086 __m128i test_mm_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
9087   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi16
9088   // CHECK: @llvm.x86.avx512.mask.pmov.qw.128
9089   return _mm_mask_cvtepi64_epi16(__O, __M, __A);
9090 }
9091 
test_mm_maskz_cvtepi64_epi16(__mmask8 __M,__m128i __A)9092 __m128i test_mm_maskz_cvtepi64_epi16(__mmask8 __M, __m128i __A) {
9093   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi16
9094   // CHECK: @llvm.x86.avx512.mask.pmov.qw.128
9095   return _mm_maskz_cvtepi64_epi16(__M, __A);
9096 }
9097 
test_mm_mask_cvtepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)9098 void test_mm_mask_cvtepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
9099   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi16
9100   // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.128
9101   return _mm_mask_cvtepi64_storeu_epi16(__P, __M, __A);
9102 }
9103 
test_mm256_cvtepi64_epi16(__m256i __A)9104 __m128i test_mm256_cvtepi64_epi16(__m256i __A) {
9105   // CHECK-LABEL: @test_mm256_cvtepi64_epi16
9106   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i16>
9107   // 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>
9108   return _mm256_cvtepi64_epi16(__A);
9109 }
9110 
test_mm256_mask_cvtepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)9111 __m128i test_mm256_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
9112   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi16
9113   // CHECK: @llvm.x86.avx512.mask.pmov.qw.256
9114   return _mm256_mask_cvtepi64_epi16(__O, __M, __A);
9115 }
9116 
test_mm256_maskz_cvtepi64_epi16(__mmask8 __M,__m256i __A)9117 __m128i test_mm256_maskz_cvtepi64_epi16(__mmask8 __M, __m256i __A) {
9118   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi16
9119   // CHECK: @llvm.x86.avx512.mask.pmov.qw.256
9120   return _mm256_maskz_cvtepi64_epi16(__M, __A);
9121 }
9122 
test_mm256_mask_cvtepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)9123 void test_mm256_mask_cvtepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
9124   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi16
9125   // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.256
9126   return _mm256_mask_cvtepi64_storeu_epi16(__P, __M, __A);
9127 }
9128 
test_mm256_extractf32x4_ps(__m256 __A)9129 __m128 test_mm256_extractf32x4_ps(__m256 __A) {
9130   // CHECK-LABEL: @test_mm256_extractf32x4_ps
9131   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9132   return _mm256_extractf32x4_ps(__A, 1);
9133 }
9134 
test_mm256_mask_extractf32x4_ps(__m128 __W,__mmask8 __U,__m256 __A)9135 __m128 test_mm256_mask_extractf32x4_ps(__m128 __W, __mmask8 __U, __m256 __A) {
9136   // CHECK-LABEL: @test_mm256_mask_extractf32x4_ps
9137   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9138   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9139   return _mm256_mask_extractf32x4_ps(__W, __U, __A, 1);
9140 }
9141 
test_mm256_maskz_extractf32x4_ps(__mmask8 __U,__m256 __A)9142 __m128 test_mm256_maskz_extractf32x4_ps(__mmask8 __U, __m256 __A) {
9143   // CHECK-LABEL: @test_mm256_maskz_extractf32x4_ps
9144   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9145   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9146   return _mm256_maskz_extractf32x4_ps(__U, __A, 1);
9147 }
9148 
test_mm256_extracti32x4_epi32(__m256i __A)9149 __m128i test_mm256_extracti32x4_epi32(__m256i __A) {
9150   // CHECK-LABEL: @test_mm256_extracti32x4_epi32
9151   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9152   return _mm256_extracti32x4_epi32(__A, 1);
9153 }
9154 
test_mm256_mask_extracti32x4_epi32(__m128i __W,__mmask8 __U,__m256i __A)9155 __m128i test_mm256_mask_extracti32x4_epi32(__m128i __W, __mmask8 __U, __m256i __A) {
9156   // CHECK-LABEL: @test_mm256_mask_extracti32x4_epi32
9157   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9158   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9159   return _mm256_mask_extracti32x4_epi32(__W, __U, __A, 1);
9160 }
9161 
test_mm256_maskz_extracti32x4_epi32(__mmask8 __U,__m256i __A)9162 __m128i test_mm256_maskz_extracti32x4_epi32(__mmask8 __U, __m256i __A) {
9163   // CHECK-LABEL: @test_mm256_maskz_extracti32x4_epi32
9164   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9165   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9166   return _mm256_maskz_extracti32x4_epi32(__U, __A, 1);
9167 }
9168 
test_mm256_insertf32x4(__m256 __A,__m128 __B)9169 __m256 test_mm256_insertf32x4(__m256 __A, __m128 __B) {
9170   // CHECK-LABEL: @test_mm256_insertf32x4
9171   // 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>
9172   return _mm256_insertf32x4(__A, __B, 1);
9173 }
9174 
test_mm256_mask_insertf32x4(__m256 __W,__mmask8 __U,__m256 __A,__m128 __B)9175 __m256 test_mm256_mask_insertf32x4(__m256 __W, __mmask8 __U, __m256 __A, __m128 __B) {
9176   // CHECK-LABEL: @test_mm256_mask_insertf32x4
9177   // 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>
9178   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9179   return _mm256_mask_insertf32x4(__W, __U, __A, __B, 1);
9180 }
9181 
test_mm256_maskz_insertf32x4(__mmask8 __U,__m256 __A,__m128 __B)9182 __m256 test_mm256_maskz_insertf32x4(__mmask8 __U, __m256 __A, __m128 __B) {
9183   // CHECK-LABEL: @test_mm256_maskz_insertf32x4
9184   // 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>
9185   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9186   return _mm256_maskz_insertf32x4(__U, __A, __B, 1);
9187 }
9188 
test_mm256_inserti32x4(__m256i __A,__m128i __B)9189 __m256i test_mm256_inserti32x4(__m256i __A, __m128i __B) {
9190   // CHECK-LABEL: @test_mm256_inserti32x4
9191   // 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>
9192   return _mm256_inserti32x4(__A, __B, 1);
9193 }
9194 
test_mm256_mask_inserti32x4(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)9195 __m256i test_mm256_mask_inserti32x4(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
9196   // CHECK-LABEL: @test_mm256_mask_inserti32x4
9197   // 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>
9198   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9199   return _mm256_mask_inserti32x4(__W, __U, __A, __B, 1);
9200 }
9201 
test_mm256_maskz_inserti32x4(__mmask8 __U,__m256i __A,__m128i __B)9202 __m256i test_mm256_maskz_inserti32x4(__mmask8 __U, __m256i __A, __m128i __B) {
9203   // CHECK-LABEL: @test_mm256_maskz_inserti32x4
9204   // 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>
9205   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9206   return _mm256_maskz_inserti32x4(__U, __A, __B, 1);
9207 }
9208 
test_mm_getmant_pd(__m128d __A)9209 __m128d test_mm_getmant_pd(__m128d __A) {
9210   // CHECK-LABEL: @test_mm_getmant_pd
9211   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9212   return _mm_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9213 }
9214 
test_mm_mask_getmant_pd(__m128d __W,__mmask8 __U,__m128d __A)9215 __m128d test_mm_mask_getmant_pd(__m128d __W, __mmask8 __U, __m128d __A) {
9216   // CHECK-LABEL: @test_mm_mask_getmant_pd
9217   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9218   return _mm_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9219 }
9220 
test_mm_maskz_getmant_pd(__mmask8 __U,__m128d __A)9221 __m128d test_mm_maskz_getmant_pd(__mmask8 __U, __m128d __A) {
9222   // CHECK-LABEL: @test_mm_maskz_getmant_pd
9223   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9224   return _mm_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9225 }
9226 
test_mm256_getmant_pd(__m256d __A)9227 __m256d test_mm256_getmant_pd(__m256d __A) {
9228   // CHECK-LABEL: @test_mm256_getmant_pd
9229   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9230   return _mm256_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9231 }
9232 
test_mm256_mask_getmant_pd(__m256d __W,__mmask8 __U,__m256d __A)9233 __m256d test_mm256_mask_getmant_pd(__m256d __W, __mmask8 __U, __m256d __A) {
9234   // CHECK-LABEL: @test_mm256_mask_getmant_pd
9235   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9236   return _mm256_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9237 }
9238 
test_mm256_maskz_getmant_pd(__mmask8 __U,__m256d __A)9239 __m256d test_mm256_maskz_getmant_pd(__mmask8 __U, __m256d __A) {
9240   // CHECK-LABEL: @test_mm256_maskz_getmant_pd
9241   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9242   return _mm256_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9243 }
9244 
test_mm_getmant_ps(__m128 __A)9245 __m128 test_mm_getmant_ps(__m128 __A) {
9246   // CHECK-LABEL: @test_mm_getmant_ps
9247   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9248   return _mm_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9249 }
9250 
test_mm_mask_getmant_ps(__m128 __W,__mmask8 __U,__m128 __A)9251 __m128 test_mm_mask_getmant_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9252   // CHECK-LABEL: @test_mm_mask_getmant_ps
9253   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9254   return _mm_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9255 }
9256 
test_mm_maskz_getmant_ps(__mmask8 __U,__m128 __A)9257 __m128 test_mm_maskz_getmant_ps(__mmask8 __U, __m128 __A) {
9258   // CHECK-LABEL: @test_mm_maskz_getmant_ps
9259   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9260   return _mm_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9261 }
9262 
test_mm256_getmant_ps(__m256 __A)9263 __m256 test_mm256_getmant_ps(__m256 __A) {
9264   // CHECK-LABEL: @test_mm256_getmant_ps
9265   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9266   return _mm256_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9267 }
9268 
test_mm256_mask_getmant_ps(__m256 __W,__mmask8 __U,__m256 __A)9269 __m256 test_mm256_mask_getmant_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9270   // CHECK-LABEL: @test_mm256_mask_getmant_ps
9271   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9272   return _mm256_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9273 }
9274 
test_mm256_maskz_getmant_ps(__mmask8 __U,__m256 __A)9275 __m256 test_mm256_maskz_getmant_ps(__mmask8 __U, __m256 __A) {
9276   // CHECK-LABEL: @test_mm256_maskz_getmant_ps
9277   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9278   return _mm256_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9279 }
9280 
test_mm_mmask_i64gather_pd(__m128d __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9281 __m128d test_mm_mmask_i64gather_pd(__m128d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9282   // CHECK-LABEL: @test_mm_mmask_i64gather_pd
9283   // CHECK: @llvm.x86.avx512.mask.gather3div2.df
9284   return _mm_mmask_i64gather_pd(__v1_old, __mask, __index, __addr, 2);
9285 }
9286 
test_mm_mmask_i64gather_epi64(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9287 __m128i test_mm_mmask_i64gather_epi64(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9288   // CHECK-LABEL: @test_mm_mmask_i64gather_epi64
9289   // CHECK: @llvm.x86.avx512.mask.gather3div2.di
9290   return _mm_mmask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2);
9291 }
9292 
test_mm256_mmask_i64gather_pd(__m256d __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9293 __m256d test_mm256_mmask_i64gather_pd(__m256d __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9294   // CHECK-LABEL: @test_mm256_mmask_i64gather_pd
9295   // CHECK: @llvm.x86.avx512.mask.gather3div4.df
9296   return _mm256_mmask_i64gather_pd(__v1_old, __mask, __index, __addr, 2);
9297 }
9298 
test_mm256_mmask_i64gather_epi64(__m256i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9299 __m256i test_mm256_mmask_i64gather_epi64(__m256i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9300   // CHECK-LABEL: @test_mm256_mmask_i64gather_epi64
9301   // CHECK: @llvm.x86.avx512.mask.gather3div4.di
9302   return _mm256_mmask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2);
9303 }
9304 
test_mm_mmask_i64gather_ps(__m128 __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9305 __m128 test_mm_mmask_i64gather_ps(__m128 __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9306   // CHECK-LABEL: @test_mm_mmask_i64gather_ps
9307   // CHECK: @llvm.x86.avx512.mask.gather3div4.sf
9308   return _mm_mmask_i64gather_ps(__v1_old, __mask, __index, __addr, 2);
9309 }
9310 
test_mm_mmask_i64gather_epi32(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9311 __m128i test_mm_mmask_i64gather_epi32(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9312   // CHECK-LABEL: @test_mm_mmask_i64gather_epi32
9313   // CHECK: @llvm.x86.avx512.mask.gather3div4.si
9314   return _mm_mmask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2);
9315 }
9316 
test_mm256_mmask_i64gather_ps(__m128 __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9317 __m128 test_mm256_mmask_i64gather_ps(__m128 __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9318   // CHECK-LABEL: @test_mm256_mmask_i64gather_ps
9319   // CHECK: @llvm.x86.avx512.mask.gather3div8.sf
9320   return _mm256_mmask_i64gather_ps(__v1_old, __mask, __index, __addr, 2);
9321 }
9322 
test_mm256_mmask_i64gather_epi32(__m128i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9323 __m128i test_mm256_mmask_i64gather_epi32(__m128i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9324   // CHECK-LABEL: @test_mm256_mmask_i64gather_epi32
9325   // CHECK: @llvm.x86.avx512.mask.gather3div8.si
9326   return _mm256_mmask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2);
9327 }
9328 
test_mm_mask_i32gather_pd(__m128d __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9329 __m128d test_mm_mask_i32gather_pd(__m128d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9330   // CHECK-LABEL: @test_mm_mask_i32gather_pd
9331   // CHECK: @llvm.x86.avx512.mask.gather3siv2.df
9332   return _mm_mmask_i32gather_pd(__v1_old, __mask, __index, __addr, 2);
9333 }
9334 
test_mm_mask_i32gather_epi64(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9335 __m128i test_mm_mask_i32gather_epi64(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9336   // CHECK-LABEL: @test_mm_mask_i32gather_epi64
9337   // CHECK: @llvm.x86.avx512.mask.gather3siv2.di
9338   return _mm_mmask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2);
9339 }
9340 
test_mm256_mask_i32gather_pd(__m256d __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9341 __m256d test_mm256_mask_i32gather_pd(__m256d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9342   // CHECK-LABEL: @test_mm256_mask_i32gather_pd
9343   // CHECK: @llvm.x86.avx512.mask.gather3siv4.df
9344   return _mm256_mmask_i32gather_pd(__v1_old, __mask, __index, __addr, 2);
9345 }
9346 
test_mm256_mask_i32gather_epi64(__m256i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9347 __m256i test_mm256_mask_i32gather_epi64(__m256i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9348   // CHECK-LABEL: @test_mm256_mask_i32gather_epi64
9349   // CHECK: @llvm.x86.avx512.mask.gather3siv4.di
9350   return _mm256_mmask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2);
9351 }
9352 
test_mm_mask_i32gather_ps(__m128 __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9353 __m128 test_mm_mask_i32gather_ps(__m128 __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9354   // CHECK-LABEL: @test_mm_mask_i32gather_ps
9355   // CHECK: @llvm.x86.avx512.mask.gather3siv4.sf
9356   return _mm_mmask_i32gather_ps(__v1_old, __mask, __index, __addr, 2);
9357 }
9358 
test_mm_mask_i32gather_epi32(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9359 __m128i test_mm_mask_i32gather_epi32(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9360   // CHECK-LABEL: @test_mm_mask_i32gather_epi32
9361   // CHECK: @llvm.x86.avx512.mask.gather3siv4.si
9362   return _mm_mmask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2);
9363 }
9364 
test_mm256_mask_i32gather_ps(__m256 __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9365 __m256 test_mm256_mask_i32gather_ps(__m256 __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9366   // CHECK-LABEL: @test_mm256_mask_i32gather_ps
9367   // CHECK: @llvm.x86.avx512.mask.gather3siv8.sf
9368   return _mm256_mmask_i32gather_ps(__v1_old, __mask, __index, __addr, 2);
9369 }
9370 
test_mm256_mask_i32gather_epi32(__m256i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9371 __m256i test_mm256_mask_i32gather_epi32(__m256i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9372   // CHECK-LABEL: @test_mm256_mask_i32gather_epi32
9373   // CHECK: @llvm.x86.avx512.mask.gather3siv8.si
9374   return _mm256_mmask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2);
9375 }
9376 
test_mm256_permutex_pd(__m256d __X)9377 __m256d test_mm256_permutex_pd(__m256d __X) {
9378   // CHECK-LABEL: @test_mm256_permutex_pd
9379   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9380   return _mm256_permutex_pd(__X, 3);
9381 }
9382 
test_mm256_mask_permutex_pd(__m256d __W,__mmask8 __U,__m256d __X)9383 __m256d test_mm256_mask_permutex_pd(__m256d __W, __mmask8 __U, __m256d __X) {
9384   // CHECK-LABEL: @test_mm256_mask_permutex_pd
9385   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9386   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9387   return _mm256_mask_permutex_pd(__W, __U, __X, 1);
9388 }
9389 
test_mm256_maskz_permutex_pd(__mmask8 __U,__m256d __X)9390 __m256d test_mm256_maskz_permutex_pd(__mmask8 __U, __m256d __X) {
9391   // CHECK-LABEL: @test_mm256_maskz_permutex_pd
9392   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9393   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9394   return _mm256_maskz_permutex_pd(__U, __X, 1);
9395 }
9396 
test_mm256_permutex_epi64(__m256i __X)9397 __m256i test_mm256_permutex_epi64(__m256i __X) {
9398   // CHECK-LABEL: @test_mm256_permutex_epi64
9399   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9400   return _mm256_permutex_epi64(__X, 3);
9401 }
9402 
test_mm256_mask_permutex_epi64(__m256i __W,__mmask8 __M,__m256i __X)9403 __m256i test_mm256_mask_permutex_epi64(__m256i __W, __mmask8 __M, __m256i __X) {
9404   // CHECK-LABEL: @test_mm256_mask_permutex_epi64
9405   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9406   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9407   return _mm256_mask_permutex_epi64(__W, __M, __X, 3);
9408 }
9409 
test_mm256_maskz_permutex_epi64(__mmask8 __M,__m256i __X)9410 __m256i test_mm256_maskz_permutex_epi64(__mmask8 __M, __m256i __X) {
9411   // CHECK-LABEL: @test_mm256_maskz_permutex_epi64
9412   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9413   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9414   return _mm256_maskz_permutex_epi64(__M, __X, 3);
9415 }
9416 
test_mm256_permutexvar_pd(__m256i __X,__m256d __Y)9417 __m256d test_mm256_permutexvar_pd(__m256i __X, __m256d __Y) {
9418   // CHECK-LABEL: @test_mm256_permutexvar_pd
9419   // CHECK: @llvm.x86.avx512.permvar.df.256
9420   return _mm256_permutexvar_pd(__X, __Y);
9421 }
9422 
test_mm256_mask_permutexvar_pd(__m256d __W,__mmask8 __U,__m256i __X,__m256d __Y)9423 __m256d test_mm256_mask_permutexvar_pd(__m256d __W, __mmask8 __U, __m256i __X, __m256d __Y) {
9424   // CHECK-LABEL: @test_mm256_mask_permutexvar_pd
9425   // CHECK: @llvm.x86.avx512.permvar.df.256
9426   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9427   return _mm256_mask_permutexvar_pd(__W, __U, __X, __Y);
9428 }
9429 
test_mm256_maskz_permutexvar_pd(__mmask8 __U,__m256i __X,__m256d __Y)9430 __m256d test_mm256_maskz_permutexvar_pd(__mmask8 __U, __m256i __X, __m256d __Y) {
9431   // CHECK-LABEL: @test_mm256_maskz_permutexvar_pd
9432   // CHECK: @llvm.x86.avx512.permvar.df.256
9433   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9434   return _mm256_maskz_permutexvar_pd(__U, __X, __Y);
9435 }
9436 
test_mm256_maskz_permutexvar_epi64(__mmask8 __M,__m256i __X,__m256i __Y)9437 __m256i test_mm256_maskz_permutexvar_epi64(__mmask8 __M, __m256i __X, __m256i __Y) {
9438   // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi64
9439   // CHECK: @llvm.x86.avx512.permvar.di.256
9440   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9441   return _mm256_maskz_permutexvar_epi64(__M, __X, __Y);
9442 }
9443 
test_mm256_mask_permutexvar_epi64(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)9444 __m256i test_mm256_mask_permutexvar_epi64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) {
9445   // CHECK-LABEL: @test_mm256_mask_permutexvar_epi64
9446   // CHECK: @llvm.x86.avx512.permvar.di.256
9447   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9448   return _mm256_mask_permutexvar_epi64(__W, __M, __X, __Y);
9449 }
9450 
test_mm256_mask_permutexvar_ps(__m256 __W,__mmask8 __U,__m256i __X,__m256 __Y)9451 __m256 test_mm256_mask_permutexvar_ps(__m256 __W, __mmask8 __U, __m256i __X, __m256 __Y) {
9452   // CHECK-LABEL: @test_mm256_mask_permutexvar_ps
9453   // CHECK: @llvm.x86.avx2.permps
9454   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9455   return _mm256_mask_permutexvar_ps(__W, __U, __X, __Y);
9456 }
9457 
test_mm256_maskz_permutexvar_ps(__mmask8 __U,__m256i __X,__m256 __Y)9458 __m256 test_mm256_maskz_permutexvar_ps(__mmask8 __U, __m256i __X, __m256 __Y) {
9459   // CHECK-LABEL: @test_mm256_maskz_permutexvar_ps
9460   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9461   return _mm256_maskz_permutexvar_ps(__U, __X, __Y);
9462 }
9463 
test_mm256_permutexvar_ps(__m256i __X,__m256 __Y)9464 __m256 test_mm256_permutexvar_ps(__m256i __X, __m256 __Y) {
9465   // CHECK-LABEL: @test_mm256_permutexvar_ps
9466   // CHECK: @llvm.x86.avx2.permps
9467   return _mm256_permutexvar_ps( __X, __Y);
9468 }
9469 
test_mm256_maskz_permutexvar_epi32(__mmask8 __M,__m256i __X,__m256i __Y)9470 __m256i test_mm256_maskz_permutexvar_epi32(__mmask8 __M, __m256i __X, __m256i __Y) {
9471   // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi32
9472   // CHECK: @llvm.x86.avx2.permd
9473   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9474   return _mm256_maskz_permutexvar_epi32(__M, __X, __Y);
9475 }
9476 
test_mm256_permutexvar_epi32(__m256i __X,__m256i __Y)9477 __m256i test_mm256_permutexvar_epi32(__m256i __X, __m256i __Y) {
9478   // CHECK-LABEL: @test_mm256_permutexvar_epi32
9479   // CHECK: @llvm.x86.avx2.permd
9480   return _mm256_permutexvar_epi32(__X, __Y);
9481 }
9482 
test_mm256_mask_permutexvar_epi32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)9483 __m256i test_mm256_mask_permutexvar_epi32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) {
9484   // CHECK-LABEL: @test_mm256_mask_permutexvar_epi32
9485   // CHECK: @llvm.x86.avx2.permd
9486   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9487   return _mm256_mask_permutexvar_epi32(__W, __M, __X, __Y);
9488 }
9489 
test_mm_alignr_epi32(__m128i __A,__m128i __B)9490 __m128i test_mm_alignr_epi32(__m128i __A, __m128i __B) {
9491   // CHECK-LABEL: @test_mm_alignr_epi32
9492   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9493   return _mm_alignr_epi32(__A, __B, 1);
9494 }
9495 
test_mm_mask_alignr_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)9496 __m128i test_mm_mask_alignr_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
9497   // CHECK-LABEL: @test_mm_mask_alignr_epi32
9498   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9499   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9500   return _mm_mask_alignr_epi32(__W, __U, __A, __B, 1);
9501 }
9502 
test_mm_maskz_alignr_epi32(__mmask8 __U,__m128i __A,__m128i __B)9503 __m128i test_mm_maskz_alignr_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
9504   // CHECK-LABEL: @test_mm_maskz_alignr_epi32
9505   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9506   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9507   return _mm_maskz_alignr_epi32(__U, __A, __B, 1);
9508 }
9509 
test_mm256_alignr_epi32(__m256i __A,__m256i __B)9510 __m256i test_mm256_alignr_epi32(__m256i __A, __m256i __B) {
9511   // CHECK-LABEL: @test_mm256_alignr_epi32
9512   // 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>
9513   return _mm256_alignr_epi32(__A, __B, 1);
9514 }
9515 
test_mm256_mask_alignr_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)9516 __m256i test_mm256_mask_alignr_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
9517   // CHECK-LABEL: @test_mm256_mask_alignr_epi32
9518   // 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>
9519   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9520   return _mm256_mask_alignr_epi32(__W, __U, __A, __B, 1);
9521 }
9522 
test_mm256_maskz_alignr_epi32(__mmask8 __U,__m256i __A,__m256i __B)9523 __m256i test_mm256_maskz_alignr_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
9524   // CHECK-LABEL: @test_mm256_maskz_alignr_epi32
9525   // 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>
9526   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9527   return _mm256_maskz_alignr_epi32(__U, __A, __B, 1);
9528 }
9529 
test_mm_alignr_epi64(__m128i __A,__m128i __B)9530 __m128i test_mm_alignr_epi64(__m128i __A, __m128i __B) {
9531   // CHECK-LABEL: @test_mm_alignr_epi64
9532   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9533   return _mm_alignr_epi64(__A, __B, 1);
9534 }
9535 
test_mm_mask_alignr_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)9536 __m128i test_mm_mask_alignr_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
9537   // CHECK-LABEL: @test_mm_mask_alignr_epi64
9538   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9539   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
9540   return _mm_mask_alignr_epi64(__W, __U, __A, __B, 1);
9541 }
9542 
test_mm_maskz_alignr_epi64(__mmask8 __U,__m128i __A,__m128i __B)9543 __m128i test_mm_maskz_alignr_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
9544   // CHECK-LABEL: @test_mm_maskz_alignr_epi64
9545   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9546   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
9547   return _mm_maskz_alignr_epi64(__U, __A, __B, 1);
9548 }
9549 
test_mm256_alignr_epi64(__m256i __A,__m256i __B)9550 __m256i test_mm256_alignr_epi64(__m256i __A, __m256i __B) {
9551   // CHECK-LABEL: @test_mm256_alignr_epi64
9552   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9553   return _mm256_alignr_epi64(__A, __B, 1);
9554 }
9555 
test_mm256_mask_alignr_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)9556 __m256i test_mm256_mask_alignr_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
9557   // CHECK-LABEL: @test_mm256_mask_alignr_epi64
9558   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9559   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9560   return _mm256_mask_alignr_epi64(__W, __U, __A, __B, 1);
9561 }
9562 
test_mm256_maskz_alignr_epi64(__mmask8 __U,__m256i __A,__m256i __B)9563 __m256i test_mm256_maskz_alignr_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
9564   // CHECK-LABEL: @test_mm256_maskz_alignr_epi64
9565   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9566   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9567   return _mm256_maskz_alignr_epi64(__U, __A, __B, 1);
9568 }
9569 
test_mm_mask_movehdup_ps(__m128 __W,__mmask8 __U,__m128 __A)9570 __m128 test_mm_mask_movehdup_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9571   // CHECK-LABEL: @test_mm_mask_movehdup_ps
9572   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
9573   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9574   return _mm_mask_movehdup_ps(__W, __U, __A);
9575 }
9576 
test_mm_maskz_movehdup_ps(__mmask8 __U,__m128 __A)9577 __m128 test_mm_maskz_movehdup_ps(__mmask8 __U, __m128 __A) {
9578   // CHECK-LABEL: @test_mm_maskz_movehdup_ps
9579   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
9580   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9581   return _mm_maskz_movehdup_ps(__U, __A);
9582 }
9583 
test_mm256_mask_movehdup_ps(__m256 __W,__mmask8 __U,__m256 __A)9584 __m256 test_mm256_mask_movehdup_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9585   // CHECK-LABEL: @test_mm256_mask_movehdup_ps
9586   // 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>
9587   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9588   return _mm256_mask_movehdup_ps(__W, __U, __A);
9589 }
9590 
test_mm256_maskz_movehdup_ps(__mmask8 __U,__m256 __A)9591 __m256 test_mm256_maskz_movehdup_ps(__mmask8 __U, __m256 __A) {
9592   // CHECK-LABEL: @test_mm256_maskz_movehdup_ps
9593   // 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>
9594   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9595   return _mm256_maskz_movehdup_ps(__U, __A);
9596 }
9597 
test_mm_mask_moveldup_ps(__m128 __W,__mmask8 __U,__m128 __A)9598 __m128 test_mm_mask_moveldup_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9599   // CHECK-LABEL: @test_mm_mask_moveldup_ps
9600   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
9601   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9602   return _mm_mask_moveldup_ps(__W, __U, __A);
9603 }
9604 
test_mm_maskz_moveldup_ps(__mmask8 __U,__m128 __A)9605 __m128 test_mm_maskz_moveldup_ps(__mmask8 __U, __m128 __A) {
9606   // CHECK-LABEL: @test_mm_maskz_moveldup_ps
9607   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
9608   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9609   return _mm_maskz_moveldup_ps(__U, __A);
9610 }
9611 
test_mm256_mask_moveldup_ps(__m256 __W,__mmask8 __U,__m256 __A)9612 __m256 test_mm256_mask_moveldup_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9613   // CHECK-LABEL: @test_mm256_mask_moveldup_ps
9614   // 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>
9615   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9616   return _mm256_mask_moveldup_ps(__W, __U, __A);
9617 }
9618 
test_mm256_maskz_moveldup_ps(__mmask8 __U,__m256 __A)9619 __m256 test_mm256_maskz_moveldup_ps(__mmask8 __U, __m256 __A) {
9620   // CHECK-LABEL: @test_mm256_maskz_moveldup_ps
9621   // 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>
9622   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9623   return _mm256_maskz_moveldup_ps(__U, __A);
9624 }
9625 
test_mm_mask_shuffle_epi32(__m128i __W,__mmask8 __U,__m128i __A)9626 __m128i test_mm_mask_shuffle_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
9627   // CHECK-LABEL: @test_mm_mask_shuffle_epi32
9628   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9629   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9630   return _mm_mask_shuffle_epi32(__W, __U, __A, 1);
9631 }
9632 
test_mm_maskz_shuffle_epi32(__mmask8 __U,__m128i __A)9633 __m128i test_mm_maskz_shuffle_epi32(__mmask8 __U, __m128i __A) {
9634   // CHECK-LABEL: @test_mm_maskz_shuffle_epi32
9635   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <4 x i32> <i32 2, i32 0, i32 0, i32 0>
9636   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9637   return _mm_maskz_shuffle_epi32(__U, __A, 2);
9638 }
9639 
test_mm256_mask_shuffle_epi32(__m256i __W,__mmask8 __U,__m256i __A)9640 __m256i test_mm256_mask_shuffle_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
9641   // CHECK-LABEL: @test_mm256_mask_shuffle_epi32
9642   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> undef, <8 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4>
9643   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9644   return _mm256_mask_shuffle_epi32(__W, __U, __A, 2);
9645 }
9646 
test_mm256_maskz_shuffle_epi32(__mmask8 __U,__m256i __A)9647 __m256i test_mm256_maskz_shuffle_epi32(__mmask8 __U, __m256i __A) {
9648   // CHECK-LABEL: @test_mm256_maskz_shuffle_epi32
9649   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> undef, <8 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4>
9650   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9651   return _mm256_maskz_shuffle_epi32(__U, __A, 2);
9652 }
9653 
test_mm_mask_mov_pd(__m128d __W,__mmask8 __U,__m128d __A)9654 __m128d test_mm_mask_mov_pd(__m128d __W, __mmask8 __U, __m128d __A) {
9655   // CHECK-LABEL: @test_mm_mask_mov_pd
9656   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
9657   return _mm_mask_mov_pd(__W, __U, __A);
9658 }
9659 
test_mm_maskz_mov_pd(__mmask8 __U,__m128d __A)9660 __m128d test_mm_maskz_mov_pd(__mmask8 __U, __m128d __A) {
9661   // CHECK-LABEL: @test_mm_maskz_mov_pd
9662   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
9663   return _mm_maskz_mov_pd(__U, __A);
9664 }
9665 
test_mm256_mask_mov_pd(__m256d __W,__mmask8 __U,__m256d __A)9666 __m256d test_mm256_mask_mov_pd(__m256d __W, __mmask8 __U, __m256d __A) {
9667   // CHECK-LABEL: @test_mm256_mask_mov_pd
9668   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9669   return _mm256_mask_mov_pd(__W, __U, __A);
9670 }
9671 
test_mm256_maskz_mov_pd(__mmask8 __U,__m256d __A)9672 __m256d test_mm256_maskz_mov_pd(__mmask8 __U, __m256d __A) {
9673   // CHECK-LABEL: @test_mm256_maskz_mov_pd
9674   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9675   return _mm256_maskz_mov_pd(__U, __A);
9676 }
9677 
test_mm_mask_mov_ps(__m128 __W,__mmask8 __U,__m128 __A)9678 __m128 test_mm_mask_mov_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9679   // CHECK-LABEL: @test_mm_mask_mov_ps
9680   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9681   return _mm_mask_mov_ps(__W, __U, __A);
9682 }
9683 
test_mm_maskz_mov_ps(__mmask8 __U,__m128 __A)9684 __m128 test_mm_maskz_mov_ps(__mmask8 __U, __m128 __A) {
9685   // CHECK-LABEL: @test_mm_maskz_mov_ps
9686   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9687   return _mm_maskz_mov_ps(__U, __A);
9688 }
9689 
test_mm256_mask_mov_ps(__m256 __W,__mmask8 __U,__m256 __A)9690 __m256 test_mm256_mask_mov_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9691   // CHECK-LABEL: @test_mm256_mask_mov_ps
9692   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9693   return _mm256_mask_mov_ps(__W, __U, __A);
9694 }
9695 
test_mm256_maskz_mov_ps(__mmask8 __U,__m256 __A)9696 __m256 test_mm256_maskz_mov_ps(__mmask8 __U, __m256 __A) {
9697   // CHECK-LABEL: @test_mm256_maskz_mov_ps
9698   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9699   return _mm256_maskz_mov_ps(__U, __A);
9700 }
9701 
test_mm_mask_cvtph_ps(__m128 __W,__mmask8 __U,__m128i __A)9702 __m128 test_mm_mask_cvtph_ps(__m128 __W, __mmask8 __U, __m128i __A) {
9703   // CHECK-LABEL: @test_mm_mask_cvtph_ps
9704   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.128
9705   return _mm_mask_cvtph_ps(__W, __U, __A);
9706 }
9707 
test_mm_maskz_cvtph_ps(__mmask8 __U,__m128i __A)9708 __m128 test_mm_maskz_cvtph_ps(__mmask8 __U, __m128i __A) {
9709   // CHECK-LABEL: @test_mm_maskz_cvtph_ps
9710   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.128
9711   return _mm_maskz_cvtph_ps(__U, __A);
9712 }
9713 
test_mm256_mask_cvtph_ps(__m256 __W,__mmask8 __U,__m128i __A)9714 __m256 test_mm256_mask_cvtph_ps(__m256 __W, __mmask8 __U, __m128i __A) {
9715   // CHECK-LABEL: @test_mm256_mask_cvtph_ps
9716   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.256
9717   return _mm256_mask_cvtph_ps(__W, __U, __A);
9718 }
9719 
test_mm256_maskz_cvtph_ps(__mmask8 __U,__m128i __A)9720 __m256 test_mm256_maskz_cvtph_ps(__mmask8 __U, __m128i __A) {
9721   // CHECK-LABEL: @test_mm256_maskz_cvtph_ps
9722   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.256
9723   return _mm256_maskz_cvtph_ps(__U, __A);
9724 }
9725 
test_mm_mask_cvtps_ph(__m128i __W,__mmask8 __U,__m128 __A)9726 __m128i test_mm_mask_cvtps_ph(__m128i __W, __mmask8 __U, __m128 __A) {
9727   // CHECK-LABEL: @test_mm_mask_cvtps_ph
9728   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9729   return _mm_mask_cvtps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9730 }
9731 
test_mm_maskz_cvtps_ph(__mmask8 __U,__m128 __A)9732 __m128i test_mm_maskz_cvtps_ph(__mmask8 __U, __m128 __A) {
9733   // CHECK-LABEL: @test_mm_maskz_cvtps_ph
9734   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9735   return _mm_maskz_cvtps_ph(__U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9736 }
9737 
test_mm256_mask_cvtps_ph(__m128i __W,__mmask8 __U,__m256 __A)9738 __m128i test_mm256_mask_cvtps_ph(__m128i __W, __mmask8 __U, __m256 __A) {
9739   // CHECK-LABEL: @test_mm256_mask_cvtps_ph
9740   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9741   return _mm256_mask_cvtps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9742 }
9743 
test_mm256_maskz_cvtps_ph(__mmask8 __U,__m256 __A)9744 __m128i test_mm256_maskz_cvtps_ph(__mmask8 __U, __m256 __A) {
9745   // CHECK-LABEL: @test_mm256_maskz_cvtps_ph
9746   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9747   return _mm256_maskz_cvtps_ph(__U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9748 }
9749 
test_mm_mask_cvt_roundps_ph(__m128i __W,__mmask8 __U,__m128 __A)9750 __m128i test_mm_mask_cvt_roundps_ph(__m128i __W, __mmask8 __U, __m128 __A) {
9751   // CHECK-LABEL: @test_mm_mask_cvt_roundps_ph
9752   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9753   return _mm_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO);
9754 }
9755 
test_mm_maskz_cvt_roundps_ph(__mmask8 __U,__m128 __A)9756 __m128i test_mm_maskz_cvt_roundps_ph(__mmask8 __U, __m128 __A) {
9757   // CHECK-LABEL: @test_mm_maskz_cvt_roundps_ph
9758   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9759   return _mm_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_TO_ZERO);
9760 }
9761 
test_mm256_mask_cvt_roundps_ph(__m128i __W,__mmask8 __U,__m256 __A)9762 __m128i test_mm256_mask_cvt_roundps_ph(__m128i __W, __mmask8 __U, __m256 __A) {
9763   // CHECK-LABEL: @test_mm256_mask_cvt_roundps_ph
9764   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9765   return _mm256_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO);
9766 }
9767 
test_mm256_maskz_cvt_roundps_ph(__mmask8 __U,__m256 __A)9768 __m128i test_mm256_maskz_cvt_roundps_ph(__mmask8 __U, __m256 __A) {
9769   // CHECK-LABEL: @test_mm256_maskz_cvt_roundps_ph
9770   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9771   return _mm256_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_TO_ZERO);
9772 }
9773 
test_mm_cmpeq_epi32_mask(__m128i __a,__m128i __b)9774 __mmask8 test_mm_cmpeq_epi32_mask(__m128i __a, __m128i __b) {
9775   // CHECK-LABEL: @test_mm_cmpeq_epi32_mask
9776   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
9777   return (__mmask8)_mm_cmpeq_epi32_mask(__a, __b);
9778 }
9779 
test_mm_mask_cmpeq_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)9780 __mmask8 test_mm_mask_cmpeq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9781   // CHECK-LABEL: @test_mm_mask_cmpeq_epi32_mask
9782   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
9783   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9784   return (__mmask8)_mm_mask_cmpeq_epi32_mask(__u, __a, __b);
9785 }
9786 
test_mm_mask_cmpeq_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)9787 __mmask8 test_mm_mask_cmpeq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9788   // CHECK-LABEL: @test_mm_mask_cmpeq_epi64_mask
9789   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
9790   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
9791   return (__mmask8)_mm_mask_cmpeq_epi64_mask(__u, __a, __b);
9792 }
9793 
test_mm_cmpeq_epi64_mask(__m128i __a,__m128i __b)9794 __mmask8 test_mm_cmpeq_epi64_mask(__m128i __a, __m128i __b) {
9795   // CHECK-LABEL: @test_mm_cmpeq_epi64_mask
9796   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
9797   return (__mmask8)_mm_cmpeq_epi64_mask(__a, __b);
9798 }
9799 
test_mm_cmpgt_epi32_mask(__m128i __a,__m128i __b)9800 __mmask8 test_mm_cmpgt_epi32_mask(__m128i __a, __m128i __b) {
9801   // CHECK-LABEL: @test_mm_cmpgt_epi32_mask
9802   // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}}
9803   return (__mmask8)_mm_cmpgt_epi32_mask(__a, __b);
9804 }
9805 
test_mm_mask_cmpgt_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)9806 __mmask8 test_mm_mask_cmpgt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9807   // CHECK-LABEL: @test_mm_mask_cmpgt_epi32_mask
9808   // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}}
9809   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9810   return (__mmask8)_mm_mask_cmpgt_epi32_mask(__u, __a, __b);
9811 }
9812 
test_mm_mask_cmpgt_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)9813 __mmask8 test_mm_mask_cmpgt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9814   // CHECK-LABEL: @test_mm_mask_cmpgt_epi64_mask
9815   // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}}
9816   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
9817   return (__mmask8)_mm_mask_cmpgt_epi64_mask(__u, __a, __b);
9818 }
9819 
test_mm_cmpgt_epi64_mask(__m128i __a,__m128i __b)9820 __mmask8 test_mm_cmpgt_epi64_mask(__m128i __a, __m128i __b) {
9821   // CHECK-LABEL: @test_mm_cmpgt_epi64_mask
9822   // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}}
9823   return (__mmask8)_mm_cmpgt_epi64_mask(__a, __b);
9824 }
9825 
test_mm256_cmpeq_epi32_mask(__m256i __a,__m256i __b)9826 __mmask8 test_mm256_cmpeq_epi32_mask(__m256i __a, __m256i __b) {
9827   // CHECK-LABEL: @test_mm256_cmpeq_epi32_mask
9828   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
9829   return (__mmask8)_mm256_cmpeq_epi32_mask(__a, __b);
9830 }
9831 
test_mm256_mask_cmpeq_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)9832 __mmask8 test_mm256_mask_cmpeq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9833   // CHECK-LABEL: @test_mm256_mask_cmpeq_epi32_mask
9834   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
9835   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
9836   return (__mmask8)_mm256_mask_cmpeq_epi32_mask(__u, __a, __b);
9837 }
9838 
test_mm256_mask_cmpeq_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)9839 __mmask8 test_mm256_mask_cmpeq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9840   // CHECK-LABEL: @test_mm256_mask_cmpeq_epi64_mask
9841   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
9842   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9843   return (__mmask8)_mm256_mask_cmpeq_epi64_mask(__u, __a, __b);
9844 }
9845 
test_mm256_cmpeq_epi64_mask(__m256i __a,__m256i __b)9846 __mmask8 test_mm256_cmpeq_epi64_mask(__m256i __a, __m256i __b) {
9847   // CHECK-LABEL: @test_mm256_cmpeq_epi64_mask
9848   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
9849   return (__mmask8)_mm256_cmpeq_epi64_mask(__a, __b);
9850 }
9851 
test_mm256_cmpgt_epi32_mask(__m256i __a,__m256i __b)9852 __mmask8 test_mm256_cmpgt_epi32_mask(__m256i __a, __m256i __b) {
9853   // CHECK-LABEL: @test_mm256_cmpgt_epi32_mask
9854   // CHECK: icmp sgt <8 x i32> %{{.*}}, %{{.*}}
9855   return (__mmask8)_mm256_cmpgt_epi32_mask(__a, __b);
9856 }
9857 
test_mm256_mask_cmpgt_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)9858 __mmask8 test_mm256_mask_cmpgt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9859   // CHECK-LABEL: @test_mm256_mask_cmpgt_epi32_mask
9860   // CHECK: icmp sgt <8 x i32> %{{.*}}, %{{.*}}
9861   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
9862   return (__mmask8)_mm256_mask_cmpgt_epi32_mask(__u, __a, __b);
9863 }
9864 
test_mm256_mask_cmpgt_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)9865 __mmask8 test_mm256_mask_cmpgt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9866   // CHECK-LABEL: @test_mm256_mask_cmpgt_epi64_mask
9867   // CHECK: icmp sgt <4 x i64> %{{.*}}, %{{.*}}
9868   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9869   return (__mmask8)_mm256_mask_cmpgt_epi64_mask(__u, __a, __b);
9870 }
9871 
test_mm256_cmpgt_epi64_mask(__m256i __a,__m256i __b)9872 __mmask8 test_mm256_cmpgt_epi64_mask(__m256i __a, __m256i __b) {
9873   // CHECK-LABEL: @test_mm256_cmpgt_epi64_mask
9874   // CHECK: icmp sgt <4 x i64> %{{.*}}, %{{.*}}
9875   return (__mmask8)_mm256_cmpgt_epi64_mask(__a, __b);
9876 }
9877