1 // RUN: %clang_cc1 -ffreestanding %s -fexperimental-new-pass-manager -triple=x86_64-apple-darwin -target-feature +avx512f -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s
2 
3 #include <immintrin.h>
4 
test_mm_cmpeq_epu32_mask(__m128i __a,__m128i __b)5 __mmask8 test_mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) {
6   // CHECK-LABEL: @test_mm_cmpeq_epu32_mask
7   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
8   // CHECK: shufflevector <4 x i1> %{{.*}}, <4 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
9   return (__mmask8)_mm_cmpeq_epu32_mask(__a, __b);
10 }
11 
test_mm_mask_cmpeq_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)12 __mmask8 test_mm_mask_cmpeq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
13   // CHECK-LABEL: @test_mm_mask_cmpeq_epu32_mask
14   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
15   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
16   return (__mmask8)_mm_mask_cmpeq_epu32_mask(__u, __a, __b);
17 }
18 
test_mm_cmpeq_epu64_mask(__m128i __a,__m128i __b)19 __mmask8 test_mm_cmpeq_epu64_mask(__m128i __a, __m128i __b) {
20   // CHECK-LABEL: @test_mm_cmpeq_epu64_mask
21   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
22   // CHECK: shufflevector <2 x i1> %{{.*}}, <2 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 2, i32 3, i32 2, i32 3>
23   return (__mmask8)_mm_cmpeq_epu64_mask(__a, __b);
24 }
25 
test_mm_mask_cmpeq_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)26 __mmask8 test_mm_mask_cmpeq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
27   // CHECK-LABEL: @test_mm_mask_cmpeq_epu64_mask
28   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
29   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
30   return (__mmask8)_mm_mask_cmpeq_epu64_mask(__u, __a, __b);
31 }
32 
test_mm_cmpge_epi32_mask(__m128i __a,__m128i __b)33 __mmask8 test_mm_cmpge_epi32_mask(__m128i __a, __m128i __b) {
34   // CHECK-LABEL: @test_mm_cmpge_epi32_mask
35   // CHECK: icmp sge <4 x i32> %{{.*}}, %{{.*}}
36   return (__mmask8)_mm_cmpge_epi32_mask(__a, __b);
37 }
38 
test_mm_mask_cmpge_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)39 __mmask8 test_mm_mask_cmpge_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
40   // CHECK-LABEL: @test_mm_mask_cmpge_epi32_mask
41   // CHECK: icmp sge <4 x i32> %{{.*}}, %{{.*}}
42   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
43   return (__mmask8)_mm_mask_cmpge_epi32_mask(__u, __a, __b);
44 }
45 
test_mm_cmpge_epi64_mask(__m128i __a,__m128i __b)46 __mmask8 test_mm_cmpge_epi64_mask(__m128i __a, __m128i __b) {
47   // CHECK-LABEL: @test_mm_cmpge_epi64_mask
48   // CHECK: icmp sge <2 x i64> %{{.*}}, %{{.*}}
49   return (__mmask8)_mm_cmpge_epi64_mask(__a, __b);
50 }
51 
test_mm_mask_cmpge_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)52 __mmask8 test_mm_mask_cmpge_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
53   // CHECK-LABEL: @test_mm_mask_cmpge_epi64_mask
54   // CHECK: icmp sge <2 x i64> %{{.*}}, %{{.*}}
55   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
56   return (__mmask8)_mm_mask_cmpge_epi64_mask(__u, __a, __b);
57 }
58 
test_mm256_cmpge_epi32_mask(__m256i __a,__m256i __b)59 __mmask8 test_mm256_cmpge_epi32_mask(__m256i __a, __m256i __b) {
60   // CHECK-LABEL: @test_mm256_cmpge_epi32_mask
61   // CHECK: icmp sge <8 x i32> %{{.*}}, %{{.*}}
62   return (__mmask8)_mm256_cmpge_epi32_mask(__a, __b);
63 }
64 
test_mm256_mask_cmpge_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)65 __mmask8 test_mm256_mask_cmpge_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
66   // CHECK-LABEL: @test_mm256_mask_cmpge_epi32_mask
67   // CHECK: icmp sge <8 x i32> %{{.*}}, %{{.*}}
68   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
69   return (__mmask8)_mm256_mask_cmpge_epi32_mask(__u, __a, __b);
70 }
71 
test_mm256_cmpge_epi64_mask(__m256i __a,__m256i __b)72 __mmask8 test_mm256_cmpge_epi64_mask(__m256i __a, __m256i __b) {
73   // CHECK-LABEL: @test_mm256_cmpge_epi64_mask
74   // CHECK: icmp sge <4 x i64> %{{.*}}, %{{.*}}
75   return (__mmask8)_mm256_cmpge_epi64_mask(__a, __b);
76 }
77 
test_mm256_mask_cmpge_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)78 __mmask8 test_mm256_mask_cmpge_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
79   // CHECK-LABEL: @test_mm256_mask_cmpge_epi64_mask
80   // CHECK: icmp sge <4 x i64> %{{.*}}, %{{.*}}
81   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
82   return (__mmask8)_mm256_mask_cmpge_epi64_mask(__u, __a, __b);
83 }
84 
test_mm_cmpge_epu32_mask(__m128i __a,__m128i __b)85 __mmask8 test_mm_cmpge_epu32_mask(__m128i __a, __m128i __b) {
86   // CHECK-LABEL: @test_mm_cmpge_epu32_mask
87   // CHECK: icmp uge <4 x i32> %{{.*}}, %{{.*}}
88   return (__mmask8)_mm_cmpge_epu32_mask(__a, __b);
89 }
90 
test_mm_mask_cmpge_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)91 __mmask8 test_mm_mask_cmpge_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
92   // CHECK-LABEL: @test_mm_mask_cmpge_epu32_mask
93   // CHECK: icmp uge <4 x i32> %{{.*}}, %{{.*}}
94   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
95   return (__mmask8)_mm_mask_cmpge_epu32_mask(__u, __a, __b);
96 }
97 
test_mm_cmpge_epu64_mask(__m128i __a,__m128i __b)98 __mmask8 test_mm_cmpge_epu64_mask(__m128i __a, __m128i __b) {
99   // CHECK-LABEL: @test_mm_cmpge_epu64_mask
100   // CHECK: icmp uge <2 x i64> %{{.*}}, %{{.*}}
101   return (__mmask8)_mm_cmpge_epu64_mask(__a, __b);
102 }
103 
test_mm_mask_cmpge_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)104 __mmask8 test_mm_mask_cmpge_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
105   // CHECK-LABEL: @test_mm_mask_cmpge_epu64_mask
106   // CHECK: icmp uge <2 x i64> %{{.*}}, %{{.*}}
107   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
108   return (__mmask8)_mm_mask_cmpge_epu64_mask(__u, __a, __b);
109 }
110 
test_mm256_cmpge_epu32_mask(__m256i __a,__m256i __b)111 __mmask8 test_mm256_cmpge_epu32_mask(__m256i __a, __m256i __b) {
112   // CHECK-LABEL: @test_mm256_cmpge_epu32_mask
113   // CHECK: icmp uge <8 x i32> %{{.*}}, %{{.*}}
114   return (__mmask8)_mm256_cmpge_epu32_mask(__a, __b);
115 }
116 
test_mm256_mask_cmpge_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)117 __mmask8 test_mm256_mask_cmpge_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
118   // CHECK-LABEL: @test_mm256_mask_cmpge_epu32_mask
119   // CHECK: icmp uge <8 x i32> %{{.*}}, %{{.*}}
120   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
121   return (__mmask8)_mm256_mask_cmpge_epu32_mask(__u, __a, __b);
122 }
123 
test_mm256_cmpge_epu64_mask(__m256i __a,__m256i __b)124 __mmask8 test_mm256_cmpge_epu64_mask(__m256i __a, __m256i __b) {
125   // CHECK-LABEL: @test_mm256_cmpge_epu64_mask
126   // CHECK: icmp uge <4 x i64> %{{.*}}, %{{.*}}
127   return (__mmask8)_mm256_cmpge_epu64_mask(__a, __b);
128 }
129 
test_mm256_mask_cmpge_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)130 __mmask8 test_mm256_mask_cmpge_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
131   // CHECK-LABEL: @test_mm256_mask_cmpge_epu64_mask
132   // CHECK: icmp uge <4 x i64> %{{.*}}, %{{.*}}
133   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
134   return (__mmask8)_mm256_mask_cmpge_epu64_mask(__u, __a, __b);
135 }
136 
test_mm_cmpgt_epu32_mask(__m128i __a,__m128i __b)137 __mmask8 test_mm_cmpgt_epu32_mask(__m128i __a, __m128i __b) {
138   // CHECK-LABEL: @test_mm_cmpgt_epu32_mask
139   // CHECK: icmp ugt <4 x i32> %{{.*}}, %{{.*}}
140   return (__mmask8)_mm_cmpgt_epu32_mask(__a, __b);
141 }
142 
test_mm_mask_cmpgt_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)143 __mmask8 test_mm_mask_cmpgt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
144   // CHECK-LABEL: @test_mm_mask_cmpgt_epu32_mask
145   // CHECK: icmp ugt <4 x i32> %{{.*}}, %{{.*}}
146   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
147   return (__mmask8)_mm_mask_cmpgt_epu32_mask(__u, __a, __b);
148 }
149 
test_mm_cmpgt_epu64_mask(__m128i __a,__m128i __b)150 __mmask8 test_mm_cmpgt_epu64_mask(__m128i __a, __m128i __b) {
151   // CHECK-LABEL: @test_mm_cmpgt_epu64_mask
152   // CHECK: icmp ugt <2 x i64> %{{.*}}, %{{.*}}
153   return (__mmask8)_mm_cmpgt_epu64_mask(__a, __b);
154 }
155 
test_mm_mask_cmpgt_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)156 __mmask8 test_mm_mask_cmpgt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
157   // CHECK-LABEL: @test_mm_mask_cmpgt_epu64_mask
158   // CHECK: icmp ugt <2 x i64> %{{.*}}, %{{.*}}
159   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
160   return (__mmask8)_mm_mask_cmpgt_epu64_mask(__u, __a, __b);
161 }
162 
test_mm256_cmpgt_epu32_mask(__m256i __a,__m256i __b)163 __mmask8 test_mm256_cmpgt_epu32_mask(__m256i __a, __m256i __b) {
164   // CHECK-LABEL: @test_mm256_cmpgt_epu32_mask
165   // CHECK: icmp ugt <8 x i32> %{{.*}}, %{{.*}}
166   return (__mmask8)_mm256_cmpgt_epu32_mask(__a, __b);
167 }
168 
test_mm256_mask_cmpgt_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)169 __mmask8 test_mm256_mask_cmpgt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
170   // CHECK-LABEL: @test_mm256_mask_cmpgt_epu32_mask
171   // CHECK: icmp ugt <8 x i32> %{{.*}}, %{{.*}}
172   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
173   return (__mmask8)_mm256_mask_cmpgt_epu32_mask(__u, __a, __b);
174 }
175 
test_mm256_cmpgt_epu64_mask(__m256i __a,__m256i __b)176 __mmask8 test_mm256_cmpgt_epu64_mask(__m256i __a, __m256i __b) {
177   // CHECK-LABEL: @test_mm256_cmpgt_epu64_mask
178   // CHECK: icmp ugt <4 x i64> %{{.*}}, %{{.*}}
179   return (__mmask8)_mm256_cmpgt_epu64_mask(__a, __b);
180 }
181 
test_mm256_mask_cmpgt_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)182 __mmask8 test_mm256_mask_cmpgt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
183   // CHECK-LABEL: @test_mm256_mask_cmpgt_epu64_mask
184   // CHECK: icmp ugt <4 x i64> %{{.*}}, %{{.*}}
185   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
186   return (__mmask8)_mm256_mask_cmpgt_epu64_mask(__u, __a, __b);
187 }
188 
test_mm_cmple_epi32_mask(__m128i __a,__m128i __b)189 __mmask8 test_mm_cmple_epi32_mask(__m128i __a, __m128i __b) {
190   // CHECK-LABEL: @test_mm_cmple_epi32_mask
191   // CHECK: icmp sle <4 x i32> %{{.*}}, %{{.*}}
192   return (__mmask8)_mm_cmple_epi32_mask(__a, __b);
193 }
194 
test_mm_mask_cmple_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)195 __mmask8 test_mm_mask_cmple_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
196   // CHECK-LABEL: @test_mm_mask_cmple_epi32_mask
197   // CHECK: icmp sle <4 x i32> %{{.*}}, %{{.*}}
198   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
199   return (__mmask8)_mm_mask_cmple_epi32_mask(__u, __a, __b);
200 }
201 
test_mm_cmple_epi64_mask(__m128i __a,__m128i __b)202 __mmask8 test_mm_cmple_epi64_mask(__m128i __a, __m128i __b) {
203   // CHECK-LABEL: @test_mm_cmple_epi64_mask
204   // CHECK: icmp sle <2 x i64> %{{.*}}, %{{.*}}
205   return (__mmask8)_mm_cmple_epi64_mask(__a, __b);
206 }
207 
test_mm_mask_cmple_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)208 __mmask8 test_mm_mask_cmple_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
209   // CHECK-LABEL: @test_mm_mask_cmple_epi64_mask
210   // CHECK: icmp sle <2 x i64> %{{.*}}, %{{.*}}
211   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
212   return (__mmask8)_mm_mask_cmple_epi64_mask(__u, __a, __b);
213 }
214 
test_mm256_cmple_epi32_mask(__m256i __a,__m256i __b)215 __mmask8 test_mm256_cmple_epi32_mask(__m256i __a, __m256i __b) {
216   // CHECK-LABEL: @test_mm256_cmple_epi32_mask
217   // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
218   return (__mmask8)_mm256_cmple_epi32_mask(__a, __b);
219 }
220 
test_mm256_mask_cmple_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)221 __mmask8 test_mm256_mask_cmple_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
222   // CHECK-LABEL: @test_mm256_mask_cmple_epi32_mask
223   // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
224   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
225   return (__mmask8)_mm256_mask_cmple_epi32_mask(__u, __a, __b);
226 }
227 
test_mm256_cmple_epi64_mask(__m256i __a,__m256i __b)228 __mmask8 test_mm256_cmple_epi64_mask(__m256i __a, __m256i __b) {
229   // CHECK-LABEL: @test_mm256_cmple_epi64_mask
230   // CHECK: icmp sle <4 x i64> %{{.*}}, %{{.*}}
231   return (__mmask8)_mm256_cmple_epi64_mask(__a, __b);
232 }
233 
test_mm256_mask_cmple_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)234 __mmask8 test_mm256_mask_cmple_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
235   // CHECK-LABEL: @test_mm256_mask_cmple_epi64_mask
236   // CHECK: icmp sle <4 x i64> %{{.*}}, %{{.*}}
237   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
238   return (__mmask8)_mm256_mask_cmple_epi64_mask(__u, __a, __b);
239 }
240 
test_mm_cmple_epu32_mask(__m128i __a,__m128i __b)241 __mmask8 test_mm_cmple_epu32_mask(__m128i __a, __m128i __b) {
242   // CHECK-LABEL: @test_mm_cmple_epu32_mask
243   // CHECK: icmp ule <4 x i32> %{{.*}}, %{{.*}}
244   return (__mmask8)_mm_cmple_epu32_mask(__a, __b);
245 }
246 
test_mm_mask_cmple_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)247 __mmask8 test_mm_mask_cmple_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
248   // CHECK-LABEL: @test_mm_mask_cmple_epu32_mask
249   // CHECK: icmp ule <4 x i32> %{{.*}}, %{{.*}}
250   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
251   return (__mmask8)_mm_mask_cmple_epu32_mask(__u, __a, __b);
252 }
253 
test_mm_cmple_epu64_mask(__m128i __a,__m128i __b)254 __mmask8 test_mm_cmple_epu64_mask(__m128i __a, __m128i __b) {
255   // CHECK-LABEL: @test_mm_cmple_epu64_mask
256   // CHECK: icmp ule <2 x i64> %{{.*}}, %{{.*}}
257   return (__mmask8)_mm_cmple_epu64_mask(__a, __b);
258 }
259 
test_mm_mask_cmple_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)260 __mmask8 test_mm_mask_cmple_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
261   // CHECK-LABEL: @test_mm_mask_cmple_epu64_mask
262   // CHECK: icmp ule <2 x i64> %{{.*}}, %{{.*}}
263   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
264   return (__mmask8)_mm_mask_cmple_epu64_mask(__u, __a, __b);
265 }
266 
test_mm256_cmple_epu32_mask(__m256i __a,__m256i __b)267 __mmask8 test_mm256_cmple_epu32_mask(__m256i __a, __m256i __b) {
268   // CHECK-LABEL: @test_mm256_cmple_epu32_mask
269   // CHECK: icmp ule <8 x i32> %{{.*}}, %{{.*}}
270   return (__mmask8)_mm256_cmple_epu32_mask(__a, __b);
271 }
272 
test_mm256_mask_cmple_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)273 __mmask8 test_mm256_mask_cmple_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
274   // CHECK-LABEL: @test_mm256_mask_cmple_epu32_mask
275   // CHECK: icmp ule <8 x i32> %{{.*}}, %{{.*}}
276   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
277   return (__mmask8)_mm256_mask_cmple_epu32_mask(__u, __a, __b);
278 }
279 
test_mm256_cmple_epu64_mask(__m256i __a,__m256i __b)280 __mmask8 test_mm256_cmple_epu64_mask(__m256i __a, __m256i __b) {
281   // CHECK-LABEL: @test_mm256_cmple_epu64_mask
282   // CHECK: icmp ule <4 x i64> %{{.*}}, %{{.*}}
283   return (__mmask8)_mm256_cmple_epu64_mask(__a, __b);
284 }
285 
test_mm256_mask_cmple_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)286 __mmask8 test_mm256_mask_cmple_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
287   // CHECK-LABEL: @test_mm256_mask_cmple_epu64_mask
288   // CHECK: icmp ule <4 x i64> %{{.*}}, %{{.*}}
289   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
290   return (__mmask8)_mm256_mask_cmple_epu64_mask(__u, __a, __b);
291 }
292 
test_mm_cmplt_epi32_mask(__m128i __a,__m128i __b)293 __mmask8 test_mm_cmplt_epi32_mask(__m128i __a, __m128i __b) {
294   // CHECK-LABEL: @test_mm_cmplt_epi32_mask
295   // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
296   return (__mmask8)_mm_cmplt_epi32_mask(__a, __b);
297 }
298 
test_mm_mask_cmplt_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)299 __mmask8 test_mm_mask_cmplt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
300   // CHECK-LABEL: @test_mm_mask_cmplt_epi32_mask
301   // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
302   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
303   return (__mmask8)_mm_mask_cmplt_epi32_mask(__u, __a, __b);
304 }
305 
test_mm_cmplt_epi64_mask(__m128i __a,__m128i __b)306 __mmask8 test_mm_cmplt_epi64_mask(__m128i __a, __m128i __b) {
307   // CHECK-LABEL: @test_mm_cmplt_epi64_mask
308   // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
309   return (__mmask8)_mm_cmplt_epi64_mask(__a, __b);
310 }
311 
test_mm_mask_cmplt_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)312 __mmask8 test_mm_mask_cmplt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
313   // CHECK-LABEL: @test_mm_mask_cmplt_epi64_mask
314   // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
315   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
316   return (__mmask8)_mm_mask_cmplt_epi64_mask(__u, __a, __b);
317 }
318 
test_mm256_cmplt_epi32_mask(__m256i __a,__m256i __b)319 __mmask8 test_mm256_cmplt_epi32_mask(__m256i __a, __m256i __b) {
320   // CHECK-LABEL: @test_mm256_cmplt_epi32_mask
321   // CHECK: icmp slt <8 x i32> %{{.*}}, %{{.*}}
322   return (__mmask8)_mm256_cmplt_epi32_mask(__a, __b);
323 }
324 
test_mm256_mask_cmplt_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)325 __mmask8 test_mm256_mask_cmplt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
326   // CHECK-LABEL: @test_mm256_mask_cmplt_epi32_mask
327   // CHECK: icmp slt <8 x i32> %{{.*}}, %{{.*}}
328   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
329   return (__mmask8)_mm256_mask_cmplt_epi32_mask(__u, __a, __b);
330 }
331 
test_mm256_cmplt_epi64_mask(__m256i __a,__m256i __b)332 __mmask8 test_mm256_cmplt_epi64_mask(__m256i __a, __m256i __b) {
333   // CHECK-LABEL: @test_mm256_cmplt_epi64_mask
334   // CHECK: icmp slt <4 x i64> %{{.*}}, %{{.*}}
335   return (__mmask8)_mm256_cmplt_epi64_mask(__a, __b);
336 }
337 
test_mm256_mask_cmplt_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)338 __mmask8 test_mm256_mask_cmplt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
339   // CHECK-LABEL: @test_mm256_mask_cmplt_epi64_mask
340   // CHECK: icmp slt <4 x i64> %{{.*}}, %{{.*}}
341   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
342   return (__mmask8)_mm256_mask_cmplt_epi64_mask(__u, __a, __b);
343 }
344 
test_mm_cmplt_epu32_mask(__m128i __a,__m128i __b)345 __mmask8 test_mm_cmplt_epu32_mask(__m128i __a, __m128i __b) {
346   // CHECK-LABEL: @test_mm_cmplt_epu32_mask
347   // CHECK: icmp ult <4 x i32> %{{.*}}, %{{.*}}
348   return (__mmask8)_mm_cmplt_epu32_mask(__a, __b);
349 }
350 
test_mm_mask_cmplt_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)351 __mmask8 test_mm_mask_cmplt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
352   // CHECK-LABEL: @test_mm_mask_cmplt_epu32_mask
353   // CHECK: icmp ult <4 x i32> %{{.*}}, %{{.*}}
354   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
355   return (__mmask8)_mm_mask_cmplt_epu32_mask(__u, __a, __b);
356 }
357 
test_mm_cmplt_epu64_mask(__m128i __a,__m128i __b)358 __mmask8 test_mm_cmplt_epu64_mask(__m128i __a, __m128i __b) {
359   // CHECK-LABEL: @test_mm_cmplt_epu64_mask
360   // CHECK: icmp ult <2 x i64> %{{.*}}, %{{.*}}
361   return (__mmask8)_mm_cmplt_epu64_mask(__a, __b);
362 }
363 
test_mm_mask_cmplt_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)364 __mmask8 test_mm_mask_cmplt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
365   // CHECK-LABEL: @test_mm_mask_cmplt_epu64_mask
366   // CHECK: icmp ult <2 x i64> %{{.*}}, %{{.*}}
367   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
368   return (__mmask8)_mm_mask_cmplt_epu64_mask(__u, __a, __b);
369 }
370 
test_mm256_cmplt_epu32_mask(__m256i __a,__m256i __b)371 __mmask8 test_mm256_cmplt_epu32_mask(__m256i __a, __m256i __b) {
372   // CHECK-LABEL: @test_mm256_cmplt_epu32_mask
373   // CHECK: icmp ult <8 x i32> %{{.*}}, %{{.*}}
374   return (__mmask8)_mm256_cmplt_epu32_mask(__a, __b);
375 }
376 
test_mm256_mask_cmplt_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)377 __mmask8 test_mm256_mask_cmplt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
378   // CHECK-LABEL: @test_mm256_mask_cmplt_epu32_mask
379   // CHECK: icmp ult <8 x i32> %{{.*}}, %{{.*}}
380   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
381   return (__mmask8)_mm256_mask_cmplt_epu32_mask(__u, __a, __b);
382 }
383 
test_mm256_cmplt_epu64_mask(__m256i __a,__m256i __b)384 __mmask8 test_mm256_cmplt_epu64_mask(__m256i __a, __m256i __b) {
385   // CHECK-LABEL: @test_mm256_cmplt_epu64_mask
386   // CHECK: icmp ult <4 x i64> %{{.*}}, %{{.*}}
387   return (__mmask8)_mm256_cmplt_epu64_mask(__a, __b);
388 }
389 
test_mm256_mask_cmplt_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)390 __mmask8 test_mm256_mask_cmplt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
391   // CHECK-LABEL: @test_mm256_mask_cmplt_epu64_mask
392   // CHECK: icmp ult <4 x i64> %{{.*}}, %{{.*}}
393   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
394   return (__mmask8)_mm256_mask_cmplt_epu64_mask(__u, __a, __b);
395 }
396 
test_mm_cmpneq_epi32_mask(__m128i __a,__m128i __b)397 __mmask8 test_mm_cmpneq_epi32_mask(__m128i __a, __m128i __b) {
398   // CHECK-LABEL: @test_mm_cmpneq_epi32_mask
399   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
400   return (__mmask8)_mm_cmpneq_epi32_mask(__a, __b);
401 }
402 
test_mm_mask_cmpneq_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)403 __mmask8 test_mm_mask_cmpneq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
404   // CHECK-LABEL: @test_mm_mask_cmpneq_epi32_mask
405   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
406   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
407   return (__mmask8)_mm_mask_cmpneq_epi32_mask(__u, __a, __b);
408 }
409 
test_mm_cmpneq_epi64_mask(__m128i __a,__m128i __b)410 __mmask8 test_mm_cmpneq_epi64_mask(__m128i __a, __m128i __b) {
411   // CHECK-LABEL: @test_mm_cmpneq_epi64_mask
412   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
413   return (__mmask8)_mm_cmpneq_epi64_mask(__a, __b);
414 }
415 
test_mm_mask_cmpneq_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)416 __mmask8 test_mm_mask_cmpneq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
417   // CHECK-LABEL: @test_mm_mask_cmpneq_epi64_mask
418   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
419   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
420   return (__mmask8)_mm_mask_cmpneq_epi64_mask(__u, __a, __b);
421 }
422 
test_mm256_cmpneq_epi32_mask(__m256i __a,__m256i __b)423 __mmask8 test_mm256_cmpneq_epi32_mask(__m256i __a, __m256i __b) {
424   // CHECK-LABEL: @test_mm256_cmpneq_epi32_mask
425   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
426   return (__mmask8)_mm256_cmpneq_epi32_mask(__a, __b);
427 }
428 
test_mm256_mask_cmpneq_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)429 __mmask8 test_mm256_mask_cmpneq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
430   // CHECK-LABEL: @test_mm256_mask_cmpneq_epi32_mask
431   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
432   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
433   return (__mmask8)_mm256_mask_cmpneq_epi32_mask(__u, __a, __b);
434 }
435 
test_mm256_cmpneq_epi64_mask(__m256i __a,__m256i __b)436 __mmask8 test_mm256_cmpneq_epi64_mask(__m256i __a, __m256i __b) {
437   // CHECK-LABEL: @test_mm256_cmpneq_epi64_mask
438   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
439   return (__mmask8)_mm256_cmpneq_epi64_mask(__a, __b);
440 }
441 
test_mm256_mask_cmpneq_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)442 __mmask8 test_mm256_mask_cmpneq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
443   // CHECK-LABEL: @test_mm256_mask_cmpneq_epi64_mask
444   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
445   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
446   return (__mmask8)_mm256_mask_cmpneq_epi64_mask(__u, __a, __b);
447 }
448 
test_mm_cmpneq_epu32_mask(__m128i __a,__m128i __b)449 __mmask8 test_mm_cmpneq_epu32_mask(__m128i __a, __m128i __b) {
450   // CHECK-LABEL: @test_mm_cmpneq_epu32_mask
451   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
452   return (__mmask8)_mm_cmpneq_epu32_mask(__a, __b);
453 }
454 
test_mm_mask_cmpneq_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)455 __mmask8 test_mm_mask_cmpneq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
456   // CHECK-LABEL: @test_mm_mask_cmpneq_epu32_mask
457   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
458   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
459   return (__mmask8)_mm_mask_cmpneq_epu32_mask(__u, __a, __b);
460 }
461 
test_mm_cmpneq_epu64_mask(__m128i __a,__m128i __b)462 __mmask8 test_mm_cmpneq_epu64_mask(__m128i __a, __m128i __b) {
463   // CHECK-LABEL: @test_mm_cmpneq_epu64_mask
464   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
465   return (__mmask8)_mm_cmpneq_epu64_mask(__a, __b);
466 }
467 
test_mm_mask_cmpneq_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)468 __mmask8 test_mm_mask_cmpneq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
469   // CHECK-LABEL: @test_mm_mask_cmpneq_epu64_mask
470   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
471   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
472   return (__mmask8)_mm_mask_cmpneq_epu64_mask(__u, __a, __b);
473 }
474 
test_mm256_cmpneq_epu32_mask(__m256i __a,__m256i __b)475 __mmask8 test_mm256_cmpneq_epu32_mask(__m256i __a, __m256i __b) {
476   // CHECK-LABEL: @test_mm256_cmpneq_epu32_mask
477   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
478   return (__mmask8)_mm256_cmpneq_epu32_mask(__a, __b);
479 }
480 
test_mm256_mask_cmpneq_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)481 __mmask8 test_mm256_mask_cmpneq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
482   // CHECK-LABEL: @test_mm256_mask_cmpneq_epu32_mask
483   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
484   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
485   return (__mmask8)_mm256_mask_cmpneq_epu32_mask(__u, __a, __b);
486 }
487 
test_mm256_cmpneq_epu64_mask(__m256i __a,__m256i __b)488 __mmask8 test_mm256_cmpneq_epu64_mask(__m256i __a, __m256i __b) {
489   // CHECK-LABEL: @test_mm256_cmpneq_epu64_mask
490   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
491   return (__mmask8)_mm256_cmpneq_epu64_mask(__a, __b);
492 }
493 
test_mm256_mask_cmpneq_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)494 __mmask8 test_mm256_mask_cmpneq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
495   // CHECK-LABEL: @test_mm256_mask_cmpneq_epu64_mask
496   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
497   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
498   return (__mmask8)_mm256_mask_cmpneq_epu64_mask(__u, __a, __b);
499 }
500 
test_mm_cmp_eq_epi32_mask(__m128i __a,__m128i __b)501 __mmask8 test_mm_cmp_eq_epi32_mask(__m128i __a, __m128i __b) {
502   // CHECK-LABEL: @test_mm_cmp_eq_epi32_mask
503   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
504   return (__mmask8)_mm_cmp_epi32_mask(__a, __b, _MM_CMPINT_EQ);
505 }
506 
test_mm_mask_cmp_lt_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)507 __mmask8 test_mm_mask_cmp_lt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
508   // CHECK-LABEL: @test_mm_mask_cmp_lt_epi32_mask
509   // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
510   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
511   return (__mmask8)_mm_mask_cmp_epi32_mask(__u, __a, __b, _MM_CMPINT_LT);
512 }
513 
test_mm_cmp_lt_epi64_mask(__m128i __a,__m128i __b)514 __mmask8 test_mm_cmp_lt_epi64_mask(__m128i __a, __m128i __b) {
515   // CHECK-LABEL: @test_mm_cmp_lt_epi64_mask
516   // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
517   return (__mmask8)_mm_cmp_epi64_mask(__a, __b, _MM_CMPINT_LT);
518 }
519 
test_mm_mask_cmp_eq_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)520 __mmask8 test_mm_mask_cmp_eq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
521   // CHECK-LABEL: @test_mm_mask_cmp_eq_epi64_mask
522   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
523   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
524   return (__mmask8)_mm_mask_cmp_epi64_mask(__u, __a, __b, _MM_CMPINT_EQ);
525 }
526 
test_mm256_cmp_eq_epi32_mask(__m256i __a,__m256i __b)527 __mmask8 test_mm256_cmp_eq_epi32_mask(__m256i __a, __m256i __b) {
528   // CHECK-LABEL: @test_mm256_cmp_eq_epi32_mask
529   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
530   return (__mmask8)_mm256_cmp_epi32_mask(__a, __b, _MM_CMPINT_EQ);
531 }
532 
test_mm256_mask_cmp_le_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)533 __mmask8 test_mm256_mask_cmp_le_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
534   // CHECK-LABEL: @test_mm256_mask_cmp_le_epi32_mask
535   // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
536   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
537   return (__mmask8)_mm256_mask_cmp_epi32_mask(__u, __a, __b, _MM_CMPINT_LE);
538 }
539 
test_mm256_cmp_eq_epi64_mask(__m256i __a,__m256i __b)540 __mmask8 test_mm256_cmp_eq_epi64_mask(__m256i __a, __m256i __b) {
541   // CHECK-LABEL: @test_mm256_cmp_eq_epi64_mask
542   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
543   return (__mmask8)_mm256_cmp_epi64_mask(__a, __b, _MM_CMPINT_EQ);
544 }
545 
test_mm256_mask_cmp_eq_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)546 __mmask8 test_mm256_mask_cmp_eq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
547   // CHECK-LABEL: @test_mm256_mask_cmp_eq_epi64_mask
548   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
549   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
550   return (__mmask8)_mm256_mask_cmp_epi64_mask(__u, __a, __b, _MM_CMPINT_EQ);
551 }
552 
test_mm_cmp_epu32_mask(__m128i __a,__m128i __b)553 __mmask8 test_mm_cmp_epu32_mask(__m128i __a, __m128i __b) {
554   // CHECK-LABEL: @test_mm_cmp_epu32_mask
555   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
556   return (__mmask8)_mm_cmp_epu32_mask(__a, __b, 0);
557 }
558 
test_mm_mask_cmp_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)559 __mmask8 test_mm_mask_cmp_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
560   // CHECK-LABEL: @test_mm_mask_cmp_epu32_mask
561   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
562   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
563   return (__mmask8)_mm_mask_cmp_epu32_mask(__u, __a, __b, 0);
564 }
565 
test_mm_cmp_epu64_mask(__m128i __a,__m128i __b)566 __mmask8 test_mm_cmp_epu64_mask(__m128i __a, __m128i __b) {
567   // CHECK-LABEL: @test_mm_cmp_epu64_mask
568   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
569   return (__mmask8)_mm_cmp_epu64_mask(__a, __b, 0);
570 }
571 
test_mm_mask_cmp_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)572 __mmask8 test_mm_mask_cmp_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
573   // CHECK-LABEL: @test_mm_mask_cmp_epu64_mask
574   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
575   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
576   return (__mmask8)_mm_mask_cmp_epu64_mask(__u, __a, __b, 0);
577 }
578 
test_mm256_cmp_epu32_mask(__m256i __a,__m256i __b)579 __mmask8 test_mm256_cmp_epu32_mask(__m256i __a, __m256i __b) {
580   // CHECK-LABEL: @test_mm256_cmp_epu32_mask
581   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
582   return (__mmask8)_mm256_cmp_epu32_mask(__a, __b, 0);
583 }
584 
test_mm256_mask_cmp_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)585 __mmask8 test_mm256_mask_cmp_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
586   // CHECK-LABEL: @test_mm256_mask_cmp_epu32_mask
587   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
588   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
589   return (__mmask8)_mm256_mask_cmp_epu32_mask(__u, __a, __b, 0);
590 }
591 
test_mm256_cmp_epu64_mask(__m256i __a,__m256i __b)592 __mmask8 test_mm256_cmp_epu64_mask(__m256i __a, __m256i __b) {
593   // CHECK-LABEL: @test_mm256_cmp_epu64_mask
594   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
595   return (__mmask8)_mm256_cmp_epu64_mask(__a, __b, 0);
596 }
597 
test_mm256_mask_cmp_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)598 __mmask8 test_mm256_mask_cmp_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
599   // CHECK-LABEL: @test_mm256_mask_cmp_epu64_mask
600   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
601   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
602   return (__mmask8)_mm256_mask_cmp_epu64_mask(__u, __a, __b, 0);
603 }
604 
test_mm256_mask_add_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)605 __m256i test_mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
606            __m256i __B) {
607   //CHECK-LABEL: @test_mm256_mask_add_epi32
608   //CHECK: add <8 x i32> %{{.*}}, %{{.*}}
609   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
610   return _mm256_mask_add_epi32(__W, __U, __A, __B);
611 }
612 
test_mm256_maskz_add_epi32(__mmask8 __U,__m256i __A,__m256i __B)613 __m256i test_mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
614   //CHECK-LABEL: @test_mm256_maskz_add_epi32
615   //CHECK: add <8 x i32> %{{.*}}, %{{.*}}
616   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
617   return _mm256_maskz_add_epi32(__U, __A, __B);
618 }
619 
test_mm256_mask_add_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)620 __m256i test_mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
621            __m256i __B) {
622   //CHECK-LABEL: @test_mm256_mask_add_epi64
623   //CHECK: add <4 x i64> %{{.*}}, %{{.*}}
624   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
625   return _mm256_mask_add_epi64(__W,__U,__A,__B);
626 }
627 
test_mm256_maskz_add_epi64(__mmask8 __U,__m256i __A,__m256i __B)628 __m256i test_mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
629   //CHECK-LABEL: @test_mm256_maskz_add_epi64
630   //CHECK: add <4 x i64> %{{.*}}, %{{.*}}
631   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
632   return _mm256_maskz_add_epi64 (__U,__A,__B);
633 }
634 
test_mm256_mask_sub_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)635 __m256i test_mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
636            __m256i __B) {
637   //CHECK-LABEL: @test_mm256_mask_sub_epi32
638   //CHECK: sub <8 x i32> %{{.*}}, %{{.*}}
639   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
640   return _mm256_mask_sub_epi32 (__W,__U,__A,__B);
641 }
642 
test_mm256_maskz_sub_epi32(__mmask8 __U,__m256i __A,__m256i __B)643 __m256i test_mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
644   //CHECK-LABEL: @test_mm256_maskz_sub_epi32
645   //CHECK: sub <8 x i32> %{{.*}}, %{{.*}}
646   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
647   return _mm256_maskz_sub_epi32 (__U,__A,__B);
648 }
649 
test_mm256_mask_sub_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)650 __m256i test_mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
651            __m256i __B) {
652   //CHECK-LABEL: @test_mm256_mask_sub_epi64
653   //CHECK: sub <4 x i64> %{{.*}}, %{{.*}}
654   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
655   return _mm256_mask_sub_epi64 (__W,__U,__A,__B);
656 }
657 
test_mm256_maskz_sub_epi64(__mmask8 __U,__m256i __A,__m256i __B)658 __m256i test_mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
659   //CHECK-LABEL: @test_mm256_maskz_sub_epi64
660   //CHECK: sub <4 x i64> %{{.*}}, %{{.*}}
661   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
662   return _mm256_maskz_sub_epi64 (__U,__A,__B);
663 }
664 
test_mm_mask_add_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)665 __m128i test_mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
666         __m128i __B) {
667   //CHECK-LABEL: @test_mm_mask_add_epi32
668   //CHECK: add <4 x i32> %{{.*}}, %{{.*}}
669   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
670   return _mm_mask_add_epi32(__W,__U,__A,__B);
671 }
672 
673 
test_mm_maskz_add_epi32(__mmask8 __U,__m128i __A,__m128i __B)674 __m128i test_mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
675   //CHECK-LABEL: @test_mm_maskz_add_epi32
676   //CHECK: add <4 x i32> %{{.*}}, %{{.*}}
677   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
678   return _mm_maskz_add_epi32 (__U,__A,__B);
679 }
680 
test_mm_mask_add_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)681 __m128i test_mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
682         __m128i __B) {
683   //CHECK-LABEL: @test_mm_mask_add_epi64
684   //CHECK: add <2 x i64> %{{.*}}, %{{.*}}
685   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
686   return _mm_mask_add_epi64 (__W,__U,__A,__B);
687 }
688 
test_mm_maskz_add_epi64(__mmask8 __U,__m128i __A,__m128i __B)689 __m128i test_mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
690   //CHECK-LABEL: @test_mm_maskz_add_epi64
691   //CHECK: add <2 x i64> %{{.*}}, %{{.*}}
692   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
693   return _mm_maskz_add_epi64 (__U,__A,__B);
694 }
695 
test_mm_mask_sub_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)696 __m128i test_mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
697         __m128i __B) {
698   //CHECK-LABEL: @test_mm_mask_sub_epi32
699   //CHECK: sub <4 x i32> %{{.*}}, %{{.*}}
700   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
701   return _mm_mask_sub_epi32(__W, __U, __A, __B);
702 }
703 
test_mm_maskz_sub_epi32(__mmask8 __U,__m128i __A,__m128i __B)704 __m128i test_mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
705   //CHECK-LABEL: @test_mm_maskz_sub_epi32
706   //CHECK: sub <4 x i32> %{{.*}}, %{{.*}}
707   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
708   return _mm_maskz_sub_epi32(__U, __A, __B);
709 }
710 
test_mm_mask_sub_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)711 __m128i test_mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
712         __m128i __B) {
713   //CHECK-LABEL: @test_mm_mask_sub_epi64
714   //CHECK: sub <2 x i64> %{{.*}}, %{{.*}}
715   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
716   return _mm_mask_sub_epi64 (__W, __U, __A, __B);
717 }
718 
test_mm_maskz_sub_epi64(__mmask8 __U,__m128i __A,__m128i __B)719 __m128i test_mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
720   //CHECK-LABEL: @test_mm_maskz_sub_epi64
721   //CHECK: sub <2 x i64> %{{.*}}, %{{.*}}
722   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
723   return _mm_maskz_sub_epi64 (__U, __A, __B);
724 }
725 
test_mm256_mask_mul_epi32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)726 __m256i test_mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
727            __m256i __Y) {
728   //CHECK-LABEL: @test_mm256_mask_mul_epi32
729   //CHECK: shl <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
730   //CHECK: ashr <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
731   //CHECK: shl <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
732   //CHECK: ashr <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
733   //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
734   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
735   return _mm256_mask_mul_epi32(__W, __M, __X, __Y);
736 }
737 
test_mm256_maskz_mul_epi32(__mmask8 __M,__m256i __X,__m256i __Y)738 __m256i test_mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y) {
739   //CHECK-LABEL: @test_mm256_maskz_mul_epi32
740   //CHECK: shl <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
741   //CHECK: ashr <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
742   //CHECK: shl <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
743   //CHECK: ashr <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
744   //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
745   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
746   return _mm256_maskz_mul_epi32(__M, __X, __Y);
747 }
748 
749 
test_mm_mask_mul_epi32(__m128i __W,__mmask8 __M,__m128i __X,__m128i __Y)750 __m128i test_mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X,
751         __m128i __Y) {
752   //CHECK-LABEL: @test_mm_mask_mul_epi32
753   //CHECK: shl <2 x i64> %{{.*}}, <i64 32, i64 32>
754   //CHECK: ashr <2 x i64> %{{.*}}, <i64 32, i64 32>
755   //CHECK: shl <2 x i64> %{{.*}}, <i64 32, i64 32>
756   //CHECK: ashr <2 x i64> %{{.*}}, <i64 32, i64 32>
757   //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
758   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
759   return _mm_mask_mul_epi32(__W, __M, __X, __Y);
760 }
761 
test_mm_maskz_mul_epi32(__mmask8 __M,__m128i __X,__m128i __Y)762 __m128i test_mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y) {
763   //CHECK-LABEL: @test_mm_maskz_mul_epi32
764   //CHECK: shl <2 x i64> %{{.*}}, <i64 32, i64 32>
765   //CHECK: ashr <2 x i64> %{{.*}}, <i64 32, i64 32>
766   //CHECK: shl <2 x i64> %{{.*}}, <i64 32, i64 32>
767   //CHECK: ashr <2 x i64> %{{.*}}, <i64 32, i64 32>
768   //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
769   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
770   return _mm_maskz_mul_epi32(__M, __X, __Y);
771 }
772 
test_mm256_mask_mul_epu32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)773 __m256i test_mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X,
774            __m256i __Y) {
775   //CHECK-LABEL: @test_mm256_mask_mul_epu32
776   //CHECK: and <4 x i64> %{{.*}}, <i64 4294967295, i64 4294967295, i64 4294967295, i64 4294967295>
777   //CHECK: and <4 x i64> %{{.*}}, <i64 4294967295, i64 4294967295, i64 4294967295, i64 4294967295>
778   //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
779   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
780   return _mm256_mask_mul_epu32(__W, __M, __X, __Y);
781 }
782 
test_mm256_maskz_mul_epu32(__mmask8 __M,__m256i __X,__m256i __Y)783 __m256i test_mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y) {
784   //CHECK-LABEL: @test_mm256_maskz_mul_epu32
785   //CHECK: and <4 x i64> %{{.*}}, <i64 4294967295, i64 4294967295, i64 4294967295, i64 4294967295>
786   //CHECK: and <4 x i64> %{{.*}}, <i64 4294967295, i64 4294967295, i64 4294967295, i64 4294967295>
787   //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
788   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
789   return _mm256_maskz_mul_epu32(__M, __X, __Y);
790 }
791 
test_mm_mask_mul_epu32(__m128i __W,__mmask8 __M,__m128i __X,__m128i __Y)792 __m128i test_mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X,
793         __m128i __Y) {
794   //CHECK-LABEL: @test_mm_mask_mul_epu32
795   //CHECK: and <2 x i64> %{{.*}}, <i64 4294967295, i64 4294967295>
796   //CHECK: and <2 x i64> %{{.*}}, <i64 4294967295, i64 4294967295>
797   //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
798   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
799   return _mm_mask_mul_epu32(__W, __M, __X, __Y);
800 }
801 
test_mm_maskz_mul_epu32(__mmask8 __M,__m128i __X,__m128i __Y)802 __m128i test_mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y) {
803   //CHECK-LABEL: @test_mm_maskz_mul_epu32
804   //CHECK: and <2 x i64> %{{.*}}, <i64 4294967295, i64 4294967295>
805   //CHECK: and <2 x i64> %{{.*}}, <i64 4294967295, i64 4294967295>
806   //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
807   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
808   return _mm_maskz_mul_epu32(__M, __X, __Y);
809 }
810 
test_mm_maskz_mullo_epi32(__mmask8 __M,__m128i __A,__m128i __B)811 __m128i test_mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
812   //CHECK-LABEL: @test_mm_maskz_mullo_epi32
813   //CHECK: mul <4 x i32> %{{.*}}, %{{.*}}
814   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
815   return _mm_maskz_mullo_epi32(__M, __A, __B);
816 }
817 
test_mm_mask_mullo_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)818 __m128i test_mm_mask_mullo_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
819           __m128i __B) {
820   //CHECK-LABEL: @test_mm_mask_mullo_epi32
821   //CHECK: mul <4 x i32> %{{.*}}, %{{.*}}
822   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
823   return _mm_mask_mullo_epi32(__W, __M, __A, __B);
824 }
825 
test_mm256_maskz_mullo_epi32(__mmask8 __M,__m256i __A,__m256i __B)826 __m256i test_mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
827   //CHECK-LABEL: @test_mm256_maskz_mullo_epi32
828   //CHECK: mul <8 x i32> %{{.*}}, %{{.*}}
829   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
830   return _mm256_maskz_mullo_epi32(__M, __A, __B);
831 }
832 
test_mm256_mask_mullo_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)833 __m256i test_mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
834        __m256i __B) {
835   //CHECK-LABEL: @test_mm256_mask_mullo_epi32
836   //CHECK: mul <8 x i32> %{{.*}}, %{{.*}}
837   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
838   return _mm256_mask_mullo_epi32(__W, __M, __A, __B);
839 }
840 
test_mm256_and_epi32(__m256i __A,__m256i __B)841 __m256i test_mm256_and_epi32 (__m256i __A, __m256i __B) {
842   //CHECK-LABEL: @test_mm256_and_epi32
843   //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
844   return _mm256_and_epi32(__A, __B);
845 }
846 
test_mm256_mask_and_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)847 __m256i test_mm256_mask_and_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
848   //CHECK-LABEL: @test_mm256_mask_and_epi32
849   //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
850   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
851   return _mm256_mask_and_epi32(__W, __U, __A, __B);
852 }
853 
test_mm256_maskz_and_epi32(__mmask8 __U,__m256i __A,__m256i __B)854 __m256i test_mm256_maskz_and_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
855   //CHECK-LABEL: @test_mm256_maskz_and_epi32
856   //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
857   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
858   return _mm256_maskz_and_epi32(__U, __A, __B);
859 }
860 
test_mm_and_epi32(__m128i __A,__m128i __B)861 __m128i test_mm_and_epi32 (__m128i __A, __m128i __B) {
862   //CHECK-LABEL: @test_mm_and_epi32
863   //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
864   return _mm_and_epi32(__A, __B);
865 }
866 
test_mm_mask_and_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)867 __m128i test_mm_mask_and_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
868   //CHECK-LABEL: @test_mm_mask_and_epi32
869   //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
870   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
871   return _mm_mask_and_epi32(__W, __U, __A, __B);
872 }
873 
test_mm_maskz_and_epi32(__mmask8 __U,__m128i __A,__m128i __B)874 __m128i test_mm_maskz_and_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
875   //CHECK-LABEL: @test_mm_maskz_and_epi32
876   //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
877   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
878   return _mm_maskz_and_epi32(__U, __A, __B);
879 }
880 
test_mm256_andnot_epi32(__m256i __A,__m256i __B)881 __m256i test_mm256_andnot_epi32 (__m256i __A, __m256i __B) {
882   //CHECK-LABEL: @test_mm256_andnot_epi32
883   //CHECK: xor <8 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
884   //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
885   return _mm256_andnot_epi32(__A, __B);
886 }
887 
test_mm256_mask_andnot_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)888 __m256i test_mm256_mask_andnot_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
889   //CHECK-LABEL: @test_mm256_mask_andnot_epi32
890   //CHECK: xor <8 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
891   //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
892   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
893   return _mm256_mask_andnot_epi32(__W, __U, __A, __B);
894 }
895 
test_mm256_maskz_andnot_epi32(__mmask8 __U,__m256i __A,__m256i __B)896 __m256i test_mm256_maskz_andnot_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
897   //CHECK-LABEL: @test_mm256_maskz_andnot_epi32
898   //CHECK: xor <8 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
899   //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
900   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
901   return _mm256_maskz_andnot_epi32(__U, __A, __B);
902 }
903 
test_mm_andnot_epi32(__m128i __A,__m128i __B)904 __m128i test_mm_andnot_epi32 (__m128i __A, __m128i __B) {
905   //CHECK-LABEL: @test_mm_andnot_epi32
906   //CHECK: xor <4 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1>
907   //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
908   return _mm_andnot_epi32(__A, __B);
909 }
910 
test_mm_mask_andnot_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)911 __m128i test_mm_mask_andnot_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
912   //CHECK-LABEL: @test_mm_mask_andnot_epi32
913   //CHECK: xor <4 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1>
914   //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
915   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
916   return _mm_mask_andnot_epi32(__W, __U, __A, __B);
917 }
918 
test_mm_maskz_andnot_epi32(__mmask8 __U,__m128i __A,__m128i __B)919 __m128i test_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
920   //CHECK-LABEL: @test_mm_maskz_andnot_epi32
921   //CHECK: xor <4 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1>
922   //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
923   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
924   return _mm_maskz_andnot_epi32(__U, __A, __B);
925 }
926 
test_mm256_or_epi32(__m256i __A,__m256i __B)927 __m256i test_mm256_or_epi32 (__m256i __A, __m256i __B) {
928   //CHECK-LABEL: @test_mm256_or_epi32
929   //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
930   return _mm256_or_epi32(__A, __B);
931 }
932 
test_mm256_mask_or_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)933 __m256i test_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
934   //CHECK-LABEL: @test_mm256_mask_or_epi32
935   //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
936   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
937   return _mm256_mask_or_epi32(__W, __U, __A, __B);
938 }
939 
test_mm256_maskz_or_epi32(__mmask8 __U,__m256i __A,__m256i __B)940  __m256i test_mm256_maskz_or_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
941   //CHECK-LABEL: @test_mm256_maskz_or_epi32
942   //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
943   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
944   return _mm256_maskz_or_epi32(__U, __A, __B);
945 }
946 
test_mm_or_epi32(__m128i __A,__m128i __B)947 __m128i test_mm_or_epi32 (__m128i __A, __m128i __B) {
948   //CHECK-LABEL: @test_mm_or_epi32
949   //CHECK: or <4 x i32> %{{.*}}, %{{.*}}
950   return _mm_or_epi32(__A, __B);
951 }
952 
test_mm_mask_or_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)953 __m128i test_mm_mask_or_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
954   //CHECK-LABEL: @test_mm_mask_or_epi32
955   //CHECK: or <4 x i32> %{{.*}}, %{{.*}}
956   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
957   return _mm_mask_or_epi32(__W, __U, __A, __B);
958 }
959 
test_mm_maskz_or_epi32(__mmask8 __U,__m128i __A,__m128i __B)960 __m128i test_mm_maskz_or_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
961   //CHECK-LABEL: @test_mm_maskz_or_epi32
962   //CHECK: or <4 x i32> %{{.*}}, %{{.*}}
963   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
964   return _mm_maskz_or_epi32(__U, __A, __B);
965 }
966 
test_mm256_xor_epi32(__m256i __A,__m256i __B)967 __m256i test_mm256_xor_epi32 (__m256i __A, __m256i __B) {
968   //CHECK-LABEL: @test_mm256_xor_epi32
969   //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
970   return _mm256_xor_epi32(__A, __B);
971 }
972 
test_mm256_mask_xor_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)973 __m256i test_mm256_mask_xor_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
974   //CHECK-LABEL: @test_mm256_mask_xor_epi32
975   //CHECK: xor <8 x i32> %{{.*}}, %{{.*}}
976   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
977   return _mm256_mask_xor_epi32(__W, __U, __A, __B);
978 }
979 
test_mm256_maskz_xor_epi32(__mmask8 __U,__m256i __A,__m256i __B)980 __m256i test_mm256_maskz_xor_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
981   //CHECK-LABEL: @test_mm256_maskz_xor_epi32
982   //CHECK: xor <8 x i32> %{{.*}}, %{{.*}}
983   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
984   return _mm256_maskz_xor_epi32(__U, __A, __B);
985 }
986 
test_mm_xor_epi32(__m128i __A,__m128i __B)987 __m128i test_mm_xor_epi32 (__m128i __A, __m128i __B) {
988   //CHECK-LABEL: @test_mm_xor_epi32
989   //CHECK: xor <4 x i32> %{{.*}}, %{{.*}}
990   return _mm_xor_epi32(__A, __B);
991 }
992 
test_mm_mask_xor_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)993 __m128i test_mm_mask_xor_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
994   //CHECK-LABEL: @test_mm_mask_xor_epi32
995   //CHECK: xor <4 x i32> %{{.*}}, %{{.*}}
996   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
997   return _mm_mask_xor_epi32(__W, __U, __A, __B);
998 }
999 
test_mm_maskz_xor_epi32(__mmask8 __U,__m128i __A,__m128i __B)1000 __m128i test_mm_maskz_xor_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
1001   //CHECK-LABEL: @test_mm_maskz_xor_epi32
1002   //CHECK: xor <4 x i32> %{{.*}}, %{{.*}}
1003   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
1004   return _mm_maskz_xor_epi32(__U, __A, __B);
1005 }
1006 
test_mm256_and_epi64(__m256i __A,__m256i __B)1007 __m256i test_mm256_and_epi64 (__m256i __A, __m256i __B) {
1008   //CHECK-LABEL: @test_mm256_and_epi64
1009   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1010   return _mm256_and_epi64(__A, __B);
1011 }
1012 
test_mm256_mask_and_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1013 __m256i test_mm256_mask_and_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1014   //CHECK-LABEL: @test_mm256_mask_and_epi64
1015   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1016   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1017   return _mm256_mask_and_epi64(__W, __U, __A, __B);
1018 }
1019 
test_mm256_maskz_and_epi64(__mmask8 __U,__m256i __A,__m256i __B)1020 __m256i test_mm256_maskz_and_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
1021   //CHECK-LABEL: @test_mm256_maskz_and_epi64
1022   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1023   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1024   return _mm256_maskz_and_epi64(__U, __A, __B);
1025 }
1026 
test_mm_and_epi64(__m128i __A,__m128i __B)1027 __m128i test_mm_and_epi64 (__m128i __A, __m128i __B) {
1028   //CHECK-LABEL: @test_mm_and_epi64
1029   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1030   return _mm_and_epi64(__A, __B);
1031 }
1032 
test_mm_mask_and_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1033 __m128i test_mm_mask_and_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1034   //CHECK-LABEL: @test_mm_mask_and_epi64
1035   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1036   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1037   return _mm_mask_and_epi64(__W,__U, __A, __B);
1038 }
1039 
test_mm_maskz_and_epi64(__mmask8 __U,__m128i __A,__m128i __B)1040 __m128i test_mm_maskz_and_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
1041   //CHECK-LABEL: @test_mm_maskz_and_epi64
1042   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1043   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1044   return _mm_maskz_and_epi64(__U, __A, __B);
1045 }
1046 
test_mm256_andnot_epi64(__m256i __A,__m256i __B)1047 __m256i test_mm256_andnot_epi64 (__m256i __A, __m256i __B) {
1048   //CHECK-LABEL: @test_mm256_andnot_epi64
1049   //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1>
1050   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1051   return _mm256_andnot_epi64(__A, __B);
1052 }
1053 
test_mm256_mask_andnot_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1054 __m256i test_mm256_mask_andnot_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1055   //CHECK-LABEL: @test_mm256_mask_andnot_epi64
1056   //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1>
1057   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1058   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1059   return _mm256_mask_andnot_epi64(__W, __U, __A, __B);
1060 }
1061 
test_mm256_maskz_andnot_epi64(__mmask8 __U,__m256i __A,__m256i __B)1062 __m256i test_mm256_maskz_andnot_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
1063   //CHECK-LABEL: @test_mm256_maskz_andnot_epi64
1064   //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1>
1065   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1066   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1067   return _mm256_maskz_andnot_epi64(__U, __A, __B);
1068 }
1069 
test_mm_andnot_epi64(__m128i __A,__m128i __B)1070 __m128i test_mm_andnot_epi64 (__m128i __A, __m128i __B) {
1071   //CHECK-LABEL: @test_mm_andnot_epi64
1072   //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1>
1073   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1074   return _mm_andnot_epi64(__A, __B);
1075 }
1076 
test_mm_mask_andnot_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1077 __m128i test_mm_mask_andnot_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1078   //CHECK-LABEL: @test_mm_mask_andnot_epi64
1079   //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1>
1080   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1081   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1082   return _mm_mask_andnot_epi64(__W,__U, __A, __B);
1083 }
1084 
test_mm_maskz_andnot_epi64(__mmask8 __U,__m128i __A,__m128i __B)1085 __m128i test_mm_maskz_andnot_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
1086   //CHECK-LABEL: @test_mm_maskz_andnot_epi64
1087   //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1>
1088   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1089   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1090   return _mm_maskz_andnot_epi64(__U, __A, __B);
1091 }
1092 
test_mm256_or_epi64(__m256i __A,__m256i __B)1093 __m256i test_mm256_or_epi64 (__m256i __A, __m256i __B) {
1094   //CHECK-LABEL: @test_mm256_or_epi64
1095   //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
1096   return _mm256_or_epi64(__A, __B);
1097 }
1098 
test_mm256_mask_or_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1099 __m256i test_mm256_mask_or_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1100   //CHECK-LABEL: @test_mm256_mask_or_epi64
1101   //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
1102   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1103   return _mm256_mask_or_epi64(__W,__U, __A, __B);
1104 }
1105 
test_mm256_maskz_or_epi64(__mmask8 __U,__m256i __A,__m256i __B)1106 __m256i test_mm256_maskz_or_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
1107   //CHECK-LABEL: @test_mm256_maskz_or_epi64
1108   //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
1109   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1110   return _mm256_maskz_or_epi64(__U, __A, __B);
1111 }
1112 
test_mm_or_epi64(__m128i __A,__m128i __B)1113 __m128i test_mm_or_epi64 (__m128i __A, __m128i __B) {
1114   //CHECK-LABEL: @test_mm_or_epi64
1115   //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
1116   return _mm_or_epi64(__A, __B);
1117 }
1118 
test_mm_mask_or_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1119 __m128i test_mm_mask_or_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1120   //CHECK-LABEL: @test_mm_mask_or_epi64
1121   //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
1122   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1123   return _mm_mask_or_epi64(__W, __U, __A, __B);
1124 }
1125 
test_mm_maskz_or_epi64(__mmask8 __U,__m128i __A,__m128i __B)1126 __m128i test_mm_maskz_or_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
1127   //CHECK-LABEL: @test_mm_maskz_or_epi64
1128   //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
1129   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1130   return _mm_maskz_or_epi64( __U, __A, __B);
1131 }
1132 
test_mm256_xor_epi64(__m256i __A,__m256i __B)1133 __m256i test_mm256_xor_epi64 (__m256i __A, __m256i __B) {
1134   //CHECK-LABEL: @test_mm256_xor_epi64
1135   //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
1136   return _mm256_xor_epi64(__A, __B);
1137 }
1138 
test_mm256_mask_xor_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1139 __m256i test_mm256_mask_xor_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1140   //CHECK-LABEL: @test_mm256_mask_xor_epi64
1141   //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
1142   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1143   return _mm256_mask_xor_epi64(__W,__U, __A, __B);
1144 }
1145 
test_mm256_maskz_xor_epi64(__mmask8 __U,__m256i __A,__m256i __B)1146 __m256i test_mm256_maskz_xor_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
1147   //CHECK-LABEL: @test_mm256_maskz_xor_epi64
1148   //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
1149   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1150   return _mm256_maskz_xor_epi64(__U, __A, __B);
1151 }
1152 
test_mm_xor_epi64(__m128i __A,__m128i __B)1153 __m128i test_mm_xor_epi64 (__m128i __A, __m128i __B) {
1154   //CHECK-LABEL: @test_mm_xor_epi64
1155   //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
1156   return _mm_xor_epi64(__A, __B);
1157 }
1158 
test_mm_mask_xor_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1159 __m128i test_mm_mask_xor_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1160   //CHECK-LABEL: @test_mm_mask_xor_epi64
1161   //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
1162   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1163   return _mm_mask_xor_epi64(__W, __U, __A, __B);
1164 }
1165 
test_mm_maskz_xor_epi64(__mmask8 __U,__m128i __A,__m128i __B)1166 __m128i test_mm_maskz_xor_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
1167   //CHECK-LABEL: @test_mm_maskz_xor_epi64
1168   //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
1169   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1170   return _mm_maskz_xor_epi64( __U, __A, __B);
1171 }
1172 
test_mm256_cmp_ps_mask_eq_oq(__m256 a,__m256 b)1173 __mmask8 test_mm256_cmp_ps_mask_eq_oq(__m256 a, __m256 b) {
1174   // CHECK-LABEL: @test_mm256_cmp_ps_mask_eq_oq
1175   // CHECK: fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1176   return _mm256_cmp_ps_mask(a, b, _CMP_EQ_OQ);
1177 }
1178 
test_mm256_cmp_ps_mask_lt_os(__m256 a,__m256 b)1179 __mmask8 test_mm256_cmp_ps_mask_lt_os(__m256 a, __m256 b) {
1180   // CHECK-LABEL: test_mm256_cmp_ps_mask_lt_os
1181   // CHECK: fcmp olt <8 x float> %{{.*}}, %{{.*}}
1182   return _mm256_cmp_ps_mask(a, b, _CMP_LT_OS);
1183 }
1184 
test_mm256_cmp_ps_mask_le_os(__m256 a,__m256 b)1185 __mmask8 test_mm256_cmp_ps_mask_le_os(__m256 a, __m256 b) {
1186   // CHECK-LABEL: test_mm256_cmp_ps_mask_le_os
1187   // CHECK: fcmp ole <8 x float> %{{.*}}, %{{.*}}
1188   return _mm256_cmp_ps_mask(a, b, _CMP_LE_OS);
1189 }
1190 
test_mm256_cmp_ps_mask_unord_q(__m256 a,__m256 b)1191 __mmask8 test_mm256_cmp_ps_mask_unord_q(__m256 a, __m256 b) {
1192   // CHECK-LABEL: test_mm256_cmp_ps_mask_unord_q
1193   // CHECK: fcmp uno <8 x float> %{{.*}}, %{{.*}}
1194   return _mm256_cmp_ps_mask(a, b, _CMP_UNORD_Q);
1195 }
1196 
test_mm256_cmp_ps_mask_neq_uq(__m256 a,__m256 b)1197 __mmask8 test_mm256_cmp_ps_mask_neq_uq(__m256 a, __m256 b) {
1198   // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_uq
1199   // CHECK: fcmp une <8 x float> %{{.*}}, %{{.*}}
1200   return _mm256_cmp_ps_mask(a, b, _CMP_NEQ_UQ);
1201 }
1202 
test_mm256_cmp_ps_mask_nlt_us(__m256 a,__m256 b)1203 __mmask8 test_mm256_cmp_ps_mask_nlt_us(__m256 a, __m256 b) {
1204   // CHECK-LABEL: test_mm256_cmp_ps_mask_nlt_us
1205   // CHECK: fcmp uge <8 x float> %{{.*}}, %{{.*}}
1206   return _mm256_cmp_ps_mask(a, b, _CMP_NLT_US);
1207 }
1208 
test_mm256_cmp_ps_mask_nle_us(__m256 a,__m256 b)1209 __mmask8 test_mm256_cmp_ps_mask_nle_us(__m256 a, __m256 b) {
1210   // CHECK-LABEL: test_mm256_cmp_ps_mask_nle_us
1211   // CHECK: fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1212   return _mm256_cmp_ps_mask(a, b, _CMP_NLE_US);
1213 }
1214 
test_mm256_cmp_ps_mask_ord_q(__m256 a,__m256 b)1215 __mmask8 test_mm256_cmp_ps_mask_ord_q(__m256 a, __m256 b) {
1216   // CHECK-LABEL: test_mm256_cmp_ps_mask_ord_q
1217   // CHECK: fcmp ord <8 x float> %{{.*}}, %{{.*}}
1218   return _mm256_cmp_ps_mask(a, b, _CMP_ORD_Q);
1219 }
1220 
test_mm256_cmp_ps_mask_eq_uq(__m256 a,__m256 b)1221 __mmask8 test_mm256_cmp_ps_mask_eq_uq(__m256 a, __m256 b) {
1222   // CHECK-LABEL: test_mm256_cmp_ps_mask_eq_uq
1223   // CHECK: fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1224   return _mm256_cmp_ps_mask(a, b, _CMP_EQ_UQ);
1225 }
1226 
test_mm256_cmp_ps_mask_nge_us(__m256 a,__m256 b)1227 __mmask8 test_mm256_cmp_ps_mask_nge_us(__m256 a, __m256 b) {
1228   // CHECK-LABEL: test_mm256_cmp_ps_mask_nge_us
1229   // CHECK: fcmp ult <8 x float> %{{.*}}, %{{.*}}
1230   return _mm256_cmp_ps_mask(a, b, _CMP_NGE_US);
1231 }
1232 
test_mm256_cmp_ps_mask_ngt_us(__m256 a,__m256 b)1233 __mmask8 test_mm256_cmp_ps_mask_ngt_us(__m256 a, __m256 b) {
1234   // CHECK-LABEL: test_mm256_cmp_ps_mask_ngt_us
1235   // CHECK: fcmp ule <8 x float> %{{.*}}, %{{.*}}
1236   return _mm256_cmp_ps_mask(a, b, _CMP_NGT_US);
1237 }
1238 
test_mm256_cmp_ps_mask_false_oq(__m256 a,__m256 b)1239 __mmask8 test_mm256_cmp_ps_mask_false_oq(__m256 a, __m256 b) {
1240   // CHECK-LABEL: test_mm256_cmp_ps_mask_false_oq
1241   // CHECK: fcmp false <8 x float> %{{.*}}, %{{.*}}
1242   return _mm256_cmp_ps_mask(a, b, _CMP_FALSE_OQ);
1243 }
1244 
test_mm256_cmp_ps_mask_neq_oq(__m256 a,__m256 b)1245 __mmask8 test_mm256_cmp_ps_mask_neq_oq(__m256 a, __m256 b) {
1246   // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_oq
1247   // CHECK: fcmp one <8 x float> %{{.*}}, %{{.*}}
1248   return _mm256_cmp_ps_mask(a, b, _CMP_NEQ_OQ);
1249 }
1250 
test_mm256_cmp_ps_mask_ge_os(__m256 a,__m256 b)1251 __mmask8 test_mm256_cmp_ps_mask_ge_os(__m256 a, __m256 b) {
1252   // CHECK-LABEL: test_mm256_cmp_ps_mask_ge_os
1253   // CHECK: fcmp oge <8 x float> %{{.*}}, %{{.*}}
1254   return _mm256_cmp_ps_mask(a, b, _CMP_GE_OS);
1255 }
1256 
test_mm256_cmp_ps_mask_gt_os(__m256 a,__m256 b)1257 __mmask8 test_mm256_cmp_ps_mask_gt_os(__m256 a, __m256 b) {
1258   // CHECK-LABEL: test_mm256_cmp_ps_mask_gt_os
1259   // CHECK: fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1260   return _mm256_cmp_ps_mask(a, b, _CMP_GT_OS);
1261 }
1262 
test_mm256_cmp_ps_mask_true_uq(__m256 a,__m256 b)1263 __mmask8 test_mm256_cmp_ps_mask_true_uq(__m256 a, __m256 b) {
1264   // CHECK-LABEL: test_mm256_cmp_ps_mask_true_uq
1265   // CHECK: fcmp true <8 x float> %{{.*}}, %{{.*}}
1266   return _mm256_cmp_ps_mask(a, b, _CMP_TRUE_UQ);
1267 }
1268 
test_mm256_cmp_ps_mask_eq_os(__m256 a,__m256 b)1269 __mmask8 test_mm256_cmp_ps_mask_eq_os(__m256 a, __m256 b) {
1270   // CHECK-LABEL: test_mm256_cmp_ps_mask_eq_os
1271   // CHECK: fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1272   return _mm256_cmp_ps_mask(a, b, _CMP_EQ_OS);
1273 }
1274 
test_mm256_cmp_ps_mask_lt_oq(__m256 a,__m256 b)1275 __mmask8 test_mm256_cmp_ps_mask_lt_oq(__m256 a, __m256 b) {
1276   // CHECK-LABEL: test_mm256_cmp_ps_mask_lt_oq
1277   // CHECK: fcmp olt <8 x float> %{{.*}}, %{{.*}}
1278   return _mm256_cmp_ps_mask(a, b, _CMP_LT_OQ);
1279 }
1280 
test_mm256_cmp_ps_mask_le_oq(__m256 a,__m256 b)1281 __mmask8 test_mm256_cmp_ps_mask_le_oq(__m256 a, __m256 b) {
1282   // CHECK-LABEL: test_mm256_cmp_ps_mask_le_oq
1283   // CHECK: fcmp ole <8 x float> %{{.*}}, %{{.*}}
1284   return _mm256_cmp_ps_mask(a, b, _CMP_LE_OQ);
1285 }
1286 
test_mm256_cmp_ps_mask_unord_s(__m256 a,__m256 b)1287 __mmask8 test_mm256_cmp_ps_mask_unord_s(__m256 a, __m256 b) {
1288   // CHECK-LABEL: test_mm256_cmp_ps_mask_unord_s
1289   // CHECK: fcmp uno <8 x float> %{{.*}}, %{{.*}}
1290   return _mm256_cmp_ps_mask(a, b, _CMP_UNORD_S);
1291 }
1292 
test_mm256_cmp_ps_mask_neq_us(__m256 a,__m256 b)1293 __mmask8 test_mm256_cmp_ps_mask_neq_us(__m256 a, __m256 b) {
1294   // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_us
1295   // CHECK: fcmp une <8 x float> %{{.*}}, %{{.*}}
1296   return _mm256_cmp_ps_mask(a, b, _CMP_NEQ_US);
1297 }
1298 
test_mm256_cmp_ps_mask_nlt_uq(__m256 a,__m256 b)1299 __mmask8 test_mm256_cmp_ps_mask_nlt_uq(__m256 a, __m256 b) {
1300   // CHECK-LABEL: test_mm256_cmp_ps_mask_nlt_uq
1301   // CHECK: fcmp uge <8 x float> %{{.*}}, %{{.*}}
1302   return _mm256_cmp_ps_mask(a, b, _CMP_NLT_UQ);
1303 }
1304 
test_mm256_cmp_ps_mask_nle_uq(__m256 a,__m256 b)1305 __mmask8 test_mm256_cmp_ps_mask_nle_uq(__m256 a, __m256 b) {
1306   // CHECK-LABEL: test_mm256_cmp_ps_mask_nle_uq
1307   // CHECK: fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1308   return _mm256_cmp_ps_mask(a, b, _CMP_NLE_UQ);
1309 }
1310 
test_mm256_cmp_ps_mask_ord_s(__m256 a,__m256 b)1311 __mmask8 test_mm256_cmp_ps_mask_ord_s(__m256 a, __m256 b) {
1312   // CHECK-LABEL: test_mm256_cmp_ps_mask_ord_s
1313   // CHECK: fcmp ord <8 x float> %{{.*}}, %{{.*}}
1314   return _mm256_cmp_ps_mask(a, b, _CMP_ORD_S);
1315 }
1316 
test_mm256_cmp_ps_mask_eq_us(__m256 a,__m256 b)1317 __mmask8 test_mm256_cmp_ps_mask_eq_us(__m256 a, __m256 b) {
1318   // CHECK-LABEL: test_mm256_cmp_ps_mask_eq_us
1319   // CHECK: fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1320   return _mm256_cmp_ps_mask(a, b, _CMP_EQ_US);
1321 }
1322 
test_mm256_cmp_ps_mask_nge_uq(__m256 a,__m256 b)1323 __mmask8 test_mm256_cmp_ps_mask_nge_uq(__m256 a, __m256 b) {
1324   // CHECK-LABEL: test_mm256_cmp_ps_mask_nge_uq
1325   // CHECK: fcmp ult <8 x float> %{{.*}}, %{{.*}}
1326   return _mm256_cmp_ps_mask(a, b, _CMP_NGE_UQ);
1327 }
1328 
test_mm256_cmp_ps_mask_ngt_uq(__m256 a,__m256 b)1329 __mmask8 test_mm256_cmp_ps_mask_ngt_uq(__m256 a, __m256 b) {
1330   // CHECK-LABEL: test_mm256_cmp_ps_mask_ngt_uq
1331   // CHECK: fcmp ule <8 x float> %{{.*}}, %{{.*}}
1332   return _mm256_cmp_ps_mask(a, b, _CMP_NGT_UQ);
1333 }
1334 
test_mm256_cmp_ps_mask_false_os(__m256 a,__m256 b)1335 __mmask8 test_mm256_cmp_ps_mask_false_os(__m256 a, __m256 b) {
1336   // CHECK-LABEL: test_mm256_cmp_ps_mask_false_os
1337   // CHECK: fcmp false <8 x float> %{{.*}}, %{{.*}}
1338   return _mm256_cmp_ps_mask(a, b, _CMP_FALSE_OS);
1339 }
1340 
test_mm256_cmp_ps_mask_neq_os(__m256 a,__m256 b)1341 __mmask8 test_mm256_cmp_ps_mask_neq_os(__m256 a, __m256 b) {
1342   // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_os
1343   // CHECK: fcmp one <8 x float> %{{.*}}, %{{.*}}
1344   return _mm256_cmp_ps_mask(a, b, _CMP_NEQ_OS);
1345 }
1346 
test_mm256_cmp_ps_mask_ge_oq(__m256 a,__m256 b)1347 __mmask8 test_mm256_cmp_ps_mask_ge_oq(__m256 a, __m256 b) {
1348   // CHECK-LABEL: test_mm256_cmp_ps_mask_ge_oq
1349   // CHECK: fcmp oge <8 x float> %{{.*}}, %{{.*}}
1350   return _mm256_cmp_ps_mask(a, b, _CMP_GE_OQ);
1351 }
1352 
test_mm256_cmp_ps_mask_gt_oq(__m256 a,__m256 b)1353 __mmask8 test_mm256_cmp_ps_mask_gt_oq(__m256 a, __m256 b) {
1354   // CHECK-LABEL: test_mm256_cmp_ps_mask_gt_oq
1355   // CHECK: fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1356   return _mm256_cmp_ps_mask(a, b, _CMP_GT_OQ);
1357 }
1358 
test_mm256_cmp_ps_mask_true_us(__m256 a,__m256 b)1359 __mmask8 test_mm256_cmp_ps_mask_true_us(__m256 a, __m256 b) {
1360   // CHECK-LABEL: test_mm256_cmp_ps_mask_true_us
1361   // CHECK: fcmp true <8 x float> %{{.*}}, %{{.*}}
1362   return _mm256_cmp_ps_mask(a, b, _CMP_TRUE_US);
1363 }
1364 
test_mm256_mask_cmp_ps_mask_eq_oq(__mmask8 m,__m256 a,__m256 b)1365 __mmask8 test_mm256_mask_cmp_ps_mask_eq_oq(__mmask8 m, __m256 a, __m256 b) {
1366   // CHECK-LABEL: @test_mm256_mask_cmp_ps_mask_eq_oq
1367   // CHECK: [[CMP:%.*]] = fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1368   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1369   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_EQ_OQ);
1370 }
1371 
test_mm256_mask_cmp_ps_mask_lt_os(__mmask8 m,__m256 a,__m256 b)1372 __mmask8 test_mm256_mask_cmp_ps_mask_lt_os(__mmask8 m, __m256 a, __m256 b) {
1373   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_lt_os
1374   // CHECK: [[CMP:%.*]] = fcmp olt <8 x float> %{{.*}}, %{{.*}}
1375   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1376   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_LT_OS);
1377 }
1378 
test_mm256_mask_cmp_ps_mask_le_os(__mmask8 m,__m256 a,__m256 b)1379 __mmask8 test_mm256_mask_cmp_ps_mask_le_os(__mmask8 m, __m256 a, __m256 b) {
1380   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_le_os
1381   // CHECK: [[CMP:%.*]] = fcmp ole <8 x float> %{{.*}}, %{{.*}}
1382   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1383   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_LE_OS);
1384 }
1385 
test_mm256_mask_cmp_ps_mask_unord_q(__mmask8 m,__m256 a,__m256 b)1386 __mmask8 test_mm256_mask_cmp_ps_mask_unord_q(__mmask8 m, __m256 a, __m256 b) {
1387   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_unord_q
1388   // CHECK: [[CMP:%.*]] = fcmp uno <8 x float> %{{.*}}, %{{.*}}
1389   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1390   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_UNORD_Q);
1391 }
1392 
test_mm256_mask_cmp_ps_mask_neq_uq(__mmask8 m,__m256 a,__m256 b)1393 __mmask8 test_mm256_mask_cmp_ps_mask_neq_uq(__mmask8 m, __m256 a, __m256 b) {
1394   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_uq
1395   // CHECK: [[CMP:%.*]] = fcmp une <8 x float> %{{.*}}, %{{.*}}
1396   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1397   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_UQ);
1398 }
1399 
test_mm256_mask_cmp_ps_mask_nlt_us(__mmask8 m,__m256 a,__m256 b)1400 __mmask8 test_mm256_mask_cmp_ps_mask_nlt_us(__mmask8 m, __m256 a, __m256 b) {
1401   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nlt_us
1402   // CHECK: [[CMP:%.*]] = fcmp uge <8 x float> %{{.*}}, %{{.*}}
1403   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1404   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NLT_US);
1405 }
1406 
test_mm256_mask_cmp_ps_mask_nle_us(__mmask8 m,__m256 a,__m256 b)1407 __mmask8 test_mm256_mask_cmp_ps_mask_nle_us(__mmask8 m, __m256 a, __m256 b) {
1408   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nle_us
1409   // CHECK: [[CMP:%.*]] = fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1410   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1411   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NLE_US);
1412 }
1413 
test_mm256_mask_cmp_ps_mask_ord_q(__mmask8 m,__m256 a,__m256 b)1414 __mmask8 test_mm256_mask_cmp_ps_mask_ord_q(__mmask8 m, __m256 a, __m256 b) {
1415   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ord_q
1416   // CHECK: [[CMP:%.*]] = fcmp ord <8 x float> %{{.*}}, %{{.*}}
1417   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1418   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_ORD_Q);
1419 }
1420 
test_mm256_mask_cmp_ps_mask_eq_uq(__mmask8 m,__m256 a,__m256 b)1421 __mmask8 test_mm256_mask_cmp_ps_mask_eq_uq(__mmask8 m, __m256 a, __m256 b) {
1422   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_eq_uq
1423   // CHECK: [[CMP:%.*]] = fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1424   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1425   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_EQ_UQ);
1426 }
1427 
test_mm256_mask_cmp_ps_mask_nge_us(__mmask8 m,__m256 a,__m256 b)1428 __mmask8 test_mm256_mask_cmp_ps_mask_nge_us(__mmask8 m, __m256 a, __m256 b) {
1429   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nge_us
1430   // CHECK: [[CMP:%.*]] = fcmp ult <8 x float> %{{.*}}, %{{.*}}
1431   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1432   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NGE_US);
1433 }
1434 
test_mm256_mask_cmp_ps_mask_ngt_us(__mmask8 m,__m256 a,__m256 b)1435 __mmask8 test_mm256_mask_cmp_ps_mask_ngt_us(__mmask8 m, __m256 a, __m256 b) {
1436   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ngt_us
1437   // CHECK: [[CMP:%.*]] = fcmp ule <8 x float> %{{.*}}, %{{.*}}
1438   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1439   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NGT_US);
1440 }
1441 
test_mm256_mask_cmp_ps_mask_false_oq(__mmask8 m,__m256 a,__m256 b)1442 __mmask8 test_mm256_mask_cmp_ps_mask_false_oq(__mmask8 m, __m256 a, __m256 b) {
1443   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_false_oq
1444   // CHECK: [[CMP:%.*]] = fcmp false <8 x float> %{{.*}}, %{{.*}}
1445   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1446   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_FALSE_OQ);
1447 }
1448 
test_mm256_mask_cmp_ps_mask_neq_oq(__mmask8 m,__m256 a,__m256 b)1449 __mmask8 test_mm256_mask_cmp_ps_mask_neq_oq(__mmask8 m, __m256 a, __m256 b) {
1450   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_oq
1451   // CHECK: [[CMP:%.*]] = fcmp one <8 x float> %{{.*}}, %{{.*}}
1452   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1453   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_OQ);
1454 }
1455 
test_mm256_mask_cmp_ps_mask_ge_os(__mmask8 m,__m256 a,__m256 b)1456 __mmask8 test_mm256_mask_cmp_ps_mask_ge_os(__mmask8 m, __m256 a, __m256 b) {
1457   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ge_os
1458   // CHECK: [[CMP:%.*]] = fcmp oge <8 x float> %{{.*}}, %{{.*}}
1459   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1460   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_GE_OS);
1461 }
1462 
test_mm256_mask_cmp_ps_mask_gt_os(__mmask8 m,__m256 a,__m256 b)1463 __mmask8 test_mm256_mask_cmp_ps_mask_gt_os(__mmask8 m, __m256 a, __m256 b) {
1464   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_gt_os
1465   // CHECK: [[CMP:%.*]] = fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1466   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1467   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_GT_OS);
1468 }
1469 
test_mm256_mask_cmp_ps_mask_true_uq(__mmask8 m,__m256 a,__m256 b)1470 __mmask8 test_mm256_mask_cmp_ps_mask_true_uq(__mmask8 m, __m256 a, __m256 b) {
1471   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_true_uq
1472   // CHECK: [[CMP:%.*]] = fcmp true <8 x float> %{{.*}}, %{{.*}}
1473   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1474   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_TRUE_UQ);
1475 }
1476 
test_mm256_mask_cmp_ps_mask_eq_os(__mmask8 m,__m256 a,__m256 b)1477 __mmask8 test_mm256_mask_cmp_ps_mask_eq_os(__mmask8 m, __m256 a, __m256 b) {
1478   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_eq_os
1479   // CHECK: [[CMP:%.*]] = fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1480   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1481   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_EQ_OS);
1482 }
1483 
test_mm256_mask_cmp_ps_mask_lt_oq(__mmask8 m,__m256 a,__m256 b)1484 __mmask8 test_mm256_mask_cmp_ps_mask_lt_oq(__mmask8 m, __m256 a, __m256 b) {
1485   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_lt_oq
1486   // CHECK: [[CMP:%.*]] = fcmp olt <8 x float> %{{.*}}, %{{.*}}
1487   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1488   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_LT_OQ);
1489 }
1490 
test_mm256_mask_cmp_ps_mask_le_oq(__mmask8 m,__m256 a,__m256 b)1491 __mmask8 test_mm256_mask_cmp_ps_mask_le_oq(__mmask8 m, __m256 a, __m256 b) {
1492   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_le_oq
1493   // CHECK: [[CMP:%.*]] = fcmp ole <8 x float> %{{.*}}, %{{.*}}
1494   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1495   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_LE_OQ);
1496 }
1497 
test_mm256_mask_cmp_ps_mask_unord_s(__mmask8 m,__m256 a,__m256 b)1498 __mmask8 test_mm256_mask_cmp_ps_mask_unord_s(__mmask8 m, __m256 a, __m256 b) {
1499   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_unord_s
1500   // CHECK: [[CMP:%.*]] = fcmp uno <8 x float> %{{.*}}, %{{.*}}
1501   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1502   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_UNORD_S);
1503 }
1504 
test_mm256_mask_cmp_ps_mask_neq_us(__mmask8 m,__m256 a,__m256 b)1505 __mmask8 test_mm256_mask_cmp_ps_mask_neq_us(__mmask8 m, __m256 a, __m256 b) {
1506   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_us
1507   // CHECK: [[CMP:%.*]] = fcmp une <8 x float> %{{.*}}, %{{.*}}
1508   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1509   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_US);
1510 }
1511 
test_mm256_mask_cmp_ps_mask_nlt_uq(__mmask8 m,__m256 a,__m256 b)1512 __mmask8 test_mm256_mask_cmp_ps_mask_nlt_uq(__mmask8 m, __m256 a, __m256 b) {
1513   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nlt_uq
1514   // CHECK: [[CMP:%.*]] = fcmp uge <8 x float> %{{.*}}, %{{.*}}
1515   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1516   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NLT_UQ);
1517 }
1518 
test_mm256_mask_cmp_ps_mask_nle_uq(__mmask8 m,__m256 a,__m256 b)1519 __mmask8 test_mm256_mask_cmp_ps_mask_nle_uq(__mmask8 m, __m256 a, __m256 b) {
1520   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nle_uq
1521   // CHECK: [[CMP:%.*]] = fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1522   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1523   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NLE_UQ);
1524 }
1525 
test_mm256_mask_cmp_ps_mask_ord_s(__mmask8 m,__m256 a,__m256 b)1526 __mmask8 test_mm256_mask_cmp_ps_mask_ord_s(__mmask8 m, __m256 a, __m256 b) {
1527   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ord_s
1528   // CHECK: [[CMP:%.*]] = fcmp ord <8 x float> %{{.*}}, %{{.*}}
1529   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1530   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_ORD_S);
1531 }
1532 
test_mm256_mask_cmp_ps_mask_eq_us(__mmask8 m,__m256 a,__m256 b)1533 __mmask8 test_mm256_mask_cmp_ps_mask_eq_us(__mmask8 m, __m256 a, __m256 b) {
1534   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_eq_us
1535   // CHECK: [[CMP:%.*]] = fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1536   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1537   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_EQ_US);
1538 }
1539 
test_mm256_mask_cmp_ps_mask_nge_uq(__mmask8 m,__m256 a,__m256 b)1540 __mmask8 test_mm256_mask_cmp_ps_mask_nge_uq(__mmask8 m, __m256 a, __m256 b) {
1541   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nge_uq
1542   // CHECK: [[CMP:%.*]] = fcmp ult <8 x float> %{{.*}}, %{{.*}}
1543   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1544   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NGE_UQ);
1545 }
1546 
test_mm256_mask_cmp_ps_mask_ngt_uq(__mmask8 m,__m256 a,__m256 b)1547 __mmask8 test_mm256_mask_cmp_ps_mask_ngt_uq(__mmask8 m, __m256 a, __m256 b) {
1548   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ngt_uq
1549   // CHECK: [[CMP:%.*]] = fcmp ule <8 x float> %{{.*}}, %{{.*}}
1550   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1551   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NGT_UQ);
1552 }
1553 
test_mm256_mask_cmp_ps_mask_false_os(__mmask8 m,__m256 a,__m256 b)1554 __mmask8 test_mm256_mask_cmp_ps_mask_false_os(__mmask8 m, __m256 a, __m256 b) {
1555   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_false_os
1556   // CHECK: [[CMP:%.*]] = fcmp false <8 x float> %{{.*}}, %{{.*}}
1557   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1558   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_FALSE_OS);
1559 }
1560 
test_mm256_mask_cmp_ps_mask_neq_os(__mmask8 m,__m256 a,__m256 b)1561 __mmask8 test_mm256_mask_cmp_ps_mask_neq_os(__mmask8 m, __m256 a, __m256 b) {
1562   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_os
1563   // CHECK: [[CMP:%.*]] = fcmp one <8 x float> %{{.*}}, %{{.*}}
1564   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1565   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_OS);
1566 }
1567 
test_mm256_mask_cmp_ps_mask_ge_oq(__mmask8 m,__m256 a,__m256 b)1568 __mmask8 test_mm256_mask_cmp_ps_mask_ge_oq(__mmask8 m, __m256 a, __m256 b) {
1569   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ge_oq
1570   // CHECK: [[CMP:%.*]] = fcmp oge <8 x float> %{{.*}}, %{{.*}}
1571   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1572   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_GE_OQ);
1573 }
1574 
test_mm256_mask_cmp_ps_mask_gt_oq(__mmask8 m,__m256 a,__m256 b)1575 __mmask8 test_mm256_mask_cmp_ps_mask_gt_oq(__mmask8 m, __m256 a, __m256 b) {
1576   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_gt_oq
1577   // CHECK: [[CMP:%.*]] = fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1578   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1579   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_GT_OQ);
1580 }
1581 
test_mm256_mask_cmp_ps_mask_true_us(__mmask8 m,__m256 a,__m256 b)1582 __mmask8 test_mm256_mask_cmp_ps_mask_true_us(__mmask8 m, __m256 a, __m256 b) {
1583   // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_true_us
1584   // CHECK: [[CMP:%.*]] = fcmp true <8 x float> %{{.*}}, %{{.*}}
1585   // CHECK: and <8 x i1> [[CMP]], {{.*}}
1586   return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_TRUE_US);
1587 }
1588 
test_mm256_cmp_pd_mask_eq_oq(__m256d a,__m256d b)1589 __mmask8 test_mm256_cmp_pd_mask_eq_oq(__m256d a, __m256d b) {
1590   // CHECK-LABEL: @test_mm256_cmp_pd_mask_eq_oq
1591   // CHECK: fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1592   return _mm256_cmp_pd_mask(a, b, _CMP_EQ_OQ);
1593 }
1594 
test_mm256_cmp_pd_mask_lt_os(__m256d a,__m256d b)1595 __mmask8 test_mm256_cmp_pd_mask_lt_os(__m256d a, __m256d b) {
1596   // CHECK-LABEL: test_mm256_cmp_pd_mask_lt_os
1597   // CHECK: fcmp olt <4 x double> %{{.*}}, %{{.*}}
1598   return _mm256_cmp_pd_mask(a, b, _CMP_LT_OS);
1599 }
1600 
test_mm256_cmp_pd_mask_le_os(__m256d a,__m256d b)1601 __mmask8 test_mm256_cmp_pd_mask_le_os(__m256d a, __m256d b) {
1602   // CHECK-LABEL: test_mm256_cmp_pd_mask_le_os
1603   // CHECK: fcmp ole <4 x double> %{{.*}}, %{{.*}}
1604   return _mm256_cmp_pd_mask(a, b, _CMP_LE_OS);
1605 }
1606 
test_mm256_cmp_pd_mask_unord_q(__m256d a,__m256d b)1607 __mmask8 test_mm256_cmp_pd_mask_unord_q(__m256d a, __m256d b) {
1608   // CHECK-LABEL: test_mm256_cmp_pd_mask_unord_q
1609   // CHECK: fcmp uno <4 x double> %{{.*}}, %{{.*}}
1610   return _mm256_cmp_pd_mask(a, b, _CMP_UNORD_Q);
1611 }
1612 
test_mm256_cmp_pd_mask_neq_uq(__m256d a,__m256d b)1613 __mmask8 test_mm256_cmp_pd_mask_neq_uq(__m256d a, __m256d b) {
1614   // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_uq
1615   // CHECK: fcmp une <4 x double> %{{.*}}, %{{.*}}
1616   return _mm256_cmp_pd_mask(a, b, _CMP_NEQ_UQ);
1617 }
1618 
test_mm256_cmp_pd_mask_nlt_us(__m256d a,__m256d b)1619 __mmask8 test_mm256_cmp_pd_mask_nlt_us(__m256d a, __m256d b) {
1620   // CHECK-LABEL: test_mm256_cmp_pd_mask_nlt_us
1621   // CHECK: fcmp uge <4 x double> %{{.*}}, %{{.*}}
1622   return _mm256_cmp_pd_mask(a, b, _CMP_NLT_US);
1623 }
1624 
test_mm256_cmp_pd_mask_nle_us(__m256d a,__m256d b)1625 __mmask8 test_mm256_cmp_pd_mask_nle_us(__m256d a, __m256d b) {
1626   // CHECK-LABEL: test_mm256_cmp_pd_mask_nle_us
1627   // CHECK: fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1628   return _mm256_cmp_pd_mask(a, b, _CMP_NLE_US);
1629 }
1630 
test_mm256_cmp_pd_mask_ord_q(__m256d a,__m256d b)1631 __mmask8 test_mm256_cmp_pd_mask_ord_q(__m256d a, __m256d b) {
1632   // CHECK-LABEL: test_mm256_cmp_pd_mask_ord_q
1633   // CHECK: fcmp ord <4 x double> %{{.*}}, %{{.*}}
1634   return _mm256_cmp_pd_mask(a, b, _CMP_ORD_Q);
1635 }
1636 
test_mm256_cmp_pd_mask_eq_uq(__m256d a,__m256d b)1637 __mmask8 test_mm256_cmp_pd_mask_eq_uq(__m256d a, __m256d b) {
1638   // CHECK-LABEL: test_mm256_cmp_pd_mask_eq_uq
1639   // CHECK: fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1640   return _mm256_cmp_pd_mask(a, b, _CMP_EQ_UQ);
1641 }
1642 
test_mm256_cmp_pd_mask_nge_us(__m256d a,__m256d b)1643 __mmask8 test_mm256_cmp_pd_mask_nge_us(__m256d a, __m256d b) {
1644   // CHECK-LABEL: test_mm256_cmp_pd_mask_nge_us
1645   // CHECK: fcmp ult <4 x double> %{{.*}}, %{{.*}}
1646   return _mm256_cmp_pd_mask(a, b, _CMP_NGE_US);
1647 }
1648 
test_mm256_cmp_pd_mask_ngt_us(__m256d a,__m256d b)1649 __mmask8 test_mm256_cmp_pd_mask_ngt_us(__m256d a, __m256d b) {
1650   // CHECK-LABEL: test_mm256_cmp_pd_mask_ngt_us
1651   // CHECK: fcmp ule <4 x double> %{{.*}}, %{{.*}}
1652   return _mm256_cmp_pd_mask(a, b, _CMP_NGT_US);
1653 }
1654 
test_mm256_cmp_pd_mask_false_oq(__m256d a,__m256d b)1655 __mmask8 test_mm256_cmp_pd_mask_false_oq(__m256d a, __m256d b) {
1656   // CHECK-LABEL: test_mm256_cmp_pd_mask_false_oq
1657   // CHECK: fcmp false <4 x double> %{{.*}}, %{{.*}}
1658   return _mm256_cmp_pd_mask(a, b, _CMP_FALSE_OQ);
1659 }
1660 
test_mm256_cmp_pd_mask_neq_oq(__m256d a,__m256d b)1661 __mmask8 test_mm256_cmp_pd_mask_neq_oq(__m256d a, __m256d b) {
1662   // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_oq
1663   // CHECK: fcmp one <4 x double> %{{.*}}, %{{.*}}
1664   return _mm256_cmp_pd_mask(a, b, _CMP_NEQ_OQ);
1665 }
1666 
test_mm256_cmp_pd_mask_ge_os(__m256d a,__m256d b)1667 __mmask8 test_mm256_cmp_pd_mask_ge_os(__m256d a, __m256d b) {
1668   // CHECK-LABEL: test_mm256_cmp_pd_mask_ge_os
1669   // CHECK: fcmp oge <4 x double> %{{.*}}, %{{.*}}
1670   return _mm256_cmp_pd_mask(a, b, _CMP_GE_OS);
1671 }
1672 
test_mm256_cmp_pd_mask_gt_os(__m256d a,__m256d b)1673 __mmask8 test_mm256_cmp_pd_mask_gt_os(__m256d a, __m256d b) {
1674   // CHECK-LABEL: test_mm256_cmp_pd_mask_gt_os
1675   // CHECK: fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1676   return _mm256_cmp_pd_mask(a, b, _CMP_GT_OS);
1677 }
1678 
test_mm256_cmp_pd_mask_true_uq(__m256d a,__m256d b)1679 __mmask8 test_mm256_cmp_pd_mask_true_uq(__m256d a, __m256d b) {
1680   // CHECK-LABEL: test_mm256_cmp_pd_mask_true_uq
1681   // CHECK: fcmp true <4 x double> %{{.*}}, %{{.*}}
1682   return _mm256_cmp_pd_mask(a, b, _CMP_TRUE_UQ);
1683 }
1684 
test_mm256_cmp_pd_mask_eq_os(__m256d a,__m256d b)1685 __mmask8 test_mm256_cmp_pd_mask_eq_os(__m256d a, __m256d b) {
1686   // CHECK-LABEL: test_mm256_cmp_pd_mask_eq_os
1687   // CHECK: fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1688   return _mm256_cmp_pd_mask(a, b, _CMP_EQ_OS);
1689 }
1690 
test_mm256_cmp_pd_mask_lt_oq(__m256d a,__m256d b)1691 __mmask8 test_mm256_cmp_pd_mask_lt_oq(__m256d a, __m256d b) {
1692   // CHECK-LABEL: test_mm256_cmp_pd_mask_lt_oq
1693   // CHECK: fcmp olt <4 x double> %{{.*}}, %{{.*}}
1694   return _mm256_cmp_pd_mask(a, b, _CMP_LT_OQ);
1695 }
1696 
test_mm256_cmp_pd_mask_le_oq(__m256d a,__m256d b)1697 __mmask8 test_mm256_cmp_pd_mask_le_oq(__m256d a, __m256d b) {
1698   // CHECK-LABEL: test_mm256_cmp_pd_mask_le_oq
1699   // CHECK: fcmp ole <4 x double> %{{.*}}, %{{.*}}
1700   return _mm256_cmp_pd_mask(a, b, _CMP_LE_OQ);
1701 }
1702 
test_mm256_cmp_pd_mask_unord_s(__m256d a,__m256d b)1703 __mmask8 test_mm256_cmp_pd_mask_unord_s(__m256d a, __m256d b) {
1704   // CHECK-LABEL: test_mm256_cmp_pd_mask_unord_s
1705   // CHECK: fcmp uno <4 x double> %{{.*}}, %{{.*}}
1706   return _mm256_cmp_pd_mask(a, b, _CMP_UNORD_S);
1707 }
1708 
test_mm256_cmp_pd_mask_neq_us(__m256d a,__m256d b)1709 __mmask8 test_mm256_cmp_pd_mask_neq_us(__m256d a, __m256d b) {
1710   // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_us
1711   // CHECK: fcmp une <4 x double> %{{.*}}, %{{.*}}
1712   return _mm256_cmp_pd_mask(a, b, _CMP_NEQ_US);
1713 }
1714 
test_mm256_cmp_pd_mask_nlt_uq(__m256d a,__m256d b)1715 __mmask8 test_mm256_cmp_pd_mask_nlt_uq(__m256d a, __m256d b) {
1716   // CHECK-LABEL: test_mm256_cmp_pd_mask_nlt_uq
1717   // CHECK: fcmp uge <4 x double> %{{.*}}, %{{.*}}
1718   return _mm256_cmp_pd_mask(a, b, _CMP_NLT_UQ);
1719 }
1720 
test_mm256_cmp_pd_mask_nle_uq(__m256d a,__m256d b)1721 __mmask8 test_mm256_cmp_pd_mask_nle_uq(__m256d a, __m256d b) {
1722   // CHECK-LABEL: test_mm256_cmp_pd_mask_nle_uq
1723   // CHECK: fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1724   return _mm256_cmp_pd_mask(a, b, _CMP_NLE_UQ);
1725 }
1726 
test_mm256_cmp_pd_mask_ord_s(__m256d a,__m256d b)1727 __mmask8 test_mm256_cmp_pd_mask_ord_s(__m256d a, __m256d b) {
1728   // CHECK-LABEL: test_mm256_cmp_pd_mask_ord_s
1729   // CHECK: fcmp ord <4 x double> %{{.*}}, %{{.*}}
1730   return _mm256_cmp_pd_mask(a, b, _CMP_ORD_S);
1731 }
1732 
test_mm256_cmp_pd_mask_eq_us(__m256d a,__m256d b)1733 __mmask8 test_mm256_cmp_pd_mask_eq_us(__m256d a, __m256d b) {
1734   // CHECK-LABEL: test_mm256_cmp_pd_mask_eq_us
1735   // CHECK: fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1736   return _mm256_cmp_pd_mask(a, b, _CMP_EQ_US);
1737 }
1738 
test_mm256_cmp_pd_mask_nge_uq(__m256d a,__m256d b)1739 __mmask8 test_mm256_cmp_pd_mask_nge_uq(__m256d a, __m256d b) {
1740   // CHECK-LABEL: test_mm256_cmp_pd_mask_nge_uq
1741   // CHECK: fcmp ult <4 x double> %{{.*}}, %{{.*}}
1742   return _mm256_cmp_pd_mask(a, b, _CMP_NGE_UQ);
1743 }
1744 
test_mm256_cmp_pd_mask_ngt_uq(__m256d a,__m256d b)1745 __mmask8 test_mm256_cmp_pd_mask_ngt_uq(__m256d a, __m256d b) {
1746   // CHECK-LABEL: test_mm256_cmp_pd_mask_ngt_uq
1747   // CHECK: fcmp ule <4 x double> %{{.*}}, %{{.*}}
1748   return _mm256_cmp_pd_mask(a, b, _CMP_NGT_UQ);
1749 }
1750 
test_mm256_cmp_pd_mask_false_os(__m256d a,__m256d b)1751 __mmask8 test_mm256_cmp_pd_mask_false_os(__m256d a, __m256d b) {
1752   // CHECK-LABEL: test_mm256_cmp_pd_mask_false_os
1753   // CHECK: fcmp false <4 x double> %{{.*}}, %{{.*}}
1754   return _mm256_cmp_pd_mask(a, b, _CMP_FALSE_OS);
1755 }
1756 
test_mm256_cmp_pd_mask_neq_os(__m256d a,__m256d b)1757 __mmask8 test_mm256_cmp_pd_mask_neq_os(__m256d a, __m256d b) {
1758   // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_os
1759   // CHECK: fcmp one <4 x double> %{{.*}}, %{{.*}}
1760   return _mm256_cmp_pd_mask(a, b, _CMP_NEQ_OS);
1761 }
1762 
test_mm256_cmp_pd_mask_ge_oq(__m256d a,__m256d b)1763 __mmask8 test_mm256_cmp_pd_mask_ge_oq(__m256d a, __m256d b) {
1764   // CHECK-LABEL: test_mm256_cmp_pd_mask_ge_oq
1765   // CHECK: fcmp oge <4 x double> %{{.*}}, %{{.*}}
1766   return _mm256_cmp_pd_mask(a, b, _CMP_GE_OQ);
1767 }
1768 
test_mm256_cmp_pd_mask_gt_oq(__m256d a,__m256d b)1769 __mmask8 test_mm256_cmp_pd_mask_gt_oq(__m256d a, __m256d b) {
1770   // CHECK-LABEL: test_mm256_cmp_pd_mask_gt_oq
1771   // CHECK: fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1772   return _mm256_cmp_pd_mask(a, b, _CMP_GT_OQ);
1773 }
1774 
test_mm256_cmp_pd_mask_true_us(__m256d a,__m256d b)1775 __mmask8 test_mm256_cmp_pd_mask_true_us(__m256d a, __m256d b) {
1776   // CHECK-LABEL: test_mm256_cmp_pd_mask_true_us
1777   // CHECK: fcmp true <4 x double> %{{.*}}, %{{.*}}
1778   return _mm256_cmp_pd_mask(a, b, _CMP_TRUE_US);
1779 }
1780 
test_mm256_mask_cmp_pd_mask_eq_oq(__mmask8 m,__m256d a,__m256d b)1781 __mmask8 test_mm256_mask_cmp_pd_mask_eq_oq(__mmask8 m, __m256d a, __m256d b) {
1782   // CHECK-LABEL: @test_mm256_mask_cmp_pd_mask_eq_oq
1783   // CHECK: [[CMP:%.*]] = fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1784   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1785   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_EQ_OQ);
1786 }
1787 
test_mm256_mask_cmp_pd_mask_lt_os(__mmask8 m,__m256d a,__m256d b)1788 __mmask8 test_mm256_mask_cmp_pd_mask_lt_os(__mmask8 m, __m256d a, __m256d b) {
1789   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_lt_os
1790   // CHECK: [[CMP:%.*]] = fcmp olt <4 x double> %{{.*}}, %{{.*}}
1791   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1792   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_LT_OS);
1793 }
1794 
test_mm256_mask_cmp_pd_mask_le_os(__mmask8 m,__m256d a,__m256d b)1795 __mmask8 test_mm256_mask_cmp_pd_mask_le_os(__mmask8 m, __m256d a, __m256d b) {
1796   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_le_os
1797   // CHECK: [[CMP:%.*]] = fcmp ole <4 x double> %{{.*}}, %{{.*}}
1798   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1799   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_LE_OS);
1800 }
1801 
test_mm256_mask_cmp_pd_mask_unord_q(__mmask8 m,__m256d a,__m256d b)1802 __mmask8 test_mm256_mask_cmp_pd_mask_unord_q(__mmask8 m, __m256d a, __m256d b) {
1803   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_unord_q
1804   // CHECK: [[CMP:%.*]] = fcmp uno <4 x double> %{{.*}}, %{{.*}}
1805   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1806   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_UNORD_Q);
1807 }
1808 
test_mm256_mask_cmp_pd_mask_neq_uq(__mmask8 m,__m256d a,__m256d b)1809 __mmask8 test_mm256_mask_cmp_pd_mask_neq_uq(__mmask8 m, __m256d a, __m256d b) {
1810   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_uq
1811   // CHECK: [[CMP:%.*]] = fcmp une <4 x double> %{{.*}}, %{{.*}}
1812   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1813   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_UQ);
1814 }
1815 
test_mm256_mask_cmp_pd_mask_nlt_us(__mmask8 m,__m256d a,__m256d b)1816 __mmask8 test_mm256_mask_cmp_pd_mask_nlt_us(__mmask8 m, __m256d a, __m256d b) {
1817   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nlt_us
1818   // CHECK: [[CMP:%.*]] = fcmp uge <4 x double> %{{.*}}, %{{.*}}
1819   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1820   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NLT_US);
1821 }
1822 
test_mm256_mask_cmp_pd_mask_nle_us(__mmask8 m,__m256d a,__m256d b)1823 __mmask8 test_mm256_mask_cmp_pd_mask_nle_us(__mmask8 m, __m256d a, __m256d b) {
1824   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nle_us
1825   // CHECK: [[CMP:%.*]] = fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1826   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1827   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NLE_US);
1828 }
1829 
test_mm256_mask_cmp_pd_mask_ord_q(__mmask8 m,__m256d a,__m256d b)1830 __mmask8 test_mm256_mask_cmp_pd_mask_ord_q(__mmask8 m, __m256d a, __m256d b) {
1831   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ord_q
1832   // CHECK: [[CMP:%.*]] = fcmp ord <4 x double> %{{.*}}, %{{.*}}
1833   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1834   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_ORD_Q);
1835 }
1836 
test_mm256_mask_cmp_pd_mask_eq_uq(__mmask8 m,__m256d a,__m256d b)1837 __mmask8 test_mm256_mask_cmp_pd_mask_eq_uq(__mmask8 m, __m256d a, __m256d b) {
1838   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_eq_uq
1839   // CHECK: [[CMP:%.*]] = fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1840   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1841   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_EQ_UQ);
1842 }
1843 
test_mm256_mask_cmp_pd_mask_nge_us(__mmask8 m,__m256d a,__m256d b)1844 __mmask8 test_mm256_mask_cmp_pd_mask_nge_us(__mmask8 m, __m256d a, __m256d b) {
1845   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nge_us
1846   // CHECK: [[CMP:%.*]] = fcmp ult <4 x double> %{{.*}}, %{{.*}}
1847   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1848   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NGE_US);
1849 }
1850 
test_mm256_mask_cmp_pd_mask_ngt_us(__mmask8 m,__m256d a,__m256d b)1851 __mmask8 test_mm256_mask_cmp_pd_mask_ngt_us(__mmask8 m, __m256d a, __m256d b) {
1852   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ngt_us
1853   // CHECK: [[CMP:%.*]] = fcmp ule <4 x double> %{{.*}}, %{{.*}}
1854   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1855   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NGT_US);
1856 }
1857 
test_mm256_mask_cmp_pd_mask_false_oq(__mmask8 m,__m256d a,__m256d b)1858 __mmask8 test_mm256_mask_cmp_pd_mask_false_oq(__mmask8 m, __m256d a, __m256d b) {
1859   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_false_oq
1860   // CHECK: [[CMP:%.*]] = fcmp false <4 x double> %{{.*}}, %{{.*}}
1861   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1862   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_FALSE_OQ);
1863 }
1864 
test_mm256_mask_cmp_pd_mask_neq_oq(__mmask8 m,__m256d a,__m256d b)1865 __mmask8 test_mm256_mask_cmp_pd_mask_neq_oq(__mmask8 m, __m256d a, __m256d b) {
1866   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_oq
1867   // CHECK: [[CMP:%.*]] = fcmp one <4 x double> %{{.*}}, %{{.*}}
1868   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1869   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_OQ);
1870 }
1871 
test_mm256_mask_cmp_pd_mask_ge_os(__mmask8 m,__m256d a,__m256d b)1872 __mmask8 test_mm256_mask_cmp_pd_mask_ge_os(__mmask8 m, __m256d a, __m256d b) {
1873   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ge_os
1874   // CHECK: [[CMP:%.*]] = fcmp oge <4 x double> %{{.*}}, %{{.*}}
1875   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1876   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_GE_OS);
1877 }
1878 
test_mm256_mask_cmp_pd_mask_gt_os(__mmask8 m,__m256d a,__m256d b)1879 __mmask8 test_mm256_mask_cmp_pd_mask_gt_os(__mmask8 m, __m256d a, __m256d b) {
1880   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_gt_os
1881   // CHECK: [[CMP:%.*]] = fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1882   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1883   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_GT_OS);
1884 }
1885 
test_mm256_mask_cmp_pd_mask_true_uq(__mmask8 m,__m256d a,__m256d b)1886 __mmask8 test_mm256_mask_cmp_pd_mask_true_uq(__mmask8 m, __m256d a, __m256d b) {
1887   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_true_uq
1888   // CHECK: [[CMP:%.*]] = fcmp true <4 x double> %{{.*}}, %{{.*}}
1889   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1890   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_TRUE_UQ);
1891 }
1892 
test_mm256_mask_cmp_pd_mask_eq_os(__mmask8 m,__m256d a,__m256d b)1893 __mmask8 test_mm256_mask_cmp_pd_mask_eq_os(__mmask8 m, __m256d a, __m256d b) {
1894   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_eq_os
1895   // CHECK: [[CMP:%.*]] = fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1896   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1897   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_EQ_OS);
1898 }
1899 
test_mm256_mask_cmp_pd_mask_lt_oq(__mmask8 m,__m256d a,__m256d b)1900 __mmask8 test_mm256_mask_cmp_pd_mask_lt_oq(__mmask8 m, __m256d a, __m256d b) {
1901   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_lt_oq
1902   // CHECK: [[CMP:%.*]] = fcmp olt <4 x double> %{{.*}}, %{{.*}}
1903   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1904   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_LT_OQ);
1905 }
1906 
test_mm256_mask_cmp_pd_mask_le_oq(__mmask8 m,__m256d a,__m256d b)1907 __mmask8 test_mm256_mask_cmp_pd_mask_le_oq(__mmask8 m, __m256d a, __m256d b) {
1908   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_le_oq
1909   // CHECK: [[CMP:%.*]] = fcmp ole <4 x double> %{{.*}}, %{{.*}}
1910   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1911   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_LE_OQ);
1912 }
1913 
test_mm256_mask_cmp_pd_mask_unord_s(__mmask8 m,__m256d a,__m256d b)1914 __mmask8 test_mm256_mask_cmp_pd_mask_unord_s(__mmask8 m, __m256d a, __m256d b) {
1915   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_unord_s
1916   // CHECK: [[CMP:%.*]] = fcmp uno <4 x double> %{{.*}}, %{{.*}}
1917   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1918   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_UNORD_S);
1919 }
1920 
test_mm256_mask_cmp_pd_mask_neq_us(__mmask8 m,__m256d a,__m256d b)1921 __mmask8 test_mm256_mask_cmp_pd_mask_neq_us(__mmask8 m, __m256d a, __m256d b) {
1922   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_us
1923   // CHECK: [[CMP:%.*]] = fcmp une <4 x double> %{{.*}}, %{{.*}}
1924   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1925   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_US);
1926 }
1927 
test_mm256_mask_cmp_pd_mask_nlt_uq(__mmask8 m,__m256d a,__m256d b)1928 __mmask8 test_mm256_mask_cmp_pd_mask_nlt_uq(__mmask8 m, __m256d a, __m256d b) {
1929   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nlt_uq
1930   // CHECK: [[CMP:%.*]] = fcmp uge <4 x double> %{{.*}}, %{{.*}}
1931   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1932   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NLT_UQ);
1933 }
1934 
test_mm256_mask_cmp_pd_mask_nle_uq(__mmask8 m,__m256d a,__m256d b)1935 __mmask8 test_mm256_mask_cmp_pd_mask_nle_uq(__mmask8 m, __m256d a, __m256d b) {
1936   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nle_uq
1937   // CHECK: [[CMP:%.*]] = fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1938   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1939   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NLE_UQ);
1940 }
1941 
test_mm256_mask_cmp_pd_mask_ord_s(__mmask8 m,__m256d a,__m256d b)1942 __mmask8 test_mm256_mask_cmp_pd_mask_ord_s(__mmask8 m, __m256d a, __m256d b) {
1943   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ord_s
1944   // CHECK: [[CMP:%.*]] = fcmp ord <4 x double> %{{.*}}, %{{.*}}
1945   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1946   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_ORD_S);
1947 }
1948 
test_mm256_mask_cmp_pd_mask_eq_us(__mmask8 m,__m256d a,__m256d b)1949 __mmask8 test_mm256_mask_cmp_pd_mask_eq_us(__mmask8 m, __m256d a, __m256d b) {
1950   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_eq_us
1951   // CHECK: [[CMP:%.*]] = fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1952   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1953   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_EQ_US);
1954 }
1955 
test_mm256_mask_cmp_pd_mask_nge_uq(__mmask8 m,__m256d a,__m256d b)1956 __mmask8 test_mm256_mask_cmp_pd_mask_nge_uq(__mmask8 m, __m256d a, __m256d b) {
1957   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nge_uq
1958   // CHECK: [[CMP:%.*]] = fcmp ult <4 x double> %{{.*}}, %{{.*}}
1959   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1960   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NGE_UQ);
1961 }
1962 
test_mm256_mask_cmp_pd_mask_ngt_uq(__mmask8 m,__m256d a,__m256d b)1963 __mmask8 test_mm256_mask_cmp_pd_mask_ngt_uq(__mmask8 m, __m256d a, __m256d b) {
1964   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ngt_uq
1965   // CHECK: [[CMP:%.*]] = fcmp ule <4 x double> %{{.*}}, %{{.*}}
1966   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1967   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NGT_UQ);
1968 }
1969 
test_mm256_mask_cmp_pd_mask_false_os(__mmask8 m,__m256d a,__m256d b)1970 __mmask8 test_mm256_mask_cmp_pd_mask_false_os(__mmask8 m, __m256d a, __m256d b) {
1971   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_false_os
1972   // CHECK: [[CMP:%.*]] = fcmp false <4 x double> %{{.*}}, %{{.*}}
1973   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1974   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_FALSE_OS);
1975 }
1976 
test_mm256_mask_cmp_pd_mask_neq_os(__mmask8 m,__m256d a,__m256d b)1977 __mmask8 test_mm256_mask_cmp_pd_mask_neq_os(__mmask8 m, __m256d a, __m256d b) {
1978   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_os
1979   // CHECK: [[CMP:%.*]] = fcmp one <4 x double> %{{.*}}, %{{.*}}
1980   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1981   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_OS);
1982 }
1983 
test_mm256_mask_cmp_pd_mask_ge_oq(__mmask8 m,__m256d a,__m256d b)1984 __mmask8 test_mm256_mask_cmp_pd_mask_ge_oq(__mmask8 m, __m256d a, __m256d b) {
1985   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ge_oq
1986   // CHECK: [[CMP:%.*]] = fcmp oge <4 x double> %{{.*}}, %{{.*}}
1987   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1988   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_GE_OQ);
1989 }
1990 
test_mm256_mask_cmp_pd_mask_gt_oq(__mmask8 m,__m256d a,__m256d b)1991 __mmask8 test_mm256_mask_cmp_pd_mask_gt_oq(__mmask8 m, __m256d a, __m256d b) {
1992   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_gt_oq
1993   // CHECK: [[CMP:%.*]] = fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1994   // CHECK: and <4 x i1> [[CMP]], {{.*}}
1995   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_GT_OQ);
1996 }
1997 
test_mm256_mask_cmp_pd_mask_true_us(__mmask8 m,__m256d a,__m256d b)1998 __mmask8 test_mm256_mask_cmp_pd_mask_true_us(__mmask8 m, __m256d a, __m256d b) {
1999   // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_true_us
2000   // CHECK: [[CMP:%.*]] = fcmp true <4 x double> %{{.*}}, %{{.*}}
2001   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2002   return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_TRUE_US);
2003 }
2004 
test_mm_cmp_ps_mask_eq_oq(__m128 a,__m128 b)2005 __mmask8 test_mm_cmp_ps_mask_eq_oq(__m128 a, __m128 b) {
2006   // CHECK-LABEL: @test_mm_cmp_ps_mask_eq_oq
2007   // CHECK: fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2008   return _mm_cmp_ps_mask(a, b, _CMP_EQ_OQ);
2009 }
2010 
test_mm_cmp_ps_mask_lt_os(__m128 a,__m128 b)2011 __mmask8 test_mm_cmp_ps_mask_lt_os(__m128 a, __m128 b) {
2012   // CHECK-LABEL: test_mm_cmp_ps_mask_lt_os
2013   // CHECK: fcmp olt <4 x float> %{{.*}}, %{{.*}}
2014   return _mm_cmp_ps_mask(a, b, _CMP_LT_OS);
2015 }
2016 
test_mm_cmp_ps_mask_le_os(__m128 a,__m128 b)2017 __mmask8 test_mm_cmp_ps_mask_le_os(__m128 a, __m128 b) {
2018   // CHECK-LABEL: test_mm_cmp_ps_mask_le_os
2019   // CHECK: fcmp ole <4 x float> %{{.*}}, %{{.*}}
2020   return _mm_cmp_ps_mask(a, b, _CMP_LE_OS);
2021 }
2022 
test_mm_cmp_ps_mask_unord_q(__m128 a,__m128 b)2023 __mmask8 test_mm_cmp_ps_mask_unord_q(__m128 a, __m128 b) {
2024   // CHECK-LABEL: test_mm_cmp_ps_mask_unord_q
2025   // CHECK: fcmp uno <4 x float> %{{.*}}, %{{.*}}
2026   return _mm_cmp_ps_mask(a, b, _CMP_UNORD_Q);
2027 }
2028 
test_mm_cmp_ps_mask_neq_uq(__m128 a,__m128 b)2029 __mmask8 test_mm_cmp_ps_mask_neq_uq(__m128 a, __m128 b) {
2030   // CHECK-LABEL: test_mm_cmp_ps_mask_neq_uq
2031   // CHECK: fcmp une <4 x float> %{{.*}}, %{{.*}}
2032   return _mm_cmp_ps_mask(a, b, _CMP_NEQ_UQ);
2033 }
2034 
test_mm_cmp_ps_mask_nlt_us(__m128 a,__m128 b)2035 __mmask8 test_mm_cmp_ps_mask_nlt_us(__m128 a, __m128 b) {
2036   // CHECK-LABEL: test_mm_cmp_ps_mask_nlt_us
2037   // CHECK: fcmp uge <4 x float> %{{.*}}, %{{.*}}
2038   return _mm_cmp_ps_mask(a, b, _CMP_NLT_US);
2039 }
2040 
test_mm_cmp_ps_mask_nle_us(__m128 a,__m128 b)2041 __mmask8 test_mm_cmp_ps_mask_nle_us(__m128 a, __m128 b) {
2042   // CHECK-LABEL: test_mm_cmp_ps_mask_nle_us
2043   // CHECK: fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2044   return _mm_cmp_ps_mask(a, b, _CMP_NLE_US);
2045 }
2046 
test_mm_cmp_ps_mask_ord_q(__m128 a,__m128 b)2047 __mmask8 test_mm_cmp_ps_mask_ord_q(__m128 a, __m128 b) {
2048   // CHECK-LABEL: test_mm_cmp_ps_mask_ord_q
2049   // CHECK: fcmp ord <4 x float> %{{.*}}, %{{.*}}
2050   return _mm_cmp_ps_mask(a, b, _CMP_ORD_Q);
2051 }
2052 
test_mm_cmp_ps_mask_eq_uq(__m128 a,__m128 b)2053 __mmask8 test_mm_cmp_ps_mask_eq_uq(__m128 a, __m128 b) {
2054   // CHECK-LABEL: test_mm_cmp_ps_mask_eq_uq
2055   // CHECK: fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2056   return _mm_cmp_ps_mask(a, b, _CMP_EQ_UQ);
2057 }
2058 
test_mm_cmp_ps_mask_nge_us(__m128 a,__m128 b)2059 __mmask8 test_mm_cmp_ps_mask_nge_us(__m128 a, __m128 b) {
2060   // CHECK-LABEL: test_mm_cmp_ps_mask_nge_us
2061   // CHECK: fcmp ult <4 x float> %{{.*}}, %{{.*}}
2062   return _mm_cmp_ps_mask(a, b, _CMP_NGE_US);
2063 }
2064 
test_mm_cmp_ps_mask_ngt_us(__m128 a,__m128 b)2065 __mmask8 test_mm_cmp_ps_mask_ngt_us(__m128 a, __m128 b) {
2066   // CHECK-LABEL: test_mm_cmp_ps_mask_ngt_us
2067   // CHECK: fcmp ule <4 x float> %{{.*}}, %{{.*}}
2068   return _mm_cmp_ps_mask(a, b, _CMP_NGT_US);
2069 }
2070 
test_mm_cmp_ps_mask_false_oq(__m128 a,__m128 b)2071 __mmask8 test_mm_cmp_ps_mask_false_oq(__m128 a, __m128 b) {
2072   // CHECK-LABEL: test_mm_cmp_ps_mask_false_oq
2073   // CHECK: fcmp false <4 x float> %{{.*}}, %{{.*}}
2074   return _mm_cmp_ps_mask(a, b, _CMP_FALSE_OQ);
2075 }
2076 
test_mm_cmp_ps_mask_neq_oq(__m128 a,__m128 b)2077 __mmask8 test_mm_cmp_ps_mask_neq_oq(__m128 a, __m128 b) {
2078   // CHECK-LABEL: test_mm_cmp_ps_mask_neq_oq
2079   // CHECK: fcmp one <4 x float> %{{.*}}, %{{.*}}
2080   return _mm_cmp_ps_mask(a, b, _CMP_NEQ_OQ);
2081 }
2082 
test_mm_cmp_ps_mask_ge_os(__m128 a,__m128 b)2083 __mmask8 test_mm_cmp_ps_mask_ge_os(__m128 a, __m128 b) {
2084   // CHECK-LABEL: test_mm_cmp_ps_mask_ge_os
2085   // CHECK: fcmp oge <4 x float> %{{.*}}, %{{.*}}
2086   return _mm_cmp_ps_mask(a, b, _CMP_GE_OS);
2087 }
2088 
test_mm_cmp_ps_mask_gt_os(__m128 a,__m128 b)2089 __mmask8 test_mm_cmp_ps_mask_gt_os(__m128 a, __m128 b) {
2090   // CHECK-LABEL: test_mm_cmp_ps_mask_gt_os
2091   // CHECK: fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2092   return _mm_cmp_ps_mask(a, b, _CMP_GT_OS);
2093 }
2094 
test_mm_cmp_ps_mask_true_uq(__m128 a,__m128 b)2095 __mmask8 test_mm_cmp_ps_mask_true_uq(__m128 a, __m128 b) {
2096   // CHECK-LABEL: test_mm_cmp_ps_mask_true_uq
2097   // CHECK: fcmp true <4 x float> %{{.*}}, %{{.*}}
2098   return _mm_cmp_ps_mask(a, b, _CMP_TRUE_UQ);
2099 }
2100 
test_mm_cmp_ps_mask_eq_os(__m128 a,__m128 b)2101 __mmask8 test_mm_cmp_ps_mask_eq_os(__m128 a, __m128 b) {
2102   // CHECK-LABEL: test_mm_cmp_ps_mask_eq_os
2103   // CHECK: fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2104   return _mm_cmp_ps_mask(a, b, _CMP_EQ_OS);
2105 }
2106 
test_mm_cmp_ps_mask_lt_oq(__m128 a,__m128 b)2107 __mmask8 test_mm_cmp_ps_mask_lt_oq(__m128 a, __m128 b) {
2108   // CHECK-LABEL: test_mm_cmp_ps_mask_lt_oq
2109   // CHECK: fcmp olt <4 x float> %{{.*}}, %{{.*}}
2110   return _mm_cmp_ps_mask(a, b, _CMP_LT_OQ);
2111 }
2112 
test_mm_cmp_ps_mask_le_oq(__m128 a,__m128 b)2113 __mmask8 test_mm_cmp_ps_mask_le_oq(__m128 a, __m128 b) {
2114   // CHECK-LABEL: test_mm_cmp_ps_mask_le_oq
2115   // CHECK: fcmp ole <4 x float> %{{.*}}, %{{.*}}
2116   return _mm_cmp_ps_mask(a, b, _CMP_LE_OQ);
2117 }
2118 
test_mm_cmp_ps_mask_unord_s(__m128 a,__m128 b)2119 __mmask8 test_mm_cmp_ps_mask_unord_s(__m128 a, __m128 b) {
2120   // CHECK-LABEL: test_mm_cmp_ps_mask_unord_s
2121   // CHECK: fcmp uno <4 x float> %{{.*}}, %{{.*}}
2122   return _mm_cmp_ps_mask(a, b, _CMP_UNORD_S);
2123 }
2124 
test_mm_cmp_ps_mask_neq_us(__m128 a,__m128 b)2125 __mmask8 test_mm_cmp_ps_mask_neq_us(__m128 a, __m128 b) {
2126   // CHECK-LABEL: test_mm_cmp_ps_mask_neq_us
2127   // CHECK: fcmp une <4 x float> %{{.*}}, %{{.*}}
2128   return _mm_cmp_ps_mask(a, b, _CMP_NEQ_US);
2129 }
2130 
test_mm_cmp_ps_mask_nlt_uq(__m128 a,__m128 b)2131 __mmask8 test_mm_cmp_ps_mask_nlt_uq(__m128 a, __m128 b) {
2132   // CHECK-LABEL: test_mm_cmp_ps_mask_nlt_uq
2133   // CHECK: fcmp uge <4 x float> %{{.*}}, %{{.*}}
2134   return _mm_cmp_ps_mask(a, b, _CMP_NLT_UQ);
2135 }
2136 
test_mm_cmp_ps_mask_nle_uq(__m128 a,__m128 b)2137 __mmask8 test_mm_cmp_ps_mask_nle_uq(__m128 a, __m128 b) {
2138   // CHECK-LABEL: test_mm_cmp_ps_mask_nle_uq
2139   // CHECK: fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2140   return _mm_cmp_ps_mask(a, b, _CMP_NLE_UQ);
2141 }
2142 
test_mm_cmp_ps_mask_ord_s(__m128 a,__m128 b)2143 __mmask8 test_mm_cmp_ps_mask_ord_s(__m128 a, __m128 b) {
2144   // CHECK-LABEL: test_mm_cmp_ps_mask_ord_s
2145   // CHECK: fcmp ord <4 x float> %{{.*}}, %{{.*}}
2146   return _mm_cmp_ps_mask(a, b, _CMP_ORD_S);
2147 }
2148 
test_mm_cmp_ps_mask_eq_us(__m128 a,__m128 b)2149 __mmask8 test_mm_cmp_ps_mask_eq_us(__m128 a, __m128 b) {
2150   // CHECK-LABEL: test_mm_cmp_ps_mask_eq_us
2151   // CHECK: fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2152   return _mm_cmp_ps_mask(a, b, _CMP_EQ_US);
2153 }
2154 
test_mm_cmp_ps_mask_nge_uq(__m128 a,__m128 b)2155 __mmask8 test_mm_cmp_ps_mask_nge_uq(__m128 a, __m128 b) {
2156   // CHECK-LABEL: test_mm_cmp_ps_mask_nge_uq
2157   // CHECK: fcmp ult <4 x float> %{{.*}}, %{{.*}}
2158   return _mm_cmp_ps_mask(a, b, _CMP_NGE_UQ);
2159 }
2160 
test_mm_cmp_ps_mask_ngt_uq(__m128 a,__m128 b)2161 __mmask8 test_mm_cmp_ps_mask_ngt_uq(__m128 a, __m128 b) {
2162   // CHECK-LABEL: test_mm_cmp_ps_mask_ngt_uq
2163   // CHECK: fcmp ule <4 x float> %{{.*}}, %{{.*}}
2164   return _mm_cmp_ps_mask(a, b, _CMP_NGT_UQ);
2165 }
2166 
test_mm_cmp_ps_mask_false_os(__m128 a,__m128 b)2167 __mmask8 test_mm_cmp_ps_mask_false_os(__m128 a, __m128 b) {
2168   // CHECK-LABEL: test_mm_cmp_ps_mask_false_os
2169   // CHECK: fcmp false <4 x float> %{{.*}}, %{{.*}}
2170   return _mm_cmp_ps_mask(a, b, _CMP_FALSE_OS);
2171 }
2172 
test_mm_cmp_ps_mask_neq_os(__m128 a,__m128 b)2173 __mmask8 test_mm_cmp_ps_mask_neq_os(__m128 a, __m128 b) {
2174   // CHECK-LABEL: test_mm_cmp_ps_mask_neq_os
2175   // CHECK: fcmp one <4 x float> %{{.*}}, %{{.*}}
2176   return _mm_cmp_ps_mask(a, b, _CMP_NEQ_OS);
2177 }
2178 
test_mm_cmp_ps_mask_ge_oq(__m128 a,__m128 b)2179 __mmask8 test_mm_cmp_ps_mask_ge_oq(__m128 a, __m128 b) {
2180   // CHECK-LABEL: test_mm_cmp_ps_mask_ge_oq
2181   // CHECK: fcmp oge <4 x float> %{{.*}}, %{{.*}}
2182   return _mm_cmp_ps_mask(a, b, _CMP_GE_OQ);
2183 }
2184 
test_mm_cmp_ps_mask_gt_oq(__m128 a,__m128 b)2185 __mmask8 test_mm_cmp_ps_mask_gt_oq(__m128 a, __m128 b) {
2186   // CHECK-LABEL: test_mm_cmp_ps_mask_gt_oq
2187   // CHECK: fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2188   return _mm_cmp_ps_mask(a, b, _CMP_GT_OQ);
2189 }
2190 
test_mm_cmp_ps_mask_true_us(__m128 a,__m128 b)2191 __mmask8 test_mm_cmp_ps_mask_true_us(__m128 a, __m128 b) {
2192   // CHECK-LABEL: test_mm_cmp_ps_mask_true_us
2193   // CHECK: fcmp true <4 x float> %{{.*}}, %{{.*}}
2194   return _mm_cmp_ps_mask(a, b, _CMP_TRUE_US);
2195 }
2196 
test_mm_mask_cmp_ps_mask_eq_oq(__mmask8 m,__m128 a,__m128 b)2197 __mmask8 test_mm_mask_cmp_ps_mask_eq_oq(__mmask8 m, __m128 a, __m128 b) {
2198   // CHECK-LABEL: @test_mm_mask_cmp_ps_mask_eq_oq
2199   // CHECK: [[CMP:%.*]] = fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2200   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2201   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_EQ_OQ);
2202 }
2203 
test_mm_mask_cmp_ps_mask_lt_os(__mmask8 m,__m128 a,__m128 b)2204 __mmask8 test_mm_mask_cmp_ps_mask_lt_os(__mmask8 m, __m128 a, __m128 b) {
2205   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_lt_os
2206   // CHECK: [[CMP:%.*]] = fcmp olt <4 x float> %{{.*}}, %{{.*}}
2207   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2208   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_LT_OS);
2209 }
2210 
test_mm_mask_cmp_ps_mask_le_os(__mmask8 m,__m128 a,__m128 b)2211 __mmask8 test_mm_mask_cmp_ps_mask_le_os(__mmask8 m, __m128 a, __m128 b) {
2212   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_le_os
2213   // CHECK: [[CMP:%.*]] = fcmp ole <4 x float> %{{.*}}, %{{.*}}
2214   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2215   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_LE_OS);
2216 }
2217 
test_mm_mask_cmp_ps_mask_unord_q(__mmask8 m,__m128 a,__m128 b)2218 __mmask8 test_mm_mask_cmp_ps_mask_unord_q(__mmask8 m, __m128 a, __m128 b) {
2219   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_unord_q
2220   // CHECK: [[CMP:%.*]] = fcmp uno <4 x float> %{{.*}}, %{{.*}}
2221   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2222   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_UNORD_Q);
2223 }
2224 
test_mm_mask_cmp_ps_mask_neq_uq(__mmask8 m,__m128 a,__m128 b)2225 __mmask8 test_mm_mask_cmp_ps_mask_neq_uq(__mmask8 m, __m128 a, __m128 b) {
2226   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_uq
2227   // CHECK: [[CMP:%.*]] = fcmp une <4 x float> %{{.*}}, %{{.*}}
2228   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2229   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_UQ);
2230 }
2231 
test_mm_mask_cmp_ps_mask_nlt_us(__mmask8 m,__m128 a,__m128 b)2232 __mmask8 test_mm_mask_cmp_ps_mask_nlt_us(__mmask8 m, __m128 a, __m128 b) {
2233   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nlt_us
2234   // CHECK: [[CMP:%.*]] = fcmp uge <4 x float> %{{.*}}, %{{.*}}
2235   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2236   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NLT_US);
2237 }
2238 
test_mm_mask_cmp_ps_mask_nle_us(__mmask8 m,__m128 a,__m128 b)2239 __mmask8 test_mm_mask_cmp_ps_mask_nle_us(__mmask8 m, __m128 a, __m128 b) {
2240   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nle_us
2241   // CHECK: [[CMP:%.*]] = fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2242   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2243   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NLE_US);
2244 }
2245 
test_mm_mask_cmp_ps_mask_ord_q(__mmask8 m,__m128 a,__m128 b)2246 __mmask8 test_mm_mask_cmp_ps_mask_ord_q(__mmask8 m, __m128 a, __m128 b) {
2247   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ord_q
2248   // CHECK: [[CMP:%.*]] = fcmp ord <4 x float> %{{.*}}, %{{.*}}
2249   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2250   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_ORD_Q);
2251 }
2252 
test_mm_mask_cmp_ps_mask_eq_uq(__mmask8 m,__m128 a,__m128 b)2253 __mmask8 test_mm_mask_cmp_ps_mask_eq_uq(__mmask8 m, __m128 a, __m128 b) {
2254   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_eq_uq
2255   // CHECK: [[CMP:%.*]] = fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2256   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2257   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_EQ_UQ);
2258 }
2259 
test_mm_mask_cmp_ps_mask_nge_us(__mmask8 m,__m128 a,__m128 b)2260 __mmask8 test_mm_mask_cmp_ps_mask_nge_us(__mmask8 m, __m128 a, __m128 b) {
2261   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nge_us
2262   // CHECK: [[CMP:%.*]] = fcmp ult <4 x float> %{{.*}}, %{{.*}}
2263   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2264   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NGE_US);
2265 }
2266 
test_mm_mask_cmp_ps_mask_ngt_us(__mmask8 m,__m128 a,__m128 b)2267 __mmask8 test_mm_mask_cmp_ps_mask_ngt_us(__mmask8 m, __m128 a, __m128 b) {
2268   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ngt_us
2269   // CHECK: [[CMP:%.*]] = fcmp ule <4 x float> %{{.*}}, %{{.*}}
2270   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2271   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NGT_US);
2272 }
2273 
test_mm_mask_cmp_ps_mask_false_oq(__mmask8 m,__m128 a,__m128 b)2274 __mmask8 test_mm_mask_cmp_ps_mask_false_oq(__mmask8 m, __m128 a, __m128 b) {
2275   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_false_oq
2276   // CHECK: [[CMP:%.*]] = fcmp false <4 x float> %{{.*}}, %{{.*}}
2277   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2278   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_FALSE_OQ);
2279 }
2280 
test_mm_mask_cmp_ps_mask_neq_oq(__mmask8 m,__m128 a,__m128 b)2281 __mmask8 test_mm_mask_cmp_ps_mask_neq_oq(__mmask8 m, __m128 a, __m128 b) {
2282   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_oq
2283   // CHECK: [[CMP:%.*]] = fcmp one <4 x float> %{{.*}}, %{{.*}}
2284   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2285   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_OQ);
2286 }
2287 
test_mm_mask_cmp_ps_mask_ge_os(__mmask8 m,__m128 a,__m128 b)2288 __mmask8 test_mm_mask_cmp_ps_mask_ge_os(__mmask8 m, __m128 a, __m128 b) {
2289   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ge_os
2290   // CHECK: [[CMP:%.*]] = fcmp oge <4 x float> %{{.*}}, %{{.*}}
2291   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2292   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_GE_OS);
2293 }
2294 
test_mm_mask_cmp_ps_mask_gt_os(__mmask8 m,__m128 a,__m128 b)2295 __mmask8 test_mm_mask_cmp_ps_mask_gt_os(__mmask8 m, __m128 a, __m128 b) {
2296   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_gt_os
2297   // CHECK: [[CMP:%.*]] = fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2298   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2299   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_GT_OS);
2300 }
2301 
test_mm_mask_cmp_ps_mask_true_uq(__mmask8 m,__m128 a,__m128 b)2302 __mmask8 test_mm_mask_cmp_ps_mask_true_uq(__mmask8 m, __m128 a, __m128 b) {
2303   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_true_uq
2304   // CHECK: [[CMP:%.*]] = fcmp true <4 x float> %{{.*}}, %{{.*}}
2305   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2306   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_TRUE_UQ);
2307 }
2308 
test_mm_mask_cmp_ps_mask_eq_os(__mmask8 m,__m128 a,__m128 b)2309 __mmask8 test_mm_mask_cmp_ps_mask_eq_os(__mmask8 m, __m128 a, __m128 b) {
2310   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_eq_os
2311   // CHECK: [[CMP:%.*]] = fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2312   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2313   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_EQ_OS);
2314 }
2315 
test_mm_mask_cmp_ps_mask_lt_oq(__mmask8 m,__m128 a,__m128 b)2316 __mmask8 test_mm_mask_cmp_ps_mask_lt_oq(__mmask8 m, __m128 a, __m128 b) {
2317   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_lt_oq
2318   // CHECK: [[CMP:%.*]] = fcmp olt <4 x float> %{{.*}}, %{{.*}}
2319   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2320   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_LT_OQ);
2321 }
2322 
test_mm_mask_cmp_ps_mask_le_oq(__mmask8 m,__m128 a,__m128 b)2323 __mmask8 test_mm_mask_cmp_ps_mask_le_oq(__mmask8 m, __m128 a, __m128 b) {
2324   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_le_oq
2325   // CHECK: [[CMP:%.*]] = fcmp ole <4 x float> %{{.*}}, %{{.*}}
2326   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2327   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_LE_OQ);
2328 }
2329 
test_mm_mask_cmp_ps_mask_unord_s(__mmask8 m,__m128 a,__m128 b)2330 __mmask8 test_mm_mask_cmp_ps_mask_unord_s(__mmask8 m, __m128 a, __m128 b) {
2331   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_unord_s
2332   // CHECK: [[CMP:%.*]] = fcmp uno <4 x float> %{{.*}}, %{{.*}}
2333   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2334   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_UNORD_S);
2335 }
2336 
test_mm_mask_cmp_ps_mask_neq_us(__mmask8 m,__m128 a,__m128 b)2337 __mmask8 test_mm_mask_cmp_ps_mask_neq_us(__mmask8 m, __m128 a, __m128 b) {
2338   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_us
2339   // CHECK: [[CMP:%.*]] = fcmp une <4 x float> %{{.*}}, %{{.*}}
2340   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2341   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_US);
2342 }
2343 
test_mm_mask_cmp_ps_mask_nlt_uq(__mmask8 m,__m128 a,__m128 b)2344 __mmask8 test_mm_mask_cmp_ps_mask_nlt_uq(__mmask8 m, __m128 a, __m128 b) {
2345   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nlt_uq
2346   // CHECK: [[CMP:%.*]] = fcmp uge <4 x float> %{{.*}}, %{{.*}}
2347   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2348   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NLT_UQ);
2349 }
2350 
test_mm_mask_cmp_ps_mask_nle_uq(__mmask8 m,__m128 a,__m128 b)2351 __mmask8 test_mm_mask_cmp_ps_mask_nle_uq(__mmask8 m, __m128 a, __m128 b) {
2352   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nle_uq
2353   // CHECK: [[CMP:%.*]] = fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2354   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2355   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NLE_UQ);
2356 }
2357 
test_mm_mask_cmp_ps_mask_ord_s(__mmask8 m,__m128 a,__m128 b)2358 __mmask8 test_mm_mask_cmp_ps_mask_ord_s(__mmask8 m, __m128 a, __m128 b) {
2359   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ord_s
2360   // CHECK: [[CMP:%.*]] = fcmp ord <4 x float> %{{.*}}, %{{.*}}
2361   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2362   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_ORD_S);
2363 }
2364 
test_mm_mask_cmp_ps_mask_eq_us(__mmask8 m,__m128 a,__m128 b)2365 __mmask8 test_mm_mask_cmp_ps_mask_eq_us(__mmask8 m, __m128 a, __m128 b) {
2366   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_eq_us
2367   // CHECK: [[CMP:%.*]] = fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2368   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2369   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_EQ_US);
2370 }
2371 
test_mm_mask_cmp_ps_mask_nge_uq(__mmask8 m,__m128 a,__m128 b)2372 __mmask8 test_mm_mask_cmp_ps_mask_nge_uq(__mmask8 m, __m128 a, __m128 b) {
2373   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nge_uq
2374   // CHECK: [[CMP:%.*]] = fcmp ult <4 x float> %{{.*}}, %{{.*}}
2375   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2376   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NGE_UQ);
2377 }
2378 
test_mm_mask_cmp_ps_mask_ngt_uq(__mmask8 m,__m128 a,__m128 b)2379 __mmask8 test_mm_mask_cmp_ps_mask_ngt_uq(__mmask8 m, __m128 a, __m128 b) {
2380   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ngt_uq
2381   // CHECK: [[CMP:%.*]] = fcmp ule <4 x float> %{{.*}}, %{{.*}}
2382   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2383   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NGT_UQ);
2384 }
2385 
test_mm_mask_cmp_ps_mask_false_os(__mmask8 m,__m128 a,__m128 b)2386 __mmask8 test_mm_mask_cmp_ps_mask_false_os(__mmask8 m, __m128 a, __m128 b) {
2387   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_false_os
2388   // CHECK: [[CMP:%.*]] = fcmp false <4 x float> %{{.*}}, %{{.*}}
2389   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2390   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_FALSE_OS);
2391 }
2392 
test_mm_mask_cmp_ps_mask_neq_os(__mmask8 m,__m128 a,__m128 b)2393 __mmask8 test_mm_mask_cmp_ps_mask_neq_os(__mmask8 m, __m128 a, __m128 b) {
2394   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_os
2395   // CHECK: [[CMP:%.*]] = fcmp one <4 x float> %{{.*}}, %{{.*}}
2396   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2397   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_OS);
2398 }
2399 
test_mm_mask_cmp_ps_mask_ge_oq(__mmask8 m,__m128 a,__m128 b)2400 __mmask8 test_mm_mask_cmp_ps_mask_ge_oq(__mmask8 m, __m128 a, __m128 b) {
2401   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ge_oq
2402   // CHECK: [[CMP:%.*]] = fcmp oge <4 x float> %{{.*}}, %{{.*}}
2403   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2404   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_GE_OQ);
2405 }
2406 
test_mm_mask_cmp_ps_mask_gt_oq(__mmask8 m,__m128 a,__m128 b)2407 __mmask8 test_mm_mask_cmp_ps_mask_gt_oq(__mmask8 m, __m128 a, __m128 b) {
2408   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_gt_oq
2409   // CHECK: [[CMP:%.*]] = fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2410   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2411   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_GT_OQ);
2412 }
2413 
test_mm_mask_cmp_ps_mask_true_us(__mmask8 m,__m128 a,__m128 b)2414 __mmask8 test_mm_mask_cmp_ps_mask_true_us(__mmask8 m, __m128 a, __m128 b) {
2415   // CHECK-LABEL: test_mm_mask_cmp_ps_mask_true_us
2416   // CHECK: [[CMP:%.*]] = fcmp true <4 x float> %{{.*}}, %{{.*}}
2417   // CHECK: and <4 x i1> [[CMP]], {{.*}}
2418   return _mm_mask_cmp_ps_mask(m, a, b, _CMP_TRUE_US);
2419 }
2420 
test_mm_cmp_pd_mask_eq_oq(__m128d a,__m128d b)2421 __mmask8 test_mm_cmp_pd_mask_eq_oq(__m128d a, __m128d b) {
2422   // CHECK-LABEL: @test_mm_cmp_pd_mask_eq_oq
2423   // CHECK: fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2424   return _mm_cmp_pd_mask(a, b, _CMP_EQ_OQ);
2425 }
2426 
test_mm_cmp_pd_mask_lt_os(__m128d a,__m128d b)2427 __mmask8 test_mm_cmp_pd_mask_lt_os(__m128d a, __m128d b) {
2428   // CHECK-LABEL: test_mm_cmp_pd_mask_lt_os
2429   // CHECK: fcmp olt <2 x double> %{{.*}}, %{{.*}}
2430   return _mm_cmp_pd_mask(a, b, _CMP_LT_OS);
2431 }
2432 
test_mm_cmp_pd_mask_le_os(__m128d a,__m128d b)2433 __mmask8 test_mm_cmp_pd_mask_le_os(__m128d a, __m128d b) {
2434   // CHECK-LABEL: test_mm_cmp_pd_mask_le_os
2435   // CHECK: fcmp ole <2 x double> %{{.*}}, %{{.*}}
2436   return _mm_cmp_pd_mask(a, b, _CMP_LE_OS);
2437 }
2438 
test_mm_cmp_pd_mask_unord_q(__m128d a,__m128d b)2439 __mmask8 test_mm_cmp_pd_mask_unord_q(__m128d a, __m128d b) {
2440   // CHECK-LABEL: test_mm_cmp_pd_mask_unord_q
2441   // CHECK: fcmp uno <2 x double> %{{.*}}, %{{.*}}
2442   return _mm_cmp_pd_mask(a, b, _CMP_UNORD_Q);
2443 }
2444 
test_mm_cmp_pd_mask_neq_uq(__m128d a,__m128d b)2445 __mmask8 test_mm_cmp_pd_mask_neq_uq(__m128d a, __m128d b) {
2446   // CHECK-LABEL: test_mm_cmp_pd_mask_neq_uq
2447   // CHECK: fcmp une <2 x double> %{{.*}}, %{{.*}}
2448   return _mm_cmp_pd_mask(a, b, _CMP_NEQ_UQ);
2449 }
2450 
test_mm_cmp_pd_mask_nlt_us(__m128d a,__m128d b)2451 __mmask8 test_mm_cmp_pd_mask_nlt_us(__m128d a, __m128d b) {
2452   // CHECK-LABEL: test_mm_cmp_pd_mask_nlt_us
2453   // CHECK: fcmp uge <2 x double> %{{.*}}, %{{.*}}
2454   return _mm_cmp_pd_mask(a, b, _CMP_NLT_US);
2455 }
2456 
test_mm_cmp_pd_mask_nle_us(__m128d a,__m128d b)2457 __mmask8 test_mm_cmp_pd_mask_nle_us(__m128d a, __m128d b) {
2458   // CHECK-LABEL: test_mm_cmp_pd_mask_nle_us
2459   // CHECK: fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2460   return _mm_cmp_pd_mask(a, b, _CMP_NLE_US);
2461 }
2462 
test_mm_cmp_pd_mask_ord_q(__m128d a,__m128d b)2463 __mmask8 test_mm_cmp_pd_mask_ord_q(__m128d a, __m128d b) {
2464   // CHECK-LABEL: test_mm_cmp_pd_mask_ord_q
2465   // CHECK: fcmp ord <2 x double> %{{.*}}, %{{.*}}
2466   return _mm_cmp_pd_mask(a, b, _CMP_ORD_Q);
2467 }
2468 
test_mm_cmp_pd_mask_eq_uq(__m128d a,__m128d b)2469 __mmask8 test_mm_cmp_pd_mask_eq_uq(__m128d a, __m128d b) {
2470   // CHECK-LABEL: test_mm_cmp_pd_mask_eq_uq
2471   // CHECK: fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2472   return _mm_cmp_pd_mask(a, b, _CMP_EQ_UQ);
2473 }
2474 
test_mm_cmp_pd_mask_nge_us(__m128d a,__m128d b)2475 __mmask8 test_mm_cmp_pd_mask_nge_us(__m128d a, __m128d b) {
2476   // CHECK-LABEL: test_mm_cmp_pd_mask_nge_us
2477   // CHECK: fcmp ult <2 x double> %{{.*}}, %{{.*}}
2478   return _mm_cmp_pd_mask(a, b, _CMP_NGE_US);
2479 }
2480 
test_mm_cmp_pd_mask_ngt_us(__m128d a,__m128d b)2481 __mmask8 test_mm_cmp_pd_mask_ngt_us(__m128d a, __m128d b) {
2482   // CHECK-LABEL: test_mm_cmp_pd_mask_ngt_us
2483   // CHECK: fcmp ule <2 x double> %{{.*}}, %{{.*}}
2484   return _mm_cmp_pd_mask(a, b, _CMP_NGT_US);
2485 }
2486 
test_mm_cmp_pd_mask_false_oq(__m128d a,__m128d b)2487 __mmask8 test_mm_cmp_pd_mask_false_oq(__m128d a, __m128d b) {
2488   // CHECK-LABEL: test_mm_cmp_pd_mask_false_oq
2489   // CHECK: fcmp false <2 x double> %{{.*}}, %{{.*}}
2490   return _mm_cmp_pd_mask(a, b, _CMP_FALSE_OQ);
2491 }
2492 
test_mm_cmp_pd_mask_neq_oq(__m128d a,__m128d b)2493 __mmask8 test_mm_cmp_pd_mask_neq_oq(__m128d a, __m128d b) {
2494   // CHECK-LABEL: test_mm_cmp_pd_mask_neq_oq
2495   // CHECK: fcmp one <2 x double> %{{.*}}, %{{.*}}
2496   return _mm_cmp_pd_mask(a, b, _CMP_NEQ_OQ);
2497 }
2498 
test_mm_cmp_pd_mask_ge_os(__m128d a,__m128d b)2499 __mmask8 test_mm_cmp_pd_mask_ge_os(__m128d a, __m128d b) {
2500   // CHECK-LABEL: test_mm_cmp_pd_mask_ge_os
2501   // CHECK: fcmp oge <2 x double> %{{.*}}, %{{.*}}
2502   return _mm_cmp_pd_mask(a, b, _CMP_GE_OS);
2503 }
2504 
test_mm_cmp_pd_mask_gt_os(__m128d a,__m128d b)2505 __mmask8 test_mm_cmp_pd_mask_gt_os(__m128d a, __m128d b) {
2506   // CHECK-LABEL: test_mm_cmp_pd_mask_gt_os
2507   // CHECK: fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2508   return _mm_cmp_pd_mask(a, b, _CMP_GT_OS);
2509 }
2510 
test_mm_cmp_pd_mask_true_uq(__m128d a,__m128d b)2511 __mmask8 test_mm_cmp_pd_mask_true_uq(__m128d a, __m128d b) {
2512   // CHECK-LABEL: test_mm_cmp_pd_mask_true_uq
2513   // CHECK: fcmp true <2 x double> %{{.*}}, %{{.*}}
2514   return _mm_cmp_pd_mask(a, b, _CMP_TRUE_UQ);
2515 }
2516 
test_mm_cmp_pd_mask_eq_os(__m128d a,__m128d b)2517 __mmask8 test_mm_cmp_pd_mask_eq_os(__m128d a, __m128d b) {
2518   // CHECK-LABEL: test_mm_cmp_pd_mask_eq_os
2519   // CHECK: fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2520   return _mm_cmp_pd_mask(a, b, _CMP_EQ_OS);
2521 }
2522 
test_mm_cmp_pd_mask_lt_oq(__m128d a,__m128d b)2523 __mmask8 test_mm_cmp_pd_mask_lt_oq(__m128d a, __m128d b) {
2524   // CHECK-LABEL: test_mm_cmp_pd_mask_lt_oq
2525   // CHECK: fcmp olt <2 x double> %{{.*}}, %{{.*}}
2526   return _mm_cmp_pd_mask(a, b, _CMP_LT_OQ);
2527 }
2528 
test_mm_cmp_pd_mask_le_oq(__m128d a,__m128d b)2529 __mmask8 test_mm_cmp_pd_mask_le_oq(__m128d a, __m128d b) {
2530   // CHECK-LABEL: test_mm_cmp_pd_mask_le_oq
2531   // CHECK: fcmp ole <2 x double> %{{.*}}, %{{.*}}
2532   return _mm_cmp_pd_mask(a, b, _CMP_LE_OQ);
2533 }
2534 
test_mm_cmp_pd_mask_unord_s(__m128d a,__m128d b)2535 __mmask8 test_mm_cmp_pd_mask_unord_s(__m128d a, __m128d b) {
2536   // CHECK-LABEL: test_mm_cmp_pd_mask_unord_s
2537   // CHECK: fcmp uno <2 x double> %{{.*}}, %{{.*}}
2538   return _mm_cmp_pd_mask(a, b, _CMP_UNORD_S);
2539 }
2540 
test_mm_cmp_pd_mask_neq_us(__m128d a,__m128d b)2541 __mmask8 test_mm_cmp_pd_mask_neq_us(__m128d a, __m128d b) {
2542   // CHECK-LABEL: test_mm_cmp_pd_mask_neq_us
2543   // CHECK: fcmp une <2 x double> %{{.*}}, %{{.*}}
2544   return _mm_cmp_pd_mask(a, b, _CMP_NEQ_US);
2545 }
2546 
test_mm_cmp_pd_mask_nlt_uq(__m128d a,__m128d b)2547 __mmask8 test_mm_cmp_pd_mask_nlt_uq(__m128d a, __m128d b) {
2548   // CHECK-LABEL: test_mm_cmp_pd_mask_nlt_uq
2549   // CHECK: fcmp uge <2 x double> %{{.*}}, %{{.*}}
2550   return _mm_cmp_pd_mask(a, b, _CMP_NLT_UQ);
2551 }
2552 
test_mm_cmp_pd_mask_nle_uq(__m128d a,__m128d b)2553 __mmask8 test_mm_cmp_pd_mask_nle_uq(__m128d a, __m128d b) {
2554   // CHECK-LABEL: test_mm_cmp_pd_mask_nle_uq
2555   // CHECK: fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2556   return _mm_cmp_pd_mask(a, b, _CMP_NLE_UQ);
2557 }
2558 
test_mm_cmp_pd_mask_ord_s(__m128d a,__m128d b)2559 __mmask8 test_mm_cmp_pd_mask_ord_s(__m128d a, __m128d b) {
2560   // CHECK-LABEL: test_mm_cmp_pd_mask_ord_s
2561   // CHECK: fcmp ord <2 x double> %{{.*}}, %{{.*}}
2562   return _mm_cmp_pd_mask(a, b, _CMP_ORD_S);
2563 }
2564 
test_mm_cmp_pd_mask_eq_us(__m128d a,__m128d b)2565 __mmask8 test_mm_cmp_pd_mask_eq_us(__m128d a, __m128d b) {
2566   // CHECK-LABEL: test_mm_cmp_pd_mask_eq_us
2567   // CHECK: fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2568   return _mm_cmp_pd_mask(a, b, _CMP_EQ_US);
2569 }
2570 
test_mm_cmp_pd_mask_nge_uq(__m128d a,__m128d b)2571 __mmask8 test_mm_cmp_pd_mask_nge_uq(__m128d a, __m128d b) {
2572   // CHECK-LABEL: test_mm_cmp_pd_mask_nge_uq
2573   // CHECK: fcmp ult <2 x double> %{{.*}}, %{{.*}}
2574   return _mm_cmp_pd_mask(a, b, _CMP_NGE_UQ);
2575 }
2576 
test_mm_cmp_pd_mask_ngt_uq(__m128d a,__m128d b)2577 __mmask8 test_mm_cmp_pd_mask_ngt_uq(__m128d a, __m128d b) {
2578   // CHECK-LABEL: test_mm_cmp_pd_mask_ngt_uq
2579   // CHECK: fcmp ule <2 x double> %{{.*}}, %{{.*}}
2580   return _mm_cmp_pd_mask(a, b, _CMP_NGT_UQ);
2581 }
2582 
test_mm_cmp_pd_mask_false_os(__m128d a,__m128d b)2583 __mmask8 test_mm_cmp_pd_mask_false_os(__m128d a, __m128d b) {
2584   // CHECK-LABEL: test_mm_cmp_pd_mask_false_os
2585   // CHECK: fcmp false <2 x double> %{{.*}}, %{{.*}}
2586   return _mm_cmp_pd_mask(a, b, _CMP_FALSE_OS);
2587 }
2588 
test_mm_cmp_pd_mask_neq_os(__m128d a,__m128d b)2589 __mmask8 test_mm_cmp_pd_mask_neq_os(__m128d a, __m128d b) {
2590   // CHECK-LABEL: test_mm_cmp_pd_mask_neq_os
2591   // CHECK: fcmp one <2 x double> %{{.*}}, %{{.*}}
2592   return _mm_cmp_pd_mask(a, b, _CMP_NEQ_OS);
2593 }
2594 
test_mm_cmp_pd_mask_ge_oq(__m128d a,__m128d b)2595 __mmask8 test_mm_cmp_pd_mask_ge_oq(__m128d a, __m128d b) {
2596   // CHECK-LABEL: test_mm_cmp_pd_mask_ge_oq
2597   // CHECK: fcmp oge <2 x double> %{{.*}}, %{{.*}}
2598   return _mm_cmp_pd_mask(a, b, _CMP_GE_OQ);
2599 }
2600 
test_mm_cmp_pd_mask_gt_oq(__m128d a,__m128d b)2601 __mmask8 test_mm_cmp_pd_mask_gt_oq(__m128d a, __m128d b) {
2602   // CHECK-LABEL: test_mm_cmp_pd_mask_gt_oq
2603   // CHECK: fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2604   return _mm_cmp_pd_mask(a, b, _CMP_GT_OQ);
2605 }
2606 
test_mm_cmp_pd_mask_true_us(__m128d a,__m128d b)2607 __mmask8 test_mm_cmp_pd_mask_true_us(__m128d a, __m128d b) {
2608   // CHECK-LABEL: test_mm_cmp_pd_mask_true_us
2609   // CHECK: fcmp true <2 x double> %{{.*}}, %{{.*}}
2610   return _mm_cmp_pd_mask(a, b, _CMP_TRUE_US);
2611 }
2612 
test_mm_mask_cmp_pd_mask_eq_oq(__mmask8 m,__m128d a,__m128d b)2613 __mmask8 test_mm_mask_cmp_pd_mask_eq_oq(__mmask8 m, __m128d a, __m128d b) {
2614   // CHECK-LABEL: @test_mm_mask_cmp_pd_mask_eq_oq
2615   // CHECK: [[CMP:%.*]] = fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2616   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2617   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_EQ_OQ);
2618 }
2619 
test_mm_mask_cmp_pd_mask_lt_os(__mmask8 m,__m128d a,__m128d b)2620 __mmask8 test_mm_mask_cmp_pd_mask_lt_os(__mmask8 m, __m128d a, __m128d b) {
2621   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_lt_os
2622   // CHECK: [[CMP:%.*]] = fcmp olt <2 x double> %{{.*}}, %{{.*}}
2623   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2624   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_LT_OS);
2625 }
2626 
test_mm_mask_cmp_pd_mask_le_os(__mmask8 m,__m128d a,__m128d b)2627 __mmask8 test_mm_mask_cmp_pd_mask_le_os(__mmask8 m, __m128d a, __m128d b) {
2628   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_le_os
2629   // CHECK: [[CMP:%.*]] = fcmp ole <2 x double> %{{.*}}, %{{.*}}
2630   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2631   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_LE_OS);
2632 }
2633 
test_mm_mask_cmp_pd_mask_unord_q(__mmask8 m,__m128d a,__m128d b)2634 __mmask8 test_mm_mask_cmp_pd_mask_unord_q(__mmask8 m, __m128d a, __m128d b) {
2635   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_unord_q
2636   // CHECK: [[CMP:%.*]] = fcmp uno <2 x double> %{{.*}}, %{{.*}}
2637   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2638   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_UNORD_Q);
2639 }
2640 
test_mm_mask_cmp_pd_mask_neq_uq(__mmask8 m,__m128d a,__m128d b)2641 __mmask8 test_mm_mask_cmp_pd_mask_neq_uq(__mmask8 m, __m128d a, __m128d b) {
2642   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_uq
2643   // CHECK: [[CMP:%.*]] = fcmp une <2 x double> %{{.*}}, %{{.*}}
2644   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2645   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_UQ);
2646 }
2647 
test_mm_mask_cmp_pd_mask_nlt_us(__mmask8 m,__m128d a,__m128d b)2648 __mmask8 test_mm_mask_cmp_pd_mask_nlt_us(__mmask8 m, __m128d a, __m128d b) {
2649   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nlt_us
2650   // CHECK: [[CMP:%.*]] = fcmp uge <2 x double> %{{.*}}, %{{.*}}
2651   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2652   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NLT_US);
2653 }
2654 
test_mm_mask_cmp_pd_mask_nle_us(__mmask8 m,__m128d a,__m128d b)2655 __mmask8 test_mm_mask_cmp_pd_mask_nle_us(__mmask8 m, __m128d a, __m128d b) {
2656   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nle_us
2657   // CHECK: [[CMP:%.*]] = fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2658   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2659   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NLE_US);
2660 }
2661 
test_mm_mask_cmp_pd_mask_ord_q(__mmask8 m,__m128d a,__m128d b)2662 __mmask8 test_mm_mask_cmp_pd_mask_ord_q(__mmask8 m, __m128d a, __m128d b) {
2663   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ord_q
2664   // CHECK: [[CMP:%.*]] = fcmp ord <2 x double> %{{.*}}, %{{.*}}
2665   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2666   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_ORD_Q);
2667 }
2668 
test_mm_mask_cmp_pd_mask_eq_uq(__mmask8 m,__m128d a,__m128d b)2669 __mmask8 test_mm_mask_cmp_pd_mask_eq_uq(__mmask8 m, __m128d a, __m128d b) {
2670   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_eq_uq
2671   // CHECK: [[CMP:%.*]] = fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2672   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2673   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_EQ_UQ);
2674 }
2675 
test_mm_mask_cmp_pd_mask_nge_us(__mmask8 m,__m128d a,__m128d b)2676 __mmask8 test_mm_mask_cmp_pd_mask_nge_us(__mmask8 m, __m128d a, __m128d b) {
2677   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nge_us
2678   // CHECK: [[CMP:%.*]] = fcmp ult <2 x double> %{{.*}}, %{{.*}}
2679   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2680   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NGE_US);
2681 }
2682 
test_mm_mask_cmp_pd_mask_ngt_us(__mmask8 m,__m128d a,__m128d b)2683 __mmask8 test_mm_mask_cmp_pd_mask_ngt_us(__mmask8 m, __m128d a, __m128d b) {
2684   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ngt_us
2685   // CHECK: [[CMP:%.*]] = fcmp ule <2 x double> %{{.*}}, %{{.*}}
2686   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2687   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NGT_US);
2688 }
2689 
test_mm_mask_cmp_pd_mask_false_oq(__mmask8 m,__m128d a,__m128d b)2690 __mmask8 test_mm_mask_cmp_pd_mask_false_oq(__mmask8 m, __m128d a, __m128d b) {
2691   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_false_oq
2692   // CHECK: [[CMP:%.*]] = fcmp false <2 x double> %{{.*}}, %{{.*}}
2693   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2694   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_FALSE_OQ);
2695 }
2696 
test_mm_mask_cmp_pd_mask_neq_oq(__mmask8 m,__m128d a,__m128d b)2697 __mmask8 test_mm_mask_cmp_pd_mask_neq_oq(__mmask8 m, __m128d a, __m128d b) {
2698   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_oq
2699   // CHECK: [[CMP:%.*]] = fcmp one <2 x double> %{{.*}}, %{{.*}}
2700   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2701   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_OQ);
2702 }
2703 
test_mm_mask_cmp_pd_mask_ge_os(__mmask8 m,__m128d a,__m128d b)2704 __mmask8 test_mm_mask_cmp_pd_mask_ge_os(__mmask8 m, __m128d a, __m128d b) {
2705   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ge_os
2706   // CHECK: [[CMP:%.*]] = fcmp oge <2 x double> %{{.*}}, %{{.*}}
2707   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2708   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_GE_OS);
2709 }
2710 
test_mm_mask_cmp_pd_mask_gt_os(__mmask8 m,__m128d a,__m128d b)2711 __mmask8 test_mm_mask_cmp_pd_mask_gt_os(__mmask8 m, __m128d a, __m128d b) {
2712   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_gt_os
2713   // CHECK: [[CMP:%.*]] = fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2714   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2715   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_GT_OS);
2716 }
2717 
test_mm_mask_cmp_pd_mask_true_uq(__mmask8 m,__m128d a,__m128d b)2718 __mmask8 test_mm_mask_cmp_pd_mask_true_uq(__mmask8 m, __m128d a, __m128d b) {
2719   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_true_uq
2720   // CHECK: [[CMP:%.*]] = fcmp true <2 x double> %{{.*}}, %{{.*}}
2721   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2722   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_TRUE_UQ);
2723 }
2724 
test_mm_mask_cmp_pd_mask_eq_os(__mmask8 m,__m128d a,__m128d b)2725 __mmask8 test_mm_mask_cmp_pd_mask_eq_os(__mmask8 m, __m128d a, __m128d b) {
2726   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_eq_os
2727   // CHECK: [[CMP:%.*]] = fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2728   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2729   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_EQ_OS);
2730 }
2731 
test_mm_mask_cmp_pd_mask_lt_oq(__mmask8 m,__m128d a,__m128d b)2732 __mmask8 test_mm_mask_cmp_pd_mask_lt_oq(__mmask8 m, __m128d a, __m128d b) {
2733   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_lt_oq
2734   // CHECK: [[CMP:%.*]] = fcmp olt <2 x double> %{{.*}}, %{{.*}}
2735   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2736   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_LT_OQ);
2737 }
2738 
test_mm_mask_cmp_pd_mask_le_oq(__mmask8 m,__m128d a,__m128d b)2739 __mmask8 test_mm_mask_cmp_pd_mask_le_oq(__mmask8 m, __m128d a, __m128d b) {
2740   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_le_oq
2741   // CHECK: [[CMP:%.*]] = fcmp ole <2 x double> %{{.*}}, %{{.*}}
2742   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2743   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_LE_OQ);
2744 }
2745 
test_mm_mask_cmp_pd_mask_unord_s(__mmask8 m,__m128d a,__m128d b)2746 __mmask8 test_mm_mask_cmp_pd_mask_unord_s(__mmask8 m, __m128d a, __m128d b) {
2747   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_unord_s
2748   // CHECK: [[CMP:%.*]] = fcmp uno <2 x double> %{{.*}}, %{{.*}}
2749   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2750   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_UNORD_S);
2751 }
2752 
test_mm_mask_cmp_pd_mask_neq_us(__mmask8 m,__m128d a,__m128d b)2753 __mmask8 test_mm_mask_cmp_pd_mask_neq_us(__mmask8 m, __m128d a, __m128d b) {
2754   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_us
2755   // CHECK: [[CMP:%.*]] = fcmp une <2 x double> %{{.*}}, %{{.*}}
2756   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2757   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_US);
2758 }
2759 
test_mm_mask_cmp_pd_mask_nlt_uq(__mmask8 m,__m128d a,__m128d b)2760 __mmask8 test_mm_mask_cmp_pd_mask_nlt_uq(__mmask8 m, __m128d a, __m128d b) {
2761   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nlt_uq
2762   // CHECK: [[CMP:%.*]] = fcmp uge <2 x double> %{{.*}}, %{{.*}}
2763   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2764   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NLT_UQ);
2765 }
2766 
test_mm_mask_cmp_pd_mask_nle_uq(__mmask8 m,__m128d a,__m128d b)2767 __mmask8 test_mm_mask_cmp_pd_mask_nle_uq(__mmask8 m, __m128d a, __m128d b) {
2768   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nle_uq
2769   // CHECK: [[CMP:%.*]] = fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2770   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2771   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NLE_UQ);
2772 }
2773 
test_mm_mask_cmp_pd_mask_ord_s(__mmask8 m,__m128d a,__m128d b)2774 __mmask8 test_mm_mask_cmp_pd_mask_ord_s(__mmask8 m, __m128d a, __m128d b) {
2775   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ord_s
2776   // CHECK: [[CMP:%.*]] = fcmp ord <2 x double> %{{.*}}, %{{.*}}
2777   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2778   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_ORD_S);
2779 }
2780 
test_mm_mask_cmp_pd_mask_eq_us(__mmask8 m,__m128d a,__m128d b)2781 __mmask8 test_mm_mask_cmp_pd_mask_eq_us(__mmask8 m, __m128d a, __m128d b) {
2782   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_eq_us
2783   // CHECK: [[CMP:%.*]] = fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2784   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2785   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_EQ_US);
2786 }
2787 
test_mm_mask_cmp_pd_mask_nge_uq(__mmask8 m,__m128d a,__m128d b)2788 __mmask8 test_mm_mask_cmp_pd_mask_nge_uq(__mmask8 m, __m128d a, __m128d b) {
2789   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nge_uq
2790   // CHECK: [[CMP:%.*]] = fcmp ult <2 x double> %{{.*}}, %{{.*}}
2791   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2792   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NGE_UQ);
2793 }
2794 
test_mm_mask_cmp_pd_mask_ngt_uq(__mmask8 m,__m128d a,__m128d b)2795 __mmask8 test_mm_mask_cmp_pd_mask_ngt_uq(__mmask8 m, __m128d a, __m128d b) {
2796   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ngt_uq
2797   // CHECK: [[CMP:%.*]] = fcmp ule <2 x double> %{{.*}}, %{{.*}}
2798   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2799   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NGT_UQ);
2800 }
2801 
test_mm_mask_cmp_pd_mask_false_os(__mmask8 m,__m128d a,__m128d b)2802 __mmask8 test_mm_mask_cmp_pd_mask_false_os(__mmask8 m, __m128d a, __m128d b) {
2803   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_false_os
2804   // CHECK: [[CMP:%.*]] = fcmp false <2 x double> %{{.*}}, %{{.*}}
2805   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2806   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_FALSE_OS);
2807 }
2808 
test_mm_mask_cmp_pd_mask_neq_os(__mmask8 m,__m128d a,__m128d b)2809 __mmask8 test_mm_mask_cmp_pd_mask_neq_os(__mmask8 m, __m128d a, __m128d b) {
2810   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_os
2811   // CHECK: [[CMP:%.*]] = fcmp one <2 x double> %{{.*}}, %{{.*}}
2812   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2813   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_OS);
2814 }
2815 
test_mm_mask_cmp_pd_mask_ge_oq(__mmask8 m,__m128d a,__m128d b)2816 __mmask8 test_mm_mask_cmp_pd_mask_ge_oq(__mmask8 m, __m128d a, __m128d b) {
2817   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ge_oq
2818   // CHECK: [[CMP:%.*]] = fcmp oge <2 x double> %{{.*}}, %{{.*}}
2819   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2820   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_GE_OQ);
2821 }
2822 
test_mm_mask_cmp_pd_mask_gt_oq(__mmask8 m,__m128d a,__m128d b)2823 __mmask8 test_mm_mask_cmp_pd_mask_gt_oq(__mmask8 m, __m128d a, __m128d b) {
2824   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_gt_oq
2825   // CHECK: [[CMP:%.*]] = fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2826   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2827   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_GT_OQ);
2828 }
2829 
test_mm_mask_cmp_pd_mask_true_us(__mmask8 m,__m128d a,__m128d b)2830 __mmask8 test_mm_mask_cmp_pd_mask_true_us(__mmask8 m, __m128d a, __m128d b) {
2831   // CHECK-LABEL: test_mm_mask_cmp_pd_mask_true_us
2832   // CHECK: [[CMP:%.*]] = fcmp true <2 x double> %{{.*}}, %{{.*}}
2833   // CHECK: and <2 x i1> [[CMP]], {{.*}}
2834   return _mm_mask_cmp_pd_mask(m, a, b, _CMP_TRUE_US);
2835 }
2836 
test_mm_mask_fmadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)2837 __m128d test_mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
2838   // CHECK-LABEL: @test_mm_mask_fmadd_pd
2839   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2840   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2841   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2842   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2843   return _mm_mask_fmadd_pd(__A, __U, __B, __C);
2844 }
2845 
test_mm_mask_fmsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)2846 __m128d test_mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
2847   // CHECK-LABEL: @test_mm_mask_fmsub_pd
2848   // CHECK: fneg <2 x double> %{{.*}}
2849   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2850   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2851   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2852   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2853   return _mm_mask_fmsub_pd(__A, __U, __B, __C);
2854 }
2855 
test_mm_mask3_fmadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)2856 __m128d test_mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
2857   // CHECK-LABEL: @test_mm_mask3_fmadd_pd
2858   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2859   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2860   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2861   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2862   return _mm_mask3_fmadd_pd(__A, __B, __C, __U);
2863 }
2864 
test_mm_mask3_fnmadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)2865 __m128d test_mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
2866   // CHECK-LABEL: @test_mm_mask3_fnmadd_pd
2867   // CHECK: fneg <2 x double> %{{.*}}
2868   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2869   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2870   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2871   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2872   return _mm_mask3_fnmadd_pd(__A, __B, __C, __U);
2873 }
2874 
test_mm_maskz_fmadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)2875 __m128d test_mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
2876   // CHECK-LABEL: @test_mm_maskz_fmadd_pd
2877   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2878   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2879   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2880   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2881   return _mm_maskz_fmadd_pd(__U, __A, __B, __C);
2882 }
2883 
test_mm_maskz_fmsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)2884 __m128d test_mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
2885   // CHECK-LABEL: @test_mm_maskz_fmsub_pd
2886   // CHECK: fneg <2 x double> %{{.*}}
2887   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2888   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2889   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2890   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2891   return _mm_maskz_fmsub_pd(__U, __A, __B, __C);
2892 }
2893 
test_mm_maskz_fnmadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)2894 __m128d test_mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
2895   // CHECK-LABEL: @test_mm_maskz_fnmadd_pd
2896   // CHECK: fneg <2 x double> %{{.*}}
2897   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2898   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2899   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2900   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2901   return _mm_maskz_fnmadd_pd(__U, __A, __B, __C);
2902 }
2903 
test_mm_maskz_fnmsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)2904 __m128d test_mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
2905   // CHECK-LABEL: @test_mm_maskz_fnmsub_pd
2906   // CHECK: fneg <2 x double> %{{.*}}
2907   // CHECK: fneg <2 x double> %{{.*}}
2908   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2909   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2910   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2911   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2912   return _mm_maskz_fnmsub_pd(__U, __A, __B, __C);
2913 }
2914 
test_mm256_mask_fmadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)2915 __m256d test_mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
2916   // CHECK-LABEL: @test_mm256_mask_fmadd_pd
2917   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2918   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2919   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2920   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2921   return _mm256_mask_fmadd_pd(__A, __U, __B, __C);
2922 }
2923 
test_mm256_mask_fmsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)2924 __m256d test_mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
2925   // CHECK-LABEL: @test_mm256_mask_fmsub_pd
2926   // CHECK: fneg <4 x double> %{{.*}}
2927   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2928   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2929   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2930   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2931   return _mm256_mask_fmsub_pd(__A, __U, __B, __C);
2932 }
2933 
test_mm256_mask3_fmadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)2934 __m256d test_mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
2935   // CHECK-LABEL: @test_mm256_mask3_fmadd_pd
2936   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2937   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2938   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2939   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2940   return _mm256_mask3_fmadd_pd(__A, __B, __C, __U);
2941 }
2942 
test_mm256_mask3_fnmadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)2943 __m256d test_mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
2944   // CHECK-LABEL: @test_mm256_mask3_fnmadd_pd
2945   // CHECK: fneg <4 x double> %{{.*}}
2946   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2947   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2948   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2949   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2950   return _mm256_mask3_fnmadd_pd(__A, __B, __C, __U);
2951 }
2952 
test_mm256_maskz_fmadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)2953 __m256d test_mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
2954   // CHECK-LABEL: @test_mm256_maskz_fmadd_pd
2955   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2956   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2957   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2958   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2959   return _mm256_maskz_fmadd_pd(__U, __A, __B, __C);
2960 }
2961 
test_mm256_maskz_fmsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)2962 __m256d test_mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
2963   // CHECK-LABEL: @test_mm256_maskz_fmsub_pd
2964   // CHECK: fneg <4 x double> %{{.*}}
2965   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2966   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2967   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2968   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2969   return _mm256_maskz_fmsub_pd(__U, __A, __B, __C);
2970 }
2971 
test_mm256_maskz_fnmadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)2972 __m256d test_mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
2973   // CHECK-LABEL: @test_mm256_maskz_fnmadd_pd
2974   // CHECK: fneg <4 x double> %{{.*}}
2975   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2976   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2977   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2978   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2979   return _mm256_maskz_fnmadd_pd(__U, __A, __B, __C);
2980 }
2981 
test_mm256_maskz_fnmsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)2982 __m256d test_mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
2983   // CHECK-LABEL: @test_mm256_maskz_fnmsub_pd
2984   // CHECK: fneg <4 x double> %{{.*}}
2985   // CHECK: fneg <4 x double> %{{.*}}
2986   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2987   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2988   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2989   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2990   return _mm256_maskz_fnmsub_pd(__U, __A, __B, __C);
2991 }
2992 
test_mm_mask_fmadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)2993 __m128 test_mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
2994   // CHECK-LABEL: @test_mm_mask_fmadd_ps
2995   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
2996   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2997   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2998   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
2999   return _mm_mask_fmadd_ps(__A, __U, __B, __C);
3000 }
3001 
test_mm_mask_fmsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3002 __m128 test_mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3003   // CHECK-LABEL: @test_mm_mask_fmsub_ps
3004   // CHECK: fneg <4 x float> %{{.*}}
3005   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3006   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3007   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3008   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3009   return _mm_mask_fmsub_ps(__A, __U, __B, __C);
3010 }
3011 
test_mm_mask3_fmadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3012 __m128 test_mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3013   // CHECK-LABEL: @test_mm_mask3_fmadd_ps
3014   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3015   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3016   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3017   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3018   return _mm_mask3_fmadd_ps(__A, __B, __C, __U);
3019 }
3020 
test_mm_mask3_fnmadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3021 __m128 test_mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3022   // CHECK-LABEL: @test_mm_mask3_fnmadd_ps
3023   // CHECK: fneg <4 x float> %{{.*}}
3024   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3025   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3026   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3027   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3028   return _mm_mask3_fnmadd_ps(__A, __B, __C, __U);
3029 }
3030 
test_mm_maskz_fmadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3031 __m128 test_mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3032   // CHECK-LABEL: @test_mm_maskz_fmadd_ps
3033   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3034   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3035   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3036   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3037   return _mm_maskz_fmadd_ps(__U, __A, __B, __C);
3038 }
3039 
test_mm_maskz_fmsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3040 __m128 test_mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3041   // CHECK-LABEL: @test_mm_maskz_fmsub_ps
3042   // CHECK: fneg <4 x float> %{{.*}}
3043   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3044   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3045   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3046   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3047   return _mm_maskz_fmsub_ps(__U, __A, __B, __C);
3048 }
3049 
test_mm_maskz_fnmadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3050 __m128 test_mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3051   // CHECK-LABEL: @test_mm_maskz_fnmadd_ps
3052   // CHECK: fneg <4 x float> %{{.*}}
3053   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3054   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3055   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3056   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3057   return _mm_maskz_fnmadd_ps(__U, __A, __B, __C);
3058 }
3059 
test_mm_maskz_fnmsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3060 __m128 test_mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3061   // CHECK-LABEL: @test_mm_maskz_fnmsub_ps
3062   // CHECK: fneg <4 x float> %{{.*}}
3063   // CHECK: fneg <4 x float> %{{.*}}
3064   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3065   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3066   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3067   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3068   return _mm_maskz_fnmsub_ps(__U, __A, __B, __C);
3069 }
3070 
test_mm256_mask_fmadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3071 __m256 test_mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3072   // CHECK-LABEL: @test_mm256_mask_fmadd_ps
3073   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3074   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3075   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3076   return _mm256_mask_fmadd_ps(__A, __U, __B, __C);
3077 }
3078 
test_mm256_mask_fmsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3079 __m256 test_mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3080   // CHECK-LABEL: @test_mm256_mask_fmsub_ps
3081   // CHECK: fneg <8 x float> %{{.*}}
3082   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3083   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3084   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3085   return _mm256_mask_fmsub_ps(__A, __U, __B, __C);
3086 }
3087 
test_mm256_mask3_fmadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3088 __m256 test_mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3089   // CHECK-LABEL: @test_mm256_mask3_fmadd_ps
3090   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3091   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3092   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3093   return _mm256_mask3_fmadd_ps(__A, __B, __C, __U);
3094 }
3095 
test_mm256_mask3_fnmadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3096 __m256 test_mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3097   // CHECK-LABEL: @test_mm256_mask3_fnmadd_ps
3098   // CHECK: fneg <8 x float> %{{.*}}
3099   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3100   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3101   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3102   return _mm256_mask3_fnmadd_ps(__A, __B, __C, __U);
3103 }
3104 
test_mm256_maskz_fmadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3105 __m256 test_mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3106   // CHECK-LABEL: @test_mm256_maskz_fmadd_ps
3107   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3108   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3109   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3110   return _mm256_maskz_fmadd_ps(__U, __A, __B, __C);
3111 }
3112 
test_mm256_maskz_fmsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3113 __m256 test_mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3114   // CHECK-LABEL: @test_mm256_maskz_fmsub_ps
3115   // CHECK: fneg <8 x float> %{{.*}}
3116   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3117   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3118   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3119   return _mm256_maskz_fmsub_ps(__U, __A, __B, __C);
3120 }
3121 
test_mm256_maskz_fnmadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3122 __m256 test_mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3123   // CHECK-LABEL: @test_mm256_maskz_fnmadd_ps
3124   // CHECK: fneg <8 x float> %{{.*}}
3125   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3126   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3127   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3128   return _mm256_maskz_fnmadd_ps(__U, __A, __B, __C);
3129 }
3130 
test_mm256_maskz_fnmsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3131 __m256 test_mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3132   // CHECK-LABEL: @test_mm256_maskz_fnmsub_ps
3133   // CHECK: fneg <8 x float> %{{.*}}
3134   // CHECK: fneg <8 x float> %{{.*}}
3135   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3136   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3137   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3138   return _mm256_maskz_fnmsub_ps(__U, __A, __B, __C);
3139 }
3140 
test_mm_mask_fmaddsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3141 __m128d test_mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3142   // CHECK-LABEL: @test_mm_mask_fmaddsub_pd
3143   // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3144   // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.+}}
3145   // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3146   // CHECK: shufflevector <2 x double> [[SUB]], <2 x double> [[ADD]], <2 x i32> <i32 0, i32 3>
3147   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3148   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3149   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3150   return _mm_mask_fmaddsub_pd(__A, __U, __B, __C);
3151 }
3152 
test_mm_mask_fmsubadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3153 __m128d test_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3154   // CHECK-LABEL: @test_mm_mask_fmsubadd_pd
3155   // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.+}}
3156   // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3157   // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3158   // CHECK: shufflevector <2 x double> [[ADD]], <2 x double> [[SUB]], <2 x i32> <i32 0, i32 3>
3159   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3160   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3161   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3162   return _mm_mask_fmsubadd_pd(__A, __U, __B, __C);
3163 }
3164 
test_mm_mask3_fmaddsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3165 __m128d test_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3166   // CHECK-LABEL: @test_mm_mask3_fmaddsub_pd
3167   // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3168   // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.+}}
3169   // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3170   // CHECK: shufflevector <2 x double> [[SUB]], <2 x double> [[ADD]], <2 x i32> <i32 0, i32 3>
3171   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3172   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3173   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3174   return _mm_mask3_fmaddsub_pd(__A, __B, __C, __U);
3175 }
3176 
test_mm_maskz_fmaddsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)3177 __m128d test_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
3178   // CHECK-LABEL: @test_mm_maskz_fmaddsub_pd
3179   // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3180   // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.+}}
3181   // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3182   // CHECK: shufflevector <2 x double> [[SUB]], <2 x double> [[ADD]], <2 x i32> <i32 0, i32 3>
3183   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3184   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3185   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3186   return _mm_maskz_fmaddsub_pd(__U, __A, __B, __C);
3187 }
3188 
test_mm_maskz_fmsubadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)3189 __m128d test_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
3190   // CHECK-LABEL: @test_mm_maskz_fmsubadd_pd
3191   // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.+}}
3192   // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3193   // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3194   // CHECK: shufflevector <2 x double> [[ADD]], <2 x double> [[SUB]], <2 x i32> <i32 0, i32 3>
3195   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3196   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3197   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3198   return _mm_maskz_fmsubadd_pd(__U, __A, __B, __C);
3199 }
3200 
test_mm256_mask_fmaddsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3201 __m256d test_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3202   // CHECK-LABEL: @test_mm256_mask_fmaddsub_pd
3203   // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3204   // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.+}}
3205   // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3206   // CHECK: shufflevector <4 x double> [[SUB]], <4 x double> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3207   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3208   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3209   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3210   return _mm256_mask_fmaddsub_pd(__A, __U, __B, __C);
3211 }
3212 
test_mm256_mask_fmsubadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3213 __m256d test_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3214   // CHECK-LABEL: @test_mm256_mask_fmsubadd_pd
3215   // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.+}}
3216   // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]]
3217   // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3218   // CHECK: shufflevector <4 x double> [[ADD]], <4 x double> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3219   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3220   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3221   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3222   return _mm256_mask_fmsubadd_pd(__A, __U, __B, __C);
3223 }
3224 
test_mm256_mask3_fmaddsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3225 __m256d test_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3226   // CHECK-LABEL: @test_mm256_mask3_fmaddsub_pd
3227   // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3228   // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.+}}
3229   // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3230   // CHECK: shufflevector <4 x double> [[SUB]], <4 x double> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3231   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3232   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3233   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3234   return _mm256_mask3_fmaddsub_pd(__A, __B, __C, __U);
3235 }
3236 
test_mm256_maskz_fmaddsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)3237 __m256d test_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
3238   // CHECK-LABEL: @test_mm256_maskz_fmaddsub_pd
3239   // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3240   // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.+}}
3241   // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3242   // CHECK: shufflevector <4 x double> [[SUB]], <4 x double> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3243   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3244   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3245   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3246   return _mm256_maskz_fmaddsub_pd(__U, __A, __B, __C);
3247 }
3248 
test_mm256_maskz_fmsubadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)3249 __m256d test_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
3250   // CHECK-LABEL: @test_mm256_maskz_fmsubadd_pd
3251   // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.+}}
3252   // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]]
3253   // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3254   // CHECK: shufflevector <4 x double> [[ADD]], <4 x double> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3255   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3256   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3257   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3258   return _mm256_maskz_fmsubadd_pd(__U, __A, __B, __C);
3259 }
3260 
test_mm_mask_fmaddsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3261 __m128 test_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3262   // CHECK-LABEL: @test_mm_mask_fmaddsub_ps
3263   // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3264   // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.+}}
3265   // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3266   // CHECK: shufflevector <4 x float> [[SUB]], <4 x float> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3267   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3268   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3269   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3270   return _mm_mask_fmaddsub_ps(__A, __U, __B, __C);
3271 }
3272 
test_mm_mask_fmsubadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3273 __m128 test_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3274   // CHECK-LABEL: @test_mm_mask_fmsubadd_ps
3275   // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.+}}
3276   // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3277   // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3278   // CHECK: shufflevector <4 x float> [[ADD]], <4 x float> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3279   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3280   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3281   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3282   return _mm_mask_fmsubadd_ps(__A, __U, __B, __C);
3283 }
3284 
test_mm_mask3_fmaddsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3285 __m128 test_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3286   // CHECK-LABEL: @test_mm_mask3_fmaddsub_ps
3287   // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3288   // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.+}}
3289   // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3290   // CHECK: shufflevector <4 x float> [[SUB]], <4 x float> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3291   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3292   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3293   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3294   return _mm_mask3_fmaddsub_ps(__A, __B, __C, __U);
3295 }
3296 
test_mm_maskz_fmaddsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3297 __m128 test_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3298   // CHECK-LABEL: @test_mm_maskz_fmaddsub_ps
3299   // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3300   // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.+}}
3301   // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3302   // CHECK: shufflevector <4 x float> [[SUB]], <4 x float> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3303   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3304   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3305   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3306   return _mm_maskz_fmaddsub_ps(__U, __A, __B, __C);
3307 }
3308 
test_mm_maskz_fmsubadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3309 __m128 test_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3310   // CHECK-LABEL: @test_mm_maskz_fmsubadd_ps
3311   // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.+}}
3312   // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3313   // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3314   // CHECK: shufflevector <4 x float> [[ADD]], <4 x float> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3315   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3316   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3317   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3318   return _mm_maskz_fmsubadd_ps(__U, __A, __B, __C);
3319 }
3320 
test_mm256_mask_fmaddsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3321 __m256 test_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3322   // CHECK-LABEL: @test_mm256_mask_fmaddsub_ps
3323   // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3324   // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3325   // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3326   // 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>
3327   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3328   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3329   return _mm256_mask_fmaddsub_ps(__A, __U, __B, __C);
3330 }
3331 
test_mm256_mask_fmsubadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3332 __m256 test_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3333   // CHECK-LABEL: @test_mm256_mask_fmsubadd_ps
3334   // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3335   // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3336   // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3337   // 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>
3338   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3339   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3340   return _mm256_mask_fmsubadd_ps(__A, __U, __B, __C);
3341 }
3342 
test_mm256_mask3_fmaddsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3343 __m256 test_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3344   // CHECK-LABEL: @test_mm256_mask3_fmaddsub_ps
3345   // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3346   // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3347   // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3348   // 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>
3349   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3350   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3351   return _mm256_mask3_fmaddsub_ps(__A, __B, __C, __U);
3352 }
3353 
test_mm256_maskz_fmaddsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3354 __m256 test_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3355   // CHECK-LABEL: @test_mm256_maskz_fmaddsub_ps
3356   // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3357   // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3358   // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3359   // 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>
3360   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3361   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3362   return _mm256_maskz_fmaddsub_ps(__U, __A, __B, __C);
3363 }
3364 
test_mm256_maskz_fmsubadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3365 __m256 test_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3366   // CHECK-LABEL: @test_mm256_maskz_fmsubadd_ps
3367   // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3368   // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3369   // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3370   // 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>
3371   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3372   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3373   return _mm256_maskz_fmsubadd_ps(__U, __A, __B, __C);
3374 }
3375 
test_mm_mask3_fmsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3376 __m128d test_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3377   // CHECK-LABEL: @test_mm_mask3_fmsub_pd
3378   // CHECK: fneg <2 x double> %{{.*}}
3379   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3380   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3381   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3382   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3383   return _mm_mask3_fmsub_pd(__A, __B, __C, __U);
3384 }
3385 
test_mm256_mask3_fmsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3386 __m256d test_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3387   // CHECK-LABEL: @test_mm256_mask3_fmsub_pd
3388   // CHECK: fneg <4 x double> %{{.*}}
3389   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3390   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3391   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3392   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3393   return _mm256_mask3_fmsub_pd(__A, __B, __C, __U);
3394 }
3395 
test_mm_mask3_fmsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3396 __m128 test_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3397   // CHECK-LABEL: @test_mm_mask3_fmsub_ps
3398   // CHECK: fneg <4 x float> %{{.*}}
3399   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3400   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3401   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3402   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3403   return _mm_mask3_fmsub_ps(__A, __B, __C, __U);
3404 }
3405 
test_mm256_mask3_fmsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3406 __m256 test_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3407   // CHECK-LABEL: @test_mm256_mask3_fmsub_ps
3408   // CHECK: fneg <8 x float> %{{.*}}
3409   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3410   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3411   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3412   return _mm256_mask3_fmsub_ps(__A, __B, __C, __U);
3413 }
3414 
test_mm_mask3_fmsubadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3415 __m128d test_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3416   // CHECK-LABEL: @test_mm_mask3_fmsubadd_pd
3417   // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.+}}
3418   // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3419   // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3420   // CHECK: shufflevector <2 x double> [[ADD]], <2 x double> [[SUB]], <2 x i32> <i32 0, i32 3>
3421   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3422   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3423   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3424   return _mm_mask3_fmsubadd_pd(__A, __B, __C, __U);
3425 }
3426 
test_mm256_mask3_fmsubadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3427 __m256d test_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3428   // CHECK-LABEL: @test_mm256_mask3_fmsubadd_pd
3429   // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.+}}
3430   // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]]
3431   // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3432   // CHECK: shufflevector <4 x double> [[ADD]], <4 x double> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3433   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3434   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3435   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3436   return _mm256_mask3_fmsubadd_pd(__A, __B, __C, __U);
3437 }
3438 
test_mm_mask3_fmsubadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3439 __m128 test_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3440   // CHECK-LABEL: @test_mm_mask3_fmsubadd_ps
3441   // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.+}}
3442   // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3443   // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3444   // CHECK: shufflevector <4 x float> [[ADD]], <4 x float> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3445   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3446   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3447   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3448   return _mm_mask3_fmsubadd_ps(__A, __B, __C, __U);
3449 }
3450 
test_mm256_mask3_fmsubadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3451 __m256 test_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3452   // CHECK-LABEL: @test_mm256_mask3_fmsubadd_ps
3453   // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3454   // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3455   // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3456   // 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>
3457   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3458   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3459   return _mm256_mask3_fmsubadd_ps(__A, __B, __C, __U);
3460 }
3461 
test_mm_mask_fnmadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3462 __m128d test_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3463   // CHECK-LABEL: @test_mm_mask_fnmadd_pd
3464   // CHECK: fneg <2 x double> %{{.*}}
3465   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3466   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3467   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3468   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3469   return _mm_mask_fnmadd_pd(__A, __U, __B, __C);
3470 }
3471 
test_mm256_mask_fnmadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3472 __m256d test_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3473   // CHECK-LABEL: @test_mm256_mask_fnmadd_pd
3474   // CHECK: fneg <4 x double> %{{.*}}
3475   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3476   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3477   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3478   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3479   return _mm256_mask_fnmadd_pd(__A, __U, __B, __C);
3480 }
3481 
test_mm_mask_fnmadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3482 __m128 test_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3483   // CHECK-LABEL: @test_mm_mask_fnmadd_ps
3484   // CHECK: fneg <4 x float> %{{.*}}
3485   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3486   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3487   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3488   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3489   return _mm_mask_fnmadd_ps(__A, __U, __B, __C);
3490 }
3491 
test_mm256_mask_fnmadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3492 __m256 test_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3493   // CHECK-LABEL: @test_mm256_mask_fnmadd_ps
3494   // CHECK: fneg <8 x float> %{{.*}}
3495   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3496   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3497   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3498   return _mm256_mask_fnmadd_ps(__A, __U, __B, __C);
3499 }
3500 
test_mm_mask_fnmsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3501 __m128d test_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3502   // CHECK-LABEL: @test_mm_mask_fnmsub_pd
3503   // CHECK: fneg <2 x double> %{{.*}}
3504   // CHECK: fneg <2 x double> %{{.*}}
3505   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3506   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3507   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3508   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3509   return _mm_mask_fnmsub_pd(__A, __U, __B, __C);
3510 }
3511 
test_mm_mask3_fnmsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3512 __m128d test_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3513   // CHECK-LABEL: @test_mm_mask3_fnmsub_pd
3514   // CHECK: fneg <2 x double> %{{.*}}
3515   // CHECK: fneg <2 x double> %{{.*}}
3516   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3517   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3518   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3519   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3520   return _mm_mask3_fnmsub_pd(__A, __B, __C, __U);
3521 }
3522 
test_mm256_mask_fnmsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3523 __m256d test_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3524   // CHECK-LABEL: @test_mm256_mask_fnmsub_pd
3525   // CHECK: fneg <4 x double> %{{.*}}
3526   // CHECK: fneg <4 x double> %{{.*}}
3527   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3528   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3529   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3530   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3531   return _mm256_mask_fnmsub_pd(__A, __U, __B, __C);
3532 }
3533 
test_mm256_mask3_fnmsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3534 __m256d test_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3535   // CHECK-LABEL: @test_mm256_mask3_fnmsub_pd
3536   // CHECK: fneg <4 x double> %{{.*}}
3537   // CHECK: fneg <4 x double> %{{.*}}
3538   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3539   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3540   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3541   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3542   return _mm256_mask3_fnmsub_pd(__A, __B, __C, __U);
3543 }
3544 
test_mm_mask_fnmsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3545 __m128 test_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3546   // CHECK-LABEL: @test_mm_mask_fnmsub_ps
3547   // CHECK: fneg <4 x float> %{{.*}}
3548   // CHECK: fneg <4 x float> %{{.*}}
3549   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3550   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3551   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3552   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3553   return _mm_mask_fnmsub_ps(__A, __U, __B, __C);
3554 }
3555 
test_mm_mask3_fnmsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3556 __m128 test_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3557   // CHECK-LABEL: @test_mm_mask3_fnmsub_ps
3558   // CHECK: fneg <4 x float> %{{.*}}
3559   // CHECK: fneg <4 x float> %{{.*}}
3560   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3561   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3562   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3563   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3564   return _mm_mask3_fnmsub_ps(__A, __B, __C, __U);
3565 }
3566 
test_mm256_mask_fnmsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3567 __m256 test_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3568   // CHECK-LABEL: @test_mm256_mask_fnmsub_ps
3569   // CHECK: fneg <8 x float> %{{.*}}
3570   // CHECK: fneg <8 x float> %{{.*}}
3571   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3572   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3573   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3574   return _mm256_mask_fnmsub_ps(__A, __U, __B, __C);
3575 }
3576 
test_mm256_mask3_fnmsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3577 __m256 test_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3578   // CHECK-LABEL: @test_mm256_mask3_fnmsub_ps
3579   // CHECK: fneg <8 x float> %{{.*}}
3580   // CHECK: fneg <8 x float> %{{.*}}
3581   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3582   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3583   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3584   return _mm256_mask3_fnmsub_ps(__A, __B, __C, __U);
3585 }
3586 
test_mm_mask_add_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3587 __m128d test_mm_mask_add_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3588   // CHECK-LABEL: @test_mm_mask_add_pd
3589   // CHECK: fadd <2 x double> %{{.*}}, %{{.*}}
3590   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3591   return _mm_mask_add_pd(__W,__U,__A,__B);
3592 }
test_mm_maskz_add_pd(__mmask8 __U,__m128d __A,__m128d __B)3593 __m128d test_mm_maskz_add_pd(__mmask8 __U, __m128d __A, __m128d __B) {
3594   // CHECK-LABEL: @test_mm_maskz_add_pd
3595   // CHECK: fadd <2 x double> %{{.*}}, %{{.*}}
3596   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3597   return _mm_maskz_add_pd(__U,__A,__B);
3598 }
test_mm256_mask_add_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)3599 __m256d test_mm256_mask_add_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
3600   // CHECK-LABEL: @test_mm256_mask_add_pd
3601   // CHECK: fadd <4 x double> %{{.*}}, %{{.*}}
3602   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3603   return _mm256_mask_add_pd(__W,__U,__A,__B);
3604 }
test_mm256_maskz_add_pd(__mmask8 __U,__m256d __A,__m256d __B)3605 __m256d test_mm256_maskz_add_pd(__mmask8 __U, __m256d __A, __m256d __B) {
3606   // CHECK-LABEL: @test_mm256_maskz_add_pd
3607   // CHECK: fadd <4 x double> %{{.*}}, %{{.*}}
3608   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3609   return _mm256_maskz_add_pd(__U,__A,__B);
3610 }
test_mm_mask_add_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)3611 __m128 test_mm_mask_add_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3612   // CHECK-LABEL: @test_mm_mask_add_ps
3613   // CHECK: fadd <4 x float> %{{.*}}, %{{.*}}
3614   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3615   return _mm_mask_add_ps(__W,__U,__A,__B);
3616 }
test_mm_maskz_add_ps(__mmask8 __U,__m128 __A,__m128 __B)3617 __m128 test_mm_maskz_add_ps(__mmask8 __U, __m128 __A, __m128 __B) {
3618   // CHECK-LABEL: @test_mm_maskz_add_ps
3619   // CHECK: fadd <4 x float> %{{.*}}, %{{.*}}
3620   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3621   return _mm_maskz_add_ps(__U,__A,__B);
3622 }
test_mm256_mask_add_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)3623 __m256 test_mm256_mask_add_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3624   // CHECK-LABEL: @test_mm256_mask_add_ps
3625   // CHECK: fadd <8 x float> %{{.*}}, %{{.*}}
3626   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3627   return _mm256_mask_add_ps(__W,__U,__A,__B);
3628 }
test_mm256_maskz_add_ps(__mmask8 __U,__m256 __A,__m256 __B)3629 __m256 test_mm256_maskz_add_ps(__mmask8 __U, __m256 __A, __m256 __B) {
3630   // CHECK-LABEL: @test_mm256_maskz_add_ps
3631   // CHECK: fadd <8 x float> %{{.*}}, %{{.*}}
3632   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3633   return _mm256_maskz_add_ps(__U,__A,__B);
3634 }
test_mm_mask_blend_epi32(__mmask8 __U,__m128i __A,__m128i __W)3635 __m128i test_mm_mask_blend_epi32(__mmask8 __U, __m128i __A, __m128i __W) {
3636   // CHECK-LABEL: @test_mm_mask_blend_epi32
3637   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
3638   return _mm_mask_blend_epi32(__U,__A,__W);
3639 }
test_mm256_mask_blend_epi32(__mmask8 __U,__m256i __A,__m256i __W)3640 __m256i test_mm256_mask_blend_epi32(__mmask8 __U, __m256i __A, __m256i __W) {
3641   // CHECK-LABEL: @test_mm256_mask_blend_epi32
3642   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
3643   return _mm256_mask_blend_epi32(__U,__A,__W);
3644 }
test_mm_mask_blend_pd(__mmask8 __U,__m128d __A,__m128d __W)3645 __m128d test_mm_mask_blend_pd(__mmask8 __U, __m128d __A, __m128d __W) {
3646   // CHECK-LABEL: @test_mm_mask_blend_pd
3647   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3648   return _mm_mask_blend_pd(__U,__A,__W);
3649 }
test_mm256_mask_blend_pd(__mmask8 __U,__m256d __A,__m256d __W)3650 __m256d test_mm256_mask_blend_pd(__mmask8 __U, __m256d __A, __m256d __W) {
3651   // CHECK-LABEL: @test_mm256_mask_blend_pd
3652   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3653   return _mm256_mask_blend_pd(__U,__A,__W);
3654 }
test_mm_mask_blend_ps(__mmask8 __U,__m128 __A,__m128 __W)3655 __m128 test_mm_mask_blend_ps(__mmask8 __U, __m128 __A, __m128 __W) {
3656   // CHECK-LABEL: @test_mm_mask_blend_ps
3657   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3658   return _mm_mask_blend_ps(__U,__A,__W);
3659 }
test_mm256_mask_blend_ps(__mmask8 __U,__m256 __A,__m256 __W)3660 __m256 test_mm256_mask_blend_ps(__mmask8 __U, __m256 __A, __m256 __W) {
3661   // CHECK-LABEL: @test_mm256_mask_blend_ps
3662   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3663   return _mm256_mask_blend_ps(__U,__A,__W);
3664 }
test_mm_mask_blend_epi64(__mmask8 __U,__m128i __A,__m128i __W)3665 __m128i test_mm_mask_blend_epi64(__mmask8 __U, __m128i __A, __m128i __W) {
3666   // CHECK-LABEL: @test_mm_mask_blend_epi64
3667   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
3668   return _mm_mask_blend_epi64(__U,__A,__W);
3669 }
test_mm256_mask_blend_epi64(__mmask8 __U,__m256i __A,__m256i __W)3670 __m256i test_mm256_mask_blend_epi64(__mmask8 __U, __m256i __A, __m256i __W) {
3671   // CHECK-LABEL: @test_mm256_mask_blend_epi64
3672   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
3673   return _mm256_mask_blend_epi64(__U,__A,__W);
3674 }
test_mm_mask_compress_pd(__m128d __W,__mmask8 __U,__m128d __A)3675 __m128d test_mm_mask_compress_pd(__m128d __W, __mmask8 __U, __m128d __A) {
3676   // CHECK-LABEL: @test_mm_mask_compress_pd
3677   // CHECK: @llvm.x86.avx512.mask.compress
3678   return _mm_mask_compress_pd(__W,__U,__A);
3679 }
test_mm_maskz_compress_pd(__mmask8 __U,__m128d __A)3680 __m128d test_mm_maskz_compress_pd(__mmask8 __U, __m128d __A) {
3681   // CHECK-LABEL: @test_mm_maskz_compress_pd
3682   // CHECK: @llvm.x86.avx512.mask.compress
3683   return _mm_maskz_compress_pd(__U,__A);
3684 }
test_mm256_mask_compress_pd(__m256d __W,__mmask8 __U,__m256d __A)3685 __m256d test_mm256_mask_compress_pd(__m256d __W, __mmask8 __U, __m256d __A) {
3686   // CHECK-LABEL: @test_mm256_mask_compress_pd
3687   // CHECK: @llvm.x86.avx512.mask.compress
3688   return _mm256_mask_compress_pd(__W,__U,__A);
3689 }
test_mm256_maskz_compress_pd(__mmask8 __U,__m256d __A)3690 __m256d test_mm256_maskz_compress_pd(__mmask8 __U, __m256d __A) {
3691   // CHECK-LABEL: @test_mm256_maskz_compress_pd
3692   // CHECK: @llvm.x86.avx512.mask.compress
3693   return _mm256_maskz_compress_pd(__U,__A);
3694 }
test_mm_mask_compress_epi64(__m128i __W,__mmask8 __U,__m128i __A)3695 __m128i test_mm_mask_compress_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
3696   // CHECK-LABEL: @test_mm_mask_compress_epi64
3697   // CHECK: @llvm.x86.avx512.mask.compress
3698   return _mm_mask_compress_epi64(__W,__U,__A);
3699 }
test_mm_maskz_compress_epi64(__mmask8 __U,__m128i __A)3700 __m128i test_mm_maskz_compress_epi64(__mmask8 __U, __m128i __A) {
3701   // CHECK-LABEL: @test_mm_maskz_compress_epi64
3702   // CHECK: @llvm.x86.avx512.mask.compress
3703   return _mm_maskz_compress_epi64(__U,__A);
3704 }
test_mm256_mask_compress_epi64(__m256i __W,__mmask8 __U,__m256i __A)3705 __m256i test_mm256_mask_compress_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
3706   // CHECK-LABEL: @test_mm256_mask_compress_epi64
3707   // CHECK: @llvm.x86.avx512.mask.compress
3708   return _mm256_mask_compress_epi64(__W,__U,__A);
3709 }
test_mm256_maskz_compress_epi64(__mmask8 __U,__m256i __A)3710 __m256i test_mm256_maskz_compress_epi64(__mmask8 __U, __m256i __A) {
3711   // CHECK-LABEL: @test_mm256_maskz_compress_epi64
3712   // CHECK: @llvm.x86.avx512.mask.compress
3713   return _mm256_maskz_compress_epi64(__U,__A);
3714 }
test_mm_mask_compress_ps(__m128 __W,__mmask8 __U,__m128 __A)3715 __m128 test_mm_mask_compress_ps(__m128 __W, __mmask8 __U, __m128 __A) {
3716   // CHECK-LABEL: @test_mm_mask_compress_ps
3717   // CHECK: @llvm.x86.avx512.mask.compress
3718   return _mm_mask_compress_ps(__W,__U,__A);
3719 }
test_mm_maskz_compress_ps(__mmask8 __U,__m128 __A)3720 __m128 test_mm_maskz_compress_ps(__mmask8 __U, __m128 __A) {
3721   // CHECK-LABEL: @test_mm_maskz_compress_ps
3722   // CHECK: @llvm.x86.avx512.mask.compress
3723   return _mm_maskz_compress_ps(__U,__A);
3724 }
test_mm256_mask_compress_ps(__m256 __W,__mmask8 __U,__m256 __A)3725 __m256 test_mm256_mask_compress_ps(__m256 __W, __mmask8 __U, __m256 __A) {
3726   // CHECK-LABEL: @test_mm256_mask_compress_ps
3727   // CHECK: @llvm.x86.avx512.mask.compress
3728   return _mm256_mask_compress_ps(__W,__U,__A);
3729 }
test_mm256_maskz_compress_ps(__mmask8 __U,__m256 __A)3730 __m256 test_mm256_maskz_compress_ps(__mmask8 __U, __m256 __A) {
3731   // CHECK-LABEL: @test_mm256_maskz_compress_ps
3732   // CHECK: @llvm.x86.avx512.mask.compress
3733   return _mm256_maskz_compress_ps(__U,__A);
3734 }
test_mm_mask_compress_epi32(__m128i __W,__mmask8 __U,__m128i __A)3735 __m128i test_mm_mask_compress_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
3736   // CHECK-LABEL: @test_mm_mask_compress_epi32
3737   // CHECK: @llvm.x86.avx512.mask.compress
3738   return _mm_mask_compress_epi32(__W,__U,__A);
3739 }
test_mm_maskz_compress_epi32(__mmask8 __U,__m128i __A)3740 __m128i test_mm_maskz_compress_epi32(__mmask8 __U, __m128i __A) {
3741   // CHECK-LABEL: @test_mm_maskz_compress_epi32
3742   // CHECK: @llvm.x86.avx512.mask.compress
3743   return _mm_maskz_compress_epi32(__U,__A);
3744 }
test_mm256_mask_compress_epi32(__m256i __W,__mmask8 __U,__m256i __A)3745 __m256i test_mm256_mask_compress_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
3746   // CHECK-LABEL: @test_mm256_mask_compress_epi32
3747   // CHECK: @llvm.x86.avx512.mask.compress
3748   return _mm256_mask_compress_epi32(__W,__U,__A);
3749 }
test_mm256_maskz_compress_epi32(__mmask8 __U,__m256i __A)3750 __m256i test_mm256_maskz_compress_epi32(__mmask8 __U, __m256i __A) {
3751   // CHECK-LABEL: @test_mm256_maskz_compress_epi32
3752   // CHECK: @llvm.x86.avx512.mask.compress
3753   return _mm256_maskz_compress_epi32(__U,__A);
3754 }
test_mm_mask_compressstoreu_pd(void * __P,__mmask8 __U,__m128d __A)3755 void test_mm_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m128d __A) {
3756   // CHECK-LABEL: @test_mm_mask_compressstoreu_pd
3757   // CHECK: @llvm.masked.compressstore.v2f64(<2 x double> %{{.*}}, double* %{{.*}}, <2 x i1> %{{.*}})
3758   return _mm_mask_compressstoreu_pd(__P,__U,__A);
3759 }
test_mm256_mask_compressstoreu_pd(void * __P,__mmask8 __U,__m256d __A)3760 void test_mm256_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m256d __A) {
3761   // CHECK-LABEL: @test_mm256_mask_compressstoreu_pd
3762   // CHECK: @llvm.masked.compressstore.v4f64(<4 x double> %{{.*}}, double* %{{.*}}, <4 x i1> %{{.*}})
3763   return _mm256_mask_compressstoreu_pd(__P,__U,__A);
3764 }
test_mm_mask_compressstoreu_epi64(void * __P,__mmask8 __U,__m128i __A)3765 void test_mm_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m128i __A) {
3766   // CHECK-LABEL: @test_mm_mask_compressstoreu_epi64
3767   // CHECK: @llvm.masked.compressstore.v2i64(<2 x i64> %{{.*}}, i64* %{{.*}}, <2 x i1> %{{.*}})
3768   return _mm_mask_compressstoreu_epi64(__P,__U,__A);
3769 }
test_mm256_mask_compressstoreu_epi64(void * __P,__mmask8 __U,__m256i __A)3770 void test_mm256_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m256i __A) {
3771   // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi64
3772   // CHECK: @llvm.masked.compressstore.v4i64(<4 x i64> %{{.*}}, i64* %{{.*}}, <4 x i1> %{{.*}})
3773   return _mm256_mask_compressstoreu_epi64(__P,__U,__A);
3774 }
test_mm_mask_compressstoreu_ps(void * __P,__mmask8 __U,__m128 __A)3775 void test_mm_mask_compressstoreu_ps(void *__P, __mmask8 __U, __m128 __A) {
3776   // CHECK-LABEL: @test_mm_mask_compressstoreu_ps
3777   // CHECK: @llvm.masked.compressstore.v4f32(<4 x float> %{{.*}}, float* %{{.*}}, <4 x i1> %{{.*}})
3778   return _mm_mask_compressstoreu_ps(__P,__U,__A);
3779 }
test_mm256_mask_compressstoreu_ps(void * __P,__mmask8 __U,__m256 __A)3780 void test_mm256_mask_compressstoreu_ps(void *__P, __mmask8 __U, __m256 __A) {
3781   // CHECK-LABEL: @test_mm256_mask_compressstoreu_ps
3782   // CHECK: @llvm.masked.compressstore.v8f32(<8 x float> %{{.*}}, float* %{{.*}}, <8 x i1> %{{.*}})
3783   return _mm256_mask_compressstoreu_ps(__P,__U,__A);
3784 }
test_mm_mask_compressstoreu_epi32(void * __P,__mmask8 __U,__m128i __A)3785 void test_mm_mask_compressstoreu_epi32(void *__P, __mmask8 __U, __m128i __A) {
3786   // CHECK-LABEL: @test_mm_mask_compressstoreu_epi32
3787   // CHECK: @llvm.masked.compressstore.v4i32(<4 x i32> %{{.*}}, i32* %{{.*}}, <4 x i1> %{{.*}})
3788   return _mm_mask_compressstoreu_epi32(__P,__U,__A);
3789 }
test_mm256_mask_compressstoreu_epi32(void * __P,__mmask8 __U,__m256i __A)3790 void test_mm256_mask_compressstoreu_epi32(void *__P, __mmask8 __U, __m256i __A) {
3791   // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi32
3792   // CHECK: @llvm.masked.compressstore.v8i32(<8 x i32> %{{.*}}, i32* %{{.*}}, <8 x i1> %{{.*}})
3793   return _mm256_mask_compressstoreu_epi32(__P,__U,__A);
3794 }
test_mm_mask_cvtepi32_pd(__m128d __W,__mmask8 __U,__m128i __A)3795 __m128d test_mm_mask_cvtepi32_pd(__m128d __W, __mmask8 __U, __m128i __A) {
3796   // CHECK-LABEL: @test_mm_mask_cvtepi32_pd
3797   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
3798   // CHECK: sitofp <2 x i32> %{{.*}} to <2 x double>
3799   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3800   return _mm_mask_cvtepi32_pd(__W,__U,__A);
3801 }
test_mm_maskz_cvtepi32_pd(__mmask8 __U,__m128i __A)3802 __m128d test_mm_maskz_cvtepi32_pd(__mmask8 __U, __m128i __A) {
3803   // CHECK-LABEL: @test_mm_maskz_cvtepi32_pd
3804   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
3805   // CHECK: sitofp <2 x i32> %{{.*}} to <2 x double>
3806   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3807   return _mm_maskz_cvtepi32_pd(__U,__A);
3808 }
test_mm256_mask_cvtepi32_pd(__m256d __W,__mmask8 __U,__m128i __A)3809 __m256d test_mm256_mask_cvtepi32_pd(__m256d __W, __mmask8 __U, __m128i __A) {
3810   // CHECK-LABEL: @test_mm256_mask_cvtepi32_pd
3811   // CHECK: sitofp <4 x i32> %{{.*}} to <4 x double>
3812   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3813   return _mm256_mask_cvtepi32_pd(__W,__U,__A);
3814 }
test_mm256_maskz_cvtepi32_pd(__mmask8 __U,__m128i __A)3815 __m256d test_mm256_maskz_cvtepi32_pd(__mmask8 __U, __m128i __A) {
3816   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_pd
3817   // CHECK: sitofp <4 x i32> %{{.*}} to <4 x double>
3818   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3819   return _mm256_maskz_cvtepi32_pd(__U,__A);
3820 }
test_mm_mask_cvtepi32_ps(__m128 __W,__mmask8 __U,__m128i __A)3821 __m128 test_mm_mask_cvtepi32_ps(__m128 __W, __mmask8 __U, __m128i __A) {
3822   // CHECK-LABEL: @test_mm_mask_cvtepi32_ps
3823   // CHECK: sitofp <4 x i32> %{{.*}} to <4 x float>
3824   // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3825   return _mm_mask_cvtepi32_ps(__W,__U,__A);
3826 }
test_mm_maskz_cvtepi32_ps(__mmask8 __U,__m128i __A)3827 __m128 test_mm_maskz_cvtepi32_ps(__mmask8 __U, __m128i __A) {
3828   // CHECK-LABEL: @test_mm_maskz_cvtepi32_ps
3829   // CHECK: sitofp <4 x i32> %{{.*}} to <4 x float>
3830   // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3831   return _mm_maskz_cvtepi32_ps(__U,__A);
3832 }
test_mm256_mask_cvtepi32_ps(__m256 __W,__mmask8 __U,__m256i __A)3833 __m256 test_mm256_mask_cvtepi32_ps(__m256 __W, __mmask8 __U, __m256i __A) {
3834   // CHECK-LABEL: @test_mm256_mask_cvtepi32_ps
3835   // CHECK: sitofp <8 x i32> %{{.*}} to <8 x float>
3836   // CHECK: select <8 x i1> {{.*}}, <8 x float> {{.*}}, <8 x float> {{.*}}
3837   return _mm256_mask_cvtepi32_ps(__W,__U,__A);
3838 }
test_mm256_maskz_cvtepi32_ps(__mmask8 __U,__m256i __A)3839 __m256 test_mm256_maskz_cvtepi32_ps(__mmask8 __U, __m256i __A) {
3840   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_ps
3841   // CHECK: sitofp <8 x i32> %{{.*}} to <8 x float>
3842   // CHECK: select <8 x i1> {{.*}}, <8 x float> {{.*}}, <8 x float> {{.*}}
3843   return _mm256_maskz_cvtepi32_ps(__U,__A);
3844 }
test_mm_mask_cvtpd_epi32(__m128i __W,__mmask8 __U,__m128d __A)3845 __m128i test_mm_mask_cvtpd_epi32(__m128i __W, __mmask8 __U, __m128d __A) {
3846   // CHECK-LABEL: @test_mm_mask_cvtpd_epi32
3847   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.128
3848   return _mm_mask_cvtpd_epi32(__W,__U,__A);
3849 }
test_mm_maskz_cvtpd_epi32(__mmask8 __U,__m128d __A)3850 __m128i test_mm_maskz_cvtpd_epi32(__mmask8 __U, __m128d __A) {
3851   // CHECK-LABEL: @test_mm_maskz_cvtpd_epi32
3852   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.128
3853   return _mm_maskz_cvtpd_epi32(__U,__A);
3854 }
test_mm256_mask_cvtpd_epi32(__m128i __W,__mmask8 __U,__m256d __A)3855 __m128i test_mm256_mask_cvtpd_epi32(__m128i __W, __mmask8 __U, __m256d __A) {
3856   // CHECK-LABEL: @test_mm256_mask_cvtpd_epi32
3857   // CHECK: @llvm.x86.avx.cvt.pd2dq.256
3858   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3859   return _mm256_mask_cvtpd_epi32(__W,__U,__A);
3860 }
test_mm256_maskz_cvtpd_epi32(__mmask8 __U,__m256d __A)3861 __m128i test_mm256_maskz_cvtpd_epi32(__mmask8 __U, __m256d __A) {
3862   // CHECK-LABEL: @test_mm256_maskz_cvtpd_epi32
3863   // CHECK: @llvm.x86.avx.cvt.pd2dq.256
3864   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3865   return _mm256_maskz_cvtpd_epi32(__U,__A);
3866 }
test_mm_mask_cvtpd_ps(__m128 __W,__mmask8 __U,__m128d __A)3867 __m128 test_mm_mask_cvtpd_ps(__m128 __W, __mmask8 __U, __m128d __A) {
3868   // CHECK-LABEL: @test_mm_mask_cvtpd_ps
3869   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps
3870   return _mm_mask_cvtpd_ps(__W,__U,__A);
3871 }
test_mm_maskz_cvtpd_ps(__mmask8 __U,__m128d __A)3872 __m128 test_mm_maskz_cvtpd_ps(__mmask8 __U, __m128d __A) {
3873   // CHECK-LABEL: @test_mm_maskz_cvtpd_ps
3874   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps
3875   return _mm_maskz_cvtpd_ps(__U,__A);
3876 }
test_mm256_mask_cvtpd_ps(__m128 __W,__mmask8 __U,__m256d __A)3877 __m128 test_mm256_mask_cvtpd_ps(__m128 __W, __mmask8 __U, __m256d __A) {
3878   // CHECK-LABEL: @test_mm256_mask_cvtpd_ps
3879   // CHECK: @llvm.x86.avx.cvt.pd2.ps.256
3880   // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3881   return _mm256_mask_cvtpd_ps(__W,__U,__A);
3882 }
test_mm256_maskz_cvtpd_ps(__mmask8 __U,__m256d __A)3883 __m128 test_mm256_maskz_cvtpd_ps(__mmask8 __U, __m256d __A) {
3884   // CHECK-LABEL: @test_mm256_maskz_cvtpd_ps
3885   // CHECK: @llvm.x86.avx.cvt.pd2.ps.256
3886   // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3887   return _mm256_maskz_cvtpd_ps(__U,__A);
3888 }
test_mm_cvtpd_epu32(__m128d __A)3889 __m128i test_mm_cvtpd_epu32(__m128d __A) {
3890   // CHECK-LABEL: @test_mm_cvtpd_epu32
3891   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3892   return _mm_cvtpd_epu32(__A);
3893 }
test_mm_mask_cvtpd_epu32(__m128i __W,__mmask8 __U,__m128d __A)3894 __m128i test_mm_mask_cvtpd_epu32(__m128i __W, __mmask8 __U, __m128d __A) {
3895   // CHECK-LABEL: @test_mm_mask_cvtpd_epu32
3896   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3897   return _mm_mask_cvtpd_epu32(__W,__U,__A);
3898 }
test_mm_maskz_cvtpd_epu32(__mmask8 __U,__m128d __A)3899 __m128i test_mm_maskz_cvtpd_epu32(__mmask8 __U, __m128d __A) {
3900   // CHECK-LABEL: @test_mm_maskz_cvtpd_epu32
3901   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3902   return _mm_maskz_cvtpd_epu32(__U,__A);
3903 }
test_mm256_cvtpd_epu32(__m256d __A)3904 __m128i test_mm256_cvtpd_epu32(__m256d __A) {
3905   // CHECK-LABEL: @test_mm256_cvtpd_epu32
3906   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3907   return _mm256_cvtpd_epu32(__A);
3908 }
test_mm256_mask_cvtpd_epu32(__m128i __W,__mmask8 __U,__m256d __A)3909 __m128i test_mm256_mask_cvtpd_epu32(__m128i __W, __mmask8 __U, __m256d __A) {
3910   // CHECK-LABEL: @test_mm256_mask_cvtpd_epu32
3911   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3912   return _mm256_mask_cvtpd_epu32(__W,__U,__A);
3913 }
test_mm256_maskz_cvtpd_epu32(__mmask8 __U,__m256d __A)3914 __m128i test_mm256_maskz_cvtpd_epu32(__mmask8 __U, __m256d __A) {
3915   // CHECK-LABEL: @test_mm256_maskz_cvtpd_epu32
3916   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3917   return _mm256_maskz_cvtpd_epu32(__U,__A);
3918 }
test_mm_mask_cvtps_epi32(__m128i __W,__mmask8 __U,__m128 __A)3919 __m128i test_mm_mask_cvtps_epi32(__m128i __W, __mmask8 __U, __m128 __A) {
3920   // CHECK-LABEL: @test_mm_mask_cvtps_epi32
3921   // CHECK: @llvm.x86.sse2.cvtps2dq
3922   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3923   return _mm_mask_cvtps_epi32(__W,__U,__A);
3924 }
test_mm_maskz_cvtps_epi32(__mmask8 __U,__m128 __A)3925 __m128i test_mm_maskz_cvtps_epi32(__mmask8 __U, __m128 __A) {
3926   // CHECK-LABEL: @test_mm_maskz_cvtps_epi32
3927   // CHECK: @llvm.x86.sse2.cvtps2dq
3928   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3929   return _mm_maskz_cvtps_epi32(__U,__A);
3930 }
test_mm256_mask_cvtps_epi32(__m256i __W,__mmask8 __U,__m256 __A)3931 __m256i test_mm256_mask_cvtps_epi32(__m256i __W, __mmask8 __U, __m256 __A) {
3932   // CHECK-LABEL: @test_mm256_mask_cvtps_epi32
3933   // CHECK: @llvm.x86.avx.cvt.ps2dq.256
3934   // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
3935   return _mm256_mask_cvtps_epi32(__W,__U,__A);
3936 }
test_mm256_maskz_cvtps_epi32(__mmask8 __U,__m256 __A)3937 __m256i test_mm256_maskz_cvtps_epi32(__mmask8 __U, __m256 __A) {
3938   // CHECK-LABEL: @test_mm256_maskz_cvtps_epi32
3939   // CHECK: @llvm.x86.avx.cvt.ps2dq.256
3940   // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
3941   return _mm256_maskz_cvtps_epi32(__U,__A);
3942 }
test_mm_mask_cvtps_pd(__m128d __W,__mmask8 __U,__m128 __A)3943 __m128d test_mm_mask_cvtps_pd(__m128d __W, __mmask8 __U, __m128 __A) {
3944   // CHECK-LABEL: @test_mm_mask_cvtps_pd
3945   // CHECK: fpext <2 x float> %{{.*}} to <2 x double>
3946   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3947   return _mm_mask_cvtps_pd(__W,__U,__A);
3948 }
test_mm_maskz_cvtps_pd(__mmask8 __U,__m128 __A)3949 __m128d test_mm_maskz_cvtps_pd(__mmask8 __U, __m128 __A) {
3950   // CHECK-LABEL: @test_mm_maskz_cvtps_pd
3951   // CHECK: fpext <2 x float> %{{.*}} to <2 x double>
3952   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3953   return _mm_maskz_cvtps_pd(__U,__A);
3954 }
test_mm256_mask_cvtps_pd(__m256d __W,__mmask8 __U,__m128 __A)3955 __m256d test_mm256_mask_cvtps_pd(__m256d __W, __mmask8 __U, __m128 __A) {
3956   // CHECK-LABEL: @test_mm256_mask_cvtps_pd
3957   // CHECK: fpext <4 x float> %{{.*}} to <4 x double>
3958   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3959   return _mm256_mask_cvtps_pd(__W,__U,__A);
3960 }
test_mm256_maskz_cvtps_pd(__mmask8 __U,__m128 __A)3961 __m256d test_mm256_maskz_cvtps_pd(__mmask8 __U, __m128 __A) {
3962   // CHECK-LABEL: @test_mm256_maskz_cvtps_pd
3963   // CHECK: fpext <4 x float> %{{.*}} to <4 x double>
3964   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3965   return _mm256_maskz_cvtps_pd(__U,__A);
3966 }
test_mm_cvtps_epu32(__m128 __A)3967 __m128i test_mm_cvtps_epu32(__m128 __A) {
3968   // CHECK-LABEL: @test_mm_cvtps_epu32
3969   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3970   return _mm_cvtps_epu32(__A);
3971 }
test_mm_mask_cvtps_epu32(__m128i __W,__mmask8 __U,__m128 __A)3972 __m128i test_mm_mask_cvtps_epu32(__m128i __W, __mmask8 __U, __m128 __A) {
3973   // CHECK-LABEL: @test_mm_mask_cvtps_epu32
3974   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3975   return _mm_mask_cvtps_epu32(__W,__U,__A);
3976 }
test_mm_maskz_cvtps_epu32(__mmask8 __U,__m128 __A)3977 __m128i test_mm_maskz_cvtps_epu32(__mmask8 __U, __m128 __A) {
3978   // CHECK-LABEL: @test_mm_maskz_cvtps_epu32
3979   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3980   return _mm_maskz_cvtps_epu32(__U,__A);
3981 }
test_mm256_cvtps_epu32(__m256 __A)3982 __m256i test_mm256_cvtps_epu32(__m256 __A) {
3983   // CHECK-LABEL: @test_mm256_cvtps_epu32
3984   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3985   return _mm256_cvtps_epu32(__A);
3986 }
test_mm256_mask_cvtps_epu32(__m256i __W,__mmask8 __U,__m256 __A)3987 __m256i test_mm256_mask_cvtps_epu32(__m256i __W, __mmask8 __U, __m256 __A) {
3988   // CHECK-LABEL: @test_mm256_mask_cvtps_epu32
3989   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3990   return _mm256_mask_cvtps_epu32(__W,__U,__A);
3991 }
test_mm256_maskz_cvtps_epu32(__mmask8 __U,__m256 __A)3992 __m256i test_mm256_maskz_cvtps_epu32(__mmask8 __U, __m256 __A) {
3993   // CHECK-LABEL: @test_mm256_maskz_cvtps_epu32
3994   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3995   return _mm256_maskz_cvtps_epu32(__U,__A);
3996 }
test_mm_mask_cvttpd_epi32(__m128i __W,__mmask8 __U,__m128d __A)3997 __m128i test_mm_mask_cvttpd_epi32(__m128i __W, __mmask8 __U, __m128d __A) {
3998   // CHECK-LABEL: @test_mm_mask_cvttpd_epi32
3999   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.128
4000   return _mm_mask_cvttpd_epi32(__W,__U,__A);
4001 }
test_mm_maskz_cvttpd_epi32(__mmask8 __U,__m128d __A)4002 __m128i test_mm_maskz_cvttpd_epi32(__mmask8 __U, __m128d __A) {
4003   // CHECK-LABEL: @test_mm_maskz_cvttpd_epi32
4004   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.128
4005   return _mm_maskz_cvttpd_epi32(__U,__A);
4006 }
test_mm256_mask_cvttpd_epi32(__m128i __W,__mmask8 __U,__m256d __A)4007 __m128i test_mm256_mask_cvttpd_epi32(__m128i __W, __mmask8 __U, __m256d __A) {
4008   // CHECK-LABEL: @test_mm256_mask_cvttpd_epi32
4009   // CHECK: @llvm.x86.avx.cvtt.pd2dq.256
4010   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
4011   return _mm256_mask_cvttpd_epi32(__W,__U,__A);
4012 }
test_mm256_maskz_cvttpd_epi32(__mmask8 __U,__m256d __A)4013 __m128i test_mm256_maskz_cvttpd_epi32(__mmask8 __U, __m256d __A) {
4014   // CHECK-LABEL: @test_mm256_maskz_cvttpd_epi32
4015   // CHECK: @llvm.x86.avx.cvtt.pd2dq.256
4016   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
4017   return _mm256_maskz_cvttpd_epi32(__U,__A);
4018 }
test_mm_cvttpd_epu32(__m128d __A)4019 __m128i test_mm_cvttpd_epu32(__m128d __A) {
4020   // CHECK-LABEL: @test_mm_cvttpd_epu32
4021   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
4022   return _mm_cvttpd_epu32(__A);
4023 }
test_mm_mask_cvttpd_epu32(__m128i __W,__mmask8 __U,__m128d __A)4024 __m128i test_mm_mask_cvttpd_epu32(__m128i __W, __mmask8 __U, __m128d __A) {
4025   // CHECK-LABEL: @test_mm_mask_cvttpd_epu32
4026   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
4027   return _mm_mask_cvttpd_epu32(__W,__U,__A);
4028 }
test_mm_maskz_cvttpd_epu32(__mmask8 __U,__m128d __A)4029 __m128i test_mm_maskz_cvttpd_epu32(__mmask8 __U, __m128d __A) {
4030   // CHECK-LABEL: @test_mm_maskz_cvttpd_epu32
4031   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
4032   return _mm_maskz_cvttpd_epu32(__U,__A);
4033 }
test_mm256_cvttpd_epu32(__m256d __A)4034 __m128i test_mm256_cvttpd_epu32(__m256d __A) {
4035   // CHECK-LABEL: @test_mm256_cvttpd_epu32
4036   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
4037   return _mm256_cvttpd_epu32(__A);
4038 }
test_mm256_mask_cvttpd_epu32(__m128i __W,__mmask8 __U,__m256d __A)4039 __m128i test_mm256_mask_cvttpd_epu32(__m128i __W, __mmask8 __U, __m256d __A) {
4040   // CHECK-LABEL: @test_mm256_mask_cvttpd_epu32
4041   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
4042   return _mm256_mask_cvttpd_epu32(__W,__U,__A);
4043 }
test_mm256_maskz_cvttpd_epu32(__mmask8 __U,__m256d __A)4044 __m128i test_mm256_maskz_cvttpd_epu32(__mmask8 __U, __m256d __A) {
4045   // CHECK-LABEL: @test_mm256_maskz_cvttpd_epu32
4046   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
4047   return _mm256_maskz_cvttpd_epu32(__U,__A);
4048 }
test_mm_mask_cvttps_epi32(__m128i __W,__mmask8 __U,__m128 __A)4049 __m128i test_mm_mask_cvttps_epi32(__m128i __W, __mmask8 __U, __m128 __A) {
4050   // CHECK-LABEL: @test_mm_mask_cvttps_epi32
4051   // CHECK: @llvm.x86.sse2.cvttps2dq
4052   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
4053   return _mm_mask_cvttps_epi32(__W,__U,__A);
4054 }
test_mm_maskz_cvttps_epi32(__mmask8 __U,__m128 __A)4055 __m128i test_mm_maskz_cvttps_epi32(__mmask8 __U, __m128 __A) {
4056   // CHECK-LABEL: @test_mm_maskz_cvttps_epi32
4057   // CHECK: @llvm.x86.sse2.cvttps2dq
4058   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
4059   return _mm_maskz_cvttps_epi32(__U,__A);
4060 }
test_mm256_mask_cvttps_epi32(__m256i __W,__mmask8 __U,__m256 __A)4061 __m256i test_mm256_mask_cvttps_epi32(__m256i __W, __mmask8 __U, __m256 __A) {
4062   // CHECK-LABEL: @test_mm256_mask_cvttps_epi32
4063   // CHECK: @llvm.x86.avx.cvtt.ps2dq.256
4064   // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
4065   return _mm256_mask_cvttps_epi32(__W,__U,__A);
4066 }
test_mm256_maskz_cvttps_epi32(__mmask8 __U,__m256 __A)4067 __m256i test_mm256_maskz_cvttps_epi32(__mmask8 __U, __m256 __A) {
4068   // CHECK-LABEL: @test_mm256_maskz_cvttps_epi32
4069   // CHECK: @llvm.x86.avx.cvtt.ps2dq.256
4070   // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
4071   return _mm256_maskz_cvttps_epi32(__U,__A);
4072 }
test_mm_cvttps_epu32(__m128 __A)4073 __m128i test_mm_cvttps_epu32(__m128 __A) {
4074   // CHECK-LABEL: @test_mm_cvttps_epu32
4075   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
4076   return _mm_cvttps_epu32(__A);
4077 }
test_mm_mask_cvttps_epu32(__m128i __W,__mmask8 __U,__m128 __A)4078 __m128i test_mm_mask_cvttps_epu32(__m128i __W, __mmask8 __U, __m128 __A) {
4079   // CHECK-LABEL: @test_mm_mask_cvttps_epu32
4080   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
4081   return _mm_mask_cvttps_epu32(__W,__U,__A);
4082 }
test_mm_maskz_cvttps_epu32(__mmask8 __U,__m128 __A)4083 __m128i test_mm_maskz_cvttps_epu32(__mmask8 __U, __m128 __A) {
4084   // CHECK-LABEL: @test_mm_maskz_cvttps_epu32
4085   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
4086   return _mm_maskz_cvttps_epu32(__U,__A);
4087 }
test_mm256_cvttps_epu32(__m256 __A)4088 __m256i test_mm256_cvttps_epu32(__m256 __A) {
4089   // CHECK-LABEL: @test_mm256_cvttps_epu32
4090   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
4091   return _mm256_cvttps_epu32(__A);
4092 }
test_mm256_mask_cvttps_epu32(__m256i __W,__mmask8 __U,__m256 __A)4093 __m256i test_mm256_mask_cvttps_epu32(__m256i __W, __mmask8 __U, __m256 __A) {
4094   // CHECK-LABEL: @test_mm256_mask_cvttps_epu32
4095   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
4096   return _mm256_mask_cvttps_epu32(__W,__U,__A);
4097 }
test_mm256_maskz_cvttps_epu32(__mmask8 __U,__m256 __A)4098 __m256i test_mm256_maskz_cvttps_epu32(__mmask8 __U, __m256 __A) {
4099   // CHECK-LABEL: @test_mm256_maskz_cvttps_epu32
4100   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
4101   return _mm256_maskz_cvttps_epu32(__U,__A);
4102 }
test_mm_cvtepu32_pd(__m128i __A)4103 __m128d test_mm_cvtepu32_pd(__m128i __A) {
4104   // CHECK-LABEL: @test_mm_cvtepu32_pd
4105   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
4106   // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
4107   return _mm_cvtepu32_pd(__A);
4108 }
test_mm_mask_cvtepu32_pd(__m128d __W,__mmask8 __U,__m128i __A)4109 __m128d test_mm_mask_cvtepu32_pd(__m128d __W, __mmask8 __U, __m128i __A) {
4110   // CHECK-LABEL: @test_mm_mask_cvtepu32_pd
4111   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
4112   // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
4113   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
4114   return _mm_mask_cvtepu32_pd(__W,__U,__A);
4115 }
test_mm_maskz_cvtepu32_pd(__mmask8 __U,__m128i __A)4116 __m128d test_mm_maskz_cvtepu32_pd(__mmask8 __U, __m128i __A) {
4117   // CHECK-LABEL: @test_mm_maskz_cvtepu32_pd
4118   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
4119   // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
4120   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
4121   return _mm_maskz_cvtepu32_pd(__U,__A);
4122 }
test_mm256_cvtepu32_pd(__m128i __A)4123 __m256d test_mm256_cvtepu32_pd(__m128i __A) {
4124   // CHECK-LABEL: @test_mm256_cvtepu32_pd
4125   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4126   return _mm256_cvtepu32_pd(__A);
4127 }
test_mm256_mask_cvtepu32_pd(__m256d __W,__mmask8 __U,__m128i __A)4128 __m256d test_mm256_mask_cvtepu32_pd(__m256d __W, __mmask8 __U, __m128i __A) {
4129   // CHECK-LABEL: @test_mm256_mask_cvtepu32_pd
4130   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4131   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
4132   return _mm256_mask_cvtepu32_pd(__W,__U,__A);
4133 }
test_mm256_maskz_cvtepu32_pd(__mmask8 __U,__m128i __A)4134 __m256d test_mm256_maskz_cvtepu32_pd(__mmask8 __U, __m128i __A) {
4135   // CHECK-LABEL: @test_mm256_maskz_cvtepu32_pd
4136   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4137   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
4138   return _mm256_maskz_cvtepu32_pd(__U,__A);
4139 }
test_mm_cvtepu32_ps(__m128i __A)4140 __m128 test_mm_cvtepu32_ps(__m128i __A) {
4141   // CHECK-LABEL: @test_mm_cvtepu32_ps
4142   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4143   return _mm_cvtepu32_ps(__A);
4144 }
test_mm_mask_cvtepu32_ps(__m128 __W,__mmask8 __U,__m128i __A)4145 __m128 test_mm_mask_cvtepu32_ps(__m128 __W, __mmask8 __U, __m128i __A) {
4146   // CHECK-LABEL: @test_mm_mask_cvtepu32_ps
4147   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4148   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4149   return _mm_mask_cvtepu32_ps(__W,__U,__A);
4150 }
test_mm_maskz_cvtepu32_ps(__mmask8 __U,__m128i __A)4151 __m128 test_mm_maskz_cvtepu32_ps(__mmask8 __U, __m128i __A) {
4152   // CHECK-LABEL: @test_mm_maskz_cvtepu32_ps
4153   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4154   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4155   return _mm_maskz_cvtepu32_ps(__U,__A);
4156 }
test_mm256_cvtepu32_ps(__m256i __A)4157 __m256 test_mm256_cvtepu32_ps(__m256i __A) {
4158   // CHECK-LABEL: @test_mm256_cvtepu32_ps
4159   // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4160   return _mm256_cvtepu32_ps(__A);
4161 }
test_mm256_mask_cvtepu32_ps(__m256 __W,__mmask8 __U,__m256i __A)4162 __m256 test_mm256_mask_cvtepu32_ps(__m256 __W, __mmask8 __U, __m256i __A) {
4163   // CHECK-LABEL: @test_mm256_mask_cvtepu32_ps
4164   // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4165   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4166   return _mm256_mask_cvtepu32_ps(__W,__U,__A);
4167 }
test_mm256_maskz_cvtepu32_ps(__mmask8 __U,__m256i __A)4168 __m256 test_mm256_maskz_cvtepu32_ps(__mmask8 __U, __m256i __A) {
4169   // CHECK-LABEL: @test_mm256_maskz_cvtepu32_ps
4170   // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4171   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4172   return _mm256_maskz_cvtepu32_ps(__U,__A);
4173 }
test_mm_mask_div_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4174 __m128d test_mm_mask_div_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4175   // CHECK-LABEL: @test_mm_mask_div_pd
4176   // CHECK: fdiv <2 x double> %{{.*}}, %{{.*}}
4177   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4178   return _mm_mask_div_pd(__W,__U,__A,__B);
4179 }
test_mm_maskz_div_pd(__mmask8 __U,__m128d __A,__m128d __B)4180 __m128d test_mm_maskz_div_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4181   // CHECK-LABEL: @test_mm_maskz_div_pd
4182   // CHECK: fdiv <2 x double> %{{.*}}, %{{.*}}
4183   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4184   return _mm_maskz_div_pd(__U,__A,__B);
4185 }
test_mm256_mask_div_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4186 __m256d test_mm256_mask_div_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4187   // CHECK-LABEL: @test_mm256_mask_div_pd
4188   // CHECK: fdiv <4 x double> %{{.*}}, %{{.*}}
4189   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4190   return _mm256_mask_div_pd(__W,__U,__A,__B);
4191 }
test_mm256_maskz_div_pd(__mmask8 __U,__m256d __A,__m256d __B)4192 __m256d test_mm256_maskz_div_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4193   // CHECK-LABEL: @test_mm256_maskz_div_pd
4194   // CHECK: fdiv <4 x double> %{{.*}}, %{{.*}}
4195   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4196   return _mm256_maskz_div_pd(__U,__A,__B);
4197 }
test_mm_mask_div_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4198 __m128 test_mm_mask_div_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4199   // CHECK-LABEL: @test_mm_mask_div_ps
4200   // CHECK: fdiv <4 x float> %{{.*}}, %{{.*}}
4201   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4202   return _mm_mask_div_ps(__W,__U,__A,__B);
4203 }
test_mm_maskz_div_ps(__mmask8 __U,__m128 __A,__m128 __B)4204 __m128 test_mm_maskz_div_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4205   // CHECK-LABEL: @test_mm_maskz_div_ps
4206   // CHECK: fdiv <4 x float> %{{.*}}, %{{.*}}
4207   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4208   return _mm_maskz_div_ps(__U,__A,__B);
4209 }
test_mm256_mask_div_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4210 __m256 test_mm256_mask_div_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4211   // CHECK-LABEL: @test_mm256_mask_div_ps
4212   // CHECK: fdiv <8 x float> %{{.*}}, %{{.*}}
4213   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4214   return _mm256_mask_div_ps(__W,__U,__A,__B);
4215 }
test_mm256_maskz_div_ps(__mmask8 __U,__m256 __A,__m256 __B)4216 __m256 test_mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4217   // CHECK-LABEL: @test_mm256_maskz_div_ps
4218   // CHECK: fdiv <8 x float> %{{.*}}, %{{.*}}
4219   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4220   return _mm256_maskz_div_ps(__U,__A,__B);
4221 }
test_mm_mask_expand_pd(__m128d __W,__mmask8 __U,__m128d __A)4222 __m128d test_mm_mask_expand_pd(__m128d __W, __mmask8 __U, __m128d __A) {
4223   // CHECK-LABEL: @test_mm_mask_expand_pd
4224   // CHECK: @llvm.x86.avx512.mask.expand
4225   return _mm_mask_expand_pd(__W,__U,__A);
4226 }
test_mm_maskz_expand_pd(__mmask8 __U,__m128d __A)4227 __m128d test_mm_maskz_expand_pd(__mmask8 __U, __m128d __A) {
4228   // CHECK-LABEL: @test_mm_maskz_expand_pd
4229   // CHECK: @llvm.x86.avx512.mask.expand
4230   return _mm_maskz_expand_pd(__U,__A);
4231 }
test_mm256_mask_expand_pd(__m256d __W,__mmask8 __U,__m256d __A)4232 __m256d test_mm256_mask_expand_pd(__m256d __W, __mmask8 __U, __m256d __A) {
4233   // CHECK-LABEL: @test_mm256_mask_expand_pd
4234   // CHECK: @llvm.x86.avx512.mask.expand
4235   return _mm256_mask_expand_pd(__W,__U,__A);
4236 }
test_mm256_maskz_expand_pd(__mmask8 __U,__m256d __A)4237 __m256d test_mm256_maskz_expand_pd(__mmask8 __U, __m256d __A) {
4238   // CHECK-LABEL: @test_mm256_maskz_expand_pd
4239   // CHECK: @llvm.x86.avx512.mask.expand
4240   return _mm256_maskz_expand_pd(__U,__A);
4241 }
test_mm_mask_expand_epi64(__m128i __W,__mmask8 __U,__m128i __A)4242 __m128i test_mm_mask_expand_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
4243   // CHECK-LABEL: @test_mm_mask_expand_epi64
4244   // CHECK: @llvm.x86.avx512.mask.expand
4245   return _mm_mask_expand_epi64(__W,__U,__A);
4246 }
test_mm_maskz_expand_epi64(__mmask8 __U,__m128i __A)4247 __m128i test_mm_maskz_expand_epi64(__mmask8 __U, __m128i __A) {
4248   // CHECK-LABEL: @test_mm_maskz_expand_epi64
4249   // CHECK: @llvm.x86.avx512.mask.expand
4250   return _mm_maskz_expand_epi64(__U,__A);
4251 }
test_mm256_mask_expand_epi64(__m256i __W,__mmask8 __U,__m256i __A)4252 __m256i test_mm256_mask_expand_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
4253   // CHECK-LABEL: @test_mm256_mask_expand_epi64
4254   // CHECK: @llvm.x86.avx512.mask.expand
4255   return _mm256_mask_expand_epi64(__W,__U,__A);
4256 }
test_mm256_maskz_expand_epi64(__mmask8 __U,__m256i __A)4257 __m256i test_mm256_maskz_expand_epi64(__mmask8 __U, __m256i __A) {
4258   // CHECK-LABEL: @test_mm256_maskz_expand_epi64
4259   // CHECK: @llvm.x86.avx512.mask.expand
4260   return _mm256_maskz_expand_epi64(__U,__A);
4261 }
test_mm_mask_expandloadu_pd(__m128d __W,__mmask8 __U,void const * __P)4262 __m128d test_mm_mask_expandloadu_pd(__m128d __W, __mmask8 __U, void const *__P) {
4263   // CHECK-LABEL: @test_mm_mask_expandloadu_pd
4264   // CHECK: @llvm.masked.expandload.v2f64(double* %{{.*}}, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
4265   return _mm_mask_expandloadu_pd(__W,__U,__P);
4266 }
test_mm_maskz_expandloadu_pd(__mmask8 __U,void const * __P)4267 __m128d test_mm_maskz_expandloadu_pd(__mmask8 __U, void const *__P) {
4268   // CHECK-LABEL: @test_mm_maskz_expandloadu_pd
4269   // CHECK: @llvm.masked.expandload.v2f64(double* %{{.*}}, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
4270   return _mm_maskz_expandloadu_pd(__U,__P);
4271 }
test_mm256_mask_expandloadu_pd(__m256d __W,__mmask8 __U,void const * __P)4272 __m256d test_mm256_mask_expandloadu_pd(__m256d __W, __mmask8 __U, void const *__P) {
4273   // CHECK-LABEL: @test_mm256_mask_expandloadu_pd
4274   // CHECK: @llvm.masked.expandload.v4f64(double* %{{.*}}, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
4275   return _mm256_mask_expandloadu_pd(__W,__U,__P);
4276 }
test_mm256_maskz_expandloadu_pd(__mmask8 __U,void const * __P)4277 __m256d test_mm256_maskz_expandloadu_pd(__mmask8 __U, void const *__P) {
4278   // CHECK-LABEL: @test_mm256_maskz_expandloadu_pd
4279   // CHECK: @llvm.masked.expandload.v4f64(double* %{{.*}}, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
4280   return _mm256_maskz_expandloadu_pd(__U,__P);
4281 }
test_mm_mask_expandloadu_epi64(__m128i __W,__mmask8 __U,void const * __P)4282 __m128i test_mm_mask_expandloadu_epi64(__m128i __W, __mmask8 __U, void const *__P) {
4283   // CHECK-LABEL: @test_mm_mask_expandloadu_epi64
4284   // CHECK: @llvm.masked.expandload.v2i64(i64* %{{.*}}, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
4285   return _mm_mask_expandloadu_epi64(__W,__U,__P);
4286 }
test_mm_maskz_expandloadu_epi64(__mmask8 __U,void const * __P)4287 __m128i test_mm_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) {
4288   // CHECK-LABEL: @test_mm_maskz_expandloadu_epi64
4289   // CHECK: @llvm.masked.expandload.v2i64(i64* %{{.*}}, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
4290   return _mm_maskz_expandloadu_epi64(__U,__P);
4291 }
test_mm256_mask_expandloadu_epi64(__m256i __W,__mmask8 __U,void const * __P)4292 __m256i test_mm256_mask_expandloadu_epi64(__m256i __W, __mmask8 __U,   void const *__P) {
4293   // CHECK-LABEL: @test_mm256_mask_expandloadu_epi64
4294   // CHECK: @llvm.masked.expandload.v4i64(i64* %{{.*}}, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
4295   return _mm256_mask_expandloadu_epi64(__W,__U,__P);
4296 }
test_mm256_maskz_expandloadu_epi64(__mmask8 __U,void const * __P)4297 __m256i test_mm256_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) {
4298   // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi64
4299   // CHECK: @llvm.masked.expandload.v4i64(i64* %{{.*}}, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
4300   return _mm256_maskz_expandloadu_epi64(__U,__P);
4301 }
test_mm_mask_expandloadu_ps(__m128 __W,__mmask8 __U,void const * __P)4302 __m128 test_mm_mask_expandloadu_ps(__m128 __W, __mmask8 __U, void const *__P) {
4303   // CHECK-LABEL: @test_mm_mask_expandloadu_ps
4304   // CHECK: @llvm.masked.expandload.v4f32(float* %{{.*}}, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
4305   return _mm_mask_expandloadu_ps(__W,__U,__P);
4306 }
test_mm_maskz_expandloadu_ps(__mmask8 __U,void const * __P)4307 __m128 test_mm_maskz_expandloadu_ps(__mmask8 __U, void const *__P) {
4308   // CHECK-LABEL: @test_mm_maskz_expandloadu_ps
4309   // CHECK: @llvm.masked.expandload.v4f32(float* %{{.*}}, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
4310   return _mm_maskz_expandloadu_ps(__U,__P);
4311 }
test_mm256_mask_expandloadu_ps(__m256 __W,__mmask8 __U,void const * __P)4312 __m256 test_mm256_mask_expandloadu_ps(__m256 __W, __mmask8 __U, void const *__P) {
4313   // CHECK-LABEL: @test_mm256_mask_expandloadu_ps
4314   // CHECK: @llvm.masked.expandload.v8f32(float* %{{.*}}, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
4315   return _mm256_mask_expandloadu_ps(__W,__U,__P);
4316 }
test_mm256_maskz_expandloadu_ps(__mmask8 __U,void const * __P)4317 __m256 test_mm256_maskz_expandloadu_ps(__mmask8 __U, void const *__P) {
4318   // CHECK-LABEL: @test_mm256_maskz_expandloadu_ps
4319   // CHECK: @llvm.masked.expandload.v8f32(float* %{{.*}}, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
4320   return _mm256_maskz_expandloadu_ps(__U,__P);
4321 }
test_mm_mask_expandloadu_epi32(__m128i __W,__mmask8 __U,void const * __P)4322 __m128i test_mm_mask_expandloadu_epi32(__m128i __W, __mmask8 __U, void const *__P) {
4323   // CHECK-LABEL: @test_mm_mask_expandloadu_epi32
4324   // CHECK: @llvm.masked.expandload.v4i32(i32* %{{.*}}, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
4325   return _mm_mask_expandloadu_epi32(__W,__U,__P);
4326 }
test_mm_maskz_expandloadu_epi32(__mmask8 __U,void const * __P)4327 __m128i test_mm_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) {
4328   // CHECK-LABEL: @test_mm_maskz_expandloadu_epi32
4329   // CHECK: @llvm.masked.expandload.v4i32(i32* %{{.*}}, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
4330   return _mm_maskz_expandloadu_epi32(__U,__P);
4331 }
test_mm256_mask_expandloadu_epi32(__m256i __W,__mmask8 __U,void const * __P)4332 __m256i test_mm256_mask_expandloadu_epi32(__m256i __W, __mmask8 __U,   void const *__P) {
4333   // CHECK-LABEL: @test_mm256_mask_expandloadu_epi32
4334   // CHECK: @llvm.masked.expandload.v8i32(i32* %{{.*}}, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
4335   return _mm256_mask_expandloadu_epi32(__W,__U,__P);
4336 }
test_mm256_maskz_expandloadu_epi32(__mmask8 __U,void const * __P)4337 __m256i test_mm256_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) {
4338   // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi32
4339   // CHECK: @llvm.masked.expandload.v8i32(i32* %{{.*}}, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
4340   return _mm256_maskz_expandloadu_epi32(__U,__P);
4341 }
test_mm_mask_expand_ps(__m128 __W,__mmask8 __U,__m128 __A)4342 __m128 test_mm_mask_expand_ps(__m128 __W, __mmask8 __U, __m128 __A) {
4343   // CHECK-LABEL: @test_mm_mask_expand_ps
4344   // CHECK: @llvm.x86.avx512.mask.expand
4345   return _mm_mask_expand_ps(__W,__U,__A);
4346 }
test_mm_maskz_expand_ps(__mmask8 __U,__m128 __A)4347 __m128 test_mm_maskz_expand_ps(__mmask8 __U, __m128 __A) {
4348   // CHECK-LABEL: @test_mm_maskz_expand_ps
4349   // CHECK: @llvm.x86.avx512.mask.expand
4350   return _mm_maskz_expand_ps(__U,__A);
4351 }
test_mm256_mask_expand_ps(__m256 __W,__mmask8 __U,__m256 __A)4352 __m256 test_mm256_mask_expand_ps(__m256 __W, __mmask8 __U, __m256 __A) {
4353   // CHECK-LABEL: @test_mm256_mask_expand_ps
4354   // CHECK: @llvm.x86.avx512.mask.expand
4355   return _mm256_mask_expand_ps(__W,__U,__A);
4356 }
test_mm256_maskz_expand_ps(__mmask8 __U,__m256 __A)4357 __m256 test_mm256_maskz_expand_ps(__mmask8 __U, __m256 __A) {
4358   // CHECK-LABEL: @test_mm256_maskz_expand_ps
4359   // CHECK: @llvm.x86.avx512.mask.expand
4360   return _mm256_maskz_expand_ps(__U,__A);
4361 }
test_mm_mask_expand_epi32(__m128i __W,__mmask8 __U,__m128i __A)4362 __m128i test_mm_mask_expand_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
4363   // CHECK-LABEL: @test_mm_mask_expand_epi32
4364   // CHECK: @llvm.x86.avx512.mask.expand
4365   return _mm_mask_expand_epi32(__W,__U,__A);
4366 }
test_mm_maskz_expand_epi32(__mmask8 __U,__m128i __A)4367 __m128i test_mm_maskz_expand_epi32(__mmask8 __U, __m128i __A) {
4368   // CHECK-LABEL: @test_mm_maskz_expand_epi32
4369   // CHECK: @llvm.x86.avx512.mask.expand
4370   return _mm_maskz_expand_epi32(__U,__A);
4371 }
test_mm256_mask_expand_epi32(__m256i __W,__mmask8 __U,__m256i __A)4372 __m256i test_mm256_mask_expand_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
4373   // CHECK-LABEL: @test_mm256_mask_expand_epi32
4374   // CHECK: @llvm.x86.avx512.mask.expand
4375   return _mm256_mask_expand_epi32(__W,__U,__A);
4376 }
test_mm256_maskz_expand_epi32(__mmask8 __U,__m256i __A)4377 __m256i test_mm256_maskz_expand_epi32(__mmask8 __U, __m256i __A) {
4378   // CHECK-LABEL: @test_mm256_maskz_expand_epi32
4379   // CHECK: @llvm.x86.avx512.mask.expand
4380   return _mm256_maskz_expand_epi32(__U,__A);
4381 }
test_mm_getexp_pd(__m128d __A)4382 __m128d test_mm_getexp_pd(__m128d __A) {
4383   // CHECK-LABEL: @test_mm_getexp_pd
4384   // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4385   return _mm_getexp_pd(__A);
4386 }
test_mm_mask_getexp_pd(__m128d __W,__mmask8 __U,__m128d __A)4387 __m128d test_mm_mask_getexp_pd(__m128d __W, __mmask8 __U, __m128d __A) {
4388   // CHECK-LABEL: @test_mm_mask_getexp_pd
4389   // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4390   return _mm_mask_getexp_pd(__W,__U,__A);
4391 }
test_mm_maskz_getexp_pd(__mmask8 __U,__m128d __A)4392 __m128d test_mm_maskz_getexp_pd(__mmask8 __U, __m128d __A) {
4393   // CHECK-LABEL: @test_mm_maskz_getexp_pd
4394   // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4395   return _mm_maskz_getexp_pd(__U,__A);
4396 }
test_mm256_getexp_pd(__m256d __A)4397 __m256d test_mm256_getexp_pd(__m256d __A) {
4398   // CHECK-LABEL: @test_mm256_getexp_pd
4399   // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4400   return _mm256_getexp_pd(__A);
4401 }
test_mm256_mask_getexp_pd(__m256d __W,__mmask8 __U,__m256d __A)4402 __m256d test_mm256_mask_getexp_pd(__m256d __W, __mmask8 __U, __m256d __A) {
4403   // CHECK-LABEL: @test_mm256_mask_getexp_pd
4404   // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4405   return _mm256_mask_getexp_pd(__W,__U,__A);
4406 }
test_mm256_maskz_getexp_pd(__mmask8 __U,__m256d __A)4407 __m256d test_mm256_maskz_getexp_pd(__mmask8 __U, __m256d __A) {
4408   // CHECK-LABEL: @test_mm256_maskz_getexp_pd
4409   // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4410   return _mm256_maskz_getexp_pd(__U,__A);
4411 }
test_mm_getexp_ps(__m128 __A)4412 __m128 test_mm_getexp_ps(__m128 __A) {
4413   // CHECK-LABEL: @test_mm_getexp_ps
4414   // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4415   return _mm_getexp_ps(__A);
4416 }
test_mm_mask_getexp_ps(__m128 __W,__mmask8 __U,__m128 __A)4417 __m128 test_mm_mask_getexp_ps(__m128 __W, __mmask8 __U, __m128 __A) {
4418   // CHECK-LABEL: @test_mm_mask_getexp_ps
4419   // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4420   return _mm_mask_getexp_ps(__W,__U,__A);
4421 }
test_mm_maskz_getexp_ps(__mmask8 __U,__m128 __A)4422 __m128 test_mm_maskz_getexp_ps(__mmask8 __U, __m128 __A) {
4423   // CHECK-LABEL: @test_mm_maskz_getexp_ps
4424   // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4425   return _mm_maskz_getexp_ps(__U,__A);
4426 }
test_mm256_getexp_ps(__m256 __A)4427 __m256 test_mm256_getexp_ps(__m256 __A) {
4428   // CHECK-LABEL: @test_mm256_getexp_ps
4429   // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4430   return _mm256_getexp_ps(__A);
4431 }
test_mm256_mask_getexp_ps(__m256 __W,__mmask8 __U,__m256 __A)4432 __m256 test_mm256_mask_getexp_ps(__m256 __W, __mmask8 __U, __m256 __A) {
4433   // CHECK-LABEL: @test_mm256_mask_getexp_ps
4434   // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4435   return _mm256_mask_getexp_ps(__W,__U,__A);
4436 }
test_mm256_maskz_getexp_ps(__mmask8 __U,__m256 __A)4437 __m256 test_mm256_maskz_getexp_ps(__mmask8 __U, __m256 __A) {
4438   // CHECK-LABEL: @test_mm256_maskz_getexp_ps
4439   // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4440   return _mm256_maskz_getexp_ps(__U,__A);
4441 }
test_mm_mask_max_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4442 __m128d test_mm_mask_max_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4443   // CHECK-LABEL: @test_mm_mask_max_pd
4444   // CHECK: @llvm.x86.sse2.max.pd
4445   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4446   return _mm_mask_max_pd(__W,__U,__A,__B);
4447 }
test_mm_maskz_max_pd(__mmask8 __U,__m128d __A,__m128d __B)4448 __m128d test_mm_maskz_max_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4449   // CHECK-LABEL: @test_mm_maskz_max_pd
4450   // CHECK: @llvm.x86.sse2.max.pd
4451   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4452   return _mm_maskz_max_pd(__U,__A,__B);
4453 }
test_mm256_mask_max_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4454 __m256d test_mm256_mask_max_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4455   // CHECK-LABEL: @test_mm256_mask_max_pd
4456   // CHECK: @llvm.x86.avx.max.pd.256
4457   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4458   return _mm256_mask_max_pd(__W,__U,__A,__B);
4459 }
test_mm256_maskz_max_pd(__mmask8 __U,__m256d __A,__m256d __B)4460 __m256d test_mm256_maskz_max_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4461   // CHECK-LABEL: @test_mm256_maskz_max_pd
4462   // CHECK: @llvm.x86.avx.max.pd.256
4463   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4464   return _mm256_maskz_max_pd(__U,__A,__B);
4465 }
test_mm_mask_max_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4466 __m128 test_mm_mask_max_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4467   // CHECK-LABEL: @test_mm_mask_max_ps
4468   // CHECK: @llvm.x86.sse.max.ps
4469   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4470   return _mm_mask_max_ps(__W,__U,__A,__B);
4471 }
test_mm_maskz_max_ps(__mmask8 __U,__m128 __A,__m128 __B)4472 __m128 test_mm_maskz_max_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4473   // CHECK-LABEL: @test_mm_maskz_max_ps
4474   // CHECK: @llvm.x86.sse.max.ps
4475   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4476   return _mm_maskz_max_ps(__U,__A,__B);
4477 }
test_mm256_mask_max_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4478 __m256 test_mm256_mask_max_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4479   // CHECK-LABEL: @test_mm256_mask_max_ps
4480   // CHECK: @llvm.x86.avx.max.ps.256
4481   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4482   return _mm256_mask_max_ps(__W,__U,__A,__B);
4483 }
test_mm256_maskz_max_ps(__mmask8 __U,__m256 __A,__m256 __B)4484 __m256 test_mm256_maskz_max_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4485   // CHECK-LABEL: @test_mm256_maskz_max_ps
4486   // CHECK: @llvm.x86.avx.max.ps.256
4487   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4488   return _mm256_maskz_max_ps(__U,__A,__B);
4489 }
test_mm_mask_min_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4490 __m128d test_mm_mask_min_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4491   // CHECK-LABEL: @test_mm_mask_min_pd
4492   // CHECK: @llvm.x86.sse2.min.pd
4493   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4494   return _mm_mask_min_pd(__W,__U,__A,__B);
4495 }
test_mm_maskz_min_pd(__mmask8 __U,__m128d __A,__m128d __B)4496 __m128d test_mm_maskz_min_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4497   // CHECK-LABEL: @test_mm_maskz_min_pd
4498   // CHECK: @llvm.x86.sse2.min.pd
4499   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4500   return _mm_maskz_min_pd(__U,__A,__B);
4501 }
test_mm256_mask_min_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4502 __m256d test_mm256_mask_min_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4503   // CHECK-LABEL: @test_mm256_mask_min_pd
4504   // CHECK: @llvm.x86.avx.min.pd.256
4505   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4506   return _mm256_mask_min_pd(__W,__U,__A,__B);
4507 }
test_mm256_maskz_min_pd(__mmask8 __U,__m256d __A,__m256d __B)4508 __m256d test_mm256_maskz_min_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4509   // CHECK-LABEL: @test_mm256_maskz_min_pd
4510   // CHECK: @llvm.x86.avx.min.pd.256
4511   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4512   return _mm256_maskz_min_pd(__U,__A,__B);
4513 }
test_mm_mask_min_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4514 __m128 test_mm_mask_min_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4515   // CHECK-LABEL: @test_mm_mask_min_ps
4516   // CHECK: @llvm.x86.sse.min.ps
4517   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4518   return _mm_mask_min_ps(__W,__U,__A,__B);
4519 }
test_mm_maskz_min_ps(__mmask8 __U,__m128 __A,__m128 __B)4520 __m128 test_mm_maskz_min_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4521   // CHECK-LABEL: @test_mm_maskz_min_ps
4522   // CHECK: @llvm.x86.sse.min.ps
4523   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4524   return _mm_maskz_min_ps(__U,__A,__B);
4525 }
test_mm256_mask_min_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4526 __m256 test_mm256_mask_min_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4527   // CHECK-LABEL: @test_mm256_mask_min_ps
4528   // CHECK: @llvm.x86.avx.min.ps.256
4529   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4530   return _mm256_mask_min_ps(__W,__U,__A,__B);
4531 }
test_mm256_maskz_min_ps(__mmask8 __U,__m256 __A,__m256 __B)4532 __m256 test_mm256_maskz_min_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4533   // CHECK-LABEL: @test_mm256_maskz_min_ps
4534   // CHECK: @llvm.x86.avx.min.ps.256
4535   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4536   return _mm256_maskz_min_ps(__U,__A,__B);
4537 }
test_mm_mask_mul_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4538 __m128d test_mm_mask_mul_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4539   // CHECK-LABEL: @test_mm_mask_mul_pd
4540   // CHECK: fmul <2 x double> %{{.*}}, %{{.*}}
4541   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4542   return _mm_mask_mul_pd(__W,__U,__A,__B);
4543 }
test_mm_maskz_mul_pd(__mmask8 __U,__m128d __A,__m128d __B)4544 __m128d test_mm_maskz_mul_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4545   // CHECK-LABEL: @test_mm_maskz_mul_pd
4546   // CHECK: fmul <2 x double> %{{.*}}, %{{.*}}
4547   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4548   return _mm_maskz_mul_pd(__U,__A,__B);
4549 }
test_mm256_mask_mul_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4550 __m256d test_mm256_mask_mul_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4551   // CHECK-LABEL: @test_mm256_mask_mul_pd
4552   // CHECK: fmul <4 x double> %{{.*}}, %{{.*}}
4553   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4554   return _mm256_mask_mul_pd(__W,__U,__A,__B);
4555 }
test_mm256_maskz_mul_pd(__mmask8 __U,__m256d __A,__m256d __B)4556 __m256d test_mm256_maskz_mul_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4557   // CHECK-LABEL: @test_mm256_maskz_mul_pd
4558   // CHECK: fmul <4 x double> %{{.*}}, %{{.*}}
4559   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4560   return _mm256_maskz_mul_pd(__U,__A,__B);
4561 }
test_mm_mask_mul_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4562 __m128 test_mm_mask_mul_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4563   // CHECK-LABEL: @test_mm_mask_mul_ps
4564   // CHECK: fmul <4 x float> %{{.*}}, %{{.*}}
4565   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4566   return _mm_mask_mul_ps(__W,__U,__A,__B);
4567 }
test_mm_maskz_mul_ps(__mmask8 __U,__m128 __A,__m128 __B)4568 __m128 test_mm_maskz_mul_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4569   // CHECK-LABEL: @test_mm_maskz_mul_ps
4570   // CHECK: fmul <4 x float> %{{.*}}, %{{.*}}
4571   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4572   return _mm_maskz_mul_ps(__U,__A,__B);
4573 }
test_mm256_mask_mul_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4574 __m256 test_mm256_mask_mul_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4575   // CHECK-LABEL: @test_mm256_mask_mul_ps
4576   // CHECK: fmul <8 x float> %{{.*}}, %{{.*}}
4577   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4578   return _mm256_mask_mul_ps(__W,__U,__A,__B);
4579 }
test_mm256_maskz_mul_ps(__mmask8 __U,__m256 __A,__m256 __B)4580 __m256 test_mm256_maskz_mul_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4581   // CHECK-LABEL: @test_mm256_maskz_mul_ps
4582   // CHECK: fmul <8 x float> %{{.*}}, %{{.*}}
4583   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4584   return _mm256_maskz_mul_ps(__U,__A,__B);
4585 }
test_mm_mask_abs_epi32(__m128i __W,__mmask8 __U,__m128i __A)4586 __m128i test_mm_mask_abs_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
4587   // CHECK-LABEL: @test_mm_mask_abs_epi32
4588   // CHECK: [[SUB:%.*]] = sub <4 x i32> zeroinitializer, [[A:%.*]]
4589   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i32> [[A]], zeroinitializer
4590   // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[A]], <4 x i32> [[SUB]]
4591   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[SEL]] to <2 x i64>
4592   // CHECK: [[SEL:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4593   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> [[SEL]], <4 x i32> %{{.*}}
4594   return _mm_mask_abs_epi32(__W,__U,__A);
4595 }
test_mm_maskz_abs_epi32(__mmask8 __U,__m128i __A)4596 __m128i test_mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) {
4597   // CHECK-LABEL: @test_mm_maskz_abs_epi32
4598   // CHECK: [[SUB:%.*]] = sub <4 x i32> zeroinitializer, [[A:%.*]]
4599   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i32> [[A]], zeroinitializer
4600   // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[A]], <4 x i32> [[SUB]]
4601   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[SEL]] to <2 x i64>
4602   // CHECK: [[SEL:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4603   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> [[SEL]], <4 x i32> %{{.*}}
4604   return _mm_maskz_abs_epi32(__U,__A);
4605 }
test_mm256_mask_abs_epi32(__m256i __W,__mmask8 __U,__m256i __A)4606 __m256i test_mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
4607   // CHECK-LABEL: @test_mm256_mask_abs_epi32
4608   // CHECK: [[SUB:%.*]] = sub <8 x i32> zeroinitializer, [[A:%.*]]
4609   // CHECK: [[CMP:%.*]] = icmp sgt <8 x i32> [[A]], zeroinitializer
4610   // CHECK: [[SEL:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[A]], <8 x i32> [[SUB]]
4611   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[SEL]] to <4 x i64>
4612   // CHECK: [[SEL:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4613   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> [[SEL]], <8 x i32> %{{.*}}
4614   return _mm256_mask_abs_epi32(__W,__U,__A);
4615 }
test_mm256_maskz_abs_epi32(__mmask8 __U,__m256i __A)4616 __m256i test_mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) {
4617   // CHECK-LABEL: @test_mm256_maskz_abs_epi32
4618   // CHECK: [[SUB:%.*]] = sub <8 x i32> zeroinitializer, [[A:%.*]]
4619   // CHECK: [[CMP:%.*]] = icmp sgt <8 x i32> [[A]], zeroinitializer
4620   // CHECK: [[SEL:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[A]], <8 x i32> [[SUB]]
4621   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[SEL]] to <4 x i64>
4622   // CHECK: [[SEL:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4623   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> [[SEL]], <8 x i32> %{{.*}}
4624   return _mm256_maskz_abs_epi32(__U,__A);
4625 }
test_mm_abs_epi64(__m128i __A)4626 __m128i test_mm_abs_epi64(__m128i __A) {
4627   // CHECK-LABEL: @test_mm_abs_epi64
4628   // CHECK: [[SUB:%.*]] = sub <2 x i64> zeroinitializer, [[A:%.*]]
4629   // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[A]], zeroinitializer
4630   // CHECK: select <2 x i1> [[CMP]], <2 x i64> [[A]], <2 x i64> [[SUB]]
4631 
4632   return _mm_abs_epi64(__A);
4633 }
test_mm_mask_abs_epi64(__m128i __W,__mmask8 __U,__m128i __A)4634 __m128i test_mm_mask_abs_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
4635   // CHECK-LABEL: @test_mm_mask_abs_epi64
4636   // CHECK: [[SUB:%.*]] = sub <2 x i64> zeroinitializer, [[A:%.*]]
4637   // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[A]], zeroinitializer
4638   // CHECK: [[SEL:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[A]], <2 x i64> [[SUB]]
4639   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> [[SEL]], <2 x i64> %{{.*}}
4640 
4641   return _mm_mask_abs_epi64(__W,__U,__A);
4642 }
test_mm_maskz_abs_epi64(__mmask8 __U,__m128i __A)4643 __m128i test_mm_maskz_abs_epi64(__mmask8 __U, __m128i __A) {
4644   // CHECK-LABEL: @test_mm_maskz_abs_epi64
4645   // CHECK: [[SUB:%.*]] = sub <2 x i64> zeroinitializer, [[A:%.*]]
4646   // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[A]], zeroinitializer
4647   // CHECK: [[SEL:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[A]], <2 x i64> [[SUB]]
4648   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> [[SEL]], <2 x i64> %{{.*}}
4649   return _mm_maskz_abs_epi64(__U,__A);
4650 }
test_mm256_abs_epi64(__m256i __A)4651 __m256i test_mm256_abs_epi64(__m256i __A) {
4652   // CHECK-LABEL: @test_mm256_abs_epi64
4653   // CHECK: [[SUB:%.*]] = sub <4 x i64> zeroinitializer, [[A:%.*]]
4654   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[A]], zeroinitializer
4655   // CHECK: select <4 x i1> [[CMP]], <4 x i64> [[A]], <4 x i64> [[SUB]]
4656   return _mm256_abs_epi64(__A);
4657 }
test_mm256_mask_abs_epi64(__m256i __W,__mmask8 __U,__m256i __A)4658 __m256i test_mm256_mask_abs_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
4659   // CHECK-LABEL: @test_mm256_mask_abs_epi64
4660   // CHECK: [[SUB:%.*]] = sub <4 x i64> zeroinitializer, [[A:%.*]]
4661   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[A]], zeroinitializer
4662   // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[A]], <4 x i64> [[SUB]]
4663   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> [[SEL]], <4 x i64> %{{.*}}
4664   return _mm256_mask_abs_epi64(__W,__U,__A);
4665 }
test_mm256_maskz_abs_epi64(__mmask8 __U,__m256i __A)4666 __m256i test_mm256_maskz_abs_epi64(__mmask8 __U, __m256i __A) {
4667   // CHECK-LABEL: @test_mm256_maskz_abs_epi64
4668   // CHECK: [[SUB:%.*]] = sub <4 x i64> zeroinitializer, [[A:%.*]]
4669   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[A]], zeroinitializer
4670   // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[A]], <4 x i64> [[SUB]]
4671   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> [[SEL]], <4 x i64> %{{.*}}
4672   return _mm256_maskz_abs_epi64(__U,__A);
4673 }
test_mm_maskz_max_epi32(__mmask8 __M,__m128i __A,__m128i __B)4674 __m128i test_mm_maskz_max_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
4675   // CHECK-LABEL: @test_mm_maskz_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: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4679   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4680   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4681   return _mm_maskz_max_epi32(__M,__A,__B);
4682 }
test_mm_mask_max_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4683 __m128i test_mm_mask_max_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4684   // CHECK-LABEL: @test_mm_mask_max_epi32
4685   // CHECK:       [[CMP:%.*]] = icmp sgt <4 x i32> [[X:%.*]], [[Y:%.*]]
4686   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4687   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4688   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4689   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4690   return _mm_mask_max_epi32(__W,__M,__A,__B);
4691 }
test_mm256_maskz_max_epi32(__mmask8 __M,__m256i __A,__m256i __B)4692 __m256i test_mm256_maskz_max_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
4693   // CHECK-LABEL: @test_mm256_maskz_max_epi32
4694   // CHECK:       [[CMP:%.*]] = icmp sgt <8 x i32> [[X:%.*]], [[Y:%.*]]
4695   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4696   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4697   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4698   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4699   return _mm256_maskz_max_epi32(__M,__A,__B);
4700 }
test_mm256_mask_max_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4701 __m256i test_mm256_mask_max_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4702   // CHECK-LABEL: @test_mm256_mask_max_epi32
4703   // CHECK:       [[CMP:%.*]] = icmp sgt <8 x i32> [[X:%.*]], [[Y:%.*]]
4704   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4705   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4706   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4707   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4708   return _mm256_mask_max_epi32(__W,__M,__A,__B);
4709 }
test_mm_maskz_max_epi64(__mmask8 __M,__m128i __A,__m128i __B)4710 __m128i test_mm_maskz_max_epi64(__mmask8 __M, __m128i __A, __m128i __B) {
4711   // CHECK-LABEL: @test_mm_maskz_max_epi64
4712   // CHECK:       [[CMP:%.*]] = icmp sgt <2 x i64> [[X:%.*]], [[Y:%.*]]
4713   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4714   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4715   return _mm_maskz_max_epi64(__M,__A,__B);
4716 }
test_mm_mask_max_epi64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4717 __m128i test_mm_mask_max_epi64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4718   // CHECK-LABEL: @test_mm_mask_max_epi64
4719   // CHECK:       [[CMP:%.*]] = icmp sgt <2 x i64> [[X:%.*]], [[Y:%.*]]
4720   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4721   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4722   return _mm_mask_max_epi64(__W,__M,__A,__B);
4723 }
test_mm_max_epi64(__m128i __A,__m128i __B)4724 __m128i test_mm_max_epi64(__m128i __A, __m128i __B) {
4725   // CHECK-LABEL: @test_mm_max_epi64
4726   // CHECK:       [[CMP:%.*]] = icmp sgt <2 x i64> [[X:%.*]], [[Y:%.*]]
4727   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4728   return _mm_max_epi64(__A,__B);
4729 }
test_mm256_maskz_max_epi64(__mmask8 __M,__m256i __A,__m256i __B)4730 __m256i test_mm256_maskz_max_epi64(__mmask8 __M, __m256i __A, __m256i __B) {
4731   // CHECK-LABEL: @test_mm256_maskz_max_epi64
4732   // CHECK:       [[CMP:%.*]] = icmp sgt <4 x i64> [[X:%.*]], [[Y:%.*]]
4733   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4734   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4735   return _mm256_maskz_max_epi64(__M,__A,__B);
4736 }
test_mm256_mask_max_epi64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4737 __m256i test_mm256_mask_max_epi64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4738   // CHECK-LABEL: @test_mm256_mask_max_epi64
4739   // CHECK:       [[CMP:%.*]] = icmp sgt <4 x i64> [[X:%.*]], [[Y:%.*]]
4740   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4741   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4742   return _mm256_mask_max_epi64(__W,__M,__A,__B);
4743 }
test_mm256_max_epi64(__m256i __A,__m256i __B)4744 __m256i test_mm256_max_epi64(__m256i __A, __m256i __B) {
4745   // CHECK-LABEL: @test_mm256_max_epi64
4746   // CHECK:       [[CMP:%.*]] = icmp sgt <4 x i64> [[X:%.*]], [[Y:%.*]]
4747   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4748   return _mm256_max_epi64(__A,__B);
4749 }
test_mm_maskz_max_epu32(__mmask8 __M,__m128i __A,__m128i __B)4750 __m128i test_mm_maskz_max_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
4751   // CHECK-LABEL: @test_mm_maskz_max_epu32
4752   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i32> [[X:%.*]], [[Y:%.*]]
4753   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4754   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4755   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4756   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4757   return _mm_maskz_max_epu32(__M,__A,__B);
4758 }
test_mm_mask_max_epu32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4759 __m128i test_mm_mask_max_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4760   // CHECK-LABEL: @test_mm_mask_max_epu32
4761   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i32> [[X:%.*]], [[Y:%.*]]
4762   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4763   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4764   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4765   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4766   return _mm_mask_max_epu32(__W,__M,__A,__B);
4767 }
test_mm256_maskz_max_epu32(__mmask8 __M,__m256i __A,__m256i __B)4768 __m256i test_mm256_maskz_max_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
4769   // CHECK-LABEL: @test_mm256_maskz_max_epu32
4770   // CHECK:       [[CMP:%.*]] = icmp ugt <8 x i32> [[X:%.*]], [[Y:%.*]]
4771   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4772   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4773   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4774   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4775   return _mm256_maskz_max_epu32(__M,__A,__B);
4776 }
test_mm256_mask_max_epu32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4777 __m256i test_mm256_mask_max_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4778   // CHECK-LABEL: @test_mm256_mask_max_epu32
4779   // CHECK:       [[CMP:%.*]] = icmp ugt <8 x i32> [[X:%.*]], [[Y:%.*]]
4780   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4781   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4782   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4783   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4784   return _mm256_mask_max_epu32(__W,__M,__A,__B);
4785 }
test_mm_maskz_max_epu64(__mmask8 __M,__m128i __A,__m128i __B)4786 __m128i test_mm_maskz_max_epu64(__mmask8 __M, __m128i __A, __m128i __B) {
4787   // CHECK-LABEL: @test_mm_maskz_max_epu64
4788   // CHECK:       [[CMP:%.*]] = icmp ugt <2 x i64> [[X:%.*]], [[Y:%.*]]
4789   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4790   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4791   return _mm_maskz_max_epu64(__M,__A,__B);
4792 }
test_mm_max_epu64(__m128i __A,__m128i __B)4793 __m128i test_mm_max_epu64(__m128i __A, __m128i __B) {
4794   // CHECK-LABEL: @test_mm_max_epu64
4795   // CHECK:       [[CMP:%.*]] = icmp ugt <2 x i64> [[X:%.*]], [[Y:%.*]]
4796   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4797   return _mm_max_epu64(__A,__B);
4798 }
test_mm_mask_max_epu64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4799 __m128i test_mm_mask_max_epu64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4800   // CHECK-LABEL: @test_mm_mask_max_epu64
4801   // CHECK:       [[CMP:%.*]] = icmp ugt <2 x i64> [[X:%.*]], [[Y:%.*]]
4802   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4803   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4804   return _mm_mask_max_epu64(__W,__M,__A,__B);
4805 }
test_mm256_maskz_max_epu64(__mmask8 __M,__m256i __A,__m256i __B)4806 __m256i test_mm256_maskz_max_epu64(__mmask8 __M, __m256i __A, __m256i __B) {
4807   // CHECK-LABEL: @test_mm256_maskz_max_epu64
4808   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i64> [[X:%.*]], [[Y:%.*]]
4809   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4810   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4811   return _mm256_maskz_max_epu64(__M,__A,__B);
4812 }
test_mm256_max_epu64(__m256i __A,__m256i __B)4813 __m256i test_mm256_max_epu64(__m256i __A, __m256i __B) {
4814   // CHECK-LABEL: @test_mm256_max_epu64
4815   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i64> [[X:%.*]], [[Y:%.*]]
4816   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4817   return _mm256_max_epu64(__A,__B);
4818 }
test_mm256_mask_max_epu64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4819 __m256i test_mm256_mask_max_epu64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4820   // CHECK-LABEL: @test_mm256_mask_max_epu64
4821   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i64> [[X:%.*]], [[Y:%.*]]
4822   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4823   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4824   return _mm256_mask_max_epu64(__W,__M,__A,__B);
4825 }
test_mm_maskz_min_epi32(__mmask8 __M,__m128i __A,__m128i __B)4826 __m128i test_mm_maskz_min_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
4827   // CHECK-LABEL: @test_mm_maskz_min_epi32
4828   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i32> [[X:%.*]], [[Y:%.*]]
4829   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4830   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4831   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4832   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4833   return _mm_maskz_min_epi32(__M,__A,__B);
4834 }
test_mm_mask_min_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4835 __m128i test_mm_mask_min_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4836   // CHECK-LABEL: @test_mm_mask_min_epi32
4837   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i32> [[X:%.*]], [[Y:%.*]]
4838   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4839   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4840   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4841   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4842   return _mm_mask_min_epi32(__W,__M,__A,__B);
4843 }
test_mm256_maskz_min_epi32(__mmask8 __M,__m256i __A,__m256i __B)4844 __m256i test_mm256_maskz_min_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
4845   // CHECK-LABEL: @test_mm256_maskz_min_epi32
4846   // CHECK:       [[CMP:%.*]] = icmp slt <8 x i32> [[X:%.*]], [[Y:%.*]]
4847   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4848   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4849   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4850   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4851   return _mm256_maskz_min_epi32(__M,__A,__B);
4852 }
test_mm256_mask_min_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4853 __m256i test_mm256_mask_min_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4854   // CHECK-LABEL: @test_mm256_mask_min_epi32
4855   // CHECK:       [[CMP:%.*]] = icmp slt <8 x i32> [[X:%.*]], [[Y:%.*]]
4856   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4857   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4858   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4859   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4860   return _mm256_mask_min_epi32(__W,__M,__A,__B);
4861 }
test_mm_min_epi64(__m128i __A,__m128i __B)4862 __m128i test_mm_min_epi64(__m128i __A, __m128i __B) {
4863   // CHECK-LABEL: @test_mm_min_epi64
4864   // CHECK:       [[CMP:%.*]] = icmp slt <2 x i64> [[X:%.*]], [[Y:%.*]]
4865   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4866   return _mm_min_epi64(__A,__B);
4867 }
test_mm_mask_min_epi64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4868 __m128i test_mm_mask_min_epi64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4869   // CHECK-LABEL: @test_mm_mask_min_epi64
4870   // CHECK:       [[CMP:%.*]] = icmp slt <2 x i64> [[X:%.*]], [[Y:%.*]]
4871   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4872   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4873   return _mm_mask_min_epi64(__W,__M,__A,__B);
4874 }
test_mm_maskz_min_epi64(__mmask8 __M,__m128i __A,__m128i __B)4875 __m128i test_mm_maskz_min_epi64(__mmask8 __M, __m128i __A, __m128i __B) {
4876   // CHECK-LABEL: @test_mm_maskz_min_epi64
4877   // CHECK:       [[CMP:%.*]] = icmp slt <2 x i64> [[X:%.*]], [[Y:%.*]]
4878   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4879   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4880   return _mm_maskz_min_epi64(__M,__A,__B);
4881 }
test_mm256_min_epi64(__m256i __A,__m256i __B)4882 __m256i test_mm256_min_epi64(__m256i __A, __m256i __B) {
4883   // CHECK-LABEL: @test_mm256_min_epi64
4884   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i64> [[X:%.*]], [[Y:%.*]]
4885   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4886   return _mm256_min_epi64(__A,__B);
4887 }
test_mm256_mask_min_epi64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4888 __m256i test_mm256_mask_min_epi64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4889   // CHECK-LABEL: @test_mm256_mask_min_epi64
4890   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i64> [[X:%.*]], [[Y:%.*]]
4891   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4892   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4893   return _mm256_mask_min_epi64(__W,__M,__A,__B);
4894 }
test_mm256_maskz_min_epi64(__mmask8 __M,__m256i __A,__m256i __B)4895 __m256i test_mm256_maskz_min_epi64(__mmask8 __M, __m256i __A, __m256i __B) {
4896   // CHECK-LABEL: @test_mm256_maskz_min_epi64
4897   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i64> [[X:%.*]], [[Y:%.*]]
4898   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4899   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4900   return _mm256_maskz_min_epi64(__M,__A,__B);
4901 }
test_mm_maskz_min_epu32(__mmask8 __M,__m128i __A,__m128i __B)4902 __m128i test_mm_maskz_min_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
4903   // CHECK-LABEL: @test_mm_maskz_min_epu32
4904   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i32> [[X:%.*]], [[Y:%.*]]
4905   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4906   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4907   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4908   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4909   return _mm_maskz_min_epu32(__M,__A,__B);
4910 }
test_mm_mask_min_epu32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4911 __m128i test_mm_mask_min_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4912   // CHECK-LABEL: @test_mm_mask_min_epu32
4913   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i32> [[X:%.*]], [[Y:%.*]]
4914   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4915   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4916   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4917   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4918   return _mm_mask_min_epu32(__W,__M,__A,__B);
4919 }
test_mm256_maskz_min_epu32(__mmask8 __M,__m256i __A,__m256i __B)4920 __m256i test_mm256_maskz_min_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
4921   // CHECK-LABEL: @test_mm256_maskz_min_epu32
4922   // CHECK:       [[CMP:%.*]] = icmp ult <8 x i32> [[X:%.*]], [[Y:%.*]]
4923   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4924   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4925   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4926   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4927   return _mm256_maskz_min_epu32(__M,__A,__B);
4928 }
test_mm256_mask_min_epu32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4929 __m256i test_mm256_mask_min_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4930   // CHECK-LABEL: @test_mm256_mask_min_epu32
4931   // CHECK:       [[CMP:%.*]] = icmp ult <8 x i32> [[X:%.*]], [[Y:%.*]]
4932   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4933   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4934   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4935   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4936   return _mm256_mask_min_epu32(__W,__M,__A,__B);
4937 }
test_mm_min_epu64(__m128i __A,__m128i __B)4938 __m128i test_mm_min_epu64(__m128i __A, __m128i __B) {
4939   // CHECK-LABEL: @test_mm_min_epu64
4940   // CHECK:       [[CMP:%.*]] = icmp ult <2 x i64> [[X:%.*]], [[Y:%.*]]
4941   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4942   return _mm_min_epu64(__A,__B);
4943 }
test_mm_mask_min_epu64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4944 __m128i test_mm_mask_min_epu64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4945   // CHECK-LABEL: @test_mm_mask_min_epu64
4946   // CHECK:       [[CMP:%.*]] = icmp ult <2 x i64> [[X:%.*]], [[Y:%.*]]
4947   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4948   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4949   return _mm_mask_min_epu64(__W,__M,__A,__B);
4950 }
test_mm_maskz_min_epu64(__mmask8 __M,__m128i __A,__m128i __B)4951 __m128i test_mm_maskz_min_epu64(__mmask8 __M, __m128i __A, __m128i __B) {
4952   // CHECK-LABEL: @test_mm_maskz_min_epu64
4953   // CHECK:       [[CMP:%.*]] = icmp ult <2 x i64> [[X:%.*]], [[Y:%.*]]
4954   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4955   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4956   return _mm_maskz_min_epu64(__M,__A,__B);
4957 }
test_mm256_min_epu64(__m256i __A,__m256i __B)4958 __m256i test_mm256_min_epu64(__m256i __A, __m256i __B) {
4959   // CHECK-LABEL: @test_mm256_min_epu64
4960   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i64> [[X:%.*]], [[Y:%.*]]
4961   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4962   return _mm256_min_epu64(__A,__B);
4963 }
test_mm256_mask_min_epu64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4964 __m256i test_mm256_mask_min_epu64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4965   // CHECK-LABEL: @test_mm256_mask_min_epu64
4966   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i64> [[X:%.*]], [[Y:%.*]]
4967   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4968   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4969   return _mm256_mask_min_epu64(__W,__M,__A,__B);
4970 }
test_mm256_maskz_min_epu64(__mmask8 __M,__m256i __A,__m256i __B)4971 __m256i test_mm256_maskz_min_epu64(__mmask8 __M, __m256i __A, __m256i __B) {
4972   // CHECK-LABEL: @test_mm256_maskz_min_epu64
4973   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i64> [[X:%.*]], [[Y:%.*]]
4974   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4975   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4976   return _mm256_maskz_min_epu64(__M,__A,__B);
4977 }
test_mm_roundscale_pd(__m128d __A)4978 __m128d test_mm_roundscale_pd(__m128d __A) {
4979   // CHECK-LABEL: @test_mm_roundscale_pd
4980   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4981   return _mm_roundscale_pd(__A,4);
4982 }
test_mm_mask_roundscale_pd(__m128d __W,__mmask8 __U,__m128d __A)4983 __m128d test_mm_mask_roundscale_pd(__m128d __W, __mmask8 __U, __m128d __A) {
4984   // CHECK-LABEL: @test_mm_mask_roundscale_pd
4985   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4986   return _mm_mask_roundscale_pd(__W,__U,__A,4);
4987 }
test_mm_maskz_roundscale_pd(__mmask8 __U,__m128d __A)4988 __m128d test_mm_maskz_roundscale_pd(__mmask8 __U, __m128d __A) {
4989   // CHECK-LABEL: @test_mm_maskz_roundscale_pd
4990   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4991   return _mm_maskz_roundscale_pd(__U,__A,4);
4992 }
test_mm256_roundscale_pd(__m256d __A)4993 __m256d test_mm256_roundscale_pd(__m256d __A) {
4994   // CHECK-LABEL: @test_mm256_roundscale_pd
4995   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
4996   return _mm256_roundscale_pd(__A,4);
4997 }
test_mm256_mask_roundscale_pd(__m256d __W,__mmask8 __U,__m256d __A)4998 __m256d test_mm256_mask_roundscale_pd(__m256d __W, __mmask8 __U, __m256d __A) {
4999   // CHECK-LABEL: @test_mm256_mask_roundscale_pd
5000   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
5001   return _mm256_mask_roundscale_pd(__W,__U,__A,4);
5002 }
test_mm256_maskz_roundscale_pd(__mmask8 __U,__m256d __A)5003 __m256d test_mm256_maskz_roundscale_pd(__mmask8 __U, __m256d __A) {
5004   // CHECK-LABEL: @test_mm256_maskz_roundscale_pd
5005   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
5006   return _mm256_maskz_roundscale_pd(__U,__A,4);
5007 }
test_mm_roundscale_ps(__m128 __A)5008 __m128 test_mm_roundscale_ps(__m128 __A) {
5009   // CHECK-LABEL: @test_mm_roundscale_ps
5010   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
5011   return _mm_roundscale_ps(__A,4);
5012 }
test_mm_mask_roundscale_ps(__m128 __W,__mmask8 __U,__m128 __A)5013 __m128 test_mm_mask_roundscale_ps(__m128 __W, __mmask8 __U, __m128 __A) {
5014   // CHECK-LABEL: @test_mm_mask_roundscale_ps
5015   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
5016   return _mm_mask_roundscale_ps(__W,__U,__A,4);
5017 }
test_mm_maskz_roundscale_ps(__mmask8 __U,__m128 __A)5018 __m128 test_mm_maskz_roundscale_ps(__mmask8 __U, __m128 __A) {
5019   // CHECK-LABEL: @test_mm_maskz_roundscale_ps
5020   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
5021   return _mm_maskz_roundscale_ps(__U,__A, 4);
5022 }
test_mm256_roundscale_ps(__m256 __A)5023 __m256 test_mm256_roundscale_ps(__m256 __A) {
5024   // CHECK-LABEL: @test_mm256_roundscale_ps
5025   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
5026   return _mm256_roundscale_ps(__A,4);
5027 }
test_mm256_mask_roundscale_ps(__m256 __W,__mmask8 __U,__m256 __A)5028 __m256 test_mm256_mask_roundscale_ps(__m256 __W, __mmask8 __U, __m256 __A) {
5029   // CHECK-LABEL: @test_mm256_mask_roundscale_ps
5030   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
5031   return _mm256_mask_roundscale_ps(__W,__U,__A,4);
5032 }
test_mm256_maskz_roundscale_ps(__mmask8 __U,__m256 __A)5033 __m256 test_mm256_maskz_roundscale_ps(__mmask8 __U, __m256 __A) {
5034   // CHECK-LABEL: @test_mm256_maskz_roundscale_ps
5035   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
5036   return _mm256_maskz_roundscale_ps(__U,__A,4);
5037 }
test_mm_scalef_pd(__m128d __A,__m128d __B)5038 __m128d test_mm_scalef_pd(__m128d __A, __m128d __B) {
5039   // CHECK-LABEL: @test_mm_scalef_pd
5040   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
5041   return _mm_scalef_pd(__A,__B);
5042 }
test_mm_mask_scalef_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5043 __m128d test_mm_mask_scalef_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
5044   // CHECK-LABEL: @test_mm_mask_scalef_pd
5045   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
5046   return _mm_mask_scalef_pd(__W,__U,__A,__B);
5047 }
test_mm_maskz_scalef_pd(__mmask8 __U,__m128d __A,__m128d __B)5048 __m128d test_mm_maskz_scalef_pd(__mmask8 __U, __m128d __A, __m128d __B) {
5049   // CHECK-LABEL: @test_mm_maskz_scalef_pd
5050   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
5051   return _mm_maskz_scalef_pd(__U,__A,__B);
5052 }
test_mm256_scalef_pd(__m256d __A,__m256d __B)5053 __m256d test_mm256_scalef_pd(__m256d __A, __m256d __B) {
5054   // CHECK-LABEL: @test_mm256_scalef_pd
5055   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
5056   return _mm256_scalef_pd(__A,__B);
5057 }
test_mm256_mask_scalef_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)5058 __m256d test_mm256_mask_scalef_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
5059   // CHECK-LABEL: @test_mm256_mask_scalef_pd
5060   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
5061   return _mm256_mask_scalef_pd(__W,__U,__A,__B);
5062 }
test_mm256_maskz_scalef_pd(__mmask8 __U,__m256d __A,__m256d __B)5063 __m256d test_mm256_maskz_scalef_pd(__mmask8 __U, __m256d __A, __m256d __B) {
5064   // CHECK-LABEL: @test_mm256_maskz_scalef_pd
5065   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
5066   return _mm256_maskz_scalef_pd(__U,__A,__B);
5067 }
test_mm_scalef_ps(__m128 __A,__m128 __B)5068 __m128 test_mm_scalef_ps(__m128 __A, __m128 __B) {
5069   // CHECK-LABEL: @test_mm_scalef_ps
5070   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
5071   return _mm_scalef_ps(__A,__B);
5072 }
test_mm_mask_scalef_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5073 __m128 test_mm_mask_scalef_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
5074   // CHECK-LABEL: @test_mm_mask_scalef_ps
5075   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
5076   return _mm_mask_scalef_ps(__W,__U,__A,__B);
5077 }
test_mm_maskz_scalef_ps(__mmask8 __U,__m128 __A,__m128 __B)5078 __m128 test_mm_maskz_scalef_ps(__mmask8 __U, __m128 __A, __m128 __B) {
5079   // CHECK-LABEL: @test_mm_maskz_scalef_ps
5080   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
5081   return _mm_maskz_scalef_ps(__U,__A,__B);
5082 }
test_mm256_scalef_ps(__m256 __A,__m256 __B)5083 __m256 test_mm256_scalef_ps(__m256 __A, __m256 __B) {
5084   // CHECK-LABEL: @test_mm256_scalef_ps
5085   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
5086   return _mm256_scalef_ps(__A,__B);
5087 }
test_mm256_mask_scalef_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)5088 __m256 test_mm256_mask_scalef_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
5089   // CHECK-LABEL: @test_mm256_mask_scalef_ps
5090   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
5091   return _mm256_mask_scalef_ps(__W,__U,__A,__B);
5092 }
test_mm256_maskz_scalef_ps(__mmask8 __U,__m256 __A,__m256 __B)5093 __m256 test_mm256_maskz_scalef_ps(__mmask8 __U, __m256 __A, __m256 __B) {
5094   // CHECK-LABEL: @test_mm256_maskz_scalef_ps
5095   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
5096   return _mm256_maskz_scalef_ps(__U,__A,__B);
5097 }
test_mm_i64scatter_pd(double * __addr,__m128i __index,__m128d __v1)5098 void test_mm_i64scatter_pd(double *__addr, __m128i __index,  __m128d __v1) {
5099   // CHECK-LABEL: @test_mm_i64scatter_pd
5100   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.df
5101   return _mm_i64scatter_pd(__addr,__index,__v1,2);
5102 }
test_mm_mask_i64scatter_pd(double * __addr,__mmask8 __mask,__m128i __index,__m128d __v1)5103 void test_mm_mask_i64scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m128d __v1) {
5104   // CHECK-LABEL: @test_mm_mask_i64scatter_pd
5105   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.df
5106   return _mm_mask_i64scatter_pd(__addr,__mask,__index,__v1,2);
5107 }
test_mm_i64scatter_epi64(long long * __addr,__m128i __index,__m128i __v1)5108 void test_mm_i64scatter_epi64(long long *__addr, __m128i __index,  __m128i __v1) {
5109   // CHECK-LABEL: @test_mm_i64scatter_epi64
5110   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.di
5111   return _mm_i64scatter_epi64(__addr,__index,__v1,2);
5112 }
test_mm_mask_i64scatter_epi64(long long * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5113 void test_mm_mask_i64scatter_epi64(long long *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5114   // CHECK-LABEL: @test_mm_mask_i64scatter_epi64
5115   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.di
5116   return _mm_mask_i64scatter_epi64(__addr,__mask,__index,__v1,2);
5117 }
test_mm256_i64scatter_pd(double * __addr,__m256i __index,__m256d __v1)5118 void test_mm256_i64scatter_pd(double *__addr, __m256i __index,  __m256d __v1) {
5119   // CHECK-LABEL: @test_mm256_i64scatter_pd
5120   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.df
5121   return _mm256_i64scatter_pd(__addr,__index,__v1,2);
5122 }
test_mm256_mask_i64scatter_pd(double * __addr,__mmask8 __mask,__m256i __index,__m256d __v1)5123 void test_mm256_mask_i64scatter_pd(double *__addr, __mmask8 __mask, __m256i __index, __m256d __v1) {
5124   // CHECK-LABEL: @test_mm256_mask_i64scatter_pd
5125   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.df
5126   return _mm256_mask_i64scatter_pd(__addr,__mask,__index,__v1,2);
5127 }
test_mm256_i64scatter_epi64(long long * __addr,__m256i __index,__m256i __v1)5128 void test_mm256_i64scatter_epi64(long long *__addr, __m256i __index,  __m256i __v1) {
5129   // CHECK-LABEL: @test_mm256_i64scatter_epi64
5130   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.di
5131   return _mm256_i64scatter_epi64(__addr,__index,__v1,2);
5132 }
test_mm256_mask_i64scatter_epi64(long long * __addr,__mmask8 __mask,__m256i __index,__m256i __v1)5133 void test_mm256_mask_i64scatter_epi64(long long *__addr, __mmask8 __mask,  __m256i __index, __m256i __v1) {
5134   // CHECK-LABEL: @test_mm256_mask_i64scatter_epi64
5135   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.di
5136   return _mm256_mask_i64scatter_epi64(__addr,__mask,__index,__v1,2);
5137 }
test_mm_i64scatter_ps(float * __addr,__m128i __index,__m128 __v1)5138 void test_mm_i64scatter_ps(float *__addr, __m128i __index, __m128 __v1) {
5139   // CHECK-LABEL: @test_mm_i64scatter_ps
5140   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.sf
5141   return _mm_i64scatter_ps(__addr,__index,__v1,2);
5142 }
test_mm_mask_i64scatter_ps(float * __addr,__mmask8 __mask,__m128i __index,__m128 __v1)5143 void test_mm_mask_i64scatter_ps(float *__addr, __mmask8 __mask, __m128i __index, __m128 __v1) {
5144   // CHECK-LABEL: @test_mm_mask_i64scatter_ps
5145   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.sf
5146   return _mm_mask_i64scatter_ps(__addr,__mask,__index,__v1,2);
5147 }
test_mm_i64scatter_epi32(int * __addr,__m128i __index,__m128i __v1)5148 void test_mm_i64scatter_epi32(int *__addr, __m128i __index,  __m128i __v1) {
5149   // CHECK-LABEL: @test_mm_i64scatter_epi32
5150   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.si
5151   return _mm_i64scatter_epi32(__addr,__index,__v1,2);
5152 }
test_mm_mask_i64scatter_epi32(int * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5153 void test_mm_mask_i64scatter_epi32(int *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5154   // CHECK-LABEL: @test_mm_mask_i64scatter_epi32
5155   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.si
5156   return _mm_mask_i64scatter_epi32(__addr,__mask,__index,__v1,2);
5157 }
test_mm256_i64scatter_ps(float * __addr,__m256i __index,__m128 __v1)5158 void test_mm256_i64scatter_ps(float *__addr, __m256i __index,  __m128 __v1) {
5159   // CHECK-LABEL: @test_mm256_i64scatter_ps
5160   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.sf
5161   return _mm256_i64scatter_ps(__addr,__index,__v1,2);
5162 }
test_mm256_mask_i64scatter_ps(float * __addr,__mmask8 __mask,__m256i __index,__m128 __v1)5163 void test_mm256_mask_i64scatter_ps(float *__addr, __mmask8 __mask, __m256i __index, __m128 __v1) {
5164   // CHECK-LABEL: @test_mm256_mask_i64scatter_ps
5165   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.sf
5166   return _mm256_mask_i64scatter_ps(__addr,__mask,__index,__v1,2);
5167 }
test_mm256_i64scatter_epi32(int * __addr,__m256i __index,__m128i __v1)5168 void test_mm256_i64scatter_epi32(int *__addr, __m256i __index,  __m128i __v1) {
5169   // CHECK-LABEL: @test_mm256_i64scatter_epi32
5170   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.si
5171   return _mm256_i64scatter_epi32(__addr,__index,__v1,2);
5172 }
test_mm256_mask_i64scatter_epi32(int * __addr,__mmask8 __mask,__m256i __index,__m128i __v1)5173 void test_mm256_mask_i64scatter_epi32(int *__addr, __mmask8 __mask,  __m256i __index, __m128i __v1) {
5174   // CHECK-LABEL: @test_mm256_mask_i64scatter_epi32
5175   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.si
5176   return _mm256_mask_i64scatter_epi32(__addr,__mask,__index,__v1,2);
5177 }
test_mm_i32scatter_pd(double * __addr,__m128i __index,__m128d __v1)5178 void test_mm_i32scatter_pd(double *__addr, __m128i __index,  __m128d __v1) {
5179   // CHECK-LABEL: @test_mm_i32scatter_pd
5180   // CHECK: @llvm.x86.avx512.mask.scattersiv2.df
5181   return _mm_i32scatter_pd(__addr,__index,__v1,2);
5182 }
test_mm_mask_i32scatter_pd(double * __addr,__mmask8 __mask,__m128i __index,__m128d __v1)5183 void test_mm_mask_i32scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m128d __v1) {
5184   // CHECK-LABEL: @test_mm_mask_i32scatter_pd
5185   // CHECK: @llvm.x86.avx512.mask.scattersiv2.df
5186   return _mm_mask_i32scatter_pd(__addr,__mask,__index,__v1,2);
5187 }
test_mm_i32scatter_epi64(long long * __addr,__m128i __index,__m128i __v1)5188 void test_mm_i32scatter_epi64(long long *__addr, __m128i __index,  __m128i __v1) {
5189   // CHECK-LABEL: @test_mm_i32scatter_epi64
5190   // CHECK: @llvm.x86.avx512.mask.scattersiv2.di
5191   return _mm_i32scatter_epi64(__addr,__index,__v1,2);
5192 }
test_mm_mask_i32scatter_epi64(long long * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5193 void test_mm_mask_i32scatter_epi64(long long *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5194   // CHECK-LABEL: @test_mm_mask_i32scatter_epi64
5195   // CHECK: @llvm.x86.avx512.mask.scattersiv2.di
5196   return _mm_mask_i32scatter_epi64(__addr,__mask,__index,__v1,2);
5197 }
test_mm256_i32scatter_pd(double * __addr,__m128i __index,__m256d __v1)5198 void test_mm256_i32scatter_pd(double *__addr, __m128i __index,  __m256d __v1) {
5199   // CHECK-LABEL: @test_mm256_i32scatter_pd
5200   // CHECK: @llvm.x86.avx512.mask.scattersiv4.df
5201   return _mm256_i32scatter_pd(__addr,__index,__v1,2);
5202 }
test_mm256_mask_i32scatter_pd(double * __addr,__mmask8 __mask,__m128i __index,__m256d __v1)5203 void test_mm256_mask_i32scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m256d __v1) {
5204   // CHECK-LABEL: @test_mm256_mask_i32scatter_pd
5205   // CHECK: @llvm.x86.avx512.mask.scattersiv4.df
5206   return _mm256_mask_i32scatter_pd(__addr,__mask,__index,__v1,2);
5207 }
test_mm256_i32scatter_epi64(long long * __addr,__m128i __index,__m256i __v1)5208 void test_mm256_i32scatter_epi64(long long *__addr, __m128i __index,  __m256i __v1) {
5209   // CHECK-LABEL: @test_mm256_i32scatter_epi64
5210   // CHECK: @llvm.x86.avx512.mask.scattersiv4.di
5211   return _mm256_i32scatter_epi64(__addr,__index,__v1,2);
5212 }
test_mm256_mask_i32scatter_epi64(long long * __addr,__mmask8 __mask,__m128i __index,__m256i __v1)5213 void test_mm256_mask_i32scatter_epi64(long long *__addr, __mmask8 __mask,  __m128i __index, __m256i __v1) {
5214   // CHECK-LABEL: @test_mm256_mask_i32scatter_epi64
5215   // CHECK: @llvm.x86.avx512.mask.scattersiv4.di
5216   return _mm256_mask_i32scatter_epi64(__addr,__mask,__index,__v1,2);
5217 }
test_mm_i32scatter_ps(float * __addr,__m128i __index,__m128 __v1)5218 void test_mm_i32scatter_ps(float *__addr, __m128i __index, __m128 __v1) {
5219   // CHECK-LABEL: @test_mm_i32scatter_ps
5220   // CHECK: @llvm.x86.avx512.mask.scattersiv4.sf
5221   return _mm_i32scatter_ps(__addr,__index,__v1,2);
5222 }
test_mm_mask_i32scatter_ps(float * __addr,__mmask8 __mask,__m128i __index,__m128 __v1)5223 void test_mm_mask_i32scatter_ps(float *__addr, __mmask8 __mask, __m128i __index, __m128 __v1) {
5224   // CHECK-LABEL: @test_mm_mask_i32scatter_ps
5225   // CHECK: @llvm.x86.avx512.mask.scattersiv4.sf
5226   return _mm_mask_i32scatter_ps(__addr,__mask,__index,__v1,2);
5227 }
test_mm_i32scatter_epi32(int * __addr,__m128i __index,__m128i __v1)5228 void test_mm_i32scatter_epi32(int *__addr, __m128i __index,  __m128i __v1) {
5229   // CHECK-LABEL: @test_mm_i32scatter_epi32
5230   // CHECK: @llvm.x86.avx512.mask.scattersiv4.si
5231   return _mm_i32scatter_epi32(__addr,__index,__v1,2);
5232 }
test_mm_mask_i32scatter_epi32(int * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5233 void test_mm_mask_i32scatter_epi32(int *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5234   // CHECK-LABEL: @test_mm_mask_i32scatter_epi32
5235   // CHECK: @llvm.x86.avx512.mask.scattersiv4.si
5236   return _mm_mask_i32scatter_epi32(__addr,__mask,__index,__v1,2);
5237 }
test_mm256_i32scatter_ps(float * __addr,__m256i __index,__m256 __v1)5238 void test_mm256_i32scatter_ps(float *__addr, __m256i __index,  __m256 __v1) {
5239   // CHECK-LABEL: @test_mm256_i32scatter_ps
5240   // CHECK: @llvm.x86.avx512.mask.scattersiv8.sf
5241   return _mm256_i32scatter_ps(__addr,__index,__v1,2);
5242 }
test_mm256_mask_i32scatter_ps(float * __addr,__mmask8 __mask,__m256i __index,__m256 __v1)5243 void test_mm256_mask_i32scatter_ps(float *__addr, __mmask8 __mask, __m256i __index, __m256 __v1) {
5244   // CHECK-LABEL: @test_mm256_mask_i32scatter_ps
5245   // CHECK: @llvm.x86.avx512.mask.scattersiv8.sf
5246   return _mm256_mask_i32scatter_ps(__addr,__mask,__index,__v1,2);
5247 }
test_mm256_i32scatter_epi32(int * __addr,__m256i __index,__m256i __v1)5248 void test_mm256_i32scatter_epi32(int *__addr, __m256i __index,  __m256i __v1) {
5249   // CHECK-LABEL: @test_mm256_i32scatter_epi32
5250   // CHECK: @llvm.x86.avx512.mask.scattersiv8.si
5251   return _mm256_i32scatter_epi32(__addr,__index,__v1,2);
5252 }
test_mm256_mask_i32scatter_epi32(int * __addr,__mmask8 __mask,__m256i __index,__m256i __v1)5253 void test_mm256_mask_i32scatter_epi32(int *__addr, __mmask8 __mask,  __m256i __index, __m256i __v1) {
5254   // CHECK-LABEL: @test_mm256_mask_i32scatter_epi32
5255   // CHECK: @llvm.x86.avx512.mask.scattersiv8.si
5256   return _mm256_mask_i32scatter_epi32(__addr,__mask,__index,__v1,2);
5257 }
test_mm_mask_sqrt_pd(__m128d __W,__mmask8 __U,__m128d __A)5258 __m128d test_mm_mask_sqrt_pd(__m128d __W, __mmask8 __U, __m128d __A) {
5259   // CHECK-LABEL: @test_mm_mask_sqrt_pd
5260   // CHECK: @llvm.sqrt.v2f64
5261   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5262   return _mm_mask_sqrt_pd(__W,__U,__A);
5263 }
test_mm_maskz_sqrt_pd(__mmask8 __U,__m128d __A)5264 __m128d test_mm_maskz_sqrt_pd(__mmask8 __U, __m128d __A) {
5265   // CHECK-LABEL: @test_mm_maskz_sqrt_pd
5266   // CHECK: @llvm.sqrt.v2f64
5267   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5268   return _mm_maskz_sqrt_pd(__U,__A);
5269 }
test_mm256_mask_sqrt_pd(__m256d __W,__mmask8 __U,__m256d __A)5270 __m256d test_mm256_mask_sqrt_pd(__m256d __W, __mmask8 __U, __m256d __A) {
5271   // CHECK-LABEL: @test_mm256_mask_sqrt_pd
5272   // CHECK: @llvm.sqrt.v4f64
5273   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5274   return _mm256_mask_sqrt_pd(__W,__U,__A);
5275 }
test_mm256_maskz_sqrt_pd(__mmask8 __U,__m256d __A)5276 __m256d test_mm256_maskz_sqrt_pd(__mmask8 __U, __m256d __A) {
5277   // CHECK-LABEL: @test_mm256_maskz_sqrt_pd
5278   // CHECK: @llvm.sqrt.v4f64
5279   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5280   return _mm256_maskz_sqrt_pd(__U,__A);
5281 }
test_mm_mask_sqrt_ps(__m128 __W,__mmask8 __U,__m128 __A)5282 __m128 test_mm_mask_sqrt_ps(__m128 __W, __mmask8 __U, __m128 __A) {
5283   // CHECK-LABEL: @test_mm_mask_sqrt_ps
5284   // CHECK: @llvm.sqrt.v4f32
5285   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5286   return _mm_mask_sqrt_ps(__W,__U,__A);
5287 }
test_mm_maskz_sqrt_ps(__mmask8 __U,__m128 __A)5288 __m128 test_mm_maskz_sqrt_ps(__mmask8 __U, __m128 __A) {
5289   // CHECK-LABEL: @test_mm_maskz_sqrt_ps
5290   // CHECK: @llvm.sqrt.v4f32
5291   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5292   return _mm_maskz_sqrt_ps(__U,__A);
5293 }
test_mm256_mask_sqrt_ps(__m256 __W,__mmask8 __U,__m256 __A)5294 __m256 test_mm256_mask_sqrt_ps(__m256 __W, __mmask8 __U, __m256 __A) {
5295   // CHECK-LABEL: @test_mm256_mask_sqrt_ps
5296   // CHECK: @llvm.sqrt.v8f32
5297   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5298   return _mm256_mask_sqrt_ps(__W,__U,__A);
5299 }
test_mm256_maskz_sqrt_ps(__mmask8 __U,__m256 __A)5300 __m256 test_mm256_maskz_sqrt_ps(__mmask8 __U, __m256 __A) {
5301   // CHECK-LABEL: @test_mm256_maskz_sqrt_ps
5302   // CHECK: @llvm.sqrt.v8f32
5303   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5304   return _mm256_maskz_sqrt_ps(__U,__A);
5305 }
test_mm_mask_sub_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5306 __m128d test_mm_mask_sub_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
5307   // CHECK-LABEL: @test_mm_mask_sub_pd
5308   // CHECK: fsub <2 x double> %{{.*}}, %{{.*}}
5309   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5310   return _mm_mask_sub_pd(__W,__U,__A,__B);
5311 }
test_mm_maskz_sub_pd(__mmask8 __U,__m128d __A,__m128d __B)5312 __m128d test_mm_maskz_sub_pd(__mmask8 __U, __m128d __A, __m128d __B) {
5313   // CHECK-LABEL: @test_mm_maskz_sub_pd
5314   // CHECK: fsub <2 x double> %{{.*}}, %{{.*}}
5315   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5316   return _mm_maskz_sub_pd(__U,__A,__B);
5317 }
test_mm256_mask_sub_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)5318 __m256d test_mm256_mask_sub_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
5319   // CHECK-LABEL: @test_mm256_mask_sub_pd
5320   // CHECK: fsub <4 x double> %{{.*}}, %{{.*}}
5321   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5322   return _mm256_mask_sub_pd(__W,__U,__A,__B);
5323 }
test_mm256_maskz_sub_pd(__mmask8 __U,__m256d __A,__m256d __B)5324 __m256d test_mm256_maskz_sub_pd(__mmask8 __U, __m256d __A, __m256d __B) {
5325   // CHECK-LABEL: @test_mm256_maskz_sub_pd
5326   // CHECK: fsub <4 x double> %{{.*}}, %{{.*}}
5327   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5328   return _mm256_maskz_sub_pd(__U,__A,__B);
5329 }
test_mm_mask_sub_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5330 __m128 test_mm_mask_sub_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
5331   // CHECK-LABEL: @test_mm_mask_sub_ps
5332   // CHECK: fsub <4 x float> %{{.*}}, %{{.*}}
5333   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5334   return _mm_mask_sub_ps(__W,__U,__A,__B);
5335 }
test_mm_maskz_sub_ps(__mmask8 __U,__m128 __A,__m128 __B)5336 __m128 test_mm_maskz_sub_ps(__mmask8 __U, __m128 __A, __m128 __B) {
5337   // CHECK-LABEL: @test_mm_maskz_sub_ps
5338   // CHECK: fsub <4 x float> %{{.*}}, %{{.*}}
5339   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5340   return _mm_maskz_sub_ps(__U,__A,__B);
5341 }
test_mm256_mask_sub_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)5342 __m256 test_mm256_mask_sub_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
5343   // CHECK-LABEL: @test_mm256_mask_sub_ps
5344   // CHECK: fsub <8 x float> %{{.*}}, %{{.*}}
5345   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5346   return _mm256_mask_sub_ps(__W,__U,__A,__B);
5347 }
test_mm256_maskz_sub_ps(__mmask8 __U,__m256 __A,__m256 __B)5348 __m256 test_mm256_maskz_sub_ps(__mmask8 __U, __m256 __A, __m256 __B) {
5349   // CHECK-LABEL: @test_mm256_maskz_sub_ps
5350   // CHECK: fsub <8 x float> %{{.*}}, %{{.*}}
5351   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5352   return _mm256_maskz_sub_ps(__U,__A,__B);
5353 }
test_mm_mask2_permutex2var_epi32(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)5354 __m128i test_mm_mask2_permutex2var_epi32(__m128i __A, __m128i __I, __mmask8 __U,  __m128i __B) {
5355   // CHECK-LABEL: @test_mm_mask2_permutex2var_epi32
5356   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5357   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5358   return _mm_mask2_permutex2var_epi32(__A,__I,__U,__B);
5359 }
test_mm256_mask2_permutex2var_epi32(__m256i __A,__m256i __I,__mmask8 __U,__m256i __B)5360 __m256i test_mm256_mask2_permutex2var_epi32(__m256i __A, __m256i __I, __mmask8 __U, __m256i __B) {
5361   // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi32
5362   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5363   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5364   return _mm256_mask2_permutex2var_epi32(__A,__I,__U,__B);
5365 }
test_mm_mask2_permutex2var_pd(__m128d __A,__m128i __I,__mmask8 __U,__m128d __B)5366 __m128d test_mm_mask2_permutex2var_pd(__m128d __A, __m128i __I, __mmask8 __U, __m128d __B) {
5367   // CHECK-LABEL: @test_mm_mask2_permutex2var_pd
5368   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5369   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5370   return _mm_mask2_permutex2var_pd(__A,__I,__U,__B);
5371 }
test_mm256_mask2_permutex2var_pd(__m256d __A,__m256i __I,__mmask8 __U,__m256d __B)5372 __m256d test_mm256_mask2_permutex2var_pd(__m256d __A, __m256i __I, __mmask8 __U,  __m256d __B) {
5373   // CHECK-LABEL: @test_mm256_mask2_permutex2var_pd
5374   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5375   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5376   return _mm256_mask2_permutex2var_pd(__A,__I,__U,__B);
5377 }
test_mm_mask2_permutex2var_ps(__m128 __A,__m128i __I,__mmask8 __U,__m128 __B)5378 __m128 test_mm_mask2_permutex2var_ps(__m128 __A, __m128i __I, __mmask8 __U, __m128 __B) {
5379   // CHECK-LABEL: @test_mm_mask2_permutex2var_ps
5380   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5381   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5382   return _mm_mask2_permutex2var_ps(__A,__I,__U,__B);
5383 }
test_mm256_mask2_permutex2var_ps(__m256 __A,__m256i __I,__mmask8 __U,__m256 __B)5384 __m256 test_mm256_mask2_permutex2var_ps(__m256 __A, __m256i __I, __mmask8 __U,  __m256 __B) {
5385   // CHECK-LABEL: @test_mm256_mask2_permutex2var_ps
5386   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5387   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5388   return _mm256_mask2_permutex2var_ps(__A,__I,__U,__B);
5389 }
test_mm_mask2_permutex2var_epi64(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)5390 __m128i test_mm_mask2_permutex2var_epi64(__m128i __A, __m128i __I, __mmask8 __U,  __m128i __B) {
5391   // CHECK-LABEL: @test_mm_mask2_permutex2var_epi64
5392   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5393   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5394   return _mm_mask2_permutex2var_epi64(__A,__I,__U,__B);
5395 }
test_mm256_mask2_permutex2var_epi64(__m256i __A,__m256i __I,__mmask8 __U,__m256i __B)5396 __m256i test_mm256_mask2_permutex2var_epi64(__m256i __A, __m256i __I, __mmask8 __U, __m256i __B) {
5397   // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi64
5398   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5399   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5400   return _mm256_mask2_permutex2var_epi64(__A,__I,__U,__B);
5401 }
test_mm_permutex2var_epi32(__m128i __A,__m128i __I,__m128i __B)5402 __m128i test_mm_permutex2var_epi32(__m128i __A, __m128i __I, __m128i __B) {
5403   // CHECK-LABEL: @test_mm_permutex2var_epi32
5404   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5405   return _mm_permutex2var_epi32(__A,__I,__B);
5406 }
test_mm_mask_permutex2var_epi32(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)5407 __m128i test_mm_mask_permutex2var_epi32(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) {
5408   // CHECK-LABEL: @test_mm_mask_permutex2var_epi32
5409   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5410   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5411   return _mm_mask_permutex2var_epi32(__A,__U,__I,__B);
5412 }
test_mm_maskz_permutex2var_epi32(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)5413 __m128i test_mm_maskz_permutex2var_epi32(__mmask8 __U, __m128i __A, __m128i __I,  __m128i __B) {
5414   // CHECK-LABEL: @test_mm_maskz_permutex2var_epi32
5415   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5416   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5417   return _mm_maskz_permutex2var_epi32(__U,__A,__I,__B);
5418 }
test_mm256_permutex2var_epi32(__m256i __A,__m256i __I,__m256i __B)5419 __m256i test_mm256_permutex2var_epi32(__m256i __A, __m256i __I, __m256i __B) {
5420   // CHECK-LABEL: @test_mm256_permutex2var_epi32
5421   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5422   return _mm256_permutex2var_epi32(__A,__I,__B);
5423 }
test_mm256_mask_permutex2var_epi32(__m256i __A,__mmask8 __U,__m256i __I,__m256i __B)5424 __m256i test_mm256_mask_permutex2var_epi32(__m256i __A, __mmask8 __U, __m256i __I, __m256i __B) {
5425   // CHECK-LABEL: @test_mm256_mask_permutex2var_epi32
5426   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5427   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5428   return _mm256_mask_permutex2var_epi32(__A,__U,__I,__B);
5429 }
test_mm256_maskz_permutex2var_epi32(__mmask8 __U,__m256i __A,__m256i __I,__m256i __B)5430 __m256i test_mm256_maskz_permutex2var_epi32(__mmask8 __U, __m256i __A, __m256i __I, __m256i __B) {
5431   // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi32
5432   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5433   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5434   return _mm256_maskz_permutex2var_epi32(__U,__A,__I,__B);
5435 }
test_mm_permutex2var_pd(__m128d __A,__m128i __I,__m128d __B)5436 __m128d test_mm_permutex2var_pd(__m128d __A, __m128i __I, __m128d __B) {
5437   // CHECK-LABEL: @test_mm_permutex2var_pd
5438   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5439   return _mm_permutex2var_pd(__A,__I,__B);
5440 }
test_mm_mask_permutex2var_pd(__m128d __A,__mmask8 __U,__m128i __I,__m128d __B)5441 __m128d test_mm_mask_permutex2var_pd(__m128d __A, __mmask8 __U, __m128i __I, __m128d __B) {
5442   // CHECK-LABEL: @test_mm_mask_permutex2var_pd
5443   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5444   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5445   return _mm_mask_permutex2var_pd(__A,__U,__I,__B);
5446 }
test_mm_maskz_permutex2var_pd(__mmask8 __U,__m128d __A,__m128i __I,__m128d __B)5447 __m128d test_mm_maskz_permutex2var_pd(__mmask8 __U, __m128d __A, __m128i __I, __m128d __B) {
5448   // CHECK-LABEL: @test_mm_maskz_permutex2var_pd
5449   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5450   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5451   return _mm_maskz_permutex2var_pd(__U,__A,__I,__B);
5452 }
test_mm256_permutex2var_pd(__m256d __A,__m256i __I,__m256d __B)5453 __m256d test_mm256_permutex2var_pd(__m256d __A, __m256i __I, __m256d __B) {
5454   // CHECK-LABEL: @test_mm256_permutex2var_pd
5455   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5456   return _mm256_permutex2var_pd(__A,__I,__B);
5457 }
test_mm256_mask_permutex2var_pd(__m256d __A,__mmask8 __U,__m256i __I,__m256d __B)5458 __m256d test_mm256_mask_permutex2var_pd(__m256d __A, __mmask8 __U, __m256i __I, __m256d __B) {
5459   // CHECK-LABEL: @test_mm256_mask_permutex2var_pd
5460   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5461   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5462   return _mm256_mask_permutex2var_pd(__A,__U,__I,__B);
5463 }
test_mm256_maskz_permutex2var_pd(__mmask8 __U,__m256d __A,__m256i __I,__m256d __B)5464 __m256d test_mm256_maskz_permutex2var_pd(__mmask8 __U, __m256d __A, __m256i __I,  __m256d __B) {
5465   // CHECK-LABEL: @test_mm256_maskz_permutex2var_pd
5466   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5467   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5468   return _mm256_maskz_permutex2var_pd(__U,__A,__I,__B);
5469 }
test_mm_permutex2var_ps(__m128 __A,__m128i __I,__m128 __B)5470 __m128 test_mm_permutex2var_ps(__m128 __A, __m128i __I, __m128 __B) {
5471   // CHECK-LABEL: @test_mm_permutex2var_ps
5472   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5473   return _mm_permutex2var_ps(__A,__I,__B);
5474 }
test_mm_mask_permutex2var_ps(__m128 __A,__mmask8 __U,__m128i __I,__m128 __B)5475 __m128 test_mm_mask_permutex2var_ps(__m128 __A, __mmask8 __U, __m128i __I, __m128 __B) {
5476   // CHECK-LABEL: @test_mm_mask_permutex2var_ps
5477   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5478   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5479   return _mm_mask_permutex2var_ps(__A,__U,__I,__B);
5480 }
test_mm_maskz_permutex2var_ps(__mmask8 __U,__m128 __A,__m128i __I,__m128 __B)5481 __m128 test_mm_maskz_permutex2var_ps(__mmask8 __U, __m128 __A, __m128i __I, __m128 __B) {
5482   // CHECK-LABEL: @test_mm_maskz_permutex2var_ps
5483   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5484   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5485   return _mm_maskz_permutex2var_ps(__U,__A,__I,__B);
5486 }
test_mm256_permutex2var_ps(__m256 __A,__m256i __I,__m256 __B)5487 __m256 test_mm256_permutex2var_ps(__m256 __A, __m256i __I, __m256 __B) {
5488   // CHECK-LABEL: @test_mm256_permutex2var_ps
5489   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5490   return _mm256_permutex2var_ps(__A,__I,__B);
5491 }
test_mm256_mask_permutex2var_ps(__m256 __A,__mmask8 __U,__m256i __I,__m256 __B)5492 __m256 test_mm256_mask_permutex2var_ps(__m256 __A, __mmask8 __U, __m256i __I, __m256 __B) {
5493   // CHECK-LABEL: @test_mm256_mask_permutex2var_ps
5494   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5495   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5496   return _mm256_mask_permutex2var_ps(__A,__U,__I,__B);
5497 }
test_mm256_maskz_permutex2var_ps(__mmask8 __U,__m256 __A,__m256i __I,__m256 __B)5498 __m256 test_mm256_maskz_permutex2var_ps(__mmask8 __U, __m256 __A, __m256i __I, __m256 __B) {
5499   // CHECK-LABEL: @test_mm256_maskz_permutex2var_ps
5500   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5501   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5502   return _mm256_maskz_permutex2var_ps(__U,__A,__I,__B);
5503 }
test_mm_permutex2var_epi64(__m128i __A,__m128i __I,__m128i __B)5504 __m128i test_mm_permutex2var_epi64(__m128i __A, __m128i __I, __m128i __B) {
5505   // CHECK-LABEL: @test_mm_permutex2var_epi64
5506   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5507   return _mm_permutex2var_epi64(__A,__I,__B);
5508 }
test_mm_mask_permutex2var_epi64(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)5509 __m128i test_mm_mask_permutex2var_epi64(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) {
5510   // CHECK-LABEL: @test_mm_mask_permutex2var_epi64
5511   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5512   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5513   return _mm_mask_permutex2var_epi64(__A,__U,__I,__B);
5514 }
test_mm_maskz_permutex2var_epi64(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)5515 __m128i test_mm_maskz_permutex2var_epi64(__mmask8 __U, __m128i __A, __m128i __I, __m128i __B) {
5516   // CHECK-LABEL: @test_mm_maskz_permutex2var_epi64
5517   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5518   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5519   return _mm_maskz_permutex2var_epi64(__U,__A,__I,__B);
5520 }
test_mm256_permutex2var_epi64(__m256i __A,__m256i __I,__m256i __B)5521 __m256i test_mm256_permutex2var_epi64(__m256i __A, __m256i __I, __m256i __B) {
5522   // CHECK-LABEL: @test_mm256_permutex2var_epi64
5523   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5524   return _mm256_permutex2var_epi64(__A,__I,__B);
5525 }
test_mm256_mask_permutex2var_epi64(__m256i __A,__mmask8 __U,__m256i __I,__m256i __B)5526 __m256i test_mm256_mask_permutex2var_epi64(__m256i __A, __mmask8 __U, __m256i __I, __m256i __B) {
5527   // CHECK-LABEL: @test_mm256_mask_permutex2var_epi64
5528   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5529   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5530   return _mm256_mask_permutex2var_epi64(__A,__U,__I,__B);
5531 }
test_mm256_maskz_permutex2var_epi64(__mmask8 __U,__m256i __A,__m256i __I,__m256i __B)5532 __m256i test_mm256_maskz_permutex2var_epi64(__mmask8 __U, __m256i __A, __m256i __I, __m256i __B) {
5533   // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi64
5534   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5535   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5536   return _mm256_maskz_permutex2var_epi64(__U,__A,__I,__B);
5537 }
5538 
test_mm_mask_cvtepi8_epi32(__m128i __W,__mmask8 __U,__m128i __A)5539 __m128i test_mm_mask_cvtepi8_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5540   // CHECK-LABEL: @test_mm_mask_cvtepi8_epi32
5541   // CHECK: sext <4 x i8> %{{.*}} to <4 x i32>
5542   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5543   return _mm_mask_cvtepi8_epi32(__W, __U, __A);
5544 }
5545 
test_mm_maskz_cvtepi8_epi32(__mmask8 __U,__m128i __A)5546 __m128i test_mm_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) {
5547   // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi32
5548   // CHECK: sext <4 x i8> %{{.*}} to <4 x i32>
5549   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5550   return _mm_maskz_cvtepi8_epi32(__U, __A);
5551 }
5552 
test_mm256_mask_cvtepi8_epi32(__m256i __W,__mmask8 __U,__m128i __A)5553 __m256i test_mm256_mask_cvtepi8_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5554   // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi32
5555   // CHECK: sext <8 x i8> %{{.*}} to <8 x i32>
5556   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5557   return _mm256_mask_cvtepi8_epi32(__W, __U, __A);
5558 }
5559 
test_mm256_maskz_cvtepi8_epi32(__mmask8 __U,__m128i __A)5560 __m256i test_mm256_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) {
5561   // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi32
5562   // CHECK: sext <8 x i8> %{{.*}} to <8 x i32>
5563   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5564   return _mm256_maskz_cvtepi8_epi32(__U, __A);
5565 }
5566 
test_mm_mask_cvtepi8_epi64(__m128i __W,__mmask8 __U,__m128i __A)5567 __m128i test_mm_mask_cvtepi8_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5568   // CHECK-LABEL: @test_mm_mask_cvtepi8_epi64
5569   // CHECK: sext <2 x i8> %{{.*}} to <2 x i64>
5570   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5571   return _mm_mask_cvtepi8_epi64(__W, __U, __A);
5572 }
5573 
test_mm_maskz_cvtepi8_epi64(__mmask8 __U,__m128i __A)5574 __m128i test_mm_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
5575   // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi64
5576   // CHECK: sext <2 x i8> %{{.*}} to <2 x i64>
5577   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5578   return _mm_maskz_cvtepi8_epi64(__U, __A);
5579 }
5580 
test_mm256_mask_cvtepi8_epi64(__m256i __W,__mmask8 __U,__m128i __A)5581 __m256i test_mm256_mask_cvtepi8_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5582   // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi64
5583   // CHECK: sext <4 x i8> %{{.*}} to <4 x i64>
5584   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5585   return _mm256_mask_cvtepi8_epi64(__W, __U, __A);
5586 }
5587 
test_mm256_maskz_cvtepi8_epi64(__mmask8 __U,__m128i __A)5588 __m256i test_mm256_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
5589   // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi64
5590   // CHECK: sext <4 x i8> %{{.*}} to <4 x i64>
5591   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5592   return _mm256_maskz_cvtepi8_epi64(__U, __A);
5593 }
5594 
test_mm_mask_cvtepi32_epi64(__m128i __W,__mmask8 __U,__m128i __X)5595 __m128i test_mm_mask_cvtepi32_epi64(__m128i __W, __mmask8 __U, __m128i __X) {
5596   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi64
5597   // CHECK: sext <2 x i32> %{{.*}} to <2 x i64>
5598   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5599   return _mm_mask_cvtepi32_epi64(__W, __U, __X);
5600 }
5601 
test_mm_maskz_cvtepi32_epi64(__mmask8 __U,__m128i __X)5602 __m128i test_mm_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) {
5603   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi64
5604   // CHECK: sext <2 x i32> %{{.*}} to <2 x i64>
5605   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5606   return _mm_maskz_cvtepi32_epi64(__U, __X);
5607 }
5608 
test_mm256_mask_cvtepi32_epi64(__m256i __W,__mmask8 __U,__m128i __X)5609 __m256i test_mm256_mask_cvtepi32_epi64(__m256i __W, __mmask8 __U, __m128i __X) {
5610   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi64
5611   // CHECK: sext <4 x i32> %{{.*}} to <4 x i64>
5612   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5613   return _mm256_mask_cvtepi32_epi64(__W, __U, __X);
5614 }
5615 
test_mm256_maskz_cvtepi32_epi64(__mmask8 __U,__m128i __X)5616 __m256i test_mm256_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) {
5617   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi64
5618   // CHECK: sext <4 x i32> %{{.*}} to <4 x i64>
5619   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5620   return _mm256_maskz_cvtepi32_epi64(__U, __X);
5621 }
5622 
test_mm_mask_cvtepi16_epi32(__m128i __W,__mmask8 __U,__m128i __A)5623 __m128i test_mm_mask_cvtepi16_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5624   // CHECK-LABEL: @test_mm_mask_cvtepi16_epi32
5625   // CHECK: sext <4 x i16> %{{.*}} to <4 x i32>
5626   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5627   return _mm_mask_cvtepi16_epi32(__W, __U, __A);
5628 }
5629 
test_mm_maskz_cvtepi16_epi32(__mmask8 __U,__m128i __A)5630 __m128i test_mm_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) {
5631   // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi32
5632   // CHECK: sext <4 x i16> %{{.*}} to <4 x i32>
5633   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5634   return _mm_maskz_cvtepi16_epi32(__U, __A);
5635 }
5636 
test_mm256_mask_cvtepi16_epi32(__m256i __W,__mmask8 __U,__m128i __A)5637 __m256i test_mm256_mask_cvtepi16_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5638   // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi32
5639   // CHECK: sext <8 x i16> %{{.*}} to <8 x i32>
5640   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5641   return _mm256_mask_cvtepi16_epi32(__W, __U, __A);
5642 }
5643 
test_mm256_maskz_cvtepi16_epi32(__mmask8 __U,__m128i __A)5644 __m256i test_mm256_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) {
5645   // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi32
5646   // CHECK: sext <8 x i16> %{{.*}} to <8 x i32>
5647   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5648   return _mm256_maskz_cvtepi16_epi32(__U, __A);
5649 }
5650 
test_mm_mask_cvtepi16_epi64(__m128i __W,__mmask8 __U,__m128i __A)5651 __m128i test_mm_mask_cvtepi16_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5652   // CHECK-LABEL: @test_mm_mask_cvtepi16_epi64
5653   // CHECK: sext <2 x i16> %{{.*}} to <2 x i64>
5654   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5655   return _mm_mask_cvtepi16_epi64(__W, __U, __A);
5656 }
5657 
test_mm_maskz_cvtepi16_epi64(__mmask8 __U,__m128i __A)5658 __m128i test_mm_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
5659   // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi64
5660   // CHECK: sext <2 x i16> %{{.*}} to <2 x i64>
5661   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5662   return _mm_maskz_cvtepi16_epi64(__U, __A);
5663 }
5664 
test_mm256_mask_cvtepi16_epi64(__m256i __W,__mmask8 __U,__m128i __A)5665 __m256i test_mm256_mask_cvtepi16_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5666   // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi64
5667   // CHECK: sext <4 x i16> %{{.*}} to <4 x i64>
5668   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5669   return _mm256_mask_cvtepi16_epi64(__W, __U, __A);
5670 }
5671 
test_mm256_maskz_cvtepi16_epi64(__mmask8 __U,__m128i __A)5672 __m256i test_mm256_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
5673   // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi64
5674   // CHECK: sext <4 x i16> %{{.*}} to <4 x i64>
5675   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5676   return _mm256_maskz_cvtepi16_epi64(__U, __A);
5677 }
5678 
test_mm_mask_cvtepu8_epi32(__m128i __W,__mmask8 __U,__m128i __A)5679 __m128i test_mm_mask_cvtepu8_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5680   // CHECK-LABEL: @test_mm_mask_cvtepu8_epi32
5681   // CHECK: zext <4 x i8> %{{.*}} to <4 x i32>
5682   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5683   return _mm_mask_cvtepu8_epi32(__W, __U, __A);
5684 }
5685 
test_mm_maskz_cvtepu8_epi32(__mmask8 __U,__m128i __A)5686 __m128i test_mm_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) {
5687   // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi32
5688   // CHECK: zext <4 x i8> %{{.*}} to <4 x i32>
5689   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5690   return _mm_maskz_cvtepu8_epi32(__U, __A);
5691 }
5692 
test_mm256_mask_cvtepu8_epi32(__m256i __W,__mmask8 __U,__m128i __A)5693 __m256i test_mm256_mask_cvtepu8_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5694   // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi32
5695   // CHECK: zext <8 x i8> %{{.*}} to <8 x i32>
5696   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5697   return _mm256_mask_cvtepu8_epi32(__W, __U, __A);
5698 }
5699 
test_mm256_maskz_cvtepu8_epi32(__mmask8 __U,__m128i __A)5700 __m256i test_mm256_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) {
5701   // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi32
5702   // CHECK: zext <8 x i8> %{{.*}} to <8 x i32>
5703   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5704   return _mm256_maskz_cvtepu8_epi32(__U, __A);
5705 }
5706 
test_mm_mask_cvtepu8_epi64(__m128i __W,__mmask8 __U,__m128i __A)5707 __m128i test_mm_mask_cvtepu8_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5708   // CHECK-LABEL: @test_mm_mask_cvtepu8_epi64
5709   // CHECK: zext <2 x i8> %{{.*}} to <2 x i64>
5710   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5711   return _mm_mask_cvtepu8_epi64(__W, __U, __A);
5712 }
5713 
test_mm_maskz_cvtepu8_epi64(__mmask8 __U,__m128i __A)5714 __m128i test_mm_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
5715   // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi64
5716   // CHECK: zext <2 x i8> %{{.*}} to <2 x i64>
5717   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5718   return _mm_maskz_cvtepu8_epi64(__U, __A);
5719 }
5720 
test_mm256_mask_cvtepu8_epi64(__m256i __W,__mmask8 __U,__m128i __A)5721 __m256i test_mm256_mask_cvtepu8_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5722   // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi64
5723   // CHECK: zext <4 x i8> %{{.*}} to <4 x i64>
5724   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5725   return _mm256_mask_cvtepu8_epi64(__W, __U, __A);
5726 }
5727 
test_mm256_maskz_cvtepu8_epi64(__mmask8 __U,__m128i __A)5728 __m256i test_mm256_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
5729   // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi64
5730   // CHECK: zext <4 x i8> %{{.*}} to <4 x i64>
5731   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5732   return _mm256_maskz_cvtepu8_epi64(__U, __A);
5733 }
5734 
test_mm_mask_cvtepu32_epi64(__m128i __W,__mmask8 __U,__m128i __X)5735 __m128i test_mm_mask_cvtepu32_epi64(__m128i __W, __mmask8 __U, __m128i __X) {
5736   // CHECK-LABEL: @test_mm_mask_cvtepu32_epi64
5737   // CHECK: zext <2 x i32> %{{.*}} to <2 x i64>
5738   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5739   return _mm_mask_cvtepu32_epi64(__W, __U, __X);
5740 }
5741 
test_mm_maskz_cvtepu32_epi64(__mmask8 __U,__m128i __X)5742 __m128i test_mm_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) {
5743   // CHECK-LABEL: @test_mm_maskz_cvtepu32_epi64
5744   // CHECK: zext <2 x i32> %{{.*}} to <2 x i64>
5745   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5746   return _mm_maskz_cvtepu32_epi64(__U, __X);
5747 }
5748 
test_mm256_mask_cvtepu32_epi64(__m256i __W,__mmask8 __U,__m128i __X)5749 __m256i test_mm256_mask_cvtepu32_epi64(__m256i __W, __mmask8 __U, __m128i __X) {
5750   // CHECK-LABEL: @test_mm256_mask_cvtepu32_epi64
5751   // CHECK: zext <4 x i32> %{{.*}} to <4 x i64>
5752   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5753   return _mm256_mask_cvtepu32_epi64(__W, __U, __X);
5754 }
5755 
test_mm256_maskz_cvtepu32_epi64(__mmask8 __U,__m128i __X)5756 __m256i test_mm256_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) {
5757   // CHECK-LABEL: @test_mm256_maskz_cvtepu32_epi64
5758   // CHECK: zext <4 x i32> %{{.*}} to <4 x i64>
5759   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5760   return _mm256_maskz_cvtepu32_epi64(__U, __X);
5761 }
5762 
test_mm_mask_cvtepu16_epi32(__m128i __W,__mmask8 __U,__m128i __A)5763 __m128i test_mm_mask_cvtepu16_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5764   // CHECK-LABEL: @test_mm_mask_cvtepu16_epi32
5765   // CHECK: zext <4 x i16> %{{.*}} to <4 x i32>
5766   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5767   return _mm_mask_cvtepu16_epi32(__W, __U, __A);
5768 }
5769 
test_mm_maskz_cvtepu16_epi32(__mmask8 __U,__m128i __A)5770 __m128i test_mm_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) {
5771   // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi32
5772   // CHECK: zext <4 x i16> %{{.*}} to <4 x i32>
5773   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5774   return _mm_maskz_cvtepu16_epi32(__U, __A);
5775 }
5776 
test_mm256_mask_cvtepu16_epi32(__m256i __W,__mmask8 __U,__m128i __A)5777 __m256i test_mm256_mask_cvtepu16_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5778   // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi32
5779   // CHECK: zext <8 x i16> %{{.*}} to <8 x i32>
5780   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5781   return _mm256_mask_cvtepu16_epi32(__W, __U, __A);
5782 }
5783 
test_mm256_maskz_cvtepu16_epi32(__mmask8 __U,__m128i __A)5784 __m256i test_mm256_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) {
5785   // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi32
5786   // CHECK: zext <8 x i16> %{{.*}} to <8 x i32>
5787   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5788   return _mm256_maskz_cvtepu16_epi32(__U, __A);
5789 }
5790 
test_mm_mask_cvtepu16_epi64(__m128i __W,__mmask8 __U,__m128i __A)5791 __m128i test_mm_mask_cvtepu16_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5792   // CHECK-LABEL: @test_mm_mask_cvtepu16_epi64
5793   // CHECK: zext <2 x i16> %{{.*}} to <2 x i64>
5794   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5795   return _mm_mask_cvtepu16_epi64(__W, __U, __A);
5796 }
5797 
test_mm_maskz_cvtepu16_epi64(__mmask8 __U,__m128i __A)5798 __m128i test_mm_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
5799   // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi64
5800   // CHECK: zext <2 x i16> %{{.*}} to <2 x i64>
5801   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5802   return _mm_maskz_cvtepu16_epi64(__U, __A);
5803 }
5804 
test_mm256_mask_cvtepu16_epi64(__m256i __W,__mmask8 __U,__m128i __A)5805 __m256i test_mm256_mask_cvtepu16_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5806   // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi64
5807   // CHECK: zext <4 x i16> %{{.*}} to <4 x i64>
5808   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5809   return _mm256_mask_cvtepu16_epi64(__W, __U, __A);
5810 }
5811 
test_mm256_maskz_cvtepu16_epi64(__mmask8 __U,__m128i __A)5812 __m256i test_mm256_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
5813   // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi64
5814   // CHECK: zext <4 x i16> %{{.*}} to <4 x i64>
5815   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5816   return _mm256_maskz_cvtepu16_epi64(__U, __A);
5817 }
5818 
test_mm_rol_epi32(__m128i __A)5819 __m128i test_mm_rol_epi32(__m128i __A) {
5820   // CHECK-LABEL: @test_mm_rol_epi32
5821   // CHECK: @llvm.fshl.v4i32
5822   return _mm_rol_epi32(__A, 5);
5823 }
5824 
test_mm_mask_rol_epi32(__m128i __W,__mmask8 __U,__m128i __A)5825 __m128i test_mm_mask_rol_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5826   // CHECK-LABEL: @test_mm_mask_rol_epi32
5827   // CHECK: @llvm.fshl.v4i32
5828   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5829   return _mm_mask_rol_epi32(__W, __U, __A, 5);
5830 }
5831 
test_mm_maskz_rol_epi32(__mmask8 __U,__m128i __A)5832 __m128i test_mm_maskz_rol_epi32(__mmask8 __U, __m128i __A) {
5833   // CHECK-LABEL: @test_mm_maskz_rol_epi32
5834   // CHECK: @llvm.fshl.v4i32
5835   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5836   return _mm_maskz_rol_epi32(__U, __A, 5);
5837 }
5838 
test_mm256_rol_epi32(__m256i __A)5839 __m256i test_mm256_rol_epi32(__m256i __A) {
5840   // CHECK-LABEL: @test_mm256_rol_epi32
5841   // CHECK: @llvm.fshl.v8i32
5842   return _mm256_rol_epi32(__A, 5);
5843 }
5844 
test_mm256_mask_rol_epi32(__m256i __W,__mmask8 __U,__m256i __A)5845 __m256i test_mm256_mask_rol_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
5846   // CHECK-LABEL: @test_mm256_mask_rol_epi32
5847   // CHECK: @llvm.fshl.v8i32
5848   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5849   return _mm256_mask_rol_epi32(__W, __U, __A, 5);
5850 }
5851 
test_mm256_maskz_rol_epi32(__mmask8 __U,__m256i __A)5852 __m256i test_mm256_maskz_rol_epi32(__mmask8 __U, __m256i __A) {
5853   // CHECK-LABEL: @test_mm256_maskz_rol_epi32
5854   // CHECK: @llvm.fshl.v8i32
5855   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5856   return _mm256_maskz_rol_epi32(__U, __A, 5);
5857 }
5858 
test_mm_rol_epi64(__m128i __A)5859 __m128i test_mm_rol_epi64(__m128i __A) {
5860   // CHECK-LABEL: @test_mm_rol_epi64
5861   // CHECK: @llvm.fshl.v2i64
5862   return _mm_rol_epi64(__A, 5);
5863 }
5864 
test_mm_mask_rol_epi64(__m128i __W,__mmask8 __U,__m128i __A)5865 __m128i test_mm_mask_rol_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5866   // CHECK-LABEL: @test_mm_mask_rol_epi64
5867   // CHECK: @llvm.fshl.v2i64
5868   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5869   return _mm_mask_rol_epi64(__W, __U, __A, 5);
5870 }
5871 
test_mm_maskz_rol_epi64(__mmask8 __U,__m128i __A)5872 __m128i test_mm_maskz_rol_epi64(__mmask8 __U, __m128i __A) {
5873   // CHECK-LABEL: @test_mm_maskz_rol_epi64
5874   // CHECK: @llvm.fshl.v2i64
5875   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5876   return _mm_maskz_rol_epi64(__U, __A, 5);
5877 }
5878 
test_mm256_rol_epi64(__m256i __A)5879 __m256i test_mm256_rol_epi64(__m256i __A) {
5880   // CHECK-LABEL: @test_mm256_rol_epi64
5881   // CHECK: @llvm.fshl.v4i64
5882   return _mm256_rol_epi64(__A, 5);
5883 }
5884 
test_mm256_mask_rol_epi64(__m256i __W,__mmask8 __U,__m256i __A)5885 __m256i test_mm256_mask_rol_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
5886   // CHECK-LABEL: @test_mm256_mask_rol_epi64
5887   // CHECK: @llvm.fshl.v4i64
5888   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5889   return _mm256_mask_rol_epi64(__W, __U, __A, 5);
5890 }
5891 
test_mm256_maskz_rol_epi64(__mmask8 __U,__m256i __A)5892 __m256i test_mm256_maskz_rol_epi64(__mmask8 __U, __m256i __A) {
5893   // CHECK-LABEL: @test_mm256_maskz_rol_epi64
5894   // CHECK: @llvm.fshl.v4i64
5895   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5896   return _mm256_maskz_rol_epi64(__U, __A, 5);
5897 }
5898 
test_mm_rolv_epi32(__m128i __A,__m128i __B)5899 __m128i test_mm_rolv_epi32(__m128i __A, __m128i __B) {
5900   // CHECK-LABEL: @test_mm_rolv_epi32
5901   // CHECK: llvm.fshl.v4i32
5902   return _mm_rolv_epi32(__A, __B);
5903 }
5904 
test_mm_mask_rolv_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)5905 __m128i test_mm_mask_rolv_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
5906   // CHECK-LABEL: @test_mm_mask_rolv_epi32
5907   // CHECK: llvm.fshl.v4i32
5908   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5909   return _mm_mask_rolv_epi32(__W, __U, __A, __B);
5910 }
5911 
test_mm_maskz_rolv_epi32(__mmask8 __U,__m128i __A,__m128i __B)5912 __m128i test_mm_maskz_rolv_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
5913   // CHECK-LABEL: @test_mm_maskz_rolv_epi32
5914   // CHECK: llvm.fshl.v4i32
5915   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5916   return _mm_maskz_rolv_epi32(__U, __A, __B);
5917 }
5918 
test_mm256_rolv_epi32(__m256i __A,__m256i __B)5919 __m256i test_mm256_rolv_epi32(__m256i __A, __m256i __B) {
5920   // CHECK-LABEL: @test_mm256_rolv_epi32
5921   // CHECK: @llvm.fshl.v8i32
5922   return _mm256_rolv_epi32(__A, __B);
5923 }
5924 
test_mm256_mask_rolv_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)5925 __m256i test_mm256_mask_rolv_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
5926   // CHECK-LABEL: @test_mm256_mask_rolv_epi32
5927   // CHECK: @llvm.fshl.v8i32
5928   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5929   return _mm256_mask_rolv_epi32(__W, __U, __A, __B);
5930 }
5931 
test_mm256_maskz_rolv_epi32(__mmask8 __U,__m256i __A,__m256i __B)5932 __m256i test_mm256_maskz_rolv_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
5933   // CHECK-LABEL: @test_mm256_maskz_rolv_epi32
5934   // CHECK: @llvm.fshl.v8i32
5935   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5936   return _mm256_maskz_rolv_epi32(__U, __A, __B);
5937 }
5938 
test_mm_rolv_epi64(__m128i __A,__m128i __B)5939 __m128i test_mm_rolv_epi64(__m128i __A, __m128i __B) {
5940   // CHECK-LABEL: @test_mm_rolv_epi64
5941   // CHECK: @llvm.fshl.v2i64
5942   return _mm_rolv_epi64(__A, __B);
5943 }
5944 
test_mm_mask_rolv_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)5945 __m128i test_mm_mask_rolv_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
5946   // CHECK-LABEL: @test_mm_mask_rolv_epi64
5947   // CHECK: @llvm.fshl.v2i64
5948   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5949   return _mm_mask_rolv_epi64(__W, __U, __A, __B);
5950 }
5951 
test_mm_maskz_rolv_epi64(__mmask8 __U,__m128i __A,__m128i __B)5952 __m128i test_mm_maskz_rolv_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
5953   // CHECK-LABEL: @test_mm_maskz_rolv_epi64
5954   // CHECK: @llvm.fshl.v2i64
5955   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5956   return _mm_maskz_rolv_epi64(__U, __A, __B);
5957 }
5958 
test_mm256_rolv_epi64(__m256i __A,__m256i __B)5959 __m256i test_mm256_rolv_epi64(__m256i __A, __m256i __B) {
5960   // CHECK-LABEL: @test_mm256_rolv_epi64
5961   // CHECK: @llvm.fshl.v4i64
5962   return _mm256_rolv_epi64(__A, __B);
5963 }
5964 
test_mm256_mask_rolv_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)5965 __m256i test_mm256_mask_rolv_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
5966   // CHECK-LABEL: @test_mm256_mask_rolv_epi64
5967   // CHECK: @llvm.fshl.v4i64
5968   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5969   return _mm256_mask_rolv_epi64(__W, __U, __A, __B);
5970 }
5971 
test_mm256_maskz_rolv_epi64(__mmask8 __U,__m256i __A,__m256i __B)5972 __m256i test_mm256_maskz_rolv_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
5973   // CHECK-LABEL: @test_mm256_maskz_rolv_epi64
5974   // CHECK: @llvm.fshl.v4i64
5975   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5976   return _mm256_maskz_rolv_epi64(__U, __A, __B);
5977 }
5978 
test_mm_ror_epi32(__m128i __A)5979 __m128i test_mm_ror_epi32(__m128i __A) {
5980   // CHECK-LABEL: @test_mm_ror_epi32
5981   // CHECK: @llvm.fshr.v4i32
5982   return _mm_ror_epi32(__A, 5);
5983 }
5984 
test_mm_mask_ror_epi32(__m128i __W,__mmask8 __U,__m128i __A)5985 __m128i test_mm_mask_ror_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5986   // CHECK-LABEL: @test_mm_mask_ror_epi32
5987   // CHECK: @llvm.fshr.v4i32
5988   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5989   return _mm_mask_ror_epi32(__W, __U, __A, 5);
5990 }
5991 
test_mm_maskz_ror_epi32(__mmask8 __U,__m128i __A)5992 __m128i test_mm_maskz_ror_epi32(__mmask8 __U, __m128i __A) {
5993   // CHECK-LABEL: @test_mm_maskz_ror_epi32
5994   // CHECK: @llvm.fshr.v4i32
5995   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5996   return _mm_maskz_ror_epi32(__U, __A, 5);
5997 }
5998 
test_mm256_ror_epi32(__m256i __A)5999 __m256i test_mm256_ror_epi32(__m256i __A) {
6000   // CHECK-LABEL: @test_mm256_ror_epi32
6001   // CHECK: @llvm.fshr.v8i32
6002   return _mm256_ror_epi32(__A, 5);
6003 }
6004 
test_mm256_mask_ror_epi32(__m256i __W,__mmask8 __U,__m256i __A)6005 __m256i test_mm256_mask_ror_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
6006   // CHECK-LABEL: @test_mm256_mask_ror_epi32
6007   // CHECK: @llvm.fshr.v8i32
6008   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6009   return _mm256_mask_ror_epi32(__W, __U, __A, 5);
6010 }
6011 
test_mm256_maskz_ror_epi32(__mmask8 __U,__m256i __A)6012 __m256i test_mm256_maskz_ror_epi32(__mmask8 __U, __m256i __A) {
6013   // CHECK-LABEL: @test_mm256_maskz_ror_epi32
6014   // CHECK: @llvm.fshr.v8i32
6015   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6016   return _mm256_maskz_ror_epi32(__U, __A, 5);
6017 }
6018 
test_mm_ror_epi64(__m128i __A)6019 __m128i test_mm_ror_epi64(__m128i __A) {
6020   // CHECK-LABEL: @test_mm_ror_epi64
6021   // CHECK: @llvm.fshr.v2i64
6022   return _mm_ror_epi64(__A, 5);
6023 }
6024 
test_mm_mask_ror_epi64(__m128i __W,__mmask8 __U,__m128i __A)6025 __m128i test_mm_mask_ror_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
6026   // CHECK-LABEL: @test_mm_mask_ror_epi64
6027   // CHECK: @llvm.fshr.v2i64
6028   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6029   return _mm_mask_ror_epi64(__W, __U, __A, 5);
6030 }
6031 
test_mm_maskz_ror_epi64(__mmask8 __U,__m128i __A)6032 __m128i test_mm_maskz_ror_epi64(__mmask8 __U, __m128i __A) {
6033   // CHECK-LABEL: @test_mm_maskz_ror_epi64
6034   // CHECK: @llvm.fshr.v2i64
6035   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6036   return _mm_maskz_ror_epi64(__U, __A, 5);
6037 }
6038 
test_mm256_ror_epi64(__m256i __A)6039 __m256i test_mm256_ror_epi64(__m256i __A) {
6040   // CHECK-LABEL: @test_mm256_ror_epi64
6041   // CHECK: @llvm.fshr.v4i64
6042   return _mm256_ror_epi64(__A, 5);
6043 }
6044 
test_mm256_mask_ror_epi64(__m256i __W,__mmask8 __U,__m256i __A)6045 __m256i test_mm256_mask_ror_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
6046   // CHECK-LABEL: @test_mm256_mask_ror_epi64
6047   // CHECK: @llvm.fshr.v4i64
6048   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6049   return _mm256_mask_ror_epi64(__W, __U, __A,5);
6050 }
6051 
test_mm256_maskz_ror_epi64(__mmask8 __U,__m256i __A)6052 __m256i test_mm256_maskz_ror_epi64(__mmask8 __U, __m256i __A) {
6053   // CHECK-LABEL: @test_mm256_maskz_ror_epi64
6054   // CHECK: @llvm.fshr.v4i64
6055   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6056   return _mm256_maskz_ror_epi64(__U, __A, 5);
6057 }
6058 
6059 
test_mm_rorv_epi32(__m128i __A,__m128i __B)6060 __m128i test_mm_rorv_epi32(__m128i __A, __m128i __B) {
6061   // CHECK-LABEL: @test_mm_rorv_epi32
6062   // CHECK: @llvm.fshr.v4i32
6063   return _mm_rorv_epi32(__A, __B);
6064 }
6065 
test_mm_mask_rorv_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6066 __m128i test_mm_mask_rorv_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6067   // CHECK-LABEL: @test_mm_mask_rorv_epi32
6068   // CHECK: @llvm.fshr.v4i32
6069   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6070   return _mm_mask_rorv_epi32(__W, __U, __A, __B);
6071 }
6072 
test_mm_maskz_rorv_epi32(__mmask8 __U,__m128i __A,__m128i __B)6073 __m128i test_mm_maskz_rorv_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
6074   // CHECK-LABEL: @test_mm_maskz_rorv_epi32
6075   // CHECK: @llvm.fshr.v4i32
6076   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6077   return _mm_maskz_rorv_epi32(__U, __A, __B);
6078 }
6079 
test_mm256_rorv_epi32(__m256i __A,__m256i __B)6080 __m256i test_mm256_rorv_epi32(__m256i __A, __m256i __B) {
6081   // CHECK-LABEL: @test_mm256_rorv_epi32
6082   // CHECK: @llvm.fshr.v8i32
6083   return _mm256_rorv_epi32(__A, __B);
6084 }
6085 
test_mm256_mask_rorv_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)6086 __m256i test_mm256_mask_rorv_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
6087   // CHECK-LABEL: @test_mm256_mask_rorv_epi32
6088   // CHECK: @llvm.fshr.v8i32
6089   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6090   return _mm256_mask_rorv_epi32(__W, __U, __A, __B);
6091 }
6092 
test_mm256_maskz_rorv_epi32(__mmask8 __U,__m256i __A,__m256i __B)6093 __m256i test_mm256_maskz_rorv_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
6094   // CHECK-LABEL: @test_mm256_maskz_rorv_epi32
6095   // CHECK: @llvm.fshr.v8i32
6096   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6097   return _mm256_maskz_rorv_epi32(__U, __A, __B);
6098 }
6099 
test_mm_rorv_epi64(__m128i __A,__m128i __B)6100 __m128i test_mm_rorv_epi64(__m128i __A, __m128i __B) {
6101   // CHECK-LABEL: @test_mm_rorv_epi64
6102   // CHECK: @llvm.fshr.v2i64
6103   return _mm_rorv_epi64(__A, __B);
6104 }
6105 
test_mm_mask_rorv_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6106 __m128i test_mm_mask_rorv_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6107   // CHECK-LABEL: @test_mm_mask_rorv_epi64
6108   // CHECK: @llvm.fshr.v2i64
6109   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6110   return _mm_mask_rorv_epi64(__W, __U, __A, __B);
6111 }
6112 
test_mm_maskz_rorv_epi64(__mmask8 __U,__m128i __A,__m128i __B)6113 __m128i test_mm_maskz_rorv_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
6114   // CHECK-LABEL: @test_mm_maskz_rorv_epi64
6115   // CHECK: @llvm.fshr.v2i64
6116   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6117   return _mm_maskz_rorv_epi64(__U, __A, __B);
6118 }
6119 
test_mm256_rorv_epi64(__m256i __A,__m256i __B)6120 __m256i test_mm256_rorv_epi64(__m256i __A, __m256i __B) {
6121   // CHECK-LABEL: @test_mm256_rorv_epi64
6122   // CHECK: @llvm.fshr.v4i64
6123   return _mm256_rorv_epi64(__A, __B);
6124 }
6125 
test_mm256_mask_rorv_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)6126 __m256i test_mm256_mask_rorv_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
6127   // CHECK-LABEL: @test_mm256_mask_rorv_epi64
6128   // CHECK: @llvm.fshr.v4i64
6129   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6130   return _mm256_mask_rorv_epi64(__W, __U, __A, __B);
6131 }
6132 
test_mm256_maskz_rorv_epi64(__mmask8 __U,__m256i __A,__m256i __B)6133 __m256i test_mm256_maskz_rorv_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
6134   // CHECK-LABEL: @test_mm256_maskz_rorv_epi64
6135   // CHECK: @llvm.fshr.v4i64
6136   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6137   return _mm256_maskz_rorv_epi64(__U, __A, __B);
6138 }
6139 
test_mm_mask_sllv_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6140 __m128i test_mm_mask_sllv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6141   // CHECK-LABEL: @test_mm_mask_sllv_epi64
6142   // CHECK: @llvm.x86.avx2.psllv.q
6143   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6144   return _mm_mask_sllv_epi64(__W, __U, __X, __Y);
6145 }
6146 
test_mm_maskz_sllv_epi64(__mmask8 __U,__m128i __X,__m128i __Y)6147 __m128i test_mm_maskz_sllv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
6148   // CHECK-LABEL: @test_mm_maskz_sllv_epi64
6149   // CHECK: @llvm.x86.avx2.psllv.q
6150   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6151   return _mm_maskz_sllv_epi64(__U, __X, __Y);
6152 }
6153 
test_mm256_mask_sllv_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6154 __m256i test_mm256_mask_sllv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6155   // CHECK-LABEL: @test_mm256_mask_sllv_epi64
6156   // CHECK: @llvm.x86.avx2.psllv.q.256
6157   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6158   return _mm256_mask_sllv_epi64(__W, __U, __X, __Y);
6159 }
6160 
test_mm256_maskz_sllv_epi64(__mmask8 __U,__m256i __X,__m256i __Y)6161 __m256i test_mm256_maskz_sllv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
6162   // CHECK-LABEL: @test_mm256_maskz_sllv_epi64
6163   // CHECK: @llvm.x86.avx2.psllv.q.256
6164   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6165   return _mm256_maskz_sllv_epi64(__U, __X, __Y);
6166 }
6167 
test_mm_mask_sllv_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6168 __m128i test_mm_mask_sllv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6169   // CHECK-LABEL: @test_mm_mask_sllv_epi32
6170   // CHECK: @llvm.x86.avx2.psllv.d
6171   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6172   return _mm_mask_sllv_epi32(__W, __U, __X, __Y);
6173 }
6174 
test_mm_maskz_sllv_epi32(__mmask8 __U,__m128i __X,__m128i __Y)6175 __m128i test_mm_maskz_sllv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
6176   // CHECK-LABEL: @test_mm_maskz_sllv_epi32
6177   // CHECK: @llvm.x86.avx2.psllv.d
6178   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6179   return _mm_maskz_sllv_epi32(__U, __X, __Y);
6180 }
6181 
test_mm256_mask_sllv_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6182 __m256i test_mm256_mask_sllv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6183   // CHECK-LABEL: @test_mm256_mask_sllv_epi32
6184   // CHECK: @llvm.x86.avx2.psllv.d.256
6185   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6186   return _mm256_mask_sllv_epi32(__W, __U, __X, __Y);
6187 }
6188 
test_mm256_maskz_sllv_epi32(__mmask8 __U,__m256i __X,__m256i __Y)6189 __m256i test_mm256_maskz_sllv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
6190   // CHECK-LABEL: @test_mm256_maskz_sllv_epi32
6191   // CHECK: @llvm.x86.avx2.psllv.d.256
6192   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6193   return _mm256_maskz_sllv_epi32(__U, __X, __Y);
6194 }
6195 
test_mm_mask_srlv_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6196 __m128i test_mm_mask_srlv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6197   // CHECK-LABEL: @test_mm_mask_srlv_epi64
6198   // CHECK: @llvm.x86.avx2.psrlv.q
6199   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6200   return _mm_mask_srlv_epi64(__W, __U, __X, __Y);
6201 }
6202 
test_mm_maskz_srlv_epi64(__mmask8 __U,__m128i __X,__m128i __Y)6203 __m128i test_mm_maskz_srlv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
6204   // CHECK-LABEL: @test_mm_maskz_srlv_epi64
6205   // CHECK: @llvm.x86.avx2.psrlv.q
6206   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6207   return _mm_maskz_srlv_epi64(__U, __X, __Y);
6208 }
6209 
test_mm256_mask_srlv_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6210 __m256i test_mm256_mask_srlv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6211   // CHECK-LABEL: @test_mm256_mask_srlv_epi64
6212   // CHECK: @llvm.x86.avx2.psrlv.q.256
6213   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6214   return _mm256_mask_srlv_epi64(__W, __U, __X, __Y);
6215 }
6216 
test_mm256_maskz_srlv_epi64(__mmask8 __U,__m256i __X,__m256i __Y)6217 __m256i test_mm256_maskz_srlv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
6218   // CHECK-LABEL: @test_mm256_maskz_srlv_epi64
6219   // CHECK: @llvm.x86.avx2.psrlv.q.256
6220   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6221   return _mm256_maskz_srlv_epi64(__U, __X, __Y);
6222 }
6223 
test_mm_mask_srlv_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6224 __m128i test_mm_mask_srlv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6225   // CHECK-LABEL: @test_mm_mask_srlv_epi32
6226   // CHECK: @llvm.x86.avx2.psrlv.d
6227   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6228   return _mm_mask_srlv_epi32(__W, __U, __X, __Y);
6229 }
6230 
test_mm_maskz_srlv_epi32(__mmask8 __U,__m128i __X,__m128i __Y)6231 __m128i test_mm_maskz_srlv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
6232   // CHECK-LABEL: @test_mm_maskz_srlv_epi32
6233   // CHECK: @llvm.x86.avx2.psrlv.d
6234   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6235   return _mm_maskz_srlv_epi32(__U, __X, __Y);
6236 }
6237 
test_mm256_mask_srlv_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6238 __m256i test_mm256_mask_srlv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6239   // CHECK-LABEL: @test_mm256_mask_srlv_epi32
6240   // CHECK: @llvm.x86.avx2.psrlv.d.256
6241   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6242   return _mm256_mask_srlv_epi32(__W, __U, __X, __Y);
6243 }
6244 
test_mm256_maskz_srlv_epi32(__mmask8 __U,__m256i __X,__m256i __Y)6245 __m256i test_mm256_maskz_srlv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
6246   // CHECK-LABEL: @test_mm256_maskz_srlv_epi32
6247   // CHECK: @llvm.x86.avx2.psrlv.d.256
6248   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6249   return _mm256_maskz_srlv_epi32(__U, __X, __Y);
6250 }
6251 
test_mm_mask_srl_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6252 __m128i test_mm_mask_srl_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6253   // CHECK-LABEL: @test_mm_mask_srl_epi32
6254   // CHECK: @llvm.x86.sse2.psrl.d
6255   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6256   return _mm_mask_srl_epi32(__W, __U, __A, __B);
6257 }
6258 
test_mm_maskz_srl_epi32(__mmask8 __U,__m128i __A,__m128i __B)6259 __m128i test_mm_maskz_srl_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
6260   // CHECK-LABEL: @test_mm_maskz_srl_epi32
6261   // CHECK: @llvm.x86.sse2.psrl.d
6262   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6263   return _mm_maskz_srl_epi32(__U, __A, __B);
6264 }
6265 
test_mm256_mask_srl_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6266 __m256i test_mm256_mask_srl_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6267   // CHECK-LABEL: @test_mm256_mask_srl_epi32
6268   // CHECK: @llvm.x86.avx2.psrl.d
6269   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6270   return _mm256_mask_srl_epi32(__W, __U, __A, __B);
6271 }
6272 
test_mm256_maskz_srl_epi32(__mmask8 __U,__m256i __A,__m128i __B)6273 __m256i test_mm256_maskz_srl_epi32(__mmask8 __U, __m256i __A, __m128i __B) {
6274   // CHECK-LABEL: @test_mm256_maskz_srl_epi32
6275   // CHECK: @llvm.x86.avx2.psrl.d
6276   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6277   return _mm256_maskz_srl_epi32(__U, __A, __B);
6278 }
6279 
test_mm_mask_srli_epi32(__m128i __W,__mmask8 __U,__m128i __A)6280 __m128i test_mm_mask_srli_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
6281   // CHECK-LABEL: @test_mm_mask_srli_epi32
6282   // CHECK: @llvm.x86.sse2.psrli.d
6283   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6284   return _mm_mask_srli_epi32(__W, __U, __A, 5);
6285 }
6286 
test_mm_mask_srli_epi32_2(__m128i __W,__mmask8 __U,__m128i __A,int __B)6287 __m128i test_mm_mask_srli_epi32_2(__m128i __W, __mmask8 __U, __m128i __A, int __B) {
6288   // CHECK-LABEL: @test_mm_mask_srli_epi32_2
6289   // CHECK: @llvm.x86.sse2.psrli.d
6290   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6291   return _mm_mask_srli_epi32(__W, __U, __A, __B);
6292 }
6293 
test_mm_maskz_srli_epi32(__mmask8 __U,__m128i __A)6294 __m128i test_mm_maskz_srli_epi32(__mmask8 __U, __m128i __A) {
6295   // CHECK-LABEL: @test_mm_maskz_srli_epi32
6296   // CHECK: @llvm.x86.sse2.psrli.d
6297   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6298   return _mm_maskz_srli_epi32(__U, __A, 5);
6299 }
6300 
test_mm_maskz_srli_epi32_2(__mmask8 __U,__m128i __A,int __B)6301 __m128i test_mm_maskz_srli_epi32_2(__mmask8 __U, __m128i __A, int __B) {
6302   // CHECK-LABEL: @test_mm_maskz_srli_epi32_2
6303   // CHECK: @llvm.x86.sse2.psrli.d
6304   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6305   return _mm_maskz_srli_epi32(__U, __A, __B);
6306 }
6307 
test_mm256_mask_srli_epi32(__m256i __W,__mmask8 __U,__m256i __A)6308 __m256i test_mm256_mask_srli_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
6309   // CHECK-LABEL: @test_mm256_mask_srli_epi32
6310   // CHECK: @llvm.x86.avx2.psrli.d
6311   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6312   return _mm256_mask_srli_epi32(__W, __U, __A, 5);
6313 }
6314 
test_mm256_mask_srli_epi32_2(__m256i __W,__mmask8 __U,__m256i __A,int __B)6315 __m256i test_mm256_mask_srli_epi32_2(__m256i __W, __mmask8 __U, __m256i __A, int __B) {
6316   // CHECK-LABEL: @test_mm256_mask_srli_epi32_2
6317   // CHECK: @llvm.x86.avx2.psrli.d
6318   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6319   return _mm256_mask_srli_epi32(__W, __U, __A, __B);
6320 }
6321 
test_mm256_maskz_srli_epi32(__mmask8 __U,__m256i __A)6322 __m256i test_mm256_maskz_srli_epi32(__mmask8 __U, __m256i __A) {
6323   // CHECK-LABEL: @test_mm256_maskz_srli_epi32
6324   // CHECK: @llvm.x86.avx2.psrli.d
6325   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6326   return _mm256_maskz_srli_epi32(__U, __A, 5);
6327 }
6328 
test_mm256_maskz_srli_epi32_2(__mmask8 __U,__m256i __A,int __B)6329 __m256i test_mm256_maskz_srli_epi32_2(__mmask8 __U, __m256i __A, int __B) {
6330   // CHECK-LABEL: @test_mm256_maskz_srli_epi32_2
6331   // CHECK: @llvm.x86.avx2.psrli.d
6332   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6333   return _mm256_maskz_srli_epi32(__U, __A, __B);
6334 }
test_mm_mask_srl_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6335 __m128i test_mm_mask_srl_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6336   // CHECK-LABEL: @test_mm_mask_srl_epi64
6337   // CHECK: @llvm.x86.sse2.psrl.q
6338   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6339   return _mm_mask_srl_epi64(__W, __U, __A, __B);
6340 }
6341 
test_mm_maskz_srl_epi64(__mmask8 __U,__m128i __A,__m128i __B)6342 __m128i test_mm_maskz_srl_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
6343   // CHECK-LABEL: @test_mm_maskz_srl_epi64
6344   // CHECK: @llvm.x86.sse2.psrl.q
6345   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6346   return _mm_maskz_srl_epi64(__U, __A, __B);
6347 }
6348 
test_mm256_mask_srl_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6349 __m256i test_mm256_mask_srl_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6350   // CHECK-LABEL: @test_mm256_mask_srl_epi64
6351   // CHECK: @llvm.x86.avx2.psrl.q
6352   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6353   return _mm256_mask_srl_epi64(__W, __U, __A, __B);
6354 }
6355 
test_mm256_maskz_srl_epi64(__mmask8 __U,__m256i __A,__m128i __B)6356 __m256i test_mm256_maskz_srl_epi64(__mmask8 __U, __m256i __A, __m128i __B) {
6357   // CHECK-LABEL: @test_mm256_maskz_srl_epi64
6358   // CHECK: @llvm.x86.avx2.psrl.q
6359   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6360   return _mm256_maskz_srl_epi64(__U, __A, __B);
6361 }
6362 
test_mm_mask_srli_epi64(__m128i __W,__mmask8 __U,__m128i __A)6363 __m128i test_mm_mask_srli_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
6364   // CHECK-LABEL: @test_mm_mask_srli_epi64
6365   // CHECK: @llvm.x86.sse2.psrli.q
6366   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6367   return _mm_mask_srli_epi64(__W, __U, __A, 5);
6368 }
6369 
test_mm_mask_srli_epi64_2(__m128i __W,__mmask8 __U,__m128i __A,int __B)6370 __m128i test_mm_mask_srli_epi64_2(__m128i __W, __mmask8 __U, __m128i __A, int __B) {
6371   // CHECK-LABEL: @test_mm_mask_srli_epi64_2
6372   // CHECK: @llvm.x86.sse2.psrli.q
6373   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6374   return _mm_mask_srli_epi64(__W, __U, __A, __B);
6375 }
6376 
test_mm_maskz_srli_epi64(__mmask8 __U,__m128i __A)6377 __m128i test_mm_maskz_srli_epi64(__mmask8 __U, __m128i __A) {
6378   // CHECK-LABEL: @test_mm_maskz_srli_epi64
6379   // CHECK: @llvm.x86.sse2.psrli.q
6380   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6381   return _mm_maskz_srli_epi64(__U, __A, 5);
6382 }
6383 
test_mm_maskz_srli_epi64_2(__mmask8 __U,__m128i __A,int __B)6384 __m128i test_mm_maskz_srli_epi64_2(__mmask8 __U, __m128i __A, int __B) {
6385   // CHECK-LABEL: @test_mm_maskz_srli_epi64_2
6386   // CHECK: @llvm.x86.sse2.psrli.q
6387   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6388   return _mm_maskz_srli_epi64(__U, __A, __B);
6389 }
6390 
test_mm256_mask_srli_epi64(__m256i __W,__mmask8 __U,__m256i __A)6391 __m256i test_mm256_mask_srli_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
6392   // CHECK-LABEL: @test_mm256_mask_srli_epi64
6393   // CHECK: @llvm.x86.avx2.psrli.q
6394   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6395   return _mm256_mask_srli_epi64(__W, __U, __A, 5);
6396 }
6397 
test_mm256_mask_srli_epi64_2(__m256i __W,__mmask8 __U,__m256i __A,int __B)6398 __m256i test_mm256_mask_srli_epi64_2(__m256i __W, __mmask8 __U, __m256i __A, int __B) {
6399   // CHECK-LABEL: @test_mm256_mask_srli_epi64_2
6400   // CHECK: @llvm.x86.avx2.psrli.q
6401   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6402   return _mm256_mask_srli_epi64(__W, __U, __A, __B);
6403 }
6404 
test_mm256_maskz_srli_epi64(__mmask8 __U,__m256i __A)6405 __m256i test_mm256_maskz_srli_epi64(__mmask8 __U, __m256i __A) {
6406   // CHECK-LABEL: @test_mm256_maskz_srli_epi64
6407   // CHECK: @llvm.x86.avx2.psrli.q
6408   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6409   return _mm256_maskz_srli_epi64(__U, __A, 5);
6410 }
6411 
test_mm256_maskz_srli_epi64_2(__mmask8 __U,__m256i __A)6412 __m256i test_mm256_maskz_srli_epi64_2(__mmask8 __U, __m256i __A) {
6413   // CHECK-LABEL: @test_mm256_maskz_srli_epi64_2
6414   // CHECK: @llvm.x86.avx2.psrli.q
6415   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6416   return _mm256_maskz_srli_epi64(__U, __A, 5);
6417 }
6418 
test_mm_mask_sll_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6419 __m128i test_mm_mask_sll_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6420   // CHECK-LABEL: @test_mm_mask_sll_epi32
6421   // CHECK: @llvm.x86.sse2.psll.d
6422   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6423   return _mm_mask_sll_epi32(__W, __U, __A, __B);
6424 }
6425 
test_mm_maskz_sll_epi32(__mmask8 __U,__m128i __A,__m128i __B)6426 __m128i test_mm_maskz_sll_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
6427   // CHECK-LABEL: @test_mm_maskz_sll_epi32
6428   // CHECK: @llvm.x86.sse2.psll.d
6429   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6430   return _mm_maskz_sll_epi32(__U, __A, __B);
6431 }
6432 
test_mm256_mask_sll_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6433 __m256i test_mm256_mask_sll_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6434   // CHECK-LABEL: @test_mm256_mask_sll_epi32
6435   // CHECK: @llvm.x86.avx2.psll.d
6436   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6437   return _mm256_mask_sll_epi32(__W, __U, __A, __B);
6438 }
6439 
test_mm256_maskz_sll_epi32(__mmask8 __U,__m256i __A,__m128i __B)6440 __m256i test_mm256_maskz_sll_epi32(__mmask8 __U, __m256i __A, __m128i __B) {
6441   // CHECK-LABEL: @test_mm256_maskz_sll_epi32
6442   // CHECK: @llvm.x86.avx2.psll.d
6443   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6444   return _mm256_maskz_sll_epi32(__U, __A, __B);
6445 }
6446 
test_mm_mask_slli_epi32(__m128i __W,__mmask8 __U,__m128i __A)6447 __m128i test_mm_mask_slli_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
6448   // CHECK-LABEL: @test_mm_mask_slli_epi32
6449   // CHECK: @llvm.x86.sse2.pslli.d
6450   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6451   return _mm_mask_slli_epi32(__W, __U, __A, 5);
6452 }
6453 
test_mm_mask_slli_epi32_2(__m128i __W,__mmask8 __U,__m128i __A,int __B)6454 __m128i test_mm_mask_slli_epi32_2(__m128i __W, __mmask8 __U, __m128i __A, int __B) {
6455   // CHECK-LABEL: @test_mm_mask_slli_epi32_2
6456   // CHECK: @llvm.x86.sse2.pslli.d
6457   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6458   return _mm_mask_slli_epi32(__W, __U, __A, __B);
6459 }
6460 
test_mm_maskz_slli_epi32(__mmask8 __U,__m128i __A)6461 __m128i test_mm_maskz_slli_epi32(__mmask8 __U, __m128i __A) {
6462   // CHECK-LABEL: @test_mm_maskz_slli_epi32
6463   // CHECK: @llvm.x86.sse2.pslli.d
6464   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6465   return _mm_maskz_slli_epi32(__U, __A, 5);
6466 }
6467 
test_mm_maskz_slli_epi32_2(__mmask8 __U,__m128i __A,int __B)6468 __m128i test_mm_maskz_slli_epi32_2(__mmask8 __U, __m128i __A, int __B) {
6469   // CHECK-LABEL: @test_mm_maskz_slli_epi32_2
6470   // CHECK: @llvm.x86.sse2.pslli.d
6471   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6472   return _mm_maskz_slli_epi32(__U, __A, __B);
6473 }
6474 
test_mm256_mask_slli_epi32(__m256i __W,__mmask8 __U,__m256i __A)6475 __m256i test_mm256_mask_slli_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
6476   // CHECK-LABEL: @test_mm256_mask_slli_epi32
6477   // CHECK: @llvm.x86.avx2.pslli.d
6478   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6479   return _mm256_mask_slli_epi32(__W, __U, __A, 5);
6480 }
6481 
test_mm256_mask_slli_epi32_2(__m256i __W,__mmask8 __U,__m256i __A,int __B)6482 __m256i test_mm256_mask_slli_epi32_2(__m256i __W, __mmask8 __U, __m256i __A, int __B) {
6483   // CHECK-LABEL: @test_mm256_mask_slli_epi32_2
6484   // CHECK: @llvm.x86.avx2.pslli.d
6485   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6486   return _mm256_mask_slli_epi32(__W, __U, __A, __B);
6487 }
6488 
test_mm256_maskz_slli_epi32(__mmask8 __U,__m256i __A)6489 __m256i test_mm256_maskz_slli_epi32(__mmask8 __U, __m256i __A) {
6490   // CHECK-LABEL: @test_mm256_maskz_slli_epi32
6491   // CHECK: @llvm.x86.avx2.pslli.d
6492   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6493   return _mm256_maskz_slli_epi32(__U, __A, 5);
6494 }
6495 
test_mm256_maskz_slli_epi32_2(__mmask8 __U,__m256i __A,int __B)6496 __m256i test_mm256_maskz_slli_epi32_2(__mmask8 __U, __m256i __A, int __B) {
6497   // CHECK-LABEL: @test_mm256_maskz_slli_epi32_2
6498   // CHECK: @llvm.x86.avx2.pslli.d
6499   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6500   return _mm256_maskz_slli_epi32(__U, __A, __B);
6501 }
6502 
test_mm_mask_sll_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6503 __m128i test_mm_mask_sll_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6504   // CHECK-LABEL: @test_mm_mask_sll_epi64
6505   // CHECK: @llvm.x86.sse2.psll.q
6506   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6507   return _mm_mask_sll_epi64(__W, __U, __A, __B);
6508 }
6509 
test_mm_maskz_sll_epi64(__mmask8 __U,__m128i __A,__m128i __B)6510 __m128i test_mm_maskz_sll_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
6511   // CHECK-LABEL: @test_mm_maskz_sll_epi64
6512   // CHECK: @llvm.x86.sse2.psll.q
6513   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6514   return _mm_maskz_sll_epi64(__U, __A, __B);
6515 }
6516 
test_mm256_mask_sll_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6517 __m256i test_mm256_mask_sll_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6518   // CHECK-LABEL: @test_mm256_mask_sll_epi64
6519   // CHECK: @llvm.x86.avx2.psll.q
6520   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6521   return _mm256_mask_sll_epi64(__W, __U, __A, __B);
6522 }
6523 
test_mm256_maskz_sll_epi64(__mmask8 __U,__m256i __A,__m128i __B)6524 __m256i test_mm256_maskz_sll_epi64(__mmask8 __U, __m256i __A, __m128i __B) {
6525   // CHECK-LABEL: @test_mm256_maskz_sll_epi64
6526   // CHECK: @llvm.x86.avx2.psll.q
6527   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6528   return _mm256_maskz_sll_epi64(__U, __A, __B);
6529 }
6530 
test_mm_mask_slli_epi64(__m128i __W,__mmask8 __U,__m128i __A)6531 __m128i test_mm_mask_slli_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
6532   // CHECK-LABEL: @test_mm_mask_slli_epi64
6533   // CHECK: @llvm.x86.sse2.pslli.q
6534   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6535   return _mm_mask_slli_epi64(__W, __U, __A, 5);
6536 }
6537 
test_mm_mask_slli_epi64_2(__m128i __W,__mmask8 __U,__m128i __A,int __B)6538 __m128i test_mm_mask_slli_epi64_2(__m128i __W, __mmask8 __U, __m128i __A, int __B) {
6539   // CHECK-LABEL: @test_mm_mask_slli_epi64_2
6540   // CHECK: @llvm.x86.sse2.pslli.q
6541   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6542   return _mm_mask_slli_epi64(__W, __U, __A, __B);
6543 }
6544 
test_mm_maskz_slli_epi64(__mmask8 __U,__m128i __A)6545 __m128i test_mm_maskz_slli_epi64(__mmask8 __U, __m128i __A) {
6546   // CHECK-LABEL: @test_mm_maskz_slli_epi64
6547   // CHECK: @llvm.x86.sse2.pslli.q
6548   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6549   return _mm_maskz_slli_epi64(__U, __A, 5);
6550 }
6551 
test_mm_maskz_slli_epi64_2(__mmask8 __U,__m128i __A,int __B)6552 __m128i test_mm_maskz_slli_epi64_2(__mmask8 __U, __m128i __A, int __B) {
6553   // CHECK-LABEL: @test_mm_maskz_slli_epi64_2
6554   // CHECK: @llvm.x86.sse2.pslli.q
6555   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6556   return _mm_maskz_slli_epi64(__U, __A, __B);
6557 }
6558 
test_mm256_mask_slli_epi64(__m256i __W,__mmask8 __U,__m256i __A)6559 __m256i test_mm256_mask_slli_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
6560   // CHECK-LABEL: @test_mm256_mask_slli_epi64
6561   // CHECK: @llvm.x86.avx2.pslli.q
6562   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6563   return _mm256_mask_slli_epi64(__W, __U, __A, 5);
6564 }
6565 
test_mm256_mask_slli_epi64_2(__m256i __W,__mmask8 __U,__m256i __A,int __B)6566 __m256i test_mm256_mask_slli_epi64_2(__m256i __W, __mmask8 __U, __m256i __A, int __B) {
6567   // CHECK-LABEL: @test_mm256_mask_slli_epi64_2
6568   // CHECK: @llvm.x86.avx2.pslli.q
6569   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6570   return _mm256_mask_slli_epi64(__W, __U, __A, __B);
6571 }
6572 
test_mm256_maskz_slli_epi64(__mmask8 __U,__m256i __A)6573 __m256i test_mm256_maskz_slli_epi64(__mmask8 __U, __m256i __A) {
6574   // CHECK-LABEL: @test_mm256_maskz_slli_epi64
6575   // CHECK: @llvm.x86.avx2.pslli.q
6576   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6577   return _mm256_maskz_slli_epi64(__U, __A, 5);
6578 }
6579 
test_mm256_maskz_slli_epi64_2(__mmask8 __U,__m256i __A)6580 __m256i test_mm256_maskz_slli_epi64_2(__mmask8 __U, __m256i __A) {
6581   // CHECK-LABEL: @test_mm256_maskz_slli_epi64_2
6582   // CHECK: @llvm.x86.avx2.pslli.q
6583   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6584   return _mm256_maskz_slli_epi64(__U, __A, 5);
6585 }
6586 
test_mm_mask_srav_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6587 __m128i test_mm_mask_srav_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6588   // CHECK-LABEL: @test_mm_mask_srav_epi32
6589   // CHECK: @llvm.x86.avx2.psrav.d
6590   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6591   return _mm_mask_srav_epi32(__W, __U, __X, __Y);
6592 }
6593 
test_mm_maskz_srav_epi32(__mmask8 __U,__m128i __X,__m128i __Y)6594 __m128i test_mm_maskz_srav_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
6595   // CHECK-LABEL: @test_mm_maskz_srav_epi32
6596   // CHECK: @llvm.x86.avx2.psrav.d
6597   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6598   return _mm_maskz_srav_epi32(__U, __X, __Y);
6599 }
6600 
test_mm256_mask_srav_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6601 __m256i test_mm256_mask_srav_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6602   // CHECK-LABEL: @test_mm256_mask_srav_epi32
6603   // CHECK: @llvm.x86.avx2.psrav.d.256
6604   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6605   return _mm256_mask_srav_epi32(__W, __U, __X, __Y);
6606 }
6607 
test_mm256_maskz_srav_epi32(__mmask8 __U,__m256i __X,__m256i __Y)6608 __m256i test_mm256_maskz_srav_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
6609   // CHECK-LABEL: @test_mm256_maskz_srav_epi32
6610   // CHECK: @llvm.x86.avx2.psrav.d.256
6611   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6612   return _mm256_maskz_srav_epi32(__U, __X, __Y);
6613 }
6614 
test_mm_srav_epi64(__m128i __X,__m128i __Y)6615 __m128i test_mm_srav_epi64(__m128i __X, __m128i __Y) {
6616   // CHECK-LABEL: @test_mm_srav_epi64
6617   // CHECK: @llvm.x86.avx512.psrav.q.128
6618   return _mm_srav_epi64(__X, __Y);
6619 }
6620 
test_mm_mask_srav_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6621 __m128i test_mm_mask_srav_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6622   // CHECK-LABEL: @test_mm_mask_srav_epi64
6623   // CHECK: @llvm.x86.avx512.psrav.q.128
6624   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6625   return _mm_mask_srav_epi64(__W, __U, __X, __Y);
6626 }
6627 
test_mm_maskz_srav_epi64(__mmask8 __U,__m128i __X,__m128i __Y)6628 __m128i test_mm_maskz_srav_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
6629   // CHECK-LABEL: @test_mm_maskz_srav_epi64
6630   // CHECK: @llvm.x86.avx512.psrav.q.128
6631   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6632   return _mm_maskz_srav_epi64(__U, __X, __Y);
6633 }
6634 
test_mm256_srav_epi64(__m256i __X,__m256i __Y)6635 __m256i test_mm256_srav_epi64(__m256i __X, __m256i __Y) {
6636   // CHECK-LABEL: @test_mm256_srav_epi64
6637   // CHECK: @llvm.x86.avx512.psrav.q.256
6638   return _mm256_srav_epi64(__X, __Y);
6639 }
6640 
test_mm256_mask_srav_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6641 __m256i test_mm256_mask_srav_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6642   // CHECK-LABEL: @test_mm256_mask_srav_epi64
6643   // CHECK: @llvm.x86.avx512.psrav.q.256
6644   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6645   return _mm256_mask_srav_epi64(__W, __U, __X, __Y);
6646 }
6647 
test_mm256_maskz_srav_epi64(__mmask8 __U,__m256i __X,__m256i __Y)6648 __m256i test_mm256_maskz_srav_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
6649   // CHECK-LABEL: @test_mm256_maskz_srav_epi64
6650   // CHECK: @llvm.x86.avx512.psrav.q.256
6651   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6652   return _mm256_maskz_srav_epi64(__U, __X, __Y);
6653 }
6654 
test_mm_store_epi32(void * __P,__m128i __A)6655 void test_mm_store_epi32(void *__P, __m128i __A) {
6656   // CHECK-LABEL: @test_mm_store_epi32
6657   // CHECK: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}
6658   return _mm_store_epi32(__P, __A);
6659 }
6660 
test_mm_mask_store_epi32(void * __P,__mmask8 __U,__m128i __A)6661 void test_mm_mask_store_epi32(void *__P, __mmask8 __U, __m128i __A) {
6662   // CHECK-LABEL: @test_mm_mask_store_epi32
6663   // CHECK: @llvm.masked.store.v4i32.p0v4i32(<4 x i32> %{{.*}}, <4 x i32>* %{{.}}, i32 16, <4 x i1> %{{.*}})
6664   return _mm_mask_store_epi32(__P, __U, __A);
6665 }
6666 
test_mm256_store_epi32(void * __P,__m256i __A)6667 void test_mm256_store_epi32(void *__P, __m256i __A) {
6668   // CHECK-LABEL: @test_mm256_store_epi32
6669   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}
6670   return _mm256_store_epi32(__P, __A);
6671 }
6672 
test_mm256_mask_store_epi32(void * __P,__mmask8 __U,__m256i __A)6673 void test_mm256_mask_store_epi32(void *__P, __mmask8 __U, __m256i __A) {
6674   // CHECK-LABEL: @test_mm256_mask_store_epi32
6675   // CHECK: @llvm.masked.store.v8i32.p0v8i32(<8 x i32> %{{.*}}, <8 x i32>* %{{.}}, i32 32, <8 x i1> %{{.*}})
6676   return _mm256_mask_store_epi32(__P, __U, __A);
6677 }
6678 
test_mm_mask_mov_epi32(__m128i __W,__mmask8 __U,__m128i __A)6679 __m128i test_mm_mask_mov_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
6680   // CHECK-LABEL: @test_mm_mask_mov_epi32
6681   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6682   return _mm_mask_mov_epi32(__W, __U, __A);
6683 }
6684 
test_mm_maskz_mov_epi32(__mmask8 __U,__m128i __A)6685 __m128i test_mm_maskz_mov_epi32(__mmask8 __U, __m128i __A) {
6686   // CHECK-LABEL: @test_mm_maskz_mov_epi32
6687   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6688   return _mm_maskz_mov_epi32(__U, __A);
6689 }
6690 
test_mm256_mask_mov_epi32(__m256i __W,__mmask8 __U,__m256i __A)6691 __m256i test_mm256_mask_mov_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
6692   // CHECK-LABEL: @test_mm256_mask_mov_epi32
6693   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6694   return _mm256_mask_mov_epi32(__W, __U, __A);
6695 }
6696 
test_mm256_maskz_mov_epi32(__mmask8 __U,__m256i __A)6697 __m256i test_mm256_maskz_mov_epi32(__mmask8 __U, __m256i __A) {
6698   // CHECK-LABEL: @test_mm256_maskz_mov_epi32
6699   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6700   return _mm256_maskz_mov_epi32(__U, __A);
6701 }
6702 
test_mm_mask_mov_epi64(__m128i __W,__mmask8 __U,__m128i __A)6703 __m128i test_mm_mask_mov_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
6704   // CHECK-LABEL: @test_mm_mask_mov_epi64
6705   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6706   return _mm_mask_mov_epi64(__W, __U, __A);
6707 }
6708 
test_mm_maskz_mov_epi64(__mmask8 __U,__m128i __A)6709 __m128i test_mm_maskz_mov_epi64(__mmask8 __U, __m128i __A) {
6710   // CHECK-LABEL: @test_mm_maskz_mov_epi64
6711   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6712   return _mm_maskz_mov_epi64(__U, __A);
6713 }
6714 
test_mm256_mask_mov_epi64(__m256i __W,__mmask8 __U,__m256i __A)6715 __m256i test_mm256_mask_mov_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
6716   // CHECK-LABEL: @test_mm256_mask_mov_epi64
6717   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6718   return _mm256_mask_mov_epi64(__W, __U, __A);
6719 }
6720 
test_mm256_maskz_mov_epi64(__mmask8 __U,__m256i __A)6721 __m256i test_mm256_maskz_mov_epi64(__mmask8 __U, __m256i __A) {
6722   // CHECK-LABEL: @test_mm256_maskz_mov_epi64
6723   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6724   return _mm256_maskz_mov_epi64(__U, __A);
6725 }
6726 
test_mm_load_epi32(void const * __P)6727 __m128i test_mm_load_epi32(void const *__P) {
6728   // CHECK-LABEL: @test_mm_load_epi32
6729   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}
6730   return _mm_load_epi32(__P);
6731 }
6732 
test_mm_mask_load_epi32(__m128i __W,__mmask8 __U,void const * __P)6733 __m128i test_mm_mask_load_epi32(__m128i __W, __mmask8 __U, void const *__P) {
6734   // CHECK-LABEL: @test_mm_mask_load_epi32
6735   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
6736   return _mm_mask_load_epi32(__W, __U, __P);
6737 }
6738 
test_mm_maskz_load_epi32(__mmask8 __U,void const * __P)6739 __m128i test_mm_maskz_load_epi32(__mmask8 __U, void const *__P) {
6740   // CHECK-LABEL: @test_mm_maskz_load_epi32
6741   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
6742   return _mm_maskz_load_epi32(__U, __P);
6743 }
6744 
test_mm256_load_epi32(void const * __P)6745 __m256i test_mm256_load_epi32(void const *__P) {
6746   // CHECK-LABEL: @test_mm256_load_epi32
6747   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}
6748   return _mm256_load_epi32(__P);
6749 }
6750 
test_mm256_mask_load_epi32(__m256i __W,__mmask8 __U,void const * __P)6751 __m256i test_mm256_mask_load_epi32(__m256i __W, __mmask8 __U, void const *__P) {
6752   // CHECK-LABEL: @test_mm256_mask_load_epi32
6753   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
6754   return _mm256_mask_load_epi32(__W, __U, __P);
6755 }
6756 
test_mm256_maskz_load_epi32(__mmask8 __U,void const * __P)6757 __m256i test_mm256_maskz_load_epi32(__mmask8 __U, void const *__P) {
6758   // CHECK-LABEL: @test_mm256_maskz_load_epi32
6759   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
6760   return _mm256_maskz_load_epi32(__U, __P);
6761 }
6762 
test_mm_load_epi64(void const * __P)6763 __m128i test_mm_load_epi64(void const *__P) {
6764   // CHECK-LABEL: @test_mm_load_epi64
6765   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}
6766   return _mm_load_epi64(__P);
6767 }
6768 
test_mm_mask_load_epi64(__m128i __W,__mmask8 __U,void const * __P)6769 __m128i test_mm_mask_load_epi64(__m128i __W, __mmask8 __U, void const *__P) {
6770   // CHECK-LABEL: @test_mm_mask_load_epi64
6771   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
6772   return _mm_mask_load_epi64(__W, __U, __P);
6773 }
6774 
test_mm_maskz_load_epi64(__mmask8 __U,void const * __P)6775 __m128i test_mm_maskz_load_epi64(__mmask8 __U, void const *__P) {
6776   // CHECK-LABEL: @test_mm_maskz_load_epi64
6777   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
6778   return _mm_maskz_load_epi64(__U, __P);
6779 }
6780 
test_mm256_load_epi64(void const * __P)6781 __m256i test_mm256_load_epi64(void const *__P) {
6782   // CHECK-LABEL: @test_mm256_load_epi64
6783   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}
6784   return _mm256_load_epi64(__P);
6785 }
6786 
test_mm256_mask_load_epi64(__m256i __W,__mmask8 __U,void const * __P)6787 __m256i test_mm256_mask_load_epi64(__m256i __W, __mmask8 __U, void const *__P) {
6788   // CHECK-LABEL: @test_mm256_mask_load_epi64
6789   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
6790   return _mm256_mask_load_epi64(__W, __U, __P);
6791 }
6792 
test_mm256_maskz_load_epi64(__mmask8 __U,void const * __P)6793 __m256i test_mm256_maskz_load_epi64(__mmask8 __U, void const *__P) {
6794   // CHECK-LABEL: @test_mm256_maskz_load_epi64
6795   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
6796   return _mm256_maskz_load_epi64(__U, __P);
6797 }
6798 
test_mm_store_epi64(void * __P,__m128i __A)6799 void test_mm_store_epi64(void *__P, __m128i __A) {
6800   // CHECK-LABEL: @test_mm_store_epi64
6801   // CHECK: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}
6802   return _mm_store_epi64(__P, __A);
6803 }
6804 
test_mm_mask_store_epi64(void * __P,__mmask8 __U,__m128i __A)6805 void test_mm_mask_store_epi64(void *__P, __mmask8 __U, __m128i __A) {
6806   // CHECK-LABEL: @test_mm_mask_store_epi64
6807   // CHECK: @llvm.masked.store.v2i64.p0v2i64(<2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}})
6808   return _mm_mask_store_epi64(__P, __U, __A);
6809 }
6810 
test_mm256_store_epi64(void * __P,__m256i __A)6811 void test_mm256_store_epi64(void *__P, __m256i __A) {
6812   // CHECK-LABEL: @test_mm256_store_epi64
6813   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}
6814   return _mm256_store_epi64(__P, __A);
6815 }
6816 
test_mm256_mask_store_epi64(void * __P,__mmask8 __U,__m256i __A)6817 void test_mm256_mask_store_epi64(void *__P, __mmask8 __U, __m256i __A) {
6818   // CHECK-LABEL: @test_mm256_mask_store_epi64
6819   // CHECK: @llvm.masked.store.v4i64.p0v4i64(<4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}})
6820   return _mm256_mask_store_epi64(__P, __U, __A);
6821 }
6822 
test_mm_mask_movedup_pd(__m128d __W,__mmask8 __U,__m128d __A)6823 __m128d test_mm_mask_movedup_pd(__m128d __W, __mmask8 __U, __m128d __A) {
6824   // CHECK-LABEL: @test_mm_mask_movedup_pd
6825   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> zeroinitializer
6826   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
6827   return _mm_mask_movedup_pd(__W, __U, __A);
6828 }
6829 
test_mm_maskz_movedup_pd(__mmask8 __U,__m128d __A)6830 __m128d test_mm_maskz_movedup_pd(__mmask8 __U, __m128d __A) {
6831   // CHECK-LABEL: @test_mm_maskz_movedup_pd
6832   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> zeroinitializer
6833   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
6834   return _mm_maskz_movedup_pd(__U, __A);
6835 }
6836 
test_mm256_mask_movedup_pd(__m256d __W,__mmask8 __U,__m256d __A)6837 __m256d test_mm256_mask_movedup_pd(__m256d __W, __mmask8 __U, __m256d __A) {
6838   // CHECK-LABEL: @test_mm256_mask_movedup_pd
6839   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
6840   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
6841   return _mm256_mask_movedup_pd(__W, __U, __A);
6842 }
6843 
test_mm256_maskz_movedup_pd(__mmask8 __U,__m256d __A)6844 __m256d test_mm256_maskz_movedup_pd(__mmask8 __U, __m256d __A) {
6845   // CHECK-LABEL: @test_mm256_maskz_movedup_pd
6846   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
6847   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
6848   return _mm256_maskz_movedup_pd(__U, __A);
6849 }
6850 
test_mm_mask_set1_epi32(__m128i __O,__mmask8 __M)6851 __m128i test_mm_mask_set1_epi32(__m128i __O, __mmask8 __M) {
6852   // CHECK-LABEL: @test_mm_mask_set1_epi32
6853   // CHECK: insertelement <4 x i32> undef, i32 %{{.*}}, i32 0
6854   // CHECK: insertelement <4 x i32> %{{.*}}32 1
6855   // CHECK: insertelement <4 x i32> %{{.*}}32 2
6856   // CHECK: insertelement <4 x i32> %{{.*}}32 3
6857   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6858   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6859   return _mm_mask_set1_epi32(__O, __M, 5);
6860 }
6861 
test_mm_maskz_set1_epi32(__mmask8 __M)6862 __m128i test_mm_maskz_set1_epi32(__mmask8 __M) {
6863   // CHECK-LABEL: @test_mm_maskz_set1_epi32
6864   // CHECK: insertelement <4 x i32> undef, i32 %{{.*}}, i32 0
6865   // CHECK: insertelement <4 x i32> %{{.*}}32 1
6866   // CHECK: insertelement <4 x i32> %{{.*}}32 2
6867   // CHECK: insertelement <4 x i32> %{{.*}}32 3
6868   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6869   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6870   return _mm_maskz_set1_epi32(__M, 5);
6871 }
6872 
test_mm256_mask_set1_epi32(__m256i __O,__mmask8 __M)6873 __m256i test_mm256_mask_set1_epi32(__m256i __O, __mmask8 __M) {
6874   // CHECK-LABEL: @test_mm256_mask_set1_epi32
6875   // CHECK:  insertelement <8 x i32> undef, i32 %{{.*}}, i32 0
6876   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 1
6877   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 2
6878   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 3
6879   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 4
6880   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 5
6881   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 6
6882   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 7
6883   // CHECK:  select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6884   return _mm256_mask_set1_epi32(__O, __M, 5);
6885 }
6886 
test_mm256_maskz_set1_epi32(__mmask8 __M)6887 __m256i test_mm256_maskz_set1_epi32(__mmask8 __M) {
6888   // CHECK-LABEL: @test_mm256_maskz_set1_epi32
6889   // CHECK:  insertelement <8 x i32> undef, i32 %{{.*}}, i32 0
6890   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 1
6891   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 2
6892   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 3
6893   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 4
6894   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 5
6895   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 6
6896   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 7
6897   // CHECK:  select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6898   return _mm256_maskz_set1_epi32(__M, 5);
6899 }
6900 
test_mm_mask_set1_epi64(__m128i __O,__mmask8 __M,long long __A)6901 __m128i test_mm_mask_set1_epi64(__m128i __O, __mmask8 __M, long long __A) {
6902   // CHECK-LABEL: @test_mm_mask_set1_epi64
6903   // CHECK: insertelement <2 x i64> undef, i64 %{{.*}}, i32 0
6904   // CHECK: insertelement <2 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6905   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
6906   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6907   return _mm_mask_set1_epi64(__O, __M, __A);
6908 }
6909 
test_mm_maskz_set1_epi64(__mmask8 __M,long long __A)6910 __m128i test_mm_maskz_set1_epi64(__mmask8 __M, long long __A) {
6911   // CHECK-LABEL: @test_mm_maskz_set1_epi64
6912   // CHECK: insertelement <2 x i64> undef, i64 %{{.*}}, i32 0
6913   // CHECK: insertelement <2 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6914   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
6915   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6916   return _mm_maskz_set1_epi64(__M, __A);
6917 }
6918 
test_mm256_mask_set1_epi64(__m256i __O,__mmask8 __M,long long __A)6919 __m256i test_mm256_mask_set1_epi64(__m256i __O, __mmask8 __M, long long __A) {
6920   // CHECK-LABEL: @test_mm256_mask_set1_epi64
6921   // CHECK: insertelement <4 x i64> undef, i64 %{{.*}}, i32 0
6922   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6923   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 2
6924   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 3
6925   // CHECK:  shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6926   // CHECK:  select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6927   return _mm256_mask_set1_epi64(__O, __M, __A);
6928 }
6929 
test_mm256_maskz_set1_epi64(__mmask8 __M,long long __A)6930 __m256i test_mm256_maskz_set1_epi64(__mmask8 __M, long long __A) {
6931   // CHECK-LABEL: @test_mm256_maskz_set1_epi64
6932   // CHECK: insertelement <4 x i64> undef, i64 %{{.*}}, i32 0
6933   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6934   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 2
6935   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 3
6936   // CHECK:  shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6937   // CHECK:  select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6938   return _mm256_maskz_set1_epi64(__M, __A);
6939 }
6940 
test_mm_fixupimm_pd(__m128d __A,__m128d __B,__m128i __C)6941 __m128d test_mm_fixupimm_pd(__m128d __A, __m128d __B, __m128i __C) {
6942   // CHECK-LABEL: @test_mm_fixupimm_pd
6943   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.128
6944   return _mm_fixupimm_pd(__A, __B, __C, 5);
6945 }
6946 
test_mm_mask_fixupimm_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128i __C)6947 __m128d test_mm_mask_fixupimm_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128i __C) {
6948   // CHECK-LABEL: @test_mm_mask_fixupimm_pd
6949   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.128
6950   return _mm_mask_fixupimm_pd(__A, __U, __B, __C, 5);
6951 }
6952 
test_mm_maskz_fixupimm_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128i __C)6953 __m128d test_mm_maskz_fixupimm_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128i __C) {
6954   // CHECK-LABEL: @test_mm_maskz_fixupimm_pd
6955   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.128
6956   return _mm_maskz_fixupimm_pd(__U, __A, __B, __C, 5);
6957 }
6958 
test_mm256_fixupimm_pd(__m256d __A,__m256d __B,__m256i __C)6959 __m256d test_mm256_fixupimm_pd(__m256d __A, __m256d __B, __m256i __C) {
6960   // CHECK-LABEL: @test_mm256_fixupimm_pd
6961   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.256
6962   return _mm256_fixupimm_pd(__A, __B, __C, 5);
6963 }
6964 
test_mm256_mask_fixupimm_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256i __C)6965 __m256d test_mm256_mask_fixupimm_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256i __C) {
6966   // CHECK-LABEL: @test_mm256_mask_fixupimm_pd
6967   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.256
6968   return _mm256_mask_fixupimm_pd(__A, __U, __B, __C, 5);
6969 }
6970 
test_mm256_maskz_fixupimm_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256i __C)6971 __m256d test_mm256_maskz_fixupimm_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256i __C) {
6972   // CHECK-LABEL: @test_mm256_maskz_fixupimm_pd
6973   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.256
6974   return _mm256_maskz_fixupimm_pd(__U, __A, __B, __C, 5);
6975 }
6976 
test_mm_fixupimm_ps(__m128 __A,__m128 __B,__m128i __C)6977 __m128 test_mm_fixupimm_ps(__m128 __A, __m128 __B, __m128i __C) {
6978   // CHECK-LABEL: @test_mm_fixupimm_ps
6979   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.128
6980   return _mm_fixupimm_ps(__A, __B, __C, 5);
6981 }
6982 
test_mm_mask_fixupimm_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128i __C)6983 __m128 test_mm_mask_fixupimm_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128i __C) {
6984   // CHECK-LABEL: @test_mm_mask_fixupimm_ps
6985   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.128
6986   return _mm_mask_fixupimm_ps(__A, __U, __B, __C, 5);
6987 }
6988 
test_mm_maskz_fixupimm_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128i __C)6989 __m128 test_mm_maskz_fixupimm_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128i __C) {
6990   // CHECK-LABEL: @test_mm_maskz_fixupimm_ps
6991   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.128
6992   return _mm_maskz_fixupimm_ps(__U, __A, __B, __C, 5);
6993 }
6994 
test_mm256_fixupimm_ps(__m256 __A,__m256 __B,__m256i __C)6995 __m256 test_mm256_fixupimm_ps(__m256 __A, __m256 __B, __m256i __C) {
6996   // CHECK-LABEL: @test_mm256_fixupimm_ps
6997   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.256
6998   return _mm256_fixupimm_ps(__A, __B, __C, 5);
6999 }
7000 
test_mm256_mask_fixupimm_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256i __C)7001 __m256 test_mm256_mask_fixupimm_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256i __C) {
7002   // CHECK-LABEL: @test_mm256_mask_fixupimm_ps
7003   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.256
7004   return _mm256_mask_fixupimm_ps(__A, __U, __B, __C, 5);
7005 }
7006 
test_mm256_maskz_fixupimm_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256i __C)7007 __m256 test_mm256_maskz_fixupimm_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256i __C) {
7008   // CHECK-LABEL: @test_mm256_maskz_fixupimm_ps
7009   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.256
7010   return _mm256_maskz_fixupimm_ps(__U, __A, __B, __C, 5);
7011 }
7012 
test_mm_mask_load_pd(__m128d __W,__mmask8 __U,void const * __P)7013 __m128d test_mm_mask_load_pd(__m128d __W, __mmask8 __U, void const *__P) {
7014   // CHECK-LABEL: @test_mm_mask_load_pd
7015   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
7016   return _mm_mask_load_pd(__W, __U, __P);
7017 }
7018 
test_mm_maskz_load_pd(__mmask8 __U,void const * __P)7019 __m128d test_mm_maskz_load_pd(__mmask8 __U, void const *__P) {
7020   // CHECK-LABEL: @test_mm_maskz_load_pd
7021   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
7022   return _mm_maskz_load_pd(__U, __P);
7023 }
7024 
test_mm256_mask_load_pd(__m256d __W,__mmask8 __U,void const * __P)7025 __m256d test_mm256_mask_load_pd(__m256d __W, __mmask8 __U, void const *__P) {
7026   // CHECK-LABEL: @test_mm256_mask_load_pd
7027   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
7028   return _mm256_mask_load_pd(__W, __U, __P);
7029 }
7030 
test_mm256_maskz_load_pd(__mmask8 __U,void const * __P)7031 __m256d test_mm256_maskz_load_pd(__mmask8 __U, void const *__P) {
7032   // CHECK-LABEL: @test_mm256_maskz_load_pd
7033   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
7034   return _mm256_maskz_load_pd(__U, __P);
7035 }
7036 
test_mm_mask_load_ps(__m128 __W,__mmask8 __U,void const * __P)7037 __m128 test_mm_mask_load_ps(__m128 __W, __mmask8 __U, void const *__P) {
7038   // CHECK-LABEL: @test_mm_mask_load_ps
7039   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
7040   return _mm_mask_load_ps(__W, __U, __P);
7041 }
7042 
test_mm_maskz_load_ps(__mmask8 __U,void const * __P)7043 __m128 test_mm_maskz_load_ps(__mmask8 __U, void const *__P) {
7044   // CHECK-LABEL: @test_mm_maskz_load_ps
7045   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
7046   return _mm_maskz_load_ps(__U, __P);
7047 }
7048 
test_mm256_mask_load_ps(__m256 __W,__mmask8 __U,void const * __P)7049 __m256 test_mm256_mask_load_ps(__m256 __W, __mmask8 __U, void const *__P) {
7050   // CHECK-LABEL: @test_mm256_mask_load_ps
7051   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
7052   return _mm256_mask_load_ps(__W, __U, __P);
7053 }
7054 
test_mm256_maskz_load_ps(__mmask8 __U,void const * __P)7055 __m256 test_mm256_maskz_load_ps(__mmask8 __U, void const *__P) {
7056   // CHECK-LABEL: @test_mm256_maskz_load_ps
7057   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
7058   return _mm256_maskz_load_ps(__U, __P);
7059 }
7060 
test_mm_loadu_epi64(void const * __P)7061 __m128i test_mm_loadu_epi64(void const *__P) {
7062   // CHECK-LABEL: @test_mm_loadu_epi64
7063   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
7064   return _mm_loadu_epi64(__P);
7065 }
7066 
test_mm_mask_loadu_epi64(__m128i __W,__mmask8 __U,void const * __P)7067 __m128i test_mm_mask_loadu_epi64(__m128i __W, __mmask8 __U, void const *__P) {
7068   // CHECK-LABEL: @test_mm_mask_loadu_epi64
7069   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
7070   return _mm_mask_loadu_epi64(__W, __U, __P);
7071 }
7072 
test_mm_maskz_loadu_epi64(__mmask8 __U,void const * __P)7073 __m128i test_mm_maskz_loadu_epi64(__mmask8 __U, void const *__P) {
7074   // CHECK-LABEL: @test_mm_maskz_loadu_epi64
7075   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
7076   return _mm_maskz_loadu_epi64(__U, __P);
7077 }
7078 
test_mm256_loadu_epi64(void const * __P)7079 __m256i test_mm256_loadu_epi64(void const *__P) {
7080   // CHECK-LABEL: @test_mm256_loadu_epi64
7081   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}, align 1{{$}}
7082   return _mm256_loadu_epi64(__P);
7083 }
7084 
test_mm256_mask_loadu_epi64(__m256i __W,__mmask8 __U,void const * __P)7085 __m256i test_mm256_mask_loadu_epi64(__m256i __W, __mmask8 __U, void const *__P) {
7086   // CHECK-LABEL: @test_mm256_mask_loadu_epi64
7087   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
7088   return _mm256_mask_loadu_epi64(__W, __U, __P);
7089 }
7090 
test_mm256_maskz_loadu_epi64(__mmask8 __U,void const * __P)7091 __m256i test_mm256_maskz_loadu_epi64(__mmask8 __U, void const *__P) {
7092   // CHECK-LABEL: @test_mm256_maskz_loadu_epi64
7093   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
7094   return _mm256_maskz_loadu_epi64(__U, __P);
7095 }
7096 
test_mm_loadu_epi32(void const * __P)7097 __m128i test_mm_loadu_epi32(void const *__P) {
7098   // CHECK-LABEL: @test_mm_loadu_epi32
7099   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
7100   return _mm_loadu_epi32(__P);
7101 }
7102 
test_mm_mask_loadu_epi32(__m128i __W,__mmask8 __U,void const * __P)7103 __m128i test_mm_mask_loadu_epi32(__m128i __W, __mmask8 __U, void const *__P) {
7104   // CHECK-LABEL: @test_mm_mask_loadu_epi32
7105   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
7106   return _mm_mask_loadu_epi32(__W, __U, __P);
7107 }
7108 
test_mm_maskz_loadu_epi32(__mmask8 __U,void const * __P)7109 __m128i test_mm_maskz_loadu_epi32(__mmask8 __U, void const *__P) {
7110   // CHECK-LABEL: @test_mm_maskz_loadu_epi32
7111   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
7112   return _mm_maskz_loadu_epi32(__U, __P);
7113 }
7114 
test_mm256_loadu_epi32(void const * __P)7115 __m256i test_mm256_loadu_epi32(void const *__P) {
7116   // CHECK-LABEL: @test_mm256_loadu_epi32
7117   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}, align 1{{$}}
7118   return _mm256_loadu_epi32(__P);
7119 }
7120 
test_mm256_mask_loadu_epi32(__m256i __W,__mmask8 __U,void const * __P)7121 __m256i test_mm256_mask_loadu_epi32(__m256i __W, __mmask8 __U, void const *__P) {
7122   // CHECK-LABEL: @test_mm256_mask_loadu_epi32
7123   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
7124   return _mm256_mask_loadu_epi32(__W, __U, __P);
7125 }
7126 
test_mm256_maskz_loadu_epi32(__mmask8 __U,void const * __P)7127 __m256i test_mm256_maskz_loadu_epi32(__mmask8 __U, void const *__P) {
7128   // CHECK-LABEL: @test_mm256_maskz_loadu_epi32
7129   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
7130   return _mm256_maskz_loadu_epi32(__U, __P);
7131 }
7132 
test_mm_mask_loadu_pd(__m128d __W,__mmask8 __U,void const * __P)7133 __m128d test_mm_mask_loadu_pd(__m128d __W, __mmask8 __U, void const *__P) {
7134   // CHECK-LABEL: @test_mm_mask_loadu_pd
7135   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
7136   return _mm_mask_loadu_pd(__W, __U, __P);
7137 }
7138 
test_mm_maskz_loadu_pd(__mmask8 __U,void const * __P)7139 __m128d test_mm_maskz_loadu_pd(__mmask8 __U, void const *__P) {
7140   // CHECK-LABEL: @test_mm_maskz_loadu_pd
7141   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
7142   return _mm_maskz_loadu_pd(__U, __P);
7143 }
7144 
test_mm256_mask_loadu_pd(__m256d __W,__mmask8 __U,void const * __P)7145 __m256d test_mm256_mask_loadu_pd(__m256d __W, __mmask8 __U, void const *__P) {
7146   // CHECK-LABEL: @test_mm256_mask_loadu_pd
7147   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
7148   return _mm256_mask_loadu_pd(__W, __U, __P);
7149 }
7150 
test_mm256_maskz_loadu_pd(__mmask8 __U,void const * __P)7151 __m256d test_mm256_maskz_loadu_pd(__mmask8 __U, void const *__P) {
7152   // CHECK-LABEL: @test_mm256_maskz_loadu_pd
7153   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
7154   return _mm256_maskz_loadu_pd(__U, __P);
7155 }
7156 
test_mm_mask_loadu_ps(__m128 __W,__mmask8 __U,void const * __P)7157 __m128 test_mm_mask_loadu_ps(__m128 __W, __mmask8 __U, void const *__P) {
7158   // CHECK-LABEL: @test_mm_mask_loadu_ps
7159   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
7160   return _mm_mask_loadu_ps(__W, __U, __P);
7161 }
7162 
test_mm_maskz_loadu_ps(__mmask8 __U,void const * __P)7163 __m128 test_mm_maskz_loadu_ps(__mmask8 __U, void const *__P) {
7164   // CHECK-LABEL: @test_mm_maskz_loadu_ps
7165   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
7166   return _mm_maskz_loadu_ps(__U, __P);
7167 }
7168 
test_mm256_mask_loadu_ps(__m256 __W,__mmask8 __U,void const * __P)7169 __m256 test_mm256_mask_loadu_ps(__m256 __W, __mmask8 __U, void const *__P) {
7170   // CHECK-LABEL: @test_mm256_mask_loadu_ps
7171   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
7172   return _mm256_mask_loadu_ps(__W, __U, __P);
7173 }
7174 
test_mm256_maskz_loadu_ps(__mmask8 __U,void const * __P)7175 __m256 test_mm256_maskz_loadu_ps(__mmask8 __U, void const *__P) {
7176   // CHECK-LABEL: @test_mm256_maskz_loadu_ps
7177   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
7178   return _mm256_maskz_loadu_ps(__U, __P);
7179 }
7180 
test_mm_mask_store_pd(void * __P,__mmask8 __U,__m128d __A)7181 void test_mm_mask_store_pd(void *__P, __mmask8 __U, __m128d __A) {
7182   // CHECK-LABEL: @test_mm_mask_store_pd
7183   // CHECK: @llvm.masked.store.v2f64.p0v2f64(<2 x double> %{{.*}}, <2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}})
7184   return _mm_mask_store_pd(__P, __U, __A);
7185 }
7186 
test_mm256_mask_store_pd(void * __P,__mmask8 __U,__m256d __A)7187 void test_mm256_mask_store_pd(void *__P, __mmask8 __U, __m256d __A) {
7188   // CHECK-LABEL: @test_mm256_mask_store_pd
7189   // CHECK: @llvm.masked.store.v4f64.p0v4f64(<4 x double> %{{.*}}, <4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}})
7190   return _mm256_mask_store_pd(__P, __U, __A);
7191 }
7192 
test_mm_mask_store_ps(void * __P,__mmask8 __U,__m128 __A)7193 void test_mm_mask_store_ps(void *__P, __mmask8 __U, __m128 __A) {
7194   // CHECK-LABEL: @test_mm_mask_store_ps
7195   // CHECK: @llvm.masked.store.v4f32.p0v4f32(<4 x float> %{{.*}}, <4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}})
7196   return _mm_mask_store_ps(__P, __U, __A);
7197 }
7198 
test_mm256_mask_store_ps(void * __P,__mmask8 __U,__m256 __A)7199 void test_mm256_mask_store_ps(void *__P, __mmask8 __U, __m256 __A) {
7200   // CHECK-LABEL: @test_mm256_mask_store_ps
7201   // CHECK: @llvm.masked.store.v8f32.p0v8f32(<8 x float> %{{.*}}, <8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}})
7202   return _mm256_mask_store_ps(__P, __U, __A);
7203 }
7204 
test_mm_storeu_epi64(void * __p,__m128i __a)7205 void test_mm_storeu_epi64(void *__p, __m128i __a) {
7206   // check-label: @test_mm_storeu_epi64
7207   // check: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1{{$}}
7208   return _mm_storeu_epi64(__p, __a);
7209 }
7210 
test_mm_mask_storeu_epi64(void * __P,__mmask8 __U,__m128i __A)7211 void test_mm_mask_storeu_epi64(void *__P, __mmask8 __U, __m128i __A) {
7212   // CHECK-LABEL: @test_mm_mask_storeu_epi64
7213   // CHECK: @llvm.masked.store.v2i64.p0v2i64(<2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}})
7214   return _mm_mask_storeu_epi64(__P, __U, __A);
7215 }
7216 
test_mm256_storeu_epi64(void * __P,__m256i __A)7217 void test_mm256_storeu_epi64(void *__P, __m256i __A) {
7218   // CHECK-LABEL: @test_mm256_storeu_epi64
7219   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, align 1{{$}}
7220   return _mm256_storeu_epi64(__P, __A);
7221 }
7222 
test_mm256_mask_storeu_epi64(void * __P,__mmask8 __U,__m256i __A)7223 void test_mm256_mask_storeu_epi64(void *__P, __mmask8 __U, __m256i __A) {
7224   // CHECK-LABEL: @test_mm256_mask_storeu_epi64
7225   // CHECK: @llvm.masked.store.v4i64.p0v4i64(<4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7226   return _mm256_mask_storeu_epi64(__P, __U, __A);
7227 }
7228 
test_mm_storeu_epi32(void * __P,__m128i __A)7229 void test_mm_storeu_epi32(void *__P, __m128i __A) {
7230   // CHECK-LABEL: @test_mm_storeu_epi32
7231   // CHECK: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1{{$}}
7232   return _mm_storeu_epi32(__P, __A);
7233 }
7234 
test_mm_mask_storeu_epi32(void * __P,__mmask8 __U,__m128i __A)7235 void test_mm_mask_storeu_epi32(void *__P, __mmask8 __U, __m128i __A) {
7236   // CHECK-LABEL: @test_mm_mask_storeu_epi32
7237   // CHECK: @llvm.masked.store.v4i32.p0v4i32(<4 x i32> %{{.*}}, <4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7238   return _mm_mask_storeu_epi32(__P, __U, __A);
7239 }
7240 
test_mm256_storeu_epi32(void * __P,__m256i __A)7241 void test_mm256_storeu_epi32(void *__P, __m256i __A) {
7242   // CHECK-LABEL: @test_mm256_storeu_epi32
7243   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, align 1{{$}}
7244   return _mm256_storeu_epi32(__P, __A);
7245 }
7246 
test_mm256_mask_storeu_epi32(void * __P,__mmask8 __U,__m256i __A)7247 void test_mm256_mask_storeu_epi32(void *__P, __mmask8 __U, __m256i __A) {
7248   // CHECK-LABEL: @test_mm256_mask_storeu_epi32
7249   // CHECK: @llvm.masked.store.v8i32.p0v8i32(<8 x i32> %{{.*}}, <8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
7250   return _mm256_mask_storeu_epi32(__P, __U, __A);
7251 }
7252 
test_mm_mask_storeu_pd(void * __P,__mmask8 __U,__m128d __A)7253 void test_mm_mask_storeu_pd(void *__P, __mmask8 __U, __m128d __A) {
7254   // CHECK-LABEL: @test_mm_mask_storeu_pd
7255   // CHECK: @llvm.masked.store.v2f64.p0v2f64(<2 x double> %{{.*}}, <2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}})
7256   return _mm_mask_storeu_pd(__P, __U, __A);
7257 }
7258 
test_mm256_mask_storeu_pd(void * __P,__mmask8 __U,__m256d __A)7259 void test_mm256_mask_storeu_pd(void *__P, __mmask8 __U, __m256d __A) {
7260   // CHECK-LABEL: @test_mm256_mask_storeu_pd
7261   // CHECK: @llvm.masked.store.v4f64.p0v4f64(<4 x double> %{{.*}}, <4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7262   return _mm256_mask_storeu_pd(__P, __U, __A);
7263 }
7264 
test_mm_mask_storeu_ps(void * __P,__mmask8 __U,__m128 __A)7265 void test_mm_mask_storeu_ps(void *__P, __mmask8 __U, __m128 __A) {
7266   // CHECK-LABEL: @test_mm_mask_storeu_ps
7267   // CHECK: @llvm.masked.store.v4f32.p0v4f32(<4 x float> %{{.*}}, <4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7268   return _mm_mask_storeu_ps(__P, __U, __A);
7269 }
7270 
test_mm256_mask_storeu_ps(void * __P,__mmask8 __U,__m256 __A)7271 void test_mm256_mask_storeu_ps(void *__P, __mmask8 __U, __m256 __A) {
7272   // CHECK-LABEL: @test_mm256_mask_storeu_ps
7273   // CHECK: @llvm.masked.store.v8f32.p0v8f32(<8 x float> %{{.*}}, <8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
7274   return _mm256_mask_storeu_ps(__P, __U, __A);
7275 }
7276 
test_mm_mask_unpackhi_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)7277 __m128d test_mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
7278   // CHECK-LABEL: @test_mm_mask_unpackhi_pd
7279   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
7280   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7281   return _mm_mask_unpackhi_pd(__W, __U, __A, __B);
7282 }
7283 
test_mm_maskz_unpackhi_pd(__mmask8 __U,__m128d __A,__m128d __B)7284 __m128d test_mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B) {
7285   // CHECK-LABEL: @test_mm_maskz_unpackhi_pd
7286   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
7287   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7288   return _mm_maskz_unpackhi_pd(__U, __A, __B);
7289 }
7290 
test_mm256_mask_unpackhi_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)7291 __m256d test_mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
7292   // CHECK-LABEL: @test_mm256_mask_unpackhi_pd
7293   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7294   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7295   return _mm256_mask_unpackhi_pd(__W, __U, __A, __B);
7296 }
7297 
test_mm256_maskz_unpackhi_pd(__mmask8 __U,__m256d __A,__m256d __B)7298 __m256d test_mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B) {
7299   // CHECK-LABEL: @test_mm256_maskz_unpackhi_pd
7300   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7301   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7302   return _mm256_maskz_unpackhi_pd(__U, __A, __B);
7303 }
7304 
test_mm_mask_unpackhi_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)7305 __m128 test_mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
7306   // CHECK-LABEL: @test_mm_mask_unpackhi_ps
7307   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7308   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}} <4 x float> %{{.*}}
7309   return _mm_mask_unpackhi_ps(__W, __U, __A, __B);
7310 }
7311 
test_mm_maskz_unpackhi_ps(__mmask8 __U,__m128 __A,__m128 __B)7312 __m128 test_mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B) {
7313   // CHECK-LABEL: @test_mm_maskz_unpackhi_ps
7314   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7315   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}} <4 x float> %{{.*}}
7316   return _mm_maskz_unpackhi_ps(__U, __A, __B);
7317 }
7318 
test_mm256_mask_unpackhi_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)7319 __m256 test_mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
7320   // CHECK-LABEL: @test_mm256_mask_unpackhi_ps
7321   // 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>
7322   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7323   return _mm256_mask_unpackhi_ps(__W, __U, __A, __B);
7324 }
7325 
test_mm256_maskz_unpackhi_ps(__mmask8 __U,__m256 __A,__m256 __B)7326 __m256 test_mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B) {
7327   // CHECK-LABEL: @test_mm256_maskz_unpackhi_ps
7328   // 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>
7329   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7330   return _mm256_maskz_unpackhi_ps(__U, __A, __B);
7331 }
7332 
test_mm_mask_unpacklo_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)7333 __m128d test_mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
7334   // CHECK-LABEL: @test_mm_mask_unpacklo_pd
7335   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 0, i32 2>
7336   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7337   return _mm_mask_unpacklo_pd(__W, __U, __A, __B);
7338 }
7339 
test_mm_maskz_unpacklo_pd(__mmask8 __U,__m128d __A,__m128d __B)7340 __m128d test_mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B) {
7341   // CHECK-LABEL: @test_mm_maskz_unpacklo_pd
7342   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 0, i32 2>
7343   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7344   return _mm_maskz_unpacklo_pd(__U, __A, __B);
7345 }
7346 
test_mm256_mask_unpacklo_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)7347 __m256d test_mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
7348   // CHECK-LABEL: @test_mm256_mask_unpacklo_pd
7349   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7350   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7351   return _mm256_mask_unpacklo_pd(__W, __U, __A, __B);
7352 }
7353 
test_mm256_maskz_unpacklo_pd(__mmask8 __U,__m256d __A,__m256d __B)7354 __m256d test_mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B) {
7355   // CHECK-LABEL: @test_mm256_maskz_unpacklo_pd
7356   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7357   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7358   return _mm256_maskz_unpacklo_pd(__U, __A, __B);
7359 }
7360 
test_mm_mask_unpacklo_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)7361 __m128 test_mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
7362   // CHECK-LABEL: @test_mm_mask_unpacklo_ps
7363   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7364   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
7365   return _mm_mask_unpacklo_ps(__W, __U, __A, __B);
7366 }
7367 
test_mm_maskz_unpacklo_ps(__mmask8 __U,__m128 __A,__m128 __B)7368 __m128 test_mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B) {
7369   // CHECK-LABEL: @test_mm_maskz_unpacklo_ps
7370   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7371   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
7372   return _mm_maskz_unpacklo_ps(__U, __A, __B);
7373 }
7374 
test_mm256_mask_unpacklo_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)7375 __m256 test_mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
7376   // CHECK-LABEL: @test_mm256_mask_unpacklo_ps
7377   // 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>
7378   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7379   return _mm256_mask_unpacklo_ps(__W, __U, __A, __B);
7380 }
7381 
test_mm256_maskz_unpacklo_ps(__mmask8 __U,__m256 __A,__m256 __B)7382 __m256 test_mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B) {
7383   // CHECK-LABEL: @test_mm256_maskz_unpacklo_ps
7384   // 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>
7385   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7386   return _mm256_maskz_unpacklo_ps(__U, __A, __B);
7387 }
7388 
test_mm_rcp14_pd(__m128d __A)7389 __m128d test_mm_rcp14_pd(__m128d __A) {
7390   // CHECK-LABEL: @test_mm_rcp14_pd
7391   // CHECK: @llvm.x86.avx512.rcp14.pd.128
7392   return _mm_rcp14_pd(__A);
7393 }
7394 
test_mm_mask_rcp14_pd(__m128d __W,__mmask8 __U,__m128d __A)7395 __m128d test_mm_mask_rcp14_pd(__m128d __W, __mmask8 __U, __m128d __A) {
7396   // CHECK-LABEL: @test_mm_mask_rcp14_pd
7397   // CHECK: @llvm.x86.avx512.rcp14.pd.128
7398   return _mm_mask_rcp14_pd(__W, __U, __A);
7399 }
7400 
test_mm_maskz_rcp14_pd(__mmask8 __U,__m128d __A)7401 __m128d test_mm_maskz_rcp14_pd(__mmask8 __U, __m128d __A) {
7402   // CHECK-LABEL: @test_mm_maskz_rcp14_pd
7403   // CHECK: @llvm.x86.avx512.rcp14.pd.128
7404   return _mm_maskz_rcp14_pd(__U, __A);
7405 }
7406 
test_mm256_rcp14_pd(__m256d __A)7407 __m256d test_mm256_rcp14_pd(__m256d __A) {
7408   // CHECK-LABEL: @test_mm256_rcp14_pd
7409   // CHECK: @llvm.x86.avx512.rcp14.pd.256
7410   return _mm256_rcp14_pd(__A);
7411 }
7412 
test_mm256_mask_rcp14_pd(__m256d __W,__mmask8 __U,__m256d __A)7413 __m256d test_mm256_mask_rcp14_pd(__m256d __W, __mmask8 __U, __m256d __A) {
7414   // CHECK-LABEL: @test_mm256_mask_rcp14_pd
7415   // CHECK: @llvm.x86.avx512.rcp14.pd.256
7416   return _mm256_mask_rcp14_pd(__W, __U, __A);
7417 }
7418 
test_mm256_maskz_rcp14_pd(__mmask8 __U,__m256d __A)7419 __m256d test_mm256_maskz_rcp14_pd(__mmask8 __U, __m256d __A) {
7420   // CHECK-LABEL: @test_mm256_maskz_rcp14_pd
7421   // CHECK: @llvm.x86.avx512.rcp14.pd.256
7422   return _mm256_maskz_rcp14_pd(__U, __A);
7423 }
7424 
test_mm_rcp14_ps(__m128 __A)7425 __m128 test_mm_rcp14_ps(__m128 __A) {
7426   // CHECK-LABEL: @test_mm_rcp14_ps
7427   // CHECK: @llvm.x86.avx512.rcp14.ps.128
7428   return _mm_rcp14_ps(__A);
7429 }
7430 
test_mm_mask_rcp14_ps(__m128 __W,__mmask8 __U,__m128 __A)7431 __m128 test_mm_mask_rcp14_ps(__m128 __W, __mmask8 __U, __m128 __A) {
7432   // CHECK-LABEL: @test_mm_mask_rcp14_ps
7433   // CHECK: @llvm.x86.avx512.rcp14.ps.128
7434   return _mm_mask_rcp14_ps(__W, __U, __A);
7435 }
7436 
test_mm_maskz_rcp14_ps(__mmask8 __U,__m128 __A)7437 __m128 test_mm_maskz_rcp14_ps(__mmask8 __U, __m128 __A) {
7438   // CHECK-LABEL: @test_mm_maskz_rcp14_ps
7439   // CHECK: @llvm.x86.avx512.rcp14.ps.128
7440   return _mm_maskz_rcp14_ps(__U, __A);
7441 }
7442 
test_mm256_rcp14_ps(__m256 __A)7443 __m256 test_mm256_rcp14_ps(__m256 __A) {
7444   // CHECK-LABEL: @test_mm256_rcp14_ps
7445   // CHECK: @llvm.x86.avx512.rcp14.ps.256
7446   return _mm256_rcp14_ps(__A);
7447 }
7448 
test_mm256_mask_rcp14_ps(__m256 __W,__mmask8 __U,__m256 __A)7449 __m256 test_mm256_mask_rcp14_ps(__m256 __W, __mmask8 __U, __m256 __A) {
7450   // CHECK-LABEL: @test_mm256_mask_rcp14_ps
7451   // CHECK: @llvm.x86.avx512.rcp14.ps.256
7452   return _mm256_mask_rcp14_ps(__W, __U, __A);
7453 }
7454 
test_mm256_maskz_rcp14_ps(__mmask8 __U,__m256 __A)7455 __m256 test_mm256_maskz_rcp14_ps(__mmask8 __U, __m256 __A) {
7456   // CHECK-LABEL: @test_mm256_maskz_rcp14_ps
7457   // CHECK: @llvm.x86.avx512.rcp14.ps.256
7458   return _mm256_maskz_rcp14_ps(__U, __A);
7459 }
7460 
test_mm_mask_permute_pd(__m128d __W,__mmask8 __U,__m128d __X)7461 __m128d test_mm_mask_permute_pd(__m128d __W, __mmask8 __U, __m128d __X) {
7462   // CHECK-LABEL: @test_mm_mask_permute_pd
7463   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <2 x i32> <i32 1, i32 0>
7464   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7465   return _mm_mask_permute_pd(__W, __U, __X, 1);
7466 }
7467 
test_mm_maskz_permute_pd(__mmask8 __U,__m128d __X)7468 __m128d test_mm_maskz_permute_pd(__mmask8 __U, __m128d __X) {
7469   // CHECK-LABEL: @test_mm_maskz_permute_pd
7470   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <2 x i32> <i32 1, i32 0>
7471   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7472   return _mm_maskz_permute_pd(__U, __X, 1);
7473 }
7474 
test_mm256_mask_permute_pd(__m256d __W,__mmask8 __U,__m256d __X)7475 __m256d test_mm256_mask_permute_pd(__m256d __W, __mmask8 __U, __m256d __X) {
7476   // CHECK-LABEL: @test_mm256_mask_permute_pd
7477   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
7478   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7479   return _mm256_mask_permute_pd(__W, __U, __X, 5);
7480 }
7481 
test_mm256_maskz_permute_pd(__mmask8 __U,__m256d __X)7482 __m256d test_mm256_maskz_permute_pd(__mmask8 __U, __m256d __X) {
7483   // CHECK-LABEL: @test_mm256_maskz_permute_pd
7484   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
7485   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7486   return _mm256_maskz_permute_pd(__U, __X, 5);
7487 }
7488 
test_mm_mask_permute_ps(__m128 __W,__mmask8 __U,__m128 __X)7489 __m128 test_mm_mask_permute_ps(__m128 __W, __mmask8 __U, __m128 __X) {
7490   // CHECK-LABEL: @test_mm_mask_permute_ps
7491   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
7492   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7493   return _mm_mask_permute_ps(__W, __U, __X, 0x1b);
7494 }
7495 
test_mm_maskz_permute_ps(__mmask8 __U,__m128 __X)7496 __m128 test_mm_maskz_permute_ps(__mmask8 __U, __m128 __X) {
7497   // CHECK-LABEL: @test_mm_maskz_permute_ps
7498   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
7499   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7500   return _mm_maskz_permute_ps(__U, __X, 0x1b);
7501 }
7502 
test_mm256_mask_permute_ps(__m256 __W,__mmask8 __U,__m256 __X)7503 __m256 test_mm256_mask_permute_ps(__m256 __W, __mmask8 __U, __m256 __X) {
7504   // CHECK-LABEL: @test_mm256_mask_permute_ps
7505   // 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>
7506   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7507   return _mm256_mask_permute_ps(__W, __U, __X, 0x1b);
7508 }
7509 
test_mm256_maskz_permute_ps(__mmask8 __U,__m256 __X)7510 __m256 test_mm256_maskz_permute_ps(__mmask8 __U, __m256 __X) {
7511   // CHECK-LABEL: @test_mm256_maskz_permute_ps
7512   // 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>
7513   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7514   return _mm256_maskz_permute_ps(__U, __X, 0x1b);
7515 }
7516 
test_mm_mask_permutevar_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128i __C)7517 __m128d test_mm_mask_permutevar_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128i __C) {
7518   // CHECK-LABEL: @test_mm_mask_permutevar_pd
7519   // CHECK: @llvm.x86.avx.vpermilvar.pd
7520   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7521   return _mm_mask_permutevar_pd(__W, __U, __A, __C);
7522 }
7523 
test_mm_maskz_permutevar_pd(__mmask8 __U,__m128d __A,__m128i __C)7524 __m128d test_mm_maskz_permutevar_pd(__mmask8 __U, __m128d __A, __m128i __C) {
7525   // CHECK-LABEL: @test_mm_maskz_permutevar_pd
7526   // CHECK: @llvm.x86.avx.vpermilvar.pd
7527   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7528   return _mm_maskz_permutevar_pd(__U, __A, __C);
7529 }
7530 
test_mm256_mask_permutevar_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256i __C)7531 __m256d test_mm256_mask_permutevar_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256i __C) {
7532   // CHECK-LABEL: @test_mm256_mask_permutevar_pd
7533   // CHECK: @llvm.x86.avx.vpermilvar.pd.256
7534   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7535   return _mm256_mask_permutevar_pd(__W, __U, __A, __C);
7536 }
7537 
test_mm256_maskz_permutevar_pd(__mmask8 __U,__m256d __A,__m256i __C)7538 __m256d test_mm256_maskz_permutevar_pd(__mmask8 __U, __m256d __A, __m256i __C) {
7539   // CHECK-LABEL: @test_mm256_maskz_permutevar_pd
7540   // CHECK: @llvm.x86.avx.vpermilvar.pd.256
7541   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7542   return _mm256_maskz_permutevar_pd(__U, __A, __C);
7543 }
7544 
test_mm_mask_permutevar_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128i __C)7545 __m128 test_mm_mask_permutevar_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128i __C) {
7546   // CHECK-LABEL: @test_mm_mask_permutevar_ps
7547   // CHECK: @llvm.x86.avx.vpermilvar.ps
7548   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7549   return _mm_mask_permutevar_ps(__W, __U, __A, __C);
7550 }
7551 
test_mm_maskz_permutevar_ps(__mmask8 __U,__m128 __A,__m128i __C)7552 __m128 test_mm_maskz_permutevar_ps(__mmask8 __U, __m128 __A, __m128i __C) {
7553   // CHECK-LABEL: @test_mm_maskz_permutevar_ps
7554   // CHECK: @llvm.x86.avx.vpermilvar.ps
7555   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7556   return _mm_maskz_permutevar_ps(__U, __A, __C);
7557 }
7558 
test_mm256_mask_permutevar_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256i __C)7559 __m256 test_mm256_mask_permutevar_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256i __C) {
7560   // CHECK-LABEL: @test_mm256_mask_permutevar_ps
7561   // CHECK: @llvm.x86.avx.vpermilvar.ps.256
7562   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7563   return _mm256_mask_permutevar_ps(__W, __U, __A, __C);
7564 }
7565 
test_mm256_maskz_permutevar_ps(__mmask8 __U,__m256 __A,__m256i __C)7566 __m256 test_mm256_maskz_permutevar_ps(__mmask8 __U, __m256 __A, __m256i __C) {
7567   // CHECK-LABEL: @test_mm256_maskz_permutevar_ps
7568   // CHECK: @llvm.x86.avx.vpermilvar.ps.256
7569   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7570   return _mm256_maskz_permutevar_ps(__U, __A, __C);
7571 }
7572 
test_mm_test_epi32_mask(__m128i __A,__m128i __B)7573 __mmask8 test_mm_test_epi32_mask(__m128i __A, __m128i __B) {
7574   // CHECK-LABEL: @test_mm_test_epi32_mask
7575   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7576   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
7577   return _mm_test_epi32_mask(__A, __B);
7578 }
7579 
test_mm_mask_test_epi32_mask(__mmask8 __U,__m128i __A,__m128i __B)7580 __mmask8 test_mm_mask_test_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7581   // CHECK-LABEL: @test_mm_mask_test_epi32_mask
7582   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7583   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
7584   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7585   return _mm_mask_test_epi32_mask(__U, __A, __B);
7586 }
7587 
test_mm256_test_epi32_mask(__m256i __A,__m256i __B)7588 __mmask8 test_mm256_test_epi32_mask(__m256i __A, __m256i __B) {
7589   // CHECK-LABEL: @test_mm256_test_epi32_mask
7590   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7591   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
7592   return _mm256_test_epi32_mask(__A, __B);
7593 }
7594 
test_mm256_mask_test_epi32_mask(__mmask8 __U,__m256i __A,__m256i __B)7595 __mmask8 test_mm256_mask_test_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7596   // CHECK-LABEL: @test_mm256_mask_test_epi32_mask
7597   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7598   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
7599   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
7600   return _mm256_mask_test_epi32_mask(__U, __A, __B);
7601 }
7602 
test_mm_test_epi64_mask(__m128i __A,__m128i __B)7603 __mmask8 test_mm_test_epi64_mask(__m128i __A, __m128i __B) {
7604   // CHECK-LABEL: @test_mm_test_epi64_mask
7605   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7606   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
7607   return _mm_test_epi64_mask(__A, __B);
7608 }
7609 
test_mm_mask_test_epi64_mask(__mmask8 __U,__m128i __A,__m128i __B)7610 __mmask8 test_mm_mask_test_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7611   // CHECK-LABEL: @test_mm_mask_test_epi64_mask
7612   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7613   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
7614   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
7615   return _mm_mask_test_epi64_mask(__U, __A, __B);
7616 }
7617 
test_mm256_test_epi64_mask(__m256i __A,__m256i __B)7618 __mmask8 test_mm256_test_epi64_mask(__m256i __A, __m256i __B) {
7619   // CHECK-LABEL: @test_mm256_test_epi64_mask
7620   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7621   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
7622   return _mm256_test_epi64_mask(__A, __B);
7623 }
7624 
test_mm256_mask_test_epi64_mask(__mmask8 __U,__m256i __A,__m256i __B)7625 __mmask8 test_mm256_mask_test_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7626   // CHECK-LABEL: @test_mm256_mask_test_epi64_mask
7627   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7628   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
7629   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7630   return _mm256_mask_test_epi64_mask(__U, __A, __B);
7631 }
7632 
test_mm_testn_epi32_mask(__m128i __A,__m128i __B)7633 __mmask8 test_mm_testn_epi32_mask(__m128i __A, __m128i __B) {
7634   // CHECK-LABEL: @test_mm_testn_epi32_mask
7635   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7636   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
7637   return _mm_testn_epi32_mask(__A, __B);
7638 }
7639 
test_mm_mask_testn_epi32_mask(__mmask8 __U,__m128i __A,__m128i __B)7640 __mmask8 test_mm_mask_testn_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7641   // CHECK-LABEL: @test_mm_mask_testn_epi32_mask
7642   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7643   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
7644   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7645   return _mm_mask_testn_epi32_mask(__U, __A, __B);
7646 }
7647 
test_mm256_testn_epi32_mask(__m256i __A,__m256i __B)7648 __mmask8 test_mm256_testn_epi32_mask(__m256i __A, __m256i __B) {
7649   // CHECK-LABEL: @test_mm256_testn_epi32_mask
7650   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7651   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
7652   return _mm256_testn_epi32_mask(__A, __B);
7653 }
7654 
test_mm256_mask_testn_epi32_mask(__mmask8 __U,__m256i __A,__m256i __B)7655 __mmask8 test_mm256_mask_testn_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7656   // CHECK-LABEL: @test_mm256_mask_testn_epi32_mask
7657   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7658   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
7659   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
7660   return _mm256_mask_testn_epi32_mask(__U, __A, __B);
7661 }
7662 
test_mm_testn_epi64_mask(__m128i __A,__m128i __B)7663 __mmask8 test_mm_testn_epi64_mask(__m128i __A, __m128i __B) {
7664   // CHECK-LABEL: @test_mm_testn_epi64_mask
7665   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7666   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
7667   return _mm_testn_epi64_mask(__A, __B);
7668 }
7669 
test_mm_mask_testn_epi64_mask(__mmask8 __U,__m128i __A,__m128i __B)7670 __mmask8 test_mm_mask_testn_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7671   // CHECK-LABEL: @test_mm_mask_testn_epi64_mask
7672   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7673   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
7674   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
7675   return _mm_mask_testn_epi64_mask(__U, __A, __B);
7676 }
7677 
test_mm256_testn_epi64_mask(__m256i __A,__m256i __B)7678 __mmask8 test_mm256_testn_epi64_mask(__m256i __A, __m256i __B) {
7679   // CHECK-LABEL: @test_mm256_testn_epi64_mask
7680   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7681   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
7682   return _mm256_testn_epi64_mask(__A, __B);
7683 }
7684 
test_mm256_mask_testn_epi64_mask(__mmask8 __U,__m256i __A,__m256i __B)7685 __mmask8 test_mm256_mask_testn_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7686   // CHECK-LABEL: @test_mm256_mask_testn_epi64_mask
7687   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7688   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
7689   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7690   return _mm256_mask_testn_epi64_mask(__U, __A, __B);
7691 }
7692 
test_mm_mask_unpackhi_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7693 __m128i test_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7694   // CHECK-LABEL: @test_mm_mask_unpackhi_epi32
7695   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7696   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7697   return _mm_mask_unpackhi_epi32(__W, __U, __A, __B);
7698 }
7699 
test_mm_maskz_unpackhi_epi32(__mmask8 __U,__m128i __A,__m128i __B)7700 __m128i test_mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
7701   // CHECK-LABEL: @test_mm_maskz_unpackhi_epi32
7702   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7703   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7704   return _mm_maskz_unpackhi_epi32(__U, __A, __B);
7705 }
7706 
test_mm256_mask_unpackhi_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7707 __m256i test_mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7708   // CHECK-LABEL: @test_mm256_mask_unpackhi_epi32
7709   // 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>
7710   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7711   return _mm256_mask_unpackhi_epi32(__W, __U, __A, __B);
7712 }
7713 
test_mm256_maskz_unpackhi_epi32(__mmask8 __U,__m256i __A,__m256i __B)7714 __m256i test_mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
7715   // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi32
7716   // 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>
7717   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7718   return _mm256_maskz_unpackhi_epi32(__U, __A, __B);
7719 }
7720 
test_mm_mask_unpackhi_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7721 __m128i test_mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7722   // CHECK-LABEL: @test_mm_mask_unpackhi_epi64
7723   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 3>
7724   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7725   return _mm_mask_unpackhi_epi64(__W, __U, __A, __B);
7726 }
7727 
test_mm_maskz_unpackhi_epi64(__mmask8 __U,__m128i __A,__m128i __B)7728 __m128i test_mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
7729   // CHECK-LABEL: @test_mm_maskz_unpackhi_epi64
7730   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 3>
7731   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7732   return _mm_maskz_unpackhi_epi64(__U, __A, __B);
7733 }
7734 
test_mm256_mask_unpackhi_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7735 __m256i test_mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7736   // CHECK-LABEL: @test_mm256_mask_unpackhi_epi64
7737   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 3, i32 7>
7738   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7739   return _mm256_mask_unpackhi_epi64(__W, __U, __A, __B);
7740 }
7741 
test_mm256_maskz_unpackhi_epi64(__mmask8 __U,__m256i __A,__m256i __B)7742 __m256i test_mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
7743   // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi64
7744   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 3, i32 7>
7745   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7746   return _mm256_maskz_unpackhi_epi64(__U, __A, __B);
7747 }
7748 
test_mm_mask_unpacklo_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7749 __m128i test_mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7750   // CHECK-LABEL: @test_mm_mask_unpacklo_epi32
7751   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7752   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7753   return _mm_mask_unpacklo_epi32(__W, __U, __A, __B);
7754 }
7755 
test_mm_maskz_unpacklo_epi32(__mmask8 __U,__m128i __A,__m128i __B)7756 __m128i test_mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
7757   // CHECK-LABEL: @test_mm_maskz_unpacklo_epi32
7758   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7759   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7760   return _mm_maskz_unpacklo_epi32(__U, __A, __B);
7761 }
7762 
test_mm256_mask_unpacklo_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7763 __m256i test_mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7764   // CHECK-LABEL: @test_mm256_mask_unpacklo_epi32
7765   // 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>
7766   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7767   return _mm256_mask_unpacklo_epi32(__W, __U, __A, __B);
7768 }
7769 
test_mm256_maskz_unpacklo_epi32(__mmask8 __U,__m256i __A,__m256i __B)7770 __m256i test_mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
7771   // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi32
7772   // 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>
7773   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7774   return _mm256_maskz_unpacklo_epi32(__U, __A, __B);
7775 }
7776 
test_mm_mask_unpacklo_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7777 __m128i test_mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7778   // CHECK-LABEL: @test_mm_mask_unpacklo_epi64
7779   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2>
7780   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7781   return _mm_mask_unpacklo_epi64(__W, __U, __A, __B);
7782 }
7783 
test_mm_maskz_unpacklo_epi64(__mmask8 __U,__m128i __A,__m128i __B)7784 __m128i test_mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
7785   // CHECK-LABEL: @test_mm_maskz_unpacklo_epi64
7786   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2>
7787   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7788   return _mm_maskz_unpacklo_epi64(__U, __A, __B);
7789 }
7790 
test_mm256_mask_unpacklo_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7791 __m256i test_mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7792   // CHECK-LABEL: @test_mm256_mask_unpacklo_epi64
7793   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7794   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7795   return _mm256_mask_unpacklo_epi64(__W, __U, __A, __B);
7796 }
7797 
test_mm256_maskz_unpacklo_epi64(__mmask8 __U,__m256i __A,__m256i __B)7798 __m256i test_mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
7799   // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi64
7800   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7801   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7802   return _mm256_maskz_unpacklo_epi64(__U, __A, __B);
7803 }
7804 
test_mm_mask_sra_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7805 __m128i test_mm_mask_sra_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7806   // CHECK-LABEL: @test_mm_mask_sra_epi32
7807   // CHECK: @llvm.x86.sse2.psra.d
7808   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7809   return _mm_mask_sra_epi32(__W, __U, __A, __B);
7810 }
7811 
test_mm_maskz_sra_epi32(__mmask8 __U,__m128i __A,__m128i __B)7812 __m128i test_mm_maskz_sra_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
7813   // CHECK-LABEL: @test_mm_maskz_sra_epi32
7814   // CHECK: @llvm.x86.sse2.psra.d
7815   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7816   return _mm_maskz_sra_epi32(__U, __A, __B);
7817 }
7818 
test_mm256_mask_sra_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)7819 __m256i test_mm256_mask_sra_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
7820   // CHECK-LABEL: @test_mm256_mask_sra_epi32
7821   // CHECK: @llvm.x86.avx2.psra.d
7822   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7823   return _mm256_mask_sra_epi32(__W, __U, __A, __B);
7824 }
7825 
test_mm256_maskz_sra_epi32(__mmask8 __U,__m256i __A,__m128i __B)7826 __m256i test_mm256_maskz_sra_epi32(__mmask8 __U, __m256i __A, __m128i __B) {
7827   // CHECK-LABEL: @test_mm256_maskz_sra_epi32
7828   // CHECK: @llvm.x86.avx2.psra.d
7829   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7830   return _mm256_maskz_sra_epi32(__U, __A, __B);
7831 }
7832 
test_mm_mask_srai_epi32(__m128i __W,__mmask8 __U,__m128i __A)7833 __m128i test_mm_mask_srai_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
7834   // CHECK-LABEL: @test_mm_mask_srai_epi32
7835   // CHECK: @llvm.x86.sse2.psrai.d
7836   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7837   return _mm_mask_srai_epi32(__W, __U, __A, 5);
7838 }
7839 
test_mm_mask_srai_epi32_2(__m128i __W,__mmask8 __U,__m128i __A,int __B)7840 __m128i test_mm_mask_srai_epi32_2(__m128i __W, __mmask8 __U, __m128i __A, int __B) {
7841   // CHECK-LABEL: @test_mm_mask_srai_epi32_2
7842   // CHECK: @llvm.x86.sse2.psrai.d
7843   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7844   return _mm_mask_srai_epi32(__W, __U, __A, __B);
7845 }
7846 
test_mm_maskz_srai_epi32(__mmask8 __U,__m128i __A)7847 __m128i test_mm_maskz_srai_epi32(__mmask8 __U, __m128i __A) {
7848   // CHECK-LABEL: @test_mm_maskz_srai_epi32
7849   // CHECK: @llvm.x86.sse2.psrai.d
7850   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7851   return _mm_maskz_srai_epi32(__U, __A, 5);
7852 }
7853 
test_mm_maskz_srai_epi32_2(__mmask8 __U,__m128i __A,int __B)7854 __m128i test_mm_maskz_srai_epi32_2(__mmask8 __U, __m128i __A, int __B) {
7855   // CHECK-LABEL: @test_mm_maskz_srai_epi32_2
7856   // CHECK: @llvm.x86.sse2.psrai.d
7857   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7858   return _mm_maskz_srai_epi32(__U, __A, __B);
7859 }
7860 
test_mm256_mask_srai_epi32(__m256i __W,__mmask8 __U,__m256i __A)7861 __m256i test_mm256_mask_srai_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
7862   // CHECK-LABEL: @test_mm256_mask_srai_epi32
7863   // CHECK: @llvm.x86.avx2.psrai.d
7864   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7865   return _mm256_mask_srai_epi32(__W, __U, __A, 5);
7866 }
7867 
test_mm256_mask_srai_epi32_2(__m256i __W,__mmask8 __U,__m256i __A,int __B)7868 __m256i test_mm256_mask_srai_epi32_2(__m256i __W, __mmask8 __U, __m256i __A, int __B) {
7869   // CHECK-LABEL: @test_mm256_mask_srai_epi32_2
7870   // CHECK: @llvm.x86.avx2.psrai.d
7871   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7872   return _mm256_mask_srai_epi32(__W, __U, __A, __B);
7873 }
7874 
test_mm256_maskz_srai_epi32(__mmask8 __U,__m256i __A)7875 __m256i test_mm256_maskz_srai_epi32(__mmask8 __U, __m256i __A) {
7876   // CHECK-LABEL: @test_mm256_maskz_srai_epi32
7877   // CHECK: @llvm.x86.avx2.psrai.d
7878   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7879   return _mm256_maskz_srai_epi32(__U, __A, 5);
7880 }
7881 
test_mm256_maskz_srai_epi32_2(__mmask8 __U,__m256i __A,int __B)7882 __m256i test_mm256_maskz_srai_epi32_2(__mmask8 __U, __m256i __A, int __B) {
7883   // CHECK-LABEL: @test_mm256_maskz_srai_epi32_2
7884   // CHECK: @llvm.x86.avx2.psrai.d
7885   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7886   return _mm256_maskz_srai_epi32(__U, __A, __B);
7887 }
7888 
test_mm_sra_epi64(__m128i __A,__m128i __B)7889 __m128i test_mm_sra_epi64(__m128i __A, __m128i __B) {
7890   // CHECK-LABEL: @test_mm_sra_epi64
7891   // CHECK: @llvm.x86.avx512.psra.q.128
7892   return _mm_sra_epi64(__A, __B);
7893 }
7894 
test_mm_mask_sra_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7895 __m128i test_mm_mask_sra_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7896   // CHECK-LABEL: @test_mm_mask_sra_epi64
7897   // CHECK: @llvm.x86.avx512.psra.q.128
7898   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7899   return _mm_mask_sra_epi64(__W, __U, __A, __B);
7900 }
7901 
test_mm_maskz_sra_epi64(__mmask8 __U,__m128i __A,__m128i __B)7902 __m128i test_mm_maskz_sra_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
7903   // CHECK-LABEL: @test_mm_maskz_sra_epi64
7904   // CHECK: @llvm.x86.avx512.psra.q.128
7905   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7906   return _mm_maskz_sra_epi64(__U, __A, __B);
7907 }
7908 
test_mm256_sra_epi64(__m256i __A,__m128i __B)7909 __m256i test_mm256_sra_epi64(__m256i __A, __m128i __B) {
7910   // CHECK-LABEL: @test_mm256_sra_epi64
7911   // CHECK: @llvm.x86.avx512.psra.q.256
7912   return _mm256_sra_epi64(__A, __B);
7913 }
7914 
test_mm256_mask_sra_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)7915 __m256i test_mm256_mask_sra_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
7916   // CHECK-LABEL: @test_mm256_mask_sra_epi64
7917   // CHECK: @llvm.x86.avx512.psra.q.256
7918   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7919   return _mm256_mask_sra_epi64(__W, __U, __A, __B);
7920 }
7921 
test_mm256_maskz_sra_epi64(__mmask8 __U,__m256i __A,__m128i __B)7922 __m256i test_mm256_maskz_sra_epi64(__mmask8 __U, __m256i __A, __m128i __B) {
7923   // CHECK-LABEL: @test_mm256_maskz_sra_epi64
7924   // CHECK: @llvm.x86.avx512.psra.q.256
7925   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7926   return _mm256_maskz_sra_epi64(__U, __A, __B);
7927 }
7928 
test_mm_srai_epi64(__m128i __A)7929 __m128i test_mm_srai_epi64(__m128i __A) {
7930   // CHECK-LABEL: @test_mm_srai_epi64
7931   // CHECK: @llvm.x86.avx512.psrai.q.128
7932   return _mm_srai_epi64(__A, 5);
7933 }
7934 
test_mm_srai_epi64_2(__m128i __A,int __B)7935 __m128i test_mm_srai_epi64_2(__m128i __A, int __B) {
7936   // CHECK-LABEL: @test_mm_srai_epi64_2
7937   // CHECK: @llvm.x86.avx512.psrai.q.128
7938   return _mm_srai_epi64(__A, __B);
7939 }
7940 
test_mm_mask_srai_epi64(__m128i __W,__mmask8 __U,__m128i __A)7941 __m128i test_mm_mask_srai_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
7942   // CHECK-LABEL: @test_mm_mask_srai_epi64
7943   // CHECK: @llvm.x86.avx512.psrai.q.128
7944   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7945   return _mm_mask_srai_epi64(__W, __U, __A, 5);
7946 }
7947 
test_mm_mask_srai_epi64_2(__m128i __W,__mmask8 __U,__m128i __A,int __B)7948 __m128i test_mm_mask_srai_epi64_2(__m128i __W, __mmask8 __U, __m128i __A, int __B) {
7949   // CHECK-LABEL: @test_mm_mask_srai_epi64_2
7950   // CHECK: @llvm.x86.avx512.psrai.q.128
7951   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7952   return _mm_mask_srai_epi64(__W, __U, __A, __B);
7953 }
7954 
test_mm_maskz_srai_epi64(__mmask8 __U,__m128i __A)7955 __m128i test_mm_maskz_srai_epi64(__mmask8 __U, __m128i __A) {
7956   // CHECK-LABEL: @test_mm_maskz_srai_epi64
7957   // CHECK: @llvm.x86.avx512.psrai.q.128
7958   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7959   return _mm_maskz_srai_epi64(__U, __A, 5);
7960 }
7961 
test_mm_maskz_srai_epi64_2(__mmask8 __U,__m128i __A,int __B)7962 __m128i test_mm_maskz_srai_epi64_2(__mmask8 __U, __m128i __A, int __B) {
7963   // CHECK-LABEL: @test_mm_maskz_srai_epi64_2
7964   // CHECK: @llvm.x86.avx512.psrai.q.128
7965   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7966   return _mm_maskz_srai_epi64(__U, __A, __B);
7967 }
7968 
test_mm256_srai_epi64(__m256i __A)7969 __m256i test_mm256_srai_epi64(__m256i __A) {
7970   // CHECK-LABEL: @test_mm256_srai_epi64
7971   // CHECK: @llvm.x86.avx512.psrai.q.256
7972   return _mm256_srai_epi64(__A, 5);
7973 }
7974 
test_mm256_srai_epi64_2(__m256i __A,int __B)7975 __m256i test_mm256_srai_epi64_2(__m256i __A, int __B) {
7976   // CHECK-LABEL: @test_mm256_srai_epi64_2
7977   // CHECK: @llvm.x86.avx512.psrai.q.256
7978   return _mm256_srai_epi64(__A, __B);
7979 }
7980 
test_mm256_mask_srai_epi64(__m256i __W,__mmask8 __U,__m256i __A)7981 __m256i test_mm256_mask_srai_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
7982   // CHECK-LABEL: @test_mm256_mask_srai_epi64
7983   // CHECK: @llvm.x86.avx512.psrai.q.256
7984   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7985   return _mm256_mask_srai_epi64(__W, __U, __A, 5);
7986 }
7987 
test_mm256_mask_srai_epi64_2(__m256i __W,__mmask8 __U,__m256i __A,int __B)7988 __m256i test_mm256_mask_srai_epi64_2(__m256i __W, __mmask8 __U, __m256i __A, int __B) {
7989   // CHECK-LABEL: @test_mm256_mask_srai_epi64_2
7990   // CHECK: @llvm.x86.avx512.psrai.q.256
7991   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7992   return _mm256_mask_srai_epi64(__W, __U, __A, __B);
7993 }
7994 
test_mm256_maskz_srai_epi64(__mmask8 __U,__m256i __A)7995 __m256i test_mm256_maskz_srai_epi64(__mmask8 __U, __m256i __A) {
7996   // CHECK-LABEL: @test_mm256_maskz_srai_epi64
7997   // CHECK: @llvm.x86.avx512.psrai.q.256
7998   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7999   return _mm256_maskz_srai_epi64(__U, __A, 5);
8000 }
8001 
test_mm256_maskz_srai_epi64_2(__mmask8 __U,__m256i __A,int __B)8002 __m256i test_mm256_maskz_srai_epi64_2(__mmask8 __U, __m256i __A, int __B) {
8003   // CHECK-LABEL: @test_mm256_maskz_srai_epi64_2
8004   // CHECK: @llvm.x86.avx512.psrai.q.256
8005   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8006   return _mm256_maskz_srai_epi64(__U, __A, __B);
8007 }
8008 
test_mm_ternarylogic_epi32(__m128i __A,__m128i __B,__m128i __C)8009 __m128i test_mm_ternarylogic_epi32(__m128i __A, __m128i __B, __m128i __C) {
8010   // CHECK-LABEL: @test_mm_ternarylogic_epi32
8011   // CHECK: @llvm.x86.avx512.pternlog.d.128
8012   return _mm_ternarylogic_epi32(__A, __B, __C, 4);
8013 }
8014 
test_mm_mask_ternarylogic_epi32(__m128i __A,__mmask8 __U,__m128i __B,__m128i __C)8015 __m128i test_mm_mask_ternarylogic_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
8016   // CHECK-LABEL: @test_mm_mask_ternarylogic_epi32
8017   // CHECK: @llvm.x86.avx512.pternlog.d.128
8018   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8019   return _mm_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
8020 }
8021 
test_mm_maskz_ternarylogic_epi32(__mmask8 __U,__m128i __A,__m128i __B,__m128i __C)8022 __m128i test_mm_maskz_ternarylogic_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
8023   // CHECK-LABEL: @test_mm_maskz_ternarylogic_epi32
8024   // CHECK: @llvm.x86.avx512.pternlog.d.128
8025   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
8026   return _mm_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
8027 }
8028 
test_mm256_ternarylogic_epi32(__m256i __A,__m256i __B,__m256i __C)8029 __m256i test_mm256_ternarylogic_epi32(__m256i __A, __m256i __B, __m256i __C) {
8030   // CHECK-LABEL: @test_mm256_ternarylogic_epi32
8031   // CHECK: @llvm.x86.avx512.pternlog.d.256
8032   return _mm256_ternarylogic_epi32(__A, __B, __C, 4);
8033 }
8034 
test_mm256_mask_ternarylogic_epi32(__m256i __A,__mmask8 __U,__m256i __B,__m256i __C)8035 __m256i test_mm256_mask_ternarylogic_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) {
8036   // CHECK-LABEL: @test_mm256_mask_ternarylogic_epi32
8037   // CHECK: @llvm.x86.avx512.pternlog.d.256
8038   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8039   return _mm256_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
8040 }
8041 
test_mm256_maskz_ternarylogic_epi32(__mmask8 __U,__m256i __A,__m256i __B,__m256i __C)8042 __m256i test_mm256_maskz_ternarylogic_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) {
8043   // CHECK-LABEL: @test_mm256_maskz_ternarylogic_epi32
8044   // CHECK: @llvm.x86.avx512.pternlog.d.256
8045   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> zeroinitializer
8046   return _mm256_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
8047 }
8048 
test_mm_ternarylogic_epi64(__m128i __A,__m128i __B,__m128i __C)8049 __m128i test_mm_ternarylogic_epi64(__m128i __A, __m128i __B, __m128i __C) {
8050   // CHECK-LABEL: @test_mm_ternarylogic_epi64
8051   // CHECK: @llvm.x86.avx512.pternlog.q.128
8052   return _mm_ternarylogic_epi64(__A, __B, __C, 4);
8053 }
8054 
test_mm_mask_ternarylogic_epi64(__m128i __A,__mmask8 __U,__m128i __B,__m128i __C)8055 __m128i test_mm_mask_ternarylogic_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
8056   // CHECK-LABEL: @test_mm_mask_ternarylogic_epi64
8057   // CHECK: @llvm.x86.avx512.pternlog.q.128
8058   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
8059   return _mm_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
8060 }
8061 
test_mm_maskz_ternarylogic_epi64(__mmask8 __U,__m128i __A,__m128i __B,__m128i __C)8062 __m128i test_mm_maskz_ternarylogic_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
8063   // CHECK-LABEL: @test_mm_maskz_ternarylogic_epi64
8064   // CHECK: @llvm.x86.avx512.pternlog.q.128
8065   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> zeroinitializer
8066   return _mm_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
8067 }
8068 
test_mm256_ternarylogic_epi64(__m256i __A,__m256i __B,__m256i __C)8069 __m256i test_mm256_ternarylogic_epi64(__m256i __A, __m256i __B, __m256i __C) {
8070   // CHECK-LABEL: @test_mm256_ternarylogic_epi64
8071   // CHECK: @llvm.x86.avx512.pternlog.q.256
8072   return _mm256_ternarylogic_epi64(__A, __B, __C, 4);
8073 }
8074 
test_mm256_mask_ternarylogic_epi64(__m256i __A,__mmask8 __U,__m256i __B,__m256i __C)8075 __m256i test_mm256_mask_ternarylogic_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) {
8076   // CHECK-LABEL: @test_mm256_mask_ternarylogic_epi64
8077   // CHECK: @llvm.x86.avx512.pternlog.q.256
8078   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8079   return _mm256_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
8080 }
8081 
test_mm256_maskz_ternarylogic_epi64(__mmask8 __U,__m256i __A,__m256i __B,__m256i __C)8082 __m256i test_mm256_maskz_ternarylogic_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) {
8083   // CHECK-LABEL: @test_mm256_maskz_ternarylogic_epi64
8084   // CHECK: @llvm.x86.avx512.pternlog.q.256
8085   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> zeroinitializer
8086   return _mm256_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
8087 }
test_mm256_shuffle_f32x4(__m256 __A,__m256 __B)8088 __m256 test_mm256_shuffle_f32x4(__m256 __A, __m256 __B) {
8089   // CHECK-LABEL: @test_mm256_shuffle_f32x4
8090   // 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>
8091   return _mm256_shuffle_f32x4(__A, __B, 3);
8092 }
8093 
test_mm256_mask_shuffle_f32x4(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)8094 __m256 test_mm256_mask_shuffle_f32x4(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
8095   // CHECK-LABEL: @test_mm256_mask_shuffle_f32x4
8096   // 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>
8097   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8098   return _mm256_mask_shuffle_f32x4(__W, __U, __A, __B, 3);
8099 }
8100 
test_mm256_maskz_shuffle_f32x4(__mmask8 __U,__m256 __A,__m256 __B)8101 __m256 test_mm256_maskz_shuffle_f32x4(__mmask8 __U, __m256 __A, __m256 __B) {
8102   // CHECK-LABEL: @test_mm256_maskz_shuffle_f32x4
8103   // 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>
8104   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8105   return _mm256_maskz_shuffle_f32x4(__U, __A, __B, 3);
8106 }
8107 
test_mm256_shuffle_f64x2(__m256d __A,__m256d __B)8108 __m256d test_mm256_shuffle_f64x2(__m256d __A, __m256d __B) {
8109   // CHECK-LABEL: @test_mm256_shuffle_f64x2
8110   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8111   return _mm256_shuffle_f64x2(__A, __B, 3);
8112 }
8113 
test_mm256_mask_shuffle_f64x2(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)8114 __m256d test_mm256_mask_shuffle_f64x2(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
8115   // CHECK-LABEL: @test_mm256_mask_shuffle_f64x2
8116   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8117   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8118   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8119   return _mm256_mask_shuffle_f64x2(__W, __U, __A, __B, 3);
8120 }
8121 
test_mm256_maskz_shuffle_f64x2(__mmask8 __U,__m256d __A,__m256d __B)8122 __m256d test_mm256_maskz_shuffle_f64x2(__mmask8 __U, __m256d __A, __m256d __B) {
8123   // CHECK-LABEL: @test_mm256_maskz_shuffle_f64x2
8124   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8125   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8126   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8127   return _mm256_maskz_shuffle_f64x2(__U, __A, __B, 3);
8128 }
8129 
test_mm256_shuffle_i32x4(__m256i __A,__m256i __B)8130 __m256i test_mm256_shuffle_i32x4(__m256i __A, __m256i __B) {
8131   // CHECK-LABEL: @test_mm256_shuffle_i32x4
8132   // 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>
8133   return _mm256_shuffle_i32x4(__A, __B, 3);
8134 }
8135 
test_mm256_mask_shuffle_i32x4(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)8136 __m256i test_mm256_mask_shuffle_i32x4(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
8137   // CHECK-LABEL: @test_mm256_mask_shuffle_i32x4
8138   // 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>
8139   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8140   return _mm256_mask_shuffle_i32x4(__W, __U, __A, __B, 3);
8141 }
8142 
test_mm256_maskz_shuffle_i32x4(__mmask8 __U,__m256i __A,__m256i __B)8143 __m256i test_mm256_maskz_shuffle_i32x4(__mmask8 __U, __m256i __A, __m256i __B) {
8144   // CHECK-LABEL: @test_mm256_maskz_shuffle_i32x4
8145   // 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>
8146   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8147   return _mm256_maskz_shuffle_i32x4(__U, __A, __B, 3);
8148 }
8149 
test_mm256_shuffle_i64x2(__m256i __A,__m256i __B)8150 __m256i test_mm256_shuffle_i64x2(__m256i __A, __m256i __B) {
8151   // CHECK-LABEL: @test_mm256_shuffle_i64x2
8152   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8153   return _mm256_shuffle_i64x2(__A, __B, 3);
8154 }
8155 
test_mm256_mask_shuffle_i64x2(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)8156 __m256i test_mm256_mask_shuffle_i64x2(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
8157   // CHECK-LABEL: @test_mm256_mask_shuffle_i64x2
8158   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8159   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8160   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8161   return _mm256_mask_shuffle_i64x2(__W, __U, __A, __B, 3);
8162 }
8163 
test_mm256_maskz_shuffle_i64x2(__mmask8 __U,__m256i __A,__m256i __B)8164 __m256i test_mm256_maskz_shuffle_i64x2(__mmask8 __U, __m256i __A, __m256i __B) {
8165   // CHECK-LABEL: @test_mm256_maskz_shuffle_i64x2
8166   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8167   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8168   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8169   return _mm256_maskz_shuffle_i64x2(__U, __A, __B, 3);
8170 }
8171 
test_mm_mask_shuffle_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)8172 __m128d test_mm_mask_shuffle_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
8173   // CHECK-LABEL: @test_mm_mask_shuffle_pd
8174   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
8175   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
8176   return _mm_mask_shuffle_pd(__W, __U, __A, __B, 3);
8177 }
8178 
test_mm_maskz_shuffle_pd(__mmask8 __U,__m128d __A,__m128d __B)8179 __m128d test_mm_maskz_shuffle_pd(__mmask8 __U, __m128d __A, __m128d __B) {
8180   // CHECK-LABEL: @test_mm_maskz_shuffle_pd
8181   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
8182   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
8183   return _mm_maskz_shuffle_pd(__U, __A, __B, 3);
8184 }
8185 
test_mm256_mask_shuffle_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)8186 __m256d test_mm256_mask_shuffle_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
8187   // CHECK-LABEL: @test_mm256_mask_shuffle_pd
8188   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 2, i32 6>
8189   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8190   return _mm256_mask_shuffle_pd(__W, __U, __A, __B, 3);
8191 }
8192 
test_mm256_maskz_shuffle_pd(__mmask8 __U,__m256d __A,__m256d __B)8193 __m256d test_mm256_maskz_shuffle_pd(__mmask8 __U, __m256d __A, __m256d __B) {
8194   // CHECK-LABEL: @test_mm256_maskz_shuffle_pd
8195   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 2, i32 6>
8196   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8197   return _mm256_maskz_shuffle_pd(__U, __A, __B, 3);
8198 }
8199 
test_mm_mask_shuffle_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)8200 __m128 test_mm_mask_shuffle_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
8201   // CHECK-LABEL: @test_mm_mask_shuffle_ps
8202   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 4>
8203   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8204   return _mm_mask_shuffle_ps(__W, __U, __A, __B, 4);
8205 }
8206 
test_mm_maskz_shuffle_ps(__mmask8 __U,__m128 __A,__m128 __B)8207 __m128 test_mm_maskz_shuffle_ps(__mmask8 __U, __m128 __A, __m128 __B) {
8208   // CHECK-LABEL: @test_mm_maskz_shuffle_ps
8209   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 4>
8210   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8211   return _mm_maskz_shuffle_ps(__U, __A, __B, 4);
8212 }
8213 
test_mm256_mask_shuffle_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)8214 __m256 test_mm256_mask_shuffle_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
8215   // CHECK-LABEL: @test_mm256_mask_shuffle_ps
8216   // 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>
8217   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8218   return _mm256_mask_shuffle_ps(__W, __U, __A, __B, 4);
8219 }
8220 
test_mm256_maskz_shuffle_ps(__mmask8 __U,__m256 __A,__m256 __B)8221 __m256 test_mm256_maskz_shuffle_ps(__mmask8 __U, __m256 __A, __m256 __B) {
8222   // CHECK-LABEL: @test_mm256_maskz_shuffle_ps
8223   // 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>
8224   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8225   return _mm256_maskz_shuffle_ps(__U, __A, __B, 4);
8226 }
8227 
test_mm_rsqrt14_pd(__m128d __A)8228 __m128d test_mm_rsqrt14_pd(__m128d __A) {
8229   // CHECK-LABEL: @test_mm_rsqrt14_pd
8230   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8231   return _mm_rsqrt14_pd(__A);
8232 }
8233 
test_mm_mask_rsqrt14_pd(__m128d __W,__mmask8 __U,__m128d __A)8234 __m128d test_mm_mask_rsqrt14_pd(__m128d __W, __mmask8 __U, __m128d __A) {
8235   // CHECK-LABEL: @test_mm_mask_rsqrt14_pd
8236   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8237   return _mm_mask_rsqrt14_pd(__W, __U, __A);
8238 }
8239 
test_mm_maskz_rsqrt14_pd(__mmask8 __U,__m128d __A)8240 __m128d test_mm_maskz_rsqrt14_pd(__mmask8 __U, __m128d __A) {
8241   // CHECK-LABEL: @test_mm_maskz_rsqrt14_pd
8242   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8243   return _mm_maskz_rsqrt14_pd(__U, __A);
8244 }
8245 
test_mm256_rsqrt14_pd(__m256d __A)8246 __m256d test_mm256_rsqrt14_pd(__m256d __A) {
8247   // CHECK-LABEL: @test_mm256_rsqrt14_pd
8248   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8249   return _mm256_rsqrt14_pd(__A);
8250 }
8251 
test_mm256_mask_rsqrt14_pd(__m256d __W,__mmask8 __U,__m256d __A)8252 __m256d test_mm256_mask_rsqrt14_pd(__m256d __W, __mmask8 __U, __m256d __A) {
8253   // CHECK-LABEL: @test_mm256_mask_rsqrt14_pd
8254   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8255   return _mm256_mask_rsqrt14_pd(__W, __U, __A);
8256 }
8257 
test_mm256_maskz_rsqrt14_pd(__mmask8 __U,__m256d __A)8258 __m256d test_mm256_maskz_rsqrt14_pd(__mmask8 __U, __m256d __A) {
8259   // CHECK-LABEL: @test_mm256_maskz_rsqrt14_pd
8260   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8261   return _mm256_maskz_rsqrt14_pd(__U, __A);
8262 }
8263 
test_mm_rsqrt14_ps(__m128 __A)8264 __m128 test_mm_rsqrt14_ps(__m128 __A) {
8265   // CHECK-LABEL: @test_mm_rsqrt14_ps
8266   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8267   return _mm_rsqrt14_ps(__A);
8268 }
8269 
test_mm_mask_rsqrt14_ps(__m128 __W,__mmask8 __U,__m128 __A)8270 __m128 test_mm_mask_rsqrt14_ps(__m128 __W, __mmask8 __U, __m128 __A) {
8271   // CHECK-LABEL: @test_mm_mask_rsqrt14_ps
8272   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8273   return _mm_mask_rsqrt14_ps(__W, __U, __A);
8274 }
8275 
test_mm_maskz_rsqrt14_ps(__mmask8 __U,__m128 __A)8276 __m128 test_mm_maskz_rsqrt14_ps(__mmask8 __U, __m128 __A) {
8277   // CHECK-LABEL: @test_mm_maskz_rsqrt14_ps
8278   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8279   return _mm_maskz_rsqrt14_ps(__U, __A);
8280 }
8281 
test_mm256_rsqrt14_ps(__m256 __A)8282 __m256 test_mm256_rsqrt14_ps(__m256 __A) {
8283   // CHECK-LABEL: @test_mm256_rsqrt14_ps
8284   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8285   return _mm256_rsqrt14_ps(__A);
8286 }
8287 
test_mm256_mask_rsqrt14_ps(__m256 __W,__mmask8 __U,__m256 __A)8288 __m256 test_mm256_mask_rsqrt14_ps(__m256 __W, __mmask8 __U, __m256 __A) {
8289   // CHECK-LABEL: @test_mm256_mask_rsqrt14_ps
8290   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8291   return _mm256_mask_rsqrt14_ps(__W, __U, __A);
8292 }
8293 
test_mm256_maskz_rsqrt14_ps(__mmask8 __U,__m256 __A)8294 __m256 test_mm256_maskz_rsqrt14_ps(__mmask8 __U, __m256 __A) {
8295   // CHECK-LABEL: @test_mm256_maskz_rsqrt14_ps
8296   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8297   return _mm256_maskz_rsqrt14_ps(__U, __A);
8298 }
8299 
test_mm256_broadcast_f32x4(__m128 __A)8300 __m256 test_mm256_broadcast_f32x4(__m128 __A) {
8301   // CHECK-LABEL: @test_mm256_broadcast_f32x4
8302   // 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>
8303   return _mm256_broadcast_f32x4(__A);
8304 }
8305 
test_mm256_mask_broadcast_f32x4(__m256 __O,__mmask8 __M,__m128 __A)8306 __m256 test_mm256_mask_broadcast_f32x4(__m256 __O, __mmask8 __M, __m128 __A) {
8307   // CHECK-LABEL: @test_mm256_mask_broadcast_f32x4
8308   // 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>
8309   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8310   return _mm256_mask_broadcast_f32x4(__O, __M, __A);
8311 }
8312 
test_mm256_maskz_broadcast_f32x4(__mmask8 __M,__m128 __A)8313 __m256 test_mm256_maskz_broadcast_f32x4(__mmask8 __M, __m128 __A) {
8314   // CHECK-LABEL: @test_mm256_maskz_broadcast_f32x4
8315   // 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>
8316   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8317   return _mm256_maskz_broadcast_f32x4(__M, __A);
8318 }
8319 
test_mm256_broadcast_i32x4(__m128i const * __A)8320 __m256i test_mm256_broadcast_i32x4(__m128i const* __A) {
8321   // CHECK-LABEL: @test_mm256_broadcast_i32x4
8322   // 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>
8323   return _mm256_broadcast_i32x4(_mm_loadu_si128(__A));
8324 }
8325 
test_mm256_mask_broadcast_i32x4(__m256i __O,__mmask8 __M,__m128i const * __A)8326 __m256i test_mm256_mask_broadcast_i32x4(__m256i __O, __mmask8 __M, __m128i const* __A) {
8327   // CHECK-LABEL: @test_mm256_mask_broadcast_i32x4
8328   // 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>
8329   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8330   return _mm256_mask_broadcast_i32x4(__O, __M, _mm_loadu_si128(__A));
8331 }
8332 
test_mm256_maskz_broadcast_i32x4(__mmask8 __M,__m128i const * __A)8333 __m256i test_mm256_maskz_broadcast_i32x4(__mmask8 __M, __m128i const* __A) {
8334   // CHECK-LABEL: @test_mm256_maskz_broadcast_i32x4
8335   // 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>
8336   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8337   return _mm256_maskz_broadcast_i32x4(__M, _mm_loadu_si128(__A));
8338 }
8339 
test_mm256_mask_broadcastsd_pd(__m256d __O,__mmask8 __M,__m128d __A)8340 __m256d test_mm256_mask_broadcastsd_pd(__m256d __O, __mmask8 __M, __m128d __A) {
8341   // CHECK-LABEL: @test_mm256_mask_broadcastsd_pd
8342   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer
8343   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8344   return _mm256_mask_broadcastsd_pd(__O, __M, __A);
8345 }
8346 
test_mm256_maskz_broadcastsd_pd(__mmask8 __M,__m128d __A)8347 __m256d test_mm256_maskz_broadcastsd_pd(__mmask8 __M, __m128d __A) {
8348   // CHECK-LABEL: @test_mm256_maskz_broadcastsd_pd
8349   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer
8350   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8351   return _mm256_maskz_broadcastsd_pd(__M, __A);
8352 }
8353 
test_mm_mask_broadcastss_ps(__m128 __O,__mmask8 __M,__m128 __A)8354 __m128 test_mm_mask_broadcastss_ps(__m128 __O, __mmask8 __M, __m128 __A) {
8355   // CHECK-LABEL: @test_mm_mask_broadcastss_ps
8356   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer
8357   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8358   return _mm_mask_broadcastss_ps(__O, __M, __A);
8359 }
8360 
test_mm_maskz_broadcastss_ps(__mmask8 __M,__m128 __A)8361 __m128 test_mm_maskz_broadcastss_ps(__mmask8 __M, __m128 __A) {
8362   // CHECK-LABEL: @test_mm_maskz_broadcastss_ps
8363   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer
8364   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8365   return _mm_maskz_broadcastss_ps(__M, __A);
8366 }
8367 
test_mm256_mask_broadcastss_ps(__m256 __O,__mmask8 __M,__m128 __A)8368 __m256 test_mm256_mask_broadcastss_ps(__m256 __O, __mmask8 __M, __m128 __A) {
8369   // CHECK-LABEL: @test_mm256_mask_broadcastss_ps
8370   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer
8371   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8372   return _mm256_mask_broadcastss_ps(__O, __M, __A);
8373 }
8374 
test_mm256_maskz_broadcastss_ps(__mmask8 __M,__m128 __A)8375 __m256 test_mm256_maskz_broadcastss_ps(__mmask8 __M, __m128 __A) {
8376   // CHECK-LABEL: @test_mm256_maskz_broadcastss_ps
8377   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer
8378   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8379   return _mm256_maskz_broadcastss_ps(__M, __A);
8380 }
8381 
test_mm_mask_broadcastd_epi32(__m128i __O,__mmask8 __M,__m128i __A)8382 __m128i test_mm_mask_broadcastd_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
8383   // CHECK-LABEL: @test_mm_mask_broadcastd_epi32
8384   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
8385   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8386   return _mm_mask_broadcastd_epi32(__O, __M, __A);
8387 }
8388 
test_mm_maskz_broadcastd_epi32(__mmask8 __M,__m128i __A)8389 __m128i test_mm_maskz_broadcastd_epi32(__mmask8 __M, __m128i __A) {
8390   // CHECK-LABEL: @test_mm_maskz_broadcastd_epi32
8391   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
8392   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8393   return _mm_maskz_broadcastd_epi32(__M, __A);
8394 }
8395 
test_mm256_mask_broadcastd_epi32(__m256i __O,__mmask8 __M,__m128i __A)8396 __m256i test_mm256_mask_broadcastd_epi32(__m256i __O, __mmask8 __M, __m128i __A) {
8397   // CHECK-LABEL: @test_mm256_mask_broadcastd_epi32
8398   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer
8399   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8400   return _mm256_mask_broadcastd_epi32(__O, __M, __A);
8401 }
8402 
test_mm256_maskz_broadcastd_epi32(__mmask8 __M,__m128i __A)8403 __m256i test_mm256_maskz_broadcastd_epi32(__mmask8 __M, __m128i __A) {
8404   // CHECK-LABEL: @test_mm256_maskz_broadcastd_epi32
8405   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer
8406   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8407   return _mm256_maskz_broadcastd_epi32(__M, __A);
8408 }
8409 
test_mm_mask_broadcastq_epi64(__m128i __O,__mmask8 __M,__m128i __A)8410 __m128i test_mm_mask_broadcastq_epi64(__m128i __O, __mmask8 __M, __m128i __A) {
8411   // CHECK-LABEL: @test_mm_mask_broadcastq_epi64
8412   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer
8413   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
8414   return _mm_mask_broadcastq_epi64(__O, __M, __A);
8415 }
8416 
test_mm_maskz_broadcastq_epi64(__mmask8 __M,__m128i __A)8417 __m128i test_mm_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
8418   // CHECK-LABEL: @test_mm_maskz_broadcastq_epi64
8419   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer
8420   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
8421   return _mm_maskz_broadcastq_epi64(__M, __A);
8422 }
8423 
test_mm256_mask_broadcastq_epi64(__m256i __O,__mmask8 __M,__m128i __A)8424 __m256i test_mm256_mask_broadcastq_epi64(__m256i __O, __mmask8 __M, __m128i __A) {
8425   // CHECK-LABEL: @test_mm256_mask_broadcastq_epi64
8426   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer
8427   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8428   return _mm256_mask_broadcastq_epi64(__O, __M, __A);
8429 }
8430 
test_mm256_maskz_broadcastq_epi64(__mmask8 __M,__m128i __A)8431 __m256i test_mm256_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
8432   // CHECK-LABEL: @test_mm256_maskz_broadcastq_epi64
8433   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer
8434   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8435   return _mm256_maskz_broadcastq_epi64(__M, __A);
8436 }
8437 
test_mm_cvtsepi32_epi8(__m128i __A)8438 __m128i test_mm_cvtsepi32_epi8(__m128i __A) {
8439   // CHECK-LABEL: @test_mm_cvtsepi32_epi8
8440   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8441   return _mm_cvtsepi32_epi8(__A);
8442 }
8443 
test_mm_mask_cvtsepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)8444 __m128i test_mm_mask_cvtsepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8445   // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi8
8446   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8447   return _mm_mask_cvtsepi32_epi8(__O, __M, __A);
8448 }
8449 
test_mm_maskz_cvtsepi32_epi8(__mmask8 __M,__m128i __A)8450 __m128i test_mm_maskz_cvtsepi32_epi8(__mmask8 __M, __m128i __A) {
8451   // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi8
8452   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8453   return _mm_maskz_cvtsepi32_epi8(__M, __A);
8454 }
8455 
test_mm_mask_cvtsepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8456 void test_mm_mask_cvtsepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8457   // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi8
8458   // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.128
8459   return _mm_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
8460 }
8461 
test_mm256_cvtsepi32_epi8(__m256i __A)8462 __m128i test_mm256_cvtsepi32_epi8(__m256i __A) {
8463   // CHECK-LABEL: @test_mm256_cvtsepi32_epi8
8464   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8465   return _mm256_cvtsepi32_epi8(__A);
8466 }
8467 
test_mm256_mask_cvtsepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)8468 __m128i test_mm256_mask_cvtsepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8469   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi8
8470   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8471   return _mm256_mask_cvtsepi32_epi8(__O, __M, __A);
8472 }
8473 
test_mm256_maskz_cvtsepi32_epi8(__mmask8 __M,__m256i __A)8474 __m128i test_mm256_maskz_cvtsepi32_epi8(__mmask8 __M, __m256i __A) {
8475   // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi8
8476   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8477   return _mm256_maskz_cvtsepi32_epi8(__M, __A);
8478 }
8479 
test_mm256_mask_cvtsepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8480 void test_mm256_mask_cvtsepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8481   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi8
8482   // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.256
8483   return _mm256_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
8484 }
8485 
test_mm_cvtsepi32_epi16(__m128i __A)8486 __m128i test_mm_cvtsepi32_epi16(__m128i __A) {
8487   // CHECK-LABEL: @test_mm_cvtsepi32_epi16
8488   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8489   return _mm_cvtsepi32_epi16(__A);
8490 }
8491 
test_mm_mask_cvtsepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)8492 __m128i test_mm_mask_cvtsepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8493   // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi16
8494   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8495   return _mm_mask_cvtsepi32_epi16(__O, __M, __A);
8496 }
8497 
test_mm_maskz_cvtsepi32_epi16(__mmask8 __M,__m128i __A)8498 __m128i test_mm_maskz_cvtsepi32_epi16(__mmask8 __M, __m128i __A) {
8499   // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi16
8500   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8501   return _mm_maskz_cvtsepi32_epi16(__M, __A);
8502 }
8503 
test_mm_mask_cvtsepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8504 void test_mm_mask_cvtsepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8505   // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi16
8506   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.128
8507   return _mm_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
8508 }
8509 
test_mm256_cvtsepi32_epi16(__m256i __A)8510 __m128i test_mm256_cvtsepi32_epi16(__m256i __A) {
8511   // CHECK-LABEL: @test_mm256_cvtsepi32_epi16
8512   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8513   return _mm256_cvtsepi32_epi16(__A);
8514 }
8515 
test_mm256_mask_cvtsepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)8516 __m128i test_mm256_mask_cvtsepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8517   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi16
8518   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8519   return _mm256_mask_cvtsepi32_epi16(__O, __M, __A);
8520 }
8521 
test_mm256_maskz_cvtsepi32_epi16(__mmask8 __M,__m256i __A)8522 __m128i test_mm256_maskz_cvtsepi32_epi16(__mmask8 __M, __m256i __A) {
8523   // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi16
8524   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8525   return _mm256_maskz_cvtsepi32_epi16(__M, __A);
8526 }
8527 
test_mm256_mask_cvtsepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8528 void test_mm256_mask_cvtsepi32_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8529   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi16
8530   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.256
8531   return _mm256_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
8532 }
8533 
test_mm_cvtsepi64_epi8(__m128i __A)8534 __m128i test_mm_cvtsepi64_epi8(__m128i __A) {
8535   // CHECK-LABEL: @test_mm_cvtsepi64_epi8
8536   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8537   return _mm_cvtsepi64_epi8(__A);
8538 }
8539 
test_mm_mask_cvtsepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)8540 __m128i test_mm_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8541   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi8
8542   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8543   return _mm_mask_cvtsepi64_epi8(__O, __M, __A);
8544 }
8545 
test_mm_maskz_cvtsepi64_epi8(__mmask8 __M,__m128i __A)8546 __m128i test_mm_maskz_cvtsepi64_epi8(__mmask8 __M, __m128i __A) {
8547   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi8
8548   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8549   return _mm_maskz_cvtsepi64_epi8(__M, __A);
8550 }
8551 
test_mm_mask_cvtsepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8552 void test_mm_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8553   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi8
8554   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.128
8555   return _mm_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
8556 }
8557 
test_mm256_cvtsepi64_epi8(__m256i __A)8558 __m128i test_mm256_cvtsepi64_epi8(__m256i __A) {
8559   // CHECK-LABEL: @test_mm256_cvtsepi64_epi8
8560   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8561   return _mm256_cvtsepi64_epi8(__A);
8562 }
8563 
test_mm256_mask_cvtsepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)8564 __m128i test_mm256_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8565   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi8
8566   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8567   return _mm256_mask_cvtsepi64_epi8(__O, __M, __A);
8568 }
8569 
test_mm256_maskz_cvtsepi64_epi8(__mmask8 __M,__m256i __A)8570 __m128i test_mm256_maskz_cvtsepi64_epi8(__mmask8 __M, __m256i __A) {
8571   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi8
8572   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8573   return _mm256_maskz_cvtsepi64_epi8(__M, __A);
8574 }
8575 
test_mm256_mask_cvtsepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8576 void test_mm256_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8577   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi8
8578   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.256
8579   return _mm256_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
8580 }
8581 
test_mm_cvtsepi64_epi32(__m128i __A)8582 __m128i test_mm_cvtsepi64_epi32(__m128i __A) {
8583   // CHECK-LABEL: @test_mm_cvtsepi64_epi32
8584   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8585   return _mm_cvtsepi64_epi32(__A);
8586 }
8587 
test_mm_mask_cvtsepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)8588 __m128i test_mm_mask_cvtsepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
8589   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi32
8590   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8591   return _mm_mask_cvtsepi64_epi32(__O, __M, __A);
8592 }
8593 
test_mm_maskz_cvtsepi64_epi32(__mmask8 __M,__m128i __A)8594 __m128i test_mm_maskz_cvtsepi64_epi32(__mmask8 __M, __m128i __A) {
8595   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi32
8596   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8597   return _mm_maskz_cvtsepi64_epi32(__M, __A);
8598 }
8599 
test_mm_mask_cvtsepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)8600 void test_mm_mask_cvtsepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
8601   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi32
8602   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.128
8603   return _mm_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
8604 }
8605 
test_mm256_cvtsepi64_epi32(__m256i __A)8606 __m128i test_mm256_cvtsepi64_epi32(__m256i __A) {
8607   // CHECK-LABEL: @test_mm256_cvtsepi64_epi32
8608   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8609   return _mm256_cvtsepi64_epi32(__A);
8610 }
8611 
test_mm256_mask_cvtsepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)8612 __m128i test_mm256_mask_cvtsepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
8613   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi32
8614   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8615   return _mm256_mask_cvtsepi64_epi32(__O, __M, __A);
8616 }
8617 
test_mm256_maskz_cvtsepi64_epi32(__mmask8 __M,__m256i __A)8618 __m128i test_mm256_maskz_cvtsepi64_epi32(__mmask8 __M, __m256i __A) {
8619   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi32
8620   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8621   return _mm256_maskz_cvtsepi64_epi32(__M, __A);
8622 }
8623 
test_mm256_mask_cvtsepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)8624 void test_mm256_mask_cvtsepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
8625   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi32
8626   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.256
8627   return _mm256_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
8628 }
8629 
test_mm_cvtsepi64_epi16(__m128i __A)8630 __m128i test_mm_cvtsepi64_epi16(__m128i __A) {
8631   // CHECK-LABEL: @test_mm_cvtsepi64_epi16
8632   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8633   return _mm_cvtsepi64_epi16(__A);
8634 }
8635 
test_mm_mask_cvtsepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)8636 __m128i test_mm_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8637   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi16
8638   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8639   return _mm_mask_cvtsepi64_epi16(__O, __M, __A);
8640 }
8641 
test_mm_maskz_cvtsepi64_epi16(__mmask8 __M,__m128i __A)8642 __m128i test_mm_maskz_cvtsepi64_epi16(__mmask8 __M, __m128i __A) {
8643   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi16
8644   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8645   return _mm_maskz_cvtsepi64_epi16(__M, __A);
8646 }
8647 
test_mm_mask_cvtsepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8648 void test_mm_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8649   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi16
8650   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.128
8651   return _mm_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
8652 }
8653 
test_mm256_cvtsepi64_epi16(__m256i __A)8654 __m128i test_mm256_cvtsepi64_epi16(__m256i __A) {
8655   // CHECK-LABEL: @test_mm256_cvtsepi64_epi16
8656   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8657   return _mm256_cvtsepi64_epi16(__A);
8658 }
8659 
test_mm256_mask_cvtsepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)8660 __m128i test_mm256_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8661   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi16
8662   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8663   return _mm256_mask_cvtsepi64_epi16(__O, __M, __A);
8664 }
8665 
test_mm256_maskz_cvtsepi64_epi16(__mmask8 __M,__m256i __A)8666 __m128i test_mm256_maskz_cvtsepi64_epi16(__mmask8 __M, __m256i __A) {
8667   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi16
8668   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8669   return _mm256_maskz_cvtsepi64_epi16(__M, __A);
8670 }
8671 
test_mm256_mask_cvtsepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8672 void test_mm256_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8673   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi16
8674   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.256
8675   return _mm256_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
8676 }
8677 
test_mm_cvtusepi32_epi8(__m128i __A)8678 __m128i test_mm_cvtusepi32_epi8(__m128i __A) {
8679   // CHECK-LABEL: @test_mm_cvtusepi32_epi8
8680   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8681   return _mm_cvtusepi32_epi8(__A);
8682 }
8683 
test_mm_mask_cvtusepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)8684 __m128i test_mm_mask_cvtusepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8685   // CHECK-LABEL: @test_mm_mask_cvtusepi32_epi8
8686   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8687   return _mm_mask_cvtusepi32_epi8(__O, __M, __A);
8688 }
8689 
test_mm_maskz_cvtusepi32_epi8(__mmask8 __M,__m128i __A)8690 __m128i test_mm_maskz_cvtusepi32_epi8(__mmask8 __M, __m128i __A) {
8691   // CHECK-LABEL: @test_mm_maskz_cvtusepi32_epi8
8692   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8693   return _mm_maskz_cvtusepi32_epi8(__M, __A);
8694 }
8695 
test_mm_mask_cvtusepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8696 void test_mm_mask_cvtusepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8697   // CHECK-LABEL: @test_mm_mask_cvtusepi32_storeu_epi8
8698   // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.128
8699   return _mm_mask_cvtusepi32_storeu_epi8(__P, __M, __A);
8700 }
8701 
test_mm256_cvtusepi32_epi8(__m256i __A)8702 __m128i test_mm256_cvtusepi32_epi8(__m256i __A) {
8703   // CHECK-LABEL: @test_mm256_cvtusepi32_epi8
8704   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8705   return _mm256_cvtusepi32_epi8(__A);
8706 }
8707 
test_mm256_mask_cvtusepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)8708 __m128i test_mm256_mask_cvtusepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8709   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_epi8
8710   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8711   return _mm256_mask_cvtusepi32_epi8(__O, __M, __A);
8712 }
8713 
test_mm256_maskz_cvtusepi32_epi8(__mmask8 __M,__m256i __A)8714 __m128i test_mm256_maskz_cvtusepi32_epi8(__mmask8 __M, __m256i __A) {
8715   // CHECK-LABEL: @test_mm256_maskz_cvtusepi32_epi8
8716   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8717   return _mm256_maskz_cvtusepi32_epi8(__M, __A);
8718 }
8719 
test_mm256_mask_cvtusepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8720 void test_mm256_mask_cvtusepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8721   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_storeu_epi8
8722   // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.256
8723   return _mm256_mask_cvtusepi32_storeu_epi8(__P, __M, __A);
8724 }
8725 
test_mm_cvtusepi32_epi16(__m128i __A)8726 __m128i test_mm_cvtusepi32_epi16(__m128i __A) {
8727   // CHECK-LABEL: @test_mm_cvtusepi32_epi16
8728   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8729   return _mm_cvtusepi32_epi16(__A);
8730 }
8731 
test_mm_mask_cvtusepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)8732 __m128i test_mm_mask_cvtusepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8733   // CHECK-LABEL: @test_mm_mask_cvtusepi32_epi16
8734   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8735   return _mm_mask_cvtusepi32_epi16(__O, __M, __A);
8736 }
8737 
test_mm_maskz_cvtusepi32_epi16(__mmask8 __M,__m128i __A)8738 __m128i test_mm_maskz_cvtusepi32_epi16(__mmask8 __M, __m128i __A) {
8739   // CHECK-LABEL: @test_mm_maskz_cvtusepi32_epi16
8740   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8741   return _mm_maskz_cvtusepi32_epi16(__M, __A);
8742 }
8743 
test_mm_mask_cvtusepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8744 void test_mm_mask_cvtusepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8745   // CHECK-LABEL: @test_mm_mask_cvtusepi32_storeu_epi16
8746   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.128
8747   return _mm_mask_cvtusepi32_storeu_epi16(__P, __M, __A);
8748 }
8749 
test_mm256_cvtusepi32_epi16(__m256i __A)8750 __m128i test_mm256_cvtusepi32_epi16(__m256i __A) {
8751   // CHECK-LABEL: @test_mm256_cvtusepi32_epi16
8752   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8753   return _mm256_cvtusepi32_epi16(__A);
8754 }
8755 
test_mm256_mask_cvtusepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)8756 __m128i test_mm256_mask_cvtusepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8757   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_epi16
8758   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8759   return _mm256_mask_cvtusepi32_epi16(__O, __M, __A);
8760 }
8761 
test_mm256_maskz_cvtusepi32_epi16(__mmask8 __M,__m256i __A)8762 __m128i test_mm256_maskz_cvtusepi32_epi16(__mmask8 __M, __m256i __A) {
8763   // CHECK-LABEL: @test_mm256_maskz_cvtusepi32_epi16
8764   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8765   return _mm256_maskz_cvtusepi32_epi16(__M, __A);
8766 }
8767 
test_mm256_mask_cvtusepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8768 void test_mm256_mask_cvtusepi32_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8769   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_storeu_epi16
8770   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.256
8771   return _mm256_mask_cvtusepi32_storeu_epi16(__P, __M, __A);
8772 }
8773 
test_mm_cvtusepi64_epi8(__m128i __A)8774 __m128i test_mm_cvtusepi64_epi8(__m128i __A) {
8775   // CHECK-LABEL: @test_mm_cvtusepi64_epi8
8776   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8777   return _mm_cvtusepi64_epi8(__A);
8778 }
8779 
test_mm_mask_cvtusepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)8780 __m128i test_mm_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8781   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi8
8782   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8783   return _mm_mask_cvtusepi64_epi8(__O, __M, __A);
8784 }
8785 
test_mm_maskz_cvtusepi64_epi8(__mmask8 __M,__m128i __A)8786 __m128i test_mm_maskz_cvtusepi64_epi8(__mmask8 __M, __m128i __A) {
8787   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi8
8788   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8789   return _mm_maskz_cvtusepi64_epi8(__M, __A);
8790 }
8791 
test_mm_mask_cvtusepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8792 void test_mm_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8793   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi8
8794   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.128
8795   return _mm_mask_cvtusepi64_storeu_epi8(__P, __M, __A);
8796 }
8797 
test_mm256_cvtusepi64_epi8(__m256i __A)8798 __m128i test_mm256_cvtusepi64_epi8(__m256i __A) {
8799   // CHECK-LABEL: @test_mm256_cvtusepi64_epi8
8800   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8801   return _mm256_cvtusepi64_epi8(__A);
8802 }
8803 
test_mm256_mask_cvtusepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)8804 __m128i test_mm256_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8805   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi8
8806   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8807   return _mm256_mask_cvtusepi64_epi8(__O, __M, __A);
8808 }
8809 
test_mm256_maskz_cvtusepi64_epi8(__mmask8 __M,__m256i __A)8810 __m128i test_mm256_maskz_cvtusepi64_epi8(__mmask8 __M, __m256i __A) {
8811   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi8
8812   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8813   return _mm256_maskz_cvtusepi64_epi8(__M, __A);
8814 }
8815 
test_mm256_mask_cvtusepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8816 void test_mm256_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8817   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi8
8818   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.256
8819   return _mm256_mask_cvtusepi64_storeu_epi8(__P, __M, __A);
8820 }
8821 
test_mm_cvtusepi64_epi32(__m128i __A)8822 __m128i test_mm_cvtusepi64_epi32(__m128i __A) {
8823   // CHECK-LABEL: @test_mm_cvtusepi64_epi32
8824   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8825   return _mm_cvtusepi64_epi32(__A);
8826 }
8827 
test_mm_mask_cvtusepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)8828 __m128i test_mm_mask_cvtusepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
8829   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi32
8830   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8831   return _mm_mask_cvtusepi64_epi32(__O, __M, __A);
8832 }
8833 
test_mm_maskz_cvtusepi64_epi32(__mmask8 __M,__m128i __A)8834 __m128i test_mm_maskz_cvtusepi64_epi32(__mmask8 __M, __m128i __A) {
8835   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi32
8836   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8837   return _mm_maskz_cvtusepi64_epi32(__M, __A);
8838 }
8839 
test_mm_mask_cvtusepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)8840 void test_mm_mask_cvtusepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
8841   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi32
8842   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.128
8843   return _mm_mask_cvtusepi64_storeu_epi32(__P, __M, __A);
8844 }
8845 
test_mm256_cvtusepi64_epi32(__m256i __A)8846 __m128i test_mm256_cvtusepi64_epi32(__m256i __A) {
8847   // CHECK-LABEL: @test_mm256_cvtusepi64_epi32
8848   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8849   return _mm256_cvtusepi64_epi32(__A);
8850 }
8851 
test_mm256_mask_cvtusepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)8852 __m128i test_mm256_mask_cvtusepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
8853   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi32
8854   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8855   return _mm256_mask_cvtusepi64_epi32(__O, __M, __A);
8856 }
8857 
test_mm256_maskz_cvtusepi64_epi32(__mmask8 __M,__m256i __A)8858 __m128i test_mm256_maskz_cvtusepi64_epi32(__mmask8 __M, __m256i __A) {
8859   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi32
8860   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8861   return _mm256_maskz_cvtusepi64_epi32(__M, __A);
8862 }
8863 
test_mm256_mask_cvtusepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)8864 void test_mm256_mask_cvtusepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
8865   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi32
8866   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.256
8867   return _mm256_mask_cvtusepi64_storeu_epi32(__P, __M, __A);
8868 }
8869 
test_mm_cvtusepi64_epi16(__m128i __A)8870 __m128i test_mm_cvtusepi64_epi16(__m128i __A) {
8871   // CHECK-LABEL: @test_mm_cvtusepi64_epi16
8872   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8873   return _mm_cvtusepi64_epi16(__A);
8874 }
8875 
test_mm_mask_cvtusepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)8876 __m128i test_mm_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8877   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi16
8878   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8879   return _mm_mask_cvtusepi64_epi16(__O, __M, __A);
8880 }
8881 
test_mm_maskz_cvtusepi64_epi16(__mmask8 __M,__m128i __A)8882 __m128i test_mm_maskz_cvtusepi64_epi16(__mmask8 __M, __m128i __A) {
8883   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi16
8884   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8885   return _mm_maskz_cvtusepi64_epi16(__M, __A);
8886 }
8887 
test_mm_mask_cvtusepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8888 void test_mm_mask_cvtusepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8889   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi16
8890   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.128
8891   return _mm_mask_cvtusepi64_storeu_epi16(__P, __M, __A);
8892 }
8893 
test_mm256_cvtusepi64_epi16(__m256i __A)8894 __m128i test_mm256_cvtusepi64_epi16(__m256i __A) {
8895   // CHECK-LABEL: @test_mm256_cvtusepi64_epi16
8896   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8897   return _mm256_cvtusepi64_epi16(__A);
8898 }
8899 
test_mm256_mask_cvtusepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)8900 __m128i test_mm256_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8901   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi16
8902   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8903   return _mm256_mask_cvtusepi64_epi16(__O, __M, __A);
8904 }
8905 
test_mm256_maskz_cvtusepi64_epi16(__mmask8 __M,__m256i __A)8906 __m128i test_mm256_maskz_cvtusepi64_epi16(__mmask8 __M, __m256i __A) {
8907   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi16
8908   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8909   return _mm256_maskz_cvtusepi64_epi16(__M, __A);
8910 }
8911 
test_mm256_mask_cvtusepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8912 void test_mm256_mask_cvtusepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8913   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi16
8914   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.256
8915   return _mm256_mask_cvtusepi64_storeu_epi16(__P, __M, __A);
8916 }
8917 
test_mm_cvtepi32_epi8(__m128i __A)8918 __m128i test_mm_cvtepi32_epi8(__m128i __A) {
8919   // CHECK-LABEL: @test_mm_cvtepi32_epi8
8920   // CHECK: trunc <4 x i32> %{{.*}} to <4 x i8>
8921   // 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>
8922   return _mm_cvtepi32_epi8(__A);
8923 }
8924 
test_mm_mask_cvtepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)8925 __m128i test_mm_mask_cvtepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8926   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi8
8927   // CHECK: @llvm.x86.avx512.mask.pmov.db.128
8928   return _mm_mask_cvtepi32_epi8(__O, __M, __A);
8929 }
8930 
test_mm_maskz_cvtepi32_epi8(__mmask8 __M,__m128i __A)8931 __m128i test_mm_maskz_cvtepi32_epi8(__mmask8 __M, __m128i __A) {
8932   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi8
8933   // CHECK: @llvm.x86.avx512.mask.pmov.db.128
8934   return _mm_maskz_cvtepi32_epi8(__M, __A);
8935 }
8936 
test_mm_mask_cvtepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8937 void test_mm_mask_cvtepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8938   // CHECK-LABEL: @test_mm_mask_cvtepi32_storeu_epi8
8939   // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.128
8940   return _mm_mask_cvtepi32_storeu_epi8(__P, __M, __A);
8941 }
8942 
test_mm256_cvtepi32_epi8(__m256i __A)8943 __m128i test_mm256_cvtepi32_epi8(__m256i __A) {
8944   // CHECK-LABEL: @test_mm256_cvtepi32_epi8
8945   // CHECK: trunc <8 x i32> %{{.*}} to <8 x i8>
8946   // 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>
8947   return _mm256_cvtepi32_epi8(__A);
8948 }
8949 
test_mm256_mask_cvtepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)8950 __m128i test_mm256_mask_cvtepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8951   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi8
8952   // CHECK: @llvm.x86.avx512.mask.pmov.db.256
8953   return _mm256_mask_cvtepi32_epi8(__O, __M, __A);
8954 }
8955 
test_mm256_maskz_cvtepi32_epi8(__mmask8 __M,__m256i __A)8956 __m128i test_mm256_maskz_cvtepi32_epi8(__mmask8 __M, __m256i __A) {
8957   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi8
8958   // CHECK: @llvm.x86.avx512.mask.pmov.db.256
8959   return _mm256_maskz_cvtepi32_epi8(__M, __A);
8960 }
8961 
test_mm256_mask_cvtepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8962 void test_mm256_mask_cvtepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8963   // CHECK-LABEL: @test_mm256_mask_cvtepi32_storeu_epi8
8964   // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.256
8965   return _mm256_mask_cvtepi32_storeu_epi8(__P, __M, __A);
8966 }
8967 
test_mm_cvtepi32_epi16(__m128i __A)8968 __m128i test_mm_cvtepi32_epi16(__m128i __A) {
8969   // CHECK-LABEL: @test_mm_cvtepi32_epi16
8970   // CHECK: trunc <4 x i32> %{{.*}} to <4 x i16>
8971   // 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>
8972   return _mm_cvtepi32_epi16(__A);
8973 }
8974 
test_mm_mask_cvtepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)8975 __m128i test_mm_mask_cvtepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8976   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi16
8977   // CHECK: @llvm.x86.avx512.mask.pmov.dw.128
8978   return _mm_mask_cvtepi32_epi16(__O, __M, __A);
8979 }
8980 
test_mm_maskz_cvtepi32_epi16(__mmask8 __M,__m128i __A)8981 __m128i test_mm_maskz_cvtepi32_epi16(__mmask8 __M, __m128i __A) {
8982   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi16
8983   // CHECK: @llvm.x86.avx512.mask.pmov.dw.128
8984   return _mm_maskz_cvtepi32_epi16(__M, __A);
8985 }
8986 
test_mm_mask_cvtepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8987 void test_mm_mask_cvtepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8988   // CHECK-LABEL: @test_mm_mask_cvtepi32_storeu_epi16
8989   // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.128
8990   return _mm_mask_cvtepi32_storeu_epi16(__P, __M, __A);
8991 }
8992 
test_mm256_cvtepi32_epi16(__m256i __A)8993 __m128i test_mm256_cvtepi32_epi16(__m256i __A) {
8994   // CHECK-LABEL: @test_mm256_cvtepi32_epi16
8995   // CHECK: trunc <8 x i32> %{{.*}} to <8 x i16>
8996   return _mm256_cvtepi32_epi16(__A);
8997 }
8998 
test_mm256_mask_cvtepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)8999 __m128i test_mm256_mask_cvtepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
9000   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi16
9001   // CHECK: @llvm.x86.avx512.mask.pmov.dw.256
9002   return _mm256_mask_cvtepi32_epi16(__O, __M, __A);
9003 }
9004 
test_mm256_maskz_cvtepi32_epi16(__mmask8 __M,__m256i __A)9005 __m128i test_mm256_maskz_cvtepi32_epi16(__mmask8 __M, __m256i __A) {
9006   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi16
9007   // CHECK: @llvm.x86.avx512.mask.pmov.dw.256
9008   return _mm256_maskz_cvtepi32_epi16(__M, __A);
9009 }
9010 
test_mm256_mask_cvtepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)9011 void test_mm256_mask_cvtepi32_storeu_epi16(void *  __P, __mmask8 __M, __m256i __A) {
9012   // CHECK-LABEL: @test_mm256_mask_cvtepi32_storeu_epi16
9013   // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.256
9014   return _mm256_mask_cvtepi32_storeu_epi16(__P, __M, __A);
9015 }
9016 
test_mm_cvtepi64_epi8(__m128i __A)9017 __m128i test_mm_cvtepi64_epi8(__m128i __A) {
9018   // CHECK-LABEL: @test_mm_cvtepi64_epi8
9019   // CHECK: trunc <2 x i64> %{{.*}} to <2 x i8>
9020   // 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>
9021   return _mm_cvtepi64_epi8(__A);
9022 }
9023 
test_mm_mask_cvtepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)9024 __m128i test_mm_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
9025   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi8
9026   // CHECK: @llvm.x86.avx512.mask.pmov.qb.128
9027   return _mm_mask_cvtepi64_epi8(__O, __M, __A);
9028 }
9029 
test_mm_maskz_cvtepi64_epi8(__mmask8 __M,__m128i __A)9030 __m128i test_mm_maskz_cvtepi64_epi8(__mmask8 __M, __m128i __A) {
9031   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi8
9032   // CHECK: @llvm.x86.avx512.mask.pmov.qb.128
9033   return _mm_maskz_cvtepi64_epi8(__M, __A);
9034 }
9035 
test_mm_mask_cvtepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)9036 void test_mm_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
9037   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi8
9038   // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.128
9039   return _mm_mask_cvtepi64_storeu_epi8(__P, __M, __A);
9040 }
9041 
test_mm256_cvtepi64_epi8(__m256i __A)9042 __m128i test_mm256_cvtepi64_epi8(__m256i __A) {
9043   // CHECK-LABEL: @test_mm256_cvtepi64_epi8
9044   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i8>
9045   // 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>
9046   return _mm256_cvtepi64_epi8(__A);
9047 }
9048 
test_mm256_mask_cvtepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)9049 __m128i test_mm256_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
9050   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi8
9051   // CHECK: @llvm.x86.avx512.mask.pmov.qb.256
9052   return _mm256_mask_cvtepi64_epi8(__O, __M, __A);
9053 }
9054 
test_mm256_maskz_cvtepi64_epi8(__mmask8 __M,__m256i __A)9055 __m128i test_mm256_maskz_cvtepi64_epi8(__mmask8 __M, __m256i __A) {
9056   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi8
9057   // CHECK: @llvm.x86.avx512.mask.pmov.qb.256
9058   return _mm256_maskz_cvtepi64_epi8(__M, __A);
9059 }
9060 
test_mm256_mask_cvtepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)9061 void test_mm256_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
9062   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi8
9063   // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.256
9064   return _mm256_mask_cvtepi64_storeu_epi8(__P, __M, __A);
9065 }
9066 
test_mm_cvtepi64_epi32(__m128i __A)9067 __m128i test_mm_cvtepi64_epi32(__m128i __A) {
9068   // CHECK-LABEL: @test_mm_cvtepi64_epi32
9069   // CHECK: trunc <2 x i64> %{{.*}} to <2 x i32>
9070   // CHECK: shufflevector <2 x i32> %{{.*}}, <2 x i32> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
9071   return _mm_cvtepi64_epi32(__A);
9072 }
9073 
test_mm_mask_cvtepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)9074 __m128i test_mm_mask_cvtepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
9075   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi32
9076   // CHECK: @llvm.x86.avx512.mask.pmov.qd.128
9077   return _mm_mask_cvtepi64_epi32(__O, __M, __A);
9078 }
9079 
test_mm_maskz_cvtepi64_epi32(__mmask8 __M,__m128i __A)9080 __m128i test_mm_maskz_cvtepi64_epi32(__mmask8 __M, __m128i __A) {
9081   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi32
9082   // CHECK: @llvm.x86.avx512.mask.pmov.qd.128
9083   return _mm_maskz_cvtepi64_epi32(__M, __A);
9084 }
9085 
test_mm_mask_cvtepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)9086 void test_mm_mask_cvtepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
9087   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi32
9088   // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.128
9089   return _mm_mask_cvtepi64_storeu_epi32(__P, __M, __A);
9090 }
9091 
test_mm256_cvtepi64_epi32(__m256i __A)9092 __m128i test_mm256_cvtepi64_epi32(__m256i __A) {
9093   // CHECK-LABEL: @test_mm256_cvtepi64_epi32
9094   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
9095   return _mm256_cvtepi64_epi32(__A);
9096 }
9097 
test_mm256_mask_cvtepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)9098 __m128i test_mm256_mask_cvtepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
9099   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi32
9100   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
9101   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9102   return _mm256_mask_cvtepi64_epi32(__O, __M, __A);
9103 }
9104 
test_mm256_maskz_cvtepi64_epi32(__mmask8 __M,__m256i __A)9105 __m128i test_mm256_maskz_cvtepi64_epi32(__mmask8 __M, __m256i __A) {
9106   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi32
9107   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
9108   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9109   return _mm256_maskz_cvtepi64_epi32(__M, __A);
9110 }
9111 
test_mm256_mask_cvtepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)9112 void test_mm256_mask_cvtepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
9113   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi32
9114   // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.256
9115   return _mm256_mask_cvtepi64_storeu_epi32(__P, __M, __A);
9116 }
9117 
test_mm_cvtepi64_epi16(__m128i __A)9118 __m128i test_mm_cvtepi64_epi16(__m128i __A) {
9119   // CHECK-LABEL: @test_mm_cvtepi64_epi16
9120   // CHECK: trunc <2 x i64> %{{.*}} to <2 x i16>
9121   // 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>
9122   return _mm_cvtepi64_epi16(__A);
9123 }
9124 
test_mm_mask_cvtepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)9125 __m128i test_mm_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
9126   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi16
9127   // CHECK: @llvm.x86.avx512.mask.pmov.qw.128
9128   return _mm_mask_cvtepi64_epi16(__O, __M, __A);
9129 }
9130 
test_mm_maskz_cvtepi64_epi16(__mmask8 __M,__m128i __A)9131 __m128i test_mm_maskz_cvtepi64_epi16(__mmask8 __M, __m128i __A) {
9132   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi16
9133   // CHECK: @llvm.x86.avx512.mask.pmov.qw.128
9134   return _mm_maskz_cvtepi64_epi16(__M, __A);
9135 }
9136 
test_mm_mask_cvtepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)9137 void test_mm_mask_cvtepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
9138   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi16
9139   // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.128
9140   return _mm_mask_cvtepi64_storeu_epi16(__P, __M, __A);
9141 }
9142 
test_mm256_cvtepi64_epi16(__m256i __A)9143 __m128i test_mm256_cvtepi64_epi16(__m256i __A) {
9144   // CHECK-LABEL: @test_mm256_cvtepi64_epi16
9145   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i16>
9146   // 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>
9147   return _mm256_cvtepi64_epi16(__A);
9148 }
9149 
test_mm256_mask_cvtepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)9150 __m128i test_mm256_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
9151   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi16
9152   // CHECK: @llvm.x86.avx512.mask.pmov.qw.256
9153   return _mm256_mask_cvtepi64_epi16(__O, __M, __A);
9154 }
9155 
test_mm256_maskz_cvtepi64_epi16(__mmask8 __M,__m256i __A)9156 __m128i test_mm256_maskz_cvtepi64_epi16(__mmask8 __M, __m256i __A) {
9157   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi16
9158   // CHECK: @llvm.x86.avx512.mask.pmov.qw.256
9159   return _mm256_maskz_cvtepi64_epi16(__M, __A);
9160 }
9161 
test_mm256_mask_cvtepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)9162 void test_mm256_mask_cvtepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
9163   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi16
9164   // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.256
9165   return _mm256_mask_cvtepi64_storeu_epi16(__P, __M, __A);
9166 }
9167 
test_mm256_extractf32x4_ps(__m256 __A)9168 __m128 test_mm256_extractf32x4_ps(__m256 __A) {
9169   // CHECK-LABEL: @test_mm256_extractf32x4_ps
9170   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9171   return _mm256_extractf32x4_ps(__A, 1);
9172 }
9173 
test_mm256_mask_extractf32x4_ps(__m128 __W,__mmask8 __U,__m256 __A)9174 __m128 test_mm256_mask_extractf32x4_ps(__m128 __W, __mmask8 __U, __m256 __A) {
9175   // CHECK-LABEL: @test_mm256_mask_extractf32x4_ps
9176   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9177   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9178   return _mm256_mask_extractf32x4_ps(__W, __U, __A, 1);
9179 }
9180 
test_mm256_maskz_extractf32x4_ps(__mmask8 __U,__m256 __A)9181 __m128 test_mm256_maskz_extractf32x4_ps(__mmask8 __U, __m256 __A) {
9182   // CHECK-LABEL: @test_mm256_maskz_extractf32x4_ps
9183   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9184   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9185   return _mm256_maskz_extractf32x4_ps(__U, __A, 1);
9186 }
9187 
test_mm256_extracti32x4_epi32(__m256i __A)9188 __m128i test_mm256_extracti32x4_epi32(__m256i __A) {
9189   // CHECK-LABEL: @test_mm256_extracti32x4_epi32
9190   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9191   return _mm256_extracti32x4_epi32(__A, 1);
9192 }
9193 
test_mm256_mask_extracti32x4_epi32(__m128i __W,__mmask8 __U,__m256i __A)9194 __m128i test_mm256_mask_extracti32x4_epi32(__m128i __W, __mmask8 __U, __m256i __A) {
9195   // CHECK-LABEL: @test_mm256_mask_extracti32x4_epi32
9196   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9197   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9198   return _mm256_mask_extracti32x4_epi32(__W, __U, __A, 1);
9199 }
9200 
test_mm256_maskz_extracti32x4_epi32(__mmask8 __U,__m256i __A)9201 __m128i test_mm256_maskz_extracti32x4_epi32(__mmask8 __U, __m256i __A) {
9202   // CHECK-LABEL: @test_mm256_maskz_extracti32x4_epi32
9203   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9204   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9205   return _mm256_maskz_extracti32x4_epi32(__U, __A, 1);
9206 }
9207 
test_mm256_insertf32x4(__m256 __A,__m128 __B)9208 __m256 test_mm256_insertf32x4(__m256 __A, __m128 __B) {
9209   // CHECK-LABEL: @test_mm256_insertf32x4
9210   // 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>
9211   return _mm256_insertf32x4(__A, __B, 1);
9212 }
9213 
test_mm256_mask_insertf32x4(__m256 __W,__mmask8 __U,__m256 __A,__m128 __B)9214 __m256 test_mm256_mask_insertf32x4(__m256 __W, __mmask8 __U, __m256 __A, __m128 __B) {
9215   // CHECK-LABEL: @test_mm256_mask_insertf32x4
9216   // 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>
9217   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9218   return _mm256_mask_insertf32x4(__W, __U, __A, __B, 1);
9219 }
9220 
test_mm256_maskz_insertf32x4(__mmask8 __U,__m256 __A,__m128 __B)9221 __m256 test_mm256_maskz_insertf32x4(__mmask8 __U, __m256 __A, __m128 __B) {
9222   // CHECK-LABEL: @test_mm256_maskz_insertf32x4
9223   // 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>
9224   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9225   return _mm256_maskz_insertf32x4(__U, __A, __B, 1);
9226 }
9227 
test_mm256_inserti32x4(__m256i __A,__m128i __B)9228 __m256i test_mm256_inserti32x4(__m256i __A, __m128i __B) {
9229   // CHECK-LABEL: @test_mm256_inserti32x4
9230   // 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>
9231   return _mm256_inserti32x4(__A, __B, 1);
9232 }
9233 
test_mm256_mask_inserti32x4(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)9234 __m256i test_mm256_mask_inserti32x4(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
9235   // CHECK-LABEL: @test_mm256_mask_inserti32x4
9236   // 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>
9237   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9238   return _mm256_mask_inserti32x4(__W, __U, __A, __B, 1);
9239 }
9240 
test_mm256_maskz_inserti32x4(__mmask8 __U,__m256i __A,__m128i __B)9241 __m256i test_mm256_maskz_inserti32x4(__mmask8 __U, __m256i __A, __m128i __B) {
9242   // CHECK-LABEL: @test_mm256_maskz_inserti32x4
9243   // 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>
9244   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9245   return _mm256_maskz_inserti32x4(__U, __A, __B, 1);
9246 }
9247 
test_mm_getmant_pd(__m128d __A)9248 __m128d test_mm_getmant_pd(__m128d __A) {
9249   // CHECK-LABEL: @test_mm_getmant_pd
9250   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9251   return _mm_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9252 }
9253 
test_mm_mask_getmant_pd(__m128d __W,__mmask8 __U,__m128d __A)9254 __m128d test_mm_mask_getmant_pd(__m128d __W, __mmask8 __U, __m128d __A) {
9255   // CHECK-LABEL: @test_mm_mask_getmant_pd
9256   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9257   return _mm_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9258 }
9259 
test_mm_maskz_getmant_pd(__mmask8 __U,__m128d __A)9260 __m128d test_mm_maskz_getmant_pd(__mmask8 __U, __m128d __A) {
9261   // CHECK-LABEL: @test_mm_maskz_getmant_pd
9262   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9263   return _mm_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9264 }
9265 
test_mm256_getmant_pd(__m256d __A)9266 __m256d test_mm256_getmant_pd(__m256d __A) {
9267   // CHECK-LABEL: @test_mm256_getmant_pd
9268   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9269   return _mm256_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9270 }
9271 
test_mm256_mask_getmant_pd(__m256d __W,__mmask8 __U,__m256d __A)9272 __m256d test_mm256_mask_getmant_pd(__m256d __W, __mmask8 __U, __m256d __A) {
9273   // CHECK-LABEL: @test_mm256_mask_getmant_pd
9274   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9275   return _mm256_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9276 }
9277 
test_mm256_maskz_getmant_pd(__mmask8 __U,__m256d __A)9278 __m256d test_mm256_maskz_getmant_pd(__mmask8 __U, __m256d __A) {
9279   // CHECK-LABEL: @test_mm256_maskz_getmant_pd
9280   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9281   return _mm256_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9282 }
9283 
test_mm_getmant_ps(__m128 __A)9284 __m128 test_mm_getmant_ps(__m128 __A) {
9285   // CHECK-LABEL: @test_mm_getmant_ps
9286   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9287   return _mm_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9288 }
9289 
test_mm_mask_getmant_ps(__m128 __W,__mmask8 __U,__m128 __A)9290 __m128 test_mm_mask_getmant_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9291   // CHECK-LABEL: @test_mm_mask_getmant_ps
9292   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9293   return _mm_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9294 }
9295 
test_mm_maskz_getmant_ps(__mmask8 __U,__m128 __A)9296 __m128 test_mm_maskz_getmant_ps(__mmask8 __U, __m128 __A) {
9297   // CHECK-LABEL: @test_mm_maskz_getmant_ps
9298   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9299   return _mm_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9300 }
9301 
test_mm256_getmant_ps(__m256 __A)9302 __m256 test_mm256_getmant_ps(__m256 __A) {
9303   // CHECK-LABEL: @test_mm256_getmant_ps
9304   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9305   return _mm256_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9306 }
9307 
test_mm256_mask_getmant_ps(__m256 __W,__mmask8 __U,__m256 __A)9308 __m256 test_mm256_mask_getmant_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9309   // CHECK-LABEL: @test_mm256_mask_getmant_ps
9310   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9311   return _mm256_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9312 }
9313 
test_mm256_maskz_getmant_ps(__mmask8 __U,__m256 __A)9314 __m256 test_mm256_maskz_getmant_ps(__mmask8 __U, __m256 __A) {
9315   // CHECK-LABEL: @test_mm256_maskz_getmant_ps
9316   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9317   return _mm256_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9318 }
9319 
test_mm_mmask_i64gather_pd(__m128d __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9320 __m128d test_mm_mmask_i64gather_pd(__m128d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9321   // CHECK-LABEL: @test_mm_mmask_i64gather_pd
9322   // CHECK: @llvm.x86.avx512.mask.gather3div2.df
9323   return _mm_mmask_i64gather_pd(__v1_old, __mask, __index, __addr, 2);
9324 }
9325 
test_mm_mmask_i64gather_epi64(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9326 __m128i test_mm_mmask_i64gather_epi64(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9327   // CHECK-LABEL: @test_mm_mmask_i64gather_epi64
9328   // CHECK: @llvm.x86.avx512.mask.gather3div2.di
9329   return _mm_mmask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2);
9330 }
9331 
test_mm256_mmask_i64gather_pd(__m256d __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9332 __m256d test_mm256_mmask_i64gather_pd(__m256d __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9333   // CHECK-LABEL: @test_mm256_mmask_i64gather_pd
9334   // CHECK: @llvm.x86.avx512.mask.gather3div4.df
9335   return _mm256_mmask_i64gather_pd(__v1_old, __mask, __index, __addr, 2);
9336 }
9337 
test_mm256_mmask_i64gather_epi64(__m256i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9338 __m256i test_mm256_mmask_i64gather_epi64(__m256i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9339   // CHECK-LABEL: @test_mm256_mmask_i64gather_epi64
9340   // CHECK: @llvm.x86.avx512.mask.gather3div4.di
9341   return _mm256_mmask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2);
9342 }
9343 
test_mm_mmask_i64gather_ps(__m128 __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9344 __m128 test_mm_mmask_i64gather_ps(__m128 __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9345   // CHECK-LABEL: @test_mm_mmask_i64gather_ps
9346   // CHECK: @llvm.x86.avx512.mask.gather3div4.sf
9347   return _mm_mmask_i64gather_ps(__v1_old, __mask, __index, __addr, 2);
9348 }
9349 
test_mm_mmask_i64gather_epi32(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9350 __m128i test_mm_mmask_i64gather_epi32(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9351   // CHECK-LABEL: @test_mm_mmask_i64gather_epi32
9352   // CHECK: @llvm.x86.avx512.mask.gather3div4.si
9353   return _mm_mmask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2);
9354 }
9355 
test_mm256_mmask_i64gather_ps(__m128 __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9356 __m128 test_mm256_mmask_i64gather_ps(__m128 __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9357   // CHECK-LABEL: @test_mm256_mmask_i64gather_ps
9358   // CHECK: @llvm.x86.avx512.mask.gather3div8.sf
9359   return _mm256_mmask_i64gather_ps(__v1_old, __mask, __index, __addr, 2);
9360 }
9361 
test_mm256_mmask_i64gather_epi32(__m128i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9362 __m128i test_mm256_mmask_i64gather_epi32(__m128i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9363   // CHECK-LABEL: @test_mm256_mmask_i64gather_epi32
9364   // CHECK: @llvm.x86.avx512.mask.gather3div8.si
9365   return _mm256_mmask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2);
9366 }
9367 
test_mm_mask_i32gather_pd(__m128d __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9368 __m128d test_mm_mask_i32gather_pd(__m128d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9369   // CHECK-LABEL: @test_mm_mask_i32gather_pd
9370   // CHECK: @llvm.x86.avx512.mask.gather3siv2.df
9371   return _mm_mmask_i32gather_pd(__v1_old, __mask, __index, __addr, 2);
9372 }
9373 
test_mm_mask_i32gather_epi64(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9374 __m128i test_mm_mask_i32gather_epi64(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9375   // CHECK-LABEL: @test_mm_mask_i32gather_epi64
9376   // CHECK: @llvm.x86.avx512.mask.gather3siv2.di
9377   return _mm_mmask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2);
9378 }
9379 
test_mm256_mask_i32gather_pd(__m256d __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9380 __m256d test_mm256_mask_i32gather_pd(__m256d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9381   // CHECK-LABEL: @test_mm256_mask_i32gather_pd
9382   // CHECK: @llvm.x86.avx512.mask.gather3siv4.df
9383   return _mm256_mmask_i32gather_pd(__v1_old, __mask, __index, __addr, 2);
9384 }
9385 
test_mm256_mask_i32gather_epi64(__m256i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9386 __m256i test_mm256_mask_i32gather_epi64(__m256i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9387   // CHECK-LABEL: @test_mm256_mask_i32gather_epi64
9388   // CHECK: @llvm.x86.avx512.mask.gather3siv4.di
9389   return _mm256_mmask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2);
9390 }
9391 
test_mm_mask_i32gather_ps(__m128 __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9392 __m128 test_mm_mask_i32gather_ps(__m128 __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9393   // CHECK-LABEL: @test_mm_mask_i32gather_ps
9394   // CHECK: @llvm.x86.avx512.mask.gather3siv4.sf
9395   return _mm_mmask_i32gather_ps(__v1_old, __mask, __index, __addr, 2);
9396 }
9397 
test_mm_mask_i32gather_epi32(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9398 __m128i test_mm_mask_i32gather_epi32(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9399   // CHECK-LABEL: @test_mm_mask_i32gather_epi32
9400   // CHECK: @llvm.x86.avx512.mask.gather3siv4.si
9401   return _mm_mmask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2);
9402 }
9403 
test_mm256_mask_i32gather_ps(__m256 __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9404 __m256 test_mm256_mask_i32gather_ps(__m256 __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9405   // CHECK-LABEL: @test_mm256_mask_i32gather_ps
9406   // CHECK: @llvm.x86.avx512.mask.gather3siv8.sf
9407   return _mm256_mmask_i32gather_ps(__v1_old, __mask, __index, __addr, 2);
9408 }
9409 
test_mm256_mask_i32gather_epi32(__m256i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9410 __m256i test_mm256_mask_i32gather_epi32(__m256i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9411   // CHECK-LABEL: @test_mm256_mask_i32gather_epi32
9412   // CHECK: @llvm.x86.avx512.mask.gather3siv8.si
9413   return _mm256_mmask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2);
9414 }
9415 
test_mm256_permutex_pd(__m256d __X)9416 __m256d test_mm256_permutex_pd(__m256d __X) {
9417   // CHECK-LABEL: @test_mm256_permutex_pd
9418   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9419   return _mm256_permutex_pd(__X, 3);
9420 }
9421 
test_mm256_mask_permutex_pd(__m256d __W,__mmask8 __U,__m256d __X)9422 __m256d test_mm256_mask_permutex_pd(__m256d __W, __mmask8 __U, __m256d __X) {
9423   // CHECK-LABEL: @test_mm256_mask_permutex_pd
9424   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9425   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9426   return _mm256_mask_permutex_pd(__W, __U, __X, 1);
9427 }
9428 
test_mm256_maskz_permutex_pd(__mmask8 __U,__m256d __X)9429 __m256d test_mm256_maskz_permutex_pd(__mmask8 __U, __m256d __X) {
9430   // CHECK-LABEL: @test_mm256_maskz_permutex_pd
9431   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9432   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9433   return _mm256_maskz_permutex_pd(__U, __X, 1);
9434 }
9435 
test_mm256_permutex_epi64(__m256i __X)9436 __m256i test_mm256_permutex_epi64(__m256i __X) {
9437   // CHECK-LABEL: @test_mm256_permutex_epi64
9438   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9439   return _mm256_permutex_epi64(__X, 3);
9440 }
9441 
test_mm256_mask_permutex_epi64(__m256i __W,__mmask8 __M,__m256i __X)9442 __m256i test_mm256_mask_permutex_epi64(__m256i __W, __mmask8 __M, __m256i __X) {
9443   // CHECK-LABEL: @test_mm256_mask_permutex_epi64
9444   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9445   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9446   return _mm256_mask_permutex_epi64(__W, __M, __X, 3);
9447 }
9448 
test_mm256_maskz_permutex_epi64(__mmask8 __M,__m256i __X)9449 __m256i test_mm256_maskz_permutex_epi64(__mmask8 __M, __m256i __X) {
9450   // CHECK-LABEL: @test_mm256_maskz_permutex_epi64
9451   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9452   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9453   return _mm256_maskz_permutex_epi64(__M, __X, 3);
9454 }
9455 
test_mm256_permutexvar_pd(__m256i __X,__m256d __Y)9456 __m256d test_mm256_permutexvar_pd(__m256i __X, __m256d __Y) {
9457   // CHECK-LABEL: @test_mm256_permutexvar_pd
9458   // CHECK: @llvm.x86.avx512.permvar.df.256
9459   return _mm256_permutexvar_pd(__X, __Y);
9460 }
9461 
test_mm256_mask_permutexvar_pd(__m256d __W,__mmask8 __U,__m256i __X,__m256d __Y)9462 __m256d test_mm256_mask_permutexvar_pd(__m256d __W, __mmask8 __U, __m256i __X, __m256d __Y) {
9463   // CHECK-LABEL: @test_mm256_mask_permutexvar_pd
9464   // CHECK: @llvm.x86.avx512.permvar.df.256
9465   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9466   return _mm256_mask_permutexvar_pd(__W, __U, __X, __Y);
9467 }
9468 
test_mm256_maskz_permutexvar_pd(__mmask8 __U,__m256i __X,__m256d __Y)9469 __m256d test_mm256_maskz_permutexvar_pd(__mmask8 __U, __m256i __X, __m256d __Y) {
9470   // CHECK-LABEL: @test_mm256_maskz_permutexvar_pd
9471   // CHECK: @llvm.x86.avx512.permvar.df.256
9472   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9473   return _mm256_maskz_permutexvar_pd(__U, __X, __Y);
9474 }
9475 
test_mm256_maskz_permutexvar_epi64(__mmask8 __M,__m256i __X,__m256i __Y)9476 __m256i test_mm256_maskz_permutexvar_epi64(__mmask8 __M, __m256i __X, __m256i __Y) {
9477   // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi64
9478   // CHECK: @llvm.x86.avx512.permvar.di.256
9479   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9480   return _mm256_maskz_permutexvar_epi64(__M, __X, __Y);
9481 }
9482 
test_mm256_mask_permutexvar_epi64(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)9483 __m256i test_mm256_mask_permutexvar_epi64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) {
9484   // CHECK-LABEL: @test_mm256_mask_permutexvar_epi64
9485   // CHECK: @llvm.x86.avx512.permvar.di.256
9486   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9487   return _mm256_mask_permutexvar_epi64(__W, __M, __X, __Y);
9488 }
9489 
test_mm256_mask_permutexvar_ps(__m256 __W,__mmask8 __U,__m256i __X,__m256 __Y)9490 __m256 test_mm256_mask_permutexvar_ps(__m256 __W, __mmask8 __U, __m256i __X, __m256 __Y) {
9491   // CHECK-LABEL: @test_mm256_mask_permutexvar_ps
9492   // CHECK: @llvm.x86.avx2.permps
9493   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9494   return _mm256_mask_permutexvar_ps(__W, __U, __X, __Y);
9495 }
9496 
test_mm256_maskz_permutexvar_ps(__mmask8 __U,__m256i __X,__m256 __Y)9497 __m256 test_mm256_maskz_permutexvar_ps(__mmask8 __U, __m256i __X, __m256 __Y) {
9498   // CHECK-LABEL: @test_mm256_maskz_permutexvar_ps
9499   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9500   return _mm256_maskz_permutexvar_ps(__U, __X, __Y);
9501 }
9502 
test_mm256_permutexvar_ps(__m256i __X,__m256 __Y)9503 __m256 test_mm256_permutexvar_ps(__m256i __X, __m256 __Y) {
9504   // CHECK-LABEL: @test_mm256_permutexvar_ps
9505   // CHECK: @llvm.x86.avx2.permps
9506   return _mm256_permutexvar_ps( __X, __Y);
9507 }
9508 
test_mm256_maskz_permutexvar_epi32(__mmask8 __M,__m256i __X,__m256i __Y)9509 __m256i test_mm256_maskz_permutexvar_epi32(__mmask8 __M, __m256i __X, __m256i __Y) {
9510   // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi32
9511   // CHECK: @llvm.x86.avx2.permd
9512   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9513   return _mm256_maskz_permutexvar_epi32(__M, __X, __Y);
9514 }
9515 
test_mm256_permutexvar_epi32(__m256i __X,__m256i __Y)9516 __m256i test_mm256_permutexvar_epi32(__m256i __X, __m256i __Y) {
9517   // CHECK-LABEL: @test_mm256_permutexvar_epi32
9518   // CHECK: @llvm.x86.avx2.permd
9519   return _mm256_permutexvar_epi32(__X, __Y);
9520 }
9521 
test_mm256_mask_permutexvar_epi32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)9522 __m256i test_mm256_mask_permutexvar_epi32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) {
9523   // CHECK-LABEL: @test_mm256_mask_permutexvar_epi32
9524   // CHECK: @llvm.x86.avx2.permd
9525   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9526   return _mm256_mask_permutexvar_epi32(__W, __M, __X, __Y);
9527 }
9528 
test_mm_alignr_epi32(__m128i __A,__m128i __B)9529 __m128i test_mm_alignr_epi32(__m128i __A, __m128i __B) {
9530   // CHECK-LABEL: @test_mm_alignr_epi32
9531   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9532   return _mm_alignr_epi32(__A, __B, 1);
9533 }
9534 
test_mm_mask_alignr_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)9535 __m128i test_mm_mask_alignr_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
9536   // CHECK-LABEL: @test_mm_mask_alignr_epi32
9537   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9538   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9539   return _mm_mask_alignr_epi32(__W, __U, __A, __B, 1);
9540 }
9541 
test_mm_maskz_alignr_epi32(__mmask8 __U,__m128i __A,__m128i __B)9542 __m128i test_mm_maskz_alignr_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
9543   // CHECK-LABEL: @test_mm_maskz_alignr_epi32
9544   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9545   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9546   return _mm_maskz_alignr_epi32(__U, __A, __B, 1);
9547 }
9548 
test_mm256_alignr_epi32(__m256i __A,__m256i __B)9549 __m256i test_mm256_alignr_epi32(__m256i __A, __m256i __B) {
9550   // CHECK-LABEL: @test_mm256_alignr_epi32
9551   // 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>
9552   return _mm256_alignr_epi32(__A, __B, 1);
9553 }
9554 
test_mm256_mask_alignr_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)9555 __m256i test_mm256_mask_alignr_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
9556   // CHECK-LABEL: @test_mm256_mask_alignr_epi32
9557   // 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>
9558   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9559   return _mm256_mask_alignr_epi32(__W, __U, __A, __B, 1);
9560 }
9561 
test_mm256_maskz_alignr_epi32(__mmask8 __U,__m256i __A,__m256i __B)9562 __m256i test_mm256_maskz_alignr_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
9563   // CHECK-LABEL: @test_mm256_maskz_alignr_epi32
9564   // 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>
9565   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9566   return _mm256_maskz_alignr_epi32(__U, __A, __B, 1);
9567 }
9568 
test_mm_alignr_epi64(__m128i __A,__m128i __B)9569 __m128i test_mm_alignr_epi64(__m128i __A, __m128i __B) {
9570   // CHECK-LABEL: @test_mm_alignr_epi64
9571   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9572   return _mm_alignr_epi64(__A, __B, 1);
9573 }
9574 
test_mm_mask_alignr_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)9575 __m128i test_mm_mask_alignr_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
9576   // CHECK-LABEL: @test_mm_mask_alignr_epi64
9577   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9578   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
9579   return _mm_mask_alignr_epi64(__W, __U, __A, __B, 1);
9580 }
9581 
test_mm_maskz_alignr_epi64(__mmask8 __U,__m128i __A,__m128i __B)9582 __m128i test_mm_maskz_alignr_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
9583   // CHECK-LABEL: @test_mm_maskz_alignr_epi64
9584   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9585   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
9586   return _mm_maskz_alignr_epi64(__U, __A, __B, 1);
9587 }
9588 
test_mm256_alignr_epi64(__m256i __A,__m256i __B)9589 __m256i test_mm256_alignr_epi64(__m256i __A, __m256i __B) {
9590   // CHECK-LABEL: @test_mm256_alignr_epi64
9591   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9592   return _mm256_alignr_epi64(__A, __B, 1);
9593 }
9594 
test_mm256_mask_alignr_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)9595 __m256i test_mm256_mask_alignr_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
9596   // CHECK-LABEL: @test_mm256_mask_alignr_epi64
9597   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9598   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9599   return _mm256_mask_alignr_epi64(__W, __U, __A, __B, 1);
9600 }
9601 
test_mm256_maskz_alignr_epi64(__mmask8 __U,__m256i __A,__m256i __B)9602 __m256i test_mm256_maskz_alignr_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
9603   // CHECK-LABEL: @test_mm256_maskz_alignr_epi64
9604   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9605   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9606   return _mm256_maskz_alignr_epi64(__U, __A, __B, 1);
9607 }
9608 
test_mm_mask_movehdup_ps(__m128 __W,__mmask8 __U,__m128 __A)9609 __m128 test_mm_mask_movehdup_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9610   // CHECK-LABEL: @test_mm_mask_movehdup_ps
9611   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
9612   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9613   return _mm_mask_movehdup_ps(__W, __U, __A);
9614 }
9615 
test_mm_maskz_movehdup_ps(__mmask8 __U,__m128 __A)9616 __m128 test_mm_maskz_movehdup_ps(__mmask8 __U, __m128 __A) {
9617   // CHECK-LABEL: @test_mm_maskz_movehdup_ps
9618   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
9619   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9620   return _mm_maskz_movehdup_ps(__U, __A);
9621 }
9622 
test_mm256_mask_movehdup_ps(__m256 __W,__mmask8 __U,__m256 __A)9623 __m256 test_mm256_mask_movehdup_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9624   // CHECK-LABEL: @test_mm256_mask_movehdup_ps
9625   // 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>
9626   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9627   return _mm256_mask_movehdup_ps(__W, __U, __A);
9628 }
9629 
test_mm256_maskz_movehdup_ps(__mmask8 __U,__m256 __A)9630 __m256 test_mm256_maskz_movehdup_ps(__mmask8 __U, __m256 __A) {
9631   // CHECK-LABEL: @test_mm256_maskz_movehdup_ps
9632   // 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>
9633   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9634   return _mm256_maskz_movehdup_ps(__U, __A);
9635 }
9636 
test_mm_mask_moveldup_ps(__m128 __W,__mmask8 __U,__m128 __A)9637 __m128 test_mm_mask_moveldup_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9638   // CHECK-LABEL: @test_mm_mask_moveldup_ps
9639   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
9640   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9641   return _mm_mask_moveldup_ps(__W, __U, __A);
9642 }
9643 
test_mm_maskz_moveldup_ps(__mmask8 __U,__m128 __A)9644 __m128 test_mm_maskz_moveldup_ps(__mmask8 __U, __m128 __A) {
9645   // CHECK-LABEL: @test_mm_maskz_moveldup_ps
9646   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
9647   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9648   return _mm_maskz_moveldup_ps(__U, __A);
9649 }
9650 
test_mm256_mask_moveldup_ps(__m256 __W,__mmask8 __U,__m256 __A)9651 __m256 test_mm256_mask_moveldup_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9652   // CHECK-LABEL: @test_mm256_mask_moveldup_ps
9653   // 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>
9654   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9655   return _mm256_mask_moveldup_ps(__W, __U, __A);
9656 }
9657 
test_mm256_maskz_moveldup_ps(__mmask8 __U,__m256 __A)9658 __m256 test_mm256_maskz_moveldup_ps(__mmask8 __U, __m256 __A) {
9659   // CHECK-LABEL: @test_mm256_maskz_moveldup_ps
9660   // 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>
9661   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9662   return _mm256_maskz_moveldup_ps(__U, __A);
9663 }
9664 
test_mm_mask_shuffle_epi32(__m128i __W,__mmask8 __U,__m128i __A)9665 __m128i test_mm_mask_shuffle_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
9666   // CHECK-LABEL: @test_mm_mask_shuffle_epi32
9667   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9668   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9669   return _mm_mask_shuffle_epi32(__W, __U, __A, 1);
9670 }
9671 
test_mm_maskz_shuffle_epi32(__mmask8 __U,__m128i __A)9672 __m128i test_mm_maskz_shuffle_epi32(__mmask8 __U, __m128i __A) {
9673   // CHECK-LABEL: @test_mm_maskz_shuffle_epi32
9674   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <4 x i32> <i32 2, i32 0, i32 0, i32 0>
9675   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9676   return _mm_maskz_shuffle_epi32(__U, __A, 2);
9677 }
9678 
test_mm256_mask_shuffle_epi32(__m256i __W,__mmask8 __U,__m256i __A)9679 __m256i test_mm256_mask_shuffle_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
9680   // CHECK-LABEL: @test_mm256_mask_shuffle_epi32
9681   // 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>
9682   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9683   return _mm256_mask_shuffle_epi32(__W, __U, __A, 2);
9684 }
9685 
test_mm256_maskz_shuffle_epi32(__mmask8 __U,__m256i __A)9686 __m256i test_mm256_maskz_shuffle_epi32(__mmask8 __U, __m256i __A) {
9687   // CHECK-LABEL: @test_mm256_maskz_shuffle_epi32
9688   // 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>
9689   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9690   return _mm256_maskz_shuffle_epi32(__U, __A, 2);
9691 }
9692 
test_mm_mask_mov_pd(__m128d __W,__mmask8 __U,__m128d __A)9693 __m128d test_mm_mask_mov_pd(__m128d __W, __mmask8 __U, __m128d __A) {
9694   // CHECK-LABEL: @test_mm_mask_mov_pd
9695   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
9696   return _mm_mask_mov_pd(__W, __U, __A);
9697 }
9698 
test_mm_maskz_mov_pd(__mmask8 __U,__m128d __A)9699 __m128d test_mm_maskz_mov_pd(__mmask8 __U, __m128d __A) {
9700   // CHECK-LABEL: @test_mm_maskz_mov_pd
9701   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
9702   return _mm_maskz_mov_pd(__U, __A);
9703 }
9704 
test_mm256_mask_mov_pd(__m256d __W,__mmask8 __U,__m256d __A)9705 __m256d test_mm256_mask_mov_pd(__m256d __W, __mmask8 __U, __m256d __A) {
9706   // CHECK-LABEL: @test_mm256_mask_mov_pd
9707   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9708   return _mm256_mask_mov_pd(__W, __U, __A);
9709 }
9710 
test_mm256_maskz_mov_pd(__mmask8 __U,__m256d __A)9711 __m256d test_mm256_maskz_mov_pd(__mmask8 __U, __m256d __A) {
9712   // CHECK-LABEL: @test_mm256_maskz_mov_pd
9713   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9714   return _mm256_maskz_mov_pd(__U, __A);
9715 }
9716 
test_mm_mask_mov_ps(__m128 __W,__mmask8 __U,__m128 __A)9717 __m128 test_mm_mask_mov_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9718   // CHECK-LABEL: @test_mm_mask_mov_ps
9719   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9720   return _mm_mask_mov_ps(__W, __U, __A);
9721 }
9722 
test_mm_maskz_mov_ps(__mmask8 __U,__m128 __A)9723 __m128 test_mm_maskz_mov_ps(__mmask8 __U, __m128 __A) {
9724   // CHECK-LABEL: @test_mm_maskz_mov_ps
9725   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9726   return _mm_maskz_mov_ps(__U, __A);
9727 }
9728 
test_mm256_mask_mov_ps(__m256 __W,__mmask8 __U,__m256 __A)9729 __m256 test_mm256_mask_mov_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9730   // CHECK-LABEL: @test_mm256_mask_mov_ps
9731   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9732   return _mm256_mask_mov_ps(__W, __U, __A);
9733 }
9734 
test_mm256_maskz_mov_ps(__mmask8 __U,__m256 __A)9735 __m256 test_mm256_maskz_mov_ps(__mmask8 __U, __m256 __A) {
9736   // CHECK-LABEL: @test_mm256_maskz_mov_ps
9737   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9738   return _mm256_maskz_mov_ps(__U, __A);
9739 }
9740 
test_mm_mask_cvtph_ps(__m128 __W,__mmask8 __U,__m128i __A)9741 __m128 test_mm_mask_cvtph_ps(__m128 __W, __mmask8 __U, __m128i __A) {
9742   // CHECK-LABEL: @test_mm_mask_cvtph_ps
9743   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.128
9744   return _mm_mask_cvtph_ps(__W, __U, __A);
9745 }
9746 
test_mm_maskz_cvtph_ps(__mmask8 __U,__m128i __A)9747 __m128 test_mm_maskz_cvtph_ps(__mmask8 __U, __m128i __A) {
9748   // CHECK-LABEL: @test_mm_maskz_cvtph_ps
9749   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.128
9750   return _mm_maskz_cvtph_ps(__U, __A);
9751 }
9752 
test_mm256_mask_cvtph_ps(__m256 __W,__mmask8 __U,__m128i __A)9753 __m256 test_mm256_mask_cvtph_ps(__m256 __W, __mmask8 __U, __m128i __A) {
9754   // CHECK-LABEL: @test_mm256_mask_cvtph_ps
9755   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.256
9756   return _mm256_mask_cvtph_ps(__W, __U, __A);
9757 }
9758 
test_mm256_maskz_cvtph_ps(__mmask8 __U,__m128i __A)9759 __m256 test_mm256_maskz_cvtph_ps(__mmask8 __U, __m128i __A) {
9760   // CHECK-LABEL: @test_mm256_maskz_cvtph_ps
9761   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.256
9762   return _mm256_maskz_cvtph_ps(__U, __A);
9763 }
9764 
test_mm_mask_cvtps_ph(__m128i __W,__mmask8 __U,__m128 __A)9765 __m128i test_mm_mask_cvtps_ph(__m128i __W, __mmask8 __U, __m128 __A) {
9766   // CHECK-LABEL: @test_mm_mask_cvtps_ph
9767   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9768   return _mm_mask_cvtps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9769 }
9770 
test_mm_maskz_cvtps_ph(__mmask8 __U,__m128 __A)9771 __m128i test_mm_maskz_cvtps_ph(__mmask8 __U, __m128 __A) {
9772   // CHECK-LABEL: @test_mm_maskz_cvtps_ph
9773   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9774   return _mm_maskz_cvtps_ph(__U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9775 }
9776 
test_mm256_mask_cvtps_ph(__m128i __W,__mmask8 __U,__m256 __A)9777 __m128i test_mm256_mask_cvtps_ph(__m128i __W, __mmask8 __U, __m256 __A) {
9778   // CHECK-LABEL: @test_mm256_mask_cvtps_ph
9779   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9780   return _mm256_mask_cvtps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9781 }
9782 
test_mm256_maskz_cvtps_ph(__mmask8 __U,__m256 __A)9783 __m128i test_mm256_maskz_cvtps_ph(__mmask8 __U, __m256 __A) {
9784   // CHECK-LABEL: @test_mm256_maskz_cvtps_ph
9785   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9786   return _mm256_maskz_cvtps_ph(__U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9787 }
9788 
test_mm_mask_cvt_roundps_ph(__m128i __W,__mmask8 __U,__m128 __A)9789 __m128i test_mm_mask_cvt_roundps_ph(__m128i __W, __mmask8 __U, __m128 __A) {
9790   // CHECK-LABEL: @test_mm_mask_cvt_roundps_ph
9791   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9792   return _mm_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO);
9793 }
9794 
test_mm_maskz_cvt_roundps_ph(__mmask8 __U,__m128 __A)9795 __m128i test_mm_maskz_cvt_roundps_ph(__mmask8 __U, __m128 __A) {
9796   // CHECK-LABEL: @test_mm_maskz_cvt_roundps_ph
9797   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9798   return _mm_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_TO_ZERO);
9799 }
9800 
test_mm256_mask_cvt_roundps_ph(__m128i __W,__mmask8 __U,__m256 __A)9801 __m128i test_mm256_mask_cvt_roundps_ph(__m128i __W, __mmask8 __U, __m256 __A) {
9802   // CHECK-LABEL: @test_mm256_mask_cvt_roundps_ph
9803   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9804   return _mm256_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO);
9805 }
9806 
test_mm256_maskz_cvt_roundps_ph(__mmask8 __U,__m256 __A)9807 __m128i test_mm256_maskz_cvt_roundps_ph(__mmask8 __U, __m256 __A) {
9808   // CHECK-LABEL: @test_mm256_maskz_cvt_roundps_ph
9809   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9810   return _mm256_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_TO_ZERO);
9811 }
9812 
test_mm_cmpeq_epi32_mask(__m128i __a,__m128i __b)9813 __mmask8 test_mm_cmpeq_epi32_mask(__m128i __a, __m128i __b) {
9814   // CHECK-LABEL: @test_mm_cmpeq_epi32_mask
9815   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
9816   return (__mmask8)_mm_cmpeq_epi32_mask(__a, __b);
9817 }
9818 
test_mm_mask_cmpeq_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)9819 __mmask8 test_mm_mask_cmpeq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9820   // CHECK-LABEL: @test_mm_mask_cmpeq_epi32_mask
9821   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
9822   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9823   return (__mmask8)_mm_mask_cmpeq_epi32_mask(__u, __a, __b);
9824 }
9825 
test_mm_mask_cmpeq_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)9826 __mmask8 test_mm_mask_cmpeq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9827   // CHECK-LABEL: @test_mm_mask_cmpeq_epi64_mask
9828   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
9829   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
9830   return (__mmask8)_mm_mask_cmpeq_epi64_mask(__u, __a, __b);
9831 }
9832 
test_mm_cmpeq_epi64_mask(__m128i __a,__m128i __b)9833 __mmask8 test_mm_cmpeq_epi64_mask(__m128i __a, __m128i __b) {
9834   // CHECK-LABEL: @test_mm_cmpeq_epi64_mask
9835   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
9836   return (__mmask8)_mm_cmpeq_epi64_mask(__a, __b);
9837 }
9838 
test_mm_cmpgt_epi32_mask(__m128i __a,__m128i __b)9839 __mmask8 test_mm_cmpgt_epi32_mask(__m128i __a, __m128i __b) {
9840   // CHECK-LABEL: @test_mm_cmpgt_epi32_mask
9841   // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}}
9842   return (__mmask8)_mm_cmpgt_epi32_mask(__a, __b);
9843 }
9844 
test_mm_mask_cmpgt_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)9845 __mmask8 test_mm_mask_cmpgt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9846   // CHECK-LABEL: @test_mm_mask_cmpgt_epi32_mask
9847   // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}}
9848   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9849   return (__mmask8)_mm_mask_cmpgt_epi32_mask(__u, __a, __b);
9850 }
9851 
test_mm_mask_cmpgt_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)9852 __mmask8 test_mm_mask_cmpgt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9853   // CHECK-LABEL: @test_mm_mask_cmpgt_epi64_mask
9854   // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}}
9855   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
9856   return (__mmask8)_mm_mask_cmpgt_epi64_mask(__u, __a, __b);
9857 }
9858 
test_mm_cmpgt_epi64_mask(__m128i __a,__m128i __b)9859 __mmask8 test_mm_cmpgt_epi64_mask(__m128i __a, __m128i __b) {
9860   // CHECK-LABEL: @test_mm_cmpgt_epi64_mask
9861   // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}}
9862   return (__mmask8)_mm_cmpgt_epi64_mask(__a, __b);
9863 }
9864 
test_mm256_cmpeq_epi32_mask(__m256i __a,__m256i __b)9865 __mmask8 test_mm256_cmpeq_epi32_mask(__m256i __a, __m256i __b) {
9866   // CHECK-LABEL: @test_mm256_cmpeq_epi32_mask
9867   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
9868   return (__mmask8)_mm256_cmpeq_epi32_mask(__a, __b);
9869 }
9870 
test_mm256_mask_cmpeq_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)9871 __mmask8 test_mm256_mask_cmpeq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9872   // CHECK-LABEL: @test_mm256_mask_cmpeq_epi32_mask
9873   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
9874   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
9875   return (__mmask8)_mm256_mask_cmpeq_epi32_mask(__u, __a, __b);
9876 }
9877 
test_mm256_mask_cmpeq_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)9878 __mmask8 test_mm256_mask_cmpeq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9879   // CHECK-LABEL: @test_mm256_mask_cmpeq_epi64_mask
9880   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
9881   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9882   return (__mmask8)_mm256_mask_cmpeq_epi64_mask(__u, __a, __b);
9883 }
9884 
test_mm256_cmpeq_epi64_mask(__m256i __a,__m256i __b)9885 __mmask8 test_mm256_cmpeq_epi64_mask(__m256i __a, __m256i __b) {
9886   // CHECK-LABEL: @test_mm256_cmpeq_epi64_mask
9887   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
9888   return (__mmask8)_mm256_cmpeq_epi64_mask(__a, __b);
9889 }
9890 
test_mm256_cmpgt_epi32_mask(__m256i __a,__m256i __b)9891 __mmask8 test_mm256_cmpgt_epi32_mask(__m256i __a, __m256i __b) {
9892   // CHECK-LABEL: @test_mm256_cmpgt_epi32_mask
9893   // CHECK: icmp sgt <8 x i32> %{{.*}}, %{{.*}}
9894   return (__mmask8)_mm256_cmpgt_epi32_mask(__a, __b);
9895 }
9896 
test_mm256_mask_cmpgt_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)9897 __mmask8 test_mm256_mask_cmpgt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9898   // CHECK-LABEL: @test_mm256_mask_cmpgt_epi32_mask
9899   // CHECK: icmp sgt <8 x i32> %{{.*}}, %{{.*}}
9900   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
9901   return (__mmask8)_mm256_mask_cmpgt_epi32_mask(__u, __a, __b);
9902 }
9903 
test_mm256_mask_cmpgt_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)9904 __mmask8 test_mm256_mask_cmpgt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9905   // CHECK-LABEL: @test_mm256_mask_cmpgt_epi64_mask
9906   // CHECK: icmp sgt <4 x i64> %{{.*}}, %{{.*}}
9907   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9908   return (__mmask8)_mm256_mask_cmpgt_epi64_mask(__u, __a, __b);
9909 }
9910 
test_mm256_cmpgt_epi64_mask(__m256i __a,__m256i __b)9911 __mmask8 test_mm256_cmpgt_epi64_mask(__m256i __a, __m256i __b) {
9912   // CHECK-LABEL: @test_mm256_cmpgt_epi64_mask
9913   // CHECK: icmp sgt <4 x i64> %{{.*}}, %{{.*}}
9914   return (__mmask8)_mm256_cmpgt_epi64_mask(__a, __b);
9915 }
9916