1 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -fexperimental-new-pass-manager -triple=x86_64-apple-darwin -target-feature +avx512f -target-feature +avx512vl -emit-llvm -o - -Wall -Werror -Wsign-conversion | 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-NOT: fneg
3144   // CHECK: call <2 x double> @llvm.x86.fma.vfmaddsub.pd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3145   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3146   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3147   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3148   return _mm_mask_fmaddsub_pd(__A, __U, __B, __C);
3149 }
3150 
test_mm_mask_fmsubadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3151 __m128d test_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3152   // CHECK-LABEL: @test_mm_mask_fmsubadd_pd
3153   // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.*}}
3154   // CHECK: call <2 x double> @llvm.x86.fma.vfmaddsub.pd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]])
3155   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3156   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3157   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3158   return _mm_mask_fmsubadd_pd(__A, __U, __B, __C);
3159 }
3160 
test_mm_mask3_fmaddsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3161 __m128d test_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3162   // CHECK-LABEL: @test_mm_mask3_fmaddsub_pd
3163   // CHECK-NOT: fneg
3164   // CHECK: call <2 x double> @llvm.x86.fma.vfmaddsub.pd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3165   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3166   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3167   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3168   return _mm_mask3_fmaddsub_pd(__A, __B, __C, __U);
3169 }
3170 
test_mm_maskz_fmaddsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)3171 __m128d test_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
3172   // CHECK-LABEL: @test_mm_maskz_fmaddsub_pd
3173   // CHECK-NOT: fneg
3174   // CHECK: call <2 x double> @llvm.x86.fma.vfmaddsub.pd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3175   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3176   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3177   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3178   return _mm_maskz_fmaddsub_pd(__U, __A, __B, __C);
3179 }
3180 
test_mm_maskz_fmsubadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)3181 __m128d test_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
3182   // CHECK-LABEL: @test_mm_maskz_fmsubadd_pd
3183   // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.*}}
3184   // CHECK: call <2 x double> @llvm.x86.fma.vfmaddsub.pd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]])
3185   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3186   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3187   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3188   return _mm_maskz_fmsubadd_pd(__U, __A, __B, __C);
3189 }
3190 
test_mm256_mask_fmaddsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3191 __m256d test_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3192   // CHECK-LABEL: @test_mm256_mask_fmaddsub_pd
3193   // CHECK-NOT: fneg
3194   // CHECK: call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3195   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3196   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3197   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3198   return _mm256_mask_fmaddsub_pd(__A, __U, __B, __C);
3199 }
3200 
test_mm256_mask_fmsubadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3201 __m256d test_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3202   // CHECK-LABEL: @test_mm256_mask_fmsubadd_pd
3203   // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.*}}
3204   // CHECK: call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]])
3205   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3206   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3207   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3208   return _mm256_mask_fmsubadd_pd(__A, __U, __B, __C);
3209 }
3210 
test_mm256_mask3_fmaddsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3211 __m256d test_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3212   // CHECK-LABEL: @test_mm256_mask3_fmaddsub_pd
3213   // CHECK-NOT: fneg
3214   // CHECK: call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3215   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3216   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3217   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3218   return _mm256_mask3_fmaddsub_pd(__A, __B, __C, __U);
3219 }
3220 
test_mm256_maskz_fmaddsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)3221 __m256d test_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
3222   // CHECK-LABEL: @test_mm256_maskz_fmaddsub_pd
3223   // CHECK-NOT: fneg
3224   // CHECK: call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3225   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3226   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3227   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3228   return _mm256_maskz_fmaddsub_pd(__U, __A, __B, __C);
3229 }
3230 
test_mm256_maskz_fmsubadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)3231 __m256d test_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
3232   // CHECK-LABEL: @test_mm256_maskz_fmsubadd_pd
3233   // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.*}}
3234   // CHECK: call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]])
3235   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3236   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3237   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3238   return _mm256_maskz_fmsubadd_pd(__U, __A, __B, __C);
3239 }
3240 
test_mm_mask_fmaddsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3241 __m128 test_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3242   // CHECK-LABEL: @test_mm_mask_fmaddsub_ps
3243   // CHECK-NOT: fneg
3244   // CHECK: call <4 x float> @llvm.x86.fma.vfmaddsub.ps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3245   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3246   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3247   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3248   return _mm_mask_fmaddsub_ps(__A, __U, __B, __C);
3249 }
3250 
test_mm_mask_fmsubadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3251 __m128 test_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3252   // CHECK-LABEL: @test_mm_mask_fmsubadd_ps
3253   // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.*}}
3254   // CHECK: call <4 x float> @llvm.x86.fma.vfmaddsub.ps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]])
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 float> %{{.*}}, <4 x float> %{{.*}}
3258   return _mm_mask_fmsubadd_ps(__A, __U, __B, __C);
3259 }
3260 
test_mm_mask3_fmaddsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3261 __m128 test_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3262   // CHECK-LABEL: @test_mm_mask3_fmaddsub_ps
3263   // CHECK-NOT: fneg
3264   // CHECK: call <4 x float> @llvm.x86.fma.vfmaddsub.ps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3265   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3266   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3267   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3268   return _mm_mask3_fmaddsub_ps(__A, __B, __C, __U);
3269 }
3270 
test_mm_maskz_fmaddsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3271 __m128 test_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3272   // CHECK-LABEL: @test_mm_maskz_fmaddsub_ps
3273   // CHECK-NOT: fneg
3274   // CHECK: call <4 x float> @llvm.x86.fma.vfmaddsub.ps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3275   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3276   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3277   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3278   return _mm_maskz_fmaddsub_ps(__U, __A, __B, __C);
3279 }
3280 
test_mm_maskz_fmsubadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3281 __m128 test_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3282   // CHECK-LABEL: @test_mm_maskz_fmsubadd_ps
3283   // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.*}}
3284   // CHECK: call <4 x float> @llvm.x86.fma.vfmaddsub.ps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]])
3285   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3286   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3287   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3288   return _mm_maskz_fmsubadd_ps(__U, __A, __B, __C);
3289 }
3290 
test_mm256_mask_fmaddsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3291 __m256 test_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3292   // CHECK-LABEL: @test_mm256_mask_fmaddsub_ps
3293   // CHECK-NOT: fneg
3294   // CHECK: call <8 x float> @llvm.x86.fma.vfmaddsub.ps.256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3295   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3296   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3297   return _mm256_mask_fmaddsub_ps(__A, __U, __B, __C);
3298 }
3299 
test_mm256_mask_fmsubadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3300 __m256 test_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3301   // CHECK-LABEL: @test_mm256_mask_fmsubadd_ps
3302   // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3303   // CHECK: call <8 x float> @llvm.x86.fma.vfmaddsub.ps.256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]])
3304   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3305   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3306   return _mm256_mask_fmsubadd_ps(__A, __U, __B, __C);
3307 }
3308 
test_mm256_mask3_fmaddsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3309 __m256 test_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3310   // CHECK-LABEL: @test_mm256_mask3_fmaddsub_ps
3311   // CHECK-NOT: fneg
3312   // CHECK: call <8 x float> @llvm.x86.fma.vfmaddsub.ps.256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3313   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3314   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3315   return _mm256_mask3_fmaddsub_ps(__A, __B, __C, __U);
3316 }
3317 
test_mm256_maskz_fmaddsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3318 __m256 test_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3319   // CHECK-LABEL: @test_mm256_maskz_fmaddsub_ps
3320   // CHECK-NOT: fneg
3321   // CHECK: call <8 x float> @llvm.x86.fma.vfmaddsub.ps.256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3322   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3323   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3324   return _mm256_maskz_fmaddsub_ps(__U, __A, __B, __C);
3325 }
3326 
test_mm256_maskz_fmsubadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3327 __m256 test_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3328   // CHECK-LABEL: @test_mm256_maskz_fmsubadd_ps
3329   // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3330   // CHECK: call <8 x float> @llvm.x86.fma.vfmaddsub.ps.256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]])
3331   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3332   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3333   return _mm256_maskz_fmsubadd_ps(__U, __A, __B, __C);
3334 }
3335 
test_mm_mask3_fmsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3336 __m128d test_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3337   // CHECK-LABEL: @test_mm_mask3_fmsub_pd
3338   // CHECK: fneg <2 x double> %{{.*}}
3339   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3340   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3341   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3342   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3343   return _mm_mask3_fmsub_pd(__A, __B, __C, __U);
3344 }
3345 
test_mm256_mask3_fmsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3346 __m256d test_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3347   // CHECK-LABEL: @test_mm256_mask3_fmsub_pd
3348   // CHECK: fneg <4 x double> %{{.*}}
3349   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3350   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3351   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3352   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3353   return _mm256_mask3_fmsub_pd(__A, __B, __C, __U);
3354 }
3355 
test_mm_mask3_fmsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3356 __m128 test_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3357   // CHECK-LABEL: @test_mm_mask3_fmsub_ps
3358   // CHECK: fneg <4 x float> %{{.*}}
3359   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3360   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3361   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3362   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3363   return _mm_mask3_fmsub_ps(__A, __B, __C, __U);
3364 }
3365 
test_mm256_mask3_fmsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3366 __m256 test_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3367   // CHECK-LABEL: @test_mm256_mask3_fmsub_ps
3368   // CHECK: fneg <8 x float> %{{.*}}
3369   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3370   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3371   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3372   return _mm256_mask3_fmsub_ps(__A, __B, __C, __U);
3373 }
3374 
test_mm_mask3_fmsubadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3375 __m128d test_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3376   // CHECK-LABEL: @test_mm_mask3_fmsubadd_pd
3377   // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.+}}
3378   // CHECK: call <2 x double> @llvm.x86.fma.vfmaddsub.pd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]])
3379   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3380   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3381   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3382   return _mm_mask3_fmsubadd_pd(__A, __B, __C, __U);
3383 }
3384 
test_mm256_mask3_fmsubadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3385 __m256d test_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3386   // CHECK-LABEL: @test_mm256_mask3_fmsubadd_pd
3387   // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.+}}
3388   // CHECK: call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]])
3389   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3390   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3391   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3392   return _mm256_mask3_fmsubadd_pd(__A, __B, __C, __U);
3393 }
3394 
test_mm_mask3_fmsubadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3395 __m128 test_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3396   // CHECK-LABEL: @test_mm_mask3_fmsubadd_ps
3397   // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.+}}
3398   // CHECK: call <4 x float> @llvm.x86.fma.vfmaddsub.ps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]])
3399   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3400   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3401   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3402   return _mm_mask3_fmsubadd_ps(__A, __B, __C, __U);
3403 }
3404 
test_mm256_mask3_fmsubadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3405 __m256 test_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3406   // CHECK-LABEL: @test_mm256_mask3_fmsubadd_ps
3407   // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3408   // CHECK: call <8 x float> @llvm.x86.fma.vfmaddsub.ps.256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]])
3409   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3410   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3411   return _mm256_mask3_fmsubadd_ps(__A, __B, __C, __U);
3412 }
3413 
test_mm_mask_fnmadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3414 __m128d test_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3415   // CHECK-LABEL: @test_mm_mask_fnmadd_pd
3416   // CHECK: fneg <2 x double> %{{.*}}
3417   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3418   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3419   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3420   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3421   return _mm_mask_fnmadd_pd(__A, __U, __B, __C);
3422 }
3423 
test_mm256_mask_fnmadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3424 __m256d test_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3425   // CHECK-LABEL: @test_mm256_mask_fnmadd_pd
3426   // CHECK: fneg <4 x double> %{{.*}}
3427   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3428   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3429   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3430   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3431   return _mm256_mask_fnmadd_pd(__A, __U, __B, __C);
3432 }
3433 
test_mm_mask_fnmadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3434 __m128 test_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3435   // CHECK-LABEL: @test_mm_mask_fnmadd_ps
3436   // CHECK: fneg <4 x float> %{{.*}}
3437   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3438   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3439   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3440   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3441   return _mm_mask_fnmadd_ps(__A, __U, __B, __C);
3442 }
3443 
test_mm256_mask_fnmadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3444 __m256 test_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3445   // CHECK-LABEL: @test_mm256_mask_fnmadd_ps
3446   // CHECK: fneg <8 x float> %{{.*}}
3447   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3448   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3449   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3450   return _mm256_mask_fnmadd_ps(__A, __U, __B, __C);
3451 }
3452 
test_mm_mask_fnmsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3453 __m128d test_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3454   // CHECK-LABEL: @test_mm_mask_fnmsub_pd
3455   // CHECK: fneg <2 x double> %{{.*}}
3456   // CHECK: fneg <2 x double> %{{.*}}
3457   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3458   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3459   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3460   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3461   return _mm_mask_fnmsub_pd(__A, __U, __B, __C);
3462 }
3463 
test_mm_mask3_fnmsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3464 __m128d test_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3465   // CHECK-LABEL: @test_mm_mask3_fnmsub_pd
3466   // CHECK: fneg <2 x double> %{{.*}}
3467   // CHECK: fneg <2 x double> %{{.*}}
3468   // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3469   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3470   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3471   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3472   return _mm_mask3_fnmsub_pd(__A, __B, __C, __U);
3473 }
3474 
test_mm256_mask_fnmsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3475 __m256d test_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3476   // CHECK-LABEL: @test_mm256_mask_fnmsub_pd
3477   // CHECK: fneg <4 x double> %{{.*}}
3478   // CHECK: fneg <4 x double> %{{.*}}
3479   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3480   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3481   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3482   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3483   return _mm256_mask_fnmsub_pd(__A, __U, __B, __C);
3484 }
3485 
test_mm256_mask3_fnmsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3486 __m256d test_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3487   // CHECK-LABEL: @test_mm256_mask3_fnmsub_pd
3488   // CHECK: fneg <4 x double> %{{.*}}
3489   // CHECK: fneg <4 x double> %{{.*}}
3490   // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3491   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3492   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3493   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3494   return _mm256_mask3_fnmsub_pd(__A, __B, __C, __U);
3495 }
3496 
test_mm_mask_fnmsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3497 __m128 test_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3498   // CHECK-LABEL: @test_mm_mask_fnmsub_ps
3499   // CHECK: fneg <4 x float> %{{.*}}
3500   // CHECK: fneg <4 x float> %{{.*}}
3501   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3502   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3503   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3504   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3505   return _mm_mask_fnmsub_ps(__A, __U, __B, __C);
3506 }
3507 
test_mm_mask3_fnmsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3508 __m128 test_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3509   // CHECK-LABEL: @test_mm_mask3_fnmsub_ps
3510   // CHECK: fneg <4 x float> %{{.*}}
3511   // CHECK: fneg <4 x float> %{{.*}}
3512   // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3513   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3514   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3515   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3516   return _mm_mask3_fnmsub_ps(__A, __B, __C, __U);
3517 }
3518 
test_mm256_mask_fnmsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3519 __m256 test_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3520   // CHECK-LABEL: @test_mm256_mask_fnmsub_ps
3521   // CHECK: fneg <8 x float> %{{.*}}
3522   // CHECK: fneg <8 x float> %{{.*}}
3523   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3524   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3525   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3526   return _mm256_mask_fnmsub_ps(__A, __U, __B, __C);
3527 }
3528 
test_mm256_mask3_fnmsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3529 __m256 test_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3530   // CHECK-LABEL: @test_mm256_mask3_fnmsub_ps
3531   // CHECK: fneg <8 x float> %{{.*}}
3532   // CHECK: fneg <8 x float> %{{.*}}
3533   // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3534   // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3535   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3536   return _mm256_mask3_fnmsub_ps(__A, __B, __C, __U);
3537 }
3538 
test_mm_mask_add_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3539 __m128d test_mm_mask_add_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3540   // CHECK-LABEL: @test_mm_mask_add_pd
3541   // CHECK: fadd <2 x double> %{{.*}}, %{{.*}}
3542   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3543   return _mm_mask_add_pd(__W,__U,__A,__B);
3544 }
test_mm_maskz_add_pd(__mmask8 __U,__m128d __A,__m128d __B)3545 __m128d test_mm_maskz_add_pd(__mmask8 __U, __m128d __A, __m128d __B) {
3546   // CHECK-LABEL: @test_mm_maskz_add_pd
3547   // CHECK: fadd <2 x double> %{{.*}}, %{{.*}}
3548   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3549   return _mm_maskz_add_pd(__U,__A,__B);
3550 }
test_mm256_mask_add_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)3551 __m256d test_mm256_mask_add_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
3552   // CHECK-LABEL: @test_mm256_mask_add_pd
3553   // CHECK: fadd <4 x double> %{{.*}}, %{{.*}}
3554   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3555   return _mm256_mask_add_pd(__W,__U,__A,__B);
3556 }
test_mm256_maskz_add_pd(__mmask8 __U,__m256d __A,__m256d __B)3557 __m256d test_mm256_maskz_add_pd(__mmask8 __U, __m256d __A, __m256d __B) {
3558   // CHECK-LABEL: @test_mm256_maskz_add_pd
3559   // CHECK: fadd <4 x double> %{{.*}}, %{{.*}}
3560   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3561   return _mm256_maskz_add_pd(__U,__A,__B);
3562 }
test_mm_mask_add_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)3563 __m128 test_mm_mask_add_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3564   // CHECK-LABEL: @test_mm_mask_add_ps
3565   // CHECK: fadd <4 x float> %{{.*}}, %{{.*}}
3566   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3567   return _mm_mask_add_ps(__W,__U,__A,__B);
3568 }
test_mm_maskz_add_ps(__mmask8 __U,__m128 __A,__m128 __B)3569 __m128 test_mm_maskz_add_ps(__mmask8 __U, __m128 __A, __m128 __B) {
3570   // CHECK-LABEL: @test_mm_maskz_add_ps
3571   // CHECK: fadd <4 x float> %{{.*}}, %{{.*}}
3572   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3573   return _mm_maskz_add_ps(__U,__A,__B);
3574 }
test_mm256_mask_add_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)3575 __m256 test_mm256_mask_add_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3576   // CHECK-LABEL: @test_mm256_mask_add_ps
3577   // CHECK: fadd <8 x float> %{{.*}}, %{{.*}}
3578   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3579   return _mm256_mask_add_ps(__W,__U,__A,__B);
3580 }
test_mm256_maskz_add_ps(__mmask8 __U,__m256 __A,__m256 __B)3581 __m256 test_mm256_maskz_add_ps(__mmask8 __U, __m256 __A, __m256 __B) {
3582   // CHECK-LABEL: @test_mm256_maskz_add_ps
3583   // CHECK: fadd <8 x float> %{{.*}}, %{{.*}}
3584   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3585   return _mm256_maskz_add_ps(__U,__A,__B);
3586 }
test_mm_mask_blend_epi32(__mmask8 __U,__m128i __A,__m128i __W)3587 __m128i test_mm_mask_blend_epi32(__mmask8 __U, __m128i __A, __m128i __W) {
3588   // CHECK-LABEL: @test_mm_mask_blend_epi32
3589   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
3590   return _mm_mask_blend_epi32(__U,__A,__W);
3591 }
test_mm256_mask_blend_epi32(__mmask8 __U,__m256i __A,__m256i __W)3592 __m256i test_mm256_mask_blend_epi32(__mmask8 __U, __m256i __A, __m256i __W) {
3593   // CHECK-LABEL: @test_mm256_mask_blend_epi32
3594   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
3595   return _mm256_mask_blend_epi32(__U,__A,__W);
3596 }
test_mm_mask_blend_pd(__mmask8 __U,__m128d __A,__m128d __W)3597 __m128d test_mm_mask_blend_pd(__mmask8 __U, __m128d __A, __m128d __W) {
3598   // CHECK-LABEL: @test_mm_mask_blend_pd
3599   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3600   return _mm_mask_blend_pd(__U,__A,__W);
3601 }
test_mm256_mask_blend_pd(__mmask8 __U,__m256d __A,__m256d __W)3602 __m256d test_mm256_mask_blend_pd(__mmask8 __U, __m256d __A, __m256d __W) {
3603   // CHECK-LABEL: @test_mm256_mask_blend_pd
3604   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3605   return _mm256_mask_blend_pd(__U,__A,__W);
3606 }
test_mm_mask_blend_ps(__mmask8 __U,__m128 __A,__m128 __W)3607 __m128 test_mm_mask_blend_ps(__mmask8 __U, __m128 __A, __m128 __W) {
3608   // CHECK-LABEL: @test_mm_mask_blend_ps
3609   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3610   return _mm_mask_blend_ps(__U,__A,__W);
3611 }
test_mm256_mask_blend_ps(__mmask8 __U,__m256 __A,__m256 __W)3612 __m256 test_mm256_mask_blend_ps(__mmask8 __U, __m256 __A, __m256 __W) {
3613   // CHECK-LABEL: @test_mm256_mask_blend_ps
3614   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3615   return _mm256_mask_blend_ps(__U,__A,__W);
3616 }
test_mm_mask_blend_epi64(__mmask8 __U,__m128i __A,__m128i __W)3617 __m128i test_mm_mask_blend_epi64(__mmask8 __U, __m128i __A, __m128i __W) {
3618   // CHECK-LABEL: @test_mm_mask_blend_epi64
3619   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
3620   return _mm_mask_blend_epi64(__U,__A,__W);
3621 }
test_mm256_mask_blend_epi64(__mmask8 __U,__m256i __A,__m256i __W)3622 __m256i test_mm256_mask_blend_epi64(__mmask8 __U, __m256i __A, __m256i __W) {
3623   // CHECK-LABEL: @test_mm256_mask_blend_epi64
3624   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
3625   return _mm256_mask_blend_epi64(__U,__A,__W);
3626 }
test_mm_mask_compress_pd(__m128d __W,__mmask8 __U,__m128d __A)3627 __m128d test_mm_mask_compress_pd(__m128d __W, __mmask8 __U, __m128d __A) {
3628   // CHECK-LABEL: @test_mm_mask_compress_pd
3629   // CHECK: @llvm.x86.avx512.mask.compress
3630   return _mm_mask_compress_pd(__W,__U,__A);
3631 }
test_mm_maskz_compress_pd(__mmask8 __U,__m128d __A)3632 __m128d test_mm_maskz_compress_pd(__mmask8 __U, __m128d __A) {
3633   // CHECK-LABEL: @test_mm_maskz_compress_pd
3634   // CHECK: @llvm.x86.avx512.mask.compress
3635   return _mm_maskz_compress_pd(__U,__A);
3636 }
test_mm256_mask_compress_pd(__m256d __W,__mmask8 __U,__m256d __A)3637 __m256d test_mm256_mask_compress_pd(__m256d __W, __mmask8 __U, __m256d __A) {
3638   // CHECK-LABEL: @test_mm256_mask_compress_pd
3639   // CHECK: @llvm.x86.avx512.mask.compress
3640   return _mm256_mask_compress_pd(__W,__U,__A);
3641 }
test_mm256_maskz_compress_pd(__mmask8 __U,__m256d __A)3642 __m256d test_mm256_maskz_compress_pd(__mmask8 __U, __m256d __A) {
3643   // CHECK-LABEL: @test_mm256_maskz_compress_pd
3644   // CHECK: @llvm.x86.avx512.mask.compress
3645   return _mm256_maskz_compress_pd(__U,__A);
3646 }
test_mm_mask_compress_epi64(__m128i __W,__mmask8 __U,__m128i __A)3647 __m128i test_mm_mask_compress_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
3648   // CHECK-LABEL: @test_mm_mask_compress_epi64
3649   // CHECK: @llvm.x86.avx512.mask.compress
3650   return _mm_mask_compress_epi64(__W,__U,__A);
3651 }
test_mm_maskz_compress_epi64(__mmask8 __U,__m128i __A)3652 __m128i test_mm_maskz_compress_epi64(__mmask8 __U, __m128i __A) {
3653   // CHECK-LABEL: @test_mm_maskz_compress_epi64
3654   // CHECK: @llvm.x86.avx512.mask.compress
3655   return _mm_maskz_compress_epi64(__U,__A);
3656 }
test_mm256_mask_compress_epi64(__m256i __W,__mmask8 __U,__m256i __A)3657 __m256i test_mm256_mask_compress_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
3658   // CHECK-LABEL: @test_mm256_mask_compress_epi64
3659   // CHECK: @llvm.x86.avx512.mask.compress
3660   return _mm256_mask_compress_epi64(__W,__U,__A);
3661 }
test_mm256_maskz_compress_epi64(__mmask8 __U,__m256i __A)3662 __m256i test_mm256_maskz_compress_epi64(__mmask8 __U, __m256i __A) {
3663   // CHECK-LABEL: @test_mm256_maskz_compress_epi64
3664   // CHECK: @llvm.x86.avx512.mask.compress
3665   return _mm256_maskz_compress_epi64(__U,__A);
3666 }
test_mm_mask_compress_ps(__m128 __W,__mmask8 __U,__m128 __A)3667 __m128 test_mm_mask_compress_ps(__m128 __W, __mmask8 __U, __m128 __A) {
3668   // CHECK-LABEL: @test_mm_mask_compress_ps
3669   // CHECK: @llvm.x86.avx512.mask.compress
3670   return _mm_mask_compress_ps(__W,__U,__A);
3671 }
test_mm_maskz_compress_ps(__mmask8 __U,__m128 __A)3672 __m128 test_mm_maskz_compress_ps(__mmask8 __U, __m128 __A) {
3673   // CHECK-LABEL: @test_mm_maskz_compress_ps
3674   // CHECK: @llvm.x86.avx512.mask.compress
3675   return _mm_maskz_compress_ps(__U,__A);
3676 }
test_mm256_mask_compress_ps(__m256 __W,__mmask8 __U,__m256 __A)3677 __m256 test_mm256_mask_compress_ps(__m256 __W, __mmask8 __U, __m256 __A) {
3678   // CHECK-LABEL: @test_mm256_mask_compress_ps
3679   // CHECK: @llvm.x86.avx512.mask.compress
3680   return _mm256_mask_compress_ps(__W,__U,__A);
3681 }
test_mm256_maskz_compress_ps(__mmask8 __U,__m256 __A)3682 __m256 test_mm256_maskz_compress_ps(__mmask8 __U, __m256 __A) {
3683   // CHECK-LABEL: @test_mm256_maskz_compress_ps
3684   // CHECK: @llvm.x86.avx512.mask.compress
3685   return _mm256_maskz_compress_ps(__U,__A);
3686 }
test_mm_mask_compress_epi32(__m128i __W,__mmask8 __U,__m128i __A)3687 __m128i test_mm_mask_compress_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
3688   // CHECK-LABEL: @test_mm_mask_compress_epi32
3689   // CHECK: @llvm.x86.avx512.mask.compress
3690   return _mm_mask_compress_epi32(__W,__U,__A);
3691 }
test_mm_maskz_compress_epi32(__mmask8 __U,__m128i __A)3692 __m128i test_mm_maskz_compress_epi32(__mmask8 __U, __m128i __A) {
3693   // CHECK-LABEL: @test_mm_maskz_compress_epi32
3694   // CHECK: @llvm.x86.avx512.mask.compress
3695   return _mm_maskz_compress_epi32(__U,__A);
3696 }
test_mm256_mask_compress_epi32(__m256i __W,__mmask8 __U,__m256i __A)3697 __m256i test_mm256_mask_compress_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
3698   // CHECK-LABEL: @test_mm256_mask_compress_epi32
3699   // CHECK: @llvm.x86.avx512.mask.compress
3700   return _mm256_mask_compress_epi32(__W,__U,__A);
3701 }
test_mm256_maskz_compress_epi32(__mmask8 __U,__m256i __A)3702 __m256i test_mm256_maskz_compress_epi32(__mmask8 __U, __m256i __A) {
3703   // CHECK-LABEL: @test_mm256_maskz_compress_epi32
3704   // CHECK: @llvm.x86.avx512.mask.compress
3705   return _mm256_maskz_compress_epi32(__U,__A);
3706 }
test_mm_mask_compressstoreu_pd(void * __P,__mmask8 __U,__m128d __A)3707 void test_mm_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m128d __A) {
3708   // CHECK-LABEL: @test_mm_mask_compressstoreu_pd
3709   // CHECK: @llvm.masked.compressstore.v2f64(<2 x double> %{{.*}}, double* %{{.*}}, <2 x i1> %{{.*}})
3710   return _mm_mask_compressstoreu_pd(__P,__U,__A);
3711 }
test_mm256_mask_compressstoreu_pd(void * __P,__mmask8 __U,__m256d __A)3712 void test_mm256_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m256d __A) {
3713   // CHECK-LABEL: @test_mm256_mask_compressstoreu_pd
3714   // CHECK: @llvm.masked.compressstore.v4f64(<4 x double> %{{.*}}, double* %{{.*}}, <4 x i1> %{{.*}})
3715   return _mm256_mask_compressstoreu_pd(__P,__U,__A);
3716 }
test_mm_mask_compressstoreu_epi64(void * __P,__mmask8 __U,__m128i __A)3717 void test_mm_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m128i __A) {
3718   // CHECK-LABEL: @test_mm_mask_compressstoreu_epi64
3719   // CHECK: @llvm.masked.compressstore.v2i64(<2 x i64> %{{.*}}, i64* %{{.*}}, <2 x i1> %{{.*}})
3720   return _mm_mask_compressstoreu_epi64(__P,__U,__A);
3721 }
test_mm256_mask_compressstoreu_epi64(void * __P,__mmask8 __U,__m256i __A)3722 void test_mm256_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m256i __A) {
3723   // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi64
3724   // CHECK: @llvm.masked.compressstore.v4i64(<4 x i64> %{{.*}}, i64* %{{.*}}, <4 x i1> %{{.*}})
3725   return _mm256_mask_compressstoreu_epi64(__P,__U,__A);
3726 }
test_mm_mask_compressstoreu_ps(void * __P,__mmask8 __U,__m128 __A)3727 void test_mm_mask_compressstoreu_ps(void *__P, __mmask8 __U, __m128 __A) {
3728   // CHECK-LABEL: @test_mm_mask_compressstoreu_ps
3729   // CHECK: @llvm.masked.compressstore.v4f32(<4 x float> %{{.*}}, float* %{{.*}}, <4 x i1> %{{.*}})
3730   return _mm_mask_compressstoreu_ps(__P,__U,__A);
3731 }
test_mm256_mask_compressstoreu_ps(void * __P,__mmask8 __U,__m256 __A)3732 void test_mm256_mask_compressstoreu_ps(void *__P, __mmask8 __U, __m256 __A) {
3733   // CHECK-LABEL: @test_mm256_mask_compressstoreu_ps
3734   // CHECK: @llvm.masked.compressstore.v8f32(<8 x float> %{{.*}}, float* %{{.*}}, <8 x i1> %{{.*}})
3735   return _mm256_mask_compressstoreu_ps(__P,__U,__A);
3736 }
test_mm_mask_compressstoreu_epi32(void * __P,__mmask8 __U,__m128i __A)3737 void test_mm_mask_compressstoreu_epi32(void *__P, __mmask8 __U, __m128i __A) {
3738   // CHECK-LABEL: @test_mm_mask_compressstoreu_epi32
3739   // CHECK: @llvm.masked.compressstore.v4i32(<4 x i32> %{{.*}}, i32* %{{.*}}, <4 x i1> %{{.*}})
3740   return _mm_mask_compressstoreu_epi32(__P,__U,__A);
3741 }
test_mm256_mask_compressstoreu_epi32(void * __P,__mmask8 __U,__m256i __A)3742 void test_mm256_mask_compressstoreu_epi32(void *__P, __mmask8 __U, __m256i __A) {
3743   // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi32
3744   // CHECK: @llvm.masked.compressstore.v8i32(<8 x i32> %{{.*}}, i32* %{{.*}}, <8 x i1> %{{.*}})
3745   return _mm256_mask_compressstoreu_epi32(__P,__U,__A);
3746 }
test_mm_mask_cvtepi32_pd(__m128d __W,__mmask8 __U,__m128i __A)3747 __m128d test_mm_mask_cvtepi32_pd(__m128d __W, __mmask8 __U, __m128i __A) {
3748   // CHECK-LABEL: @test_mm_mask_cvtepi32_pd
3749   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
3750   // CHECK: sitofp <2 x i32> %{{.*}} to <2 x double>
3751   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3752   return _mm_mask_cvtepi32_pd(__W,__U,__A);
3753 }
test_mm_maskz_cvtepi32_pd(__mmask8 __U,__m128i __A)3754 __m128d test_mm_maskz_cvtepi32_pd(__mmask8 __U, __m128i __A) {
3755   // CHECK-LABEL: @test_mm_maskz_cvtepi32_pd
3756   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
3757   // CHECK: sitofp <2 x i32> %{{.*}} to <2 x double>
3758   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3759   return _mm_maskz_cvtepi32_pd(__U,__A);
3760 }
test_mm256_mask_cvtepi32_pd(__m256d __W,__mmask8 __U,__m128i __A)3761 __m256d test_mm256_mask_cvtepi32_pd(__m256d __W, __mmask8 __U, __m128i __A) {
3762   // CHECK-LABEL: @test_mm256_mask_cvtepi32_pd
3763   // CHECK: sitofp <4 x i32> %{{.*}} to <4 x double>
3764   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3765   return _mm256_mask_cvtepi32_pd(__W,__U,__A);
3766 }
test_mm256_maskz_cvtepi32_pd(__mmask8 __U,__m128i __A)3767 __m256d test_mm256_maskz_cvtepi32_pd(__mmask8 __U, __m128i __A) {
3768   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_pd
3769   // CHECK: sitofp <4 x i32> %{{.*}} to <4 x double>
3770   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3771   return _mm256_maskz_cvtepi32_pd(__U,__A);
3772 }
test_mm_mask_cvtepi32_ps(__m128 __W,__mmask8 __U,__m128i __A)3773 __m128 test_mm_mask_cvtepi32_ps(__m128 __W, __mmask8 __U, __m128i __A) {
3774   // CHECK-LABEL: @test_mm_mask_cvtepi32_ps
3775   // CHECK: sitofp <4 x i32> %{{.*}} to <4 x float>
3776   // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3777   return _mm_mask_cvtepi32_ps(__W,__U,__A);
3778 }
test_mm_maskz_cvtepi32_ps(__mmask8 __U,__m128i __A)3779 __m128 test_mm_maskz_cvtepi32_ps(__mmask8 __U, __m128i __A) {
3780   // CHECK-LABEL: @test_mm_maskz_cvtepi32_ps
3781   // CHECK: sitofp <4 x i32> %{{.*}} to <4 x float>
3782   // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3783   return _mm_maskz_cvtepi32_ps(__U,__A);
3784 }
test_mm256_mask_cvtepi32_ps(__m256 __W,__mmask8 __U,__m256i __A)3785 __m256 test_mm256_mask_cvtepi32_ps(__m256 __W, __mmask8 __U, __m256i __A) {
3786   // CHECK-LABEL: @test_mm256_mask_cvtepi32_ps
3787   // CHECK: sitofp <8 x i32> %{{.*}} to <8 x float>
3788   // CHECK: select <8 x i1> {{.*}}, <8 x float> {{.*}}, <8 x float> {{.*}}
3789   return _mm256_mask_cvtepi32_ps(__W,__U,__A);
3790 }
test_mm256_maskz_cvtepi32_ps(__mmask8 __U,__m256i __A)3791 __m256 test_mm256_maskz_cvtepi32_ps(__mmask8 __U, __m256i __A) {
3792   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_ps
3793   // CHECK: sitofp <8 x i32> %{{.*}} to <8 x float>
3794   // CHECK: select <8 x i1> {{.*}}, <8 x float> {{.*}}, <8 x float> {{.*}}
3795   return _mm256_maskz_cvtepi32_ps(__U,__A);
3796 }
test_mm_mask_cvtpd_epi32(__m128i __W,__mmask8 __U,__m128d __A)3797 __m128i test_mm_mask_cvtpd_epi32(__m128i __W, __mmask8 __U, __m128d __A) {
3798   // CHECK-LABEL: @test_mm_mask_cvtpd_epi32
3799   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.128
3800   return _mm_mask_cvtpd_epi32(__W,__U,__A);
3801 }
test_mm_maskz_cvtpd_epi32(__mmask8 __U,__m128d __A)3802 __m128i test_mm_maskz_cvtpd_epi32(__mmask8 __U, __m128d __A) {
3803   // CHECK-LABEL: @test_mm_maskz_cvtpd_epi32
3804   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.128
3805   return _mm_maskz_cvtpd_epi32(__U,__A);
3806 }
test_mm256_mask_cvtpd_epi32(__m128i __W,__mmask8 __U,__m256d __A)3807 __m128i test_mm256_mask_cvtpd_epi32(__m128i __W, __mmask8 __U, __m256d __A) {
3808   // CHECK-LABEL: @test_mm256_mask_cvtpd_epi32
3809   // CHECK: @llvm.x86.avx.cvt.pd2dq.256
3810   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3811   return _mm256_mask_cvtpd_epi32(__W,__U,__A);
3812 }
test_mm256_maskz_cvtpd_epi32(__mmask8 __U,__m256d __A)3813 __m128i test_mm256_maskz_cvtpd_epi32(__mmask8 __U, __m256d __A) {
3814   // CHECK-LABEL: @test_mm256_maskz_cvtpd_epi32
3815   // CHECK: @llvm.x86.avx.cvt.pd2dq.256
3816   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3817   return _mm256_maskz_cvtpd_epi32(__U,__A);
3818 }
test_mm_mask_cvtpd_ps(__m128 __W,__mmask8 __U,__m128d __A)3819 __m128 test_mm_mask_cvtpd_ps(__m128 __W, __mmask8 __U, __m128d __A) {
3820   // CHECK-LABEL: @test_mm_mask_cvtpd_ps
3821   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps
3822   return _mm_mask_cvtpd_ps(__W,__U,__A);
3823 }
test_mm_maskz_cvtpd_ps(__mmask8 __U,__m128d __A)3824 __m128 test_mm_maskz_cvtpd_ps(__mmask8 __U, __m128d __A) {
3825   // CHECK-LABEL: @test_mm_maskz_cvtpd_ps
3826   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps
3827   return _mm_maskz_cvtpd_ps(__U,__A);
3828 }
test_mm256_mask_cvtpd_ps(__m128 __W,__mmask8 __U,__m256d __A)3829 __m128 test_mm256_mask_cvtpd_ps(__m128 __W, __mmask8 __U, __m256d __A) {
3830   // CHECK-LABEL: @test_mm256_mask_cvtpd_ps
3831   // CHECK: @llvm.x86.avx.cvt.pd2.ps.256
3832   // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3833   return _mm256_mask_cvtpd_ps(__W,__U,__A);
3834 }
test_mm256_maskz_cvtpd_ps(__mmask8 __U,__m256d __A)3835 __m128 test_mm256_maskz_cvtpd_ps(__mmask8 __U, __m256d __A) {
3836   // CHECK-LABEL: @test_mm256_maskz_cvtpd_ps
3837   // CHECK: @llvm.x86.avx.cvt.pd2.ps.256
3838   // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3839   return _mm256_maskz_cvtpd_ps(__U,__A);
3840 }
test_mm_cvtpd_epu32(__m128d __A)3841 __m128i test_mm_cvtpd_epu32(__m128d __A) {
3842   // CHECK-LABEL: @test_mm_cvtpd_epu32
3843   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3844   return _mm_cvtpd_epu32(__A);
3845 }
test_mm_mask_cvtpd_epu32(__m128i __W,__mmask8 __U,__m128d __A)3846 __m128i test_mm_mask_cvtpd_epu32(__m128i __W, __mmask8 __U, __m128d __A) {
3847   // CHECK-LABEL: @test_mm_mask_cvtpd_epu32
3848   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3849   return _mm_mask_cvtpd_epu32(__W,__U,__A);
3850 }
test_mm_maskz_cvtpd_epu32(__mmask8 __U,__m128d __A)3851 __m128i test_mm_maskz_cvtpd_epu32(__mmask8 __U, __m128d __A) {
3852   // CHECK-LABEL: @test_mm_maskz_cvtpd_epu32
3853   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3854   return _mm_maskz_cvtpd_epu32(__U,__A);
3855 }
test_mm256_cvtpd_epu32(__m256d __A)3856 __m128i test_mm256_cvtpd_epu32(__m256d __A) {
3857   // CHECK-LABEL: @test_mm256_cvtpd_epu32
3858   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3859   return _mm256_cvtpd_epu32(__A);
3860 }
test_mm256_mask_cvtpd_epu32(__m128i __W,__mmask8 __U,__m256d __A)3861 __m128i test_mm256_mask_cvtpd_epu32(__m128i __W, __mmask8 __U, __m256d __A) {
3862   // CHECK-LABEL: @test_mm256_mask_cvtpd_epu32
3863   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3864   return _mm256_mask_cvtpd_epu32(__W,__U,__A);
3865 }
test_mm256_maskz_cvtpd_epu32(__mmask8 __U,__m256d __A)3866 __m128i test_mm256_maskz_cvtpd_epu32(__mmask8 __U, __m256d __A) {
3867   // CHECK-LABEL: @test_mm256_maskz_cvtpd_epu32
3868   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3869   return _mm256_maskz_cvtpd_epu32(__U,__A);
3870 }
test_mm_mask_cvtps_epi32(__m128i __W,__mmask8 __U,__m128 __A)3871 __m128i test_mm_mask_cvtps_epi32(__m128i __W, __mmask8 __U, __m128 __A) {
3872   // CHECK-LABEL: @test_mm_mask_cvtps_epi32
3873   // CHECK: @llvm.x86.sse2.cvtps2dq
3874   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3875   return _mm_mask_cvtps_epi32(__W,__U,__A);
3876 }
test_mm_maskz_cvtps_epi32(__mmask8 __U,__m128 __A)3877 __m128i test_mm_maskz_cvtps_epi32(__mmask8 __U, __m128 __A) {
3878   // CHECK-LABEL: @test_mm_maskz_cvtps_epi32
3879   // CHECK: @llvm.x86.sse2.cvtps2dq
3880   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3881   return _mm_maskz_cvtps_epi32(__U,__A);
3882 }
test_mm256_mask_cvtps_epi32(__m256i __W,__mmask8 __U,__m256 __A)3883 __m256i test_mm256_mask_cvtps_epi32(__m256i __W, __mmask8 __U, __m256 __A) {
3884   // CHECK-LABEL: @test_mm256_mask_cvtps_epi32
3885   // CHECK: @llvm.x86.avx.cvt.ps2dq.256
3886   // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
3887   return _mm256_mask_cvtps_epi32(__W,__U,__A);
3888 }
test_mm256_maskz_cvtps_epi32(__mmask8 __U,__m256 __A)3889 __m256i test_mm256_maskz_cvtps_epi32(__mmask8 __U, __m256 __A) {
3890   // CHECK-LABEL: @test_mm256_maskz_cvtps_epi32
3891   // CHECK: @llvm.x86.avx.cvt.ps2dq.256
3892   // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
3893   return _mm256_maskz_cvtps_epi32(__U,__A);
3894 }
test_mm_mask_cvtps_pd(__m128d __W,__mmask8 __U,__m128 __A)3895 __m128d test_mm_mask_cvtps_pd(__m128d __W, __mmask8 __U, __m128 __A) {
3896   // CHECK-LABEL: @test_mm_mask_cvtps_pd
3897   // CHECK: fpext <2 x float> %{{.*}} to <2 x double>
3898   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3899   return _mm_mask_cvtps_pd(__W,__U,__A);
3900 }
test_mm_maskz_cvtps_pd(__mmask8 __U,__m128 __A)3901 __m128d test_mm_maskz_cvtps_pd(__mmask8 __U, __m128 __A) {
3902   // CHECK-LABEL: @test_mm_maskz_cvtps_pd
3903   // CHECK: fpext <2 x float> %{{.*}} to <2 x double>
3904   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3905   return _mm_maskz_cvtps_pd(__U,__A);
3906 }
test_mm256_mask_cvtps_pd(__m256d __W,__mmask8 __U,__m128 __A)3907 __m256d test_mm256_mask_cvtps_pd(__m256d __W, __mmask8 __U, __m128 __A) {
3908   // CHECK-LABEL: @test_mm256_mask_cvtps_pd
3909   // CHECK: fpext <4 x float> %{{.*}} to <4 x double>
3910   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3911   return _mm256_mask_cvtps_pd(__W,__U,__A);
3912 }
test_mm256_maskz_cvtps_pd(__mmask8 __U,__m128 __A)3913 __m256d test_mm256_maskz_cvtps_pd(__mmask8 __U, __m128 __A) {
3914   // CHECK-LABEL: @test_mm256_maskz_cvtps_pd
3915   // CHECK: fpext <4 x float> %{{.*}} to <4 x double>
3916   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3917   return _mm256_maskz_cvtps_pd(__U,__A);
3918 }
test_mm_cvtps_epu32(__m128 __A)3919 __m128i test_mm_cvtps_epu32(__m128 __A) {
3920   // CHECK-LABEL: @test_mm_cvtps_epu32
3921   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3922   return _mm_cvtps_epu32(__A);
3923 }
test_mm_mask_cvtps_epu32(__m128i __W,__mmask8 __U,__m128 __A)3924 __m128i test_mm_mask_cvtps_epu32(__m128i __W, __mmask8 __U, __m128 __A) {
3925   // CHECK-LABEL: @test_mm_mask_cvtps_epu32
3926   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3927   return _mm_mask_cvtps_epu32(__W,__U,__A);
3928 }
test_mm_maskz_cvtps_epu32(__mmask8 __U,__m128 __A)3929 __m128i test_mm_maskz_cvtps_epu32(__mmask8 __U, __m128 __A) {
3930   // CHECK-LABEL: @test_mm_maskz_cvtps_epu32
3931   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3932   return _mm_maskz_cvtps_epu32(__U,__A);
3933 }
test_mm256_cvtps_epu32(__m256 __A)3934 __m256i test_mm256_cvtps_epu32(__m256 __A) {
3935   // CHECK-LABEL: @test_mm256_cvtps_epu32
3936   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3937   return _mm256_cvtps_epu32(__A);
3938 }
test_mm256_mask_cvtps_epu32(__m256i __W,__mmask8 __U,__m256 __A)3939 __m256i test_mm256_mask_cvtps_epu32(__m256i __W, __mmask8 __U, __m256 __A) {
3940   // CHECK-LABEL: @test_mm256_mask_cvtps_epu32
3941   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3942   return _mm256_mask_cvtps_epu32(__W,__U,__A);
3943 }
test_mm256_maskz_cvtps_epu32(__mmask8 __U,__m256 __A)3944 __m256i test_mm256_maskz_cvtps_epu32(__mmask8 __U, __m256 __A) {
3945   // CHECK-LABEL: @test_mm256_maskz_cvtps_epu32
3946   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3947   return _mm256_maskz_cvtps_epu32(__U,__A);
3948 }
test_mm_mask_cvttpd_epi32(__m128i __W,__mmask8 __U,__m128d __A)3949 __m128i test_mm_mask_cvttpd_epi32(__m128i __W, __mmask8 __U, __m128d __A) {
3950   // CHECK-LABEL: @test_mm_mask_cvttpd_epi32
3951   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.128
3952   return _mm_mask_cvttpd_epi32(__W,__U,__A);
3953 }
test_mm_maskz_cvttpd_epi32(__mmask8 __U,__m128d __A)3954 __m128i test_mm_maskz_cvttpd_epi32(__mmask8 __U, __m128d __A) {
3955   // CHECK-LABEL: @test_mm_maskz_cvttpd_epi32
3956   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.128
3957   return _mm_maskz_cvttpd_epi32(__U,__A);
3958 }
test_mm256_mask_cvttpd_epi32(__m128i __W,__mmask8 __U,__m256d __A)3959 __m128i test_mm256_mask_cvttpd_epi32(__m128i __W, __mmask8 __U, __m256d __A) {
3960   // CHECK-LABEL: @test_mm256_mask_cvttpd_epi32
3961   // CHECK: @llvm.x86.avx.cvtt.pd2dq.256
3962   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3963   return _mm256_mask_cvttpd_epi32(__W,__U,__A);
3964 }
test_mm256_maskz_cvttpd_epi32(__mmask8 __U,__m256d __A)3965 __m128i test_mm256_maskz_cvttpd_epi32(__mmask8 __U, __m256d __A) {
3966   // CHECK-LABEL: @test_mm256_maskz_cvttpd_epi32
3967   // CHECK: @llvm.x86.avx.cvtt.pd2dq.256
3968   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3969   return _mm256_maskz_cvttpd_epi32(__U,__A);
3970 }
test_mm_cvttpd_epu32(__m128d __A)3971 __m128i test_mm_cvttpd_epu32(__m128d __A) {
3972   // CHECK-LABEL: @test_mm_cvttpd_epu32
3973   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
3974   return _mm_cvttpd_epu32(__A);
3975 }
test_mm_mask_cvttpd_epu32(__m128i __W,__mmask8 __U,__m128d __A)3976 __m128i test_mm_mask_cvttpd_epu32(__m128i __W, __mmask8 __U, __m128d __A) {
3977   // CHECK-LABEL: @test_mm_mask_cvttpd_epu32
3978   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
3979   return _mm_mask_cvttpd_epu32(__W,__U,__A);
3980 }
test_mm_maskz_cvttpd_epu32(__mmask8 __U,__m128d __A)3981 __m128i test_mm_maskz_cvttpd_epu32(__mmask8 __U, __m128d __A) {
3982   // CHECK-LABEL: @test_mm_maskz_cvttpd_epu32
3983   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
3984   return _mm_maskz_cvttpd_epu32(__U,__A);
3985 }
test_mm256_cvttpd_epu32(__m256d __A)3986 __m128i test_mm256_cvttpd_epu32(__m256d __A) {
3987   // CHECK-LABEL: @test_mm256_cvttpd_epu32
3988   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
3989   return _mm256_cvttpd_epu32(__A);
3990 }
test_mm256_mask_cvttpd_epu32(__m128i __W,__mmask8 __U,__m256d __A)3991 __m128i test_mm256_mask_cvttpd_epu32(__m128i __W, __mmask8 __U, __m256d __A) {
3992   // CHECK-LABEL: @test_mm256_mask_cvttpd_epu32
3993   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
3994   return _mm256_mask_cvttpd_epu32(__W,__U,__A);
3995 }
test_mm256_maskz_cvttpd_epu32(__mmask8 __U,__m256d __A)3996 __m128i test_mm256_maskz_cvttpd_epu32(__mmask8 __U, __m256d __A) {
3997   // CHECK-LABEL: @test_mm256_maskz_cvttpd_epu32
3998   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
3999   return _mm256_maskz_cvttpd_epu32(__U,__A);
4000 }
test_mm_mask_cvttps_epi32(__m128i __W,__mmask8 __U,__m128 __A)4001 __m128i test_mm_mask_cvttps_epi32(__m128i __W, __mmask8 __U, __m128 __A) {
4002   // CHECK-LABEL: @test_mm_mask_cvttps_epi32
4003   // CHECK: @llvm.x86.sse2.cvttps2dq
4004   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
4005   return _mm_mask_cvttps_epi32(__W,__U,__A);
4006 }
test_mm_maskz_cvttps_epi32(__mmask8 __U,__m128 __A)4007 __m128i test_mm_maskz_cvttps_epi32(__mmask8 __U, __m128 __A) {
4008   // CHECK-LABEL: @test_mm_maskz_cvttps_epi32
4009   // CHECK: @llvm.x86.sse2.cvttps2dq
4010   // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
4011   return _mm_maskz_cvttps_epi32(__U,__A);
4012 }
test_mm256_mask_cvttps_epi32(__m256i __W,__mmask8 __U,__m256 __A)4013 __m256i test_mm256_mask_cvttps_epi32(__m256i __W, __mmask8 __U, __m256 __A) {
4014   // CHECK-LABEL: @test_mm256_mask_cvttps_epi32
4015   // CHECK: @llvm.x86.avx.cvtt.ps2dq.256
4016   // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
4017   return _mm256_mask_cvttps_epi32(__W,__U,__A);
4018 }
test_mm256_maskz_cvttps_epi32(__mmask8 __U,__m256 __A)4019 __m256i test_mm256_maskz_cvttps_epi32(__mmask8 __U, __m256 __A) {
4020   // CHECK-LABEL: @test_mm256_maskz_cvttps_epi32
4021   // CHECK: @llvm.x86.avx.cvtt.ps2dq.256
4022   // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
4023   return _mm256_maskz_cvttps_epi32(__U,__A);
4024 }
test_mm_cvttps_epu32(__m128 __A)4025 __m128i test_mm_cvttps_epu32(__m128 __A) {
4026   // CHECK-LABEL: @test_mm_cvttps_epu32
4027   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
4028   return _mm_cvttps_epu32(__A);
4029 }
test_mm_mask_cvttps_epu32(__m128i __W,__mmask8 __U,__m128 __A)4030 __m128i test_mm_mask_cvttps_epu32(__m128i __W, __mmask8 __U, __m128 __A) {
4031   // CHECK-LABEL: @test_mm_mask_cvttps_epu32
4032   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
4033   return _mm_mask_cvttps_epu32(__W,__U,__A);
4034 }
test_mm_maskz_cvttps_epu32(__mmask8 __U,__m128 __A)4035 __m128i test_mm_maskz_cvttps_epu32(__mmask8 __U, __m128 __A) {
4036   // CHECK-LABEL: @test_mm_maskz_cvttps_epu32
4037   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
4038   return _mm_maskz_cvttps_epu32(__U,__A);
4039 }
test_mm256_cvttps_epu32(__m256 __A)4040 __m256i test_mm256_cvttps_epu32(__m256 __A) {
4041   // CHECK-LABEL: @test_mm256_cvttps_epu32
4042   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
4043   return _mm256_cvttps_epu32(__A);
4044 }
test_mm256_mask_cvttps_epu32(__m256i __W,__mmask8 __U,__m256 __A)4045 __m256i test_mm256_mask_cvttps_epu32(__m256i __W, __mmask8 __U, __m256 __A) {
4046   // CHECK-LABEL: @test_mm256_mask_cvttps_epu32
4047   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
4048   return _mm256_mask_cvttps_epu32(__W,__U,__A);
4049 }
test_mm256_maskz_cvttps_epu32(__mmask8 __U,__m256 __A)4050 __m256i test_mm256_maskz_cvttps_epu32(__mmask8 __U, __m256 __A) {
4051   // CHECK-LABEL: @test_mm256_maskz_cvttps_epu32
4052   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
4053   return _mm256_maskz_cvttps_epu32(__U,__A);
4054 }
test_mm_cvtepu32_pd(__m128i __A)4055 __m128d test_mm_cvtepu32_pd(__m128i __A) {
4056   // CHECK-LABEL: @test_mm_cvtepu32_pd
4057   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
4058   // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
4059   return _mm_cvtepu32_pd(__A);
4060 }
test_mm_mask_cvtepu32_pd(__m128d __W,__mmask8 __U,__m128i __A)4061 __m128d test_mm_mask_cvtepu32_pd(__m128d __W, __mmask8 __U, __m128i __A) {
4062   // CHECK-LABEL: @test_mm_mask_cvtepu32_pd
4063   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
4064   // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
4065   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
4066   return _mm_mask_cvtepu32_pd(__W,__U,__A);
4067 }
test_mm_maskz_cvtepu32_pd(__mmask8 __U,__m128i __A)4068 __m128d test_mm_maskz_cvtepu32_pd(__mmask8 __U, __m128i __A) {
4069   // CHECK-LABEL: @test_mm_maskz_cvtepu32_pd
4070   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
4071   // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
4072   // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
4073   return _mm_maskz_cvtepu32_pd(__U,__A);
4074 }
test_mm256_cvtepu32_pd(__m128i __A)4075 __m256d test_mm256_cvtepu32_pd(__m128i __A) {
4076   // CHECK-LABEL: @test_mm256_cvtepu32_pd
4077   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4078   return _mm256_cvtepu32_pd(__A);
4079 }
test_mm256_mask_cvtepu32_pd(__m256d __W,__mmask8 __U,__m128i __A)4080 __m256d test_mm256_mask_cvtepu32_pd(__m256d __W, __mmask8 __U, __m128i __A) {
4081   // CHECK-LABEL: @test_mm256_mask_cvtepu32_pd
4082   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4083   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
4084   return _mm256_mask_cvtepu32_pd(__W,__U,__A);
4085 }
test_mm256_maskz_cvtepu32_pd(__mmask8 __U,__m128i __A)4086 __m256d test_mm256_maskz_cvtepu32_pd(__mmask8 __U, __m128i __A) {
4087   // CHECK-LABEL: @test_mm256_maskz_cvtepu32_pd
4088   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4089   // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
4090   return _mm256_maskz_cvtepu32_pd(__U,__A);
4091 }
test_mm_cvtepu32_ps(__m128i __A)4092 __m128 test_mm_cvtepu32_ps(__m128i __A) {
4093   // CHECK-LABEL: @test_mm_cvtepu32_ps
4094   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4095   return _mm_cvtepu32_ps(__A);
4096 }
test_mm_mask_cvtepu32_ps(__m128 __W,__mmask8 __U,__m128i __A)4097 __m128 test_mm_mask_cvtepu32_ps(__m128 __W, __mmask8 __U, __m128i __A) {
4098   // CHECK-LABEL: @test_mm_mask_cvtepu32_ps
4099   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4100   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4101   return _mm_mask_cvtepu32_ps(__W,__U,__A);
4102 }
test_mm_maskz_cvtepu32_ps(__mmask8 __U,__m128i __A)4103 __m128 test_mm_maskz_cvtepu32_ps(__mmask8 __U, __m128i __A) {
4104   // CHECK-LABEL: @test_mm_maskz_cvtepu32_ps
4105   // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4106   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4107   return _mm_maskz_cvtepu32_ps(__U,__A);
4108 }
test_mm256_cvtepu32_ps(__m256i __A)4109 __m256 test_mm256_cvtepu32_ps(__m256i __A) {
4110   // CHECK-LABEL: @test_mm256_cvtepu32_ps
4111   // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4112   return _mm256_cvtepu32_ps(__A);
4113 }
test_mm256_mask_cvtepu32_ps(__m256 __W,__mmask8 __U,__m256i __A)4114 __m256 test_mm256_mask_cvtepu32_ps(__m256 __W, __mmask8 __U, __m256i __A) {
4115   // CHECK-LABEL: @test_mm256_mask_cvtepu32_ps
4116   // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4117   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4118   return _mm256_mask_cvtepu32_ps(__W,__U,__A);
4119 }
test_mm256_maskz_cvtepu32_ps(__mmask8 __U,__m256i __A)4120 __m256 test_mm256_maskz_cvtepu32_ps(__mmask8 __U, __m256i __A) {
4121   // CHECK-LABEL: @test_mm256_maskz_cvtepu32_ps
4122   // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4123   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4124   return _mm256_maskz_cvtepu32_ps(__U,__A);
4125 }
test_mm_mask_div_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4126 __m128d test_mm_mask_div_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4127   // CHECK-LABEL: @test_mm_mask_div_pd
4128   // CHECK: fdiv <2 x double> %{{.*}}, %{{.*}}
4129   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4130   return _mm_mask_div_pd(__W,__U,__A,__B);
4131 }
test_mm_maskz_div_pd(__mmask8 __U,__m128d __A,__m128d __B)4132 __m128d test_mm_maskz_div_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4133   // CHECK-LABEL: @test_mm_maskz_div_pd
4134   // CHECK: fdiv <2 x double> %{{.*}}, %{{.*}}
4135   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4136   return _mm_maskz_div_pd(__U,__A,__B);
4137 }
test_mm256_mask_div_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4138 __m256d test_mm256_mask_div_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4139   // CHECK-LABEL: @test_mm256_mask_div_pd
4140   // CHECK: fdiv <4 x double> %{{.*}}, %{{.*}}
4141   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4142   return _mm256_mask_div_pd(__W,__U,__A,__B);
4143 }
test_mm256_maskz_div_pd(__mmask8 __U,__m256d __A,__m256d __B)4144 __m256d test_mm256_maskz_div_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4145   // CHECK-LABEL: @test_mm256_maskz_div_pd
4146   // CHECK: fdiv <4 x double> %{{.*}}, %{{.*}}
4147   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4148   return _mm256_maskz_div_pd(__U,__A,__B);
4149 }
test_mm_mask_div_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4150 __m128 test_mm_mask_div_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4151   // CHECK-LABEL: @test_mm_mask_div_ps
4152   // CHECK: fdiv <4 x float> %{{.*}}, %{{.*}}
4153   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4154   return _mm_mask_div_ps(__W,__U,__A,__B);
4155 }
test_mm_maskz_div_ps(__mmask8 __U,__m128 __A,__m128 __B)4156 __m128 test_mm_maskz_div_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4157   // CHECK-LABEL: @test_mm_maskz_div_ps
4158   // CHECK: fdiv <4 x float> %{{.*}}, %{{.*}}
4159   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4160   return _mm_maskz_div_ps(__U,__A,__B);
4161 }
test_mm256_mask_div_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4162 __m256 test_mm256_mask_div_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4163   // CHECK-LABEL: @test_mm256_mask_div_ps
4164   // CHECK: fdiv <8 x float> %{{.*}}, %{{.*}}
4165   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4166   return _mm256_mask_div_ps(__W,__U,__A,__B);
4167 }
test_mm256_maskz_div_ps(__mmask8 __U,__m256 __A,__m256 __B)4168 __m256 test_mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4169   // CHECK-LABEL: @test_mm256_maskz_div_ps
4170   // CHECK: fdiv <8 x float> %{{.*}}, %{{.*}}
4171   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4172   return _mm256_maskz_div_ps(__U,__A,__B);
4173 }
test_mm_mask_expand_pd(__m128d __W,__mmask8 __U,__m128d __A)4174 __m128d test_mm_mask_expand_pd(__m128d __W, __mmask8 __U, __m128d __A) {
4175   // CHECK-LABEL: @test_mm_mask_expand_pd
4176   // CHECK: @llvm.x86.avx512.mask.expand
4177   return _mm_mask_expand_pd(__W,__U,__A);
4178 }
test_mm_maskz_expand_pd(__mmask8 __U,__m128d __A)4179 __m128d test_mm_maskz_expand_pd(__mmask8 __U, __m128d __A) {
4180   // CHECK-LABEL: @test_mm_maskz_expand_pd
4181   // CHECK: @llvm.x86.avx512.mask.expand
4182   return _mm_maskz_expand_pd(__U,__A);
4183 }
test_mm256_mask_expand_pd(__m256d __W,__mmask8 __U,__m256d __A)4184 __m256d test_mm256_mask_expand_pd(__m256d __W, __mmask8 __U, __m256d __A) {
4185   // CHECK-LABEL: @test_mm256_mask_expand_pd
4186   // CHECK: @llvm.x86.avx512.mask.expand
4187   return _mm256_mask_expand_pd(__W,__U,__A);
4188 }
test_mm256_maskz_expand_pd(__mmask8 __U,__m256d __A)4189 __m256d test_mm256_maskz_expand_pd(__mmask8 __U, __m256d __A) {
4190   // CHECK-LABEL: @test_mm256_maskz_expand_pd
4191   // CHECK: @llvm.x86.avx512.mask.expand
4192   return _mm256_maskz_expand_pd(__U,__A);
4193 }
test_mm_mask_expand_epi64(__m128i __W,__mmask8 __U,__m128i __A)4194 __m128i test_mm_mask_expand_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
4195   // CHECK-LABEL: @test_mm_mask_expand_epi64
4196   // CHECK: @llvm.x86.avx512.mask.expand
4197   return _mm_mask_expand_epi64(__W,__U,__A);
4198 }
test_mm_maskz_expand_epi64(__mmask8 __U,__m128i __A)4199 __m128i test_mm_maskz_expand_epi64(__mmask8 __U, __m128i __A) {
4200   // CHECK-LABEL: @test_mm_maskz_expand_epi64
4201   // CHECK: @llvm.x86.avx512.mask.expand
4202   return _mm_maskz_expand_epi64(__U,__A);
4203 }
test_mm256_mask_expand_epi64(__m256i __W,__mmask8 __U,__m256i __A)4204 __m256i test_mm256_mask_expand_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
4205   // CHECK-LABEL: @test_mm256_mask_expand_epi64
4206   // CHECK: @llvm.x86.avx512.mask.expand
4207   return _mm256_mask_expand_epi64(__W,__U,__A);
4208 }
test_mm256_maskz_expand_epi64(__mmask8 __U,__m256i __A)4209 __m256i test_mm256_maskz_expand_epi64(__mmask8 __U, __m256i __A) {
4210   // CHECK-LABEL: @test_mm256_maskz_expand_epi64
4211   // CHECK: @llvm.x86.avx512.mask.expand
4212   return _mm256_maskz_expand_epi64(__U,__A);
4213 }
test_mm_mask_expandloadu_pd(__m128d __W,__mmask8 __U,void const * __P)4214 __m128d test_mm_mask_expandloadu_pd(__m128d __W, __mmask8 __U, void const *__P) {
4215   // CHECK-LABEL: @test_mm_mask_expandloadu_pd
4216   // CHECK: @llvm.masked.expandload.v2f64(double* %{{.*}}, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
4217   return _mm_mask_expandloadu_pd(__W,__U,__P);
4218 }
test_mm_maskz_expandloadu_pd(__mmask8 __U,void const * __P)4219 __m128d test_mm_maskz_expandloadu_pd(__mmask8 __U, void const *__P) {
4220   // CHECK-LABEL: @test_mm_maskz_expandloadu_pd
4221   // CHECK: @llvm.masked.expandload.v2f64(double* %{{.*}}, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
4222   return _mm_maskz_expandloadu_pd(__U,__P);
4223 }
test_mm256_mask_expandloadu_pd(__m256d __W,__mmask8 __U,void const * __P)4224 __m256d test_mm256_mask_expandloadu_pd(__m256d __W, __mmask8 __U, void const *__P) {
4225   // CHECK-LABEL: @test_mm256_mask_expandloadu_pd
4226   // CHECK: @llvm.masked.expandload.v4f64(double* %{{.*}}, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
4227   return _mm256_mask_expandloadu_pd(__W,__U,__P);
4228 }
test_mm256_maskz_expandloadu_pd(__mmask8 __U,void const * __P)4229 __m256d test_mm256_maskz_expandloadu_pd(__mmask8 __U, void const *__P) {
4230   // CHECK-LABEL: @test_mm256_maskz_expandloadu_pd
4231   // CHECK: @llvm.masked.expandload.v4f64(double* %{{.*}}, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
4232   return _mm256_maskz_expandloadu_pd(__U,__P);
4233 }
test_mm_mask_expandloadu_epi64(__m128i __W,__mmask8 __U,void const * __P)4234 __m128i test_mm_mask_expandloadu_epi64(__m128i __W, __mmask8 __U, void const *__P) {
4235   // CHECK-LABEL: @test_mm_mask_expandloadu_epi64
4236   // CHECK: @llvm.masked.expandload.v2i64(i64* %{{.*}}, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
4237   return _mm_mask_expandloadu_epi64(__W,__U,__P);
4238 }
test_mm_maskz_expandloadu_epi64(__mmask8 __U,void const * __P)4239 __m128i test_mm_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) {
4240   // CHECK-LABEL: @test_mm_maskz_expandloadu_epi64
4241   // CHECK: @llvm.masked.expandload.v2i64(i64* %{{.*}}, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
4242   return _mm_maskz_expandloadu_epi64(__U,__P);
4243 }
test_mm256_mask_expandloadu_epi64(__m256i __W,__mmask8 __U,void const * __P)4244 __m256i test_mm256_mask_expandloadu_epi64(__m256i __W, __mmask8 __U,   void const *__P) {
4245   // CHECK-LABEL: @test_mm256_mask_expandloadu_epi64
4246   // CHECK: @llvm.masked.expandload.v4i64(i64* %{{.*}}, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
4247   return _mm256_mask_expandloadu_epi64(__W,__U,__P);
4248 }
test_mm256_maskz_expandloadu_epi64(__mmask8 __U,void const * __P)4249 __m256i test_mm256_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) {
4250   // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi64
4251   // CHECK: @llvm.masked.expandload.v4i64(i64* %{{.*}}, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
4252   return _mm256_maskz_expandloadu_epi64(__U,__P);
4253 }
test_mm_mask_expandloadu_ps(__m128 __W,__mmask8 __U,void const * __P)4254 __m128 test_mm_mask_expandloadu_ps(__m128 __W, __mmask8 __U, void const *__P) {
4255   // CHECK-LABEL: @test_mm_mask_expandloadu_ps
4256   // CHECK: @llvm.masked.expandload.v4f32(float* %{{.*}}, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
4257   return _mm_mask_expandloadu_ps(__W,__U,__P);
4258 }
test_mm_maskz_expandloadu_ps(__mmask8 __U,void const * __P)4259 __m128 test_mm_maskz_expandloadu_ps(__mmask8 __U, void const *__P) {
4260   // CHECK-LABEL: @test_mm_maskz_expandloadu_ps
4261   // CHECK: @llvm.masked.expandload.v4f32(float* %{{.*}}, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
4262   return _mm_maskz_expandloadu_ps(__U,__P);
4263 }
test_mm256_mask_expandloadu_ps(__m256 __W,__mmask8 __U,void const * __P)4264 __m256 test_mm256_mask_expandloadu_ps(__m256 __W, __mmask8 __U, void const *__P) {
4265   // CHECK-LABEL: @test_mm256_mask_expandloadu_ps
4266   // CHECK: @llvm.masked.expandload.v8f32(float* %{{.*}}, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
4267   return _mm256_mask_expandloadu_ps(__W,__U,__P);
4268 }
test_mm256_maskz_expandloadu_ps(__mmask8 __U,void const * __P)4269 __m256 test_mm256_maskz_expandloadu_ps(__mmask8 __U, void const *__P) {
4270   // CHECK-LABEL: @test_mm256_maskz_expandloadu_ps
4271   // CHECK: @llvm.masked.expandload.v8f32(float* %{{.*}}, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
4272   return _mm256_maskz_expandloadu_ps(__U,__P);
4273 }
test_mm_mask_expandloadu_epi32(__m128i __W,__mmask8 __U,void const * __P)4274 __m128i test_mm_mask_expandloadu_epi32(__m128i __W, __mmask8 __U, void const *__P) {
4275   // CHECK-LABEL: @test_mm_mask_expandloadu_epi32
4276   // CHECK: @llvm.masked.expandload.v4i32(i32* %{{.*}}, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
4277   return _mm_mask_expandloadu_epi32(__W,__U,__P);
4278 }
test_mm_maskz_expandloadu_epi32(__mmask8 __U,void const * __P)4279 __m128i test_mm_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) {
4280   // CHECK-LABEL: @test_mm_maskz_expandloadu_epi32
4281   // CHECK: @llvm.masked.expandload.v4i32(i32* %{{.*}}, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
4282   return _mm_maskz_expandloadu_epi32(__U,__P);
4283 }
test_mm256_mask_expandloadu_epi32(__m256i __W,__mmask8 __U,void const * __P)4284 __m256i test_mm256_mask_expandloadu_epi32(__m256i __W, __mmask8 __U,   void const *__P) {
4285   // CHECK-LABEL: @test_mm256_mask_expandloadu_epi32
4286   // CHECK: @llvm.masked.expandload.v8i32(i32* %{{.*}}, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
4287   return _mm256_mask_expandloadu_epi32(__W,__U,__P);
4288 }
test_mm256_maskz_expandloadu_epi32(__mmask8 __U,void const * __P)4289 __m256i test_mm256_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) {
4290   // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi32
4291   // CHECK: @llvm.masked.expandload.v8i32(i32* %{{.*}}, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
4292   return _mm256_maskz_expandloadu_epi32(__U,__P);
4293 }
test_mm_mask_expand_ps(__m128 __W,__mmask8 __U,__m128 __A)4294 __m128 test_mm_mask_expand_ps(__m128 __W, __mmask8 __U, __m128 __A) {
4295   // CHECK-LABEL: @test_mm_mask_expand_ps
4296   // CHECK: @llvm.x86.avx512.mask.expand
4297   return _mm_mask_expand_ps(__W,__U,__A);
4298 }
test_mm_maskz_expand_ps(__mmask8 __U,__m128 __A)4299 __m128 test_mm_maskz_expand_ps(__mmask8 __U, __m128 __A) {
4300   // CHECK-LABEL: @test_mm_maskz_expand_ps
4301   // CHECK: @llvm.x86.avx512.mask.expand
4302   return _mm_maskz_expand_ps(__U,__A);
4303 }
test_mm256_mask_expand_ps(__m256 __W,__mmask8 __U,__m256 __A)4304 __m256 test_mm256_mask_expand_ps(__m256 __W, __mmask8 __U, __m256 __A) {
4305   // CHECK-LABEL: @test_mm256_mask_expand_ps
4306   // CHECK: @llvm.x86.avx512.mask.expand
4307   return _mm256_mask_expand_ps(__W,__U,__A);
4308 }
test_mm256_maskz_expand_ps(__mmask8 __U,__m256 __A)4309 __m256 test_mm256_maskz_expand_ps(__mmask8 __U, __m256 __A) {
4310   // CHECK-LABEL: @test_mm256_maskz_expand_ps
4311   // CHECK: @llvm.x86.avx512.mask.expand
4312   return _mm256_maskz_expand_ps(__U,__A);
4313 }
test_mm_mask_expand_epi32(__m128i __W,__mmask8 __U,__m128i __A)4314 __m128i test_mm_mask_expand_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
4315   // CHECK-LABEL: @test_mm_mask_expand_epi32
4316   // CHECK: @llvm.x86.avx512.mask.expand
4317   return _mm_mask_expand_epi32(__W,__U,__A);
4318 }
test_mm_maskz_expand_epi32(__mmask8 __U,__m128i __A)4319 __m128i test_mm_maskz_expand_epi32(__mmask8 __U, __m128i __A) {
4320   // CHECK-LABEL: @test_mm_maskz_expand_epi32
4321   // CHECK: @llvm.x86.avx512.mask.expand
4322   return _mm_maskz_expand_epi32(__U,__A);
4323 }
test_mm256_mask_expand_epi32(__m256i __W,__mmask8 __U,__m256i __A)4324 __m256i test_mm256_mask_expand_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
4325   // CHECK-LABEL: @test_mm256_mask_expand_epi32
4326   // CHECK: @llvm.x86.avx512.mask.expand
4327   return _mm256_mask_expand_epi32(__W,__U,__A);
4328 }
test_mm256_maskz_expand_epi32(__mmask8 __U,__m256i __A)4329 __m256i test_mm256_maskz_expand_epi32(__mmask8 __U, __m256i __A) {
4330   // CHECK-LABEL: @test_mm256_maskz_expand_epi32
4331   // CHECK: @llvm.x86.avx512.mask.expand
4332   return _mm256_maskz_expand_epi32(__U,__A);
4333 }
test_mm_getexp_pd(__m128d __A)4334 __m128d test_mm_getexp_pd(__m128d __A) {
4335   // CHECK-LABEL: @test_mm_getexp_pd
4336   // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4337   return _mm_getexp_pd(__A);
4338 }
test_mm_mask_getexp_pd(__m128d __W,__mmask8 __U,__m128d __A)4339 __m128d test_mm_mask_getexp_pd(__m128d __W, __mmask8 __U, __m128d __A) {
4340   // CHECK-LABEL: @test_mm_mask_getexp_pd
4341   // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4342   return _mm_mask_getexp_pd(__W,__U,__A);
4343 }
test_mm_maskz_getexp_pd(__mmask8 __U,__m128d __A)4344 __m128d test_mm_maskz_getexp_pd(__mmask8 __U, __m128d __A) {
4345   // CHECK-LABEL: @test_mm_maskz_getexp_pd
4346   // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4347   return _mm_maskz_getexp_pd(__U,__A);
4348 }
test_mm256_getexp_pd(__m256d __A)4349 __m256d test_mm256_getexp_pd(__m256d __A) {
4350   // CHECK-LABEL: @test_mm256_getexp_pd
4351   // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4352   return _mm256_getexp_pd(__A);
4353 }
test_mm256_mask_getexp_pd(__m256d __W,__mmask8 __U,__m256d __A)4354 __m256d test_mm256_mask_getexp_pd(__m256d __W, __mmask8 __U, __m256d __A) {
4355   // CHECK-LABEL: @test_mm256_mask_getexp_pd
4356   // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4357   return _mm256_mask_getexp_pd(__W,__U,__A);
4358 }
test_mm256_maskz_getexp_pd(__mmask8 __U,__m256d __A)4359 __m256d test_mm256_maskz_getexp_pd(__mmask8 __U, __m256d __A) {
4360   // CHECK-LABEL: @test_mm256_maskz_getexp_pd
4361   // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4362   return _mm256_maskz_getexp_pd(__U,__A);
4363 }
test_mm_getexp_ps(__m128 __A)4364 __m128 test_mm_getexp_ps(__m128 __A) {
4365   // CHECK-LABEL: @test_mm_getexp_ps
4366   // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4367   return _mm_getexp_ps(__A);
4368 }
test_mm_mask_getexp_ps(__m128 __W,__mmask8 __U,__m128 __A)4369 __m128 test_mm_mask_getexp_ps(__m128 __W, __mmask8 __U, __m128 __A) {
4370   // CHECK-LABEL: @test_mm_mask_getexp_ps
4371   // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4372   return _mm_mask_getexp_ps(__W,__U,__A);
4373 }
test_mm_maskz_getexp_ps(__mmask8 __U,__m128 __A)4374 __m128 test_mm_maskz_getexp_ps(__mmask8 __U, __m128 __A) {
4375   // CHECK-LABEL: @test_mm_maskz_getexp_ps
4376   // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4377   return _mm_maskz_getexp_ps(__U,__A);
4378 }
test_mm256_getexp_ps(__m256 __A)4379 __m256 test_mm256_getexp_ps(__m256 __A) {
4380   // CHECK-LABEL: @test_mm256_getexp_ps
4381   // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4382   return _mm256_getexp_ps(__A);
4383 }
test_mm256_mask_getexp_ps(__m256 __W,__mmask8 __U,__m256 __A)4384 __m256 test_mm256_mask_getexp_ps(__m256 __W, __mmask8 __U, __m256 __A) {
4385   // CHECK-LABEL: @test_mm256_mask_getexp_ps
4386   // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4387   return _mm256_mask_getexp_ps(__W,__U,__A);
4388 }
test_mm256_maskz_getexp_ps(__mmask8 __U,__m256 __A)4389 __m256 test_mm256_maskz_getexp_ps(__mmask8 __U, __m256 __A) {
4390   // CHECK-LABEL: @test_mm256_maskz_getexp_ps
4391   // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4392   return _mm256_maskz_getexp_ps(__U,__A);
4393 }
test_mm_mask_max_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4394 __m128d test_mm_mask_max_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4395   // CHECK-LABEL: @test_mm_mask_max_pd
4396   // CHECK: @llvm.x86.sse2.max.pd
4397   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4398   return _mm_mask_max_pd(__W,__U,__A,__B);
4399 }
test_mm_maskz_max_pd(__mmask8 __U,__m128d __A,__m128d __B)4400 __m128d test_mm_maskz_max_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4401   // CHECK-LABEL: @test_mm_maskz_max_pd
4402   // CHECK: @llvm.x86.sse2.max.pd
4403   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4404   return _mm_maskz_max_pd(__U,__A,__B);
4405 }
test_mm256_mask_max_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4406 __m256d test_mm256_mask_max_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4407   // CHECK-LABEL: @test_mm256_mask_max_pd
4408   // CHECK: @llvm.x86.avx.max.pd.256
4409   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4410   return _mm256_mask_max_pd(__W,__U,__A,__B);
4411 }
test_mm256_maskz_max_pd(__mmask8 __U,__m256d __A,__m256d __B)4412 __m256d test_mm256_maskz_max_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4413   // CHECK-LABEL: @test_mm256_maskz_max_pd
4414   // CHECK: @llvm.x86.avx.max.pd.256
4415   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4416   return _mm256_maskz_max_pd(__U,__A,__B);
4417 }
test_mm_mask_max_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4418 __m128 test_mm_mask_max_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4419   // CHECK-LABEL: @test_mm_mask_max_ps
4420   // CHECK: @llvm.x86.sse.max.ps
4421   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4422   return _mm_mask_max_ps(__W,__U,__A,__B);
4423 }
test_mm_maskz_max_ps(__mmask8 __U,__m128 __A,__m128 __B)4424 __m128 test_mm_maskz_max_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4425   // CHECK-LABEL: @test_mm_maskz_max_ps
4426   // CHECK: @llvm.x86.sse.max.ps
4427   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4428   return _mm_maskz_max_ps(__U,__A,__B);
4429 }
test_mm256_mask_max_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4430 __m256 test_mm256_mask_max_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4431   // CHECK-LABEL: @test_mm256_mask_max_ps
4432   // CHECK: @llvm.x86.avx.max.ps.256
4433   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4434   return _mm256_mask_max_ps(__W,__U,__A,__B);
4435 }
test_mm256_maskz_max_ps(__mmask8 __U,__m256 __A,__m256 __B)4436 __m256 test_mm256_maskz_max_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4437   // CHECK-LABEL: @test_mm256_maskz_max_ps
4438   // CHECK: @llvm.x86.avx.max.ps.256
4439   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4440   return _mm256_maskz_max_ps(__U,__A,__B);
4441 }
test_mm_mask_min_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4442 __m128d test_mm_mask_min_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4443   // CHECK-LABEL: @test_mm_mask_min_pd
4444   // CHECK: @llvm.x86.sse2.min.pd
4445   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4446   return _mm_mask_min_pd(__W,__U,__A,__B);
4447 }
test_mm_maskz_min_pd(__mmask8 __U,__m128d __A,__m128d __B)4448 __m128d test_mm_maskz_min_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4449   // CHECK-LABEL: @test_mm_maskz_min_pd
4450   // CHECK: @llvm.x86.sse2.min.pd
4451   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4452   return _mm_maskz_min_pd(__U,__A,__B);
4453 }
test_mm256_mask_min_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4454 __m256d test_mm256_mask_min_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4455   // CHECK-LABEL: @test_mm256_mask_min_pd
4456   // CHECK: @llvm.x86.avx.min.pd.256
4457   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4458   return _mm256_mask_min_pd(__W,__U,__A,__B);
4459 }
test_mm256_maskz_min_pd(__mmask8 __U,__m256d __A,__m256d __B)4460 __m256d test_mm256_maskz_min_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4461   // CHECK-LABEL: @test_mm256_maskz_min_pd
4462   // CHECK: @llvm.x86.avx.min.pd.256
4463   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4464   return _mm256_maskz_min_pd(__U,__A,__B);
4465 }
test_mm_mask_min_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4466 __m128 test_mm_mask_min_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4467   // CHECK-LABEL: @test_mm_mask_min_ps
4468   // CHECK: @llvm.x86.sse.min.ps
4469   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4470   return _mm_mask_min_ps(__W,__U,__A,__B);
4471 }
test_mm_maskz_min_ps(__mmask8 __U,__m128 __A,__m128 __B)4472 __m128 test_mm_maskz_min_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4473   // CHECK-LABEL: @test_mm_maskz_min_ps
4474   // CHECK: @llvm.x86.sse.min.ps
4475   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4476   return _mm_maskz_min_ps(__U,__A,__B);
4477 }
test_mm256_mask_min_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4478 __m256 test_mm256_mask_min_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4479   // CHECK-LABEL: @test_mm256_mask_min_ps
4480   // CHECK: @llvm.x86.avx.min.ps.256
4481   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4482   return _mm256_mask_min_ps(__W,__U,__A,__B);
4483 }
test_mm256_maskz_min_ps(__mmask8 __U,__m256 __A,__m256 __B)4484 __m256 test_mm256_maskz_min_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4485   // CHECK-LABEL: @test_mm256_maskz_min_ps
4486   // CHECK: @llvm.x86.avx.min.ps.256
4487   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4488   return _mm256_maskz_min_ps(__U,__A,__B);
4489 }
test_mm_mask_mul_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4490 __m128d test_mm_mask_mul_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4491   // CHECK-LABEL: @test_mm_mask_mul_pd
4492   // CHECK: fmul <2 x double> %{{.*}}, %{{.*}}
4493   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4494   return _mm_mask_mul_pd(__W,__U,__A,__B);
4495 }
test_mm_maskz_mul_pd(__mmask8 __U,__m128d __A,__m128d __B)4496 __m128d test_mm_maskz_mul_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4497   // CHECK-LABEL: @test_mm_maskz_mul_pd
4498   // CHECK: fmul <2 x double> %{{.*}}, %{{.*}}
4499   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4500   return _mm_maskz_mul_pd(__U,__A,__B);
4501 }
test_mm256_mask_mul_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4502 __m256d test_mm256_mask_mul_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4503   // CHECK-LABEL: @test_mm256_mask_mul_pd
4504   // CHECK: fmul <4 x double> %{{.*}}, %{{.*}}
4505   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4506   return _mm256_mask_mul_pd(__W,__U,__A,__B);
4507 }
test_mm256_maskz_mul_pd(__mmask8 __U,__m256d __A,__m256d __B)4508 __m256d test_mm256_maskz_mul_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4509   // CHECK-LABEL: @test_mm256_maskz_mul_pd
4510   // CHECK: fmul <4 x double> %{{.*}}, %{{.*}}
4511   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4512   return _mm256_maskz_mul_pd(__U,__A,__B);
4513 }
test_mm_mask_mul_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4514 __m128 test_mm_mask_mul_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4515   // CHECK-LABEL: @test_mm_mask_mul_ps
4516   // CHECK: fmul <4 x float> %{{.*}}, %{{.*}}
4517   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4518   return _mm_mask_mul_ps(__W,__U,__A,__B);
4519 }
test_mm_maskz_mul_ps(__mmask8 __U,__m128 __A,__m128 __B)4520 __m128 test_mm_maskz_mul_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4521   // CHECK-LABEL: @test_mm_maskz_mul_ps
4522   // CHECK: fmul <4 x float> %{{.*}}, %{{.*}}
4523   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4524   return _mm_maskz_mul_ps(__U,__A,__B);
4525 }
test_mm256_mask_mul_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4526 __m256 test_mm256_mask_mul_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4527   // CHECK-LABEL: @test_mm256_mask_mul_ps
4528   // CHECK: fmul <8 x float> %{{.*}}, %{{.*}}
4529   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4530   return _mm256_mask_mul_ps(__W,__U,__A,__B);
4531 }
test_mm256_maskz_mul_ps(__mmask8 __U,__m256 __A,__m256 __B)4532 __m256 test_mm256_maskz_mul_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4533   // CHECK-LABEL: @test_mm256_maskz_mul_ps
4534   // CHECK: fmul <8 x float> %{{.*}}, %{{.*}}
4535   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4536   return _mm256_maskz_mul_ps(__U,__A,__B);
4537 }
test_mm_mask_abs_epi32(__m128i __W,__mmask8 __U,__m128i __A)4538 __m128i test_mm_mask_abs_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
4539   // CHECK-LABEL: @test_mm_mask_abs_epi32
4540   // CHECK: [[SUB:%.*]] = sub <4 x i32> zeroinitializer, [[A:%.*]]
4541   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i32> [[A]], zeroinitializer
4542   // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[A]], <4 x i32> [[SUB]]
4543   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[SEL]] to <2 x i64>
4544   // CHECK: [[SEL:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4545   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> [[SEL]], <4 x i32> %{{.*}}
4546   return _mm_mask_abs_epi32(__W,__U,__A);
4547 }
test_mm_maskz_abs_epi32(__mmask8 __U,__m128i __A)4548 __m128i test_mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) {
4549   // CHECK-LABEL: @test_mm_maskz_abs_epi32
4550   // CHECK: [[SUB:%.*]] = sub <4 x i32> zeroinitializer, [[A:%.*]]
4551   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i32> [[A]], zeroinitializer
4552   // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[A]], <4 x i32> [[SUB]]
4553   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[SEL]] to <2 x i64>
4554   // CHECK: [[SEL:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4555   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> [[SEL]], <4 x i32> %{{.*}}
4556   return _mm_maskz_abs_epi32(__U,__A);
4557 }
test_mm256_mask_abs_epi32(__m256i __W,__mmask8 __U,__m256i __A)4558 __m256i test_mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
4559   // CHECK-LABEL: @test_mm256_mask_abs_epi32
4560   // CHECK: [[SUB:%.*]] = sub <8 x i32> zeroinitializer, [[A:%.*]]
4561   // CHECK: [[CMP:%.*]] = icmp sgt <8 x i32> [[A]], zeroinitializer
4562   // CHECK: [[SEL:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[A]], <8 x i32> [[SUB]]
4563   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[SEL]] to <4 x i64>
4564   // CHECK: [[SEL:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4565   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> [[SEL]], <8 x i32> %{{.*}}
4566   return _mm256_mask_abs_epi32(__W,__U,__A);
4567 }
test_mm256_maskz_abs_epi32(__mmask8 __U,__m256i __A)4568 __m256i test_mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) {
4569   // CHECK-LABEL: @test_mm256_maskz_abs_epi32
4570   // CHECK: [[SUB:%.*]] = sub <8 x i32> zeroinitializer, [[A:%.*]]
4571   // CHECK: [[CMP:%.*]] = icmp sgt <8 x i32> [[A]], zeroinitializer
4572   // CHECK: [[SEL:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[A]], <8 x i32> [[SUB]]
4573   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[SEL]] to <4 x i64>
4574   // CHECK: [[SEL:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4575   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> [[SEL]], <8 x i32> %{{.*}}
4576   return _mm256_maskz_abs_epi32(__U,__A);
4577 }
test_mm_abs_epi64(__m128i __A)4578 __m128i test_mm_abs_epi64(__m128i __A) {
4579   // CHECK-LABEL: @test_mm_abs_epi64
4580   // CHECK: [[SUB:%.*]] = sub <2 x i64> zeroinitializer, [[A:%.*]]
4581   // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[A]], zeroinitializer
4582   // CHECK: select <2 x i1> [[CMP]], <2 x i64> [[A]], <2 x i64> [[SUB]]
4583 
4584   return _mm_abs_epi64(__A);
4585 }
test_mm_mask_abs_epi64(__m128i __W,__mmask8 __U,__m128i __A)4586 __m128i test_mm_mask_abs_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
4587   // CHECK-LABEL: @test_mm_mask_abs_epi64
4588   // CHECK: [[SUB:%.*]] = sub <2 x i64> zeroinitializer, [[A:%.*]]
4589   // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[A]], zeroinitializer
4590   // CHECK: [[SEL:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[A]], <2 x i64> [[SUB]]
4591   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> [[SEL]], <2 x i64> %{{.*}}
4592 
4593   return _mm_mask_abs_epi64(__W,__U,__A);
4594 }
test_mm_maskz_abs_epi64(__mmask8 __U,__m128i __A)4595 __m128i test_mm_maskz_abs_epi64(__mmask8 __U, __m128i __A) {
4596   // CHECK-LABEL: @test_mm_maskz_abs_epi64
4597   // CHECK: [[SUB:%.*]] = sub <2 x i64> zeroinitializer, [[A:%.*]]
4598   // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[A]], zeroinitializer
4599   // CHECK: [[SEL:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[A]], <2 x i64> [[SUB]]
4600   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> [[SEL]], <2 x i64> %{{.*}}
4601   return _mm_maskz_abs_epi64(__U,__A);
4602 }
test_mm256_abs_epi64(__m256i __A)4603 __m256i test_mm256_abs_epi64(__m256i __A) {
4604   // CHECK-LABEL: @test_mm256_abs_epi64
4605   // CHECK: [[SUB:%.*]] = sub <4 x i64> zeroinitializer, [[A:%.*]]
4606   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[A]], zeroinitializer
4607   // CHECK: select <4 x i1> [[CMP]], <4 x i64> [[A]], <4 x i64> [[SUB]]
4608   return _mm256_abs_epi64(__A);
4609 }
test_mm256_mask_abs_epi64(__m256i __W,__mmask8 __U,__m256i __A)4610 __m256i test_mm256_mask_abs_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
4611   // CHECK-LABEL: @test_mm256_mask_abs_epi64
4612   // CHECK: [[SUB:%.*]] = sub <4 x i64> zeroinitializer, [[A:%.*]]
4613   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[A]], zeroinitializer
4614   // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[A]], <4 x i64> [[SUB]]
4615   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> [[SEL]], <4 x i64> %{{.*}}
4616   return _mm256_mask_abs_epi64(__W,__U,__A);
4617 }
test_mm256_maskz_abs_epi64(__mmask8 __U,__m256i __A)4618 __m256i test_mm256_maskz_abs_epi64(__mmask8 __U, __m256i __A) {
4619   // CHECK-LABEL: @test_mm256_maskz_abs_epi64
4620   // CHECK: [[SUB:%.*]] = sub <4 x i64> zeroinitializer, [[A:%.*]]
4621   // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[A]], zeroinitializer
4622   // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[A]], <4 x i64> [[SUB]]
4623   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> [[SEL]], <4 x i64> %{{.*}}
4624   return _mm256_maskz_abs_epi64(__U,__A);
4625 }
test_mm_maskz_max_epi32(__mmask8 __M,__m128i __A,__m128i __B)4626 __m128i test_mm_maskz_max_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
4627   // CHECK-LABEL: @test_mm_maskz_max_epi32
4628   // CHECK:       [[CMP:%.*]] = icmp sgt <4 x i32> [[X:%.*]], [[Y:%.*]]
4629   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4630   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4631   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4632   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4633   return _mm_maskz_max_epi32(__M,__A,__B);
4634 }
test_mm_mask_max_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4635 __m128i test_mm_mask_max_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4636   // CHECK-LABEL: @test_mm_mask_max_epi32
4637   // CHECK:       [[CMP:%.*]] = icmp sgt <4 x i32> [[X:%.*]], [[Y:%.*]]
4638   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4639   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4640   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4641   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4642   return _mm_mask_max_epi32(__W,__M,__A,__B);
4643 }
test_mm256_maskz_max_epi32(__mmask8 __M,__m256i __A,__m256i __B)4644 __m256i test_mm256_maskz_max_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
4645   // CHECK-LABEL: @test_mm256_maskz_max_epi32
4646   // CHECK:       [[CMP:%.*]] = icmp sgt <8 x i32> [[X:%.*]], [[Y:%.*]]
4647   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4648   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4649   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4650   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4651   return _mm256_maskz_max_epi32(__M,__A,__B);
4652 }
test_mm256_mask_max_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4653 __m256i test_mm256_mask_max_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4654   // CHECK-LABEL: @test_mm256_mask_max_epi32
4655   // CHECK:       [[CMP:%.*]] = icmp sgt <8 x i32> [[X:%.*]], [[Y:%.*]]
4656   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4657   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4658   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4659   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4660   return _mm256_mask_max_epi32(__W,__M,__A,__B);
4661 }
test_mm_maskz_max_epi64(__mmask8 __M,__m128i __A,__m128i __B)4662 __m128i test_mm_maskz_max_epi64(__mmask8 __M, __m128i __A, __m128i __B) {
4663   // CHECK-LABEL: @test_mm_maskz_max_epi64
4664   // CHECK:       [[CMP:%.*]] = icmp sgt <2 x i64> [[X:%.*]], [[Y:%.*]]
4665   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4666   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4667   return _mm_maskz_max_epi64(__M,__A,__B);
4668 }
test_mm_mask_max_epi64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4669 __m128i test_mm_mask_max_epi64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4670   // CHECK-LABEL: @test_mm_mask_max_epi64
4671   // CHECK:       [[CMP:%.*]] = icmp sgt <2 x i64> [[X:%.*]], [[Y:%.*]]
4672   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4673   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4674   return _mm_mask_max_epi64(__W,__M,__A,__B);
4675 }
test_mm_max_epi64(__m128i __A,__m128i __B)4676 __m128i test_mm_max_epi64(__m128i __A, __m128i __B) {
4677   // CHECK-LABEL: @test_mm_max_epi64
4678   // CHECK:       [[CMP:%.*]] = icmp sgt <2 x i64> [[X:%.*]], [[Y:%.*]]
4679   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4680   return _mm_max_epi64(__A,__B);
4681 }
test_mm256_maskz_max_epi64(__mmask8 __M,__m256i __A,__m256i __B)4682 __m256i test_mm256_maskz_max_epi64(__mmask8 __M, __m256i __A, __m256i __B) {
4683   // CHECK-LABEL: @test_mm256_maskz_max_epi64
4684   // CHECK:       [[CMP:%.*]] = icmp sgt <4 x i64> [[X:%.*]], [[Y:%.*]]
4685   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4686   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4687   return _mm256_maskz_max_epi64(__M,__A,__B);
4688 }
test_mm256_mask_max_epi64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4689 __m256i test_mm256_mask_max_epi64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4690   // CHECK-LABEL: @test_mm256_mask_max_epi64
4691   // CHECK:       [[CMP:%.*]] = icmp sgt <4 x i64> [[X:%.*]], [[Y:%.*]]
4692   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4693   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4694   return _mm256_mask_max_epi64(__W,__M,__A,__B);
4695 }
test_mm256_max_epi64(__m256i __A,__m256i __B)4696 __m256i test_mm256_max_epi64(__m256i __A, __m256i __B) {
4697   // CHECK-LABEL: @test_mm256_max_epi64
4698   // CHECK:       [[CMP:%.*]] = icmp sgt <4 x i64> [[X:%.*]], [[Y:%.*]]
4699   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4700   return _mm256_max_epi64(__A,__B);
4701 }
test_mm_maskz_max_epu32(__mmask8 __M,__m128i __A,__m128i __B)4702 __m128i test_mm_maskz_max_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
4703   // CHECK-LABEL: @test_mm_maskz_max_epu32
4704   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i32> [[X:%.*]], [[Y:%.*]]
4705   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4706   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4707   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4708   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4709   return _mm_maskz_max_epu32(__M,__A,__B);
4710 }
test_mm_mask_max_epu32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4711 __m128i test_mm_mask_max_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4712   // CHECK-LABEL: @test_mm_mask_max_epu32
4713   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i32> [[X:%.*]], [[Y:%.*]]
4714   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4715   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4716   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4717   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4718   return _mm_mask_max_epu32(__W,__M,__A,__B);
4719 }
test_mm256_maskz_max_epu32(__mmask8 __M,__m256i __A,__m256i __B)4720 __m256i test_mm256_maskz_max_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
4721   // CHECK-LABEL: @test_mm256_maskz_max_epu32
4722   // CHECK:       [[CMP:%.*]] = icmp ugt <8 x i32> [[X:%.*]], [[Y:%.*]]
4723   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4724   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4725   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4726   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4727   return _mm256_maskz_max_epu32(__M,__A,__B);
4728 }
test_mm256_mask_max_epu32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4729 __m256i test_mm256_mask_max_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4730   // CHECK-LABEL: @test_mm256_mask_max_epu32
4731   // CHECK:       [[CMP:%.*]] = icmp ugt <8 x i32> [[X:%.*]], [[Y:%.*]]
4732   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4733   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4734   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4735   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4736   return _mm256_mask_max_epu32(__W,__M,__A,__B);
4737 }
test_mm_maskz_max_epu64(__mmask8 __M,__m128i __A,__m128i __B)4738 __m128i test_mm_maskz_max_epu64(__mmask8 __M, __m128i __A, __m128i __B) {
4739   // CHECK-LABEL: @test_mm_maskz_max_epu64
4740   // CHECK:       [[CMP:%.*]] = icmp ugt <2 x i64> [[X:%.*]], [[Y:%.*]]
4741   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4742   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4743   return _mm_maskz_max_epu64(__M,__A,__B);
4744 }
test_mm_max_epu64(__m128i __A,__m128i __B)4745 __m128i test_mm_max_epu64(__m128i __A, __m128i __B) {
4746   // CHECK-LABEL: @test_mm_max_epu64
4747   // CHECK:       [[CMP:%.*]] = icmp ugt <2 x i64> [[X:%.*]], [[Y:%.*]]
4748   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4749   return _mm_max_epu64(__A,__B);
4750 }
test_mm_mask_max_epu64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4751 __m128i test_mm_mask_max_epu64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4752   // CHECK-LABEL: @test_mm_mask_max_epu64
4753   // CHECK:       [[CMP:%.*]] = icmp ugt <2 x i64> [[X:%.*]], [[Y:%.*]]
4754   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4755   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4756   return _mm_mask_max_epu64(__W,__M,__A,__B);
4757 }
test_mm256_maskz_max_epu64(__mmask8 __M,__m256i __A,__m256i __B)4758 __m256i test_mm256_maskz_max_epu64(__mmask8 __M, __m256i __A, __m256i __B) {
4759   // CHECK-LABEL: @test_mm256_maskz_max_epu64
4760   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i64> [[X:%.*]], [[Y:%.*]]
4761   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4762   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4763   return _mm256_maskz_max_epu64(__M,__A,__B);
4764 }
test_mm256_max_epu64(__m256i __A,__m256i __B)4765 __m256i test_mm256_max_epu64(__m256i __A, __m256i __B) {
4766   // CHECK-LABEL: @test_mm256_max_epu64
4767   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i64> [[X:%.*]], [[Y:%.*]]
4768   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4769   return _mm256_max_epu64(__A,__B);
4770 }
test_mm256_mask_max_epu64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4771 __m256i test_mm256_mask_max_epu64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4772   // CHECK-LABEL: @test_mm256_mask_max_epu64
4773   // CHECK:       [[CMP:%.*]] = icmp ugt <4 x i64> [[X:%.*]], [[Y:%.*]]
4774   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4775   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4776   return _mm256_mask_max_epu64(__W,__M,__A,__B);
4777 }
test_mm_maskz_min_epi32(__mmask8 __M,__m128i __A,__m128i __B)4778 __m128i test_mm_maskz_min_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
4779   // CHECK-LABEL: @test_mm_maskz_min_epi32
4780   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i32> [[X:%.*]], [[Y:%.*]]
4781   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4782   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4783   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4784   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4785   return _mm_maskz_min_epi32(__M,__A,__B);
4786 }
test_mm_mask_min_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4787 __m128i test_mm_mask_min_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4788   // CHECK-LABEL: @test_mm_mask_min_epi32
4789   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i32> [[X:%.*]], [[Y:%.*]]
4790   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4791   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4792   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4793   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4794   return _mm_mask_min_epi32(__W,__M,__A,__B);
4795 }
test_mm256_maskz_min_epi32(__mmask8 __M,__m256i __A,__m256i __B)4796 __m256i test_mm256_maskz_min_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
4797   // CHECK-LABEL: @test_mm256_maskz_min_epi32
4798   // CHECK:       [[CMP:%.*]] = icmp slt <8 x i32> [[X:%.*]], [[Y:%.*]]
4799   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4800   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4801   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4802   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4803   return _mm256_maskz_min_epi32(__M,__A,__B);
4804 }
test_mm256_mask_min_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4805 __m256i test_mm256_mask_min_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4806   // CHECK-LABEL: @test_mm256_mask_min_epi32
4807   // CHECK:       [[CMP:%.*]] = icmp slt <8 x i32> [[X:%.*]], [[Y:%.*]]
4808   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4809   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4810   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4811   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4812   return _mm256_mask_min_epi32(__W,__M,__A,__B);
4813 }
test_mm_min_epi64(__m128i __A,__m128i __B)4814 __m128i test_mm_min_epi64(__m128i __A, __m128i __B) {
4815   // CHECK-LABEL: @test_mm_min_epi64
4816   // CHECK:       [[CMP:%.*]] = icmp slt <2 x i64> [[X:%.*]], [[Y:%.*]]
4817   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4818   return _mm_min_epi64(__A,__B);
4819 }
test_mm_mask_min_epi64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4820 __m128i test_mm_mask_min_epi64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4821   // CHECK-LABEL: @test_mm_mask_min_epi64
4822   // CHECK:       [[CMP:%.*]] = icmp slt <2 x i64> [[X:%.*]], [[Y:%.*]]
4823   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4824   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4825   return _mm_mask_min_epi64(__W,__M,__A,__B);
4826 }
test_mm_maskz_min_epi64(__mmask8 __M,__m128i __A,__m128i __B)4827 __m128i test_mm_maskz_min_epi64(__mmask8 __M, __m128i __A, __m128i __B) {
4828   // CHECK-LABEL: @test_mm_maskz_min_epi64
4829   // CHECK:       [[CMP:%.*]] = icmp slt <2 x i64> [[X:%.*]], [[Y:%.*]]
4830   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4831   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4832   return _mm_maskz_min_epi64(__M,__A,__B);
4833 }
test_mm256_min_epi64(__m256i __A,__m256i __B)4834 __m256i test_mm256_min_epi64(__m256i __A, __m256i __B) {
4835   // CHECK-LABEL: @test_mm256_min_epi64
4836   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i64> [[X:%.*]], [[Y:%.*]]
4837   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4838   return _mm256_min_epi64(__A,__B);
4839 }
test_mm256_mask_min_epi64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4840 __m256i test_mm256_mask_min_epi64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4841   // CHECK-LABEL: @test_mm256_mask_min_epi64
4842   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i64> [[X:%.*]], [[Y:%.*]]
4843   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4844   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4845   return _mm256_mask_min_epi64(__W,__M,__A,__B);
4846 }
test_mm256_maskz_min_epi64(__mmask8 __M,__m256i __A,__m256i __B)4847 __m256i test_mm256_maskz_min_epi64(__mmask8 __M, __m256i __A, __m256i __B) {
4848   // CHECK-LABEL: @test_mm256_maskz_min_epi64
4849   // CHECK:       [[CMP:%.*]] = icmp slt <4 x i64> [[X:%.*]], [[Y:%.*]]
4850   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4851   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4852   return _mm256_maskz_min_epi64(__M,__A,__B);
4853 }
test_mm_maskz_min_epu32(__mmask8 __M,__m128i __A,__m128i __B)4854 __m128i test_mm_maskz_min_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
4855   // CHECK-LABEL: @test_mm_maskz_min_epu32
4856   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i32> [[X:%.*]], [[Y:%.*]]
4857   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4858   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4859   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4860   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4861   return _mm_maskz_min_epu32(__M,__A,__B);
4862 }
test_mm_mask_min_epu32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4863 __m128i test_mm_mask_min_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4864   // CHECK-LABEL: @test_mm_mask_min_epu32
4865   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i32> [[X:%.*]], [[Y:%.*]]
4866   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4867   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4868   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4869   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4870   return _mm_mask_min_epu32(__W,__M,__A,__B);
4871 }
test_mm256_maskz_min_epu32(__mmask8 __M,__m256i __A,__m256i __B)4872 __m256i test_mm256_maskz_min_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
4873   // CHECK-LABEL: @test_mm256_maskz_min_epu32
4874   // CHECK:       [[CMP:%.*]] = icmp ult <8 x i32> [[X:%.*]], [[Y:%.*]]
4875   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4876   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4877   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4878   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4879   return _mm256_maskz_min_epu32(__M,__A,__B);
4880 }
test_mm256_mask_min_epu32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4881 __m256i test_mm256_mask_min_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4882   // CHECK-LABEL: @test_mm256_mask_min_epu32
4883   // CHECK:       [[CMP:%.*]] = icmp ult <8 x i32> [[X:%.*]], [[Y:%.*]]
4884   // CHECK-NEXT:  [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4885   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4886   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4887   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4888   return _mm256_mask_min_epu32(__W,__M,__A,__B);
4889 }
test_mm_min_epu64(__m128i __A,__m128i __B)4890 __m128i test_mm_min_epu64(__m128i __A, __m128i __B) {
4891   // CHECK-LABEL: @test_mm_min_epu64
4892   // CHECK:       [[CMP:%.*]] = icmp ult <2 x i64> [[X:%.*]], [[Y:%.*]]
4893   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4894   return _mm_min_epu64(__A,__B);
4895 }
test_mm_mask_min_epu64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4896 __m128i test_mm_mask_min_epu64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4897   // CHECK-LABEL: @test_mm_mask_min_epu64
4898   // CHECK:       [[CMP:%.*]] = icmp ult <2 x i64> [[X:%.*]], [[Y:%.*]]
4899   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4900   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4901   return _mm_mask_min_epu64(__W,__M,__A,__B);
4902 }
test_mm_maskz_min_epu64(__mmask8 __M,__m128i __A,__m128i __B)4903 __m128i test_mm_maskz_min_epu64(__mmask8 __M, __m128i __A, __m128i __B) {
4904   // CHECK-LABEL: @test_mm_maskz_min_epu64
4905   // CHECK:       [[CMP:%.*]] = icmp ult <2 x i64> [[X:%.*]], [[Y:%.*]]
4906   // CHECK-NEXT:  [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4907   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4908   return _mm_maskz_min_epu64(__M,__A,__B);
4909 }
test_mm256_min_epu64(__m256i __A,__m256i __B)4910 __m256i test_mm256_min_epu64(__m256i __A, __m256i __B) {
4911   // CHECK-LABEL: @test_mm256_min_epu64
4912   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i64> [[X:%.*]], [[Y:%.*]]
4913   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4914   return _mm256_min_epu64(__A,__B);
4915 }
test_mm256_mask_min_epu64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4916 __m256i test_mm256_mask_min_epu64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4917   // CHECK-LABEL: @test_mm256_mask_min_epu64
4918   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i64> [[X:%.*]], [[Y:%.*]]
4919   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4920   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4921   return _mm256_mask_min_epu64(__W,__M,__A,__B);
4922 }
test_mm256_maskz_min_epu64(__mmask8 __M,__m256i __A,__m256i __B)4923 __m256i test_mm256_maskz_min_epu64(__mmask8 __M, __m256i __A, __m256i __B) {
4924   // CHECK-LABEL: @test_mm256_maskz_min_epu64
4925   // CHECK:       [[CMP:%.*]] = icmp ult <4 x i64> [[X:%.*]], [[Y:%.*]]
4926   // CHECK-NEXT:  [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4927   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4928   return _mm256_maskz_min_epu64(__M,__A,__B);
4929 }
test_mm_roundscale_pd(__m128d __A)4930 __m128d test_mm_roundscale_pd(__m128d __A) {
4931   // CHECK-LABEL: @test_mm_roundscale_pd
4932   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4933   return _mm_roundscale_pd(__A,4);
4934 }
test_mm_mask_roundscale_pd(__m128d __W,__mmask8 __U,__m128d __A)4935 __m128d test_mm_mask_roundscale_pd(__m128d __W, __mmask8 __U, __m128d __A) {
4936   // CHECK-LABEL: @test_mm_mask_roundscale_pd
4937   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4938   return _mm_mask_roundscale_pd(__W,__U,__A,4);
4939 }
test_mm_maskz_roundscale_pd(__mmask8 __U,__m128d __A)4940 __m128d test_mm_maskz_roundscale_pd(__mmask8 __U, __m128d __A) {
4941   // CHECK-LABEL: @test_mm_maskz_roundscale_pd
4942   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4943   return _mm_maskz_roundscale_pd(__U,__A,4);
4944 }
test_mm256_roundscale_pd(__m256d __A)4945 __m256d test_mm256_roundscale_pd(__m256d __A) {
4946   // CHECK-LABEL: @test_mm256_roundscale_pd
4947   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
4948   return _mm256_roundscale_pd(__A,4);
4949 }
test_mm256_mask_roundscale_pd(__m256d __W,__mmask8 __U,__m256d __A)4950 __m256d test_mm256_mask_roundscale_pd(__m256d __W, __mmask8 __U, __m256d __A) {
4951   // CHECK-LABEL: @test_mm256_mask_roundscale_pd
4952   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
4953   return _mm256_mask_roundscale_pd(__W,__U,__A,4);
4954 }
test_mm256_maskz_roundscale_pd(__mmask8 __U,__m256d __A)4955 __m256d test_mm256_maskz_roundscale_pd(__mmask8 __U, __m256d __A) {
4956   // CHECK-LABEL: @test_mm256_maskz_roundscale_pd
4957   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
4958   return _mm256_maskz_roundscale_pd(__U,__A,4);
4959 }
test_mm_roundscale_ps(__m128 __A)4960 __m128 test_mm_roundscale_ps(__m128 __A) {
4961   // CHECK-LABEL: @test_mm_roundscale_ps
4962   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
4963   return _mm_roundscale_ps(__A,4);
4964 }
test_mm_mask_roundscale_ps(__m128 __W,__mmask8 __U,__m128 __A)4965 __m128 test_mm_mask_roundscale_ps(__m128 __W, __mmask8 __U, __m128 __A) {
4966   // CHECK-LABEL: @test_mm_mask_roundscale_ps
4967   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
4968   return _mm_mask_roundscale_ps(__W,__U,__A,4);
4969 }
test_mm_maskz_roundscale_ps(__mmask8 __U,__m128 __A)4970 __m128 test_mm_maskz_roundscale_ps(__mmask8 __U, __m128 __A) {
4971   // CHECK-LABEL: @test_mm_maskz_roundscale_ps
4972   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
4973   return _mm_maskz_roundscale_ps(__U,__A, 4);
4974 }
test_mm256_roundscale_ps(__m256 __A)4975 __m256 test_mm256_roundscale_ps(__m256 __A) {
4976   // CHECK-LABEL: @test_mm256_roundscale_ps
4977   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
4978   return _mm256_roundscale_ps(__A,4);
4979 }
test_mm256_mask_roundscale_ps(__m256 __W,__mmask8 __U,__m256 __A)4980 __m256 test_mm256_mask_roundscale_ps(__m256 __W, __mmask8 __U, __m256 __A) {
4981   // CHECK-LABEL: @test_mm256_mask_roundscale_ps
4982   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
4983   return _mm256_mask_roundscale_ps(__W,__U,__A,4);
4984 }
test_mm256_maskz_roundscale_ps(__mmask8 __U,__m256 __A)4985 __m256 test_mm256_maskz_roundscale_ps(__mmask8 __U, __m256 __A) {
4986   // CHECK-LABEL: @test_mm256_maskz_roundscale_ps
4987   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
4988   return _mm256_maskz_roundscale_ps(__U,__A,4);
4989 }
test_mm_scalef_pd(__m128d __A,__m128d __B)4990 __m128d test_mm_scalef_pd(__m128d __A, __m128d __B) {
4991   // CHECK-LABEL: @test_mm_scalef_pd
4992   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
4993   return _mm_scalef_pd(__A,__B);
4994 }
test_mm_mask_scalef_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4995 __m128d test_mm_mask_scalef_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4996   // CHECK-LABEL: @test_mm_mask_scalef_pd
4997   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
4998   return _mm_mask_scalef_pd(__W,__U,__A,__B);
4999 }
test_mm_maskz_scalef_pd(__mmask8 __U,__m128d __A,__m128d __B)5000 __m128d test_mm_maskz_scalef_pd(__mmask8 __U, __m128d __A, __m128d __B) {
5001   // CHECK-LABEL: @test_mm_maskz_scalef_pd
5002   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
5003   return _mm_maskz_scalef_pd(__U,__A,__B);
5004 }
test_mm256_scalef_pd(__m256d __A,__m256d __B)5005 __m256d test_mm256_scalef_pd(__m256d __A, __m256d __B) {
5006   // CHECK-LABEL: @test_mm256_scalef_pd
5007   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
5008   return _mm256_scalef_pd(__A,__B);
5009 }
test_mm256_mask_scalef_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)5010 __m256d test_mm256_mask_scalef_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
5011   // CHECK-LABEL: @test_mm256_mask_scalef_pd
5012   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
5013   return _mm256_mask_scalef_pd(__W,__U,__A,__B);
5014 }
test_mm256_maskz_scalef_pd(__mmask8 __U,__m256d __A,__m256d __B)5015 __m256d test_mm256_maskz_scalef_pd(__mmask8 __U, __m256d __A, __m256d __B) {
5016   // CHECK-LABEL: @test_mm256_maskz_scalef_pd
5017   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
5018   return _mm256_maskz_scalef_pd(__U,__A,__B);
5019 }
test_mm_scalef_ps(__m128 __A,__m128 __B)5020 __m128 test_mm_scalef_ps(__m128 __A, __m128 __B) {
5021   // CHECK-LABEL: @test_mm_scalef_ps
5022   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
5023   return _mm_scalef_ps(__A,__B);
5024 }
test_mm_mask_scalef_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5025 __m128 test_mm_mask_scalef_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
5026   // CHECK-LABEL: @test_mm_mask_scalef_ps
5027   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
5028   return _mm_mask_scalef_ps(__W,__U,__A,__B);
5029 }
test_mm_maskz_scalef_ps(__mmask8 __U,__m128 __A,__m128 __B)5030 __m128 test_mm_maskz_scalef_ps(__mmask8 __U, __m128 __A, __m128 __B) {
5031   // CHECK-LABEL: @test_mm_maskz_scalef_ps
5032   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
5033   return _mm_maskz_scalef_ps(__U,__A,__B);
5034 }
test_mm256_scalef_ps(__m256 __A,__m256 __B)5035 __m256 test_mm256_scalef_ps(__m256 __A, __m256 __B) {
5036   // CHECK-LABEL: @test_mm256_scalef_ps
5037   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
5038   return _mm256_scalef_ps(__A,__B);
5039 }
test_mm256_mask_scalef_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)5040 __m256 test_mm256_mask_scalef_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
5041   // CHECK-LABEL: @test_mm256_mask_scalef_ps
5042   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
5043   return _mm256_mask_scalef_ps(__W,__U,__A,__B);
5044 }
test_mm256_maskz_scalef_ps(__mmask8 __U,__m256 __A,__m256 __B)5045 __m256 test_mm256_maskz_scalef_ps(__mmask8 __U, __m256 __A, __m256 __B) {
5046   // CHECK-LABEL: @test_mm256_maskz_scalef_ps
5047   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
5048   return _mm256_maskz_scalef_ps(__U,__A,__B);
5049 }
test_mm_i64scatter_pd(double * __addr,__m128i __index,__m128d __v1)5050 void test_mm_i64scatter_pd(double *__addr, __m128i __index,  __m128d __v1) {
5051   // CHECK-LABEL: @test_mm_i64scatter_pd
5052   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.df
5053   return _mm_i64scatter_pd(__addr,__index,__v1,2);
5054 }
test_mm_mask_i64scatter_pd(double * __addr,__mmask8 __mask,__m128i __index,__m128d __v1)5055 void test_mm_mask_i64scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m128d __v1) {
5056   // CHECK-LABEL: @test_mm_mask_i64scatter_pd
5057   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.df
5058   return _mm_mask_i64scatter_pd(__addr,__mask,__index,__v1,2);
5059 }
test_mm_i64scatter_epi64(long long * __addr,__m128i __index,__m128i __v1)5060 void test_mm_i64scatter_epi64(long long *__addr, __m128i __index,  __m128i __v1) {
5061   // CHECK-LABEL: @test_mm_i64scatter_epi64
5062   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.di
5063   return _mm_i64scatter_epi64(__addr,__index,__v1,2);
5064 }
test_mm_mask_i64scatter_epi64(long long * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5065 void test_mm_mask_i64scatter_epi64(long long *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5066   // CHECK-LABEL: @test_mm_mask_i64scatter_epi64
5067   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.di
5068   return _mm_mask_i64scatter_epi64(__addr,__mask,__index,__v1,2);
5069 }
test_mm256_i64scatter_pd(double * __addr,__m256i __index,__m256d __v1)5070 void test_mm256_i64scatter_pd(double *__addr, __m256i __index,  __m256d __v1) {
5071   // CHECK-LABEL: @test_mm256_i64scatter_pd
5072   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.df
5073   return _mm256_i64scatter_pd(__addr,__index,__v1,2);
5074 }
test_mm256_mask_i64scatter_pd(double * __addr,__mmask8 __mask,__m256i __index,__m256d __v1)5075 void test_mm256_mask_i64scatter_pd(double *__addr, __mmask8 __mask, __m256i __index, __m256d __v1) {
5076   // CHECK-LABEL: @test_mm256_mask_i64scatter_pd
5077   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.df
5078   return _mm256_mask_i64scatter_pd(__addr,__mask,__index,__v1,2);
5079 }
test_mm256_i64scatter_epi64(long long * __addr,__m256i __index,__m256i __v1)5080 void test_mm256_i64scatter_epi64(long long *__addr, __m256i __index,  __m256i __v1) {
5081   // CHECK-LABEL: @test_mm256_i64scatter_epi64
5082   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.di
5083   return _mm256_i64scatter_epi64(__addr,__index,__v1,2);
5084 }
test_mm256_mask_i64scatter_epi64(long long * __addr,__mmask8 __mask,__m256i __index,__m256i __v1)5085 void test_mm256_mask_i64scatter_epi64(long long *__addr, __mmask8 __mask,  __m256i __index, __m256i __v1) {
5086   // CHECK-LABEL: @test_mm256_mask_i64scatter_epi64
5087   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.di
5088   return _mm256_mask_i64scatter_epi64(__addr,__mask,__index,__v1,2);
5089 }
test_mm_i64scatter_ps(float * __addr,__m128i __index,__m128 __v1)5090 void test_mm_i64scatter_ps(float *__addr, __m128i __index, __m128 __v1) {
5091   // CHECK-LABEL: @test_mm_i64scatter_ps
5092   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.sf
5093   return _mm_i64scatter_ps(__addr,__index,__v1,2);
5094 }
test_mm_mask_i64scatter_ps(float * __addr,__mmask8 __mask,__m128i __index,__m128 __v1)5095 void test_mm_mask_i64scatter_ps(float *__addr, __mmask8 __mask, __m128i __index, __m128 __v1) {
5096   // CHECK-LABEL: @test_mm_mask_i64scatter_ps
5097   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.sf
5098   return _mm_mask_i64scatter_ps(__addr,__mask,__index,__v1,2);
5099 }
test_mm_i64scatter_epi32(int * __addr,__m128i __index,__m128i __v1)5100 void test_mm_i64scatter_epi32(int *__addr, __m128i __index,  __m128i __v1) {
5101   // CHECK-LABEL: @test_mm_i64scatter_epi32
5102   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.si
5103   return _mm_i64scatter_epi32(__addr,__index,__v1,2);
5104 }
test_mm_mask_i64scatter_epi32(int * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5105 void test_mm_mask_i64scatter_epi32(int *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5106   // CHECK-LABEL: @test_mm_mask_i64scatter_epi32
5107   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.si
5108   return _mm_mask_i64scatter_epi32(__addr,__mask,__index,__v1,2);
5109 }
test_mm256_i64scatter_ps(float * __addr,__m256i __index,__m128 __v1)5110 void test_mm256_i64scatter_ps(float *__addr, __m256i __index,  __m128 __v1) {
5111   // CHECK-LABEL: @test_mm256_i64scatter_ps
5112   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.sf
5113   return _mm256_i64scatter_ps(__addr,__index,__v1,2);
5114 }
test_mm256_mask_i64scatter_ps(float * __addr,__mmask8 __mask,__m256i __index,__m128 __v1)5115 void test_mm256_mask_i64scatter_ps(float *__addr, __mmask8 __mask, __m256i __index, __m128 __v1) {
5116   // CHECK-LABEL: @test_mm256_mask_i64scatter_ps
5117   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.sf
5118   return _mm256_mask_i64scatter_ps(__addr,__mask,__index,__v1,2);
5119 }
test_mm256_i64scatter_epi32(int * __addr,__m256i __index,__m128i __v1)5120 void test_mm256_i64scatter_epi32(int *__addr, __m256i __index,  __m128i __v1) {
5121   // CHECK-LABEL: @test_mm256_i64scatter_epi32
5122   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.si
5123   return _mm256_i64scatter_epi32(__addr,__index,__v1,2);
5124 }
test_mm256_mask_i64scatter_epi32(int * __addr,__mmask8 __mask,__m256i __index,__m128i __v1)5125 void test_mm256_mask_i64scatter_epi32(int *__addr, __mmask8 __mask,  __m256i __index, __m128i __v1) {
5126   // CHECK-LABEL: @test_mm256_mask_i64scatter_epi32
5127   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.si
5128   return _mm256_mask_i64scatter_epi32(__addr,__mask,__index,__v1,2);
5129 }
test_mm_i32scatter_pd(double * __addr,__m128i __index,__m128d __v1)5130 void test_mm_i32scatter_pd(double *__addr, __m128i __index,  __m128d __v1) {
5131   // CHECK-LABEL: @test_mm_i32scatter_pd
5132   // CHECK: @llvm.x86.avx512.mask.scattersiv2.df
5133   return _mm_i32scatter_pd(__addr,__index,__v1,2);
5134 }
test_mm_mask_i32scatter_pd(double * __addr,__mmask8 __mask,__m128i __index,__m128d __v1)5135 void test_mm_mask_i32scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m128d __v1) {
5136   // CHECK-LABEL: @test_mm_mask_i32scatter_pd
5137   // CHECK: @llvm.x86.avx512.mask.scattersiv2.df
5138   return _mm_mask_i32scatter_pd(__addr,__mask,__index,__v1,2);
5139 }
test_mm_i32scatter_epi64(long long * __addr,__m128i __index,__m128i __v1)5140 void test_mm_i32scatter_epi64(long long *__addr, __m128i __index,  __m128i __v1) {
5141   // CHECK-LABEL: @test_mm_i32scatter_epi64
5142   // CHECK: @llvm.x86.avx512.mask.scattersiv2.di
5143   return _mm_i32scatter_epi64(__addr,__index,__v1,2);
5144 }
test_mm_mask_i32scatter_epi64(long long * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5145 void test_mm_mask_i32scatter_epi64(long long *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5146   // CHECK-LABEL: @test_mm_mask_i32scatter_epi64
5147   // CHECK: @llvm.x86.avx512.mask.scattersiv2.di
5148   return _mm_mask_i32scatter_epi64(__addr,__mask,__index,__v1,2);
5149 }
test_mm256_i32scatter_pd(double * __addr,__m128i __index,__m256d __v1)5150 void test_mm256_i32scatter_pd(double *__addr, __m128i __index,  __m256d __v1) {
5151   // CHECK-LABEL: @test_mm256_i32scatter_pd
5152   // CHECK: @llvm.x86.avx512.mask.scattersiv4.df
5153   return _mm256_i32scatter_pd(__addr,__index,__v1,2);
5154 }
test_mm256_mask_i32scatter_pd(double * __addr,__mmask8 __mask,__m128i __index,__m256d __v1)5155 void test_mm256_mask_i32scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m256d __v1) {
5156   // CHECK-LABEL: @test_mm256_mask_i32scatter_pd
5157   // CHECK: @llvm.x86.avx512.mask.scattersiv4.df
5158   return _mm256_mask_i32scatter_pd(__addr,__mask,__index,__v1,2);
5159 }
test_mm256_i32scatter_epi64(long long * __addr,__m128i __index,__m256i __v1)5160 void test_mm256_i32scatter_epi64(long long *__addr, __m128i __index,  __m256i __v1) {
5161   // CHECK-LABEL: @test_mm256_i32scatter_epi64
5162   // CHECK: @llvm.x86.avx512.mask.scattersiv4.di
5163   return _mm256_i32scatter_epi64(__addr,__index,__v1,2);
5164 }
test_mm256_mask_i32scatter_epi64(long long * __addr,__mmask8 __mask,__m128i __index,__m256i __v1)5165 void test_mm256_mask_i32scatter_epi64(long long *__addr, __mmask8 __mask,  __m128i __index, __m256i __v1) {
5166   // CHECK-LABEL: @test_mm256_mask_i32scatter_epi64
5167   // CHECK: @llvm.x86.avx512.mask.scattersiv4.di
5168   return _mm256_mask_i32scatter_epi64(__addr,__mask,__index,__v1,2);
5169 }
test_mm_i32scatter_ps(float * __addr,__m128i __index,__m128 __v1)5170 void test_mm_i32scatter_ps(float *__addr, __m128i __index, __m128 __v1) {
5171   // CHECK-LABEL: @test_mm_i32scatter_ps
5172   // CHECK: @llvm.x86.avx512.mask.scattersiv4.sf
5173   return _mm_i32scatter_ps(__addr,__index,__v1,2);
5174 }
test_mm_mask_i32scatter_ps(float * __addr,__mmask8 __mask,__m128i __index,__m128 __v1)5175 void test_mm_mask_i32scatter_ps(float *__addr, __mmask8 __mask, __m128i __index, __m128 __v1) {
5176   // CHECK-LABEL: @test_mm_mask_i32scatter_ps
5177   // CHECK: @llvm.x86.avx512.mask.scattersiv4.sf
5178   return _mm_mask_i32scatter_ps(__addr,__mask,__index,__v1,2);
5179 }
test_mm_i32scatter_epi32(int * __addr,__m128i __index,__m128i __v1)5180 void test_mm_i32scatter_epi32(int *__addr, __m128i __index,  __m128i __v1) {
5181   // CHECK-LABEL: @test_mm_i32scatter_epi32
5182   // CHECK: @llvm.x86.avx512.mask.scattersiv4.si
5183   return _mm_i32scatter_epi32(__addr,__index,__v1,2);
5184 }
test_mm_mask_i32scatter_epi32(int * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5185 void test_mm_mask_i32scatter_epi32(int *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5186   // CHECK-LABEL: @test_mm_mask_i32scatter_epi32
5187   // CHECK: @llvm.x86.avx512.mask.scattersiv4.si
5188   return _mm_mask_i32scatter_epi32(__addr,__mask,__index,__v1,2);
5189 }
test_mm256_i32scatter_ps(float * __addr,__m256i __index,__m256 __v1)5190 void test_mm256_i32scatter_ps(float *__addr, __m256i __index,  __m256 __v1) {
5191   // CHECK-LABEL: @test_mm256_i32scatter_ps
5192   // CHECK: @llvm.x86.avx512.mask.scattersiv8.sf
5193   return _mm256_i32scatter_ps(__addr,__index,__v1,2);
5194 }
test_mm256_mask_i32scatter_ps(float * __addr,__mmask8 __mask,__m256i __index,__m256 __v1)5195 void test_mm256_mask_i32scatter_ps(float *__addr, __mmask8 __mask, __m256i __index, __m256 __v1) {
5196   // CHECK-LABEL: @test_mm256_mask_i32scatter_ps
5197   // CHECK: @llvm.x86.avx512.mask.scattersiv8.sf
5198   return _mm256_mask_i32scatter_ps(__addr,__mask,__index,__v1,2);
5199 }
test_mm256_i32scatter_epi32(int * __addr,__m256i __index,__m256i __v1)5200 void test_mm256_i32scatter_epi32(int *__addr, __m256i __index,  __m256i __v1) {
5201   // CHECK-LABEL: @test_mm256_i32scatter_epi32
5202   // CHECK: @llvm.x86.avx512.mask.scattersiv8.si
5203   return _mm256_i32scatter_epi32(__addr,__index,__v1,2);
5204 }
test_mm256_mask_i32scatter_epi32(int * __addr,__mmask8 __mask,__m256i __index,__m256i __v1)5205 void test_mm256_mask_i32scatter_epi32(int *__addr, __mmask8 __mask,  __m256i __index, __m256i __v1) {
5206   // CHECK-LABEL: @test_mm256_mask_i32scatter_epi32
5207   // CHECK: @llvm.x86.avx512.mask.scattersiv8.si
5208   return _mm256_mask_i32scatter_epi32(__addr,__mask,__index,__v1,2);
5209 }
test_mm_mask_sqrt_pd(__m128d __W,__mmask8 __U,__m128d __A)5210 __m128d test_mm_mask_sqrt_pd(__m128d __W, __mmask8 __U, __m128d __A) {
5211   // CHECK-LABEL: @test_mm_mask_sqrt_pd
5212   // CHECK: @llvm.sqrt.v2f64
5213   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5214   return _mm_mask_sqrt_pd(__W,__U,__A);
5215 }
test_mm_maskz_sqrt_pd(__mmask8 __U,__m128d __A)5216 __m128d test_mm_maskz_sqrt_pd(__mmask8 __U, __m128d __A) {
5217   // CHECK-LABEL: @test_mm_maskz_sqrt_pd
5218   // CHECK: @llvm.sqrt.v2f64
5219   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5220   return _mm_maskz_sqrt_pd(__U,__A);
5221 }
test_mm256_mask_sqrt_pd(__m256d __W,__mmask8 __U,__m256d __A)5222 __m256d test_mm256_mask_sqrt_pd(__m256d __W, __mmask8 __U, __m256d __A) {
5223   // CHECK-LABEL: @test_mm256_mask_sqrt_pd
5224   // CHECK: @llvm.sqrt.v4f64
5225   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5226   return _mm256_mask_sqrt_pd(__W,__U,__A);
5227 }
test_mm256_maskz_sqrt_pd(__mmask8 __U,__m256d __A)5228 __m256d test_mm256_maskz_sqrt_pd(__mmask8 __U, __m256d __A) {
5229   // CHECK-LABEL: @test_mm256_maskz_sqrt_pd
5230   // CHECK: @llvm.sqrt.v4f64
5231   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5232   return _mm256_maskz_sqrt_pd(__U,__A);
5233 }
test_mm_mask_sqrt_ps(__m128 __W,__mmask8 __U,__m128 __A)5234 __m128 test_mm_mask_sqrt_ps(__m128 __W, __mmask8 __U, __m128 __A) {
5235   // CHECK-LABEL: @test_mm_mask_sqrt_ps
5236   // CHECK: @llvm.sqrt.v4f32
5237   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5238   return _mm_mask_sqrt_ps(__W,__U,__A);
5239 }
test_mm_maskz_sqrt_ps(__mmask8 __U,__m128 __A)5240 __m128 test_mm_maskz_sqrt_ps(__mmask8 __U, __m128 __A) {
5241   // CHECK-LABEL: @test_mm_maskz_sqrt_ps
5242   // CHECK: @llvm.sqrt.v4f32
5243   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5244   return _mm_maskz_sqrt_ps(__U,__A);
5245 }
test_mm256_mask_sqrt_ps(__m256 __W,__mmask8 __U,__m256 __A)5246 __m256 test_mm256_mask_sqrt_ps(__m256 __W, __mmask8 __U, __m256 __A) {
5247   // CHECK-LABEL: @test_mm256_mask_sqrt_ps
5248   // CHECK: @llvm.sqrt.v8f32
5249   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5250   return _mm256_mask_sqrt_ps(__W,__U,__A);
5251 }
test_mm256_maskz_sqrt_ps(__mmask8 __U,__m256 __A)5252 __m256 test_mm256_maskz_sqrt_ps(__mmask8 __U, __m256 __A) {
5253   // CHECK-LABEL: @test_mm256_maskz_sqrt_ps
5254   // CHECK: @llvm.sqrt.v8f32
5255   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5256   return _mm256_maskz_sqrt_ps(__U,__A);
5257 }
test_mm_mask_sub_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5258 __m128d test_mm_mask_sub_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
5259   // CHECK-LABEL: @test_mm_mask_sub_pd
5260   // CHECK: fsub <2 x double> %{{.*}}, %{{.*}}
5261   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5262   return _mm_mask_sub_pd(__W,__U,__A,__B);
5263 }
test_mm_maskz_sub_pd(__mmask8 __U,__m128d __A,__m128d __B)5264 __m128d test_mm_maskz_sub_pd(__mmask8 __U, __m128d __A, __m128d __B) {
5265   // CHECK-LABEL: @test_mm_maskz_sub_pd
5266   // CHECK: fsub <2 x double> %{{.*}}, %{{.*}}
5267   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5268   return _mm_maskz_sub_pd(__U,__A,__B);
5269 }
test_mm256_mask_sub_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)5270 __m256d test_mm256_mask_sub_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
5271   // CHECK-LABEL: @test_mm256_mask_sub_pd
5272   // CHECK: fsub <4 x double> %{{.*}}, %{{.*}}
5273   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5274   return _mm256_mask_sub_pd(__W,__U,__A,__B);
5275 }
test_mm256_maskz_sub_pd(__mmask8 __U,__m256d __A,__m256d __B)5276 __m256d test_mm256_maskz_sub_pd(__mmask8 __U, __m256d __A, __m256d __B) {
5277   // CHECK-LABEL: @test_mm256_maskz_sub_pd
5278   // CHECK: fsub <4 x double> %{{.*}}, %{{.*}}
5279   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5280   return _mm256_maskz_sub_pd(__U,__A,__B);
5281 }
test_mm_mask_sub_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5282 __m128 test_mm_mask_sub_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
5283   // CHECK-LABEL: @test_mm_mask_sub_ps
5284   // CHECK: fsub <4 x float> %{{.*}}, %{{.*}}
5285   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5286   return _mm_mask_sub_ps(__W,__U,__A,__B);
5287 }
test_mm_maskz_sub_ps(__mmask8 __U,__m128 __A,__m128 __B)5288 __m128 test_mm_maskz_sub_ps(__mmask8 __U, __m128 __A, __m128 __B) {
5289   // CHECK-LABEL: @test_mm_maskz_sub_ps
5290   // CHECK: fsub <4 x float> %{{.*}}, %{{.*}}
5291   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5292   return _mm_maskz_sub_ps(__U,__A,__B);
5293 }
test_mm256_mask_sub_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)5294 __m256 test_mm256_mask_sub_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
5295   // CHECK-LABEL: @test_mm256_mask_sub_ps
5296   // CHECK: fsub <8 x float> %{{.*}}, %{{.*}}
5297   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5298   return _mm256_mask_sub_ps(__W,__U,__A,__B);
5299 }
test_mm256_maskz_sub_ps(__mmask8 __U,__m256 __A,__m256 __B)5300 __m256 test_mm256_maskz_sub_ps(__mmask8 __U, __m256 __A, __m256 __B) {
5301   // CHECK-LABEL: @test_mm256_maskz_sub_ps
5302   // CHECK: fsub <8 x float> %{{.*}}, %{{.*}}
5303   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5304   return _mm256_maskz_sub_ps(__U,__A,__B);
5305 }
test_mm_mask2_permutex2var_epi32(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)5306 __m128i test_mm_mask2_permutex2var_epi32(__m128i __A, __m128i __I, __mmask8 __U,  __m128i __B) {
5307   // CHECK-LABEL: @test_mm_mask2_permutex2var_epi32
5308   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5309   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5310   return _mm_mask2_permutex2var_epi32(__A,__I,__U,__B);
5311 }
test_mm256_mask2_permutex2var_epi32(__m256i __A,__m256i __I,__mmask8 __U,__m256i __B)5312 __m256i test_mm256_mask2_permutex2var_epi32(__m256i __A, __m256i __I, __mmask8 __U, __m256i __B) {
5313   // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi32
5314   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5315   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5316   return _mm256_mask2_permutex2var_epi32(__A,__I,__U,__B);
5317 }
test_mm_mask2_permutex2var_pd(__m128d __A,__m128i __I,__mmask8 __U,__m128d __B)5318 __m128d test_mm_mask2_permutex2var_pd(__m128d __A, __m128i __I, __mmask8 __U, __m128d __B) {
5319   // CHECK-LABEL: @test_mm_mask2_permutex2var_pd
5320   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5321   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5322   return _mm_mask2_permutex2var_pd(__A,__I,__U,__B);
5323 }
test_mm256_mask2_permutex2var_pd(__m256d __A,__m256i __I,__mmask8 __U,__m256d __B)5324 __m256d test_mm256_mask2_permutex2var_pd(__m256d __A, __m256i __I, __mmask8 __U,  __m256d __B) {
5325   // CHECK-LABEL: @test_mm256_mask2_permutex2var_pd
5326   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5327   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5328   return _mm256_mask2_permutex2var_pd(__A,__I,__U,__B);
5329 }
test_mm_mask2_permutex2var_ps(__m128 __A,__m128i __I,__mmask8 __U,__m128 __B)5330 __m128 test_mm_mask2_permutex2var_ps(__m128 __A, __m128i __I, __mmask8 __U, __m128 __B) {
5331   // CHECK-LABEL: @test_mm_mask2_permutex2var_ps
5332   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5333   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5334   return _mm_mask2_permutex2var_ps(__A,__I,__U,__B);
5335 }
test_mm256_mask2_permutex2var_ps(__m256 __A,__m256i __I,__mmask8 __U,__m256 __B)5336 __m256 test_mm256_mask2_permutex2var_ps(__m256 __A, __m256i __I, __mmask8 __U,  __m256 __B) {
5337   // CHECK-LABEL: @test_mm256_mask2_permutex2var_ps
5338   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5339   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5340   return _mm256_mask2_permutex2var_ps(__A,__I,__U,__B);
5341 }
test_mm_mask2_permutex2var_epi64(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)5342 __m128i test_mm_mask2_permutex2var_epi64(__m128i __A, __m128i __I, __mmask8 __U,  __m128i __B) {
5343   // CHECK-LABEL: @test_mm_mask2_permutex2var_epi64
5344   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5345   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5346   return _mm_mask2_permutex2var_epi64(__A,__I,__U,__B);
5347 }
test_mm256_mask2_permutex2var_epi64(__m256i __A,__m256i __I,__mmask8 __U,__m256i __B)5348 __m256i test_mm256_mask2_permutex2var_epi64(__m256i __A, __m256i __I, __mmask8 __U, __m256i __B) {
5349   // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi64
5350   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5351   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5352   return _mm256_mask2_permutex2var_epi64(__A,__I,__U,__B);
5353 }
test_mm_permutex2var_epi32(__m128i __A,__m128i __I,__m128i __B)5354 __m128i test_mm_permutex2var_epi32(__m128i __A, __m128i __I, __m128i __B) {
5355   // CHECK-LABEL: @test_mm_permutex2var_epi32
5356   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5357   return _mm_permutex2var_epi32(__A,__I,__B);
5358 }
test_mm_mask_permutex2var_epi32(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)5359 __m128i test_mm_mask_permutex2var_epi32(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) {
5360   // CHECK-LABEL: @test_mm_mask_permutex2var_epi32
5361   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5362   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5363   return _mm_mask_permutex2var_epi32(__A,__U,__I,__B);
5364 }
test_mm_maskz_permutex2var_epi32(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)5365 __m128i test_mm_maskz_permutex2var_epi32(__mmask8 __U, __m128i __A, __m128i __I,  __m128i __B) {
5366   // CHECK-LABEL: @test_mm_maskz_permutex2var_epi32
5367   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5368   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5369   return _mm_maskz_permutex2var_epi32(__U,__A,__I,__B);
5370 }
test_mm256_permutex2var_epi32(__m256i __A,__m256i __I,__m256i __B)5371 __m256i test_mm256_permutex2var_epi32(__m256i __A, __m256i __I, __m256i __B) {
5372   // CHECK-LABEL: @test_mm256_permutex2var_epi32
5373   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5374   return _mm256_permutex2var_epi32(__A,__I,__B);
5375 }
test_mm256_mask_permutex2var_epi32(__m256i __A,__mmask8 __U,__m256i __I,__m256i __B)5376 __m256i test_mm256_mask_permutex2var_epi32(__m256i __A, __mmask8 __U, __m256i __I, __m256i __B) {
5377   // CHECK-LABEL: @test_mm256_mask_permutex2var_epi32
5378   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5379   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5380   return _mm256_mask_permutex2var_epi32(__A,__U,__I,__B);
5381 }
test_mm256_maskz_permutex2var_epi32(__mmask8 __U,__m256i __A,__m256i __I,__m256i __B)5382 __m256i test_mm256_maskz_permutex2var_epi32(__mmask8 __U, __m256i __A, __m256i __I, __m256i __B) {
5383   // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi32
5384   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5385   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5386   return _mm256_maskz_permutex2var_epi32(__U,__A,__I,__B);
5387 }
test_mm_permutex2var_pd(__m128d __A,__m128i __I,__m128d __B)5388 __m128d test_mm_permutex2var_pd(__m128d __A, __m128i __I, __m128d __B) {
5389   // CHECK-LABEL: @test_mm_permutex2var_pd
5390   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5391   return _mm_permutex2var_pd(__A,__I,__B);
5392 }
test_mm_mask_permutex2var_pd(__m128d __A,__mmask8 __U,__m128i __I,__m128d __B)5393 __m128d test_mm_mask_permutex2var_pd(__m128d __A, __mmask8 __U, __m128i __I, __m128d __B) {
5394   // CHECK-LABEL: @test_mm_mask_permutex2var_pd
5395   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5396   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5397   return _mm_mask_permutex2var_pd(__A,__U,__I,__B);
5398 }
test_mm_maskz_permutex2var_pd(__mmask8 __U,__m128d __A,__m128i __I,__m128d __B)5399 __m128d test_mm_maskz_permutex2var_pd(__mmask8 __U, __m128d __A, __m128i __I, __m128d __B) {
5400   // CHECK-LABEL: @test_mm_maskz_permutex2var_pd
5401   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5402   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5403   return _mm_maskz_permutex2var_pd(__U,__A,__I,__B);
5404 }
test_mm256_permutex2var_pd(__m256d __A,__m256i __I,__m256d __B)5405 __m256d test_mm256_permutex2var_pd(__m256d __A, __m256i __I, __m256d __B) {
5406   // CHECK-LABEL: @test_mm256_permutex2var_pd
5407   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5408   return _mm256_permutex2var_pd(__A,__I,__B);
5409 }
test_mm256_mask_permutex2var_pd(__m256d __A,__mmask8 __U,__m256i __I,__m256d __B)5410 __m256d test_mm256_mask_permutex2var_pd(__m256d __A, __mmask8 __U, __m256i __I, __m256d __B) {
5411   // CHECK-LABEL: @test_mm256_mask_permutex2var_pd
5412   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5413   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5414   return _mm256_mask_permutex2var_pd(__A,__U,__I,__B);
5415 }
test_mm256_maskz_permutex2var_pd(__mmask8 __U,__m256d __A,__m256i __I,__m256d __B)5416 __m256d test_mm256_maskz_permutex2var_pd(__mmask8 __U, __m256d __A, __m256i __I,  __m256d __B) {
5417   // CHECK-LABEL: @test_mm256_maskz_permutex2var_pd
5418   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5419   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5420   return _mm256_maskz_permutex2var_pd(__U,__A,__I,__B);
5421 }
test_mm_permutex2var_ps(__m128 __A,__m128i __I,__m128 __B)5422 __m128 test_mm_permutex2var_ps(__m128 __A, __m128i __I, __m128 __B) {
5423   // CHECK-LABEL: @test_mm_permutex2var_ps
5424   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5425   return _mm_permutex2var_ps(__A,__I,__B);
5426 }
test_mm_mask_permutex2var_ps(__m128 __A,__mmask8 __U,__m128i __I,__m128 __B)5427 __m128 test_mm_mask_permutex2var_ps(__m128 __A, __mmask8 __U, __m128i __I, __m128 __B) {
5428   // CHECK-LABEL: @test_mm_mask_permutex2var_ps
5429   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5430   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5431   return _mm_mask_permutex2var_ps(__A,__U,__I,__B);
5432 }
test_mm_maskz_permutex2var_ps(__mmask8 __U,__m128 __A,__m128i __I,__m128 __B)5433 __m128 test_mm_maskz_permutex2var_ps(__mmask8 __U, __m128 __A, __m128i __I, __m128 __B) {
5434   // CHECK-LABEL: @test_mm_maskz_permutex2var_ps
5435   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5436   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5437   return _mm_maskz_permutex2var_ps(__U,__A,__I,__B);
5438 }
test_mm256_permutex2var_ps(__m256 __A,__m256i __I,__m256 __B)5439 __m256 test_mm256_permutex2var_ps(__m256 __A, __m256i __I, __m256 __B) {
5440   // CHECK-LABEL: @test_mm256_permutex2var_ps
5441   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5442   return _mm256_permutex2var_ps(__A,__I,__B);
5443 }
test_mm256_mask_permutex2var_ps(__m256 __A,__mmask8 __U,__m256i __I,__m256 __B)5444 __m256 test_mm256_mask_permutex2var_ps(__m256 __A, __mmask8 __U, __m256i __I, __m256 __B) {
5445   // CHECK-LABEL: @test_mm256_mask_permutex2var_ps
5446   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5447   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5448   return _mm256_mask_permutex2var_ps(__A,__U,__I,__B);
5449 }
test_mm256_maskz_permutex2var_ps(__mmask8 __U,__m256 __A,__m256i __I,__m256 __B)5450 __m256 test_mm256_maskz_permutex2var_ps(__mmask8 __U, __m256 __A, __m256i __I, __m256 __B) {
5451   // CHECK-LABEL: @test_mm256_maskz_permutex2var_ps
5452   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5453   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5454   return _mm256_maskz_permutex2var_ps(__U,__A,__I,__B);
5455 }
test_mm_permutex2var_epi64(__m128i __A,__m128i __I,__m128i __B)5456 __m128i test_mm_permutex2var_epi64(__m128i __A, __m128i __I, __m128i __B) {
5457   // CHECK-LABEL: @test_mm_permutex2var_epi64
5458   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5459   return _mm_permutex2var_epi64(__A,__I,__B);
5460 }
test_mm_mask_permutex2var_epi64(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)5461 __m128i test_mm_mask_permutex2var_epi64(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) {
5462   // CHECK-LABEL: @test_mm_mask_permutex2var_epi64
5463   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5464   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5465   return _mm_mask_permutex2var_epi64(__A,__U,__I,__B);
5466 }
test_mm_maskz_permutex2var_epi64(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)5467 __m128i test_mm_maskz_permutex2var_epi64(__mmask8 __U, __m128i __A, __m128i __I, __m128i __B) {
5468   // CHECK-LABEL: @test_mm_maskz_permutex2var_epi64
5469   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5470   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5471   return _mm_maskz_permutex2var_epi64(__U,__A,__I,__B);
5472 }
test_mm256_permutex2var_epi64(__m256i __A,__m256i __I,__m256i __B)5473 __m256i test_mm256_permutex2var_epi64(__m256i __A, __m256i __I, __m256i __B) {
5474   // CHECK-LABEL: @test_mm256_permutex2var_epi64
5475   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5476   return _mm256_permutex2var_epi64(__A,__I,__B);
5477 }
test_mm256_mask_permutex2var_epi64(__m256i __A,__mmask8 __U,__m256i __I,__m256i __B)5478 __m256i test_mm256_mask_permutex2var_epi64(__m256i __A, __mmask8 __U, __m256i __I, __m256i __B) {
5479   // CHECK-LABEL: @test_mm256_mask_permutex2var_epi64
5480   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5481   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5482   return _mm256_mask_permutex2var_epi64(__A,__U,__I,__B);
5483 }
test_mm256_maskz_permutex2var_epi64(__mmask8 __U,__m256i __A,__m256i __I,__m256i __B)5484 __m256i test_mm256_maskz_permutex2var_epi64(__mmask8 __U, __m256i __A, __m256i __I, __m256i __B) {
5485   // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi64
5486   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5487   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5488   return _mm256_maskz_permutex2var_epi64(__U,__A,__I,__B);
5489 }
5490 
test_mm_mask_cvtepi8_epi32(__m128i __W,__mmask8 __U,__m128i __A)5491 __m128i test_mm_mask_cvtepi8_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5492   // CHECK-LABEL: @test_mm_mask_cvtepi8_epi32
5493   // CHECK: sext <4 x i8> %{{.*}} to <4 x i32>
5494   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5495   return _mm_mask_cvtepi8_epi32(__W, __U, __A);
5496 }
5497 
test_mm_maskz_cvtepi8_epi32(__mmask8 __U,__m128i __A)5498 __m128i test_mm_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) {
5499   // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi32
5500   // CHECK: sext <4 x i8> %{{.*}} to <4 x i32>
5501   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5502   return _mm_maskz_cvtepi8_epi32(__U, __A);
5503 }
5504 
test_mm256_mask_cvtepi8_epi32(__m256i __W,__mmask8 __U,__m128i __A)5505 __m256i test_mm256_mask_cvtepi8_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5506   // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi32
5507   // CHECK: sext <8 x i8> %{{.*}} to <8 x i32>
5508   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5509   return _mm256_mask_cvtepi8_epi32(__W, __U, __A);
5510 }
5511 
test_mm256_maskz_cvtepi8_epi32(__mmask8 __U,__m128i __A)5512 __m256i test_mm256_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) {
5513   // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi32
5514   // CHECK: sext <8 x i8> %{{.*}} to <8 x i32>
5515   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5516   return _mm256_maskz_cvtepi8_epi32(__U, __A);
5517 }
5518 
test_mm_mask_cvtepi8_epi64(__m128i __W,__mmask8 __U,__m128i __A)5519 __m128i test_mm_mask_cvtepi8_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5520   // CHECK-LABEL: @test_mm_mask_cvtepi8_epi64
5521   // CHECK: sext <2 x i8> %{{.*}} to <2 x i64>
5522   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5523   return _mm_mask_cvtepi8_epi64(__W, __U, __A);
5524 }
5525 
test_mm_maskz_cvtepi8_epi64(__mmask8 __U,__m128i __A)5526 __m128i test_mm_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
5527   // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi64
5528   // CHECK: sext <2 x i8> %{{.*}} to <2 x i64>
5529   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5530   return _mm_maskz_cvtepi8_epi64(__U, __A);
5531 }
5532 
test_mm256_mask_cvtepi8_epi64(__m256i __W,__mmask8 __U,__m128i __A)5533 __m256i test_mm256_mask_cvtepi8_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5534   // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi64
5535   // CHECK: sext <4 x i8> %{{.*}} to <4 x i64>
5536   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5537   return _mm256_mask_cvtepi8_epi64(__W, __U, __A);
5538 }
5539 
test_mm256_maskz_cvtepi8_epi64(__mmask8 __U,__m128i __A)5540 __m256i test_mm256_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
5541   // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi64
5542   // CHECK: sext <4 x i8> %{{.*}} to <4 x i64>
5543   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5544   return _mm256_maskz_cvtepi8_epi64(__U, __A);
5545 }
5546 
test_mm_mask_cvtepi32_epi64(__m128i __W,__mmask8 __U,__m128i __X)5547 __m128i test_mm_mask_cvtepi32_epi64(__m128i __W, __mmask8 __U, __m128i __X) {
5548   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi64
5549   // CHECK: sext <2 x i32> %{{.*}} to <2 x i64>
5550   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5551   return _mm_mask_cvtepi32_epi64(__W, __U, __X);
5552 }
5553 
test_mm_maskz_cvtepi32_epi64(__mmask8 __U,__m128i __X)5554 __m128i test_mm_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) {
5555   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi64
5556   // CHECK: sext <2 x i32> %{{.*}} to <2 x i64>
5557   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5558   return _mm_maskz_cvtepi32_epi64(__U, __X);
5559 }
5560 
test_mm256_mask_cvtepi32_epi64(__m256i __W,__mmask8 __U,__m128i __X)5561 __m256i test_mm256_mask_cvtepi32_epi64(__m256i __W, __mmask8 __U, __m128i __X) {
5562   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi64
5563   // CHECK: sext <4 x i32> %{{.*}} to <4 x i64>
5564   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5565   return _mm256_mask_cvtepi32_epi64(__W, __U, __X);
5566 }
5567 
test_mm256_maskz_cvtepi32_epi64(__mmask8 __U,__m128i __X)5568 __m256i test_mm256_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) {
5569   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi64
5570   // CHECK: sext <4 x i32> %{{.*}} to <4 x i64>
5571   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5572   return _mm256_maskz_cvtepi32_epi64(__U, __X);
5573 }
5574 
test_mm_mask_cvtepi16_epi32(__m128i __W,__mmask8 __U,__m128i __A)5575 __m128i test_mm_mask_cvtepi16_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5576   // CHECK-LABEL: @test_mm_mask_cvtepi16_epi32
5577   // CHECK: sext <4 x i16> %{{.*}} to <4 x i32>
5578   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5579   return _mm_mask_cvtepi16_epi32(__W, __U, __A);
5580 }
5581 
test_mm_maskz_cvtepi16_epi32(__mmask8 __U,__m128i __A)5582 __m128i test_mm_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) {
5583   // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi32
5584   // CHECK: sext <4 x i16> %{{.*}} to <4 x i32>
5585   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5586   return _mm_maskz_cvtepi16_epi32(__U, __A);
5587 }
5588 
test_mm256_mask_cvtepi16_epi32(__m256i __W,__mmask8 __U,__m128i __A)5589 __m256i test_mm256_mask_cvtepi16_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5590   // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi32
5591   // CHECK: sext <8 x i16> %{{.*}} to <8 x i32>
5592   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5593   return _mm256_mask_cvtepi16_epi32(__W, __U, __A);
5594 }
5595 
test_mm256_maskz_cvtepi16_epi32(__mmask8 __U,__m128i __A)5596 __m256i test_mm256_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) {
5597   // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi32
5598   // CHECK: sext <8 x i16> %{{.*}} to <8 x i32>
5599   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5600   return _mm256_maskz_cvtepi16_epi32(__U, __A);
5601 }
5602 
test_mm_mask_cvtepi16_epi64(__m128i __W,__mmask8 __U,__m128i __A)5603 __m128i test_mm_mask_cvtepi16_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5604   // CHECK-LABEL: @test_mm_mask_cvtepi16_epi64
5605   // CHECK: sext <2 x i16> %{{.*}} to <2 x i64>
5606   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5607   return _mm_mask_cvtepi16_epi64(__W, __U, __A);
5608 }
5609 
test_mm_maskz_cvtepi16_epi64(__mmask8 __U,__m128i __A)5610 __m128i test_mm_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
5611   // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi64
5612   // CHECK: sext <2 x i16> %{{.*}} to <2 x i64>
5613   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5614   return _mm_maskz_cvtepi16_epi64(__U, __A);
5615 }
5616 
test_mm256_mask_cvtepi16_epi64(__m256i __W,__mmask8 __U,__m128i __A)5617 __m256i test_mm256_mask_cvtepi16_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5618   // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi64
5619   // CHECK: sext <4 x i16> %{{.*}} to <4 x i64>
5620   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5621   return _mm256_mask_cvtepi16_epi64(__W, __U, __A);
5622 }
5623 
test_mm256_maskz_cvtepi16_epi64(__mmask8 __U,__m128i __A)5624 __m256i test_mm256_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
5625   // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi64
5626   // CHECK: sext <4 x i16> %{{.*}} to <4 x i64>
5627   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5628   return _mm256_maskz_cvtepi16_epi64(__U, __A);
5629 }
5630 
test_mm_mask_cvtepu8_epi32(__m128i __W,__mmask8 __U,__m128i __A)5631 __m128i test_mm_mask_cvtepu8_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5632   // CHECK-LABEL: @test_mm_mask_cvtepu8_epi32
5633   // CHECK: zext <4 x i8> %{{.*}} to <4 x i32>
5634   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5635   return _mm_mask_cvtepu8_epi32(__W, __U, __A);
5636 }
5637 
test_mm_maskz_cvtepu8_epi32(__mmask8 __U,__m128i __A)5638 __m128i test_mm_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) {
5639   // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi32
5640   // CHECK: zext <4 x i8> %{{.*}} to <4 x i32>
5641   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5642   return _mm_maskz_cvtepu8_epi32(__U, __A);
5643 }
5644 
test_mm256_mask_cvtepu8_epi32(__m256i __W,__mmask8 __U,__m128i __A)5645 __m256i test_mm256_mask_cvtepu8_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5646   // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi32
5647   // CHECK: zext <8 x i8> %{{.*}} to <8 x i32>
5648   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5649   return _mm256_mask_cvtepu8_epi32(__W, __U, __A);
5650 }
5651 
test_mm256_maskz_cvtepu8_epi32(__mmask8 __U,__m128i __A)5652 __m256i test_mm256_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) {
5653   // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi32
5654   // CHECK: zext <8 x i8> %{{.*}} to <8 x i32>
5655   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5656   return _mm256_maskz_cvtepu8_epi32(__U, __A);
5657 }
5658 
test_mm_mask_cvtepu8_epi64(__m128i __W,__mmask8 __U,__m128i __A)5659 __m128i test_mm_mask_cvtepu8_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5660   // CHECK-LABEL: @test_mm_mask_cvtepu8_epi64
5661   // CHECK: zext <2 x i8> %{{.*}} to <2 x i64>
5662   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5663   return _mm_mask_cvtepu8_epi64(__W, __U, __A);
5664 }
5665 
test_mm_maskz_cvtepu8_epi64(__mmask8 __U,__m128i __A)5666 __m128i test_mm_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
5667   // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi64
5668   // CHECK: zext <2 x i8> %{{.*}} to <2 x i64>
5669   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5670   return _mm_maskz_cvtepu8_epi64(__U, __A);
5671 }
5672 
test_mm256_mask_cvtepu8_epi64(__m256i __W,__mmask8 __U,__m128i __A)5673 __m256i test_mm256_mask_cvtepu8_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5674   // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi64
5675   // CHECK: zext <4 x i8> %{{.*}} to <4 x i64>
5676   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5677   return _mm256_mask_cvtepu8_epi64(__W, __U, __A);
5678 }
5679 
test_mm256_maskz_cvtepu8_epi64(__mmask8 __U,__m128i __A)5680 __m256i test_mm256_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
5681   // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi64
5682   // CHECK: zext <4 x i8> %{{.*}} to <4 x i64>
5683   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5684   return _mm256_maskz_cvtepu8_epi64(__U, __A);
5685 }
5686 
test_mm_mask_cvtepu32_epi64(__m128i __W,__mmask8 __U,__m128i __X)5687 __m128i test_mm_mask_cvtepu32_epi64(__m128i __W, __mmask8 __U, __m128i __X) {
5688   // CHECK-LABEL: @test_mm_mask_cvtepu32_epi64
5689   // CHECK: zext <2 x i32> %{{.*}} to <2 x i64>
5690   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5691   return _mm_mask_cvtepu32_epi64(__W, __U, __X);
5692 }
5693 
test_mm_maskz_cvtepu32_epi64(__mmask8 __U,__m128i __X)5694 __m128i test_mm_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) {
5695   // CHECK-LABEL: @test_mm_maskz_cvtepu32_epi64
5696   // CHECK: zext <2 x i32> %{{.*}} to <2 x i64>
5697   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5698   return _mm_maskz_cvtepu32_epi64(__U, __X);
5699 }
5700 
test_mm256_mask_cvtepu32_epi64(__m256i __W,__mmask8 __U,__m128i __X)5701 __m256i test_mm256_mask_cvtepu32_epi64(__m256i __W, __mmask8 __U, __m128i __X) {
5702   // CHECK-LABEL: @test_mm256_mask_cvtepu32_epi64
5703   // CHECK: zext <4 x i32> %{{.*}} to <4 x i64>
5704   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5705   return _mm256_mask_cvtepu32_epi64(__W, __U, __X);
5706 }
5707 
test_mm256_maskz_cvtepu32_epi64(__mmask8 __U,__m128i __X)5708 __m256i test_mm256_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) {
5709   // CHECK-LABEL: @test_mm256_maskz_cvtepu32_epi64
5710   // CHECK: zext <4 x i32> %{{.*}} to <4 x i64>
5711   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5712   return _mm256_maskz_cvtepu32_epi64(__U, __X);
5713 }
5714 
test_mm_mask_cvtepu16_epi32(__m128i __W,__mmask8 __U,__m128i __A)5715 __m128i test_mm_mask_cvtepu16_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5716   // CHECK-LABEL: @test_mm_mask_cvtepu16_epi32
5717   // CHECK: zext <4 x i16> %{{.*}} to <4 x i32>
5718   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5719   return _mm_mask_cvtepu16_epi32(__W, __U, __A);
5720 }
5721 
test_mm_maskz_cvtepu16_epi32(__mmask8 __U,__m128i __A)5722 __m128i test_mm_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) {
5723   // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi32
5724   // CHECK: zext <4 x i16> %{{.*}} to <4 x i32>
5725   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5726   return _mm_maskz_cvtepu16_epi32(__U, __A);
5727 }
5728 
test_mm256_mask_cvtepu16_epi32(__m256i __W,__mmask8 __U,__m128i __A)5729 __m256i test_mm256_mask_cvtepu16_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5730   // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi32
5731   // CHECK: zext <8 x i16> %{{.*}} to <8 x i32>
5732   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5733   return _mm256_mask_cvtepu16_epi32(__W, __U, __A);
5734 }
5735 
test_mm256_maskz_cvtepu16_epi32(__mmask8 __U,__m128i __A)5736 __m256i test_mm256_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) {
5737   // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi32
5738   // CHECK: zext <8 x i16> %{{.*}} to <8 x i32>
5739   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5740   return _mm256_maskz_cvtepu16_epi32(__U, __A);
5741 }
5742 
test_mm_mask_cvtepu16_epi64(__m128i __W,__mmask8 __U,__m128i __A)5743 __m128i test_mm_mask_cvtepu16_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5744   // CHECK-LABEL: @test_mm_mask_cvtepu16_epi64
5745   // CHECK: zext <2 x i16> %{{.*}} to <2 x i64>
5746   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5747   return _mm_mask_cvtepu16_epi64(__W, __U, __A);
5748 }
5749 
test_mm_maskz_cvtepu16_epi64(__mmask8 __U,__m128i __A)5750 __m128i test_mm_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
5751   // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi64
5752   // CHECK: zext <2 x i16> %{{.*}} to <2 x i64>
5753   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5754   return _mm_maskz_cvtepu16_epi64(__U, __A);
5755 }
5756 
test_mm256_mask_cvtepu16_epi64(__m256i __W,__mmask8 __U,__m128i __A)5757 __m256i test_mm256_mask_cvtepu16_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5758   // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi64
5759   // CHECK: zext <4 x i16> %{{.*}} to <4 x i64>
5760   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5761   return _mm256_mask_cvtepu16_epi64(__W, __U, __A);
5762 }
5763 
test_mm256_maskz_cvtepu16_epi64(__mmask8 __U,__m128i __A)5764 __m256i test_mm256_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
5765   // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi64
5766   // CHECK: zext <4 x i16> %{{.*}} to <4 x i64>
5767   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5768   return _mm256_maskz_cvtepu16_epi64(__U, __A);
5769 }
5770 
test_mm_rol_epi32(__m128i __A)5771 __m128i test_mm_rol_epi32(__m128i __A) {
5772   // CHECK-LABEL: @test_mm_rol_epi32
5773   // CHECK: @llvm.fshl.v4i32
5774   return _mm_rol_epi32(__A, 5);
5775 }
5776 
test_mm_mask_rol_epi32(__m128i __W,__mmask8 __U,__m128i __A)5777 __m128i test_mm_mask_rol_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5778   // CHECK-LABEL: @test_mm_mask_rol_epi32
5779   // CHECK: @llvm.fshl.v4i32
5780   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5781   return _mm_mask_rol_epi32(__W, __U, __A, 5);
5782 }
5783 
test_mm_maskz_rol_epi32(__mmask8 __U,__m128i __A)5784 __m128i test_mm_maskz_rol_epi32(__mmask8 __U, __m128i __A) {
5785   // CHECK-LABEL: @test_mm_maskz_rol_epi32
5786   // CHECK: @llvm.fshl.v4i32
5787   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5788   return _mm_maskz_rol_epi32(__U, __A, 5);
5789 }
5790 
test_mm256_rol_epi32(__m256i __A)5791 __m256i test_mm256_rol_epi32(__m256i __A) {
5792   // CHECK-LABEL: @test_mm256_rol_epi32
5793   // CHECK: @llvm.fshl.v8i32
5794   return _mm256_rol_epi32(__A, 5);
5795 }
5796 
test_mm256_mask_rol_epi32(__m256i __W,__mmask8 __U,__m256i __A)5797 __m256i test_mm256_mask_rol_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
5798   // CHECK-LABEL: @test_mm256_mask_rol_epi32
5799   // CHECK: @llvm.fshl.v8i32
5800   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5801   return _mm256_mask_rol_epi32(__W, __U, __A, 5);
5802 }
5803 
test_mm256_maskz_rol_epi32(__mmask8 __U,__m256i __A)5804 __m256i test_mm256_maskz_rol_epi32(__mmask8 __U, __m256i __A) {
5805   // CHECK-LABEL: @test_mm256_maskz_rol_epi32
5806   // CHECK: @llvm.fshl.v8i32
5807   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5808   return _mm256_maskz_rol_epi32(__U, __A, 5);
5809 }
5810 
test_mm_rol_epi64(__m128i __A)5811 __m128i test_mm_rol_epi64(__m128i __A) {
5812   // CHECK-LABEL: @test_mm_rol_epi64
5813   // CHECK: @llvm.fshl.v2i64
5814   return _mm_rol_epi64(__A, 5);
5815 }
5816 
test_mm_mask_rol_epi64(__m128i __W,__mmask8 __U,__m128i __A)5817 __m128i test_mm_mask_rol_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5818   // CHECK-LABEL: @test_mm_mask_rol_epi64
5819   // CHECK: @llvm.fshl.v2i64
5820   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5821   return _mm_mask_rol_epi64(__W, __U, __A, 5);
5822 }
5823 
test_mm_maskz_rol_epi64(__mmask8 __U,__m128i __A)5824 __m128i test_mm_maskz_rol_epi64(__mmask8 __U, __m128i __A) {
5825   // CHECK-LABEL: @test_mm_maskz_rol_epi64
5826   // CHECK: @llvm.fshl.v2i64
5827   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5828   return _mm_maskz_rol_epi64(__U, __A, 5);
5829 }
5830 
test_mm256_rol_epi64(__m256i __A)5831 __m256i test_mm256_rol_epi64(__m256i __A) {
5832   // CHECK-LABEL: @test_mm256_rol_epi64
5833   // CHECK: @llvm.fshl.v4i64
5834   return _mm256_rol_epi64(__A, 5);
5835 }
5836 
test_mm256_mask_rol_epi64(__m256i __W,__mmask8 __U,__m256i __A)5837 __m256i test_mm256_mask_rol_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
5838   // CHECK-LABEL: @test_mm256_mask_rol_epi64
5839   // CHECK: @llvm.fshl.v4i64
5840   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5841   return _mm256_mask_rol_epi64(__W, __U, __A, 5);
5842 }
5843 
test_mm256_maskz_rol_epi64(__mmask8 __U,__m256i __A)5844 __m256i test_mm256_maskz_rol_epi64(__mmask8 __U, __m256i __A) {
5845   // CHECK-LABEL: @test_mm256_maskz_rol_epi64
5846   // CHECK: @llvm.fshl.v4i64
5847   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5848   return _mm256_maskz_rol_epi64(__U, __A, 5);
5849 }
5850 
test_mm_rolv_epi32(__m128i __A,__m128i __B)5851 __m128i test_mm_rolv_epi32(__m128i __A, __m128i __B) {
5852   // CHECK-LABEL: @test_mm_rolv_epi32
5853   // CHECK: llvm.fshl.v4i32
5854   return _mm_rolv_epi32(__A, __B);
5855 }
5856 
test_mm_mask_rolv_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)5857 __m128i test_mm_mask_rolv_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
5858   // CHECK-LABEL: @test_mm_mask_rolv_epi32
5859   // CHECK: llvm.fshl.v4i32
5860   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5861   return _mm_mask_rolv_epi32(__W, __U, __A, __B);
5862 }
5863 
test_mm_maskz_rolv_epi32(__mmask8 __U,__m128i __A,__m128i __B)5864 __m128i test_mm_maskz_rolv_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
5865   // CHECK-LABEL: @test_mm_maskz_rolv_epi32
5866   // CHECK: llvm.fshl.v4i32
5867   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5868   return _mm_maskz_rolv_epi32(__U, __A, __B);
5869 }
5870 
test_mm256_rolv_epi32(__m256i __A,__m256i __B)5871 __m256i test_mm256_rolv_epi32(__m256i __A, __m256i __B) {
5872   // CHECK-LABEL: @test_mm256_rolv_epi32
5873   // CHECK: @llvm.fshl.v8i32
5874   return _mm256_rolv_epi32(__A, __B);
5875 }
5876 
test_mm256_mask_rolv_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)5877 __m256i test_mm256_mask_rolv_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
5878   // CHECK-LABEL: @test_mm256_mask_rolv_epi32
5879   // CHECK: @llvm.fshl.v8i32
5880   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5881   return _mm256_mask_rolv_epi32(__W, __U, __A, __B);
5882 }
5883 
test_mm256_maskz_rolv_epi32(__mmask8 __U,__m256i __A,__m256i __B)5884 __m256i test_mm256_maskz_rolv_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
5885   // CHECK-LABEL: @test_mm256_maskz_rolv_epi32
5886   // CHECK: @llvm.fshl.v8i32
5887   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5888   return _mm256_maskz_rolv_epi32(__U, __A, __B);
5889 }
5890 
test_mm_rolv_epi64(__m128i __A,__m128i __B)5891 __m128i test_mm_rolv_epi64(__m128i __A, __m128i __B) {
5892   // CHECK-LABEL: @test_mm_rolv_epi64
5893   // CHECK: @llvm.fshl.v2i64
5894   return _mm_rolv_epi64(__A, __B);
5895 }
5896 
test_mm_mask_rolv_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)5897 __m128i test_mm_mask_rolv_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
5898   // CHECK-LABEL: @test_mm_mask_rolv_epi64
5899   // CHECK: @llvm.fshl.v2i64
5900   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5901   return _mm_mask_rolv_epi64(__W, __U, __A, __B);
5902 }
5903 
test_mm_maskz_rolv_epi64(__mmask8 __U,__m128i __A,__m128i __B)5904 __m128i test_mm_maskz_rolv_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
5905   // CHECK-LABEL: @test_mm_maskz_rolv_epi64
5906   // CHECK: @llvm.fshl.v2i64
5907   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5908   return _mm_maskz_rolv_epi64(__U, __A, __B);
5909 }
5910 
test_mm256_rolv_epi64(__m256i __A,__m256i __B)5911 __m256i test_mm256_rolv_epi64(__m256i __A, __m256i __B) {
5912   // CHECK-LABEL: @test_mm256_rolv_epi64
5913   // CHECK: @llvm.fshl.v4i64
5914   return _mm256_rolv_epi64(__A, __B);
5915 }
5916 
test_mm256_mask_rolv_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)5917 __m256i test_mm256_mask_rolv_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
5918   // CHECK-LABEL: @test_mm256_mask_rolv_epi64
5919   // CHECK: @llvm.fshl.v4i64
5920   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5921   return _mm256_mask_rolv_epi64(__W, __U, __A, __B);
5922 }
5923 
test_mm256_maskz_rolv_epi64(__mmask8 __U,__m256i __A,__m256i __B)5924 __m256i test_mm256_maskz_rolv_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
5925   // CHECK-LABEL: @test_mm256_maskz_rolv_epi64
5926   // CHECK: @llvm.fshl.v4i64
5927   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5928   return _mm256_maskz_rolv_epi64(__U, __A, __B);
5929 }
5930 
test_mm_ror_epi32(__m128i __A)5931 __m128i test_mm_ror_epi32(__m128i __A) {
5932   // CHECK-LABEL: @test_mm_ror_epi32
5933   // CHECK: @llvm.fshr.v4i32
5934   return _mm_ror_epi32(__A, 5);
5935 }
5936 
test_mm_mask_ror_epi32(__m128i __W,__mmask8 __U,__m128i __A)5937 __m128i test_mm_mask_ror_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5938   // CHECK-LABEL: @test_mm_mask_ror_epi32
5939   // CHECK: @llvm.fshr.v4i32
5940   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5941   return _mm_mask_ror_epi32(__W, __U, __A, 5);
5942 }
5943 
test_mm_maskz_ror_epi32(__mmask8 __U,__m128i __A)5944 __m128i test_mm_maskz_ror_epi32(__mmask8 __U, __m128i __A) {
5945   // CHECK-LABEL: @test_mm_maskz_ror_epi32
5946   // CHECK: @llvm.fshr.v4i32
5947   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5948   return _mm_maskz_ror_epi32(__U, __A, 5);
5949 }
5950 
test_mm256_ror_epi32(__m256i __A)5951 __m256i test_mm256_ror_epi32(__m256i __A) {
5952   // CHECK-LABEL: @test_mm256_ror_epi32
5953   // CHECK: @llvm.fshr.v8i32
5954   return _mm256_ror_epi32(__A, 5);
5955 }
5956 
test_mm256_mask_ror_epi32(__m256i __W,__mmask8 __U,__m256i __A)5957 __m256i test_mm256_mask_ror_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
5958   // CHECK-LABEL: @test_mm256_mask_ror_epi32
5959   // CHECK: @llvm.fshr.v8i32
5960   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5961   return _mm256_mask_ror_epi32(__W, __U, __A, 5);
5962 }
5963 
test_mm256_maskz_ror_epi32(__mmask8 __U,__m256i __A)5964 __m256i test_mm256_maskz_ror_epi32(__mmask8 __U, __m256i __A) {
5965   // CHECK-LABEL: @test_mm256_maskz_ror_epi32
5966   // CHECK: @llvm.fshr.v8i32
5967   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5968   return _mm256_maskz_ror_epi32(__U, __A, 5);
5969 }
5970 
test_mm_ror_epi64(__m128i __A)5971 __m128i test_mm_ror_epi64(__m128i __A) {
5972   // CHECK-LABEL: @test_mm_ror_epi64
5973   // CHECK: @llvm.fshr.v2i64
5974   return _mm_ror_epi64(__A, 5);
5975 }
5976 
test_mm_mask_ror_epi64(__m128i __W,__mmask8 __U,__m128i __A)5977 __m128i test_mm_mask_ror_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5978   // CHECK-LABEL: @test_mm_mask_ror_epi64
5979   // CHECK: @llvm.fshr.v2i64
5980   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5981   return _mm_mask_ror_epi64(__W, __U, __A, 5);
5982 }
5983 
test_mm_maskz_ror_epi64(__mmask8 __U,__m128i __A)5984 __m128i test_mm_maskz_ror_epi64(__mmask8 __U, __m128i __A) {
5985   // CHECK-LABEL: @test_mm_maskz_ror_epi64
5986   // CHECK: @llvm.fshr.v2i64
5987   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5988   return _mm_maskz_ror_epi64(__U, __A, 5);
5989 }
5990 
test_mm256_ror_epi64(__m256i __A)5991 __m256i test_mm256_ror_epi64(__m256i __A) {
5992   // CHECK-LABEL: @test_mm256_ror_epi64
5993   // CHECK: @llvm.fshr.v4i64
5994   return _mm256_ror_epi64(__A, 5);
5995 }
5996 
test_mm256_mask_ror_epi64(__m256i __W,__mmask8 __U,__m256i __A)5997 __m256i test_mm256_mask_ror_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
5998   // CHECK-LABEL: @test_mm256_mask_ror_epi64
5999   // CHECK: @llvm.fshr.v4i64
6000   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6001   return _mm256_mask_ror_epi64(__W, __U, __A,5);
6002 }
6003 
test_mm256_maskz_ror_epi64(__mmask8 __U,__m256i __A)6004 __m256i test_mm256_maskz_ror_epi64(__mmask8 __U, __m256i __A) {
6005   // CHECK-LABEL: @test_mm256_maskz_ror_epi64
6006   // CHECK: @llvm.fshr.v4i64
6007   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6008   return _mm256_maskz_ror_epi64(__U, __A, 5);
6009 }
6010 
6011 
test_mm_rorv_epi32(__m128i __A,__m128i __B)6012 __m128i test_mm_rorv_epi32(__m128i __A, __m128i __B) {
6013   // CHECK-LABEL: @test_mm_rorv_epi32
6014   // CHECK: @llvm.fshr.v4i32
6015   return _mm_rorv_epi32(__A, __B);
6016 }
6017 
test_mm_mask_rorv_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6018 __m128i test_mm_mask_rorv_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6019   // CHECK-LABEL: @test_mm_mask_rorv_epi32
6020   // CHECK: @llvm.fshr.v4i32
6021   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6022   return _mm_mask_rorv_epi32(__W, __U, __A, __B);
6023 }
6024 
test_mm_maskz_rorv_epi32(__mmask8 __U,__m128i __A,__m128i __B)6025 __m128i test_mm_maskz_rorv_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
6026   // CHECK-LABEL: @test_mm_maskz_rorv_epi32
6027   // CHECK: @llvm.fshr.v4i32
6028   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6029   return _mm_maskz_rorv_epi32(__U, __A, __B);
6030 }
6031 
test_mm256_rorv_epi32(__m256i __A,__m256i __B)6032 __m256i test_mm256_rorv_epi32(__m256i __A, __m256i __B) {
6033   // CHECK-LABEL: @test_mm256_rorv_epi32
6034   // CHECK: @llvm.fshr.v8i32
6035   return _mm256_rorv_epi32(__A, __B);
6036 }
6037 
test_mm256_mask_rorv_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)6038 __m256i test_mm256_mask_rorv_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
6039   // CHECK-LABEL: @test_mm256_mask_rorv_epi32
6040   // CHECK: @llvm.fshr.v8i32
6041   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6042   return _mm256_mask_rorv_epi32(__W, __U, __A, __B);
6043 }
6044 
test_mm256_maskz_rorv_epi32(__mmask8 __U,__m256i __A,__m256i __B)6045 __m256i test_mm256_maskz_rorv_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
6046   // CHECK-LABEL: @test_mm256_maskz_rorv_epi32
6047   // CHECK: @llvm.fshr.v8i32
6048   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6049   return _mm256_maskz_rorv_epi32(__U, __A, __B);
6050 }
6051 
test_mm_rorv_epi64(__m128i __A,__m128i __B)6052 __m128i test_mm_rorv_epi64(__m128i __A, __m128i __B) {
6053   // CHECK-LABEL: @test_mm_rorv_epi64
6054   // CHECK: @llvm.fshr.v2i64
6055   return _mm_rorv_epi64(__A, __B);
6056 }
6057 
test_mm_mask_rorv_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6058 __m128i test_mm_mask_rorv_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6059   // CHECK-LABEL: @test_mm_mask_rorv_epi64
6060   // CHECK: @llvm.fshr.v2i64
6061   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6062   return _mm_mask_rorv_epi64(__W, __U, __A, __B);
6063 }
6064 
test_mm_maskz_rorv_epi64(__mmask8 __U,__m128i __A,__m128i __B)6065 __m128i test_mm_maskz_rorv_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
6066   // CHECK-LABEL: @test_mm_maskz_rorv_epi64
6067   // CHECK: @llvm.fshr.v2i64
6068   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6069   return _mm_maskz_rorv_epi64(__U, __A, __B);
6070 }
6071 
test_mm256_rorv_epi64(__m256i __A,__m256i __B)6072 __m256i test_mm256_rorv_epi64(__m256i __A, __m256i __B) {
6073   // CHECK-LABEL: @test_mm256_rorv_epi64
6074   // CHECK: @llvm.fshr.v4i64
6075   return _mm256_rorv_epi64(__A, __B);
6076 }
6077 
test_mm256_mask_rorv_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)6078 __m256i test_mm256_mask_rorv_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
6079   // CHECK-LABEL: @test_mm256_mask_rorv_epi64
6080   // CHECK: @llvm.fshr.v4i64
6081   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6082   return _mm256_mask_rorv_epi64(__W, __U, __A, __B);
6083 }
6084 
test_mm256_maskz_rorv_epi64(__mmask8 __U,__m256i __A,__m256i __B)6085 __m256i test_mm256_maskz_rorv_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
6086   // CHECK-LABEL: @test_mm256_maskz_rorv_epi64
6087   // CHECK: @llvm.fshr.v4i64
6088   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6089   return _mm256_maskz_rorv_epi64(__U, __A, __B);
6090 }
6091 
test_mm_mask_sllv_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6092 __m128i test_mm_mask_sllv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6093   // CHECK-LABEL: @test_mm_mask_sllv_epi64
6094   // CHECK: @llvm.x86.avx2.psllv.q
6095   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6096   return _mm_mask_sllv_epi64(__W, __U, __X, __Y);
6097 }
6098 
test_mm_maskz_sllv_epi64(__mmask8 __U,__m128i __X,__m128i __Y)6099 __m128i test_mm_maskz_sllv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
6100   // CHECK-LABEL: @test_mm_maskz_sllv_epi64
6101   // CHECK: @llvm.x86.avx2.psllv.q
6102   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6103   return _mm_maskz_sllv_epi64(__U, __X, __Y);
6104 }
6105 
test_mm256_mask_sllv_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6106 __m256i test_mm256_mask_sllv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6107   // CHECK-LABEL: @test_mm256_mask_sllv_epi64
6108   // CHECK: @llvm.x86.avx2.psllv.q.256
6109   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6110   return _mm256_mask_sllv_epi64(__W, __U, __X, __Y);
6111 }
6112 
test_mm256_maskz_sllv_epi64(__mmask8 __U,__m256i __X,__m256i __Y)6113 __m256i test_mm256_maskz_sllv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
6114   // CHECK-LABEL: @test_mm256_maskz_sllv_epi64
6115   // CHECK: @llvm.x86.avx2.psllv.q.256
6116   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6117   return _mm256_maskz_sllv_epi64(__U, __X, __Y);
6118 }
6119 
test_mm_mask_sllv_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6120 __m128i test_mm_mask_sllv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6121   // CHECK-LABEL: @test_mm_mask_sllv_epi32
6122   // CHECK: @llvm.x86.avx2.psllv.d
6123   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6124   return _mm_mask_sllv_epi32(__W, __U, __X, __Y);
6125 }
6126 
test_mm_maskz_sllv_epi32(__mmask8 __U,__m128i __X,__m128i __Y)6127 __m128i test_mm_maskz_sllv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
6128   // CHECK-LABEL: @test_mm_maskz_sllv_epi32
6129   // CHECK: @llvm.x86.avx2.psllv.d
6130   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6131   return _mm_maskz_sllv_epi32(__U, __X, __Y);
6132 }
6133 
test_mm256_mask_sllv_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6134 __m256i test_mm256_mask_sllv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6135   // CHECK-LABEL: @test_mm256_mask_sllv_epi32
6136   // CHECK: @llvm.x86.avx2.psllv.d.256
6137   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6138   return _mm256_mask_sllv_epi32(__W, __U, __X, __Y);
6139 }
6140 
test_mm256_maskz_sllv_epi32(__mmask8 __U,__m256i __X,__m256i __Y)6141 __m256i test_mm256_maskz_sllv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
6142   // CHECK-LABEL: @test_mm256_maskz_sllv_epi32
6143   // CHECK: @llvm.x86.avx2.psllv.d.256
6144   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6145   return _mm256_maskz_sllv_epi32(__U, __X, __Y);
6146 }
6147 
test_mm_mask_srlv_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6148 __m128i test_mm_mask_srlv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6149   // CHECK-LABEL: @test_mm_mask_srlv_epi64
6150   // CHECK: @llvm.x86.avx2.psrlv.q
6151   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6152   return _mm_mask_srlv_epi64(__W, __U, __X, __Y);
6153 }
6154 
test_mm_maskz_srlv_epi64(__mmask8 __U,__m128i __X,__m128i __Y)6155 __m128i test_mm_maskz_srlv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
6156   // CHECK-LABEL: @test_mm_maskz_srlv_epi64
6157   // CHECK: @llvm.x86.avx2.psrlv.q
6158   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6159   return _mm_maskz_srlv_epi64(__U, __X, __Y);
6160 }
6161 
test_mm256_mask_srlv_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6162 __m256i test_mm256_mask_srlv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6163   // CHECK-LABEL: @test_mm256_mask_srlv_epi64
6164   // CHECK: @llvm.x86.avx2.psrlv.q.256
6165   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6166   return _mm256_mask_srlv_epi64(__W, __U, __X, __Y);
6167 }
6168 
test_mm256_maskz_srlv_epi64(__mmask8 __U,__m256i __X,__m256i __Y)6169 __m256i test_mm256_maskz_srlv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
6170   // CHECK-LABEL: @test_mm256_maskz_srlv_epi64
6171   // CHECK: @llvm.x86.avx2.psrlv.q.256
6172   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6173   return _mm256_maskz_srlv_epi64(__U, __X, __Y);
6174 }
6175 
test_mm_mask_srlv_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6176 __m128i test_mm_mask_srlv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6177   // CHECK-LABEL: @test_mm_mask_srlv_epi32
6178   // CHECK: @llvm.x86.avx2.psrlv.d
6179   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6180   return _mm_mask_srlv_epi32(__W, __U, __X, __Y);
6181 }
6182 
test_mm_maskz_srlv_epi32(__mmask8 __U,__m128i __X,__m128i __Y)6183 __m128i test_mm_maskz_srlv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
6184   // CHECK-LABEL: @test_mm_maskz_srlv_epi32
6185   // CHECK: @llvm.x86.avx2.psrlv.d
6186   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6187   return _mm_maskz_srlv_epi32(__U, __X, __Y);
6188 }
6189 
test_mm256_mask_srlv_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6190 __m256i test_mm256_mask_srlv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6191   // CHECK-LABEL: @test_mm256_mask_srlv_epi32
6192   // CHECK: @llvm.x86.avx2.psrlv.d.256
6193   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6194   return _mm256_mask_srlv_epi32(__W, __U, __X, __Y);
6195 }
6196 
test_mm256_maskz_srlv_epi32(__mmask8 __U,__m256i __X,__m256i __Y)6197 __m256i test_mm256_maskz_srlv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
6198   // CHECK-LABEL: @test_mm256_maskz_srlv_epi32
6199   // CHECK: @llvm.x86.avx2.psrlv.d.256
6200   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6201   return _mm256_maskz_srlv_epi32(__U, __X, __Y);
6202 }
6203 
test_mm_mask_srl_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6204 __m128i test_mm_mask_srl_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6205   // CHECK-LABEL: @test_mm_mask_srl_epi32
6206   // CHECK: @llvm.x86.sse2.psrl.d
6207   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6208   return _mm_mask_srl_epi32(__W, __U, __A, __B);
6209 }
6210 
test_mm_maskz_srl_epi32(__mmask8 __U,__m128i __A,__m128i __B)6211 __m128i test_mm_maskz_srl_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
6212   // CHECK-LABEL: @test_mm_maskz_srl_epi32
6213   // CHECK: @llvm.x86.sse2.psrl.d
6214   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6215   return _mm_maskz_srl_epi32(__U, __A, __B);
6216 }
6217 
test_mm256_mask_srl_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6218 __m256i test_mm256_mask_srl_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6219   // CHECK-LABEL: @test_mm256_mask_srl_epi32
6220   // CHECK: @llvm.x86.avx2.psrl.d
6221   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6222   return _mm256_mask_srl_epi32(__W, __U, __A, __B);
6223 }
6224 
test_mm256_maskz_srl_epi32(__mmask8 __U,__m256i __A,__m128i __B)6225 __m256i test_mm256_maskz_srl_epi32(__mmask8 __U, __m256i __A, __m128i __B) {
6226   // CHECK-LABEL: @test_mm256_maskz_srl_epi32
6227   // CHECK: @llvm.x86.avx2.psrl.d
6228   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6229   return _mm256_maskz_srl_epi32(__U, __A, __B);
6230 }
6231 
test_mm_mask_srli_epi32(__m128i __W,__mmask8 __U,__m128i __A)6232 __m128i test_mm_mask_srli_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
6233   // CHECK-LABEL: @test_mm_mask_srli_epi32
6234   // CHECK: @llvm.x86.sse2.psrli.d
6235   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6236   return _mm_mask_srli_epi32(__W, __U, __A, 5);
6237 }
6238 
test_mm_mask_srli_epi32_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)6239 __m128i test_mm_mask_srli_epi32_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
6240   // CHECK-LABEL: @test_mm_mask_srli_epi32_2
6241   // CHECK: @llvm.x86.sse2.psrli.d
6242   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6243   return _mm_mask_srli_epi32(__W, __U, __A, __B);
6244 }
6245 
test_mm_maskz_srli_epi32(__mmask8 __U,__m128i __A)6246 __m128i test_mm_maskz_srli_epi32(__mmask8 __U, __m128i __A) {
6247   // CHECK-LABEL: @test_mm_maskz_srli_epi32
6248   // CHECK: @llvm.x86.sse2.psrli.d
6249   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6250   return _mm_maskz_srli_epi32(__U, __A, 5);
6251 }
6252 
test_mm_maskz_srli_epi32_2(__mmask8 __U,__m128i __A,unsigned int __B)6253 __m128i test_mm_maskz_srli_epi32_2(__mmask8 __U, __m128i __A, unsigned int __B) {
6254   // CHECK-LABEL: @test_mm_maskz_srli_epi32_2
6255   // CHECK: @llvm.x86.sse2.psrli.d
6256   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6257   return _mm_maskz_srli_epi32(__U, __A, __B);
6258 }
6259 
test_mm256_mask_srli_epi32(__m256i __W,__mmask8 __U,__m256i __A)6260 __m256i test_mm256_mask_srli_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
6261   // CHECK-LABEL: @test_mm256_mask_srli_epi32
6262   // CHECK: @llvm.x86.avx2.psrli.d
6263   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6264   return _mm256_mask_srli_epi32(__W, __U, __A, 5);
6265 }
6266 
test_mm256_mask_srli_epi32_2(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)6267 __m256i test_mm256_mask_srli_epi32_2(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B) {
6268   // CHECK-LABEL: @test_mm256_mask_srli_epi32_2
6269   // CHECK: @llvm.x86.avx2.psrli.d
6270   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6271   return _mm256_mask_srli_epi32(__W, __U, __A, __B);
6272 }
6273 
test_mm256_maskz_srli_epi32(__mmask8 __U,__m256i __A)6274 __m256i test_mm256_maskz_srli_epi32(__mmask8 __U, __m256i __A) {
6275   // CHECK-LABEL: @test_mm256_maskz_srli_epi32
6276   // CHECK: @llvm.x86.avx2.psrli.d
6277   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6278   return _mm256_maskz_srli_epi32(__U, __A, 5);
6279 }
6280 
test_mm256_maskz_srli_epi32_2(__mmask8 __U,__m256i __A,unsigned int __B)6281 __m256i test_mm256_maskz_srli_epi32_2(__mmask8 __U, __m256i __A, unsigned int __B) {
6282   // CHECK-LABEL: @test_mm256_maskz_srli_epi32_2
6283   // CHECK: @llvm.x86.avx2.psrli.d
6284   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6285   return _mm256_maskz_srli_epi32(__U, __A, __B);
6286 }
test_mm_mask_srl_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6287 __m128i test_mm_mask_srl_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6288   // CHECK-LABEL: @test_mm_mask_srl_epi64
6289   // CHECK: @llvm.x86.sse2.psrl.q
6290   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6291   return _mm_mask_srl_epi64(__W, __U, __A, __B);
6292 }
6293 
test_mm_maskz_srl_epi64(__mmask8 __U,__m128i __A,__m128i __B)6294 __m128i test_mm_maskz_srl_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
6295   // CHECK-LABEL: @test_mm_maskz_srl_epi64
6296   // CHECK: @llvm.x86.sse2.psrl.q
6297   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6298   return _mm_maskz_srl_epi64(__U, __A, __B);
6299 }
6300 
test_mm256_mask_srl_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6301 __m256i test_mm256_mask_srl_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6302   // CHECK-LABEL: @test_mm256_mask_srl_epi64
6303   // CHECK: @llvm.x86.avx2.psrl.q
6304   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6305   return _mm256_mask_srl_epi64(__W, __U, __A, __B);
6306 }
6307 
test_mm256_maskz_srl_epi64(__mmask8 __U,__m256i __A,__m128i __B)6308 __m256i test_mm256_maskz_srl_epi64(__mmask8 __U, __m256i __A, __m128i __B) {
6309   // CHECK-LABEL: @test_mm256_maskz_srl_epi64
6310   // CHECK: @llvm.x86.avx2.psrl.q
6311   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6312   return _mm256_maskz_srl_epi64(__U, __A, __B);
6313 }
6314 
test_mm_mask_srli_epi64(__m128i __W,__mmask8 __U,__m128i __A)6315 __m128i test_mm_mask_srli_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
6316   // CHECK-LABEL: @test_mm_mask_srli_epi64
6317   // CHECK: @llvm.x86.sse2.psrli.q
6318   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6319   return _mm_mask_srli_epi64(__W, __U, __A, 5);
6320 }
6321 
test_mm_mask_srli_epi64_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)6322 __m128i test_mm_mask_srli_epi64_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
6323   // CHECK-LABEL: @test_mm_mask_srli_epi64_2
6324   // CHECK: @llvm.x86.sse2.psrli.q
6325   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6326   return _mm_mask_srli_epi64(__W, __U, __A, __B);
6327 }
6328 
test_mm_maskz_srli_epi64(__mmask8 __U,__m128i __A)6329 __m128i test_mm_maskz_srli_epi64(__mmask8 __U, __m128i __A) {
6330   // CHECK-LABEL: @test_mm_maskz_srli_epi64
6331   // CHECK: @llvm.x86.sse2.psrli.q
6332   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6333   return _mm_maskz_srli_epi64(__U, __A, 5);
6334 }
6335 
test_mm_maskz_srli_epi64_2(__mmask8 __U,__m128i __A,unsigned int __B)6336 __m128i test_mm_maskz_srli_epi64_2(__mmask8 __U, __m128i __A, unsigned int __B) {
6337   // CHECK-LABEL: @test_mm_maskz_srli_epi64_2
6338   // CHECK: @llvm.x86.sse2.psrli.q
6339   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6340   return _mm_maskz_srli_epi64(__U, __A, __B);
6341 }
6342 
test_mm256_mask_srli_epi64(__m256i __W,__mmask8 __U,__m256i __A)6343 __m256i test_mm256_mask_srli_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
6344   // CHECK-LABEL: @test_mm256_mask_srli_epi64
6345   // CHECK: @llvm.x86.avx2.psrli.q
6346   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6347   return _mm256_mask_srli_epi64(__W, __U, __A, 5);
6348 }
6349 
test_mm256_mask_srli_epi64_2(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)6350 __m256i test_mm256_mask_srli_epi64_2(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B) {
6351   // CHECK-LABEL: @test_mm256_mask_srli_epi64_2
6352   // CHECK: @llvm.x86.avx2.psrli.q
6353   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6354   return _mm256_mask_srli_epi64(__W, __U, __A, __B);
6355 }
6356 
test_mm256_maskz_srli_epi64(__mmask8 __U,__m256i __A)6357 __m256i test_mm256_maskz_srli_epi64(__mmask8 __U, __m256i __A) {
6358   // CHECK-LABEL: @test_mm256_maskz_srli_epi64
6359   // CHECK: @llvm.x86.avx2.psrli.q
6360   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6361   return _mm256_maskz_srli_epi64(__U, __A, 5);
6362 }
6363 
test_mm256_maskz_srli_epi64_2(__mmask8 __U,__m256i __A,unsigned int __B)6364 __m256i test_mm256_maskz_srli_epi64_2(__mmask8 __U,__m256i __A, unsigned int __B) {
6365   // CHECK-LABEL: @test_mm256_maskz_srli_epi64_2
6366   // CHECK: @llvm.x86.avx2.psrli.q
6367   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6368   return _mm256_maskz_srli_epi64(__U, __A, __B);
6369 }
6370 
test_mm_mask_sll_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6371 __m128i test_mm_mask_sll_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6372   // CHECK-LABEL: @test_mm_mask_sll_epi32
6373   // CHECK: @llvm.x86.sse2.psll.d
6374   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6375   return _mm_mask_sll_epi32(__W, __U, __A, __B);
6376 }
6377 
test_mm_maskz_sll_epi32(__mmask8 __U,__m128i __A,__m128i __B)6378 __m128i test_mm_maskz_sll_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
6379   // CHECK-LABEL: @test_mm_maskz_sll_epi32
6380   // CHECK: @llvm.x86.sse2.psll.d
6381   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6382   return _mm_maskz_sll_epi32(__U, __A, __B);
6383 }
6384 
test_mm256_mask_sll_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6385 __m256i test_mm256_mask_sll_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6386   // CHECK-LABEL: @test_mm256_mask_sll_epi32
6387   // CHECK: @llvm.x86.avx2.psll.d
6388   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6389   return _mm256_mask_sll_epi32(__W, __U, __A, __B);
6390 }
6391 
test_mm256_maskz_sll_epi32(__mmask8 __U,__m256i __A,__m128i __B)6392 __m256i test_mm256_maskz_sll_epi32(__mmask8 __U, __m256i __A, __m128i __B) {
6393   // CHECK-LABEL: @test_mm256_maskz_sll_epi32
6394   // CHECK: @llvm.x86.avx2.psll.d
6395   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6396   return _mm256_maskz_sll_epi32(__U, __A, __B);
6397 }
6398 
test_mm_mask_slli_epi32(__m128i __W,__mmask8 __U,__m128i __A)6399 __m128i test_mm_mask_slli_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
6400   // CHECK-LABEL: @test_mm_mask_slli_epi32
6401   // CHECK: @llvm.x86.sse2.pslli.d
6402   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6403   return _mm_mask_slli_epi32(__W, __U, __A, 5);
6404 }
6405 
test_mm_mask_slli_epi32_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)6406 __m128i test_mm_mask_slli_epi32_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
6407   // CHECK-LABEL: @test_mm_mask_slli_epi32_2
6408   // CHECK: @llvm.x86.sse2.pslli.d
6409   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6410   return _mm_mask_slli_epi32(__W, __U, __A, __B);
6411 }
6412 
test_mm_maskz_slli_epi32(__mmask8 __U,__m128i __A)6413 __m128i test_mm_maskz_slli_epi32(__mmask8 __U, __m128i __A) {
6414   // CHECK-LABEL: @test_mm_maskz_slli_epi32
6415   // CHECK: @llvm.x86.sse2.pslli.d
6416   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6417   return _mm_maskz_slli_epi32(__U, __A, 5);
6418 }
6419 
test_mm_maskz_slli_epi32_2(__mmask8 __U,__m128i __A,unsigned int __B)6420 __m128i test_mm_maskz_slli_epi32_2(__mmask8 __U, __m128i __A, unsigned int __B) {
6421   // CHECK-LABEL: @test_mm_maskz_slli_epi32_2
6422   // CHECK: @llvm.x86.sse2.pslli.d
6423   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6424   return _mm_maskz_slli_epi32(__U, __A, __B);
6425 }
6426 
test_mm256_mask_slli_epi32(__m256i __W,__mmask8 __U,__m256i __A)6427 __m256i test_mm256_mask_slli_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
6428   // CHECK-LABEL: @test_mm256_mask_slli_epi32
6429   // CHECK: @llvm.x86.avx2.pslli.d
6430   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6431   return _mm256_mask_slli_epi32(__W, __U, __A, 5);
6432 }
6433 
test_mm256_mask_slli_epi32_2(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)6434 __m256i test_mm256_mask_slli_epi32_2(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B) {
6435   // CHECK-LABEL: @test_mm256_mask_slli_epi32_2
6436   // CHECK: @llvm.x86.avx2.pslli.d
6437   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6438   return _mm256_mask_slli_epi32(__W, __U, __A, __B);
6439 }
6440 
test_mm256_maskz_slli_epi32(__mmask8 __U,__m256i __A)6441 __m256i test_mm256_maskz_slli_epi32(__mmask8 __U, __m256i __A) {
6442   // CHECK-LABEL: @test_mm256_maskz_slli_epi32
6443   // CHECK: @llvm.x86.avx2.pslli.d
6444   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6445   return _mm256_maskz_slli_epi32(__U, __A, 5);
6446 }
6447 
test_mm256_maskz_slli_epi32_2(__mmask8 __U,__m256i __A,unsigned int __B)6448 __m256i test_mm256_maskz_slli_epi32_2(__mmask8 __U, __m256i __A, unsigned int __B) {
6449   // CHECK-LABEL: @test_mm256_maskz_slli_epi32_2
6450   // CHECK: @llvm.x86.avx2.pslli.d
6451   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6452   return _mm256_maskz_slli_epi32(__U, __A, __B);
6453 }
6454 
test_mm_mask_sll_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6455 __m128i test_mm_mask_sll_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6456   // CHECK-LABEL: @test_mm_mask_sll_epi64
6457   // CHECK: @llvm.x86.sse2.psll.q
6458   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6459   return _mm_mask_sll_epi64(__W, __U, __A, __B);
6460 }
6461 
test_mm_maskz_sll_epi64(__mmask8 __U,__m128i __A,__m128i __B)6462 __m128i test_mm_maskz_sll_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
6463   // CHECK-LABEL: @test_mm_maskz_sll_epi64
6464   // CHECK: @llvm.x86.sse2.psll.q
6465   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6466   return _mm_maskz_sll_epi64(__U, __A, __B);
6467 }
6468 
test_mm256_mask_sll_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6469 __m256i test_mm256_mask_sll_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6470   // CHECK-LABEL: @test_mm256_mask_sll_epi64
6471   // CHECK: @llvm.x86.avx2.psll.q
6472   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6473   return _mm256_mask_sll_epi64(__W, __U, __A, __B);
6474 }
6475 
test_mm256_maskz_sll_epi64(__mmask8 __U,__m256i __A,__m128i __B)6476 __m256i test_mm256_maskz_sll_epi64(__mmask8 __U, __m256i __A, __m128i __B) {
6477   // CHECK-LABEL: @test_mm256_maskz_sll_epi64
6478   // CHECK: @llvm.x86.avx2.psll.q
6479   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6480   return _mm256_maskz_sll_epi64(__U, __A, __B);
6481 }
6482 
test_mm_mask_slli_epi64(__m128i __W,__mmask8 __U,__m128i __A)6483 __m128i test_mm_mask_slli_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
6484   // CHECK-LABEL: @test_mm_mask_slli_epi64
6485   // CHECK: @llvm.x86.sse2.pslli.q
6486   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6487   return _mm_mask_slli_epi64(__W, __U, __A, 5);
6488 }
6489 
test_mm_mask_slli_epi64_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)6490 __m128i test_mm_mask_slli_epi64_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
6491   // CHECK-LABEL: @test_mm_mask_slli_epi64_2
6492   // CHECK: @llvm.x86.sse2.pslli.q
6493   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6494   return _mm_mask_slli_epi64(__W, __U, __A, __B);
6495 }
6496 
test_mm_maskz_slli_epi64(__mmask8 __U,__m128i __A)6497 __m128i test_mm_maskz_slli_epi64(__mmask8 __U, __m128i __A) {
6498   // CHECK-LABEL: @test_mm_maskz_slli_epi64
6499   // CHECK: @llvm.x86.sse2.pslli.q
6500   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6501   return _mm_maskz_slli_epi64(__U, __A, 5);
6502 }
6503 
test_mm_maskz_slli_epi64_2(__mmask8 __U,__m128i __A,unsigned int __B)6504 __m128i test_mm_maskz_slli_epi64_2(__mmask8 __U, __m128i __A, unsigned int __B) {
6505   // CHECK-LABEL: @test_mm_maskz_slli_epi64_2
6506   // CHECK: @llvm.x86.sse2.pslli.q
6507   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6508   return _mm_maskz_slli_epi64(__U, __A, __B);
6509 }
6510 
test_mm256_mask_slli_epi64(__m256i __W,__mmask8 __U,__m256i __A)6511 __m256i test_mm256_mask_slli_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
6512   // CHECK-LABEL: @test_mm256_mask_slli_epi64
6513   // CHECK: @llvm.x86.avx2.pslli.q
6514   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6515   return _mm256_mask_slli_epi64(__W, __U, __A, 5);
6516 }
6517 
test_mm256_mask_slli_epi64_2(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)6518 __m256i test_mm256_mask_slli_epi64_2(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B) {
6519   // CHECK-LABEL: @test_mm256_mask_slli_epi64_2
6520   // CHECK: @llvm.x86.avx2.pslli.q
6521   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6522   return _mm256_mask_slli_epi64(__W, __U, __A, __B);
6523 }
6524 
test_mm256_maskz_slli_epi64(__mmask8 __U,__m256i __A)6525 __m256i test_mm256_maskz_slli_epi64(__mmask8 __U, __m256i __A) {
6526   // CHECK-LABEL: @test_mm256_maskz_slli_epi64
6527   // CHECK: @llvm.x86.avx2.pslli.q
6528   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6529   return _mm256_maskz_slli_epi64(__U, __A, 5);
6530 }
6531 
test_mm256_maskz_slli_epi64_2(__mmask8 __U,__m256i __A,unsigned int __B)6532 __m256i test_mm256_maskz_slli_epi64_2(__mmask8 __U, __m256i __A, unsigned int __B) {
6533   // CHECK-LABEL: @test_mm256_maskz_slli_epi64_2
6534   // CHECK: @llvm.x86.avx2.pslli.q
6535   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6536   return _mm256_maskz_slli_epi64(__U, __A, __B);
6537 }
6538 
test_mm_mask_srav_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6539 __m128i test_mm_mask_srav_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6540   // CHECK-LABEL: @test_mm_mask_srav_epi32
6541   // CHECK: @llvm.x86.avx2.psrav.d
6542   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6543   return _mm_mask_srav_epi32(__W, __U, __X, __Y);
6544 }
6545 
test_mm_maskz_srav_epi32(__mmask8 __U,__m128i __X,__m128i __Y)6546 __m128i test_mm_maskz_srav_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
6547   // CHECK-LABEL: @test_mm_maskz_srav_epi32
6548   // CHECK: @llvm.x86.avx2.psrav.d
6549   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6550   return _mm_maskz_srav_epi32(__U, __X, __Y);
6551 }
6552 
test_mm256_mask_srav_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6553 __m256i test_mm256_mask_srav_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6554   // CHECK-LABEL: @test_mm256_mask_srav_epi32
6555   // CHECK: @llvm.x86.avx2.psrav.d.256
6556   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6557   return _mm256_mask_srav_epi32(__W, __U, __X, __Y);
6558 }
6559 
test_mm256_maskz_srav_epi32(__mmask8 __U,__m256i __X,__m256i __Y)6560 __m256i test_mm256_maskz_srav_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
6561   // CHECK-LABEL: @test_mm256_maskz_srav_epi32
6562   // CHECK: @llvm.x86.avx2.psrav.d.256
6563   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6564   return _mm256_maskz_srav_epi32(__U, __X, __Y);
6565 }
6566 
test_mm_srav_epi64(__m128i __X,__m128i __Y)6567 __m128i test_mm_srav_epi64(__m128i __X, __m128i __Y) {
6568   // CHECK-LABEL: @test_mm_srav_epi64
6569   // CHECK: @llvm.x86.avx512.psrav.q.128
6570   return _mm_srav_epi64(__X, __Y);
6571 }
6572 
test_mm_mask_srav_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6573 __m128i test_mm_mask_srav_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6574   // CHECK-LABEL: @test_mm_mask_srav_epi64
6575   // CHECK: @llvm.x86.avx512.psrav.q.128
6576   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6577   return _mm_mask_srav_epi64(__W, __U, __X, __Y);
6578 }
6579 
test_mm_maskz_srav_epi64(__mmask8 __U,__m128i __X,__m128i __Y)6580 __m128i test_mm_maskz_srav_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
6581   // CHECK-LABEL: @test_mm_maskz_srav_epi64
6582   // CHECK: @llvm.x86.avx512.psrav.q.128
6583   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6584   return _mm_maskz_srav_epi64(__U, __X, __Y);
6585 }
6586 
test_mm256_srav_epi64(__m256i __X,__m256i __Y)6587 __m256i test_mm256_srav_epi64(__m256i __X, __m256i __Y) {
6588   // CHECK-LABEL: @test_mm256_srav_epi64
6589   // CHECK: @llvm.x86.avx512.psrav.q.256
6590   return _mm256_srav_epi64(__X, __Y);
6591 }
6592 
test_mm256_mask_srav_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6593 __m256i test_mm256_mask_srav_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6594   // CHECK-LABEL: @test_mm256_mask_srav_epi64
6595   // CHECK: @llvm.x86.avx512.psrav.q.256
6596   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6597   return _mm256_mask_srav_epi64(__W, __U, __X, __Y);
6598 }
6599 
test_mm256_maskz_srav_epi64(__mmask8 __U,__m256i __X,__m256i __Y)6600 __m256i test_mm256_maskz_srav_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
6601   // CHECK-LABEL: @test_mm256_maskz_srav_epi64
6602   // CHECK: @llvm.x86.avx512.psrav.q.256
6603   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6604   return _mm256_maskz_srav_epi64(__U, __X, __Y);
6605 }
6606 
test_mm_store_epi32(void * __P,__m128i __A)6607 void test_mm_store_epi32(void *__P, __m128i __A) {
6608   // CHECK-LABEL: @test_mm_store_epi32
6609   // CHECK: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}
6610   return _mm_store_epi32(__P, __A);
6611 }
6612 
test_mm_mask_store_epi32(void * __P,__mmask8 __U,__m128i __A)6613 void test_mm_mask_store_epi32(void *__P, __mmask8 __U, __m128i __A) {
6614   // CHECK-LABEL: @test_mm_mask_store_epi32
6615   // CHECK: @llvm.masked.store.v4i32.p0v4i32(<4 x i32> %{{.*}}, <4 x i32>* %{{.}}, i32 16, <4 x i1> %{{.*}})
6616   return _mm_mask_store_epi32(__P, __U, __A);
6617 }
6618 
test_mm256_store_epi32(void * __P,__m256i __A)6619 void test_mm256_store_epi32(void *__P, __m256i __A) {
6620   // CHECK-LABEL: @test_mm256_store_epi32
6621   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}
6622   return _mm256_store_epi32(__P, __A);
6623 }
6624 
test_mm256_mask_store_epi32(void * __P,__mmask8 __U,__m256i __A)6625 void test_mm256_mask_store_epi32(void *__P, __mmask8 __U, __m256i __A) {
6626   // CHECK-LABEL: @test_mm256_mask_store_epi32
6627   // CHECK: @llvm.masked.store.v8i32.p0v8i32(<8 x i32> %{{.*}}, <8 x i32>* %{{.}}, i32 32, <8 x i1> %{{.*}})
6628   return _mm256_mask_store_epi32(__P, __U, __A);
6629 }
6630 
test_mm_mask_mov_epi32(__m128i __W,__mmask8 __U,__m128i __A)6631 __m128i test_mm_mask_mov_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
6632   // CHECK-LABEL: @test_mm_mask_mov_epi32
6633   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6634   return _mm_mask_mov_epi32(__W, __U, __A);
6635 }
6636 
test_mm_maskz_mov_epi32(__mmask8 __U,__m128i __A)6637 __m128i test_mm_maskz_mov_epi32(__mmask8 __U, __m128i __A) {
6638   // CHECK-LABEL: @test_mm_maskz_mov_epi32
6639   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6640   return _mm_maskz_mov_epi32(__U, __A);
6641 }
6642 
test_mm256_mask_mov_epi32(__m256i __W,__mmask8 __U,__m256i __A)6643 __m256i test_mm256_mask_mov_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
6644   // CHECK-LABEL: @test_mm256_mask_mov_epi32
6645   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6646   return _mm256_mask_mov_epi32(__W, __U, __A);
6647 }
6648 
test_mm256_maskz_mov_epi32(__mmask8 __U,__m256i __A)6649 __m256i test_mm256_maskz_mov_epi32(__mmask8 __U, __m256i __A) {
6650   // CHECK-LABEL: @test_mm256_maskz_mov_epi32
6651   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6652   return _mm256_maskz_mov_epi32(__U, __A);
6653 }
6654 
test_mm_mask_mov_epi64(__m128i __W,__mmask8 __U,__m128i __A)6655 __m128i test_mm_mask_mov_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
6656   // CHECK-LABEL: @test_mm_mask_mov_epi64
6657   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6658   return _mm_mask_mov_epi64(__W, __U, __A);
6659 }
6660 
test_mm_maskz_mov_epi64(__mmask8 __U,__m128i __A)6661 __m128i test_mm_maskz_mov_epi64(__mmask8 __U, __m128i __A) {
6662   // CHECK-LABEL: @test_mm_maskz_mov_epi64
6663   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6664   return _mm_maskz_mov_epi64(__U, __A);
6665 }
6666 
test_mm256_mask_mov_epi64(__m256i __W,__mmask8 __U,__m256i __A)6667 __m256i test_mm256_mask_mov_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
6668   // CHECK-LABEL: @test_mm256_mask_mov_epi64
6669   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6670   return _mm256_mask_mov_epi64(__W, __U, __A);
6671 }
6672 
test_mm256_maskz_mov_epi64(__mmask8 __U,__m256i __A)6673 __m256i test_mm256_maskz_mov_epi64(__mmask8 __U, __m256i __A) {
6674   // CHECK-LABEL: @test_mm256_maskz_mov_epi64
6675   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6676   return _mm256_maskz_mov_epi64(__U, __A);
6677 }
6678 
test_mm_load_epi32(void const * __P)6679 __m128i test_mm_load_epi32(void const *__P) {
6680   // CHECK-LABEL: @test_mm_load_epi32
6681   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}
6682   return _mm_load_epi32(__P);
6683 }
6684 
test_mm_mask_load_epi32(__m128i __W,__mmask8 __U,void const * __P)6685 __m128i test_mm_mask_load_epi32(__m128i __W, __mmask8 __U, void const *__P) {
6686   // CHECK-LABEL: @test_mm_mask_load_epi32
6687   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
6688   return _mm_mask_load_epi32(__W, __U, __P);
6689 }
6690 
test_mm_maskz_load_epi32(__mmask8 __U,void const * __P)6691 __m128i test_mm_maskz_load_epi32(__mmask8 __U, void const *__P) {
6692   // CHECK-LABEL: @test_mm_maskz_load_epi32
6693   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
6694   return _mm_maskz_load_epi32(__U, __P);
6695 }
6696 
test_mm256_load_epi32(void const * __P)6697 __m256i test_mm256_load_epi32(void const *__P) {
6698   // CHECK-LABEL: @test_mm256_load_epi32
6699   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}
6700   return _mm256_load_epi32(__P);
6701 }
6702 
test_mm256_mask_load_epi32(__m256i __W,__mmask8 __U,void const * __P)6703 __m256i test_mm256_mask_load_epi32(__m256i __W, __mmask8 __U, void const *__P) {
6704   // CHECK-LABEL: @test_mm256_mask_load_epi32
6705   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
6706   return _mm256_mask_load_epi32(__W, __U, __P);
6707 }
6708 
test_mm256_maskz_load_epi32(__mmask8 __U,void const * __P)6709 __m256i test_mm256_maskz_load_epi32(__mmask8 __U, void const *__P) {
6710   // CHECK-LABEL: @test_mm256_maskz_load_epi32
6711   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
6712   return _mm256_maskz_load_epi32(__U, __P);
6713 }
6714 
test_mm_load_epi64(void const * __P)6715 __m128i test_mm_load_epi64(void const *__P) {
6716   // CHECK-LABEL: @test_mm_load_epi64
6717   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}
6718   return _mm_load_epi64(__P);
6719 }
6720 
test_mm_mask_load_epi64(__m128i __W,__mmask8 __U,void const * __P)6721 __m128i test_mm_mask_load_epi64(__m128i __W, __mmask8 __U, void const *__P) {
6722   // CHECK-LABEL: @test_mm_mask_load_epi64
6723   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
6724   return _mm_mask_load_epi64(__W, __U, __P);
6725 }
6726 
test_mm_maskz_load_epi64(__mmask8 __U,void const * __P)6727 __m128i test_mm_maskz_load_epi64(__mmask8 __U, void const *__P) {
6728   // CHECK-LABEL: @test_mm_maskz_load_epi64
6729   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
6730   return _mm_maskz_load_epi64(__U, __P);
6731 }
6732 
test_mm256_load_epi64(void const * __P)6733 __m256i test_mm256_load_epi64(void const *__P) {
6734   // CHECK-LABEL: @test_mm256_load_epi64
6735   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}
6736   return _mm256_load_epi64(__P);
6737 }
6738 
test_mm256_mask_load_epi64(__m256i __W,__mmask8 __U,void const * __P)6739 __m256i test_mm256_mask_load_epi64(__m256i __W, __mmask8 __U, void const *__P) {
6740   // CHECK-LABEL: @test_mm256_mask_load_epi64
6741   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
6742   return _mm256_mask_load_epi64(__W, __U, __P);
6743 }
6744 
test_mm256_maskz_load_epi64(__mmask8 __U,void const * __P)6745 __m256i test_mm256_maskz_load_epi64(__mmask8 __U, void const *__P) {
6746   // CHECK-LABEL: @test_mm256_maskz_load_epi64
6747   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
6748   return _mm256_maskz_load_epi64(__U, __P);
6749 }
6750 
test_mm_store_epi64(void * __P,__m128i __A)6751 void test_mm_store_epi64(void *__P, __m128i __A) {
6752   // CHECK-LABEL: @test_mm_store_epi64
6753   // CHECK: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}
6754   return _mm_store_epi64(__P, __A);
6755 }
6756 
test_mm_mask_store_epi64(void * __P,__mmask8 __U,__m128i __A)6757 void test_mm_mask_store_epi64(void *__P, __mmask8 __U, __m128i __A) {
6758   // CHECK-LABEL: @test_mm_mask_store_epi64
6759   // CHECK: @llvm.masked.store.v2i64.p0v2i64(<2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}})
6760   return _mm_mask_store_epi64(__P, __U, __A);
6761 }
6762 
test_mm256_store_epi64(void * __P,__m256i __A)6763 void test_mm256_store_epi64(void *__P, __m256i __A) {
6764   // CHECK-LABEL: @test_mm256_store_epi64
6765   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}
6766   return _mm256_store_epi64(__P, __A);
6767 }
6768 
test_mm256_mask_store_epi64(void * __P,__mmask8 __U,__m256i __A)6769 void test_mm256_mask_store_epi64(void *__P, __mmask8 __U, __m256i __A) {
6770   // CHECK-LABEL: @test_mm256_mask_store_epi64
6771   // CHECK: @llvm.masked.store.v4i64.p0v4i64(<4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}})
6772   return _mm256_mask_store_epi64(__P, __U, __A);
6773 }
6774 
test_mm_mask_movedup_pd(__m128d __W,__mmask8 __U,__m128d __A)6775 __m128d test_mm_mask_movedup_pd(__m128d __W, __mmask8 __U, __m128d __A) {
6776   // CHECK-LABEL: @test_mm_mask_movedup_pd
6777   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> zeroinitializer
6778   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
6779   return _mm_mask_movedup_pd(__W, __U, __A);
6780 }
6781 
test_mm_maskz_movedup_pd(__mmask8 __U,__m128d __A)6782 __m128d test_mm_maskz_movedup_pd(__mmask8 __U, __m128d __A) {
6783   // CHECK-LABEL: @test_mm_maskz_movedup_pd
6784   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> zeroinitializer
6785   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
6786   return _mm_maskz_movedup_pd(__U, __A);
6787 }
6788 
test_mm256_mask_movedup_pd(__m256d __W,__mmask8 __U,__m256d __A)6789 __m256d test_mm256_mask_movedup_pd(__m256d __W, __mmask8 __U, __m256d __A) {
6790   // CHECK-LABEL: @test_mm256_mask_movedup_pd
6791   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
6792   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
6793   return _mm256_mask_movedup_pd(__W, __U, __A);
6794 }
6795 
test_mm256_maskz_movedup_pd(__mmask8 __U,__m256d __A)6796 __m256d test_mm256_maskz_movedup_pd(__mmask8 __U, __m256d __A) {
6797   // CHECK-LABEL: @test_mm256_maskz_movedup_pd
6798   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
6799   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
6800   return _mm256_maskz_movedup_pd(__U, __A);
6801 }
6802 
test_mm_mask_set1_epi32(__m128i __O,__mmask8 __M)6803 __m128i test_mm_mask_set1_epi32(__m128i __O, __mmask8 __M) {
6804   // CHECK-LABEL: @test_mm_mask_set1_epi32
6805   // CHECK: insertelement <4 x i32> undef, i32 %{{.*}}, i32 0
6806   // CHECK: insertelement <4 x i32> %{{.*}}32 1
6807   // CHECK: insertelement <4 x i32> %{{.*}}32 2
6808   // CHECK: insertelement <4 x i32> %{{.*}}32 3
6809   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6810   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6811   return _mm_mask_set1_epi32(__O, __M, 5);
6812 }
6813 
test_mm_maskz_set1_epi32(__mmask8 __M)6814 __m128i test_mm_maskz_set1_epi32(__mmask8 __M) {
6815   // CHECK-LABEL: @test_mm_maskz_set1_epi32
6816   // CHECK: insertelement <4 x i32> undef, i32 %{{.*}}, i32 0
6817   // CHECK: insertelement <4 x i32> %{{.*}}32 1
6818   // CHECK: insertelement <4 x i32> %{{.*}}32 2
6819   // CHECK: insertelement <4 x i32> %{{.*}}32 3
6820   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6821   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6822   return _mm_maskz_set1_epi32(__M, 5);
6823 }
6824 
test_mm256_mask_set1_epi32(__m256i __O,__mmask8 __M)6825 __m256i test_mm256_mask_set1_epi32(__m256i __O, __mmask8 __M) {
6826   // CHECK-LABEL: @test_mm256_mask_set1_epi32
6827   // CHECK:  insertelement <8 x i32> undef, i32 %{{.*}}, i32 0
6828   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 1
6829   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 2
6830   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 3
6831   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 4
6832   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 5
6833   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 6
6834   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 7
6835   // CHECK:  select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6836   return _mm256_mask_set1_epi32(__O, __M, 5);
6837 }
6838 
test_mm256_maskz_set1_epi32(__mmask8 __M)6839 __m256i test_mm256_maskz_set1_epi32(__mmask8 __M) {
6840   // CHECK-LABEL: @test_mm256_maskz_set1_epi32
6841   // CHECK:  insertelement <8 x i32> undef, i32 %{{.*}}, i32 0
6842   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 1
6843   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 2
6844   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 3
6845   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 4
6846   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 5
6847   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 6
6848   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 7
6849   // CHECK:  select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6850   return _mm256_maskz_set1_epi32(__M, 5);
6851 }
6852 
test_mm_mask_set1_epi64(__m128i __O,__mmask8 __M,long long __A)6853 __m128i test_mm_mask_set1_epi64(__m128i __O, __mmask8 __M, long long __A) {
6854   // CHECK-LABEL: @test_mm_mask_set1_epi64
6855   // CHECK: insertelement <2 x i64> undef, i64 %{{.*}}, i32 0
6856   // CHECK: insertelement <2 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6857   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
6858   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6859   return _mm_mask_set1_epi64(__O, __M, __A);
6860 }
6861 
test_mm_maskz_set1_epi64(__mmask8 __M,long long __A)6862 __m128i test_mm_maskz_set1_epi64(__mmask8 __M, long long __A) {
6863   // CHECK-LABEL: @test_mm_maskz_set1_epi64
6864   // CHECK: insertelement <2 x i64> undef, i64 %{{.*}}, i32 0
6865   // CHECK: insertelement <2 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6866   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
6867   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6868   return _mm_maskz_set1_epi64(__M, __A);
6869 }
6870 
test_mm256_mask_set1_epi64(__m256i __O,__mmask8 __M,long long __A)6871 __m256i test_mm256_mask_set1_epi64(__m256i __O, __mmask8 __M, long long __A) {
6872   // CHECK-LABEL: @test_mm256_mask_set1_epi64
6873   // CHECK: insertelement <4 x i64> undef, i64 %{{.*}}, i32 0
6874   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6875   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 2
6876   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 3
6877   // CHECK:  shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6878   // CHECK:  select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6879   return _mm256_mask_set1_epi64(__O, __M, __A);
6880 }
6881 
test_mm256_maskz_set1_epi64(__mmask8 __M,long long __A)6882 __m256i test_mm256_maskz_set1_epi64(__mmask8 __M, long long __A) {
6883   // CHECK-LABEL: @test_mm256_maskz_set1_epi64
6884   // CHECK: insertelement <4 x i64> undef, i64 %{{.*}}, i32 0
6885   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6886   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 2
6887   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 3
6888   // CHECK:  shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6889   // CHECK:  select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6890   return _mm256_maskz_set1_epi64(__M, __A);
6891 }
6892 
test_mm_fixupimm_pd(__m128d __A,__m128d __B,__m128i __C)6893 __m128d test_mm_fixupimm_pd(__m128d __A, __m128d __B, __m128i __C) {
6894   // CHECK-LABEL: @test_mm_fixupimm_pd
6895   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.128
6896   return _mm_fixupimm_pd(__A, __B, __C, 5);
6897 }
6898 
test_mm_mask_fixupimm_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128i __C)6899 __m128d test_mm_mask_fixupimm_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128i __C) {
6900   // CHECK-LABEL: @test_mm_mask_fixupimm_pd
6901   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.128
6902   return _mm_mask_fixupimm_pd(__A, __U, __B, __C, 5);
6903 }
6904 
test_mm_maskz_fixupimm_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128i __C)6905 __m128d test_mm_maskz_fixupimm_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128i __C) {
6906   // CHECK-LABEL: @test_mm_maskz_fixupimm_pd
6907   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.128
6908   return _mm_maskz_fixupimm_pd(__U, __A, __B, __C, 5);
6909 }
6910 
test_mm256_fixupimm_pd(__m256d __A,__m256d __B,__m256i __C)6911 __m256d test_mm256_fixupimm_pd(__m256d __A, __m256d __B, __m256i __C) {
6912   // CHECK-LABEL: @test_mm256_fixupimm_pd
6913   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.256
6914   return _mm256_fixupimm_pd(__A, __B, __C, 5);
6915 }
6916 
test_mm256_mask_fixupimm_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256i __C)6917 __m256d test_mm256_mask_fixupimm_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256i __C) {
6918   // CHECK-LABEL: @test_mm256_mask_fixupimm_pd
6919   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.256
6920   return _mm256_mask_fixupimm_pd(__A, __U, __B, __C, 5);
6921 }
6922 
test_mm256_maskz_fixupimm_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256i __C)6923 __m256d test_mm256_maskz_fixupimm_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256i __C) {
6924   // CHECK-LABEL: @test_mm256_maskz_fixupimm_pd
6925   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.256
6926   return _mm256_maskz_fixupimm_pd(__U, __A, __B, __C, 5);
6927 }
6928 
test_mm_fixupimm_ps(__m128 __A,__m128 __B,__m128i __C)6929 __m128 test_mm_fixupimm_ps(__m128 __A, __m128 __B, __m128i __C) {
6930   // CHECK-LABEL: @test_mm_fixupimm_ps
6931   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.128
6932   return _mm_fixupimm_ps(__A, __B, __C, 5);
6933 }
6934 
test_mm_mask_fixupimm_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128i __C)6935 __m128 test_mm_mask_fixupimm_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128i __C) {
6936   // CHECK-LABEL: @test_mm_mask_fixupimm_ps
6937   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.128
6938   return _mm_mask_fixupimm_ps(__A, __U, __B, __C, 5);
6939 }
6940 
test_mm_maskz_fixupimm_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128i __C)6941 __m128 test_mm_maskz_fixupimm_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128i __C) {
6942   // CHECK-LABEL: @test_mm_maskz_fixupimm_ps
6943   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.128
6944   return _mm_maskz_fixupimm_ps(__U, __A, __B, __C, 5);
6945 }
6946 
test_mm256_fixupimm_ps(__m256 __A,__m256 __B,__m256i __C)6947 __m256 test_mm256_fixupimm_ps(__m256 __A, __m256 __B, __m256i __C) {
6948   // CHECK-LABEL: @test_mm256_fixupimm_ps
6949   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.256
6950   return _mm256_fixupimm_ps(__A, __B, __C, 5);
6951 }
6952 
test_mm256_mask_fixupimm_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256i __C)6953 __m256 test_mm256_mask_fixupimm_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256i __C) {
6954   // CHECK-LABEL: @test_mm256_mask_fixupimm_ps
6955   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.256
6956   return _mm256_mask_fixupimm_ps(__A, __U, __B, __C, 5);
6957 }
6958 
test_mm256_maskz_fixupimm_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256i __C)6959 __m256 test_mm256_maskz_fixupimm_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256i __C) {
6960   // CHECK-LABEL: @test_mm256_maskz_fixupimm_ps
6961   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.256
6962   return _mm256_maskz_fixupimm_ps(__U, __A, __B, __C, 5);
6963 }
6964 
test_mm_mask_load_pd(__m128d __W,__mmask8 __U,void const * __P)6965 __m128d test_mm_mask_load_pd(__m128d __W, __mmask8 __U, void const *__P) {
6966   // CHECK-LABEL: @test_mm_mask_load_pd
6967   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
6968   return _mm_mask_load_pd(__W, __U, __P);
6969 }
6970 
test_mm_maskz_load_pd(__mmask8 __U,void const * __P)6971 __m128d test_mm_maskz_load_pd(__mmask8 __U, void const *__P) {
6972   // CHECK-LABEL: @test_mm_maskz_load_pd
6973   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
6974   return _mm_maskz_load_pd(__U, __P);
6975 }
6976 
test_mm256_mask_load_pd(__m256d __W,__mmask8 __U,void const * __P)6977 __m256d test_mm256_mask_load_pd(__m256d __W, __mmask8 __U, void const *__P) {
6978   // CHECK-LABEL: @test_mm256_mask_load_pd
6979   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
6980   return _mm256_mask_load_pd(__W, __U, __P);
6981 }
6982 
test_mm256_maskz_load_pd(__mmask8 __U,void const * __P)6983 __m256d test_mm256_maskz_load_pd(__mmask8 __U, void const *__P) {
6984   // CHECK-LABEL: @test_mm256_maskz_load_pd
6985   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
6986   return _mm256_maskz_load_pd(__U, __P);
6987 }
6988 
test_mm_mask_load_ps(__m128 __W,__mmask8 __U,void const * __P)6989 __m128 test_mm_mask_load_ps(__m128 __W, __mmask8 __U, void const *__P) {
6990   // CHECK-LABEL: @test_mm_mask_load_ps
6991   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
6992   return _mm_mask_load_ps(__W, __U, __P);
6993 }
6994 
test_mm_maskz_load_ps(__mmask8 __U,void const * __P)6995 __m128 test_mm_maskz_load_ps(__mmask8 __U, void const *__P) {
6996   // CHECK-LABEL: @test_mm_maskz_load_ps
6997   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
6998   return _mm_maskz_load_ps(__U, __P);
6999 }
7000 
test_mm256_mask_load_ps(__m256 __W,__mmask8 __U,void const * __P)7001 __m256 test_mm256_mask_load_ps(__m256 __W, __mmask8 __U, void const *__P) {
7002   // CHECK-LABEL: @test_mm256_mask_load_ps
7003   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
7004   return _mm256_mask_load_ps(__W, __U, __P);
7005 }
7006 
test_mm256_maskz_load_ps(__mmask8 __U,void const * __P)7007 __m256 test_mm256_maskz_load_ps(__mmask8 __U, void const *__P) {
7008   // CHECK-LABEL: @test_mm256_maskz_load_ps
7009   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
7010   return _mm256_maskz_load_ps(__U, __P);
7011 }
7012 
test_mm_loadu_epi64(void const * __P)7013 __m128i test_mm_loadu_epi64(void const *__P) {
7014   // CHECK-LABEL: @test_mm_loadu_epi64
7015   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
7016   return _mm_loadu_epi64(__P);
7017 }
7018 
test_mm_mask_loadu_epi64(__m128i __W,__mmask8 __U,void const * __P)7019 __m128i test_mm_mask_loadu_epi64(__m128i __W, __mmask8 __U, void const *__P) {
7020   // CHECK-LABEL: @test_mm_mask_loadu_epi64
7021   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
7022   return _mm_mask_loadu_epi64(__W, __U, __P);
7023 }
7024 
test_mm_maskz_loadu_epi64(__mmask8 __U,void const * __P)7025 __m128i test_mm_maskz_loadu_epi64(__mmask8 __U, void const *__P) {
7026   // CHECK-LABEL: @test_mm_maskz_loadu_epi64
7027   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
7028   return _mm_maskz_loadu_epi64(__U, __P);
7029 }
7030 
test_mm256_loadu_epi64(void const * __P)7031 __m256i test_mm256_loadu_epi64(void const *__P) {
7032   // CHECK-LABEL: @test_mm256_loadu_epi64
7033   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}, align 1{{$}}
7034   return _mm256_loadu_epi64(__P);
7035 }
7036 
test_mm256_mask_loadu_epi64(__m256i __W,__mmask8 __U,void const * __P)7037 __m256i test_mm256_mask_loadu_epi64(__m256i __W, __mmask8 __U, void const *__P) {
7038   // CHECK-LABEL: @test_mm256_mask_loadu_epi64
7039   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
7040   return _mm256_mask_loadu_epi64(__W, __U, __P);
7041 }
7042 
test_mm256_maskz_loadu_epi64(__mmask8 __U,void const * __P)7043 __m256i test_mm256_maskz_loadu_epi64(__mmask8 __U, void const *__P) {
7044   // CHECK-LABEL: @test_mm256_maskz_loadu_epi64
7045   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
7046   return _mm256_maskz_loadu_epi64(__U, __P);
7047 }
7048 
test_mm_loadu_epi32(void const * __P)7049 __m128i test_mm_loadu_epi32(void const *__P) {
7050   // CHECK-LABEL: @test_mm_loadu_epi32
7051   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
7052   return _mm_loadu_epi32(__P);
7053 }
7054 
test_mm_mask_loadu_epi32(__m128i __W,__mmask8 __U,void const * __P)7055 __m128i test_mm_mask_loadu_epi32(__m128i __W, __mmask8 __U, void const *__P) {
7056   // CHECK-LABEL: @test_mm_mask_loadu_epi32
7057   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
7058   return _mm_mask_loadu_epi32(__W, __U, __P);
7059 }
7060 
test_mm_maskz_loadu_epi32(__mmask8 __U,void const * __P)7061 __m128i test_mm_maskz_loadu_epi32(__mmask8 __U, void const *__P) {
7062   // CHECK-LABEL: @test_mm_maskz_loadu_epi32
7063   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
7064   return _mm_maskz_loadu_epi32(__U, __P);
7065 }
7066 
test_mm256_loadu_epi32(void const * __P)7067 __m256i test_mm256_loadu_epi32(void const *__P) {
7068   // CHECK-LABEL: @test_mm256_loadu_epi32
7069   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}, align 1{{$}}
7070   return _mm256_loadu_epi32(__P);
7071 }
7072 
test_mm256_mask_loadu_epi32(__m256i __W,__mmask8 __U,void const * __P)7073 __m256i test_mm256_mask_loadu_epi32(__m256i __W, __mmask8 __U, void const *__P) {
7074   // CHECK-LABEL: @test_mm256_mask_loadu_epi32
7075   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
7076   return _mm256_mask_loadu_epi32(__W, __U, __P);
7077 }
7078 
test_mm256_maskz_loadu_epi32(__mmask8 __U,void const * __P)7079 __m256i test_mm256_maskz_loadu_epi32(__mmask8 __U, void const *__P) {
7080   // CHECK-LABEL: @test_mm256_maskz_loadu_epi32
7081   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
7082   return _mm256_maskz_loadu_epi32(__U, __P);
7083 }
7084 
test_mm_mask_loadu_pd(__m128d __W,__mmask8 __U,void const * __P)7085 __m128d test_mm_mask_loadu_pd(__m128d __W, __mmask8 __U, void const *__P) {
7086   // CHECK-LABEL: @test_mm_mask_loadu_pd
7087   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
7088   return _mm_mask_loadu_pd(__W, __U, __P);
7089 }
7090 
test_mm_maskz_loadu_pd(__mmask8 __U,void const * __P)7091 __m128d test_mm_maskz_loadu_pd(__mmask8 __U, void const *__P) {
7092   // CHECK-LABEL: @test_mm_maskz_loadu_pd
7093   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
7094   return _mm_maskz_loadu_pd(__U, __P);
7095 }
7096 
test_mm256_mask_loadu_pd(__m256d __W,__mmask8 __U,void const * __P)7097 __m256d test_mm256_mask_loadu_pd(__m256d __W, __mmask8 __U, void const *__P) {
7098   // CHECK-LABEL: @test_mm256_mask_loadu_pd
7099   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
7100   return _mm256_mask_loadu_pd(__W, __U, __P);
7101 }
7102 
test_mm256_maskz_loadu_pd(__mmask8 __U,void const * __P)7103 __m256d test_mm256_maskz_loadu_pd(__mmask8 __U, void const *__P) {
7104   // CHECK-LABEL: @test_mm256_maskz_loadu_pd
7105   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
7106   return _mm256_maskz_loadu_pd(__U, __P);
7107 }
7108 
test_mm_mask_loadu_ps(__m128 __W,__mmask8 __U,void const * __P)7109 __m128 test_mm_mask_loadu_ps(__m128 __W, __mmask8 __U, void const *__P) {
7110   // CHECK-LABEL: @test_mm_mask_loadu_ps
7111   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
7112   return _mm_mask_loadu_ps(__W, __U, __P);
7113 }
7114 
test_mm_maskz_loadu_ps(__mmask8 __U,void const * __P)7115 __m128 test_mm_maskz_loadu_ps(__mmask8 __U, void const *__P) {
7116   // CHECK-LABEL: @test_mm_maskz_loadu_ps
7117   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
7118   return _mm_maskz_loadu_ps(__U, __P);
7119 }
7120 
test_mm256_mask_loadu_ps(__m256 __W,__mmask8 __U,void const * __P)7121 __m256 test_mm256_mask_loadu_ps(__m256 __W, __mmask8 __U, void const *__P) {
7122   // CHECK-LABEL: @test_mm256_mask_loadu_ps
7123   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
7124   return _mm256_mask_loadu_ps(__W, __U, __P);
7125 }
7126 
test_mm256_maskz_loadu_ps(__mmask8 __U,void const * __P)7127 __m256 test_mm256_maskz_loadu_ps(__mmask8 __U, void const *__P) {
7128   // CHECK-LABEL: @test_mm256_maskz_loadu_ps
7129   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
7130   return _mm256_maskz_loadu_ps(__U, __P);
7131 }
7132 
test_mm_mask_store_pd(void * __P,__mmask8 __U,__m128d __A)7133 void test_mm_mask_store_pd(void *__P, __mmask8 __U, __m128d __A) {
7134   // CHECK-LABEL: @test_mm_mask_store_pd
7135   // CHECK: @llvm.masked.store.v2f64.p0v2f64(<2 x double> %{{.*}}, <2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}})
7136   return _mm_mask_store_pd(__P, __U, __A);
7137 }
7138 
test_mm256_mask_store_pd(void * __P,__mmask8 __U,__m256d __A)7139 void test_mm256_mask_store_pd(void *__P, __mmask8 __U, __m256d __A) {
7140   // CHECK-LABEL: @test_mm256_mask_store_pd
7141   // CHECK: @llvm.masked.store.v4f64.p0v4f64(<4 x double> %{{.*}}, <4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}})
7142   return _mm256_mask_store_pd(__P, __U, __A);
7143 }
7144 
test_mm_mask_store_ps(void * __P,__mmask8 __U,__m128 __A)7145 void test_mm_mask_store_ps(void *__P, __mmask8 __U, __m128 __A) {
7146   // CHECK-LABEL: @test_mm_mask_store_ps
7147   // CHECK: @llvm.masked.store.v4f32.p0v4f32(<4 x float> %{{.*}}, <4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}})
7148   return _mm_mask_store_ps(__P, __U, __A);
7149 }
7150 
test_mm256_mask_store_ps(void * __P,__mmask8 __U,__m256 __A)7151 void test_mm256_mask_store_ps(void *__P, __mmask8 __U, __m256 __A) {
7152   // CHECK-LABEL: @test_mm256_mask_store_ps
7153   // CHECK: @llvm.masked.store.v8f32.p0v8f32(<8 x float> %{{.*}}, <8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}})
7154   return _mm256_mask_store_ps(__P, __U, __A);
7155 }
7156 
test_mm_storeu_epi64(void * __p,__m128i __a)7157 void test_mm_storeu_epi64(void *__p, __m128i __a) {
7158   // check-label: @test_mm_storeu_epi64
7159   // check: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1{{$}}
7160   return _mm_storeu_epi64(__p, __a);
7161 }
7162 
test_mm_mask_storeu_epi64(void * __P,__mmask8 __U,__m128i __A)7163 void test_mm_mask_storeu_epi64(void *__P, __mmask8 __U, __m128i __A) {
7164   // CHECK-LABEL: @test_mm_mask_storeu_epi64
7165   // CHECK: @llvm.masked.store.v2i64.p0v2i64(<2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}})
7166   return _mm_mask_storeu_epi64(__P, __U, __A);
7167 }
7168 
test_mm256_storeu_epi64(void * __P,__m256i __A)7169 void test_mm256_storeu_epi64(void *__P, __m256i __A) {
7170   // CHECK-LABEL: @test_mm256_storeu_epi64
7171   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, align 1{{$}}
7172   return _mm256_storeu_epi64(__P, __A);
7173 }
7174 
test_mm256_mask_storeu_epi64(void * __P,__mmask8 __U,__m256i __A)7175 void test_mm256_mask_storeu_epi64(void *__P, __mmask8 __U, __m256i __A) {
7176   // CHECK-LABEL: @test_mm256_mask_storeu_epi64
7177   // CHECK: @llvm.masked.store.v4i64.p0v4i64(<4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7178   return _mm256_mask_storeu_epi64(__P, __U, __A);
7179 }
7180 
test_mm_storeu_epi32(void * __P,__m128i __A)7181 void test_mm_storeu_epi32(void *__P, __m128i __A) {
7182   // CHECK-LABEL: @test_mm_storeu_epi32
7183   // CHECK: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1{{$}}
7184   return _mm_storeu_epi32(__P, __A);
7185 }
7186 
test_mm_mask_storeu_epi32(void * __P,__mmask8 __U,__m128i __A)7187 void test_mm_mask_storeu_epi32(void *__P, __mmask8 __U, __m128i __A) {
7188   // CHECK-LABEL: @test_mm_mask_storeu_epi32
7189   // CHECK: @llvm.masked.store.v4i32.p0v4i32(<4 x i32> %{{.*}}, <4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7190   return _mm_mask_storeu_epi32(__P, __U, __A);
7191 }
7192 
test_mm256_storeu_epi32(void * __P,__m256i __A)7193 void test_mm256_storeu_epi32(void *__P, __m256i __A) {
7194   // CHECK-LABEL: @test_mm256_storeu_epi32
7195   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, align 1{{$}}
7196   return _mm256_storeu_epi32(__P, __A);
7197 }
7198 
test_mm256_mask_storeu_epi32(void * __P,__mmask8 __U,__m256i __A)7199 void test_mm256_mask_storeu_epi32(void *__P, __mmask8 __U, __m256i __A) {
7200   // CHECK-LABEL: @test_mm256_mask_storeu_epi32
7201   // CHECK: @llvm.masked.store.v8i32.p0v8i32(<8 x i32> %{{.*}}, <8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
7202   return _mm256_mask_storeu_epi32(__P, __U, __A);
7203 }
7204 
test_mm_mask_storeu_pd(void * __P,__mmask8 __U,__m128d __A)7205 void test_mm_mask_storeu_pd(void *__P, __mmask8 __U, __m128d __A) {
7206   // CHECK-LABEL: @test_mm_mask_storeu_pd
7207   // CHECK: @llvm.masked.store.v2f64.p0v2f64(<2 x double> %{{.*}}, <2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}})
7208   return _mm_mask_storeu_pd(__P, __U, __A);
7209 }
7210 
test_mm256_mask_storeu_pd(void * __P,__mmask8 __U,__m256d __A)7211 void test_mm256_mask_storeu_pd(void *__P, __mmask8 __U, __m256d __A) {
7212   // CHECK-LABEL: @test_mm256_mask_storeu_pd
7213   // CHECK: @llvm.masked.store.v4f64.p0v4f64(<4 x double> %{{.*}}, <4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7214   return _mm256_mask_storeu_pd(__P, __U, __A);
7215 }
7216 
test_mm_mask_storeu_ps(void * __P,__mmask8 __U,__m128 __A)7217 void test_mm_mask_storeu_ps(void *__P, __mmask8 __U, __m128 __A) {
7218   // CHECK-LABEL: @test_mm_mask_storeu_ps
7219   // CHECK: @llvm.masked.store.v4f32.p0v4f32(<4 x float> %{{.*}}, <4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7220   return _mm_mask_storeu_ps(__P, __U, __A);
7221 }
7222 
test_mm256_mask_storeu_ps(void * __P,__mmask8 __U,__m256 __A)7223 void test_mm256_mask_storeu_ps(void *__P, __mmask8 __U, __m256 __A) {
7224   // CHECK-LABEL: @test_mm256_mask_storeu_ps
7225   // CHECK: @llvm.masked.store.v8f32.p0v8f32(<8 x float> %{{.*}}, <8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
7226   return _mm256_mask_storeu_ps(__P, __U, __A);
7227 }
7228 
test_mm_mask_unpackhi_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)7229 __m128d test_mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
7230   // CHECK-LABEL: @test_mm_mask_unpackhi_pd
7231   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
7232   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7233   return _mm_mask_unpackhi_pd(__W, __U, __A, __B);
7234 }
7235 
test_mm_maskz_unpackhi_pd(__mmask8 __U,__m128d __A,__m128d __B)7236 __m128d test_mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B) {
7237   // CHECK-LABEL: @test_mm_maskz_unpackhi_pd
7238   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
7239   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7240   return _mm_maskz_unpackhi_pd(__U, __A, __B);
7241 }
7242 
test_mm256_mask_unpackhi_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)7243 __m256d test_mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
7244   // CHECK-LABEL: @test_mm256_mask_unpackhi_pd
7245   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7246   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7247   return _mm256_mask_unpackhi_pd(__W, __U, __A, __B);
7248 }
7249 
test_mm256_maskz_unpackhi_pd(__mmask8 __U,__m256d __A,__m256d __B)7250 __m256d test_mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B) {
7251   // CHECK-LABEL: @test_mm256_maskz_unpackhi_pd
7252   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7253   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7254   return _mm256_maskz_unpackhi_pd(__U, __A, __B);
7255 }
7256 
test_mm_mask_unpackhi_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)7257 __m128 test_mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
7258   // CHECK-LABEL: @test_mm_mask_unpackhi_ps
7259   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7260   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}} <4 x float> %{{.*}}
7261   return _mm_mask_unpackhi_ps(__W, __U, __A, __B);
7262 }
7263 
test_mm_maskz_unpackhi_ps(__mmask8 __U,__m128 __A,__m128 __B)7264 __m128 test_mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B) {
7265   // CHECK-LABEL: @test_mm_maskz_unpackhi_ps
7266   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7267   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}} <4 x float> %{{.*}}
7268   return _mm_maskz_unpackhi_ps(__U, __A, __B);
7269 }
7270 
test_mm256_mask_unpackhi_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)7271 __m256 test_mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
7272   // CHECK-LABEL: @test_mm256_mask_unpackhi_ps
7273   // 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>
7274   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7275   return _mm256_mask_unpackhi_ps(__W, __U, __A, __B);
7276 }
7277 
test_mm256_maskz_unpackhi_ps(__mmask8 __U,__m256 __A,__m256 __B)7278 __m256 test_mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B) {
7279   // CHECK-LABEL: @test_mm256_maskz_unpackhi_ps
7280   // 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>
7281   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7282   return _mm256_maskz_unpackhi_ps(__U, __A, __B);
7283 }
7284 
test_mm_mask_unpacklo_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)7285 __m128d test_mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
7286   // CHECK-LABEL: @test_mm_mask_unpacklo_pd
7287   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 0, i32 2>
7288   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7289   return _mm_mask_unpacklo_pd(__W, __U, __A, __B);
7290 }
7291 
test_mm_maskz_unpacklo_pd(__mmask8 __U,__m128d __A,__m128d __B)7292 __m128d test_mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B) {
7293   // CHECK-LABEL: @test_mm_maskz_unpacklo_pd
7294   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 0, i32 2>
7295   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7296   return _mm_maskz_unpacklo_pd(__U, __A, __B);
7297 }
7298 
test_mm256_mask_unpacklo_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)7299 __m256d test_mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
7300   // CHECK-LABEL: @test_mm256_mask_unpacklo_pd
7301   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7302   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7303   return _mm256_mask_unpacklo_pd(__W, __U, __A, __B);
7304 }
7305 
test_mm256_maskz_unpacklo_pd(__mmask8 __U,__m256d __A,__m256d __B)7306 __m256d test_mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B) {
7307   // CHECK-LABEL: @test_mm256_maskz_unpacklo_pd
7308   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7309   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7310   return _mm256_maskz_unpacklo_pd(__U, __A, __B);
7311 }
7312 
test_mm_mask_unpacklo_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)7313 __m128 test_mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
7314   // CHECK-LABEL: @test_mm_mask_unpacklo_ps
7315   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7316   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
7317   return _mm_mask_unpacklo_ps(__W, __U, __A, __B);
7318 }
7319 
test_mm_maskz_unpacklo_ps(__mmask8 __U,__m128 __A,__m128 __B)7320 __m128 test_mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B) {
7321   // CHECK-LABEL: @test_mm_maskz_unpacklo_ps
7322   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7323   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
7324   return _mm_maskz_unpacklo_ps(__U, __A, __B);
7325 }
7326 
test_mm256_mask_unpacklo_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)7327 __m256 test_mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
7328   // CHECK-LABEL: @test_mm256_mask_unpacklo_ps
7329   // 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>
7330   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7331   return _mm256_mask_unpacklo_ps(__W, __U, __A, __B);
7332 }
7333 
test_mm256_maskz_unpacklo_ps(__mmask8 __U,__m256 __A,__m256 __B)7334 __m256 test_mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B) {
7335   // CHECK-LABEL: @test_mm256_maskz_unpacklo_ps
7336   // 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>
7337   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7338   return _mm256_maskz_unpacklo_ps(__U, __A, __B);
7339 }
7340 
test_mm_rcp14_pd(__m128d __A)7341 __m128d test_mm_rcp14_pd(__m128d __A) {
7342   // CHECK-LABEL: @test_mm_rcp14_pd
7343   // CHECK: @llvm.x86.avx512.rcp14.pd.128
7344   return _mm_rcp14_pd(__A);
7345 }
7346 
test_mm_mask_rcp14_pd(__m128d __W,__mmask8 __U,__m128d __A)7347 __m128d test_mm_mask_rcp14_pd(__m128d __W, __mmask8 __U, __m128d __A) {
7348   // CHECK-LABEL: @test_mm_mask_rcp14_pd
7349   // CHECK: @llvm.x86.avx512.rcp14.pd.128
7350   return _mm_mask_rcp14_pd(__W, __U, __A);
7351 }
7352 
test_mm_maskz_rcp14_pd(__mmask8 __U,__m128d __A)7353 __m128d test_mm_maskz_rcp14_pd(__mmask8 __U, __m128d __A) {
7354   // CHECK-LABEL: @test_mm_maskz_rcp14_pd
7355   // CHECK: @llvm.x86.avx512.rcp14.pd.128
7356   return _mm_maskz_rcp14_pd(__U, __A);
7357 }
7358 
test_mm256_rcp14_pd(__m256d __A)7359 __m256d test_mm256_rcp14_pd(__m256d __A) {
7360   // CHECK-LABEL: @test_mm256_rcp14_pd
7361   // CHECK: @llvm.x86.avx512.rcp14.pd.256
7362   return _mm256_rcp14_pd(__A);
7363 }
7364 
test_mm256_mask_rcp14_pd(__m256d __W,__mmask8 __U,__m256d __A)7365 __m256d test_mm256_mask_rcp14_pd(__m256d __W, __mmask8 __U, __m256d __A) {
7366   // CHECK-LABEL: @test_mm256_mask_rcp14_pd
7367   // CHECK: @llvm.x86.avx512.rcp14.pd.256
7368   return _mm256_mask_rcp14_pd(__W, __U, __A);
7369 }
7370 
test_mm256_maskz_rcp14_pd(__mmask8 __U,__m256d __A)7371 __m256d test_mm256_maskz_rcp14_pd(__mmask8 __U, __m256d __A) {
7372   // CHECK-LABEL: @test_mm256_maskz_rcp14_pd
7373   // CHECK: @llvm.x86.avx512.rcp14.pd.256
7374   return _mm256_maskz_rcp14_pd(__U, __A);
7375 }
7376 
test_mm_rcp14_ps(__m128 __A)7377 __m128 test_mm_rcp14_ps(__m128 __A) {
7378   // CHECK-LABEL: @test_mm_rcp14_ps
7379   // CHECK: @llvm.x86.avx512.rcp14.ps.128
7380   return _mm_rcp14_ps(__A);
7381 }
7382 
test_mm_mask_rcp14_ps(__m128 __W,__mmask8 __U,__m128 __A)7383 __m128 test_mm_mask_rcp14_ps(__m128 __W, __mmask8 __U, __m128 __A) {
7384   // CHECK-LABEL: @test_mm_mask_rcp14_ps
7385   // CHECK: @llvm.x86.avx512.rcp14.ps.128
7386   return _mm_mask_rcp14_ps(__W, __U, __A);
7387 }
7388 
test_mm_maskz_rcp14_ps(__mmask8 __U,__m128 __A)7389 __m128 test_mm_maskz_rcp14_ps(__mmask8 __U, __m128 __A) {
7390   // CHECK-LABEL: @test_mm_maskz_rcp14_ps
7391   // CHECK: @llvm.x86.avx512.rcp14.ps.128
7392   return _mm_maskz_rcp14_ps(__U, __A);
7393 }
7394 
test_mm256_rcp14_ps(__m256 __A)7395 __m256 test_mm256_rcp14_ps(__m256 __A) {
7396   // CHECK-LABEL: @test_mm256_rcp14_ps
7397   // CHECK: @llvm.x86.avx512.rcp14.ps.256
7398   return _mm256_rcp14_ps(__A);
7399 }
7400 
test_mm256_mask_rcp14_ps(__m256 __W,__mmask8 __U,__m256 __A)7401 __m256 test_mm256_mask_rcp14_ps(__m256 __W, __mmask8 __U, __m256 __A) {
7402   // CHECK-LABEL: @test_mm256_mask_rcp14_ps
7403   // CHECK: @llvm.x86.avx512.rcp14.ps.256
7404   return _mm256_mask_rcp14_ps(__W, __U, __A);
7405 }
7406 
test_mm256_maskz_rcp14_ps(__mmask8 __U,__m256 __A)7407 __m256 test_mm256_maskz_rcp14_ps(__mmask8 __U, __m256 __A) {
7408   // CHECK-LABEL: @test_mm256_maskz_rcp14_ps
7409   // CHECK: @llvm.x86.avx512.rcp14.ps.256
7410   return _mm256_maskz_rcp14_ps(__U, __A);
7411 }
7412 
test_mm_mask_permute_pd(__m128d __W,__mmask8 __U,__m128d __X)7413 __m128d test_mm_mask_permute_pd(__m128d __W, __mmask8 __U, __m128d __X) {
7414   // CHECK-LABEL: @test_mm_mask_permute_pd
7415   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <2 x i32> <i32 1, i32 0>
7416   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7417   return _mm_mask_permute_pd(__W, __U, __X, 1);
7418 }
7419 
test_mm_maskz_permute_pd(__mmask8 __U,__m128d __X)7420 __m128d test_mm_maskz_permute_pd(__mmask8 __U, __m128d __X) {
7421   // CHECK-LABEL: @test_mm_maskz_permute_pd
7422   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <2 x i32> <i32 1, i32 0>
7423   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7424   return _mm_maskz_permute_pd(__U, __X, 1);
7425 }
7426 
test_mm256_mask_permute_pd(__m256d __W,__mmask8 __U,__m256d __X)7427 __m256d test_mm256_mask_permute_pd(__m256d __W, __mmask8 __U, __m256d __X) {
7428   // CHECK-LABEL: @test_mm256_mask_permute_pd
7429   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
7430   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7431   return _mm256_mask_permute_pd(__W, __U, __X, 5);
7432 }
7433 
test_mm256_maskz_permute_pd(__mmask8 __U,__m256d __X)7434 __m256d test_mm256_maskz_permute_pd(__mmask8 __U, __m256d __X) {
7435   // CHECK-LABEL: @test_mm256_maskz_permute_pd
7436   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
7437   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7438   return _mm256_maskz_permute_pd(__U, __X, 5);
7439 }
7440 
test_mm_mask_permute_ps(__m128 __W,__mmask8 __U,__m128 __X)7441 __m128 test_mm_mask_permute_ps(__m128 __W, __mmask8 __U, __m128 __X) {
7442   // CHECK-LABEL: @test_mm_mask_permute_ps
7443   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
7444   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7445   return _mm_mask_permute_ps(__W, __U, __X, 0x1b);
7446 }
7447 
test_mm_maskz_permute_ps(__mmask8 __U,__m128 __X)7448 __m128 test_mm_maskz_permute_ps(__mmask8 __U, __m128 __X) {
7449   // CHECK-LABEL: @test_mm_maskz_permute_ps
7450   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
7451   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7452   return _mm_maskz_permute_ps(__U, __X, 0x1b);
7453 }
7454 
test_mm256_mask_permute_ps(__m256 __W,__mmask8 __U,__m256 __X)7455 __m256 test_mm256_mask_permute_ps(__m256 __W, __mmask8 __U, __m256 __X) {
7456   // CHECK-LABEL: @test_mm256_mask_permute_ps
7457   // 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>
7458   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7459   return _mm256_mask_permute_ps(__W, __U, __X, 0x1b);
7460 }
7461 
test_mm256_maskz_permute_ps(__mmask8 __U,__m256 __X)7462 __m256 test_mm256_maskz_permute_ps(__mmask8 __U, __m256 __X) {
7463   // CHECK-LABEL: @test_mm256_maskz_permute_ps
7464   // 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>
7465   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7466   return _mm256_maskz_permute_ps(__U, __X, 0x1b);
7467 }
7468 
test_mm_mask_permutevar_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128i __C)7469 __m128d test_mm_mask_permutevar_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128i __C) {
7470   // CHECK-LABEL: @test_mm_mask_permutevar_pd
7471   // CHECK: @llvm.x86.avx.vpermilvar.pd
7472   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7473   return _mm_mask_permutevar_pd(__W, __U, __A, __C);
7474 }
7475 
test_mm_maskz_permutevar_pd(__mmask8 __U,__m128d __A,__m128i __C)7476 __m128d test_mm_maskz_permutevar_pd(__mmask8 __U, __m128d __A, __m128i __C) {
7477   // CHECK-LABEL: @test_mm_maskz_permutevar_pd
7478   // CHECK: @llvm.x86.avx.vpermilvar.pd
7479   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7480   return _mm_maskz_permutevar_pd(__U, __A, __C);
7481 }
7482 
test_mm256_mask_permutevar_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256i __C)7483 __m256d test_mm256_mask_permutevar_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256i __C) {
7484   // CHECK-LABEL: @test_mm256_mask_permutevar_pd
7485   // CHECK: @llvm.x86.avx.vpermilvar.pd.256
7486   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7487   return _mm256_mask_permutevar_pd(__W, __U, __A, __C);
7488 }
7489 
test_mm256_maskz_permutevar_pd(__mmask8 __U,__m256d __A,__m256i __C)7490 __m256d test_mm256_maskz_permutevar_pd(__mmask8 __U, __m256d __A, __m256i __C) {
7491   // CHECK-LABEL: @test_mm256_maskz_permutevar_pd
7492   // CHECK: @llvm.x86.avx.vpermilvar.pd.256
7493   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7494   return _mm256_maskz_permutevar_pd(__U, __A, __C);
7495 }
7496 
test_mm_mask_permutevar_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128i __C)7497 __m128 test_mm_mask_permutevar_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128i __C) {
7498   // CHECK-LABEL: @test_mm_mask_permutevar_ps
7499   // CHECK: @llvm.x86.avx.vpermilvar.ps
7500   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7501   return _mm_mask_permutevar_ps(__W, __U, __A, __C);
7502 }
7503 
test_mm_maskz_permutevar_ps(__mmask8 __U,__m128 __A,__m128i __C)7504 __m128 test_mm_maskz_permutevar_ps(__mmask8 __U, __m128 __A, __m128i __C) {
7505   // CHECK-LABEL: @test_mm_maskz_permutevar_ps
7506   // CHECK: @llvm.x86.avx.vpermilvar.ps
7507   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7508   return _mm_maskz_permutevar_ps(__U, __A, __C);
7509 }
7510 
test_mm256_mask_permutevar_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256i __C)7511 __m256 test_mm256_mask_permutevar_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256i __C) {
7512   // CHECK-LABEL: @test_mm256_mask_permutevar_ps
7513   // CHECK: @llvm.x86.avx.vpermilvar.ps.256
7514   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7515   return _mm256_mask_permutevar_ps(__W, __U, __A, __C);
7516 }
7517 
test_mm256_maskz_permutevar_ps(__mmask8 __U,__m256 __A,__m256i __C)7518 __m256 test_mm256_maskz_permutevar_ps(__mmask8 __U, __m256 __A, __m256i __C) {
7519   // CHECK-LABEL: @test_mm256_maskz_permutevar_ps
7520   // CHECK: @llvm.x86.avx.vpermilvar.ps.256
7521   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7522   return _mm256_maskz_permutevar_ps(__U, __A, __C);
7523 }
7524 
test_mm_test_epi32_mask(__m128i __A,__m128i __B)7525 __mmask8 test_mm_test_epi32_mask(__m128i __A, __m128i __B) {
7526   // CHECK-LABEL: @test_mm_test_epi32_mask
7527   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7528   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
7529   return _mm_test_epi32_mask(__A, __B);
7530 }
7531 
test_mm_mask_test_epi32_mask(__mmask8 __U,__m128i __A,__m128i __B)7532 __mmask8 test_mm_mask_test_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7533   // CHECK-LABEL: @test_mm_mask_test_epi32_mask
7534   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7535   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
7536   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7537   return _mm_mask_test_epi32_mask(__U, __A, __B);
7538 }
7539 
test_mm256_test_epi32_mask(__m256i __A,__m256i __B)7540 __mmask8 test_mm256_test_epi32_mask(__m256i __A, __m256i __B) {
7541   // CHECK-LABEL: @test_mm256_test_epi32_mask
7542   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7543   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
7544   return _mm256_test_epi32_mask(__A, __B);
7545 }
7546 
test_mm256_mask_test_epi32_mask(__mmask8 __U,__m256i __A,__m256i __B)7547 __mmask8 test_mm256_mask_test_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7548   // CHECK-LABEL: @test_mm256_mask_test_epi32_mask
7549   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7550   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
7551   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
7552   return _mm256_mask_test_epi32_mask(__U, __A, __B);
7553 }
7554 
test_mm_test_epi64_mask(__m128i __A,__m128i __B)7555 __mmask8 test_mm_test_epi64_mask(__m128i __A, __m128i __B) {
7556   // CHECK-LABEL: @test_mm_test_epi64_mask
7557   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7558   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
7559   return _mm_test_epi64_mask(__A, __B);
7560 }
7561 
test_mm_mask_test_epi64_mask(__mmask8 __U,__m128i __A,__m128i __B)7562 __mmask8 test_mm_mask_test_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7563   // CHECK-LABEL: @test_mm_mask_test_epi64_mask
7564   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7565   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
7566   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
7567   return _mm_mask_test_epi64_mask(__U, __A, __B);
7568 }
7569 
test_mm256_test_epi64_mask(__m256i __A,__m256i __B)7570 __mmask8 test_mm256_test_epi64_mask(__m256i __A, __m256i __B) {
7571   // CHECK-LABEL: @test_mm256_test_epi64_mask
7572   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7573   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
7574   return _mm256_test_epi64_mask(__A, __B);
7575 }
7576 
test_mm256_mask_test_epi64_mask(__mmask8 __U,__m256i __A,__m256i __B)7577 __mmask8 test_mm256_mask_test_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7578   // CHECK-LABEL: @test_mm256_mask_test_epi64_mask
7579   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7580   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
7581   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7582   return _mm256_mask_test_epi64_mask(__U, __A, __B);
7583 }
7584 
test_mm_testn_epi32_mask(__m128i __A,__m128i __B)7585 __mmask8 test_mm_testn_epi32_mask(__m128i __A, __m128i __B) {
7586   // CHECK-LABEL: @test_mm_testn_epi32_mask
7587   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7588   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
7589   return _mm_testn_epi32_mask(__A, __B);
7590 }
7591 
test_mm_mask_testn_epi32_mask(__mmask8 __U,__m128i __A,__m128i __B)7592 __mmask8 test_mm_mask_testn_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7593   // CHECK-LABEL: @test_mm_mask_testn_epi32_mask
7594   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7595   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
7596   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7597   return _mm_mask_testn_epi32_mask(__U, __A, __B);
7598 }
7599 
test_mm256_testn_epi32_mask(__m256i __A,__m256i __B)7600 __mmask8 test_mm256_testn_epi32_mask(__m256i __A, __m256i __B) {
7601   // CHECK-LABEL: @test_mm256_testn_epi32_mask
7602   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7603   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
7604   return _mm256_testn_epi32_mask(__A, __B);
7605 }
7606 
test_mm256_mask_testn_epi32_mask(__mmask8 __U,__m256i __A,__m256i __B)7607 __mmask8 test_mm256_mask_testn_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7608   // CHECK-LABEL: @test_mm256_mask_testn_epi32_mask
7609   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7610   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
7611   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
7612   return _mm256_mask_testn_epi32_mask(__U, __A, __B);
7613 }
7614 
test_mm_testn_epi64_mask(__m128i __A,__m128i __B)7615 __mmask8 test_mm_testn_epi64_mask(__m128i __A, __m128i __B) {
7616   // CHECK-LABEL: @test_mm_testn_epi64_mask
7617   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7618   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
7619   return _mm_testn_epi64_mask(__A, __B);
7620 }
7621 
test_mm_mask_testn_epi64_mask(__mmask8 __U,__m128i __A,__m128i __B)7622 __mmask8 test_mm_mask_testn_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7623   // CHECK-LABEL: @test_mm_mask_testn_epi64_mask
7624   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7625   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
7626   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
7627   return _mm_mask_testn_epi64_mask(__U, __A, __B);
7628 }
7629 
test_mm256_testn_epi64_mask(__m256i __A,__m256i __B)7630 __mmask8 test_mm256_testn_epi64_mask(__m256i __A, __m256i __B) {
7631   // CHECK-LABEL: @test_mm256_testn_epi64_mask
7632   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7633   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
7634   return _mm256_testn_epi64_mask(__A, __B);
7635 }
7636 
test_mm256_mask_testn_epi64_mask(__mmask8 __U,__m256i __A,__m256i __B)7637 __mmask8 test_mm256_mask_testn_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7638   // CHECK-LABEL: @test_mm256_mask_testn_epi64_mask
7639   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7640   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
7641   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7642   return _mm256_mask_testn_epi64_mask(__U, __A, __B);
7643 }
7644 
test_mm_mask_unpackhi_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7645 __m128i test_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7646   // CHECK-LABEL: @test_mm_mask_unpackhi_epi32
7647   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7648   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7649   return _mm_mask_unpackhi_epi32(__W, __U, __A, __B);
7650 }
7651 
test_mm_maskz_unpackhi_epi32(__mmask8 __U,__m128i __A,__m128i __B)7652 __m128i test_mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
7653   // CHECK-LABEL: @test_mm_maskz_unpackhi_epi32
7654   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7655   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7656   return _mm_maskz_unpackhi_epi32(__U, __A, __B);
7657 }
7658 
test_mm256_mask_unpackhi_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7659 __m256i test_mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7660   // CHECK-LABEL: @test_mm256_mask_unpackhi_epi32
7661   // 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>
7662   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7663   return _mm256_mask_unpackhi_epi32(__W, __U, __A, __B);
7664 }
7665 
test_mm256_maskz_unpackhi_epi32(__mmask8 __U,__m256i __A,__m256i __B)7666 __m256i test_mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
7667   // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi32
7668   // 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>
7669   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7670   return _mm256_maskz_unpackhi_epi32(__U, __A, __B);
7671 }
7672 
test_mm_mask_unpackhi_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7673 __m128i test_mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7674   // CHECK-LABEL: @test_mm_mask_unpackhi_epi64
7675   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 3>
7676   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7677   return _mm_mask_unpackhi_epi64(__W, __U, __A, __B);
7678 }
7679 
test_mm_maskz_unpackhi_epi64(__mmask8 __U,__m128i __A,__m128i __B)7680 __m128i test_mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
7681   // CHECK-LABEL: @test_mm_maskz_unpackhi_epi64
7682   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 3>
7683   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7684   return _mm_maskz_unpackhi_epi64(__U, __A, __B);
7685 }
7686 
test_mm256_mask_unpackhi_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7687 __m256i test_mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7688   // CHECK-LABEL: @test_mm256_mask_unpackhi_epi64
7689   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 3, i32 7>
7690   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7691   return _mm256_mask_unpackhi_epi64(__W, __U, __A, __B);
7692 }
7693 
test_mm256_maskz_unpackhi_epi64(__mmask8 __U,__m256i __A,__m256i __B)7694 __m256i test_mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
7695   // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi64
7696   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 3, i32 7>
7697   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7698   return _mm256_maskz_unpackhi_epi64(__U, __A, __B);
7699 }
7700 
test_mm_mask_unpacklo_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7701 __m128i test_mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7702   // CHECK-LABEL: @test_mm_mask_unpacklo_epi32
7703   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7704   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7705   return _mm_mask_unpacklo_epi32(__W, __U, __A, __B);
7706 }
7707 
test_mm_maskz_unpacklo_epi32(__mmask8 __U,__m128i __A,__m128i __B)7708 __m128i test_mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
7709   // CHECK-LABEL: @test_mm_maskz_unpacklo_epi32
7710   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7711   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7712   return _mm_maskz_unpacklo_epi32(__U, __A, __B);
7713 }
7714 
test_mm256_mask_unpacklo_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7715 __m256i test_mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7716   // CHECK-LABEL: @test_mm256_mask_unpacklo_epi32
7717   // 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>
7718   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7719   return _mm256_mask_unpacklo_epi32(__W, __U, __A, __B);
7720 }
7721 
test_mm256_maskz_unpacklo_epi32(__mmask8 __U,__m256i __A,__m256i __B)7722 __m256i test_mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
7723   // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi32
7724   // 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>
7725   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7726   return _mm256_maskz_unpacklo_epi32(__U, __A, __B);
7727 }
7728 
test_mm_mask_unpacklo_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7729 __m128i test_mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7730   // CHECK-LABEL: @test_mm_mask_unpacklo_epi64
7731   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2>
7732   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7733   return _mm_mask_unpacklo_epi64(__W, __U, __A, __B);
7734 }
7735 
test_mm_maskz_unpacklo_epi64(__mmask8 __U,__m128i __A,__m128i __B)7736 __m128i test_mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
7737   // CHECK-LABEL: @test_mm_maskz_unpacklo_epi64
7738   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2>
7739   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7740   return _mm_maskz_unpacklo_epi64(__U, __A, __B);
7741 }
7742 
test_mm256_mask_unpacklo_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7743 __m256i test_mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7744   // CHECK-LABEL: @test_mm256_mask_unpacklo_epi64
7745   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7746   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7747   return _mm256_mask_unpacklo_epi64(__W, __U, __A, __B);
7748 }
7749 
test_mm256_maskz_unpacklo_epi64(__mmask8 __U,__m256i __A,__m256i __B)7750 __m256i test_mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
7751   // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi64
7752   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7753   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7754   return _mm256_maskz_unpacklo_epi64(__U, __A, __B);
7755 }
7756 
test_mm_mask_sra_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7757 __m128i test_mm_mask_sra_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7758   // CHECK-LABEL: @test_mm_mask_sra_epi32
7759   // CHECK: @llvm.x86.sse2.psra.d
7760   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7761   return _mm_mask_sra_epi32(__W, __U, __A, __B);
7762 }
7763 
test_mm_maskz_sra_epi32(__mmask8 __U,__m128i __A,__m128i __B)7764 __m128i test_mm_maskz_sra_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
7765   // CHECK-LABEL: @test_mm_maskz_sra_epi32
7766   // CHECK: @llvm.x86.sse2.psra.d
7767   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7768   return _mm_maskz_sra_epi32(__U, __A, __B);
7769 }
7770 
test_mm256_mask_sra_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)7771 __m256i test_mm256_mask_sra_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
7772   // CHECK-LABEL: @test_mm256_mask_sra_epi32
7773   // CHECK: @llvm.x86.avx2.psra.d
7774   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7775   return _mm256_mask_sra_epi32(__W, __U, __A, __B);
7776 }
7777 
test_mm256_maskz_sra_epi32(__mmask8 __U,__m256i __A,__m128i __B)7778 __m256i test_mm256_maskz_sra_epi32(__mmask8 __U, __m256i __A, __m128i __B) {
7779   // CHECK-LABEL: @test_mm256_maskz_sra_epi32
7780   // CHECK: @llvm.x86.avx2.psra.d
7781   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7782   return _mm256_maskz_sra_epi32(__U, __A, __B);
7783 }
7784 
test_mm_mask_srai_epi32(__m128i __W,__mmask8 __U,__m128i __A)7785 __m128i test_mm_mask_srai_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
7786   // CHECK-LABEL: @test_mm_mask_srai_epi32
7787   // CHECK: @llvm.x86.sse2.psrai.d
7788   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7789   return _mm_mask_srai_epi32(__W, __U, __A, 5);
7790 }
7791 
test_mm_mask_srai_epi32_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)7792 __m128i test_mm_mask_srai_epi32_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
7793   // CHECK-LABEL: @test_mm_mask_srai_epi32_2
7794   // CHECK: @llvm.x86.sse2.psrai.d
7795   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7796   return _mm_mask_srai_epi32(__W, __U, __A, __B);
7797 }
7798 
test_mm_maskz_srai_epi32(__mmask8 __U,__m128i __A)7799 __m128i test_mm_maskz_srai_epi32(__mmask8 __U, __m128i __A) {
7800   // CHECK-LABEL: @test_mm_maskz_srai_epi32
7801   // CHECK: @llvm.x86.sse2.psrai.d
7802   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7803   return _mm_maskz_srai_epi32(__U, __A, 5);
7804 }
7805 
test_mm_maskz_srai_epi32_2(__mmask8 __U,__m128i __A,unsigned int __B)7806 __m128i test_mm_maskz_srai_epi32_2(__mmask8 __U, __m128i __A, unsigned int __B) {
7807   // CHECK-LABEL: @test_mm_maskz_srai_epi32_2
7808   // CHECK: @llvm.x86.sse2.psrai.d
7809   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7810   return _mm_maskz_srai_epi32(__U, __A, __B);
7811 }
7812 
test_mm256_mask_srai_epi32(__m256i __W,__mmask8 __U,__m256i __A)7813 __m256i test_mm256_mask_srai_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
7814   // CHECK-LABEL: @test_mm256_mask_srai_epi32
7815   // CHECK: @llvm.x86.avx2.psrai.d
7816   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7817   return _mm256_mask_srai_epi32(__W, __U, __A, 5);
7818 }
7819 
test_mm256_mask_srai_epi32_2(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)7820 __m256i test_mm256_mask_srai_epi32_2(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B) {
7821   // CHECK-LABEL: @test_mm256_mask_srai_epi32_2
7822   // CHECK: @llvm.x86.avx2.psrai.d
7823   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7824   return _mm256_mask_srai_epi32(__W, __U, __A, __B);
7825 }
7826 
test_mm256_maskz_srai_epi32(__mmask8 __U,__m256i __A)7827 __m256i test_mm256_maskz_srai_epi32(__mmask8 __U, __m256i __A) {
7828   // CHECK-LABEL: @test_mm256_maskz_srai_epi32
7829   // CHECK: @llvm.x86.avx2.psrai.d
7830   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7831   return _mm256_maskz_srai_epi32(__U, __A, 5);
7832 }
7833 
test_mm256_maskz_srai_epi32_2(__mmask8 __U,__m256i __A,unsigned int __B)7834 __m256i test_mm256_maskz_srai_epi32_2(__mmask8 __U, __m256i __A, unsigned int __B) {
7835   // CHECK-LABEL: @test_mm256_maskz_srai_epi32_2
7836   // CHECK: @llvm.x86.avx2.psrai.d
7837   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7838   return _mm256_maskz_srai_epi32(__U, __A, __B);
7839 }
7840 
test_mm_sra_epi64(__m128i __A,__m128i __B)7841 __m128i test_mm_sra_epi64(__m128i __A, __m128i __B) {
7842   // CHECK-LABEL: @test_mm_sra_epi64
7843   // CHECK: @llvm.x86.avx512.psra.q.128
7844   return _mm_sra_epi64(__A, __B);
7845 }
7846 
test_mm_mask_sra_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7847 __m128i test_mm_mask_sra_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7848   // CHECK-LABEL: @test_mm_mask_sra_epi64
7849   // CHECK: @llvm.x86.avx512.psra.q.128
7850   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7851   return _mm_mask_sra_epi64(__W, __U, __A, __B);
7852 }
7853 
test_mm_maskz_sra_epi64(__mmask8 __U,__m128i __A,__m128i __B)7854 __m128i test_mm_maskz_sra_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
7855   // CHECK-LABEL: @test_mm_maskz_sra_epi64
7856   // CHECK: @llvm.x86.avx512.psra.q.128
7857   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7858   return _mm_maskz_sra_epi64(__U, __A, __B);
7859 }
7860 
test_mm256_sra_epi64(__m256i __A,__m128i __B)7861 __m256i test_mm256_sra_epi64(__m256i __A, __m128i __B) {
7862   // CHECK-LABEL: @test_mm256_sra_epi64
7863   // CHECK: @llvm.x86.avx512.psra.q.256
7864   return _mm256_sra_epi64(__A, __B);
7865 }
7866 
test_mm256_mask_sra_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)7867 __m256i test_mm256_mask_sra_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
7868   // CHECK-LABEL: @test_mm256_mask_sra_epi64
7869   // CHECK: @llvm.x86.avx512.psra.q.256
7870   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7871   return _mm256_mask_sra_epi64(__W, __U, __A, __B);
7872 }
7873 
test_mm256_maskz_sra_epi64(__mmask8 __U,__m256i __A,__m128i __B)7874 __m256i test_mm256_maskz_sra_epi64(__mmask8 __U, __m256i __A, __m128i __B) {
7875   // CHECK-LABEL: @test_mm256_maskz_sra_epi64
7876   // CHECK: @llvm.x86.avx512.psra.q.256
7877   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7878   return _mm256_maskz_sra_epi64(__U, __A, __B);
7879 }
7880 
test_mm_srai_epi64(__m128i __A)7881 __m128i test_mm_srai_epi64(__m128i __A) {
7882   // CHECK-LABEL: @test_mm_srai_epi64
7883   // CHECK: @llvm.x86.avx512.psrai.q.128
7884   return _mm_srai_epi64(__A, 5);
7885 }
7886 
test_mm_srai_epi64_2(__m128i __A,unsigned int __B)7887 __m128i test_mm_srai_epi64_2(__m128i __A, unsigned int __B) {
7888   // CHECK-LABEL: @test_mm_srai_epi64_2
7889   // CHECK: @llvm.x86.avx512.psrai.q.128
7890   return _mm_srai_epi64(__A, __B);
7891 }
7892 
test_mm_mask_srai_epi64(__m128i __W,__mmask8 __U,__m128i __A)7893 __m128i test_mm_mask_srai_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
7894   // CHECK-LABEL: @test_mm_mask_srai_epi64
7895   // CHECK: @llvm.x86.avx512.psrai.q.128
7896   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7897   return _mm_mask_srai_epi64(__W, __U, __A, 5);
7898 }
7899 
test_mm_mask_srai_epi64_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)7900 __m128i test_mm_mask_srai_epi64_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
7901   // CHECK-LABEL: @test_mm_mask_srai_epi64_2
7902   // CHECK: @llvm.x86.avx512.psrai.q.128
7903   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7904   return _mm_mask_srai_epi64(__W, __U, __A, __B);
7905 }
7906 
test_mm_maskz_srai_epi64(__mmask8 __U,__m128i __A)7907 __m128i test_mm_maskz_srai_epi64(__mmask8 __U, __m128i __A) {
7908   // CHECK-LABEL: @test_mm_maskz_srai_epi64
7909   // CHECK: @llvm.x86.avx512.psrai.q.128
7910   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7911   return _mm_maskz_srai_epi64(__U, __A, 5);
7912 }
7913 
test_mm_maskz_srai_epi64_2(__mmask8 __U,__m128i __A,unsigned int __B)7914 __m128i test_mm_maskz_srai_epi64_2(__mmask8 __U, __m128i __A, unsigned int __B) {
7915   // CHECK-LABEL: @test_mm_maskz_srai_epi64_2
7916   // CHECK: @llvm.x86.avx512.psrai.q.128
7917   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7918   return _mm_maskz_srai_epi64(__U, __A, __B);
7919 }
7920 
test_mm256_srai_epi64(__m256i __A)7921 __m256i test_mm256_srai_epi64(__m256i __A) {
7922   // CHECK-LABEL: @test_mm256_srai_epi64
7923   // CHECK: @llvm.x86.avx512.psrai.q.256
7924   return _mm256_srai_epi64(__A, 5);
7925 }
7926 
test_mm256_srai_epi64_2(__m256i __A,unsigned int __B)7927 __m256i test_mm256_srai_epi64_2(__m256i __A, unsigned int __B) {
7928   // CHECK-LABEL: @test_mm256_srai_epi64_2
7929   // CHECK: @llvm.x86.avx512.psrai.q.256
7930   return _mm256_srai_epi64(__A, __B);
7931 }
7932 
test_mm256_mask_srai_epi64(__m256i __W,__mmask8 __U,__m256i __A)7933 __m256i test_mm256_mask_srai_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
7934   // CHECK-LABEL: @test_mm256_mask_srai_epi64
7935   // CHECK: @llvm.x86.avx512.psrai.q.256
7936   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7937   return _mm256_mask_srai_epi64(__W, __U, __A, 5);
7938 }
7939 
test_mm256_mask_srai_epi64_2(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)7940 __m256i test_mm256_mask_srai_epi64_2(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B) {
7941   // CHECK-LABEL: @test_mm256_mask_srai_epi64_2
7942   // CHECK: @llvm.x86.avx512.psrai.q.256
7943   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7944   return _mm256_mask_srai_epi64(__W, __U, __A, __B);
7945 }
7946 
test_mm256_maskz_srai_epi64(__mmask8 __U,__m256i __A)7947 __m256i test_mm256_maskz_srai_epi64(__mmask8 __U, __m256i __A) {
7948   // CHECK-LABEL: @test_mm256_maskz_srai_epi64
7949   // CHECK: @llvm.x86.avx512.psrai.q.256
7950   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7951   return _mm256_maskz_srai_epi64(__U, __A, 5);
7952 }
7953 
test_mm256_maskz_srai_epi64_2(__mmask8 __U,__m256i __A,unsigned int __B)7954 __m256i test_mm256_maskz_srai_epi64_2(__mmask8 __U, __m256i __A, unsigned int __B) {
7955   // CHECK-LABEL: @test_mm256_maskz_srai_epi64_2
7956   // CHECK: @llvm.x86.avx512.psrai.q.256
7957   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7958   return _mm256_maskz_srai_epi64(__U, __A, __B);
7959 }
7960 
test_mm_ternarylogic_epi32(__m128i __A,__m128i __B,__m128i __C)7961 __m128i test_mm_ternarylogic_epi32(__m128i __A, __m128i __B, __m128i __C) {
7962   // CHECK-LABEL: @test_mm_ternarylogic_epi32
7963   // CHECK: @llvm.x86.avx512.pternlog.d.128
7964   return _mm_ternarylogic_epi32(__A, __B, __C, 4);
7965 }
7966 
test_mm_mask_ternarylogic_epi32(__m128i __A,__mmask8 __U,__m128i __B,__m128i __C)7967 __m128i test_mm_mask_ternarylogic_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
7968   // CHECK-LABEL: @test_mm_mask_ternarylogic_epi32
7969   // CHECK: @llvm.x86.avx512.pternlog.d.128
7970   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7971   return _mm_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
7972 }
7973 
test_mm_maskz_ternarylogic_epi32(__mmask8 __U,__m128i __A,__m128i __B,__m128i __C)7974 __m128i test_mm_maskz_ternarylogic_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
7975   // CHECK-LABEL: @test_mm_maskz_ternarylogic_epi32
7976   // CHECK: @llvm.x86.avx512.pternlog.d.128
7977   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
7978   return _mm_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
7979 }
7980 
test_mm256_ternarylogic_epi32(__m256i __A,__m256i __B,__m256i __C)7981 __m256i test_mm256_ternarylogic_epi32(__m256i __A, __m256i __B, __m256i __C) {
7982   // CHECK-LABEL: @test_mm256_ternarylogic_epi32
7983   // CHECK: @llvm.x86.avx512.pternlog.d.256
7984   return _mm256_ternarylogic_epi32(__A, __B, __C, 4);
7985 }
7986 
test_mm256_mask_ternarylogic_epi32(__m256i __A,__mmask8 __U,__m256i __B,__m256i __C)7987 __m256i test_mm256_mask_ternarylogic_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) {
7988   // CHECK-LABEL: @test_mm256_mask_ternarylogic_epi32
7989   // CHECK: @llvm.x86.avx512.pternlog.d.256
7990   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7991   return _mm256_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
7992 }
7993 
test_mm256_maskz_ternarylogic_epi32(__mmask8 __U,__m256i __A,__m256i __B,__m256i __C)7994 __m256i test_mm256_maskz_ternarylogic_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) {
7995   // CHECK-LABEL: @test_mm256_maskz_ternarylogic_epi32
7996   // CHECK: @llvm.x86.avx512.pternlog.d.256
7997   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> zeroinitializer
7998   return _mm256_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
7999 }
8000 
test_mm_ternarylogic_epi64(__m128i __A,__m128i __B,__m128i __C)8001 __m128i test_mm_ternarylogic_epi64(__m128i __A, __m128i __B, __m128i __C) {
8002   // CHECK-LABEL: @test_mm_ternarylogic_epi64
8003   // CHECK: @llvm.x86.avx512.pternlog.q.128
8004   return _mm_ternarylogic_epi64(__A, __B, __C, 4);
8005 }
8006 
test_mm_mask_ternarylogic_epi64(__m128i __A,__mmask8 __U,__m128i __B,__m128i __C)8007 __m128i test_mm_mask_ternarylogic_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
8008   // CHECK-LABEL: @test_mm_mask_ternarylogic_epi64
8009   // CHECK: @llvm.x86.avx512.pternlog.q.128
8010   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
8011   return _mm_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
8012 }
8013 
test_mm_maskz_ternarylogic_epi64(__mmask8 __U,__m128i __A,__m128i __B,__m128i __C)8014 __m128i test_mm_maskz_ternarylogic_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
8015   // CHECK-LABEL: @test_mm_maskz_ternarylogic_epi64
8016   // CHECK: @llvm.x86.avx512.pternlog.q.128
8017   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> zeroinitializer
8018   return _mm_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
8019 }
8020 
test_mm256_ternarylogic_epi64(__m256i __A,__m256i __B,__m256i __C)8021 __m256i test_mm256_ternarylogic_epi64(__m256i __A, __m256i __B, __m256i __C) {
8022   // CHECK-LABEL: @test_mm256_ternarylogic_epi64
8023   // CHECK: @llvm.x86.avx512.pternlog.q.256
8024   return _mm256_ternarylogic_epi64(__A, __B, __C, 4);
8025 }
8026 
test_mm256_mask_ternarylogic_epi64(__m256i __A,__mmask8 __U,__m256i __B,__m256i __C)8027 __m256i test_mm256_mask_ternarylogic_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) {
8028   // CHECK-LABEL: @test_mm256_mask_ternarylogic_epi64
8029   // CHECK: @llvm.x86.avx512.pternlog.q.256
8030   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8031   return _mm256_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
8032 }
8033 
test_mm256_maskz_ternarylogic_epi64(__mmask8 __U,__m256i __A,__m256i __B,__m256i __C)8034 __m256i test_mm256_maskz_ternarylogic_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) {
8035   // CHECK-LABEL: @test_mm256_maskz_ternarylogic_epi64
8036   // CHECK: @llvm.x86.avx512.pternlog.q.256
8037   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> zeroinitializer
8038   return _mm256_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
8039 }
test_mm256_shuffle_f32x4(__m256 __A,__m256 __B)8040 __m256 test_mm256_shuffle_f32x4(__m256 __A, __m256 __B) {
8041   // CHECK-LABEL: @test_mm256_shuffle_f32x4
8042   // 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>
8043   return _mm256_shuffle_f32x4(__A, __B, 3);
8044 }
8045 
test_mm256_mask_shuffle_f32x4(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)8046 __m256 test_mm256_mask_shuffle_f32x4(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
8047   // CHECK-LABEL: @test_mm256_mask_shuffle_f32x4
8048   // 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>
8049   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8050   return _mm256_mask_shuffle_f32x4(__W, __U, __A, __B, 3);
8051 }
8052 
test_mm256_maskz_shuffle_f32x4(__mmask8 __U,__m256 __A,__m256 __B)8053 __m256 test_mm256_maskz_shuffle_f32x4(__mmask8 __U, __m256 __A, __m256 __B) {
8054   // CHECK-LABEL: @test_mm256_maskz_shuffle_f32x4
8055   // 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>
8056   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8057   return _mm256_maskz_shuffle_f32x4(__U, __A, __B, 3);
8058 }
8059 
test_mm256_shuffle_f64x2(__m256d __A,__m256d __B)8060 __m256d test_mm256_shuffle_f64x2(__m256d __A, __m256d __B) {
8061   // CHECK-LABEL: @test_mm256_shuffle_f64x2
8062   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8063   return _mm256_shuffle_f64x2(__A, __B, 3);
8064 }
8065 
test_mm256_mask_shuffle_f64x2(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)8066 __m256d test_mm256_mask_shuffle_f64x2(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
8067   // CHECK-LABEL: @test_mm256_mask_shuffle_f64x2
8068   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8069   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8070   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8071   return _mm256_mask_shuffle_f64x2(__W, __U, __A, __B, 3);
8072 }
8073 
test_mm256_maskz_shuffle_f64x2(__mmask8 __U,__m256d __A,__m256d __B)8074 __m256d test_mm256_maskz_shuffle_f64x2(__mmask8 __U, __m256d __A, __m256d __B) {
8075   // CHECK-LABEL: @test_mm256_maskz_shuffle_f64x2
8076   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8077   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8078   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8079   return _mm256_maskz_shuffle_f64x2(__U, __A, __B, 3);
8080 }
8081 
test_mm256_shuffle_i32x4(__m256i __A,__m256i __B)8082 __m256i test_mm256_shuffle_i32x4(__m256i __A, __m256i __B) {
8083   // CHECK-LABEL: @test_mm256_shuffle_i32x4
8084   // 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>
8085   return _mm256_shuffle_i32x4(__A, __B, 3);
8086 }
8087 
test_mm256_mask_shuffle_i32x4(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)8088 __m256i test_mm256_mask_shuffle_i32x4(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
8089   // CHECK-LABEL: @test_mm256_mask_shuffle_i32x4
8090   // 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>
8091   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8092   return _mm256_mask_shuffle_i32x4(__W, __U, __A, __B, 3);
8093 }
8094 
test_mm256_maskz_shuffle_i32x4(__mmask8 __U,__m256i __A,__m256i __B)8095 __m256i test_mm256_maskz_shuffle_i32x4(__mmask8 __U, __m256i __A, __m256i __B) {
8096   // CHECK-LABEL: @test_mm256_maskz_shuffle_i32x4
8097   // 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>
8098   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8099   return _mm256_maskz_shuffle_i32x4(__U, __A, __B, 3);
8100 }
8101 
test_mm256_shuffle_i64x2(__m256i __A,__m256i __B)8102 __m256i test_mm256_shuffle_i64x2(__m256i __A, __m256i __B) {
8103   // CHECK-LABEL: @test_mm256_shuffle_i64x2
8104   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8105   return _mm256_shuffle_i64x2(__A, __B, 3);
8106 }
8107 
test_mm256_mask_shuffle_i64x2(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)8108 __m256i test_mm256_mask_shuffle_i64x2(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
8109   // CHECK-LABEL: @test_mm256_mask_shuffle_i64x2
8110   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8111   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8112   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8113   return _mm256_mask_shuffle_i64x2(__W, __U, __A, __B, 3);
8114 }
8115 
test_mm256_maskz_shuffle_i64x2(__mmask8 __U,__m256i __A,__m256i __B)8116 __m256i test_mm256_maskz_shuffle_i64x2(__mmask8 __U, __m256i __A, __m256i __B) {
8117   // CHECK-LABEL: @test_mm256_maskz_shuffle_i64x2
8118   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8119   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8120   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8121   return _mm256_maskz_shuffle_i64x2(__U, __A, __B, 3);
8122 }
8123 
test_mm_mask_shuffle_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)8124 __m128d test_mm_mask_shuffle_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
8125   // CHECK-LABEL: @test_mm_mask_shuffle_pd
8126   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
8127   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
8128   return _mm_mask_shuffle_pd(__W, __U, __A, __B, 3);
8129 }
8130 
test_mm_maskz_shuffle_pd(__mmask8 __U,__m128d __A,__m128d __B)8131 __m128d test_mm_maskz_shuffle_pd(__mmask8 __U, __m128d __A, __m128d __B) {
8132   // CHECK-LABEL: @test_mm_maskz_shuffle_pd
8133   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
8134   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
8135   return _mm_maskz_shuffle_pd(__U, __A, __B, 3);
8136 }
8137 
test_mm256_mask_shuffle_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)8138 __m256d test_mm256_mask_shuffle_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
8139   // CHECK-LABEL: @test_mm256_mask_shuffle_pd
8140   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 2, i32 6>
8141   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8142   return _mm256_mask_shuffle_pd(__W, __U, __A, __B, 3);
8143 }
8144 
test_mm256_maskz_shuffle_pd(__mmask8 __U,__m256d __A,__m256d __B)8145 __m256d test_mm256_maskz_shuffle_pd(__mmask8 __U, __m256d __A, __m256d __B) {
8146   // CHECK-LABEL: @test_mm256_maskz_shuffle_pd
8147   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 2, i32 6>
8148   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8149   return _mm256_maskz_shuffle_pd(__U, __A, __B, 3);
8150 }
8151 
test_mm_mask_shuffle_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)8152 __m128 test_mm_mask_shuffle_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
8153   // CHECK-LABEL: @test_mm_mask_shuffle_ps
8154   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 4>
8155   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8156   return _mm_mask_shuffle_ps(__W, __U, __A, __B, 4);
8157 }
8158 
test_mm_maskz_shuffle_ps(__mmask8 __U,__m128 __A,__m128 __B)8159 __m128 test_mm_maskz_shuffle_ps(__mmask8 __U, __m128 __A, __m128 __B) {
8160   // CHECK-LABEL: @test_mm_maskz_shuffle_ps
8161   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 4>
8162   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8163   return _mm_maskz_shuffle_ps(__U, __A, __B, 4);
8164 }
8165 
test_mm256_mask_shuffle_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)8166 __m256 test_mm256_mask_shuffle_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
8167   // CHECK-LABEL: @test_mm256_mask_shuffle_ps
8168   // 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>
8169   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8170   return _mm256_mask_shuffle_ps(__W, __U, __A, __B, 4);
8171 }
8172 
test_mm256_maskz_shuffle_ps(__mmask8 __U,__m256 __A,__m256 __B)8173 __m256 test_mm256_maskz_shuffle_ps(__mmask8 __U, __m256 __A, __m256 __B) {
8174   // CHECK-LABEL: @test_mm256_maskz_shuffle_ps
8175   // 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>
8176   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8177   return _mm256_maskz_shuffle_ps(__U, __A, __B, 4);
8178 }
8179 
test_mm_rsqrt14_pd(__m128d __A)8180 __m128d test_mm_rsqrt14_pd(__m128d __A) {
8181   // CHECK-LABEL: @test_mm_rsqrt14_pd
8182   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8183   return _mm_rsqrt14_pd(__A);
8184 }
8185 
test_mm_mask_rsqrt14_pd(__m128d __W,__mmask8 __U,__m128d __A)8186 __m128d test_mm_mask_rsqrt14_pd(__m128d __W, __mmask8 __U, __m128d __A) {
8187   // CHECK-LABEL: @test_mm_mask_rsqrt14_pd
8188   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8189   return _mm_mask_rsqrt14_pd(__W, __U, __A);
8190 }
8191 
test_mm_maskz_rsqrt14_pd(__mmask8 __U,__m128d __A)8192 __m128d test_mm_maskz_rsqrt14_pd(__mmask8 __U, __m128d __A) {
8193   // CHECK-LABEL: @test_mm_maskz_rsqrt14_pd
8194   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8195   return _mm_maskz_rsqrt14_pd(__U, __A);
8196 }
8197 
test_mm256_rsqrt14_pd(__m256d __A)8198 __m256d test_mm256_rsqrt14_pd(__m256d __A) {
8199   // CHECK-LABEL: @test_mm256_rsqrt14_pd
8200   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8201   return _mm256_rsqrt14_pd(__A);
8202 }
8203 
test_mm256_mask_rsqrt14_pd(__m256d __W,__mmask8 __U,__m256d __A)8204 __m256d test_mm256_mask_rsqrt14_pd(__m256d __W, __mmask8 __U, __m256d __A) {
8205   // CHECK-LABEL: @test_mm256_mask_rsqrt14_pd
8206   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8207   return _mm256_mask_rsqrt14_pd(__W, __U, __A);
8208 }
8209 
test_mm256_maskz_rsqrt14_pd(__mmask8 __U,__m256d __A)8210 __m256d test_mm256_maskz_rsqrt14_pd(__mmask8 __U, __m256d __A) {
8211   // CHECK-LABEL: @test_mm256_maskz_rsqrt14_pd
8212   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8213   return _mm256_maskz_rsqrt14_pd(__U, __A);
8214 }
8215 
test_mm_rsqrt14_ps(__m128 __A)8216 __m128 test_mm_rsqrt14_ps(__m128 __A) {
8217   // CHECK-LABEL: @test_mm_rsqrt14_ps
8218   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8219   return _mm_rsqrt14_ps(__A);
8220 }
8221 
test_mm_mask_rsqrt14_ps(__m128 __W,__mmask8 __U,__m128 __A)8222 __m128 test_mm_mask_rsqrt14_ps(__m128 __W, __mmask8 __U, __m128 __A) {
8223   // CHECK-LABEL: @test_mm_mask_rsqrt14_ps
8224   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8225   return _mm_mask_rsqrt14_ps(__W, __U, __A);
8226 }
8227 
test_mm_maskz_rsqrt14_ps(__mmask8 __U,__m128 __A)8228 __m128 test_mm_maskz_rsqrt14_ps(__mmask8 __U, __m128 __A) {
8229   // CHECK-LABEL: @test_mm_maskz_rsqrt14_ps
8230   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8231   return _mm_maskz_rsqrt14_ps(__U, __A);
8232 }
8233 
test_mm256_rsqrt14_ps(__m256 __A)8234 __m256 test_mm256_rsqrt14_ps(__m256 __A) {
8235   // CHECK-LABEL: @test_mm256_rsqrt14_ps
8236   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8237   return _mm256_rsqrt14_ps(__A);
8238 }
8239 
test_mm256_mask_rsqrt14_ps(__m256 __W,__mmask8 __U,__m256 __A)8240 __m256 test_mm256_mask_rsqrt14_ps(__m256 __W, __mmask8 __U, __m256 __A) {
8241   // CHECK-LABEL: @test_mm256_mask_rsqrt14_ps
8242   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8243   return _mm256_mask_rsqrt14_ps(__W, __U, __A);
8244 }
8245 
test_mm256_maskz_rsqrt14_ps(__mmask8 __U,__m256 __A)8246 __m256 test_mm256_maskz_rsqrt14_ps(__mmask8 __U, __m256 __A) {
8247   // CHECK-LABEL: @test_mm256_maskz_rsqrt14_ps
8248   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8249   return _mm256_maskz_rsqrt14_ps(__U, __A);
8250 }
8251 
test_mm256_broadcast_f32x4(__m128 __A)8252 __m256 test_mm256_broadcast_f32x4(__m128 __A) {
8253   // CHECK-LABEL: @test_mm256_broadcast_f32x4
8254   // 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>
8255   return _mm256_broadcast_f32x4(__A);
8256 }
8257 
test_mm256_mask_broadcast_f32x4(__m256 __O,__mmask8 __M,__m128 __A)8258 __m256 test_mm256_mask_broadcast_f32x4(__m256 __O, __mmask8 __M, __m128 __A) {
8259   // CHECK-LABEL: @test_mm256_mask_broadcast_f32x4
8260   // 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>
8261   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8262   return _mm256_mask_broadcast_f32x4(__O, __M, __A);
8263 }
8264 
test_mm256_maskz_broadcast_f32x4(__mmask8 __M,__m128 __A)8265 __m256 test_mm256_maskz_broadcast_f32x4(__mmask8 __M, __m128 __A) {
8266   // CHECK-LABEL: @test_mm256_maskz_broadcast_f32x4
8267   // 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>
8268   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8269   return _mm256_maskz_broadcast_f32x4(__M, __A);
8270 }
8271 
test_mm256_broadcast_i32x4(__m128i const * __A)8272 __m256i test_mm256_broadcast_i32x4(__m128i const* __A) {
8273   // CHECK-LABEL: @test_mm256_broadcast_i32x4
8274   // 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>
8275   return _mm256_broadcast_i32x4(_mm_loadu_si128(__A));
8276 }
8277 
test_mm256_mask_broadcast_i32x4(__m256i __O,__mmask8 __M,__m128i const * __A)8278 __m256i test_mm256_mask_broadcast_i32x4(__m256i __O, __mmask8 __M, __m128i const* __A) {
8279   // CHECK-LABEL: @test_mm256_mask_broadcast_i32x4
8280   // 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>
8281   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8282   return _mm256_mask_broadcast_i32x4(__O, __M, _mm_loadu_si128(__A));
8283 }
8284 
test_mm256_maskz_broadcast_i32x4(__mmask8 __M,__m128i const * __A)8285 __m256i test_mm256_maskz_broadcast_i32x4(__mmask8 __M, __m128i const* __A) {
8286   // CHECK-LABEL: @test_mm256_maskz_broadcast_i32x4
8287   // 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>
8288   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8289   return _mm256_maskz_broadcast_i32x4(__M, _mm_loadu_si128(__A));
8290 }
8291 
test_mm256_mask_broadcastsd_pd(__m256d __O,__mmask8 __M,__m128d __A)8292 __m256d test_mm256_mask_broadcastsd_pd(__m256d __O, __mmask8 __M, __m128d __A) {
8293   // CHECK-LABEL: @test_mm256_mask_broadcastsd_pd
8294   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer
8295   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8296   return _mm256_mask_broadcastsd_pd(__O, __M, __A);
8297 }
8298 
test_mm256_maskz_broadcastsd_pd(__mmask8 __M,__m128d __A)8299 __m256d test_mm256_maskz_broadcastsd_pd(__mmask8 __M, __m128d __A) {
8300   // CHECK-LABEL: @test_mm256_maskz_broadcastsd_pd
8301   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer
8302   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8303   return _mm256_maskz_broadcastsd_pd(__M, __A);
8304 }
8305 
test_mm_mask_broadcastss_ps(__m128 __O,__mmask8 __M,__m128 __A)8306 __m128 test_mm_mask_broadcastss_ps(__m128 __O, __mmask8 __M, __m128 __A) {
8307   // CHECK-LABEL: @test_mm_mask_broadcastss_ps
8308   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer
8309   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8310   return _mm_mask_broadcastss_ps(__O, __M, __A);
8311 }
8312 
test_mm_maskz_broadcastss_ps(__mmask8 __M,__m128 __A)8313 __m128 test_mm_maskz_broadcastss_ps(__mmask8 __M, __m128 __A) {
8314   // CHECK-LABEL: @test_mm_maskz_broadcastss_ps
8315   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer
8316   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8317   return _mm_maskz_broadcastss_ps(__M, __A);
8318 }
8319 
test_mm256_mask_broadcastss_ps(__m256 __O,__mmask8 __M,__m128 __A)8320 __m256 test_mm256_mask_broadcastss_ps(__m256 __O, __mmask8 __M, __m128 __A) {
8321   // CHECK-LABEL: @test_mm256_mask_broadcastss_ps
8322   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer
8323   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8324   return _mm256_mask_broadcastss_ps(__O, __M, __A);
8325 }
8326 
test_mm256_maskz_broadcastss_ps(__mmask8 __M,__m128 __A)8327 __m256 test_mm256_maskz_broadcastss_ps(__mmask8 __M, __m128 __A) {
8328   // CHECK-LABEL: @test_mm256_maskz_broadcastss_ps
8329   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer
8330   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8331   return _mm256_maskz_broadcastss_ps(__M, __A);
8332 }
8333 
test_mm_mask_broadcastd_epi32(__m128i __O,__mmask8 __M,__m128i __A)8334 __m128i test_mm_mask_broadcastd_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
8335   // CHECK-LABEL: @test_mm_mask_broadcastd_epi32
8336   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
8337   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8338   return _mm_mask_broadcastd_epi32(__O, __M, __A);
8339 }
8340 
test_mm_maskz_broadcastd_epi32(__mmask8 __M,__m128i __A)8341 __m128i test_mm_maskz_broadcastd_epi32(__mmask8 __M, __m128i __A) {
8342   // CHECK-LABEL: @test_mm_maskz_broadcastd_epi32
8343   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
8344   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8345   return _mm_maskz_broadcastd_epi32(__M, __A);
8346 }
8347 
test_mm256_mask_broadcastd_epi32(__m256i __O,__mmask8 __M,__m128i __A)8348 __m256i test_mm256_mask_broadcastd_epi32(__m256i __O, __mmask8 __M, __m128i __A) {
8349   // CHECK-LABEL: @test_mm256_mask_broadcastd_epi32
8350   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer
8351   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8352   return _mm256_mask_broadcastd_epi32(__O, __M, __A);
8353 }
8354 
test_mm256_maskz_broadcastd_epi32(__mmask8 __M,__m128i __A)8355 __m256i test_mm256_maskz_broadcastd_epi32(__mmask8 __M, __m128i __A) {
8356   // CHECK-LABEL: @test_mm256_maskz_broadcastd_epi32
8357   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer
8358   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8359   return _mm256_maskz_broadcastd_epi32(__M, __A);
8360 }
8361 
test_mm_mask_broadcastq_epi64(__m128i __O,__mmask8 __M,__m128i __A)8362 __m128i test_mm_mask_broadcastq_epi64(__m128i __O, __mmask8 __M, __m128i __A) {
8363   // CHECK-LABEL: @test_mm_mask_broadcastq_epi64
8364   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer
8365   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
8366   return _mm_mask_broadcastq_epi64(__O, __M, __A);
8367 }
8368 
test_mm_maskz_broadcastq_epi64(__mmask8 __M,__m128i __A)8369 __m128i test_mm_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
8370   // CHECK-LABEL: @test_mm_maskz_broadcastq_epi64
8371   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer
8372   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
8373   return _mm_maskz_broadcastq_epi64(__M, __A);
8374 }
8375 
test_mm256_mask_broadcastq_epi64(__m256i __O,__mmask8 __M,__m128i __A)8376 __m256i test_mm256_mask_broadcastq_epi64(__m256i __O, __mmask8 __M, __m128i __A) {
8377   // CHECK-LABEL: @test_mm256_mask_broadcastq_epi64
8378   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer
8379   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8380   return _mm256_mask_broadcastq_epi64(__O, __M, __A);
8381 }
8382 
test_mm256_maskz_broadcastq_epi64(__mmask8 __M,__m128i __A)8383 __m256i test_mm256_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
8384   // CHECK-LABEL: @test_mm256_maskz_broadcastq_epi64
8385   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer
8386   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8387   return _mm256_maskz_broadcastq_epi64(__M, __A);
8388 }
8389 
test_mm_cvtsepi32_epi8(__m128i __A)8390 __m128i test_mm_cvtsepi32_epi8(__m128i __A) {
8391   // CHECK-LABEL: @test_mm_cvtsepi32_epi8
8392   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8393   return _mm_cvtsepi32_epi8(__A);
8394 }
8395 
test_mm_mask_cvtsepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)8396 __m128i test_mm_mask_cvtsepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8397   // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi8
8398   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8399   return _mm_mask_cvtsepi32_epi8(__O, __M, __A);
8400 }
8401 
test_mm_maskz_cvtsepi32_epi8(__mmask8 __M,__m128i __A)8402 __m128i test_mm_maskz_cvtsepi32_epi8(__mmask8 __M, __m128i __A) {
8403   // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi8
8404   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8405   return _mm_maskz_cvtsepi32_epi8(__M, __A);
8406 }
8407 
test_mm_mask_cvtsepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8408 void test_mm_mask_cvtsepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8409   // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi8
8410   // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.128
8411   return _mm_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
8412 }
8413 
test_mm256_cvtsepi32_epi8(__m256i __A)8414 __m128i test_mm256_cvtsepi32_epi8(__m256i __A) {
8415   // CHECK-LABEL: @test_mm256_cvtsepi32_epi8
8416   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8417   return _mm256_cvtsepi32_epi8(__A);
8418 }
8419 
test_mm256_mask_cvtsepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)8420 __m128i test_mm256_mask_cvtsepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8421   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi8
8422   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8423   return _mm256_mask_cvtsepi32_epi8(__O, __M, __A);
8424 }
8425 
test_mm256_maskz_cvtsepi32_epi8(__mmask8 __M,__m256i __A)8426 __m128i test_mm256_maskz_cvtsepi32_epi8(__mmask8 __M, __m256i __A) {
8427   // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi8
8428   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8429   return _mm256_maskz_cvtsepi32_epi8(__M, __A);
8430 }
8431 
test_mm256_mask_cvtsepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8432 void test_mm256_mask_cvtsepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8433   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi8
8434   // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.256
8435   return _mm256_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
8436 }
8437 
test_mm_cvtsepi32_epi16(__m128i __A)8438 __m128i test_mm_cvtsepi32_epi16(__m128i __A) {
8439   // CHECK-LABEL: @test_mm_cvtsepi32_epi16
8440   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8441   return _mm_cvtsepi32_epi16(__A);
8442 }
8443 
test_mm_mask_cvtsepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)8444 __m128i test_mm_mask_cvtsepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8445   // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi16
8446   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8447   return _mm_mask_cvtsepi32_epi16(__O, __M, __A);
8448 }
8449 
test_mm_maskz_cvtsepi32_epi16(__mmask8 __M,__m128i __A)8450 __m128i test_mm_maskz_cvtsepi32_epi16(__mmask8 __M, __m128i __A) {
8451   // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi16
8452   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8453   return _mm_maskz_cvtsepi32_epi16(__M, __A);
8454 }
8455 
test_mm_mask_cvtsepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8456 void test_mm_mask_cvtsepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8457   // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi16
8458   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.128
8459   return _mm_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
8460 }
8461 
test_mm256_cvtsepi32_epi16(__m256i __A)8462 __m128i test_mm256_cvtsepi32_epi16(__m256i __A) {
8463   // CHECK-LABEL: @test_mm256_cvtsepi32_epi16
8464   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8465   return _mm256_cvtsepi32_epi16(__A);
8466 }
8467 
test_mm256_mask_cvtsepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)8468 __m128i test_mm256_mask_cvtsepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8469   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi16
8470   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8471   return _mm256_mask_cvtsepi32_epi16(__O, __M, __A);
8472 }
8473 
test_mm256_maskz_cvtsepi32_epi16(__mmask8 __M,__m256i __A)8474 __m128i test_mm256_maskz_cvtsepi32_epi16(__mmask8 __M, __m256i __A) {
8475   // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi16
8476   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8477   return _mm256_maskz_cvtsepi32_epi16(__M, __A);
8478 }
8479 
test_mm256_mask_cvtsepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8480 void test_mm256_mask_cvtsepi32_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8481   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi16
8482   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.256
8483   return _mm256_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
8484 }
8485 
test_mm_cvtsepi64_epi8(__m128i __A)8486 __m128i test_mm_cvtsepi64_epi8(__m128i __A) {
8487   // CHECK-LABEL: @test_mm_cvtsepi64_epi8
8488   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8489   return _mm_cvtsepi64_epi8(__A);
8490 }
8491 
test_mm_mask_cvtsepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)8492 __m128i test_mm_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8493   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi8
8494   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8495   return _mm_mask_cvtsepi64_epi8(__O, __M, __A);
8496 }
8497 
test_mm_maskz_cvtsepi64_epi8(__mmask8 __M,__m128i __A)8498 __m128i test_mm_maskz_cvtsepi64_epi8(__mmask8 __M, __m128i __A) {
8499   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi8
8500   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8501   return _mm_maskz_cvtsepi64_epi8(__M, __A);
8502 }
8503 
test_mm_mask_cvtsepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8504 void test_mm_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8505   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi8
8506   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.128
8507   return _mm_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
8508 }
8509 
test_mm256_cvtsepi64_epi8(__m256i __A)8510 __m128i test_mm256_cvtsepi64_epi8(__m256i __A) {
8511   // CHECK-LABEL: @test_mm256_cvtsepi64_epi8
8512   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8513   return _mm256_cvtsepi64_epi8(__A);
8514 }
8515 
test_mm256_mask_cvtsepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)8516 __m128i test_mm256_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8517   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi8
8518   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8519   return _mm256_mask_cvtsepi64_epi8(__O, __M, __A);
8520 }
8521 
test_mm256_maskz_cvtsepi64_epi8(__mmask8 __M,__m256i __A)8522 __m128i test_mm256_maskz_cvtsepi64_epi8(__mmask8 __M, __m256i __A) {
8523   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi8
8524   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8525   return _mm256_maskz_cvtsepi64_epi8(__M, __A);
8526 }
8527 
test_mm256_mask_cvtsepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8528 void test_mm256_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8529   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi8
8530   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.256
8531   return _mm256_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
8532 }
8533 
test_mm_cvtsepi64_epi32(__m128i __A)8534 __m128i test_mm_cvtsepi64_epi32(__m128i __A) {
8535   // CHECK-LABEL: @test_mm_cvtsepi64_epi32
8536   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8537   return _mm_cvtsepi64_epi32(__A);
8538 }
8539 
test_mm_mask_cvtsepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)8540 __m128i test_mm_mask_cvtsepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
8541   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi32
8542   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8543   return _mm_mask_cvtsepi64_epi32(__O, __M, __A);
8544 }
8545 
test_mm_maskz_cvtsepi64_epi32(__mmask8 __M,__m128i __A)8546 __m128i test_mm_maskz_cvtsepi64_epi32(__mmask8 __M, __m128i __A) {
8547   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi32
8548   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8549   return _mm_maskz_cvtsepi64_epi32(__M, __A);
8550 }
8551 
test_mm_mask_cvtsepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)8552 void test_mm_mask_cvtsepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
8553   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi32
8554   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.128
8555   return _mm_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
8556 }
8557 
test_mm256_cvtsepi64_epi32(__m256i __A)8558 __m128i test_mm256_cvtsepi64_epi32(__m256i __A) {
8559   // CHECK-LABEL: @test_mm256_cvtsepi64_epi32
8560   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8561   return _mm256_cvtsepi64_epi32(__A);
8562 }
8563 
test_mm256_mask_cvtsepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)8564 __m128i test_mm256_mask_cvtsepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
8565   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi32
8566   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8567   return _mm256_mask_cvtsepi64_epi32(__O, __M, __A);
8568 }
8569 
test_mm256_maskz_cvtsepi64_epi32(__mmask8 __M,__m256i __A)8570 __m128i test_mm256_maskz_cvtsepi64_epi32(__mmask8 __M, __m256i __A) {
8571   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi32
8572   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8573   return _mm256_maskz_cvtsepi64_epi32(__M, __A);
8574 }
8575 
test_mm256_mask_cvtsepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)8576 void test_mm256_mask_cvtsepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
8577   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi32
8578   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.256
8579   return _mm256_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
8580 }
8581 
test_mm_cvtsepi64_epi16(__m128i __A)8582 __m128i test_mm_cvtsepi64_epi16(__m128i __A) {
8583   // CHECK-LABEL: @test_mm_cvtsepi64_epi16
8584   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8585   return _mm_cvtsepi64_epi16(__A);
8586 }
8587 
test_mm_mask_cvtsepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)8588 __m128i test_mm_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8589   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi16
8590   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8591   return _mm_mask_cvtsepi64_epi16(__O, __M, __A);
8592 }
8593 
test_mm_maskz_cvtsepi64_epi16(__mmask8 __M,__m128i __A)8594 __m128i test_mm_maskz_cvtsepi64_epi16(__mmask8 __M, __m128i __A) {
8595   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi16
8596   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8597   return _mm_maskz_cvtsepi64_epi16(__M, __A);
8598 }
8599 
test_mm_mask_cvtsepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8600 void test_mm_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8601   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi16
8602   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.128
8603   return _mm_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
8604 }
8605 
test_mm256_cvtsepi64_epi16(__m256i __A)8606 __m128i test_mm256_cvtsepi64_epi16(__m256i __A) {
8607   // CHECK-LABEL: @test_mm256_cvtsepi64_epi16
8608   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8609   return _mm256_cvtsepi64_epi16(__A);
8610 }
8611 
test_mm256_mask_cvtsepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)8612 __m128i test_mm256_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8613   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi16
8614   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8615   return _mm256_mask_cvtsepi64_epi16(__O, __M, __A);
8616 }
8617 
test_mm256_maskz_cvtsepi64_epi16(__mmask8 __M,__m256i __A)8618 __m128i test_mm256_maskz_cvtsepi64_epi16(__mmask8 __M, __m256i __A) {
8619   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi16
8620   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8621   return _mm256_maskz_cvtsepi64_epi16(__M, __A);
8622 }
8623 
test_mm256_mask_cvtsepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8624 void test_mm256_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8625   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi16
8626   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.256
8627   return _mm256_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
8628 }
8629 
test_mm_cvtusepi32_epi8(__m128i __A)8630 __m128i test_mm_cvtusepi32_epi8(__m128i __A) {
8631   // CHECK-LABEL: @test_mm_cvtusepi32_epi8
8632   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8633   return _mm_cvtusepi32_epi8(__A);
8634 }
8635 
test_mm_mask_cvtusepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)8636 __m128i test_mm_mask_cvtusepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8637   // CHECK-LABEL: @test_mm_mask_cvtusepi32_epi8
8638   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8639   return _mm_mask_cvtusepi32_epi8(__O, __M, __A);
8640 }
8641 
test_mm_maskz_cvtusepi32_epi8(__mmask8 __M,__m128i __A)8642 __m128i test_mm_maskz_cvtusepi32_epi8(__mmask8 __M, __m128i __A) {
8643   // CHECK-LABEL: @test_mm_maskz_cvtusepi32_epi8
8644   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8645   return _mm_maskz_cvtusepi32_epi8(__M, __A);
8646 }
8647 
test_mm_mask_cvtusepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8648 void test_mm_mask_cvtusepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8649   // CHECK-LABEL: @test_mm_mask_cvtusepi32_storeu_epi8
8650   // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.128
8651   return _mm_mask_cvtusepi32_storeu_epi8(__P, __M, __A);
8652 }
8653 
test_mm256_cvtusepi32_epi8(__m256i __A)8654 __m128i test_mm256_cvtusepi32_epi8(__m256i __A) {
8655   // CHECK-LABEL: @test_mm256_cvtusepi32_epi8
8656   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8657   return _mm256_cvtusepi32_epi8(__A);
8658 }
8659 
test_mm256_mask_cvtusepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)8660 __m128i test_mm256_mask_cvtusepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8661   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_epi8
8662   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8663   return _mm256_mask_cvtusepi32_epi8(__O, __M, __A);
8664 }
8665 
test_mm256_maskz_cvtusepi32_epi8(__mmask8 __M,__m256i __A)8666 __m128i test_mm256_maskz_cvtusepi32_epi8(__mmask8 __M, __m256i __A) {
8667   // CHECK-LABEL: @test_mm256_maskz_cvtusepi32_epi8
8668   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8669   return _mm256_maskz_cvtusepi32_epi8(__M, __A);
8670 }
8671 
test_mm256_mask_cvtusepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8672 void test_mm256_mask_cvtusepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8673   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_storeu_epi8
8674   // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.256
8675   return _mm256_mask_cvtusepi32_storeu_epi8(__P, __M, __A);
8676 }
8677 
test_mm_cvtusepi32_epi16(__m128i __A)8678 __m128i test_mm_cvtusepi32_epi16(__m128i __A) {
8679   // CHECK-LABEL: @test_mm_cvtusepi32_epi16
8680   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8681   return _mm_cvtusepi32_epi16(__A);
8682 }
8683 
test_mm_mask_cvtusepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)8684 __m128i test_mm_mask_cvtusepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8685   // CHECK-LABEL: @test_mm_mask_cvtusepi32_epi16
8686   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8687   return _mm_mask_cvtusepi32_epi16(__O, __M, __A);
8688 }
8689 
test_mm_maskz_cvtusepi32_epi16(__mmask8 __M,__m128i __A)8690 __m128i test_mm_maskz_cvtusepi32_epi16(__mmask8 __M, __m128i __A) {
8691   // CHECK-LABEL: @test_mm_maskz_cvtusepi32_epi16
8692   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8693   return _mm_maskz_cvtusepi32_epi16(__M, __A);
8694 }
8695 
test_mm_mask_cvtusepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8696 void test_mm_mask_cvtusepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8697   // CHECK-LABEL: @test_mm_mask_cvtusepi32_storeu_epi16
8698   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.128
8699   return _mm_mask_cvtusepi32_storeu_epi16(__P, __M, __A);
8700 }
8701 
test_mm256_cvtusepi32_epi16(__m256i __A)8702 __m128i test_mm256_cvtusepi32_epi16(__m256i __A) {
8703   // CHECK-LABEL: @test_mm256_cvtusepi32_epi16
8704   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8705   return _mm256_cvtusepi32_epi16(__A);
8706 }
8707 
test_mm256_mask_cvtusepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)8708 __m128i test_mm256_mask_cvtusepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8709   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_epi16
8710   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8711   return _mm256_mask_cvtusepi32_epi16(__O, __M, __A);
8712 }
8713 
test_mm256_maskz_cvtusepi32_epi16(__mmask8 __M,__m256i __A)8714 __m128i test_mm256_maskz_cvtusepi32_epi16(__mmask8 __M, __m256i __A) {
8715   // CHECK-LABEL: @test_mm256_maskz_cvtusepi32_epi16
8716   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8717   return _mm256_maskz_cvtusepi32_epi16(__M, __A);
8718 }
8719 
test_mm256_mask_cvtusepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8720 void test_mm256_mask_cvtusepi32_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8721   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_storeu_epi16
8722   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.256
8723   return _mm256_mask_cvtusepi32_storeu_epi16(__P, __M, __A);
8724 }
8725 
test_mm_cvtusepi64_epi8(__m128i __A)8726 __m128i test_mm_cvtusepi64_epi8(__m128i __A) {
8727   // CHECK-LABEL: @test_mm_cvtusepi64_epi8
8728   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8729   return _mm_cvtusepi64_epi8(__A);
8730 }
8731 
test_mm_mask_cvtusepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)8732 __m128i test_mm_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8733   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi8
8734   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8735   return _mm_mask_cvtusepi64_epi8(__O, __M, __A);
8736 }
8737 
test_mm_maskz_cvtusepi64_epi8(__mmask8 __M,__m128i __A)8738 __m128i test_mm_maskz_cvtusepi64_epi8(__mmask8 __M, __m128i __A) {
8739   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi8
8740   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8741   return _mm_maskz_cvtusepi64_epi8(__M, __A);
8742 }
8743 
test_mm_mask_cvtusepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8744 void test_mm_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8745   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi8
8746   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.128
8747   return _mm_mask_cvtusepi64_storeu_epi8(__P, __M, __A);
8748 }
8749 
test_mm256_cvtusepi64_epi8(__m256i __A)8750 __m128i test_mm256_cvtusepi64_epi8(__m256i __A) {
8751   // CHECK-LABEL: @test_mm256_cvtusepi64_epi8
8752   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8753   return _mm256_cvtusepi64_epi8(__A);
8754 }
8755 
test_mm256_mask_cvtusepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)8756 __m128i test_mm256_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8757   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi8
8758   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8759   return _mm256_mask_cvtusepi64_epi8(__O, __M, __A);
8760 }
8761 
test_mm256_maskz_cvtusepi64_epi8(__mmask8 __M,__m256i __A)8762 __m128i test_mm256_maskz_cvtusepi64_epi8(__mmask8 __M, __m256i __A) {
8763   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi8
8764   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8765   return _mm256_maskz_cvtusepi64_epi8(__M, __A);
8766 }
8767 
test_mm256_mask_cvtusepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8768 void test_mm256_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8769   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi8
8770   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.256
8771   return _mm256_mask_cvtusepi64_storeu_epi8(__P, __M, __A);
8772 }
8773 
test_mm_cvtusepi64_epi32(__m128i __A)8774 __m128i test_mm_cvtusepi64_epi32(__m128i __A) {
8775   // CHECK-LABEL: @test_mm_cvtusepi64_epi32
8776   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8777   return _mm_cvtusepi64_epi32(__A);
8778 }
8779 
test_mm_mask_cvtusepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)8780 __m128i test_mm_mask_cvtusepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
8781   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi32
8782   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8783   return _mm_mask_cvtusepi64_epi32(__O, __M, __A);
8784 }
8785 
test_mm_maskz_cvtusepi64_epi32(__mmask8 __M,__m128i __A)8786 __m128i test_mm_maskz_cvtusepi64_epi32(__mmask8 __M, __m128i __A) {
8787   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi32
8788   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8789   return _mm_maskz_cvtusepi64_epi32(__M, __A);
8790 }
8791 
test_mm_mask_cvtusepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)8792 void test_mm_mask_cvtusepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
8793   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi32
8794   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.128
8795   return _mm_mask_cvtusepi64_storeu_epi32(__P, __M, __A);
8796 }
8797 
test_mm256_cvtusepi64_epi32(__m256i __A)8798 __m128i test_mm256_cvtusepi64_epi32(__m256i __A) {
8799   // CHECK-LABEL: @test_mm256_cvtusepi64_epi32
8800   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8801   return _mm256_cvtusepi64_epi32(__A);
8802 }
8803 
test_mm256_mask_cvtusepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)8804 __m128i test_mm256_mask_cvtusepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
8805   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi32
8806   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8807   return _mm256_mask_cvtusepi64_epi32(__O, __M, __A);
8808 }
8809 
test_mm256_maskz_cvtusepi64_epi32(__mmask8 __M,__m256i __A)8810 __m128i test_mm256_maskz_cvtusepi64_epi32(__mmask8 __M, __m256i __A) {
8811   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi32
8812   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8813   return _mm256_maskz_cvtusepi64_epi32(__M, __A);
8814 }
8815 
test_mm256_mask_cvtusepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)8816 void test_mm256_mask_cvtusepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
8817   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi32
8818   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.256
8819   return _mm256_mask_cvtusepi64_storeu_epi32(__P, __M, __A);
8820 }
8821 
test_mm_cvtusepi64_epi16(__m128i __A)8822 __m128i test_mm_cvtusepi64_epi16(__m128i __A) {
8823   // CHECK-LABEL: @test_mm_cvtusepi64_epi16
8824   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8825   return _mm_cvtusepi64_epi16(__A);
8826 }
8827 
test_mm_mask_cvtusepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)8828 __m128i test_mm_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8829   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi16
8830   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8831   return _mm_mask_cvtusepi64_epi16(__O, __M, __A);
8832 }
8833 
test_mm_maskz_cvtusepi64_epi16(__mmask8 __M,__m128i __A)8834 __m128i test_mm_maskz_cvtusepi64_epi16(__mmask8 __M, __m128i __A) {
8835   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi16
8836   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8837   return _mm_maskz_cvtusepi64_epi16(__M, __A);
8838 }
8839 
test_mm_mask_cvtusepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8840 void test_mm_mask_cvtusepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8841   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi16
8842   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.128
8843   return _mm_mask_cvtusepi64_storeu_epi16(__P, __M, __A);
8844 }
8845 
test_mm256_cvtusepi64_epi16(__m256i __A)8846 __m128i test_mm256_cvtusepi64_epi16(__m256i __A) {
8847   // CHECK-LABEL: @test_mm256_cvtusepi64_epi16
8848   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8849   return _mm256_cvtusepi64_epi16(__A);
8850 }
8851 
test_mm256_mask_cvtusepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)8852 __m128i test_mm256_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8853   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi16
8854   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8855   return _mm256_mask_cvtusepi64_epi16(__O, __M, __A);
8856 }
8857 
test_mm256_maskz_cvtusepi64_epi16(__mmask8 __M,__m256i __A)8858 __m128i test_mm256_maskz_cvtusepi64_epi16(__mmask8 __M, __m256i __A) {
8859   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi16
8860   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8861   return _mm256_maskz_cvtusepi64_epi16(__M, __A);
8862 }
8863 
test_mm256_mask_cvtusepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8864 void test_mm256_mask_cvtusepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8865   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi16
8866   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.256
8867   return _mm256_mask_cvtusepi64_storeu_epi16(__P, __M, __A);
8868 }
8869 
test_mm_cvtepi32_epi8(__m128i __A)8870 __m128i test_mm_cvtepi32_epi8(__m128i __A) {
8871   // CHECK-LABEL: @test_mm_cvtepi32_epi8
8872   // CHECK: trunc <4 x i32> %{{.*}} to <4 x i8>
8873   // 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>
8874   return _mm_cvtepi32_epi8(__A);
8875 }
8876 
test_mm_mask_cvtepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)8877 __m128i test_mm_mask_cvtepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8878   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi8
8879   // CHECK: @llvm.x86.avx512.mask.pmov.db.128
8880   return _mm_mask_cvtepi32_epi8(__O, __M, __A);
8881 }
8882 
test_mm_maskz_cvtepi32_epi8(__mmask8 __M,__m128i __A)8883 __m128i test_mm_maskz_cvtepi32_epi8(__mmask8 __M, __m128i __A) {
8884   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi8
8885   // CHECK: @llvm.x86.avx512.mask.pmov.db.128
8886   return _mm_maskz_cvtepi32_epi8(__M, __A);
8887 }
8888 
test_mm_mask_cvtepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8889 void test_mm_mask_cvtepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8890   // CHECK-LABEL: @test_mm_mask_cvtepi32_storeu_epi8
8891   // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.128
8892   return _mm_mask_cvtepi32_storeu_epi8(__P, __M, __A);
8893 }
8894 
test_mm256_cvtepi32_epi8(__m256i __A)8895 __m128i test_mm256_cvtepi32_epi8(__m256i __A) {
8896   // CHECK-LABEL: @test_mm256_cvtepi32_epi8
8897   // CHECK: trunc <8 x i32> %{{.*}} to <8 x i8>
8898   // 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>
8899   return _mm256_cvtepi32_epi8(__A);
8900 }
8901 
test_mm256_mask_cvtepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)8902 __m128i test_mm256_mask_cvtepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8903   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi8
8904   // CHECK: @llvm.x86.avx512.mask.pmov.db.256
8905   return _mm256_mask_cvtepi32_epi8(__O, __M, __A);
8906 }
8907 
test_mm256_maskz_cvtepi32_epi8(__mmask8 __M,__m256i __A)8908 __m128i test_mm256_maskz_cvtepi32_epi8(__mmask8 __M, __m256i __A) {
8909   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi8
8910   // CHECK: @llvm.x86.avx512.mask.pmov.db.256
8911   return _mm256_maskz_cvtepi32_epi8(__M, __A);
8912 }
8913 
test_mm256_mask_cvtepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8914 void test_mm256_mask_cvtepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8915   // CHECK-LABEL: @test_mm256_mask_cvtepi32_storeu_epi8
8916   // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.256
8917   return _mm256_mask_cvtepi32_storeu_epi8(__P, __M, __A);
8918 }
8919 
test_mm_cvtepi32_epi16(__m128i __A)8920 __m128i test_mm_cvtepi32_epi16(__m128i __A) {
8921   // CHECK-LABEL: @test_mm_cvtepi32_epi16
8922   // CHECK: trunc <4 x i32> %{{.*}} to <4 x i16>
8923   // 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>
8924   return _mm_cvtepi32_epi16(__A);
8925 }
8926 
test_mm_mask_cvtepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)8927 __m128i test_mm_mask_cvtepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8928   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi16
8929   // CHECK: @llvm.x86.avx512.mask.pmov.dw.128
8930   return _mm_mask_cvtepi32_epi16(__O, __M, __A);
8931 }
8932 
test_mm_maskz_cvtepi32_epi16(__mmask8 __M,__m128i __A)8933 __m128i test_mm_maskz_cvtepi32_epi16(__mmask8 __M, __m128i __A) {
8934   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi16
8935   // CHECK: @llvm.x86.avx512.mask.pmov.dw.128
8936   return _mm_maskz_cvtepi32_epi16(__M, __A);
8937 }
8938 
test_mm_mask_cvtepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8939 void test_mm_mask_cvtepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8940   // CHECK-LABEL: @test_mm_mask_cvtepi32_storeu_epi16
8941   // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.128
8942   return _mm_mask_cvtepi32_storeu_epi16(__P, __M, __A);
8943 }
8944 
test_mm256_cvtepi32_epi16(__m256i __A)8945 __m128i test_mm256_cvtepi32_epi16(__m256i __A) {
8946   // CHECK-LABEL: @test_mm256_cvtepi32_epi16
8947   // CHECK: trunc <8 x i32> %{{.*}} to <8 x i16>
8948   return _mm256_cvtepi32_epi16(__A);
8949 }
8950 
test_mm256_mask_cvtepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)8951 __m128i test_mm256_mask_cvtepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8952   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi16
8953   // CHECK: @llvm.x86.avx512.mask.pmov.dw.256
8954   return _mm256_mask_cvtepi32_epi16(__O, __M, __A);
8955 }
8956 
test_mm256_maskz_cvtepi32_epi16(__mmask8 __M,__m256i __A)8957 __m128i test_mm256_maskz_cvtepi32_epi16(__mmask8 __M, __m256i __A) {
8958   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi16
8959   // CHECK: @llvm.x86.avx512.mask.pmov.dw.256
8960   return _mm256_maskz_cvtepi32_epi16(__M, __A);
8961 }
8962 
test_mm256_mask_cvtepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8963 void test_mm256_mask_cvtepi32_storeu_epi16(void *  __P, __mmask8 __M, __m256i __A) {
8964   // CHECK-LABEL: @test_mm256_mask_cvtepi32_storeu_epi16
8965   // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.256
8966   return _mm256_mask_cvtepi32_storeu_epi16(__P, __M, __A);
8967 }
8968 
test_mm_cvtepi64_epi8(__m128i __A)8969 __m128i test_mm_cvtepi64_epi8(__m128i __A) {
8970   // CHECK-LABEL: @test_mm_cvtepi64_epi8
8971   // CHECK: trunc <2 x i64> %{{.*}} to <2 x i8>
8972   // 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>
8973   return _mm_cvtepi64_epi8(__A);
8974 }
8975 
test_mm_mask_cvtepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)8976 __m128i test_mm_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8977   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi8
8978   // CHECK: @llvm.x86.avx512.mask.pmov.qb.128
8979   return _mm_mask_cvtepi64_epi8(__O, __M, __A);
8980 }
8981 
test_mm_maskz_cvtepi64_epi8(__mmask8 __M,__m128i __A)8982 __m128i test_mm_maskz_cvtepi64_epi8(__mmask8 __M, __m128i __A) {
8983   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi8
8984   // CHECK: @llvm.x86.avx512.mask.pmov.qb.128
8985   return _mm_maskz_cvtepi64_epi8(__M, __A);
8986 }
8987 
test_mm_mask_cvtepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8988 void test_mm_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8989   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi8
8990   // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.128
8991   return _mm_mask_cvtepi64_storeu_epi8(__P, __M, __A);
8992 }
8993 
test_mm256_cvtepi64_epi8(__m256i __A)8994 __m128i test_mm256_cvtepi64_epi8(__m256i __A) {
8995   // CHECK-LABEL: @test_mm256_cvtepi64_epi8
8996   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i8>
8997   // 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>
8998   return _mm256_cvtepi64_epi8(__A);
8999 }
9000 
test_mm256_mask_cvtepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)9001 __m128i test_mm256_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
9002   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi8
9003   // CHECK: @llvm.x86.avx512.mask.pmov.qb.256
9004   return _mm256_mask_cvtepi64_epi8(__O, __M, __A);
9005 }
9006 
test_mm256_maskz_cvtepi64_epi8(__mmask8 __M,__m256i __A)9007 __m128i test_mm256_maskz_cvtepi64_epi8(__mmask8 __M, __m256i __A) {
9008   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi8
9009   // CHECK: @llvm.x86.avx512.mask.pmov.qb.256
9010   return _mm256_maskz_cvtepi64_epi8(__M, __A);
9011 }
9012 
test_mm256_mask_cvtepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)9013 void test_mm256_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
9014   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi8
9015   // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.256
9016   return _mm256_mask_cvtepi64_storeu_epi8(__P, __M, __A);
9017 }
9018 
test_mm_cvtepi64_epi32(__m128i __A)9019 __m128i test_mm_cvtepi64_epi32(__m128i __A) {
9020   // CHECK-LABEL: @test_mm_cvtepi64_epi32
9021   // CHECK: trunc <2 x i64> %{{.*}} to <2 x i32>
9022   // CHECK: shufflevector <2 x i32> %{{.*}}, <2 x i32> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
9023   return _mm_cvtepi64_epi32(__A);
9024 }
9025 
test_mm_mask_cvtepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)9026 __m128i test_mm_mask_cvtepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
9027   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi32
9028   // CHECK: @llvm.x86.avx512.mask.pmov.qd.128
9029   return _mm_mask_cvtepi64_epi32(__O, __M, __A);
9030 }
9031 
test_mm_maskz_cvtepi64_epi32(__mmask8 __M,__m128i __A)9032 __m128i test_mm_maskz_cvtepi64_epi32(__mmask8 __M, __m128i __A) {
9033   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi32
9034   // CHECK: @llvm.x86.avx512.mask.pmov.qd.128
9035   return _mm_maskz_cvtepi64_epi32(__M, __A);
9036 }
9037 
test_mm_mask_cvtepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)9038 void test_mm_mask_cvtepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
9039   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi32
9040   // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.128
9041   return _mm_mask_cvtepi64_storeu_epi32(__P, __M, __A);
9042 }
9043 
test_mm256_cvtepi64_epi32(__m256i __A)9044 __m128i test_mm256_cvtepi64_epi32(__m256i __A) {
9045   // CHECK-LABEL: @test_mm256_cvtepi64_epi32
9046   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
9047   return _mm256_cvtepi64_epi32(__A);
9048 }
9049 
test_mm256_mask_cvtepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)9050 __m128i test_mm256_mask_cvtepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
9051   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi32
9052   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
9053   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9054   return _mm256_mask_cvtepi64_epi32(__O, __M, __A);
9055 }
9056 
test_mm256_maskz_cvtepi64_epi32(__mmask8 __M,__m256i __A)9057 __m128i test_mm256_maskz_cvtepi64_epi32(__mmask8 __M, __m256i __A) {
9058   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi32
9059   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
9060   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9061   return _mm256_maskz_cvtepi64_epi32(__M, __A);
9062 }
9063 
test_mm256_mask_cvtepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)9064 void test_mm256_mask_cvtepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
9065   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi32
9066   // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.256
9067   return _mm256_mask_cvtepi64_storeu_epi32(__P, __M, __A);
9068 }
9069 
test_mm_cvtepi64_epi16(__m128i __A)9070 __m128i test_mm_cvtepi64_epi16(__m128i __A) {
9071   // CHECK-LABEL: @test_mm_cvtepi64_epi16
9072   // CHECK: trunc <2 x i64> %{{.*}} to <2 x i16>
9073   // 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>
9074   return _mm_cvtepi64_epi16(__A);
9075 }
9076 
test_mm_mask_cvtepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)9077 __m128i test_mm_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
9078   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi16
9079   // CHECK: @llvm.x86.avx512.mask.pmov.qw.128
9080   return _mm_mask_cvtepi64_epi16(__O, __M, __A);
9081 }
9082 
test_mm_maskz_cvtepi64_epi16(__mmask8 __M,__m128i __A)9083 __m128i test_mm_maskz_cvtepi64_epi16(__mmask8 __M, __m128i __A) {
9084   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi16
9085   // CHECK: @llvm.x86.avx512.mask.pmov.qw.128
9086   return _mm_maskz_cvtepi64_epi16(__M, __A);
9087 }
9088 
test_mm_mask_cvtepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)9089 void test_mm_mask_cvtepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
9090   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi16
9091   // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.128
9092   return _mm_mask_cvtepi64_storeu_epi16(__P, __M, __A);
9093 }
9094 
test_mm256_cvtepi64_epi16(__m256i __A)9095 __m128i test_mm256_cvtepi64_epi16(__m256i __A) {
9096   // CHECK-LABEL: @test_mm256_cvtepi64_epi16
9097   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i16>
9098   // 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>
9099   return _mm256_cvtepi64_epi16(__A);
9100 }
9101 
test_mm256_mask_cvtepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)9102 __m128i test_mm256_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
9103   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi16
9104   // CHECK: @llvm.x86.avx512.mask.pmov.qw.256
9105   return _mm256_mask_cvtepi64_epi16(__O, __M, __A);
9106 }
9107 
test_mm256_maskz_cvtepi64_epi16(__mmask8 __M,__m256i __A)9108 __m128i test_mm256_maskz_cvtepi64_epi16(__mmask8 __M, __m256i __A) {
9109   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi16
9110   // CHECK: @llvm.x86.avx512.mask.pmov.qw.256
9111   return _mm256_maskz_cvtepi64_epi16(__M, __A);
9112 }
9113 
test_mm256_mask_cvtepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)9114 void test_mm256_mask_cvtepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
9115   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi16
9116   // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.256
9117   return _mm256_mask_cvtepi64_storeu_epi16(__P, __M, __A);
9118 }
9119 
test_mm256_extractf32x4_ps(__m256 __A)9120 __m128 test_mm256_extractf32x4_ps(__m256 __A) {
9121   // CHECK-LABEL: @test_mm256_extractf32x4_ps
9122   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9123   return _mm256_extractf32x4_ps(__A, 1);
9124 }
9125 
test_mm256_mask_extractf32x4_ps(__m128 __W,__mmask8 __U,__m256 __A)9126 __m128 test_mm256_mask_extractf32x4_ps(__m128 __W, __mmask8 __U, __m256 __A) {
9127   // CHECK-LABEL: @test_mm256_mask_extractf32x4_ps
9128   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9129   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9130   return _mm256_mask_extractf32x4_ps(__W, __U, __A, 1);
9131 }
9132 
test_mm256_maskz_extractf32x4_ps(__mmask8 __U,__m256 __A)9133 __m128 test_mm256_maskz_extractf32x4_ps(__mmask8 __U, __m256 __A) {
9134   // CHECK-LABEL: @test_mm256_maskz_extractf32x4_ps
9135   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9136   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9137   return _mm256_maskz_extractf32x4_ps(__U, __A, 1);
9138 }
9139 
test_mm256_extracti32x4_epi32(__m256i __A)9140 __m128i test_mm256_extracti32x4_epi32(__m256i __A) {
9141   // CHECK-LABEL: @test_mm256_extracti32x4_epi32
9142   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9143   return _mm256_extracti32x4_epi32(__A, 1);
9144 }
9145 
test_mm256_mask_extracti32x4_epi32(__m128i __W,__mmask8 __U,__m256i __A)9146 __m128i test_mm256_mask_extracti32x4_epi32(__m128i __W, __mmask8 __U, __m256i __A) {
9147   // CHECK-LABEL: @test_mm256_mask_extracti32x4_epi32
9148   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9149   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9150   return _mm256_mask_extracti32x4_epi32(__W, __U, __A, 1);
9151 }
9152 
test_mm256_maskz_extracti32x4_epi32(__mmask8 __U,__m256i __A)9153 __m128i test_mm256_maskz_extracti32x4_epi32(__mmask8 __U, __m256i __A) {
9154   // CHECK-LABEL: @test_mm256_maskz_extracti32x4_epi32
9155   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9156   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9157   return _mm256_maskz_extracti32x4_epi32(__U, __A, 1);
9158 }
9159 
test_mm256_insertf32x4(__m256 __A,__m128 __B)9160 __m256 test_mm256_insertf32x4(__m256 __A, __m128 __B) {
9161   // CHECK-LABEL: @test_mm256_insertf32x4
9162   // 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>
9163   return _mm256_insertf32x4(__A, __B, 1);
9164 }
9165 
test_mm256_mask_insertf32x4(__m256 __W,__mmask8 __U,__m256 __A,__m128 __B)9166 __m256 test_mm256_mask_insertf32x4(__m256 __W, __mmask8 __U, __m256 __A, __m128 __B) {
9167   // CHECK-LABEL: @test_mm256_mask_insertf32x4
9168   // 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>
9169   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9170   return _mm256_mask_insertf32x4(__W, __U, __A, __B, 1);
9171 }
9172 
test_mm256_maskz_insertf32x4(__mmask8 __U,__m256 __A,__m128 __B)9173 __m256 test_mm256_maskz_insertf32x4(__mmask8 __U, __m256 __A, __m128 __B) {
9174   // CHECK-LABEL: @test_mm256_maskz_insertf32x4
9175   // 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>
9176   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9177   return _mm256_maskz_insertf32x4(__U, __A, __B, 1);
9178 }
9179 
test_mm256_inserti32x4(__m256i __A,__m128i __B)9180 __m256i test_mm256_inserti32x4(__m256i __A, __m128i __B) {
9181   // CHECK-LABEL: @test_mm256_inserti32x4
9182   // 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>
9183   return _mm256_inserti32x4(__A, __B, 1);
9184 }
9185 
test_mm256_mask_inserti32x4(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)9186 __m256i test_mm256_mask_inserti32x4(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
9187   // CHECK-LABEL: @test_mm256_mask_inserti32x4
9188   // 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>
9189   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9190   return _mm256_mask_inserti32x4(__W, __U, __A, __B, 1);
9191 }
9192 
test_mm256_maskz_inserti32x4(__mmask8 __U,__m256i __A,__m128i __B)9193 __m256i test_mm256_maskz_inserti32x4(__mmask8 __U, __m256i __A, __m128i __B) {
9194   // CHECK-LABEL: @test_mm256_maskz_inserti32x4
9195   // 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>
9196   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9197   return _mm256_maskz_inserti32x4(__U, __A, __B, 1);
9198 }
9199 
test_mm_getmant_pd(__m128d __A)9200 __m128d test_mm_getmant_pd(__m128d __A) {
9201   // CHECK-LABEL: @test_mm_getmant_pd
9202   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9203   return _mm_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9204 }
9205 
test_mm_mask_getmant_pd(__m128d __W,__mmask8 __U,__m128d __A)9206 __m128d test_mm_mask_getmant_pd(__m128d __W, __mmask8 __U, __m128d __A) {
9207   // CHECK-LABEL: @test_mm_mask_getmant_pd
9208   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9209   return _mm_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9210 }
9211 
test_mm_maskz_getmant_pd(__mmask8 __U,__m128d __A)9212 __m128d test_mm_maskz_getmant_pd(__mmask8 __U, __m128d __A) {
9213   // CHECK-LABEL: @test_mm_maskz_getmant_pd
9214   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9215   return _mm_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9216 }
9217 
test_mm256_getmant_pd(__m256d __A)9218 __m256d test_mm256_getmant_pd(__m256d __A) {
9219   // CHECK-LABEL: @test_mm256_getmant_pd
9220   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9221   return _mm256_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9222 }
9223 
test_mm256_mask_getmant_pd(__m256d __W,__mmask8 __U,__m256d __A)9224 __m256d test_mm256_mask_getmant_pd(__m256d __W, __mmask8 __U, __m256d __A) {
9225   // CHECK-LABEL: @test_mm256_mask_getmant_pd
9226   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9227   return _mm256_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9228 }
9229 
test_mm256_maskz_getmant_pd(__mmask8 __U,__m256d __A)9230 __m256d test_mm256_maskz_getmant_pd(__mmask8 __U, __m256d __A) {
9231   // CHECK-LABEL: @test_mm256_maskz_getmant_pd
9232   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9233   return _mm256_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9234 }
9235 
test_mm_getmant_ps(__m128 __A)9236 __m128 test_mm_getmant_ps(__m128 __A) {
9237   // CHECK-LABEL: @test_mm_getmant_ps
9238   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9239   return _mm_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9240 }
9241 
test_mm_mask_getmant_ps(__m128 __W,__mmask8 __U,__m128 __A)9242 __m128 test_mm_mask_getmant_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9243   // CHECK-LABEL: @test_mm_mask_getmant_ps
9244   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9245   return _mm_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9246 }
9247 
test_mm_maskz_getmant_ps(__mmask8 __U,__m128 __A)9248 __m128 test_mm_maskz_getmant_ps(__mmask8 __U, __m128 __A) {
9249   // CHECK-LABEL: @test_mm_maskz_getmant_ps
9250   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9251   return _mm_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9252 }
9253 
test_mm256_getmant_ps(__m256 __A)9254 __m256 test_mm256_getmant_ps(__m256 __A) {
9255   // CHECK-LABEL: @test_mm256_getmant_ps
9256   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9257   return _mm256_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9258 }
9259 
test_mm256_mask_getmant_ps(__m256 __W,__mmask8 __U,__m256 __A)9260 __m256 test_mm256_mask_getmant_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9261   // CHECK-LABEL: @test_mm256_mask_getmant_ps
9262   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9263   return _mm256_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9264 }
9265 
test_mm256_maskz_getmant_ps(__mmask8 __U,__m256 __A)9266 __m256 test_mm256_maskz_getmant_ps(__mmask8 __U, __m256 __A) {
9267   // CHECK-LABEL: @test_mm256_maskz_getmant_ps
9268   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9269   return _mm256_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9270 }
9271 
test_mm_mmask_i64gather_pd(__m128d __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9272 __m128d test_mm_mmask_i64gather_pd(__m128d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9273   // CHECK-LABEL: @test_mm_mmask_i64gather_pd
9274   // CHECK: @llvm.x86.avx512.mask.gather3div2.df
9275   return _mm_mmask_i64gather_pd(__v1_old, __mask, __index, __addr, 2);
9276 }
9277 
test_mm_mmask_i64gather_epi64(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9278 __m128i test_mm_mmask_i64gather_epi64(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9279   // CHECK-LABEL: @test_mm_mmask_i64gather_epi64
9280   // CHECK: @llvm.x86.avx512.mask.gather3div2.di
9281   return _mm_mmask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2);
9282 }
9283 
test_mm256_mmask_i64gather_pd(__m256d __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9284 __m256d test_mm256_mmask_i64gather_pd(__m256d __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9285   // CHECK-LABEL: @test_mm256_mmask_i64gather_pd
9286   // CHECK: @llvm.x86.avx512.mask.gather3div4.df
9287   return _mm256_mmask_i64gather_pd(__v1_old, __mask, __index, __addr, 2);
9288 }
9289 
test_mm256_mmask_i64gather_epi64(__m256i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9290 __m256i test_mm256_mmask_i64gather_epi64(__m256i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9291   // CHECK-LABEL: @test_mm256_mmask_i64gather_epi64
9292   // CHECK: @llvm.x86.avx512.mask.gather3div4.di
9293   return _mm256_mmask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2);
9294 }
9295 
test_mm_mmask_i64gather_ps(__m128 __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9296 __m128 test_mm_mmask_i64gather_ps(__m128 __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9297   // CHECK-LABEL: @test_mm_mmask_i64gather_ps
9298   // CHECK: @llvm.x86.avx512.mask.gather3div4.sf
9299   return _mm_mmask_i64gather_ps(__v1_old, __mask, __index, __addr, 2);
9300 }
9301 
test_mm_mmask_i64gather_epi32(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9302 __m128i test_mm_mmask_i64gather_epi32(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9303   // CHECK-LABEL: @test_mm_mmask_i64gather_epi32
9304   // CHECK: @llvm.x86.avx512.mask.gather3div4.si
9305   return _mm_mmask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2);
9306 }
9307 
test_mm256_mmask_i64gather_ps(__m128 __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9308 __m128 test_mm256_mmask_i64gather_ps(__m128 __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9309   // CHECK-LABEL: @test_mm256_mmask_i64gather_ps
9310   // CHECK: @llvm.x86.avx512.mask.gather3div8.sf
9311   return _mm256_mmask_i64gather_ps(__v1_old, __mask, __index, __addr, 2);
9312 }
9313 
test_mm256_mmask_i64gather_epi32(__m128i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9314 __m128i test_mm256_mmask_i64gather_epi32(__m128i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9315   // CHECK-LABEL: @test_mm256_mmask_i64gather_epi32
9316   // CHECK: @llvm.x86.avx512.mask.gather3div8.si
9317   return _mm256_mmask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2);
9318 }
9319 
test_mm_mask_i32gather_pd(__m128d __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9320 __m128d test_mm_mask_i32gather_pd(__m128d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9321   // CHECK-LABEL: @test_mm_mask_i32gather_pd
9322   // CHECK: @llvm.x86.avx512.mask.gather3siv2.df
9323   return _mm_mmask_i32gather_pd(__v1_old, __mask, __index, __addr, 2);
9324 }
9325 
test_mm_mask_i32gather_epi64(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9326 __m128i test_mm_mask_i32gather_epi64(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9327   // CHECK-LABEL: @test_mm_mask_i32gather_epi64
9328   // CHECK: @llvm.x86.avx512.mask.gather3siv2.di
9329   return _mm_mmask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2);
9330 }
9331 
test_mm256_mask_i32gather_pd(__m256d __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9332 __m256d test_mm256_mask_i32gather_pd(__m256d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9333   // CHECK-LABEL: @test_mm256_mask_i32gather_pd
9334   // CHECK: @llvm.x86.avx512.mask.gather3siv4.df
9335   return _mm256_mmask_i32gather_pd(__v1_old, __mask, __index, __addr, 2);
9336 }
9337 
test_mm256_mask_i32gather_epi64(__m256i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9338 __m256i test_mm256_mask_i32gather_epi64(__m256i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9339   // CHECK-LABEL: @test_mm256_mask_i32gather_epi64
9340   // CHECK: @llvm.x86.avx512.mask.gather3siv4.di
9341   return _mm256_mmask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2);
9342 }
9343 
test_mm_mask_i32gather_ps(__m128 __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9344 __m128 test_mm_mask_i32gather_ps(__m128 __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9345   // CHECK-LABEL: @test_mm_mask_i32gather_ps
9346   // CHECK: @llvm.x86.avx512.mask.gather3siv4.sf
9347   return _mm_mmask_i32gather_ps(__v1_old, __mask, __index, __addr, 2);
9348 }
9349 
test_mm_mask_i32gather_epi32(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9350 __m128i test_mm_mask_i32gather_epi32(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9351   // CHECK-LABEL: @test_mm_mask_i32gather_epi32
9352   // CHECK: @llvm.x86.avx512.mask.gather3siv4.si
9353   return _mm_mmask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2);
9354 }
9355 
test_mm256_mask_i32gather_ps(__m256 __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9356 __m256 test_mm256_mask_i32gather_ps(__m256 __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9357   // CHECK-LABEL: @test_mm256_mask_i32gather_ps
9358   // CHECK: @llvm.x86.avx512.mask.gather3siv8.sf
9359   return _mm256_mmask_i32gather_ps(__v1_old, __mask, __index, __addr, 2);
9360 }
9361 
test_mm256_mask_i32gather_epi32(__m256i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9362 __m256i test_mm256_mask_i32gather_epi32(__m256i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9363   // CHECK-LABEL: @test_mm256_mask_i32gather_epi32
9364   // CHECK: @llvm.x86.avx512.mask.gather3siv8.si
9365   return _mm256_mmask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2);
9366 }
9367 
test_mm256_permutex_pd(__m256d __X)9368 __m256d test_mm256_permutex_pd(__m256d __X) {
9369   // CHECK-LABEL: @test_mm256_permutex_pd
9370   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9371   return _mm256_permutex_pd(__X, 3);
9372 }
9373 
test_mm256_mask_permutex_pd(__m256d __W,__mmask8 __U,__m256d __X)9374 __m256d test_mm256_mask_permutex_pd(__m256d __W, __mmask8 __U, __m256d __X) {
9375   // CHECK-LABEL: @test_mm256_mask_permutex_pd
9376   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9377   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9378   return _mm256_mask_permutex_pd(__W, __U, __X, 1);
9379 }
9380 
test_mm256_maskz_permutex_pd(__mmask8 __U,__m256d __X)9381 __m256d test_mm256_maskz_permutex_pd(__mmask8 __U, __m256d __X) {
9382   // CHECK-LABEL: @test_mm256_maskz_permutex_pd
9383   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9384   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9385   return _mm256_maskz_permutex_pd(__U, __X, 1);
9386 }
9387 
test_mm256_permutex_epi64(__m256i __X)9388 __m256i test_mm256_permutex_epi64(__m256i __X) {
9389   // CHECK-LABEL: @test_mm256_permutex_epi64
9390   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9391   return _mm256_permutex_epi64(__X, 3);
9392 }
9393 
test_mm256_mask_permutex_epi64(__m256i __W,__mmask8 __M,__m256i __X)9394 __m256i test_mm256_mask_permutex_epi64(__m256i __W, __mmask8 __M, __m256i __X) {
9395   // CHECK-LABEL: @test_mm256_mask_permutex_epi64
9396   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9397   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9398   return _mm256_mask_permutex_epi64(__W, __M, __X, 3);
9399 }
9400 
test_mm256_maskz_permutex_epi64(__mmask8 __M,__m256i __X)9401 __m256i test_mm256_maskz_permutex_epi64(__mmask8 __M, __m256i __X) {
9402   // CHECK-LABEL: @test_mm256_maskz_permutex_epi64
9403   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9404   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9405   return _mm256_maskz_permutex_epi64(__M, __X, 3);
9406 }
9407 
test_mm256_permutexvar_pd(__m256i __X,__m256d __Y)9408 __m256d test_mm256_permutexvar_pd(__m256i __X, __m256d __Y) {
9409   // CHECK-LABEL: @test_mm256_permutexvar_pd
9410   // CHECK: @llvm.x86.avx512.permvar.df.256
9411   return _mm256_permutexvar_pd(__X, __Y);
9412 }
9413 
test_mm256_mask_permutexvar_pd(__m256d __W,__mmask8 __U,__m256i __X,__m256d __Y)9414 __m256d test_mm256_mask_permutexvar_pd(__m256d __W, __mmask8 __U, __m256i __X, __m256d __Y) {
9415   // CHECK-LABEL: @test_mm256_mask_permutexvar_pd
9416   // CHECK: @llvm.x86.avx512.permvar.df.256
9417   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9418   return _mm256_mask_permutexvar_pd(__W, __U, __X, __Y);
9419 }
9420 
test_mm256_maskz_permutexvar_pd(__mmask8 __U,__m256i __X,__m256d __Y)9421 __m256d test_mm256_maskz_permutexvar_pd(__mmask8 __U, __m256i __X, __m256d __Y) {
9422   // CHECK-LABEL: @test_mm256_maskz_permutexvar_pd
9423   // CHECK: @llvm.x86.avx512.permvar.df.256
9424   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9425   return _mm256_maskz_permutexvar_pd(__U, __X, __Y);
9426 }
9427 
test_mm256_maskz_permutexvar_epi64(__mmask8 __M,__m256i __X,__m256i __Y)9428 __m256i test_mm256_maskz_permutexvar_epi64(__mmask8 __M, __m256i __X, __m256i __Y) {
9429   // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi64
9430   // CHECK: @llvm.x86.avx512.permvar.di.256
9431   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9432   return _mm256_maskz_permutexvar_epi64(__M, __X, __Y);
9433 }
9434 
test_mm256_mask_permutexvar_epi64(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)9435 __m256i test_mm256_mask_permutexvar_epi64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) {
9436   // CHECK-LABEL: @test_mm256_mask_permutexvar_epi64
9437   // CHECK: @llvm.x86.avx512.permvar.di.256
9438   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9439   return _mm256_mask_permutexvar_epi64(__W, __M, __X, __Y);
9440 }
9441 
test_mm256_mask_permutexvar_ps(__m256 __W,__mmask8 __U,__m256i __X,__m256 __Y)9442 __m256 test_mm256_mask_permutexvar_ps(__m256 __W, __mmask8 __U, __m256i __X, __m256 __Y) {
9443   // CHECK-LABEL: @test_mm256_mask_permutexvar_ps
9444   // CHECK: @llvm.x86.avx2.permps
9445   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9446   return _mm256_mask_permutexvar_ps(__W, __U, __X, __Y);
9447 }
9448 
test_mm256_maskz_permutexvar_ps(__mmask8 __U,__m256i __X,__m256 __Y)9449 __m256 test_mm256_maskz_permutexvar_ps(__mmask8 __U, __m256i __X, __m256 __Y) {
9450   // CHECK-LABEL: @test_mm256_maskz_permutexvar_ps
9451   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9452   return _mm256_maskz_permutexvar_ps(__U, __X, __Y);
9453 }
9454 
test_mm256_permutexvar_ps(__m256i __X,__m256 __Y)9455 __m256 test_mm256_permutexvar_ps(__m256i __X, __m256 __Y) {
9456   // CHECK-LABEL: @test_mm256_permutexvar_ps
9457   // CHECK: @llvm.x86.avx2.permps
9458   return _mm256_permutexvar_ps( __X, __Y);
9459 }
9460 
test_mm256_maskz_permutexvar_epi32(__mmask8 __M,__m256i __X,__m256i __Y)9461 __m256i test_mm256_maskz_permutexvar_epi32(__mmask8 __M, __m256i __X, __m256i __Y) {
9462   // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi32
9463   // CHECK: @llvm.x86.avx2.permd
9464   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9465   return _mm256_maskz_permutexvar_epi32(__M, __X, __Y);
9466 }
9467 
test_mm256_permutexvar_epi32(__m256i __X,__m256i __Y)9468 __m256i test_mm256_permutexvar_epi32(__m256i __X, __m256i __Y) {
9469   // CHECK-LABEL: @test_mm256_permutexvar_epi32
9470   // CHECK: @llvm.x86.avx2.permd
9471   return _mm256_permutexvar_epi32(__X, __Y);
9472 }
9473 
test_mm256_mask_permutexvar_epi32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)9474 __m256i test_mm256_mask_permutexvar_epi32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) {
9475   // CHECK-LABEL: @test_mm256_mask_permutexvar_epi32
9476   // CHECK: @llvm.x86.avx2.permd
9477   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9478   return _mm256_mask_permutexvar_epi32(__W, __M, __X, __Y);
9479 }
9480 
test_mm_alignr_epi32(__m128i __A,__m128i __B)9481 __m128i test_mm_alignr_epi32(__m128i __A, __m128i __B) {
9482   // CHECK-LABEL: @test_mm_alignr_epi32
9483   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9484   return _mm_alignr_epi32(__A, __B, 1);
9485 }
9486 
test_mm_mask_alignr_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)9487 __m128i test_mm_mask_alignr_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
9488   // CHECK-LABEL: @test_mm_mask_alignr_epi32
9489   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9490   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9491   return _mm_mask_alignr_epi32(__W, __U, __A, __B, 1);
9492 }
9493 
test_mm_maskz_alignr_epi32(__mmask8 __U,__m128i __A,__m128i __B)9494 __m128i test_mm_maskz_alignr_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
9495   // CHECK-LABEL: @test_mm_maskz_alignr_epi32
9496   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9497   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9498   return _mm_maskz_alignr_epi32(__U, __A, __B, 1);
9499 }
9500 
test_mm256_alignr_epi32(__m256i __A,__m256i __B)9501 __m256i test_mm256_alignr_epi32(__m256i __A, __m256i __B) {
9502   // CHECK-LABEL: @test_mm256_alignr_epi32
9503   // 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>
9504   return _mm256_alignr_epi32(__A, __B, 1);
9505 }
9506 
test_mm256_mask_alignr_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)9507 __m256i test_mm256_mask_alignr_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
9508   // CHECK-LABEL: @test_mm256_mask_alignr_epi32
9509   // 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>
9510   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9511   return _mm256_mask_alignr_epi32(__W, __U, __A, __B, 1);
9512 }
9513 
test_mm256_maskz_alignr_epi32(__mmask8 __U,__m256i __A,__m256i __B)9514 __m256i test_mm256_maskz_alignr_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
9515   // CHECK-LABEL: @test_mm256_maskz_alignr_epi32
9516   // 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>
9517   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9518   return _mm256_maskz_alignr_epi32(__U, __A, __B, 1);
9519 }
9520 
test_mm_alignr_epi64(__m128i __A,__m128i __B)9521 __m128i test_mm_alignr_epi64(__m128i __A, __m128i __B) {
9522   // CHECK-LABEL: @test_mm_alignr_epi64
9523   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9524   return _mm_alignr_epi64(__A, __B, 1);
9525 }
9526 
test_mm_mask_alignr_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)9527 __m128i test_mm_mask_alignr_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
9528   // CHECK-LABEL: @test_mm_mask_alignr_epi64
9529   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9530   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
9531   return _mm_mask_alignr_epi64(__W, __U, __A, __B, 1);
9532 }
9533 
test_mm_maskz_alignr_epi64(__mmask8 __U,__m128i __A,__m128i __B)9534 __m128i test_mm_maskz_alignr_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
9535   // CHECK-LABEL: @test_mm_maskz_alignr_epi64
9536   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9537   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
9538   return _mm_maskz_alignr_epi64(__U, __A, __B, 1);
9539 }
9540 
test_mm256_alignr_epi64(__m256i __A,__m256i __B)9541 __m256i test_mm256_alignr_epi64(__m256i __A, __m256i __B) {
9542   // CHECK-LABEL: @test_mm256_alignr_epi64
9543   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9544   return _mm256_alignr_epi64(__A, __B, 1);
9545 }
9546 
test_mm256_mask_alignr_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)9547 __m256i test_mm256_mask_alignr_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
9548   // CHECK-LABEL: @test_mm256_mask_alignr_epi64
9549   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9550   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9551   return _mm256_mask_alignr_epi64(__W, __U, __A, __B, 1);
9552 }
9553 
test_mm256_maskz_alignr_epi64(__mmask8 __U,__m256i __A,__m256i __B)9554 __m256i test_mm256_maskz_alignr_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
9555   // CHECK-LABEL: @test_mm256_maskz_alignr_epi64
9556   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9557   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9558   return _mm256_maskz_alignr_epi64(__U, __A, __B, 1);
9559 }
9560 
test_mm_mask_movehdup_ps(__m128 __W,__mmask8 __U,__m128 __A)9561 __m128 test_mm_mask_movehdup_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9562   // CHECK-LABEL: @test_mm_mask_movehdup_ps
9563   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
9564   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9565   return _mm_mask_movehdup_ps(__W, __U, __A);
9566 }
9567 
test_mm_maskz_movehdup_ps(__mmask8 __U,__m128 __A)9568 __m128 test_mm_maskz_movehdup_ps(__mmask8 __U, __m128 __A) {
9569   // CHECK-LABEL: @test_mm_maskz_movehdup_ps
9570   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
9571   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9572   return _mm_maskz_movehdup_ps(__U, __A);
9573 }
9574 
test_mm256_mask_movehdup_ps(__m256 __W,__mmask8 __U,__m256 __A)9575 __m256 test_mm256_mask_movehdup_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9576   // CHECK-LABEL: @test_mm256_mask_movehdup_ps
9577   // 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>
9578   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9579   return _mm256_mask_movehdup_ps(__W, __U, __A);
9580 }
9581 
test_mm256_maskz_movehdup_ps(__mmask8 __U,__m256 __A)9582 __m256 test_mm256_maskz_movehdup_ps(__mmask8 __U, __m256 __A) {
9583   // CHECK-LABEL: @test_mm256_maskz_movehdup_ps
9584   // 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>
9585   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9586   return _mm256_maskz_movehdup_ps(__U, __A);
9587 }
9588 
test_mm_mask_moveldup_ps(__m128 __W,__mmask8 __U,__m128 __A)9589 __m128 test_mm_mask_moveldup_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9590   // CHECK-LABEL: @test_mm_mask_moveldup_ps
9591   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
9592   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9593   return _mm_mask_moveldup_ps(__W, __U, __A);
9594 }
9595 
test_mm_maskz_moveldup_ps(__mmask8 __U,__m128 __A)9596 __m128 test_mm_maskz_moveldup_ps(__mmask8 __U, __m128 __A) {
9597   // CHECK-LABEL: @test_mm_maskz_moveldup_ps
9598   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
9599   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9600   return _mm_maskz_moveldup_ps(__U, __A);
9601 }
9602 
test_mm256_mask_moveldup_ps(__m256 __W,__mmask8 __U,__m256 __A)9603 __m256 test_mm256_mask_moveldup_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9604   // CHECK-LABEL: @test_mm256_mask_moveldup_ps
9605   // 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>
9606   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9607   return _mm256_mask_moveldup_ps(__W, __U, __A);
9608 }
9609 
test_mm256_maskz_moveldup_ps(__mmask8 __U,__m256 __A)9610 __m256 test_mm256_maskz_moveldup_ps(__mmask8 __U, __m256 __A) {
9611   // CHECK-LABEL: @test_mm256_maskz_moveldup_ps
9612   // 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>
9613   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9614   return _mm256_maskz_moveldup_ps(__U, __A);
9615 }
9616 
test_mm_mask_shuffle_epi32(__m128i __W,__mmask8 __U,__m128i __A)9617 __m128i test_mm_mask_shuffle_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
9618   // CHECK-LABEL: @test_mm_mask_shuffle_epi32
9619   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9620   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9621   return _mm_mask_shuffle_epi32(__W, __U, __A, 1);
9622 }
9623 
test_mm_maskz_shuffle_epi32(__mmask8 __U,__m128i __A)9624 __m128i test_mm_maskz_shuffle_epi32(__mmask8 __U, __m128i __A) {
9625   // CHECK-LABEL: @test_mm_maskz_shuffle_epi32
9626   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <4 x i32> <i32 2, i32 0, i32 0, i32 0>
9627   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9628   return _mm_maskz_shuffle_epi32(__U, __A, 2);
9629 }
9630 
test_mm256_mask_shuffle_epi32(__m256i __W,__mmask8 __U,__m256i __A)9631 __m256i test_mm256_mask_shuffle_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
9632   // CHECK-LABEL: @test_mm256_mask_shuffle_epi32
9633   // 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>
9634   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9635   return _mm256_mask_shuffle_epi32(__W, __U, __A, 2);
9636 }
9637 
test_mm256_maskz_shuffle_epi32(__mmask8 __U,__m256i __A)9638 __m256i test_mm256_maskz_shuffle_epi32(__mmask8 __U, __m256i __A) {
9639   // CHECK-LABEL: @test_mm256_maskz_shuffle_epi32
9640   // 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>
9641   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9642   return _mm256_maskz_shuffle_epi32(__U, __A, 2);
9643 }
9644 
test_mm_mask_mov_pd(__m128d __W,__mmask8 __U,__m128d __A)9645 __m128d test_mm_mask_mov_pd(__m128d __W, __mmask8 __U, __m128d __A) {
9646   // CHECK-LABEL: @test_mm_mask_mov_pd
9647   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
9648   return _mm_mask_mov_pd(__W, __U, __A);
9649 }
9650 
test_mm_maskz_mov_pd(__mmask8 __U,__m128d __A)9651 __m128d test_mm_maskz_mov_pd(__mmask8 __U, __m128d __A) {
9652   // CHECK-LABEL: @test_mm_maskz_mov_pd
9653   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
9654   return _mm_maskz_mov_pd(__U, __A);
9655 }
9656 
test_mm256_mask_mov_pd(__m256d __W,__mmask8 __U,__m256d __A)9657 __m256d test_mm256_mask_mov_pd(__m256d __W, __mmask8 __U, __m256d __A) {
9658   // CHECK-LABEL: @test_mm256_mask_mov_pd
9659   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9660   return _mm256_mask_mov_pd(__W, __U, __A);
9661 }
9662 
test_mm256_maskz_mov_pd(__mmask8 __U,__m256d __A)9663 __m256d test_mm256_maskz_mov_pd(__mmask8 __U, __m256d __A) {
9664   // CHECK-LABEL: @test_mm256_maskz_mov_pd
9665   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9666   return _mm256_maskz_mov_pd(__U, __A);
9667 }
9668 
test_mm_mask_mov_ps(__m128 __W,__mmask8 __U,__m128 __A)9669 __m128 test_mm_mask_mov_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9670   // CHECK-LABEL: @test_mm_mask_mov_ps
9671   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9672   return _mm_mask_mov_ps(__W, __U, __A);
9673 }
9674 
test_mm_maskz_mov_ps(__mmask8 __U,__m128 __A)9675 __m128 test_mm_maskz_mov_ps(__mmask8 __U, __m128 __A) {
9676   // CHECK-LABEL: @test_mm_maskz_mov_ps
9677   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9678   return _mm_maskz_mov_ps(__U, __A);
9679 }
9680 
test_mm256_mask_mov_ps(__m256 __W,__mmask8 __U,__m256 __A)9681 __m256 test_mm256_mask_mov_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9682   // CHECK-LABEL: @test_mm256_mask_mov_ps
9683   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9684   return _mm256_mask_mov_ps(__W, __U, __A);
9685 }
9686 
test_mm256_maskz_mov_ps(__mmask8 __U,__m256 __A)9687 __m256 test_mm256_maskz_mov_ps(__mmask8 __U, __m256 __A) {
9688   // CHECK-LABEL: @test_mm256_maskz_mov_ps
9689   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9690   return _mm256_maskz_mov_ps(__U, __A);
9691 }
9692 
test_mm_mask_cvtph_ps(__m128 __W,__mmask8 __U,__m128i __A)9693 __m128 test_mm_mask_cvtph_ps(__m128 __W, __mmask8 __U, __m128i __A) {
9694   // CHECK-LABEL: @test_mm_mask_cvtph_ps
9695   // CHECK: bitcast <2 x i64> %{{.*}} to <8 x i16>
9696   // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
9697   // CHECK: bitcast <4 x i16> %{{.*}} to <4 x half>
9698   // CHECK: fpext <4 x half> %{{.*}} to <4 x float>
9699   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9700   return _mm_mask_cvtph_ps(__W, __U, __A);
9701 }
9702 
test_mm_maskz_cvtph_ps(__mmask8 __U,__m128i __A)9703 __m128 test_mm_maskz_cvtph_ps(__mmask8 __U, __m128i __A) {
9704   // CHECK-LABEL: @test_mm_maskz_cvtph_ps
9705   // CHECK: bitcast <2 x i64> %{{.*}} to <8 x i16>
9706   // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
9707   // CHECK: bitcast <4 x i16> %{{.*}} to <4 x half>
9708   // CHECK: fpext <4 x half> %{{.*}} to <4 x float>
9709   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9710   return _mm_maskz_cvtph_ps(__U, __A);
9711 }
9712 
test_mm256_mask_cvtph_ps(__m256 __W,__mmask8 __U,__m128i __A)9713 __m256 test_mm256_mask_cvtph_ps(__m256 __W, __mmask8 __U, __m128i __A) {
9714   // CHECK-LABEL: @test_mm256_mask_cvtph_ps
9715   // CHECK: bitcast <2 x i64> %{{.*}} to <8 x i16>
9716   // CHECK: bitcast <8 x i16> %{{.*}} to <8 x half>
9717   // CHECK: fpext <8 x half> %{{.*}} to <8 x float>
9718   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9719   return _mm256_mask_cvtph_ps(__W, __U, __A);
9720 }
9721 
test_mm256_maskz_cvtph_ps(__mmask8 __U,__m128i __A)9722 __m256 test_mm256_maskz_cvtph_ps(__mmask8 __U, __m128i __A) {
9723   // CHECK-LABEL: @test_mm256_maskz_cvtph_ps
9724   // CHECK: bitcast <2 x i64> %{{.*}} to <8 x i16>
9725   // CHECK: bitcast <8 x i16> %{{.*}} to <8 x half>
9726   // CHECK: fpext <8 x half> %{{.*}} to <8 x float>
9727   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9728   return _mm256_maskz_cvtph_ps(__U, __A);
9729 }
9730 
test_mm_mask_cvtps_ph(__m128i __W,__mmask8 __U,__m128 __A)9731 __m128i test_mm_mask_cvtps_ph(__m128i __W, __mmask8 __U, __m128 __A) {
9732   // CHECK-LABEL: @test_mm_mask_cvtps_ph
9733   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9734   return _mm_mask_cvtps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9735 }
9736 
test_mm_maskz_cvtps_ph(__mmask8 __U,__m128 __A)9737 __m128i test_mm_maskz_cvtps_ph(__mmask8 __U, __m128 __A) {
9738   // CHECK-LABEL: @test_mm_maskz_cvtps_ph
9739   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9740   return _mm_maskz_cvtps_ph(__U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9741 }
9742 
test_mm256_mask_cvtps_ph(__m128i __W,__mmask8 __U,__m256 __A)9743 __m128i test_mm256_mask_cvtps_ph(__m128i __W, __mmask8 __U, __m256 __A) {
9744   // CHECK-LABEL: @test_mm256_mask_cvtps_ph
9745   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9746   return _mm256_mask_cvtps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9747 }
9748 
test_mm256_maskz_cvtps_ph(__mmask8 __U,__m256 __A)9749 __m128i test_mm256_maskz_cvtps_ph(__mmask8 __U, __m256 __A) {
9750   // CHECK-LABEL: @test_mm256_maskz_cvtps_ph
9751   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9752   return _mm256_maskz_cvtps_ph(__U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9753 }
9754 
test_mm_mask_cvt_roundps_ph(__m128i __W,__mmask8 __U,__m128 __A)9755 __m128i test_mm_mask_cvt_roundps_ph(__m128i __W, __mmask8 __U, __m128 __A) {
9756   // CHECK-LABEL: @test_mm_mask_cvt_roundps_ph
9757   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9758   return _mm_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO);
9759 }
9760 
test_mm_maskz_cvt_roundps_ph(__mmask8 __U,__m128 __A)9761 __m128i test_mm_maskz_cvt_roundps_ph(__mmask8 __U, __m128 __A) {
9762   // CHECK-LABEL: @test_mm_maskz_cvt_roundps_ph
9763   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9764   return _mm_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_TO_ZERO);
9765 }
9766 
test_mm256_mask_cvt_roundps_ph(__m128i __W,__mmask8 __U,__m256 __A)9767 __m128i test_mm256_mask_cvt_roundps_ph(__m128i __W, __mmask8 __U, __m256 __A) {
9768   // CHECK-LABEL: @test_mm256_mask_cvt_roundps_ph
9769   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9770   return _mm256_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO);
9771 }
9772 
test_mm256_maskz_cvt_roundps_ph(__mmask8 __U,__m256 __A)9773 __m128i test_mm256_maskz_cvt_roundps_ph(__mmask8 __U, __m256 __A) {
9774   // CHECK-LABEL: @test_mm256_maskz_cvt_roundps_ph
9775   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9776   return _mm256_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_TO_ZERO);
9777 }
9778 
test_mm_cmpeq_epi32_mask(__m128i __a,__m128i __b)9779 __mmask8 test_mm_cmpeq_epi32_mask(__m128i __a, __m128i __b) {
9780   // CHECK-LABEL: @test_mm_cmpeq_epi32_mask
9781   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
9782   return (__mmask8)_mm_cmpeq_epi32_mask(__a, __b);
9783 }
9784 
test_mm_mask_cmpeq_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)9785 __mmask8 test_mm_mask_cmpeq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9786   // CHECK-LABEL: @test_mm_mask_cmpeq_epi32_mask
9787   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
9788   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9789   return (__mmask8)_mm_mask_cmpeq_epi32_mask(__u, __a, __b);
9790 }
9791 
test_mm_mask_cmpeq_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)9792 __mmask8 test_mm_mask_cmpeq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9793   // CHECK-LABEL: @test_mm_mask_cmpeq_epi64_mask
9794   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
9795   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
9796   return (__mmask8)_mm_mask_cmpeq_epi64_mask(__u, __a, __b);
9797 }
9798 
test_mm_cmpeq_epi64_mask(__m128i __a,__m128i __b)9799 __mmask8 test_mm_cmpeq_epi64_mask(__m128i __a, __m128i __b) {
9800   // CHECK-LABEL: @test_mm_cmpeq_epi64_mask
9801   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
9802   return (__mmask8)_mm_cmpeq_epi64_mask(__a, __b);
9803 }
9804 
test_mm_cmpgt_epi32_mask(__m128i __a,__m128i __b)9805 __mmask8 test_mm_cmpgt_epi32_mask(__m128i __a, __m128i __b) {
9806   // CHECK-LABEL: @test_mm_cmpgt_epi32_mask
9807   // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}}
9808   return (__mmask8)_mm_cmpgt_epi32_mask(__a, __b);
9809 }
9810 
test_mm_mask_cmpgt_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)9811 __mmask8 test_mm_mask_cmpgt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9812   // CHECK-LABEL: @test_mm_mask_cmpgt_epi32_mask
9813   // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}}
9814   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9815   return (__mmask8)_mm_mask_cmpgt_epi32_mask(__u, __a, __b);
9816 }
9817 
test_mm_mask_cmpgt_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)9818 __mmask8 test_mm_mask_cmpgt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9819   // CHECK-LABEL: @test_mm_mask_cmpgt_epi64_mask
9820   // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}}
9821   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
9822   return (__mmask8)_mm_mask_cmpgt_epi64_mask(__u, __a, __b);
9823 }
9824 
test_mm_cmpgt_epi64_mask(__m128i __a,__m128i __b)9825 __mmask8 test_mm_cmpgt_epi64_mask(__m128i __a, __m128i __b) {
9826   // CHECK-LABEL: @test_mm_cmpgt_epi64_mask
9827   // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}}
9828   return (__mmask8)_mm_cmpgt_epi64_mask(__a, __b);
9829 }
9830 
test_mm256_cmpeq_epi32_mask(__m256i __a,__m256i __b)9831 __mmask8 test_mm256_cmpeq_epi32_mask(__m256i __a, __m256i __b) {
9832   // CHECK-LABEL: @test_mm256_cmpeq_epi32_mask
9833   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
9834   return (__mmask8)_mm256_cmpeq_epi32_mask(__a, __b);
9835 }
9836 
test_mm256_mask_cmpeq_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)9837 __mmask8 test_mm256_mask_cmpeq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9838   // CHECK-LABEL: @test_mm256_mask_cmpeq_epi32_mask
9839   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
9840   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
9841   return (__mmask8)_mm256_mask_cmpeq_epi32_mask(__u, __a, __b);
9842 }
9843 
test_mm256_mask_cmpeq_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)9844 __mmask8 test_mm256_mask_cmpeq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9845   // CHECK-LABEL: @test_mm256_mask_cmpeq_epi64_mask
9846   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
9847   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9848   return (__mmask8)_mm256_mask_cmpeq_epi64_mask(__u, __a, __b);
9849 }
9850 
test_mm256_cmpeq_epi64_mask(__m256i __a,__m256i __b)9851 __mmask8 test_mm256_cmpeq_epi64_mask(__m256i __a, __m256i __b) {
9852   // CHECK-LABEL: @test_mm256_cmpeq_epi64_mask
9853   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
9854   return (__mmask8)_mm256_cmpeq_epi64_mask(__a, __b);
9855 }
9856 
test_mm256_cmpgt_epi32_mask(__m256i __a,__m256i __b)9857 __mmask8 test_mm256_cmpgt_epi32_mask(__m256i __a, __m256i __b) {
9858   // CHECK-LABEL: @test_mm256_cmpgt_epi32_mask
9859   // CHECK: icmp sgt <8 x i32> %{{.*}}, %{{.*}}
9860   return (__mmask8)_mm256_cmpgt_epi32_mask(__a, __b);
9861 }
9862 
test_mm256_mask_cmpgt_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)9863 __mmask8 test_mm256_mask_cmpgt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9864   // CHECK-LABEL: @test_mm256_mask_cmpgt_epi32_mask
9865   // CHECK: icmp sgt <8 x i32> %{{.*}}, %{{.*}}
9866   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
9867   return (__mmask8)_mm256_mask_cmpgt_epi32_mask(__u, __a, __b);
9868 }
9869 
test_mm256_mask_cmpgt_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)9870 __mmask8 test_mm256_mask_cmpgt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9871   // CHECK-LABEL: @test_mm256_mask_cmpgt_epi64_mask
9872   // CHECK: icmp sgt <4 x i64> %{{.*}}, %{{.*}}
9873   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9874   return (__mmask8)_mm256_mask_cmpgt_epi64_mask(__u, __a, __b);
9875 }
9876 
test_mm256_cmpgt_epi64_mask(__m256i __a,__m256i __b)9877 __mmask8 test_mm256_cmpgt_epi64_mask(__m256i __a, __m256i __b) {
9878   // CHECK-LABEL: @test_mm256_cmpgt_epi64_mask
9879   // CHECK: icmp sgt <4 x i64> %{{.*}}, %{{.*}}
9880   return (__mmask8)_mm256_cmpgt_epi64_mask(__a, __b);
9881 }
9882