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: [[ABS:%.*]] = call <4 x i32> @llvm.abs.v4i32(<4 x i32> %{{.*}}, i1 false)
4541   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[ABS]] to <2 x i64>
4542   // CHECK: [[ABS:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4543   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> [[ABS]], <4 x i32> %{{.*}}
4544   return _mm_mask_abs_epi32(__W,__U,__A);
4545 }
test_mm_maskz_abs_epi32(__mmask8 __U,__m128i __A)4546 __m128i test_mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) {
4547   // CHECK-LABEL: @test_mm_maskz_abs_epi32
4548   // CHECK: [[ABS:%.*]] = call <4 x i32> @llvm.abs.v4i32(<4 x i32> %{{.*}}, i1 false)
4549   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[ABS]] to <2 x i64>
4550   // CHECK: [[ABS:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4551   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> [[ABS]], <4 x i32> %{{.*}}
4552   return _mm_maskz_abs_epi32(__U,__A);
4553 }
test_mm256_mask_abs_epi32(__m256i __W,__mmask8 __U,__m256i __A)4554 __m256i test_mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
4555   // CHECK-LABEL: @test_mm256_mask_abs_epi32
4556   // CHECK: [[ABS:%.*]] = call <8 x i32> @llvm.abs.v8i32(<8 x i32> %{{.*}}, i1 false)
4557   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[ABS]] to <4 x i64>
4558   // CHECK: [[ABS:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4559   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> [[ABS]], <8 x i32> %{{.*}}
4560   return _mm256_mask_abs_epi32(__W,__U,__A);
4561 }
test_mm256_maskz_abs_epi32(__mmask8 __U,__m256i __A)4562 __m256i test_mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) {
4563   // CHECK-LABEL: @test_mm256_maskz_abs_epi32
4564   // CHECK: [[ABS:%.*]] = call <8 x i32> @llvm.abs.v8i32(<8 x i32> %{{.*}}, i1 false)
4565   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[ABS]] to <4 x i64>
4566   // CHECK: [[ABS:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4567   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> [[ABS]], <8 x i32> %{{.*}}
4568   return _mm256_maskz_abs_epi32(__U,__A);
4569 }
test_mm_abs_epi64(__m128i __A)4570 __m128i test_mm_abs_epi64(__m128i __A) {
4571   // CHECK-LABEL: @test_mm_abs_epi64
4572   // CHECK: [[ABS:%.*]] = call <2 x i64> @llvm.abs.v2i64(<2 x i64> %{{.*}}, i1 false)
4573   return _mm_abs_epi64(__A);
4574 }
test_mm_mask_abs_epi64(__m128i __W,__mmask8 __U,__m128i __A)4575 __m128i test_mm_mask_abs_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
4576   // CHECK-LABEL: @test_mm_mask_abs_epi64
4577   // CHECK: [[ABS:%.*]] = call <2 x i64> @llvm.abs.v2i64(<2 x i64> %{{.*}}, i1 false)
4578   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> [[ABS]], <2 x i64> %{{.*}}
4579   return _mm_mask_abs_epi64(__W,__U,__A);
4580 }
test_mm_maskz_abs_epi64(__mmask8 __U,__m128i __A)4581 __m128i test_mm_maskz_abs_epi64(__mmask8 __U, __m128i __A) {
4582   // CHECK-LABEL: @test_mm_maskz_abs_epi64
4583   // CHECK: [[ABS:%.*]] = call <2 x i64> @llvm.abs.v2i64(<2 x i64> %{{.*}}, i1 false)
4584   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> [[ABS]], <2 x i64> %{{.*}}
4585   return _mm_maskz_abs_epi64(__U,__A);
4586 }
test_mm256_abs_epi64(__m256i __A)4587 __m256i test_mm256_abs_epi64(__m256i __A) {
4588   // CHECK-LABEL: @test_mm256_abs_epi64
4589   // CHECK: [[ABS:%.*]] = call <4 x i64> @llvm.abs.v4i64(<4 x i64> %{{.*}}, i1 false)
4590   return _mm256_abs_epi64(__A);
4591 }
test_mm256_mask_abs_epi64(__m256i __W,__mmask8 __U,__m256i __A)4592 __m256i test_mm256_mask_abs_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
4593   // CHECK-LABEL: @test_mm256_mask_abs_epi64
4594   // CHECK: [[ABS:%.*]] = call <4 x i64> @llvm.abs.v4i64(<4 x i64> %{{.*}}, i1 false)
4595   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> [[ABS]], <4 x i64> %{{.*}}
4596   return _mm256_mask_abs_epi64(__W,__U,__A);
4597 }
test_mm256_maskz_abs_epi64(__mmask8 __U,__m256i __A)4598 __m256i test_mm256_maskz_abs_epi64(__mmask8 __U, __m256i __A) {
4599   // CHECK-LABEL: @test_mm256_maskz_abs_epi64
4600   // CHECK: [[ABS:%.*]] = call <4 x i64> @llvm.abs.v4i64(<4 x i64> %{{.*}}, i1 false)
4601   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> [[ABS]], <4 x i64> %{{.*}}
4602   return _mm256_maskz_abs_epi64(__U,__A);
4603 }
test_mm_maskz_max_epi32(__mmask8 __M,__m128i __A,__m128i __B)4604 __m128i test_mm_maskz_max_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
4605   // CHECK-LABEL: @test_mm_maskz_max_epi32
4606   // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.smax.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4607   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4608   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4609   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4610   return _mm_maskz_max_epi32(__M,__A,__B);
4611 }
test_mm_mask_max_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4612 __m128i test_mm_mask_max_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4613   // CHECK-LABEL: @test_mm_mask_max_epi32
4614   // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.smax.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4615   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4616   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4617   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4618   return _mm_mask_max_epi32(__W,__M,__A,__B);
4619 }
test_mm256_maskz_max_epi32(__mmask8 __M,__m256i __A,__m256i __B)4620 __m256i test_mm256_maskz_max_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
4621   // CHECK-LABEL: @test_mm256_maskz_max_epi32
4622   // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.smax.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4623   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4624   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4625   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4626   return _mm256_maskz_max_epi32(__M,__A,__B);
4627 }
test_mm256_mask_max_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4628 __m256i test_mm256_mask_max_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4629   // CHECK-LABEL: @test_mm256_mask_max_epi32
4630   // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.smax.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4631   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4632   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4633   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4634   return _mm256_mask_max_epi32(__W,__M,__A,__B);
4635 }
test_mm_maskz_max_epi64(__mmask8 __M,__m128i __A,__m128i __B)4636 __m128i test_mm_maskz_max_epi64(__mmask8 __M, __m128i __A, __m128i __B) {
4637   // CHECK-LABEL: @test_mm_maskz_max_epi64
4638   // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.smax.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4639   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4640   return _mm_maskz_max_epi64(__M,__A,__B);
4641 }
test_mm_mask_max_epi64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4642 __m128i test_mm_mask_max_epi64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4643   // CHECK-LABEL: @test_mm_mask_max_epi64
4644   // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.smax.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4645   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4646   return _mm_mask_max_epi64(__W,__M,__A,__B);
4647 }
test_mm_max_epi64(__m128i __A,__m128i __B)4648 __m128i test_mm_max_epi64(__m128i __A, __m128i __B) {
4649   // CHECK-LABEL: @test_mm_max_epi64
4650   // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.smax.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4651   return _mm_max_epi64(__A,__B);
4652 }
test_mm256_maskz_max_epi64(__mmask8 __M,__m256i __A,__m256i __B)4653 __m256i test_mm256_maskz_max_epi64(__mmask8 __M, __m256i __A, __m256i __B) {
4654   // CHECK-LABEL: @test_mm256_maskz_max_epi64
4655   // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.smax.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4656   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4657   return _mm256_maskz_max_epi64(__M,__A,__B);
4658 }
test_mm256_mask_max_epi64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4659 __m256i test_mm256_mask_max_epi64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4660   // CHECK-LABEL: @test_mm256_mask_max_epi64
4661   // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.smax.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4662   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4663   return _mm256_mask_max_epi64(__W,__M,__A,__B);
4664 }
test_mm256_max_epi64(__m256i __A,__m256i __B)4665 __m256i test_mm256_max_epi64(__m256i __A, __m256i __B) {
4666   // CHECK-LABEL: @test_mm256_max_epi64
4667   // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.smax.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4668   return _mm256_max_epi64(__A,__B);
4669 }
test_mm_maskz_max_epu32(__mmask8 __M,__m128i __A,__m128i __B)4670 __m128i test_mm_maskz_max_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
4671   // CHECK-LABEL: @test_mm_maskz_max_epu32
4672   // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.umax.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4673   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4674   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4675   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4676   return _mm_maskz_max_epu32(__M,__A,__B);
4677 }
test_mm_mask_max_epu32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4678 __m128i test_mm_mask_max_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4679   // CHECK-LABEL: @test_mm_mask_max_epu32
4680   // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.umax.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4681   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4682   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4683   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4684   return _mm_mask_max_epu32(__W,__M,__A,__B);
4685 }
test_mm256_maskz_max_epu32(__mmask8 __M,__m256i __A,__m256i __B)4686 __m256i test_mm256_maskz_max_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
4687   // CHECK-LABEL: @test_mm256_maskz_max_epu32
4688   // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.umax.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4689   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4690   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4691   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4692   return _mm256_maskz_max_epu32(__M,__A,__B);
4693 }
test_mm256_mask_max_epu32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4694 __m256i test_mm256_mask_max_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4695   // CHECK-LABEL: @test_mm256_mask_max_epu32
4696   // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.umax.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4697   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4698   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4699   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4700   return _mm256_mask_max_epu32(__W,__M,__A,__B);
4701 }
test_mm_maskz_max_epu64(__mmask8 __M,__m128i __A,__m128i __B)4702 __m128i test_mm_maskz_max_epu64(__mmask8 __M, __m128i __A, __m128i __B) {
4703   // CHECK-LABEL: @test_mm_maskz_max_epu64
4704   // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.umax.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4705   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4706   return _mm_maskz_max_epu64(__M,__A,__B);
4707 }
test_mm_max_epu64(__m128i __A,__m128i __B)4708 __m128i test_mm_max_epu64(__m128i __A, __m128i __B) {
4709   // CHECK-LABEL: @test_mm_max_epu64
4710   // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.umax.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4711   return _mm_max_epu64(__A,__B);
4712 }
test_mm_mask_max_epu64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4713 __m128i test_mm_mask_max_epu64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4714   // CHECK-LABEL: @test_mm_mask_max_epu64
4715   // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.umax.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4716   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4717   return _mm_mask_max_epu64(__W,__M,__A,__B);
4718 }
test_mm256_maskz_max_epu64(__mmask8 __M,__m256i __A,__m256i __B)4719 __m256i test_mm256_maskz_max_epu64(__mmask8 __M, __m256i __A, __m256i __B) {
4720   // CHECK-LABEL: @test_mm256_maskz_max_epu64
4721   // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.umax.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4722   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4723   return _mm256_maskz_max_epu64(__M,__A,__B);
4724 }
test_mm256_max_epu64(__m256i __A,__m256i __B)4725 __m256i test_mm256_max_epu64(__m256i __A, __m256i __B) {
4726   // CHECK-LABEL: @test_mm256_max_epu64
4727   // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.umax.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4728   return _mm256_max_epu64(__A,__B);
4729 }
test_mm256_mask_max_epu64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4730 __m256i test_mm256_mask_max_epu64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4731   // CHECK-LABEL: @test_mm256_mask_max_epu64
4732   // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.umax.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4733   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4734   return _mm256_mask_max_epu64(__W,__M,__A,__B);
4735 }
test_mm_maskz_min_epi32(__mmask8 __M,__m128i __A,__m128i __B)4736 __m128i test_mm_maskz_min_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
4737   // CHECK-LABEL: @test_mm_maskz_min_epi32
4738   // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.smin.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4739   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4740   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4741   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4742   return _mm_maskz_min_epi32(__M,__A,__B);
4743 }
test_mm_mask_min_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4744 __m128i test_mm_mask_min_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4745   // CHECK-LABEL: @test_mm_mask_min_epi32
4746   // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.smin.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4747   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4748   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4749   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4750   return _mm_mask_min_epi32(__W,__M,__A,__B);
4751 }
test_mm256_maskz_min_epi32(__mmask8 __M,__m256i __A,__m256i __B)4752 __m256i test_mm256_maskz_min_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
4753   // CHECK-LABEL: @test_mm256_maskz_min_epi32
4754   // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.smin.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4755   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4756   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4757   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4758   return _mm256_maskz_min_epi32(__M,__A,__B);
4759 }
test_mm256_mask_min_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4760 __m256i test_mm256_mask_min_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4761   // CHECK-LABEL: @test_mm256_mask_min_epi32
4762   // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.smin.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4763   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4764   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4765   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4766   return _mm256_mask_min_epi32(__W,__M,__A,__B);
4767 }
test_mm_min_epi64(__m128i __A,__m128i __B)4768 __m128i test_mm_min_epi64(__m128i __A, __m128i __B) {
4769   // CHECK-LABEL: @test_mm_min_epi64
4770   // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.smin.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4771   return _mm_min_epi64(__A,__B);
4772 }
test_mm_mask_min_epi64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4773 __m128i test_mm_mask_min_epi64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4774   // CHECK-LABEL: @test_mm_mask_min_epi64
4775   // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.smin.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4776   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4777   return _mm_mask_min_epi64(__W,__M,__A,__B);
4778 }
test_mm_maskz_min_epi64(__mmask8 __M,__m128i __A,__m128i __B)4779 __m128i test_mm_maskz_min_epi64(__mmask8 __M, __m128i __A, __m128i __B) {
4780   // CHECK-LABEL: @test_mm_maskz_min_epi64
4781   // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.smin.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4782   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4783   return _mm_maskz_min_epi64(__M,__A,__B);
4784 }
test_mm256_min_epi64(__m256i __A,__m256i __B)4785 __m256i test_mm256_min_epi64(__m256i __A, __m256i __B) {
4786   // CHECK-LABEL: @test_mm256_min_epi64
4787   // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.smin.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4788   return _mm256_min_epi64(__A,__B);
4789 }
test_mm256_mask_min_epi64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4790 __m256i test_mm256_mask_min_epi64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4791   // CHECK-LABEL: @test_mm256_mask_min_epi64
4792   // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.smin.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4793   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4794   return _mm256_mask_min_epi64(__W,__M,__A,__B);
4795 }
test_mm256_maskz_min_epi64(__mmask8 __M,__m256i __A,__m256i __B)4796 __m256i test_mm256_maskz_min_epi64(__mmask8 __M, __m256i __A, __m256i __B) {
4797   // CHECK-LABEL: @test_mm256_maskz_min_epi64
4798   // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.smin.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4799   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4800   return _mm256_maskz_min_epi64(__M,__A,__B);
4801 }
test_mm_maskz_min_epu32(__mmask8 __M,__m128i __A,__m128i __B)4802 __m128i test_mm_maskz_min_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
4803   // CHECK-LABEL: @test_mm_maskz_min_epu32
4804   // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.umin.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4805   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4806   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4807   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4808   return _mm_maskz_min_epu32(__M,__A,__B);
4809 }
test_mm_mask_min_epu32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4810 __m128i test_mm_mask_min_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4811   // CHECK-LABEL: @test_mm_mask_min_epu32
4812   // CHECK: [[RES:%.*]] = call <4 x i32> @llvm.umin.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
4813   // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4814   // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4815   // CHECK:       select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4816   return _mm_mask_min_epu32(__W,__M,__A,__B);
4817 }
test_mm256_maskz_min_epu32(__mmask8 __M,__m256i __A,__m256i __B)4818 __m256i test_mm256_maskz_min_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
4819   // CHECK-LABEL: @test_mm256_maskz_min_epu32
4820   // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.umin.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4821   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4822   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4823   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4824   return _mm256_maskz_min_epu32(__M,__A,__B);
4825 }
test_mm256_mask_min_epu32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4826 __m256i test_mm256_mask_min_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4827   // CHECK-LABEL: @test_mm256_mask_min_epu32
4828   // CHECK: [[RES:%.*]] = call <8 x i32> @llvm.umin.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
4829   // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4830   // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4831   // CHECK:       select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4832   return _mm256_mask_min_epu32(__W,__M,__A,__B);
4833 }
test_mm_min_epu64(__m128i __A,__m128i __B)4834 __m128i test_mm_min_epu64(__m128i __A, __m128i __B) {
4835   // CHECK-LABEL: @test_mm_min_epu64
4836   // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.umin.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4837   return _mm_min_epu64(__A,__B);
4838 }
test_mm_mask_min_epu64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4839 __m128i test_mm_mask_min_epu64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4840   // CHECK-LABEL: @test_mm_mask_min_epu64
4841   // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.umin.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4842   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4843   return _mm_mask_min_epu64(__W,__M,__A,__B);
4844 }
test_mm_maskz_min_epu64(__mmask8 __M,__m128i __A,__m128i __B)4845 __m128i test_mm_maskz_min_epu64(__mmask8 __M, __m128i __A, __m128i __B) {
4846   // CHECK-LABEL: @test_mm_maskz_min_epu64
4847   // CHECK: [[RES:%.*]] = call <2 x i64> @llvm.umin.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
4848   // CHECK:       select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4849   return _mm_maskz_min_epu64(__M,__A,__B);
4850 }
test_mm256_min_epu64(__m256i __A,__m256i __B)4851 __m256i test_mm256_min_epu64(__m256i __A, __m256i __B) {
4852   // CHECK-LABEL: @test_mm256_min_epu64
4853   // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.umin.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4854   return _mm256_min_epu64(__A,__B);
4855 }
test_mm256_mask_min_epu64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4856 __m256i test_mm256_mask_min_epu64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4857   // CHECK-LABEL: @test_mm256_mask_min_epu64
4858   // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.umin.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4859   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4860   return _mm256_mask_min_epu64(__W,__M,__A,__B);
4861 }
test_mm256_maskz_min_epu64(__mmask8 __M,__m256i __A,__m256i __B)4862 __m256i test_mm256_maskz_min_epu64(__mmask8 __M, __m256i __A, __m256i __B) {
4863   // CHECK-LABEL: @test_mm256_maskz_min_epu64
4864   // CHECK: [[RES:%.*]] = call <4 x i64> @llvm.umin.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
4865   // CHECK:       select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4866   return _mm256_maskz_min_epu64(__M,__A,__B);
4867 }
test_mm_roundscale_pd(__m128d __A)4868 __m128d test_mm_roundscale_pd(__m128d __A) {
4869   // CHECK-LABEL: @test_mm_roundscale_pd
4870   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4871   return _mm_roundscale_pd(__A,4);
4872 }
test_mm_mask_roundscale_pd(__m128d __W,__mmask8 __U,__m128d __A)4873 __m128d test_mm_mask_roundscale_pd(__m128d __W, __mmask8 __U, __m128d __A) {
4874   // CHECK-LABEL: @test_mm_mask_roundscale_pd
4875   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4876   return _mm_mask_roundscale_pd(__W,__U,__A,4);
4877 }
test_mm_maskz_roundscale_pd(__mmask8 __U,__m128d __A)4878 __m128d test_mm_maskz_roundscale_pd(__mmask8 __U, __m128d __A) {
4879   // CHECK-LABEL: @test_mm_maskz_roundscale_pd
4880   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4881   return _mm_maskz_roundscale_pd(__U,__A,4);
4882 }
test_mm256_roundscale_pd(__m256d __A)4883 __m256d test_mm256_roundscale_pd(__m256d __A) {
4884   // CHECK-LABEL: @test_mm256_roundscale_pd
4885   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
4886   return _mm256_roundscale_pd(__A,4);
4887 }
test_mm256_mask_roundscale_pd(__m256d __W,__mmask8 __U,__m256d __A)4888 __m256d test_mm256_mask_roundscale_pd(__m256d __W, __mmask8 __U, __m256d __A) {
4889   // CHECK-LABEL: @test_mm256_mask_roundscale_pd
4890   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
4891   return _mm256_mask_roundscale_pd(__W,__U,__A,4);
4892 }
test_mm256_maskz_roundscale_pd(__mmask8 __U,__m256d __A)4893 __m256d test_mm256_maskz_roundscale_pd(__mmask8 __U, __m256d __A) {
4894   // CHECK-LABEL: @test_mm256_maskz_roundscale_pd
4895   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
4896   return _mm256_maskz_roundscale_pd(__U,__A,4);
4897 }
test_mm_roundscale_ps(__m128 __A)4898 __m128 test_mm_roundscale_ps(__m128 __A) {
4899   // CHECK-LABEL: @test_mm_roundscale_ps
4900   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
4901   return _mm_roundscale_ps(__A,4);
4902 }
test_mm_mask_roundscale_ps(__m128 __W,__mmask8 __U,__m128 __A)4903 __m128 test_mm_mask_roundscale_ps(__m128 __W, __mmask8 __U, __m128 __A) {
4904   // CHECK-LABEL: @test_mm_mask_roundscale_ps
4905   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
4906   return _mm_mask_roundscale_ps(__W,__U,__A,4);
4907 }
test_mm_maskz_roundscale_ps(__mmask8 __U,__m128 __A)4908 __m128 test_mm_maskz_roundscale_ps(__mmask8 __U, __m128 __A) {
4909   // CHECK-LABEL: @test_mm_maskz_roundscale_ps
4910   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
4911   return _mm_maskz_roundscale_ps(__U,__A, 4);
4912 }
test_mm256_roundscale_ps(__m256 __A)4913 __m256 test_mm256_roundscale_ps(__m256 __A) {
4914   // CHECK-LABEL: @test_mm256_roundscale_ps
4915   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
4916   return _mm256_roundscale_ps(__A,4);
4917 }
test_mm256_mask_roundscale_ps(__m256 __W,__mmask8 __U,__m256 __A)4918 __m256 test_mm256_mask_roundscale_ps(__m256 __W, __mmask8 __U, __m256 __A) {
4919   // CHECK-LABEL: @test_mm256_mask_roundscale_ps
4920   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
4921   return _mm256_mask_roundscale_ps(__W,__U,__A,4);
4922 }
test_mm256_maskz_roundscale_ps(__mmask8 __U,__m256 __A)4923 __m256 test_mm256_maskz_roundscale_ps(__mmask8 __U, __m256 __A) {
4924   // CHECK-LABEL: @test_mm256_maskz_roundscale_ps
4925   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
4926   return _mm256_maskz_roundscale_ps(__U,__A,4);
4927 }
test_mm_scalef_pd(__m128d __A,__m128d __B)4928 __m128d test_mm_scalef_pd(__m128d __A, __m128d __B) {
4929   // CHECK-LABEL: @test_mm_scalef_pd
4930   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
4931   return _mm_scalef_pd(__A,__B);
4932 }
test_mm_mask_scalef_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4933 __m128d test_mm_mask_scalef_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4934   // CHECK-LABEL: @test_mm_mask_scalef_pd
4935   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
4936   return _mm_mask_scalef_pd(__W,__U,__A,__B);
4937 }
test_mm_maskz_scalef_pd(__mmask8 __U,__m128d __A,__m128d __B)4938 __m128d test_mm_maskz_scalef_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4939   // CHECK-LABEL: @test_mm_maskz_scalef_pd
4940   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
4941   return _mm_maskz_scalef_pd(__U,__A,__B);
4942 }
test_mm256_scalef_pd(__m256d __A,__m256d __B)4943 __m256d test_mm256_scalef_pd(__m256d __A, __m256d __B) {
4944   // CHECK-LABEL: @test_mm256_scalef_pd
4945   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
4946   return _mm256_scalef_pd(__A,__B);
4947 }
test_mm256_mask_scalef_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4948 __m256d test_mm256_mask_scalef_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4949   // CHECK-LABEL: @test_mm256_mask_scalef_pd
4950   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
4951   return _mm256_mask_scalef_pd(__W,__U,__A,__B);
4952 }
test_mm256_maskz_scalef_pd(__mmask8 __U,__m256d __A,__m256d __B)4953 __m256d test_mm256_maskz_scalef_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4954   // CHECK-LABEL: @test_mm256_maskz_scalef_pd
4955   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
4956   return _mm256_maskz_scalef_pd(__U,__A,__B);
4957 }
test_mm_scalef_ps(__m128 __A,__m128 __B)4958 __m128 test_mm_scalef_ps(__m128 __A, __m128 __B) {
4959   // CHECK-LABEL: @test_mm_scalef_ps
4960   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
4961   return _mm_scalef_ps(__A,__B);
4962 }
test_mm_mask_scalef_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4963 __m128 test_mm_mask_scalef_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4964   // CHECK-LABEL: @test_mm_mask_scalef_ps
4965   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
4966   return _mm_mask_scalef_ps(__W,__U,__A,__B);
4967 }
test_mm_maskz_scalef_ps(__mmask8 __U,__m128 __A,__m128 __B)4968 __m128 test_mm_maskz_scalef_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4969   // CHECK-LABEL: @test_mm_maskz_scalef_ps
4970   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
4971   return _mm_maskz_scalef_ps(__U,__A,__B);
4972 }
test_mm256_scalef_ps(__m256 __A,__m256 __B)4973 __m256 test_mm256_scalef_ps(__m256 __A, __m256 __B) {
4974   // CHECK-LABEL: @test_mm256_scalef_ps
4975   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
4976   return _mm256_scalef_ps(__A,__B);
4977 }
test_mm256_mask_scalef_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4978 __m256 test_mm256_mask_scalef_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4979   // CHECK-LABEL: @test_mm256_mask_scalef_ps
4980   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
4981   return _mm256_mask_scalef_ps(__W,__U,__A,__B);
4982 }
test_mm256_maskz_scalef_ps(__mmask8 __U,__m256 __A,__m256 __B)4983 __m256 test_mm256_maskz_scalef_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4984   // CHECK-LABEL: @test_mm256_maskz_scalef_ps
4985   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
4986   return _mm256_maskz_scalef_ps(__U,__A,__B);
4987 }
test_mm_i64scatter_pd(double * __addr,__m128i __index,__m128d __v1)4988 void test_mm_i64scatter_pd(double *__addr, __m128i __index,  __m128d __v1) {
4989   // CHECK-LABEL: @test_mm_i64scatter_pd
4990   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.df
4991   return _mm_i64scatter_pd(__addr,__index,__v1,2);
4992 }
test_mm_mask_i64scatter_pd(double * __addr,__mmask8 __mask,__m128i __index,__m128d __v1)4993 void test_mm_mask_i64scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m128d __v1) {
4994   // CHECK-LABEL: @test_mm_mask_i64scatter_pd
4995   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.df
4996   return _mm_mask_i64scatter_pd(__addr,__mask,__index,__v1,2);
4997 }
test_mm_i64scatter_epi64(long long * __addr,__m128i __index,__m128i __v1)4998 void test_mm_i64scatter_epi64(long long *__addr, __m128i __index,  __m128i __v1) {
4999   // CHECK-LABEL: @test_mm_i64scatter_epi64
5000   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.di
5001   return _mm_i64scatter_epi64(__addr,__index,__v1,2);
5002 }
test_mm_mask_i64scatter_epi64(long long * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5003 void test_mm_mask_i64scatter_epi64(long long *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5004   // CHECK-LABEL: @test_mm_mask_i64scatter_epi64
5005   // CHECK: @llvm.x86.avx512.mask.scatterdiv2.di
5006   return _mm_mask_i64scatter_epi64(__addr,__mask,__index,__v1,2);
5007 }
test_mm256_i64scatter_pd(double * __addr,__m256i __index,__m256d __v1)5008 void test_mm256_i64scatter_pd(double *__addr, __m256i __index,  __m256d __v1) {
5009   // CHECK-LABEL: @test_mm256_i64scatter_pd
5010   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.df
5011   return _mm256_i64scatter_pd(__addr,__index,__v1,2);
5012 }
test_mm256_mask_i64scatter_pd(double * __addr,__mmask8 __mask,__m256i __index,__m256d __v1)5013 void test_mm256_mask_i64scatter_pd(double *__addr, __mmask8 __mask, __m256i __index, __m256d __v1) {
5014   // CHECK-LABEL: @test_mm256_mask_i64scatter_pd
5015   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.df
5016   return _mm256_mask_i64scatter_pd(__addr,__mask,__index,__v1,2);
5017 }
test_mm256_i64scatter_epi64(long long * __addr,__m256i __index,__m256i __v1)5018 void test_mm256_i64scatter_epi64(long long *__addr, __m256i __index,  __m256i __v1) {
5019   // CHECK-LABEL: @test_mm256_i64scatter_epi64
5020   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.di
5021   return _mm256_i64scatter_epi64(__addr,__index,__v1,2);
5022 }
test_mm256_mask_i64scatter_epi64(long long * __addr,__mmask8 __mask,__m256i __index,__m256i __v1)5023 void test_mm256_mask_i64scatter_epi64(long long *__addr, __mmask8 __mask,  __m256i __index, __m256i __v1) {
5024   // CHECK-LABEL: @test_mm256_mask_i64scatter_epi64
5025   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.di
5026   return _mm256_mask_i64scatter_epi64(__addr,__mask,__index,__v1,2);
5027 }
test_mm_i64scatter_ps(float * __addr,__m128i __index,__m128 __v1)5028 void test_mm_i64scatter_ps(float *__addr, __m128i __index, __m128 __v1) {
5029   // CHECK-LABEL: @test_mm_i64scatter_ps
5030   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.sf
5031   return _mm_i64scatter_ps(__addr,__index,__v1,2);
5032 }
test_mm_mask_i64scatter_ps(float * __addr,__mmask8 __mask,__m128i __index,__m128 __v1)5033 void test_mm_mask_i64scatter_ps(float *__addr, __mmask8 __mask, __m128i __index, __m128 __v1) {
5034   // CHECK-LABEL: @test_mm_mask_i64scatter_ps
5035   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.sf
5036   return _mm_mask_i64scatter_ps(__addr,__mask,__index,__v1,2);
5037 }
test_mm_i64scatter_epi32(int * __addr,__m128i __index,__m128i __v1)5038 void test_mm_i64scatter_epi32(int *__addr, __m128i __index,  __m128i __v1) {
5039   // CHECK-LABEL: @test_mm_i64scatter_epi32
5040   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.si
5041   return _mm_i64scatter_epi32(__addr,__index,__v1,2);
5042 }
test_mm_mask_i64scatter_epi32(int * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5043 void test_mm_mask_i64scatter_epi32(int *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5044   // CHECK-LABEL: @test_mm_mask_i64scatter_epi32
5045   // CHECK: @llvm.x86.avx512.mask.scatterdiv4.si
5046   return _mm_mask_i64scatter_epi32(__addr,__mask,__index,__v1,2);
5047 }
test_mm256_i64scatter_ps(float * __addr,__m256i __index,__m128 __v1)5048 void test_mm256_i64scatter_ps(float *__addr, __m256i __index,  __m128 __v1) {
5049   // CHECK-LABEL: @test_mm256_i64scatter_ps
5050   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.sf
5051   return _mm256_i64scatter_ps(__addr,__index,__v1,2);
5052 }
test_mm256_mask_i64scatter_ps(float * __addr,__mmask8 __mask,__m256i __index,__m128 __v1)5053 void test_mm256_mask_i64scatter_ps(float *__addr, __mmask8 __mask, __m256i __index, __m128 __v1) {
5054   // CHECK-LABEL: @test_mm256_mask_i64scatter_ps
5055   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.sf
5056   return _mm256_mask_i64scatter_ps(__addr,__mask,__index,__v1,2);
5057 }
test_mm256_i64scatter_epi32(int * __addr,__m256i __index,__m128i __v1)5058 void test_mm256_i64scatter_epi32(int *__addr, __m256i __index,  __m128i __v1) {
5059   // CHECK-LABEL: @test_mm256_i64scatter_epi32
5060   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.si
5061   return _mm256_i64scatter_epi32(__addr,__index,__v1,2);
5062 }
test_mm256_mask_i64scatter_epi32(int * __addr,__mmask8 __mask,__m256i __index,__m128i __v1)5063 void test_mm256_mask_i64scatter_epi32(int *__addr, __mmask8 __mask,  __m256i __index, __m128i __v1) {
5064   // CHECK-LABEL: @test_mm256_mask_i64scatter_epi32
5065   // CHECK: @llvm.x86.avx512.mask.scatterdiv8.si
5066   return _mm256_mask_i64scatter_epi32(__addr,__mask,__index,__v1,2);
5067 }
test_mm_i32scatter_pd(double * __addr,__m128i __index,__m128d __v1)5068 void test_mm_i32scatter_pd(double *__addr, __m128i __index,  __m128d __v1) {
5069   // CHECK-LABEL: @test_mm_i32scatter_pd
5070   // CHECK: @llvm.x86.avx512.mask.scattersiv2.df
5071   return _mm_i32scatter_pd(__addr,__index,__v1,2);
5072 }
test_mm_mask_i32scatter_pd(double * __addr,__mmask8 __mask,__m128i __index,__m128d __v1)5073 void test_mm_mask_i32scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m128d __v1) {
5074   // CHECK-LABEL: @test_mm_mask_i32scatter_pd
5075   // CHECK: @llvm.x86.avx512.mask.scattersiv2.df
5076   return _mm_mask_i32scatter_pd(__addr,__mask,__index,__v1,2);
5077 }
test_mm_i32scatter_epi64(long long * __addr,__m128i __index,__m128i __v1)5078 void test_mm_i32scatter_epi64(long long *__addr, __m128i __index,  __m128i __v1) {
5079   // CHECK-LABEL: @test_mm_i32scatter_epi64
5080   // CHECK: @llvm.x86.avx512.mask.scattersiv2.di
5081   return _mm_i32scatter_epi64(__addr,__index,__v1,2);
5082 }
test_mm_mask_i32scatter_epi64(long long * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5083 void test_mm_mask_i32scatter_epi64(long long *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5084   // CHECK-LABEL: @test_mm_mask_i32scatter_epi64
5085   // CHECK: @llvm.x86.avx512.mask.scattersiv2.di
5086   return _mm_mask_i32scatter_epi64(__addr,__mask,__index,__v1,2);
5087 }
test_mm256_i32scatter_pd(double * __addr,__m128i __index,__m256d __v1)5088 void test_mm256_i32scatter_pd(double *__addr, __m128i __index,  __m256d __v1) {
5089   // CHECK-LABEL: @test_mm256_i32scatter_pd
5090   // CHECK: @llvm.x86.avx512.mask.scattersiv4.df
5091   return _mm256_i32scatter_pd(__addr,__index,__v1,2);
5092 }
test_mm256_mask_i32scatter_pd(double * __addr,__mmask8 __mask,__m128i __index,__m256d __v1)5093 void test_mm256_mask_i32scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m256d __v1) {
5094   // CHECK-LABEL: @test_mm256_mask_i32scatter_pd
5095   // CHECK: @llvm.x86.avx512.mask.scattersiv4.df
5096   return _mm256_mask_i32scatter_pd(__addr,__mask,__index,__v1,2);
5097 }
test_mm256_i32scatter_epi64(long long * __addr,__m128i __index,__m256i __v1)5098 void test_mm256_i32scatter_epi64(long long *__addr, __m128i __index,  __m256i __v1) {
5099   // CHECK-LABEL: @test_mm256_i32scatter_epi64
5100   // CHECK: @llvm.x86.avx512.mask.scattersiv4.di
5101   return _mm256_i32scatter_epi64(__addr,__index,__v1,2);
5102 }
test_mm256_mask_i32scatter_epi64(long long * __addr,__mmask8 __mask,__m128i __index,__m256i __v1)5103 void test_mm256_mask_i32scatter_epi64(long long *__addr, __mmask8 __mask,  __m128i __index, __m256i __v1) {
5104   // CHECK-LABEL: @test_mm256_mask_i32scatter_epi64
5105   // CHECK: @llvm.x86.avx512.mask.scattersiv4.di
5106   return _mm256_mask_i32scatter_epi64(__addr,__mask,__index,__v1,2);
5107 }
test_mm_i32scatter_ps(float * __addr,__m128i __index,__m128 __v1)5108 void test_mm_i32scatter_ps(float *__addr, __m128i __index, __m128 __v1) {
5109   // CHECK-LABEL: @test_mm_i32scatter_ps
5110   // CHECK: @llvm.x86.avx512.mask.scattersiv4.sf
5111   return _mm_i32scatter_ps(__addr,__index,__v1,2);
5112 }
test_mm_mask_i32scatter_ps(float * __addr,__mmask8 __mask,__m128i __index,__m128 __v1)5113 void test_mm_mask_i32scatter_ps(float *__addr, __mmask8 __mask, __m128i __index, __m128 __v1) {
5114   // CHECK-LABEL: @test_mm_mask_i32scatter_ps
5115   // CHECK: @llvm.x86.avx512.mask.scattersiv4.sf
5116   return _mm_mask_i32scatter_ps(__addr,__mask,__index,__v1,2);
5117 }
test_mm_i32scatter_epi32(int * __addr,__m128i __index,__m128i __v1)5118 void test_mm_i32scatter_epi32(int *__addr, __m128i __index,  __m128i __v1) {
5119   // CHECK-LABEL: @test_mm_i32scatter_epi32
5120   // CHECK: @llvm.x86.avx512.mask.scattersiv4.si
5121   return _mm_i32scatter_epi32(__addr,__index,__v1,2);
5122 }
test_mm_mask_i32scatter_epi32(int * __addr,__mmask8 __mask,__m128i __index,__m128i __v1)5123 void test_mm_mask_i32scatter_epi32(int *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
5124   // CHECK-LABEL: @test_mm_mask_i32scatter_epi32
5125   // CHECK: @llvm.x86.avx512.mask.scattersiv4.si
5126   return _mm_mask_i32scatter_epi32(__addr,__mask,__index,__v1,2);
5127 }
test_mm256_i32scatter_ps(float * __addr,__m256i __index,__m256 __v1)5128 void test_mm256_i32scatter_ps(float *__addr, __m256i __index,  __m256 __v1) {
5129   // CHECK-LABEL: @test_mm256_i32scatter_ps
5130   // CHECK: @llvm.x86.avx512.mask.scattersiv8.sf
5131   return _mm256_i32scatter_ps(__addr,__index,__v1,2);
5132 }
test_mm256_mask_i32scatter_ps(float * __addr,__mmask8 __mask,__m256i __index,__m256 __v1)5133 void test_mm256_mask_i32scatter_ps(float *__addr, __mmask8 __mask, __m256i __index, __m256 __v1) {
5134   // CHECK-LABEL: @test_mm256_mask_i32scatter_ps
5135   // CHECK: @llvm.x86.avx512.mask.scattersiv8.sf
5136   return _mm256_mask_i32scatter_ps(__addr,__mask,__index,__v1,2);
5137 }
test_mm256_i32scatter_epi32(int * __addr,__m256i __index,__m256i __v1)5138 void test_mm256_i32scatter_epi32(int *__addr, __m256i __index,  __m256i __v1) {
5139   // CHECK-LABEL: @test_mm256_i32scatter_epi32
5140   // CHECK: @llvm.x86.avx512.mask.scattersiv8.si
5141   return _mm256_i32scatter_epi32(__addr,__index,__v1,2);
5142 }
test_mm256_mask_i32scatter_epi32(int * __addr,__mmask8 __mask,__m256i __index,__m256i __v1)5143 void test_mm256_mask_i32scatter_epi32(int *__addr, __mmask8 __mask,  __m256i __index, __m256i __v1) {
5144   // CHECK-LABEL: @test_mm256_mask_i32scatter_epi32
5145   // CHECK: @llvm.x86.avx512.mask.scattersiv8.si
5146   return _mm256_mask_i32scatter_epi32(__addr,__mask,__index,__v1,2);
5147 }
test_mm_mask_sqrt_pd(__m128d __W,__mmask8 __U,__m128d __A)5148 __m128d test_mm_mask_sqrt_pd(__m128d __W, __mmask8 __U, __m128d __A) {
5149   // CHECK-LABEL: @test_mm_mask_sqrt_pd
5150   // CHECK: @llvm.sqrt.v2f64
5151   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5152   return _mm_mask_sqrt_pd(__W,__U,__A);
5153 }
test_mm_maskz_sqrt_pd(__mmask8 __U,__m128d __A)5154 __m128d test_mm_maskz_sqrt_pd(__mmask8 __U, __m128d __A) {
5155   // CHECK-LABEL: @test_mm_maskz_sqrt_pd
5156   // CHECK: @llvm.sqrt.v2f64
5157   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5158   return _mm_maskz_sqrt_pd(__U,__A);
5159 }
test_mm256_mask_sqrt_pd(__m256d __W,__mmask8 __U,__m256d __A)5160 __m256d test_mm256_mask_sqrt_pd(__m256d __W, __mmask8 __U, __m256d __A) {
5161   // CHECK-LABEL: @test_mm256_mask_sqrt_pd
5162   // CHECK: @llvm.sqrt.v4f64
5163   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5164   return _mm256_mask_sqrt_pd(__W,__U,__A);
5165 }
test_mm256_maskz_sqrt_pd(__mmask8 __U,__m256d __A)5166 __m256d test_mm256_maskz_sqrt_pd(__mmask8 __U, __m256d __A) {
5167   // CHECK-LABEL: @test_mm256_maskz_sqrt_pd
5168   // CHECK: @llvm.sqrt.v4f64
5169   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5170   return _mm256_maskz_sqrt_pd(__U,__A);
5171 }
test_mm_mask_sqrt_ps(__m128 __W,__mmask8 __U,__m128 __A)5172 __m128 test_mm_mask_sqrt_ps(__m128 __W, __mmask8 __U, __m128 __A) {
5173   // CHECK-LABEL: @test_mm_mask_sqrt_ps
5174   // CHECK: @llvm.sqrt.v4f32
5175   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5176   return _mm_mask_sqrt_ps(__W,__U,__A);
5177 }
test_mm_maskz_sqrt_ps(__mmask8 __U,__m128 __A)5178 __m128 test_mm_maskz_sqrt_ps(__mmask8 __U, __m128 __A) {
5179   // CHECK-LABEL: @test_mm_maskz_sqrt_ps
5180   // CHECK: @llvm.sqrt.v4f32
5181   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5182   return _mm_maskz_sqrt_ps(__U,__A);
5183 }
test_mm256_mask_sqrt_ps(__m256 __W,__mmask8 __U,__m256 __A)5184 __m256 test_mm256_mask_sqrt_ps(__m256 __W, __mmask8 __U, __m256 __A) {
5185   // CHECK-LABEL: @test_mm256_mask_sqrt_ps
5186   // CHECK: @llvm.sqrt.v8f32
5187   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5188   return _mm256_mask_sqrt_ps(__W,__U,__A);
5189 }
test_mm256_maskz_sqrt_ps(__mmask8 __U,__m256 __A)5190 __m256 test_mm256_maskz_sqrt_ps(__mmask8 __U, __m256 __A) {
5191   // CHECK-LABEL: @test_mm256_maskz_sqrt_ps
5192   // CHECK: @llvm.sqrt.v8f32
5193   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5194   return _mm256_maskz_sqrt_ps(__U,__A);
5195 }
test_mm_mask_sub_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5196 __m128d test_mm_mask_sub_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
5197   // CHECK-LABEL: @test_mm_mask_sub_pd
5198   // CHECK: fsub <2 x double> %{{.*}}, %{{.*}}
5199   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5200   return _mm_mask_sub_pd(__W,__U,__A,__B);
5201 }
test_mm_maskz_sub_pd(__mmask8 __U,__m128d __A,__m128d __B)5202 __m128d test_mm_maskz_sub_pd(__mmask8 __U, __m128d __A, __m128d __B) {
5203   // CHECK-LABEL: @test_mm_maskz_sub_pd
5204   // CHECK: fsub <2 x double> %{{.*}}, %{{.*}}
5205   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5206   return _mm_maskz_sub_pd(__U,__A,__B);
5207 }
test_mm256_mask_sub_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)5208 __m256d test_mm256_mask_sub_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
5209   // CHECK-LABEL: @test_mm256_mask_sub_pd
5210   // CHECK: fsub <4 x double> %{{.*}}, %{{.*}}
5211   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5212   return _mm256_mask_sub_pd(__W,__U,__A,__B);
5213 }
test_mm256_maskz_sub_pd(__mmask8 __U,__m256d __A,__m256d __B)5214 __m256d test_mm256_maskz_sub_pd(__mmask8 __U, __m256d __A, __m256d __B) {
5215   // CHECK-LABEL: @test_mm256_maskz_sub_pd
5216   // CHECK: fsub <4 x double> %{{.*}}, %{{.*}}
5217   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5218   return _mm256_maskz_sub_pd(__U,__A,__B);
5219 }
test_mm_mask_sub_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5220 __m128 test_mm_mask_sub_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
5221   // CHECK-LABEL: @test_mm_mask_sub_ps
5222   // CHECK: fsub <4 x float> %{{.*}}, %{{.*}}
5223   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5224   return _mm_mask_sub_ps(__W,__U,__A,__B);
5225 }
test_mm_maskz_sub_ps(__mmask8 __U,__m128 __A,__m128 __B)5226 __m128 test_mm_maskz_sub_ps(__mmask8 __U, __m128 __A, __m128 __B) {
5227   // CHECK-LABEL: @test_mm_maskz_sub_ps
5228   // CHECK: fsub <4 x float> %{{.*}}, %{{.*}}
5229   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5230   return _mm_maskz_sub_ps(__U,__A,__B);
5231 }
test_mm256_mask_sub_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)5232 __m256 test_mm256_mask_sub_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
5233   // CHECK-LABEL: @test_mm256_mask_sub_ps
5234   // CHECK: fsub <8 x float> %{{.*}}, %{{.*}}
5235   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5236   return _mm256_mask_sub_ps(__W,__U,__A,__B);
5237 }
test_mm256_maskz_sub_ps(__mmask8 __U,__m256 __A,__m256 __B)5238 __m256 test_mm256_maskz_sub_ps(__mmask8 __U, __m256 __A, __m256 __B) {
5239   // CHECK-LABEL: @test_mm256_maskz_sub_ps
5240   // CHECK: fsub <8 x float> %{{.*}}, %{{.*}}
5241   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5242   return _mm256_maskz_sub_ps(__U,__A,__B);
5243 }
test_mm_mask2_permutex2var_epi32(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)5244 __m128i test_mm_mask2_permutex2var_epi32(__m128i __A, __m128i __I, __mmask8 __U,  __m128i __B) {
5245   // CHECK-LABEL: @test_mm_mask2_permutex2var_epi32
5246   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5247   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5248   return _mm_mask2_permutex2var_epi32(__A,__I,__U,__B);
5249 }
test_mm256_mask2_permutex2var_epi32(__m256i __A,__m256i __I,__mmask8 __U,__m256i __B)5250 __m256i test_mm256_mask2_permutex2var_epi32(__m256i __A, __m256i __I, __mmask8 __U, __m256i __B) {
5251   // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi32
5252   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5253   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5254   return _mm256_mask2_permutex2var_epi32(__A,__I,__U,__B);
5255 }
test_mm_mask2_permutex2var_pd(__m128d __A,__m128i __I,__mmask8 __U,__m128d __B)5256 __m128d test_mm_mask2_permutex2var_pd(__m128d __A, __m128i __I, __mmask8 __U, __m128d __B) {
5257   // CHECK-LABEL: @test_mm_mask2_permutex2var_pd
5258   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5259   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5260   return _mm_mask2_permutex2var_pd(__A,__I,__U,__B);
5261 }
test_mm256_mask2_permutex2var_pd(__m256d __A,__m256i __I,__mmask8 __U,__m256d __B)5262 __m256d test_mm256_mask2_permutex2var_pd(__m256d __A, __m256i __I, __mmask8 __U,  __m256d __B) {
5263   // CHECK-LABEL: @test_mm256_mask2_permutex2var_pd
5264   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5265   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5266   return _mm256_mask2_permutex2var_pd(__A,__I,__U,__B);
5267 }
test_mm_mask2_permutex2var_ps(__m128 __A,__m128i __I,__mmask8 __U,__m128 __B)5268 __m128 test_mm_mask2_permutex2var_ps(__m128 __A, __m128i __I, __mmask8 __U, __m128 __B) {
5269   // CHECK-LABEL: @test_mm_mask2_permutex2var_ps
5270   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5271   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5272   return _mm_mask2_permutex2var_ps(__A,__I,__U,__B);
5273 }
test_mm256_mask2_permutex2var_ps(__m256 __A,__m256i __I,__mmask8 __U,__m256 __B)5274 __m256 test_mm256_mask2_permutex2var_ps(__m256 __A, __m256i __I, __mmask8 __U,  __m256 __B) {
5275   // CHECK-LABEL: @test_mm256_mask2_permutex2var_ps
5276   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5277   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5278   return _mm256_mask2_permutex2var_ps(__A,__I,__U,__B);
5279 }
test_mm_mask2_permutex2var_epi64(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)5280 __m128i test_mm_mask2_permutex2var_epi64(__m128i __A, __m128i __I, __mmask8 __U,  __m128i __B) {
5281   // CHECK-LABEL: @test_mm_mask2_permutex2var_epi64
5282   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5283   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5284   return _mm_mask2_permutex2var_epi64(__A,__I,__U,__B);
5285 }
test_mm256_mask2_permutex2var_epi64(__m256i __A,__m256i __I,__mmask8 __U,__m256i __B)5286 __m256i test_mm256_mask2_permutex2var_epi64(__m256i __A, __m256i __I, __mmask8 __U, __m256i __B) {
5287   // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi64
5288   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5289   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5290   return _mm256_mask2_permutex2var_epi64(__A,__I,__U,__B);
5291 }
test_mm_permutex2var_epi32(__m128i __A,__m128i __I,__m128i __B)5292 __m128i test_mm_permutex2var_epi32(__m128i __A, __m128i __I, __m128i __B) {
5293   // CHECK-LABEL: @test_mm_permutex2var_epi32
5294   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5295   return _mm_permutex2var_epi32(__A,__I,__B);
5296 }
test_mm_mask_permutex2var_epi32(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)5297 __m128i test_mm_mask_permutex2var_epi32(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) {
5298   // CHECK-LABEL: @test_mm_mask_permutex2var_epi32
5299   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5300   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5301   return _mm_mask_permutex2var_epi32(__A,__U,__I,__B);
5302 }
test_mm_maskz_permutex2var_epi32(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)5303 __m128i test_mm_maskz_permutex2var_epi32(__mmask8 __U, __m128i __A, __m128i __I,  __m128i __B) {
5304   // CHECK-LABEL: @test_mm_maskz_permutex2var_epi32
5305   // CHECK: @llvm.x86.avx512.vpermi2var.d.128
5306   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5307   return _mm_maskz_permutex2var_epi32(__U,__A,__I,__B);
5308 }
test_mm256_permutex2var_epi32(__m256i __A,__m256i __I,__m256i __B)5309 __m256i test_mm256_permutex2var_epi32(__m256i __A, __m256i __I, __m256i __B) {
5310   // CHECK-LABEL: @test_mm256_permutex2var_epi32
5311   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5312   return _mm256_permutex2var_epi32(__A,__I,__B);
5313 }
test_mm256_mask_permutex2var_epi32(__m256i __A,__mmask8 __U,__m256i __I,__m256i __B)5314 __m256i test_mm256_mask_permutex2var_epi32(__m256i __A, __mmask8 __U, __m256i __I, __m256i __B) {
5315   // CHECK-LABEL: @test_mm256_mask_permutex2var_epi32
5316   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5317   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5318   return _mm256_mask_permutex2var_epi32(__A,__U,__I,__B);
5319 }
test_mm256_maskz_permutex2var_epi32(__mmask8 __U,__m256i __A,__m256i __I,__m256i __B)5320 __m256i test_mm256_maskz_permutex2var_epi32(__mmask8 __U, __m256i __A, __m256i __I, __m256i __B) {
5321   // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi32
5322   // CHECK: @llvm.x86.avx512.vpermi2var.d.256
5323   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5324   return _mm256_maskz_permutex2var_epi32(__U,__A,__I,__B);
5325 }
test_mm_permutex2var_pd(__m128d __A,__m128i __I,__m128d __B)5326 __m128d test_mm_permutex2var_pd(__m128d __A, __m128i __I, __m128d __B) {
5327   // CHECK-LABEL: @test_mm_permutex2var_pd
5328   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5329   return _mm_permutex2var_pd(__A,__I,__B);
5330 }
test_mm_mask_permutex2var_pd(__m128d __A,__mmask8 __U,__m128i __I,__m128d __B)5331 __m128d test_mm_mask_permutex2var_pd(__m128d __A, __mmask8 __U, __m128i __I, __m128d __B) {
5332   // CHECK-LABEL: @test_mm_mask_permutex2var_pd
5333   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5334   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5335   return _mm_mask_permutex2var_pd(__A,__U,__I,__B);
5336 }
test_mm_maskz_permutex2var_pd(__mmask8 __U,__m128d __A,__m128i __I,__m128d __B)5337 __m128d test_mm_maskz_permutex2var_pd(__mmask8 __U, __m128d __A, __m128i __I, __m128d __B) {
5338   // CHECK-LABEL: @test_mm_maskz_permutex2var_pd
5339   // CHECK: @llvm.x86.avx512.vpermi2var.pd.128
5340   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
5341   return _mm_maskz_permutex2var_pd(__U,__A,__I,__B);
5342 }
test_mm256_permutex2var_pd(__m256d __A,__m256i __I,__m256d __B)5343 __m256d test_mm256_permutex2var_pd(__m256d __A, __m256i __I, __m256d __B) {
5344   // CHECK-LABEL: @test_mm256_permutex2var_pd
5345   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5346   return _mm256_permutex2var_pd(__A,__I,__B);
5347 }
test_mm256_mask_permutex2var_pd(__m256d __A,__mmask8 __U,__m256i __I,__m256d __B)5348 __m256d test_mm256_mask_permutex2var_pd(__m256d __A, __mmask8 __U, __m256i __I, __m256d __B) {
5349   // CHECK-LABEL: @test_mm256_mask_permutex2var_pd
5350   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5351   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5352   return _mm256_mask_permutex2var_pd(__A,__U,__I,__B);
5353 }
test_mm256_maskz_permutex2var_pd(__mmask8 __U,__m256d __A,__m256i __I,__m256d __B)5354 __m256d test_mm256_maskz_permutex2var_pd(__mmask8 __U, __m256d __A, __m256i __I,  __m256d __B) {
5355   // CHECK-LABEL: @test_mm256_maskz_permutex2var_pd
5356   // CHECK: @llvm.x86.avx512.vpermi2var.pd.256
5357   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
5358   return _mm256_maskz_permutex2var_pd(__U,__A,__I,__B);
5359 }
test_mm_permutex2var_ps(__m128 __A,__m128i __I,__m128 __B)5360 __m128 test_mm_permutex2var_ps(__m128 __A, __m128i __I, __m128 __B) {
5361   // CHECK-LABEL: @test_mm_permutex2var_ps
5362   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5363   return _mm_permutex2var_ps(__A,__I,__B);
5364 }
test_mm_mask_permutex2var_ps(__m128 __A,__mmask8 __U,__m128i __I,__m128 __B)5365 __m128 test_mm_mask_permutex2var_ps(__m128 __A, __mmask8 __U, __m128i __I, __m128 __B) {
5366   // CHECK-LABEL: @test_mm_mask_permutex2var_ps
5367   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5368   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5369   return _mm_mask_permutex2var_ps(__A,__U,__I,__B);
5370 }
test_mm_maskz_permutex2var_ps(__mmask8 __U,__m128 __A,__m128i __I,__m128 __B)5371 __m128 test_mm_maskz_permutex2var_ps(__mmask8 __U, __m128 __A, __m128i __I, __m128 __B) {
5372   // CHECK-LABEL: @test_mm_maskz_permutex2var_ps
5373   // CHECK: @llvm.x86.avx512.vpermi2var.ps.128
5374   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
5375   return _mm_maskz_permutex2var_ps(__U,__A,__I,__B);
5376 }
test_mm256_permutex2var_ps(__m256 __A,__m256i __I,__m256 __B)5377 __m256 test_mm256_permutex2var_ps(__m256 __A, __m256i __I, __m256 __B) {
5378   // CHECK-LABEL: @test_mm256_permutex2var_ps
5379   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5380   return _mm256_permutex2var_ps(__A,__I,__B);
5381 }
test_mm256_mask_permutex2var_ps(__m256 __A,__mmask8 __U,__m256i __I,__m256 __B)5382 __m256 test_mm256_mask_permutex2var_ps(__m256 __A, __mmask8 __U, __m256i __I, __m256 __B) {
5383   // CHECK-LABEL: @test_mm256_mask_permutex2var_ps
5384   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5385   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5386   return _mm256_mask_permutex2var_ps(__A,__U,__I,__B);
5387 }
test_mm256_maskz_permutex2var_ps(__mmask8 __U,__m256 __A,__m256i __I,__m256 __B)5388 __m256 test_mm256_maskz_permutex2var_ps(__mmask8 __U, __m256 __A, __m256i __I, __m256 __B) {
5389   // CHECK-LABEL: @test_mm256_maskz_permutex2var_ps
5390   // CHECK: @llvm.x86.avx512.vpermi2var.ps.256
5391   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
5392   return _mm256_maskz_permutex2var_ps(__U,__A,__I,__B);
5393 }
test_mm_permutex2var_epi64(__m128i __A,__m128i __I,__m128i __B)5394 __m128i test_mm_permutex2var_epi64(__m128i __A, __m128i __I, __m128i __B) {
5395   // CHECK-LABEL: @test_mm_permutex2var_epi64
5396   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5397   return _mm_permutex2var_epi64(__A,__I,__B);
5398 }
test_mm_mask_permutex2var_epi64(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)5399 __m128i test_mm_mask_permutex2var_epi64(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) {
5400   // CHECK-LABEL: @test_mm_mask_permutex2var_epi64
5401   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5402   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5403   return _mm_mask_permutex2var_epi64(__A,__U,__I,__B);
5404 }
test_mm_maskz_permutex2var_epi64(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)5405 __m128i test_mm_maskz_permutex2var_epi64(__mmask8 __U, __m128i __A, __m128i __I, __m128i __B) {
5406   // CHECK-LABEL: @test_mm_maskz_permutex2var_epi64
5407   // CHECK: @llvm.x86.avx512.vpermi2var.q.128
5408   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5409   return _mm_maskz_permutex2var_epi64(__U,__A,__I,__B);
5410 }
test_mm256_permutex2var_epi64(__m256i __A,__m256i __I,__m256i __B)5411 __m256i test_mm256_permutex2var_epi64(__m256i __A, __m256i __I, __m256i __B) {
5412   // CHECK-LABEL: @test_mm256_permutex2var_epi64
5413   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5414   return _mm256_permutex2var_epi64(__A,__I,__B);
5415 }
test_mm256_mask_permutex2var_epi64(__m256i __A,__mmask8 __U,__m256i __I,__m256i __B)5416 __m256i test_mm256_mask_permutex2var_epi64(__m256i __A, __mmask8 __U, __m256i __I, __m256i __B) {
5417   // CHECK-LABEL: @test_mm256_mask_permutex2var_epi64
5418   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5419   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5420   return _mm256_mask_permutex2var_epi64(__A,__U,__I,__B);
5421 }
test_mm256_maskz_permutex2var_epi64(__mmask8 __U,__m256i __A,__m256i __I,__m256i __B)5422 __m256i test_mm256_maskz_permutex2var_epi64(__mmask8 __U, __m256i __A, __m256i __I, __m256i __B) {
5423   // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi64
5424   // CHECK: @llvm.x86.avx512.vpermi2var.q.256
5425   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5426   return _mm256_maskz_permutex2var_epi64(__U,__A,__I,__B);
5427 }
5428 
test_mm_mask_cvtepi8_epi32(__m128i __W,__mmask8 __U,__m128i __A)5429 __m128i test_mm_mask_cvtepi8_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5430   // CHECK-LABEL: @test_mm_mask_cvtepi8_epi32
5431   // CHECK: sext <4 x i8> %{{.*}} to <4 x i32>
5432   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5433   return _mm_mask_cvtepi8_epi32(__W, __U, __A);
5434 }
5435 
test_mm_maskz_cvtepi8_epi32(__mmask8 __U,__m128i __A)5436 __m128i test_mm_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) {
5437   // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi32
5438   // CHECK: sext <4 x i8> %{{.*}} to <4 x i32>
5439   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5440   return _mm_maskz_cvtepi8_epi32(__U, __A);
5441 }
5442 
test_mm256_mask_cvtepi8_epi32(__m256i __W,__mmask8 __U,__m128i __A)5443 __m256i test_mm256_mask_cvtepi8_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5444   // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi32
5445   // CHECK: sext <8 x i8> %{{.*}} to <8 x i32>
5446   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5447   return _mm256_mask_cvtepi8_epi32(__W, __U, __A);
5448 }
5449 
test_mm256_maskz_cvtepi8_epi32(__mmask8 __U,__m128i __A)5450 __m256i test_mm256_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) {
5451   // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi32
5452   // CHECK: sext <8 x i8> %{{.*}} to <8 x i32>
5453   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5454   return _mm256_maskz_cvtepi8_epi32(__U, __A);
5455 }
5456 
test_mm_mask_cvtepi8_epi64(__m128i __W,__mmask8 __U,__m128i __A)5457 __m128i test_mm_mask_cvtepi8_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5458   // CHECK-LABEL: @test_mm_mask_cvtepi8_epi64
5459   // CHECK: sext <2 x i8> %{{.*}} to <2 x i64>
5460   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5461   return _mm_mask_cvtepi8_epi64(__W, __U, __A);
5462 }
5463 
test_mm_maskz_cvtepi8_epi64(__mmask8 __U,__m128i __A)5464 __m128i test_mm_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
5465   // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi64
5466   // CHECK: sext <2 x i8> %{{.*}} to <2 x i64>
5467   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5468   return _mm_maskz_cvtepi8_epi64(__U, __A);
5469 }
5470 
test_mm256_mask_cvtepi8_epi64(__m256i __W,__mmask8 __U,__m128i __A)5471 __m256i test_mm256_mask_cvtepi8_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5472   // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi64
5473   // CHECK: sext <4 x i8> %{{.*}} to <4 x i64>
5474   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5475   return _mm256_mask_cvtepi8_epi64(__W, __U, __A);
5476 }
5477 
test_mm256_maskz_cvtepi8_epi64(__mmask8 __U,__m128i __A)5478 __m256i test_mm256_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
5479   // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi64
5480   // CHECK: sext <4 x i8> %{{.*}} to <4 x i64>
5481   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5482   return _mm256_maskz_cvtepi8_epi64(__U, __A);
5483 }
5484 
test_mm_mask_cvtepi32_epi64(__m128i __W,__mmask8 __U,__m128i __X)5485 __m128i test_mm_mask_cvtepi32_epi64(__m128i __W, __mmask8 __U, __m128i __X) {
5486   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi64
5487   // CHECK: sext <2 x i32> %{{.*}} to <2 x i64>
5488   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5489   return _mm_mask_cvtepi32_epi64(__W, __U, __X);
5490 }
5491 
test_mm_maskz_cvtepi32_epi64(__mmask8 __U,__m128i __X)5492 __m128i test_mm_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) {
5493   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi64
5494   // CHECK: sext <2 x i32> %{{.*}} to <2 x i64>
5495   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5496   return _mm_maskz_cvtepi32_epi64(__U, __X);
5497 }
5498 
test_mm256_mask_cvtepi32_epi64(__m256i __W,__mmask8 __U,__m128i __X)5499 __m256i test_mm256_mask_cvtepi32_epi64(__m256i __W, __mmask8 __U, __m128i __X) {
5500   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi64
5501   // CHECK: sext <4 x i32> %{{.*}} to <4 x i64>
5502   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5503   return _mm256_mask_cvtepi32_epi64(__W, __U, __X);
5504 }
5505 
test_mm256_maskz_cvtepi32_epi64(__mmask8 __U,__m128i __X)5506 __m256i test_mm256_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) {
5507   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi64
5508   // CHECK: sext <4 x i32> %{{.*}} to <4 x i64>
5509   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5510   return _mm256_maskz_cvtepi32_epi64(__U, __X);
5511 }
5512 
test_mm_mask_cvtepi16_epi32(__m128i __W,__mmask8 __U,__m128i __A)5513 __m128i test_mm_mask_cvtepi16_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5514   // CHECK-LABEL: @test_mm_mask_cvtepi16_epi32
5515   // CHECK: sext <4 x i16> %{{.*}} to <4 x i32>
5516   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5517   return _mm_mask_cvtepi16_epi32(__W, __U, __A);
5518 }
5519 
test_mm_maskz_cvtepi16_epi32(__mmask8 __U,__m128i __A)5520 __m128i test_mm_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) {
5521   // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi32
5522   // CHECK: sext <4 x i16> %{{.*}} to <4 x i32>
5523   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5524   return _mm_maskz_cvtepi16_epi32(__U, __A);
5525 }
5526 
test_mm256_mask_cvtepi16_epi32(__m256i __W,__mmask8 __U,__m128i __A)5527 __m256i test_mm256_mask_cvtepi16_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5528   // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi32
5529   // CHECK: sext <8 x i16> %{{.*}} to <8 x i32>
5530   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5531   return _mm256_mask_cvtepi16_epi32(__W, __U, __A);
5532 }
5533 
test_mm256_maskz_cvtepi16_epi32(__mmask8 __U,__m128i __A)5534 __m256i test_mm256_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) {
5535   // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi32
5536   // CHECK: sext <8 x i16> %{{.*}} to <8 x i32>
5537   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5538   return _mm256_maskz_cvtepi16_epi32(__U, __A);
5539 }
5540 
test_mm_mask_cvtepi16_epi64(__m128i __W,__mmask8 __U,__m128i __A)5541 __m128i test_mm_mask_cvtepi16_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5542   // CHECK-LABEL: @test_mm_mask_cvtepi16_epi64
5543   // CHECK: sext <2 x i16> %{{.*}} to <2 x i64>
5544   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5545   return _mm_mask_cvtepi16_epi64(__W, __U, __A);
5546 }
5547 
test_mm_maskz_cvtepi16_epi64(__mmask8 __U,__m128i __A)5548 __m128i test_mm_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
5549   // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi64
5550   // CHECK: sext <2 x i16> %{{.*}} to <2 x i64>
5551   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5552   return _mm_maskz_cvtepi16_epi64(__U, __A);
5553 }
5554 
test_mm256_mask_cvtepi16_epi64(__m256i __W,__mmask8 __U,__m128i __A)5555 __m256i test_mm256_mask_cvtepi16_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5556   // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi64
5557   // CHECK: sext <4 x i16> %{{.*}} to <4 x i64>
5558   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5559   return _mm256_mask_cvtepi16_epi64(__W, __U, __A);
5560 }
5561 
test_mm256_maskz_cvtepi16_epi64(__mmask8 __U,__m128i __A)5562 __m256i test_mm256_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
5563   // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi64
5564   // CHECK: sext <4 x i16> %{{.*}} to <4 x i64>
5565   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5566   return _mm256_maskz_cvtepi16_epi64(__U, __A);
5567 }
5568 
test_mm_mask_cvtepu8_epi32(__m128i __W,__mmask8 __U,__m128i __A)5569 __m128i test_mm_mask_cvtepu8_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5570   // CHECK-LABEL: @test_mm_mask_cvtepu8_epi32
5571   // CHECK: zext <4 x i8> %{{.*}} to <4 x i32>
5572   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5573   return _mm_mask_cvtepu8_epi32(__W, __U, __A);
5574 }
5575 
test_mm_maskz_cvtepu8_epi32(__mmask8 __U,__m128i __A)5576 __m128i test_mm_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) {
5577   // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi32
5578   // CHECK: zext <4 x i8> %{{.*}} to <4 x i32>
5579   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5580   return _mm_maskz_cvtepu8_epi32(__U, __A);
5581 }
5582 
test_mm256_mask_cvtepu8_epi32(__m256i __W,__mmask8 __U,__m128i __A)5583 __m256i test_mm256_mask_cvtepu8_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5584   // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi32
5585   // CHECK: zext <8 x i8> %{{.*}} to <8 x i32>
5586   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5587   return _mm256_mask_cvtepu8_epi32(__W, __U, __A);
5588 }
5589 
test_mm256_maskz_cvtepu8_epi32(__mmask8 __U,__m128i __A)5590 __m256i test_mm256_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) {
5591   // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi32
5592   // CHECK: zext <8 x i8> %{{.*}} to <8 x i32>
5593   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5594   return _mm256_maskz_cvtepu8_epi32(__U, __A);
5595 }
5596 
test_mm_mask_cvtepu8_epi64(__m128i __W,__mmask8 __U,__m128i __A)5597 __m128i test_mm_mask_cvtepu8_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5598   // CHECK-LABEL: @test_mm_mask_cvtepu8_epi64
5599   // CHECK: zext <2 x i8> %{{.*}} to <2 x i64>
5600   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5601   return _mm_mask_cvtepu8_epi64(__W, __U, __A);
5602 }
5603 
test_mm_maskz_cvtepu8_epi64(__mmask8 __U,__m128i __A)5604 __m128i test_mm_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
5605   // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi64
5606   // CHECK: zext <2 x i8> %{{.*}} to <2 x i64>
5607   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5608   return _mm_maskz_cvtepu8_epi64(__U, __A);
5609 }
5610 
test_mm256_mask_cvtepu8_epi64(__m256i __W,__mmask8 __U,__m128i __A)5611 __m256i test_mm256_mask_cvtepu8_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5612   // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi64
5613   // CHECK: zext <4 x i8> %{{.*}} to <4 x i64>
5614   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5615   return _mm256_mask_cvtepu8_epi64(__W, __U, __A);
5616 }
5617 
test_mm256_maskz_cvtepu8_epi64(__mmask8 __U,__m128i __A)5618 __m256i test_mm256_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
5619   // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi64
5620   // CHECK: zext <4 x i8> %{{.*}} to <4 x i64>
5621   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5622   return _mm256_maskz_cvtepu8_epi64(__U, __A);
5623 }
5624 
test_mm_mask_cvtepu32_epi64(__m128i __W,__mmask8 __U,__m128i __X)5625 __m128i test_mm_mask_cvtepu32_epi64(__m128i __W, __mmask8 __U, __m128i __X) {
5626   // CHECK-LABEL: @test_mm_mask_cvtepu32_epi64
5627   // CHECK: zext <2 x i32> %{{.*}} to <2 x i64>
5628   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5629   return _mm_mask_cvtepu32_epi64(__W, __U, __X);
5630 }
5631 
test_mm_maskz_cvtepu32_epi64(__mmask8 __U,__m128i __X)5632 __m128i test_mm_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) {
5633   // CHECK-LABEL: @test_mm_maskz_cvtepu32_epi64
5634   // CHECK: zext <2 x i32> %{{.*}} to <2 x i64>
5635   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5636   return _mm_maskz_cvtepu32_epi64(__U, __X);
5637 }
5638 
test_mm256_mask_cvtepu32_epi64(__m256i __W,__mmask8 __U,__m128i __X)5639 __m256i test_mm256_mask_cvtepu32_epi64(__m256i __W, __mmask8 __U, __m128i __X) {
5640   // CHECK-LABEL: @test_mm256_mask_cvtepu32_epi64
5641   // CHECK: zext <4 x i32> %{{.*}} to <4 x i64>
5642   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5643   return _mm256_mask_cvtepu32_epi64(__W, __U, __X);
5644 }
5645 
test_mm256_maskz_cvtepu32_epi64(__mmask8 __U,__m128i __X)5646 __m256i test_mm256_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) {
5647   // CHECK-LABEL: @test_mm256_maskz_cvtepu32_epi64
5648   // CHECK: zext <4 x i32> %{{.*}} to <4 x i64>
5649   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5650   return _mm256_maskz_cvtepu32_epi64(__U, __X);
5651 }
5652 
test_mm_mask_cvtepu16_epi32(__m128i __W,__mmask8 __U,__m128i __A)5653 __m128i test_mm_mask_cvtepu16_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5654   // CHECK-LABEL: @test_mm_mask_cvtepu16_epi32
5655   // CHECK: zext <4 x i16> %{{.*}} to <4 x i32>
5656   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5657   return _mm_mask_cvtepu16_epi32(__W, __U, __A);
5658 }
5659 
test_mm_maskz_cvtepu16_epi32(__mmask8 __U,__m128i __A)5660 __m128i test_mm_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) {
5661   // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi32
5662   // CHECK: zext <4 x i16> %{{.*}} to <4 x i32>
5663   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5664   return _mm_maskz_cvtepu16_epi32(__U, __A);
5665 }
5666 
test_mm256_mask_cvtepu16_epi32(__m256i __W,__mmask8 __U,__m128i __A)5667 __m256i test_mm256_mask_cvtepu16_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
5668   // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi32
5669   // CHECK: zext <8 x i16> %{{.*}} to <8 x i32>
5670   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5671   return _mm256_mask_cvtepu16_epi32(__W, __U, __A);
5672 }
5673 
test_mm256_maskz_cvtepu16_epi32(__mmask8 __U,__m128i __A)5674 __m256i test_mm256_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) {
5675   // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi32
5676   // CHECK: zext <8 x i16> %{{.*}} to <8 x i32>
5677   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5678   return _mm256_maskz_cvtepu16_epi32(__U, __A);
5679 }
5680 
test_mm_mask_cvtepu16_epi64(__m128i __W,__mmask8 __U,__m128i __A)5681 __m128i test_mm_mask_cvtepu16_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5682   // CHECK-LABEL: @test_mm_mask_cvtepu16_epi64
5683   // CHECK: zext <2 x i16> %{{.*}} to <2 x i64>
5684   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5685   return _mm_mask_cvtepu16_epi64(__W, __U, __A);
5686 }
5687 
test_mm_maskz_cvtepu16_epi64(__mmask8 __U,__m128i __A)5688 __m128i test_mm_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
5689   // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi64
5690   // CHECK: zext <2 x i16> %{{.*}} to <2 x i64>
5691   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5692   return _mm_maskz_cvtepu16_epi64(__U, __A);
5693 }
5694 
test_mm256_mask_cvtepu16_epi64(__m256i __W,__mmask8 __U,__m128i __A)5695 __m256i test_mm256_mask_cvtepu16_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
5696   // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi64
5697   // CHECK: zext <4 x i16> %{{.*}} to <4 x i64>
5698   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5699   return _mm256_mask_cvtepu16_epi64(__W, __U, __A);
5700 }
5701 
test_mm256_maskz_cvtepu16_epi64(__mmask8 __U,__m128i __A)5702 __m256i test_mm256_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
5703   // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi64
5704   // CHECK: zext <4 x i16> %{{.*}} to <4 x i64>
5705   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5706   return _mm256_maskz_cvtepu16_epi64(__U, __A);
5707 }
5708 
test_mm_rol_epi32(__m128i __A)5709 __m128i test_mm_rol_epi32(__m128i __A) {
5710   // CHECK-LABEL: @test_mm_rol_epi32
5711   // CHECK: @llvm.fshl.v4i32
5712   return _mm_rol_epi32(__A, 5);
5713 }
5714 
test_mm_mask_rol_epi32(__m128i __W,__mmask8 __U,__m128i __A)5715 __m128i test_mm_mask_rol_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5716   // CHECK-LABEL: @test_mm_mask_rol_epi32
5717   // CHECK: @llvm.fshl.v4i32
5718   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5719   return _mm_mask_rol_epi32(__W, __U, __A, 5);
5720 }
5721 
test_mm_maskz_rol_epi32(__mmask8 __U,__m128i __A)5722 __m128i test_mm_maskz_rol_epi32(__mmask8 __U, __m128i __A) {
5723   // CHECK-LABEL: @test_mm_maskz_rol_epi32
5724   // CHECK: @llvm.fshl.v4i32
5725   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5726   return _mm_maskz_rol_epi32(__U, __A, 5);
5727 }
5728 
test_mm256_rol_epi32(__m256i __A)5729 __m256i test_mm256_rol_epi32(__m256i __A) {
5730   // CHECK-LABEL: @test_mm256_rol_epi32
5731   // CHECK: @llvm.fshl.v8i32
5732   return _mm256_rol_epi32(__A, 5);
5733 }
5734 
test_mm256_mask_rol_epi32(__m256i __W,__mmask8 __U,__m256i __A)5735 __m256i test_mm256_mask_rol_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
5736   // CHECK-LABEL: @test_mm256_mask_rol_epi32
5737   // CHECK: @llvm.fshl.v8i32
5738   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5739   return _mm256_mask_rol_epi32(__W, __U, __A, 5);
5740 }
5741 
test_mm256_maskz_rol_epi32(__mmask8 __U,__m256i __A)5742 __m256i test_mm256_maskz_rol_epi32(__mmask8 __U, __m256i __A) {
5743   // CHECK-LABEL: @test_mm256_maskz_rol_epi32
5744   // CHECK: @llvm.fshl.v8i32
5745   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5746   return _mm256_maskz_rol_epi32(__U, __A, 5);
5747 }
5748 
test_mm_rol_epi64(__m128i __A)5749 __m128i test_mm_rol_epi64(__m128i __A) {
5750   // CHECK-LABEL: @test_mm_rol_epi64
5751   // CHECK: @llvm.fshl.v2i64
5752   return _mm_rol_epi64(__A, 5);
5753 }
5754 
test_mm_mask_rol_epi64(__m128i __W,__mmask8 __U,__m128i __A)5755 __m128i test_mm_mask_rol_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5756   // CHECK-LABEL: @test_mm_mask_rol_epi64
5757   // CHECK: @llvm.fshl.v2i64
5758   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5759   return _mm_mask_rol_epi64(__W, __U, __A, 5);
5760 }
5761 
test_mm_maskz_rol_epi64(__mmask8 __U,__m128i __A)5762 __m128i test_mm_maskz_rol_epi64(__mmask8 __U, __m128i __A) {
5763   // CHECK-LABEL: @test_mm_maskz_rol_epi64
5764   // CHECK: @llvm.fshl.v2i64
5765   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5766   return _mm_maskz_rol_epi64(__U, __A, 5);
5767 }
5768 
test_mm256_rol_epi64(__m256i __A)5769 __m256i test_mm256_rol_epi64(__m256i __A) {
5770   // CHECK-LABEL: @test_mm256_rol_epi64
5771   // CHECK: @llvm.fshl.v4i64
5772   return _mm256_rol_epi64(__A, 5);
5773 }
5774 
test_mm256_mask_rol_epi64(__m256i __W,__mmask8 __U,__m256i __A)5775 __m256i test_mm256_mask_rol_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
5776   // CHECK-LABEL: @test_mm256_mask_rol_epi64
5777   // CHECK: @llvm.fshl.v4i64
5778   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5779   return _mm256_mask_rol_epi64(__W, __U, __A, 5);
5780 }
5781 
test_mm256_maskz_rol_epi64(__mmask8 __U,__m256i __A)5782 __m256i test_mm256_maskz_rol_epi64(__mmask8 __U, __m256i __A) {
5783   // CHECK-LABEL: @test_mm256_maskz_rol_epi64
5784   // CHECK: @llvm.fshl.v4i64
5785   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5786   return _mm256_maskz_rol_epi64(__U, __A, 5);
5787 }
5788 
test_mm_rolv_epi32(__m128i __A,__m128i __B)5789 __m128i test_mm_rolv_epi32(__m128i __A, __m128i __B) {
5790   // CHECK-LABEL: @test_mm_rolv_epi32
5791   // CHECK: llvm.fshl.v4i32
5792   return _mm_rolv_epi32(__A, __B);
5793 }
5794 
test_mm_mask_rolv_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)5795 __m128i test_mm_mask_rolv_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
5796   // CHECK-LABEL: @test_mm_mask_rolv_epi32
5797   // CHECK: llvm.fshl.v4i32
5798   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5799   return _mm_mask_rolv_epi32(__W, __U, __A, __B);
5800 }
5801 
test_mm_maskz_rolv_epi32(__mmask8 __U,__m128i __A,__m128i __B)5802 __m128i test_mm_maskz_rolv_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
5803   // CHECK-LABEL: @test_mm_maskz_rolv_epi32
5804   // CHECK: llvm.fshl.v4i32
5805   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5806   return _mm_maskz_rolv_epi32(__U, __A, __B);
5807 }
5808 
test_mm256_rolv_epi32(__m256i __A,__m256i __B)5809 __m256i test_mm256_rolv_epi32(__m256i __A, __m256i __B) {
5810   // CHECK-LABEL: @test_mm256_rolv_epi32
5811   // CHECK: @llvm.fshl.v8i32
5812   return _mm256_rolv_epi32(__A, __B);
5813 }
5814 
test_mm256_mask_rolv_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)5815 __m256i test_mm256_mask_rolv_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
5816   // CHECK-LABEL: @test_mm256_mask_rolv_epi32
5817   // CHECK: @llvm.fshl.v8i32
5818   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5819   return _mm256_mask_rolv_epi32(__W, __U, __A, __B);
5820 }
5821 
test_mm256_maskz_rolv_epi32(__mmask8 __U,__m256i __A,__m256i __B)5822 __m256i test_mm256_maskz_rolv_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
5823   // CHECK-LABEL: @test_mm256_maskz_rolv_epi32
5824   // CHECK: @llvm.fshl.v8i32
5825   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5826   return _mm256_maskz_rolv_epi32(__U, __A, __B);
5827 }
5828 
test_mm_rolv_epi64(__m128i __A,__m128i __B)5829 __m128i test_mm_rolv_epi64(__m128i __A, __m128i __B) {
5830   // CHECK-LABEL: @test_mm_rolv_epi64
5831   // CHECK: @llvm.fshl.v2i64
5832   return _mm_rolv_epi64(__A, __B);
5833 }
5834 
test_mm_mask_rolv_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)5835 __m128i test_mm_mask_rolv_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
5836   // CHECK-LABEL: @test_mm_mask_rolv_epi64
5837   // CHECK: @llvm.fshl.v2i64
5838   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5839   return _mm_mask_rolv_epi64(__W, __U, __A, __B);
5840 }
5841 
test_mm_maskz_rolv_epi64(__mmask8 __U,__m128i __A,__m128i __B)5842 __m128i test_mm_maskz_rolv_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
5843   // CHECK-LABEL: @test_mm_maskz_rolv_epi64
5844   // CHECK: @llvm.fshl.v2i64
5845   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5846   return _mm_maskz_rolv_epi64(__U, __A, __B);
5847 }
5848 
test_mm256_rolv_epi64(__m256i __A,__m256i __B)5849 __m256i test_mm256_rolv_epi64(__m256i __A, __m256i __B) {
5850   // CHECK-LABEL: @test_mm256_rolv_epi64
5851   // CHECK: @llvm.fshl.v4i64
5852   return _mm256_rolv_epi64(__A, __B);
5853 }
5854 
test_mm256_mask_rolv_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)5855 __m256i test_mm256_mask_rolv_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
5856   // CHECK-LABEL: @test_mm256_mask_rolv_epi64
5857   // CHECK: @llvm.fshl.v4i64
5858   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5859   return _mm256_mask_rolv_epi64(__W, __U, __A, __B);
5860 }
5861 
test_mm256_maskz_rolv_epi64(__mmask8 __U,__m256i __A,__m256i __B)5862 __m256i test_mm256_maskz_rolv_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
5863   // CHECK-LABEL: @test_mm256_maskz_rolv_epi64
5864   // CHECK: @llvm.fshl.v4i64
5865   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5866   return _mm256_maskz_rolv_epi64(__U, __A, __B);
5867 }
5868 
test_mm_ror_epi32(__m128i __A)5869 __m128i test_mm_ror_epi32(__m128i __A) {
5870   // CHECK-LABEL: @test_mm_ror_epi32
5871   // CHECK: @llvm.fshr.v4i32
5872   return _mm_ror_epi32(__A, 5);
5873 }
5874 
test_mm_mask_ror_epi32(__m128i __W,__mmask8 __U,__m128i __A)5875 __m128i test_mm_mask_ror_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
5876   // CHECK-LABEL: @test_mm_mask_ror_epi32
5877   // CHECK: @llvm.fshr.v4i32
5878   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5879   return _mm_mask_ror_epi32(__W, __U, __A, 5);
5880 }
5881 
test_mm_maskz_ror_epi32(__mmask8 __U,__m128i __A)5882 __m128i test_mm_maskz_ror_epi32(__mmask8 __U, __m128i __A) {
5883   // CHECK-LABEL: @test_mm_maskz_ror_epi32
5884   // CHECK: @llvm.fshr.v4i32
5885   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5886   return _mm_maskz_ror_epi32(__U, __A, 5);
5887 }
5888 
test_mm256_ror_epi32(__m256i __A)5889 __m256i test_mm256_ror_epi32(__m256i __A) {
5890   // CHECK-LABEL: @test_mm256_ror_epi32
5891   // CHECK: @llvm.fshr.v8i32
5892   return _mm256_ror_epi32(__A, 5);
5893 }
5894 
test_mm256_mask_ror_epi32(__m256i __W,__mmask8 __U,__m256i __A)5895 __m256i test_mm256_mask_ror_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
5896   // CHECK-LABEL: @test_mm256_mask_ror_epi32
5897   // CHECK: @llvm.fshr.v8i32
5898   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5899   return _mm256_mask_ror_epi32(__W, __U, __A, 5);
5900 }
5901 
test_mm256_maskz_ror_epi32(__mmask8 __U,__m256i __A)5902 __m256i test_mm256_maskz_ror_epi32(__mmask8 __U, __m256i __A) {
5903   // CHECK-LABEL: @test_mm256_maskz_ror_epi32
5904   // CHECK: @llvm.fshr.v8i32
5905   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5906   return _mm256_maskz_ror_epi32(__U, __A, 5);
5907 }
5908 
test_mm_ror_epi64(__m128i __A)5909 __m128i test_mm_ror_epi64(__m128i __A) {
5910   // CHECK-LABEL: @test_mm_ror_epi64
5911   // CHECK: @llvm.fshr.v2i64
5912   return _mm_ror_epi64(__A, 5);
5913 }
5914 
test_mm_mask_ror_epi64(__m128i __W,__mmask8 __U,__m128i __A)5915 __m128i test_mm_mask_ror_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
5916   // CHECK-LABEL: @test_mm_mask_ror_epi64
5917   // CHECK: @llvm.fshr.v2i64
5918   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5919   return _mm_mask_ror_epi64(__W, __U, __A, 5);
5920 }
5921 
test_mm_maskz_ror_epi64(__mmask8 __U,__m128i __A)5922 __m128i test_mm_maskz_ror_epi64(__mmask8 __U, __m128i __A) {
5923   // CHECK-LABEL: @test_mm_maskz_ror_epi64
5924   // CHECK: @llvm.fshr.v2i64
5925   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
5926   return _mm_maskz_ror_epi64(__U, __A, 5);
5927 }
5928 
test_mm256_ror_epi64(__m256i __A)5929 __m256i test_mm256_ror_epi64(__m256i __A) {
5930   // CHECK-LABEL: @test_mm256_ror_epi64
5931   // CHECK: @llvm.fshr.v4i64
5932   return _mm256_ror_epi64(__A, 5);
5933 }
5934 
test_mm256_mask_ror_epi64(__m256i __W,__mmask8 __U,__m256i __A)5935 __m256i test_mm256_mask_ror_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
5936   // CHECK-LABEL: @test_mm256_mask_ror_epi64
5937   // CHECK: @llvm.fshr.v4i64
5938   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5939   return _mm256_mask_ror_epi64(__W, __U, __A,5);
5940 }
5941 
test_mm256_maskz_ror_epi64(__mmask8 __U,__m256i __A)5942 __m256i test_mm256_maskz_ror_epi64(__mmask8 __U, __m256i __A) {
5943   // CHECK-LABEL: @test_mm256_maskz_ror_epi64
5944   // CHECK: @llvm.fshr.v4i64
5945   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
5946   return _mm256_maskz_ror_epi64(__U, __A, 5);
5947 }
5948 
5949 
test_mm_rorv_epi32(__m128i __A,__m128i __B)5950 __m128i test_mm_rorv_epi32(__m128i __A, __m128i __B) {
5951   // CHECK-LABEL: @test_mm_rorv_epi32
5952   // CHECK: @llvm.fshr.v4i32
5953   return _mm_rorv_epi32(__A, __B);
5954 }
5955 
test_mm_mask_rorv_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)5956 __m128i test_mm_mask_rorv_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
5957   // CHECK-LABEL: @test_mm_mask_rorv_epi32
5958   // CHECK: @llvm.fshr.v4i32
5959   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5960   return _mm_mask_rorv_epi32(__W, __U, __A, __B);
5961 }
5962 
test_mm_maskz_rorv_epi32(__mmask8 __U,__m128i __A,__m128i __B)5963 __m128i test_mm_maskz_rorv_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
5964   // CHECK-LABEL: @test_mm_maskz_rorv_epi32
5965   // CHECK: @llvm.fshr.v4i32
5966   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
5967   return _mm_maskz_rorv_epi32(__U, __A, __B);
5968 }
5969 
test_mm256_rorv_epi32(__m256i __A,__m256i __B)5970 __m256i test_mm256_rorv_epi32(__m256i __A, __m256i __B) {
5971   // CHECK-LABEL: @test_mm256_rorv_epi32
5972   // CHECK: @llvm.fshr.v8i32
5973   return _mm256_rorv_epi32(__A, __B);
5974 }
5975 
test_mm256_mask_rorv_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)5976 __m256i test_mm256_mask_rorv_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
5977   // CHECK-LABEL: @test_mm256_mask_rorv_epi32
5978   // CHECK: @llvm.fshr.v8i32
5979   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5980   return _mm256_mask_rorv_epi32(__W, __U, __A, __B);
5981 }
5982 
test_mm256_maskz_rorv_epi32(__mmask8 __U,__m256i __A,__m256i __B)5983 __m256i test_mm256_maskz_rorv_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
5984   // CHECK-LABEL: @test_mm256_maskz_rorv_epi32
5985   // CHECK: @llvm.fshr.v8i32
5986   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
5987   return _mm256_maskz_rorv_epi32(__U, __A, __B);
5988 }
5989 
test_mm_rorv_epi64(__m128i __A,__m128i __B)5990 __m128i test_mm_rorv_epi64(__m128i __A, __m128i __B) {
5991   // CHECK-LABEL: @test_mm_rorv_epi64
5992   // CHECK: @llvm.fshr.v2i64
5993   return _mm_rorv_epi64(__A, __B);
5994 }
5995 
test_mm_mask_rorv_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)5996 __m128i test_mm_mask_rorv_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
5997   // CHECK-LABEL: @test_mm_mask_rorv_epi64
5998   // CHECK: @llvm.fshr.v2i64
5999   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6000   return _mm_mask_rorv_epi64(__W, __U, __A, __B);
6001 }
6002 
test_mm_maskz_rorv_epi64(__mmask8 __U,__m128i __A,__m128i __B)6003 __m128i test_mm_maskz_rorv_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
6004   // CHECK-LABEL: @test_mm_maskz_rorv_epi64
6005   // CHECK: @llvm.fshr.v2i64
6006   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6007   return _mm_maskz_rorv_epi64(__U, __A, __B);
6008 }
6009 
test_mm256_rorv_epi64(__m256i __A,__m256i __B)6010 __m256i test_mm256_rorv_epi64(__m256i __A, __m256i __B) {
6011   // CHECK-LABEL: @test_mm256_rorv_epi64
6012   // CHECK: @llvm.fshr.v4i64
6013   return _mm256_rorv_epi64(__A, __B);
6014 }
6015 
test_mm256_mask_rorv_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)6016 __m256i test_mm256_mask_rorv_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
6017   // CHECK-LABEL: @test_mm256_mask_rorv_epi64
6018   // CHECK: @llvm.fshr.v4i64
6019   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6020   return _mm256_mask_rorv_epi64(__W, __U, __A, __B);
6021 }
6022 
test_mm256_maskz_rorv_epi64(__mmask8 __U,__m256i __A,__m256i __B)6023 __m256i test_mm256_maskz_rorv_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
6024   // CHECK-LABEL: @test_mm256_maskz_rorv_epi64
6025   // CHECK: @llvm.fshr.v4i64
6026   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6027   return _mm256_maskz_rorv_epi64(__U, __A, __B);
6028 }
6029 
test_mm_mask_sllv_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6030 __m128i test_mm_mask_sllv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6031   // CHECK-LABEL: @test_mm_mask_sllv_epi64
6032   // CHECK: @llvm.x86.avx2.psllv.q
6033   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6034   return _mm_mask_sllv_epi64(__W, __U, __X, __Y);
6035 }
6036 
test_mm_maskz_sllv_epi64(__mmask8 __U,__m128i __X,__m128i __Y)6037 __m128i test_mm_maskz_sllv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
6038   // CHECK-LABEL: @test_mm_maskz_sllv_epi64
6039   // CHECK: @llvm.x86.avx2.psllv.q
6040   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6041   return _mm_maskz_sllv_epi64(__U, __X, __Y);
6042 }
6043 
test_mm256_mask_sllv_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6044 __m256i test_mm256_mask_sllv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6045   // CHECK-LABEL: @test_mm256_mask_sllv_epi64
6046   // CHECK: @llvm.x86.avx2.psllv.q.256
6047   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6048   return _mm256_mask_sllv_epi64(__W, __U, __X, __Y);
6049 }
6050 
test_mm256_maskz_sllv_epi64(__mmask8 __U,__m256i __X,__m256i __Y)6051 __m256i test_mm256_maskz_sllv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
6052   // CHECK-LABEL: @test_mm256_maskz_sllv_epi64
6053   // CHECK: @llvm.x86.avx2.psllv.q.256
6054   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6055   return _mm256_maskz_sllv_epi64(__U, __X, __Y);
6056 }
6057 
test_mm_mask_sllv_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6058 __m128i test_mm_mask_sllv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6059   // CHECK-LABEL: @test_mm_mask_sllv_epi32
6060   // CHECK: @llvm.x86.avx2.psllv.d
6061   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6062   return _mm_mask_sllv_epi32(__W, __U, __X, __Y);
6063 }
6064 
test_mm_maskz_sllv_epi32(__mmask8 __U,__m128i __X,__m128i __Y)6065 __m128i test_mm_maskz_sllv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
6066   // CHECK-LABEL: @test_mm_maskz_sllv_epi32
6067   // CHECK: @llvm.x86.avx2.psllv.d
6068   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6069   return _mm_maskz_sllv_epi32(__U, __X, __Y);
6070 }
6071 
test_mm256_mask_sllv_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6072 __m256i test_mm256_mask_sllv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6073   // CHECK-LABEL: @test_mm256_mask_sllv_epi32
6074   // CHECK: @llvm.x86.avx2.psllv.d.256
6075   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6076   return _mm256_mask_sllv_epi32(__W, __U, __X, __Y);
6077 }
6078 
test_mm256_maskz_sllv_epi32(__mmask8 __U,__m256i __X,__m256i __Y)6079 __m256i test_mm256_maskz_sllv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
6080   // CHECK-LABEL: @test_mm256_maskz_sllv_epi32
6081   // CHECK: @llvm.x86.avx2.psllv.d.256
6082   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6083   return _mm256_maskz_sllv_epi32(__U, __X, __Y);
6084 }
6085 
test_mm_mask_srlv_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6086 __m128i test_mm_mask_srlv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6087   // CHECK-LABEL: @test_mm_mask_srlv_epi64
6088   // CHECK: @llvm.x86.avx2.psrlv.q
6089   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6090   return _mm_mask_srlv_epi64(__W, __U, __X, __Y);
6091 }
6092 
test_mm_maskz_srlv_epi64(__mmask8 __U,__m128i __X,__m128i __Y)6093 __m128i test_mm_maskz_srlv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
6094   // CHECK-LABEL: @test_mm_maskz_srlv_epi64
6095   // CHECK: @llvm.x86.avx2.psrlv.q
6096   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6097   return _mm_maskz_srlv_epi64(__U, __X, __Y);
6098 }
6099 
test_mm256_mask_srlv_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6100 __m256i test_mm256_mask_srlv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6101   // CHECK-LABEL: @test_mm256_mask_srlv_epi64
6102   // CHECK: @llvm.x86.avx2.psrlv.q.256
6103   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6104   return _mm256_mask_srlv_epi64(__W, __U, __X, __Y);
6105 }
6106 
test_mm256_maskz_srlv_epi64(__mmask8 __U,__m256i __X,__m256i __Y)6107 __m256i test_mm256_maskz_srlv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
6108   // CHECK-LABEL: @test_mm256_maskz_srlv_epi64
6109   // CHECK: @llvm.x86.avx2.psrlv.q.256
6110   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6111   return _mm256_maskz_srlv_epi64(__U, __X, __Y);
6112 }
6113 
test_mm_mask_srlv_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6114 __m128i test_mm_mask_srlv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6115   // CHECK-LABEL: @test_mm_mask_srlv_epi32
6116   // CHECK: @llvm.x86.avx2.psrlv.d
6117   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6118   return _mm_mask_srlv_epi32(__W, __U, __X, __Y);
6119 }
6120 
test_mm_maskz_srlv_epi32(__mmask8 __U,__m128i __X,__m128i __Y)6121 __m128i test_mm_maskz_srlv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
6122   // CHECK-LABEL: @test_mm_maskz_srlv_epi32
6123   // CHECK: @llvm.x86.avx2.psrlv.d
6124   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6125   return _mm_maskz_srlv_epi32(__U, __X, __Y);
6126 }
6127 
test_mm256_mask_srlv_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6128 __m256i test_mm256_mask_srlv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6129   // CHECK-LABEL: @test_mm256_mask_srlv_epi32
6130   // CHECK: @llvm.x86.avx2.psrlv.d.256
6131   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6132   return _mm256_mask_srlv_epi32(__W, __U, __X, __Y);
6133 }
6134 
test_mm256_maskz_srlv_epi32(__mmask8 __U,__m256i __X,__m256i __Y)6135 __m256i test_mm256_maskz_srlv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
6136   // CHECK-LABEL: @test_mm256_maskz_srlv_epi32
6137   // CHECK: @llvm.x86.avx2.psrlv.d.256
6138   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6139   return _mm256_maskz_srlv_epi32(__U, __X, __Y);
6140 }
6141 
test_mm_mask_srl_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6142 __m128i test_mm_mask_srl_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6143   // CHECK-LABEL: @test_mm_mask_srl_epi32
6144   // CHECK: @llvm.x86.sse2.psrl.d
6145   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6146   return _mm_mask_srl_epi32(__W, __U, __A, __B);
6147 }
6148 
test_mm_maskz_srl_epi32(__mmask8 __U,__m128i __A,__m128i __B)6149 __m128i test_mm_maskz_srl_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
6150   // CHECK-LABEL: @test_mm_maskz_srl_epi32
6151   // CHECK: @llvm.x86.sse2.psrl.d
6152   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6153   return _mm_maskz_srl_epi32(__U, __A, __B);
6154 }
6155 
test_mm256_mask_srl_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6156 __m256i test_mm256_mask_srl_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6157   // CHECK-LABEL: @test_mm256_mask_srl_epi32
6158   // CHECK: @llvm.x86.avx2.psrl.d
6159   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6160   return _mm256_mask_srl_epi32(__W, __U, __A, __B);
6161 }
6162 
test_mm256_maskz_srl_epi32(__mmask8 __U,__m256i __A,__m128i __B)6163 __m256i test_mm256_maskz_srl_epi32(__mmask8 __U, __m256i __A, __m128i __B) {
6164   // CHECK-LABEL: @test_mm256_maskz_srl_epi32
6165   // CHECK: @llvm.x86.avx2.psrl.d
6166   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6167   return _mm256_maskz_srl_epi32(__U, __A, __B);
6168 }
6169 
test_mm_mask_srli_epi32(__m128i __W,__mmask8 __U,__m128i __A)6170 __m128i test_mm_mask_srli_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
6171   // CHECK-LABEL: @test_mm_mask_srli_epi32
6172   // CHECK: @llvm.x86.sse2.psrli.d
6173   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6174   return _mm_mask_srli_epi32(__W, __U, __A, 5);
6175 }
6176 
test_mm_mask_srli_epi32_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)6177 __m128i test_mm_mask_srli_epi32_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
6178   // CHECK-LABEL: @test_mm_mask_srli_epi32_2
6179   // CHECK: @llvm.x86.sse2.psrli.d
6180   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6181   return _mm_mask_srli_epi32(__W, __U, __A, __B);
6182 }
6183 
test_mm_maskz_srli_epi32(__mmask8 __U,__m128i __A)6184 __m128i test_mm_maskz_srli_epi32(__mmask8 __U, __m128i __A) {
6185   // CHECK-LABEL: @test_mm_maskz_srli_epi32
6186   // CHECK: @llvm.x86.sse2.psrli.d
6187   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6188   return _mm_maskz_srli_epi32(__U, __A, 5);
6189 }
6190 
test_mm_maskz_srli_epi32_2(__mmask8 __U,__m128i __A,unsigned int __B)6191 __m128i test_mm_maskz_srli_epi32_2(__mmask8 __U, __m128i __A, unsigned int __B) {
6192   // CHECK-LABEL: @test_mm_maskz_srli_epi32_2
6193   // CHECK: @llvm.x86.sse2.psrli.d
6194   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6195   return _mm_maskz_srli_epi32(__U, __A, __B);
6196 }
6197 
test_mm256_mask_srli_epi32(__m256i __W,__mmask8 __U,__m256i __A)6198 __m256i test_mm256_mask_srli_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
6199   // CHECK-LABEL: @test_mm256_mask_srli_epi32
6200   // CHECK: @llvm.x86.avx2.psrli.d
6201   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6202   return _mm256_mask_srli_epi32(__W, __U, __A, 5);
6203 }
6204 
test_mm256_mask_srli_epi32_2(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)6205 __m256i test_mm256_mask_srli_epi32_2(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B) {
6206   // CHECK-LABEL: @test_mm256_mask_srli_epi32_2
6207   // CHECK: @llvm.x86.avx2.psrli.d
6208   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6209   return _mm256_mask_srli_epi32(__W, __U, __A, __B);
6210 }
6211 
test_mm256_maskz_srli_epi32(__mmask8 __U,__m256i __A)6212 __m256i test_mm256_maskz_srli_epi32(__mmask8 __U, __m256i __A) {
6213   // CHECK-LABEL: @test_mm256_maskz_srli_epi32
6214   // CHECK: @llvm.x86.avx2.psrli.d
6215   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6216   return _mm256_maskz_srli_epi32(__U, __A, 5);
6217 }
6218 
test_mm256_maskz_srli_epi32_2(__mmask8 __U,__m256i __A,unsigned int __B)6219 __m256i test_mm256_maskz_srli_epi32_2(__mmask8 __U, __m256i __A, unsigned int __B) {
6220   // CHECK-LABEL: @test_mm256_maskz_srli_epi32_2
6221   // CHECK: @llvm.x86.avx2.psrli.d
6222   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6223   return _mm256_maskz_srli_epi32(__U, __A, __B);
6224 }
test_mm_mask_srl_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6225 __m128i test_mm_mask_srl_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6226   // CHECK-LABEL: @test_mm_mask_srl_epi64
6227   // CHECK: @llvm.x86.sse2.psrl.q
6228   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6229   return _mm_mask_srl_epi64(__W, __U, __A, __B);
6230 }
6231 
test_mm_maskz_srl_epi64(__mmask8 __U,__m128i __A,__m128i __B)6232 __m128i test_mm_maskz_srl_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
6233   // CHECK-LABEL: @test_mm_maskz_srl_epi64
6234   // CHECK: @llvm.x86.sse2.psrl.q
6235   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6236   return _mm_maskz_srl_epi64(__U, __A, __B);
6237 }
6238 
test_mm256_mask_srl_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6239 __m256i test_mm256_mask_srl_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6240   // CHECK-LABEL: @test_mm256_mask_srl_epi64
6241   // CHECK: @llvm.x86.avx2.psrl.q
6242   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6243   return _mm256_mask_srl_epi64(__W, __U, __A, __B);
6244 }
6245 
test_mm256_maskz_srl_epi64(__mmask8 __U,__m256i __A,__m128i __B)6246 __m256i test_mm256_maskz_srl_epi64(__mmask8 __U, __m256i __A, __m128i __B) {
6247   // CHECK-LABEL: @test_mm256_maskz_srl_epi64
6248   // CHECK: @llvm.x86.avx2.psrl.q
6249   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6250   return _mm256_maskz_srl_epi64(__U, __A, __B);
6251 }
6252 
test_mm_mask_srli_epi64(__m128i __W,__mmask8 __U,__m128i __A)6253 __m128i test_mm_mask_srli_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
6254   // CHECK-LABEL: @test_mm_mask_srli_epi64
6255   // CHECK: @llvm.x86.sse2.psrli.q
6256   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6257   return _mm_mask_srli_epi64(__W, __U, __A, 5);
6258 }
6259 
test_mm_mask_srli_epi64_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)6260 __m128i test_mm_mask_srli_epi64_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
6261   // CHECK-LABEL: @test_mm_mask_srli_epi64_2
6262   // CHECK: @llvm.x86.sse2.psrli.q
6263   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6264   return _mm_mask_srli_epi64(__W, __U, __A, __B);
6265 }
6266 
test_mm_maskz_srli_epi64(__mmask8 __U,__m128i __A)6267 __m128i test_mm_maskz_srli_epi64(__mmask8 __U, __m128i __A) {
6268   // CHECK-LABEL: @test_mm_maskz_srli_epi64
6269   // CHECK: @llvm.x86.sse2.psrli.q
6270   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6271   return _mm_maskz_srli_epi64(__U, __A, 5);
6272 }
6273 
test_mm_maskz_srli_epi64_2(__mmask8 __U,__m128i __A,unsigned int __B)6274 __m128i test_mm_maskz_srli_epi64_2(__mmask8 __U, __m128i __A, unsigned int __B) {
6275   // CHECK-LABEL: @test_mm_maskz_srli_epi64_2
6276   // CHECK: @llvm.x86.sse2.psrli.q
6277   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6278   return _mm_maskz_srli_epi64(__U, __A, __B);
6279 }
6280 
test_mm256_mask_srli_epi64(__m256i __W,__mmask8 __U,__m256i __A)6281 __m256i test_mm256_mask_srli_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
6282   // CHECK-LABEL: @test_mm256_mask_srli_epi64
6283   // CHECK: @llvm.x86.avx2.psrli.q
6284   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6285   return _mm256_mask_srli_epi64(__W, __U, __A, 5);
6286 }
6287 
test_mm256_mask_srli_epi64_2(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)6288 __m256i test_mm256_mask_srli_epi64_2(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B) {
6289   // CHECK-LABEL: @test_mm256_mask_srli_epi64_2
6290   // CHECK: @llvm.x86.avx2.psrli.q
6291   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6292   return _mm256_mask_srli_epi64(__W, __U, __A, __B);
6293 }
6294 
test_mm256_maskz_srli_epi64(__mmask8 __U,__m256i __A)6295 __m256i test_mm256_maskz_srli_epi64(__mmask8 __U, __m256i __A) {
6296   // CHECK-LABEL: @test_mm256_maskz_srli_epi64
6297   // CHECK: @llvm.x86.avx2.psrli.q
6298   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6299   return _mm256_maskz_srli_epi64(__U, __A, 5);
6300 }
6301 
test_mm256_maskz_srli_epi64_2(__mmask8 __U,__m256i __A,unsigned int __B)6302 __m256i test_mm256_maskz_srli_epi64_2(__mmask8 __U,__m256i __A, unsigned int __B) {
6303   // CHECK-LABEL: @test_mm256_maskz_srli_epi64_2
6304   // CHECK: @llvm.x86.avx2.psrli.q
6305   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6306   return _mm256_maskz_srli_epi64(__U, __A, __B);
6307 }
6308 
test_mm_mask_sll_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6309 __m128i test_mm_mask_sll_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6310   // CHECK-LABEL: @test_mm_mask_sll_epi32
6311   // CHECK: @llvm.x86.sse2.psll.d
6312   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6313   return _mm_mask_sll_epi32(__W, __U, __A, __B);
6314 }
6315 
test_mm_maskz_sll_epi32(__mmask8 __U,__m128i __A,__m128i __B)6316 __m128i test_mm_maskz_sll_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
6317   // CHECK-LABEL: @test_mm_maskz_sll_epi32
6318   // CHECK: @llvm.x86.sse2.psll.d
6319   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6320   return _mm_maskz_sll_epi32(__U, __A, __B);
6321 }
6322 
test_mm256_mask_sll_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6323 __m256i test_mm256_mask_sll_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6324   // CHECK-LABEL: @test_mm256_mask_sll_epi32
6325   // CHECK: @llvm.x86.avx2.psll.d
6326   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6327   return _mm256_mask_sll_epi32(__W, __U, __A, __B);
6328 }
6329 
test_mm256_maskz_sll_epi32(__mmask8 __U,__m256i __A,__m128i __B)6330 __m256i test_mm256_maskz_sll_epi32(__mmask8 __U, __m256i __A, __m128i __B) {
6331   // CHECK-LABEL: @test_mm256_maskz_sll_epi32
6332   // CHECK: @llvm.x86.avx2.psll.d
6333   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6334   return _mm256_maskz_sll_epi32(__U, __A, __B);
6335 }
6336 
test_mm_mask_slli_epi32(__m128i __W,__mmask8 __U,__m128i __A)6337 __m128i test_mm_mask_slli_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
6338   // CHECK-LABEL: @test_mm_mask_slli_epi32
6339   // CHECK: @llvm.x86.sse2.pslli.d
6340   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6341   return _mm_mask_slli_epi32(__W, __U, __A, 5);
6342 }
6343 
test_mm_mask_slli_epi32_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)6344 __m128i test_mm_mask_slli_epi32_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
6345   // CHECK-LABEL: @test_mm_mask_slli_epi32_2
6346   // CHECK: @llvm.x86.sse2.pslli.d
6347   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6348   return _mm_mask_slli_epi32(__W, __U, __A, __B);
6349 }
6350 
test_mm_maskz_slli_epi32(__mmask8 __U,__m128i __A)6351 __m128i test_mm_maskz_slli_epi32(__mmask8 __U, __m128i __A) {
6352   // CHECK-LABEL: @test_mm_maskz_slli_epi32
6353   // CHECK: @llvm.x86.sse2.pslli.d
6354   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6355   return _mm_maskz_slli_epi32(__U, __A, 5);
6356 }
6357 
test_mm_maskz_slli_epi32_2(__mmask8 __U,__m128i __A,unsigned int __B)6358 __m128i test_mm_maskz_slli_epi32_2(__mmask8 __U, __m128i __A, unsigned int __B) {
6359   // CHECK-LABEL: @test_mm_maskz_slli_epi32_2
6360   // CHECK: @llvm.x86.sse2.pslli.d
6361   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6362   return _mm_maskz_slli_epi32(__U, __A, __B);
6363 }
6364 
test_mm256_mask_slli_epi32(__m256i __W,__mmask8 __U,__m256i __A)6365 __m256i test_mm256_mask_slli_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
6366   // CHECK-LABEL: @test_mm256_mask_slli_epi32
6367   // CHECK: @llvm.x86.avx2.pslli.d
6368   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6369   return _mm256_mask_slli_epi32(__W, __U, __A, 5);
6370 }
6371 
test_mm256_mask_slli_epi32_2(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)6372 __m256i test_mm256_mask_slli_epi32_2(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B) {
6373   // CHECK-LABEL: @test_mm256_mask_slli_epi32_2
6374   // CHECK: @llvm.x86.avx2.pslli.d
6375   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6376   return _mm256_mask_slli_epi32(__W, __U, __A, __B);
6377 }
6378 
test_mm256_maskz_slli_epi32(__mmask8 __U,__m256i __A)6379 __m256i test_mm256_maskz_slli_epi32(__mmask8 __U, __m256i __A) {
6380   // CHECK-LABEL: @test_mm256_maskz_slli_epi32
6381   // CHECK: @llvm.x86.avx2.pslli.d
6382   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6383   return _mm256_maskz_slli_epi32(__U, __A, 5);
6384 }
6385 
test_mm256_maskz_slli_epi32_2(__mmask8 __U,__m256i __A,unsigned int __B)6386 __m256i test_mm256_maskz_slli_epi32_2(__mmask8 __U, __m256i __A, unsigned int __B) {
6387   // CHECK-LABEL: @test_mm256_maskz_slli_epi32_2
6388   // CHECK: @llvm.x86.avx2.pslli.d
6389   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6390   return _mm256_maskz_slli_epi32(__U, __A, __B);
6391 }
6392 
test_mm_mask_sll_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6393 __m128i test_mm_mask_sll_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
6394   // CHECK-LABEL: @test_mm_mask_sll_epi64
6395   // CHECK: @llvm.x86.sse2.psll.q
6396   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6397   return _mm_mask_sll_epi64(__W, __U, __A, __B);
6398 }
6399 
test_mm_maskz_sll_epi64(__mmask8 __U,__m128i __A,__m128i __B)6400 __m128i test_mm_maskz_sll_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
6401   // CHECK-LABEL: @test_mm_maskz_sll_epi64
6402   // CHECK: @llvm.x86.sse2.psll.q
6403   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6404   return _mm_maskz_sll_epi64(__U, __A, __B);
6405 }
6406 
test_mm256_mask_sll_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6407 __m256i test_mm256_mask_sll_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
6408   // CHECK-LABEL: @test_mm256_mask_sll_epi64
6409   // CHECK: @llvm.x86.avx2.psll.q
6410   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6411   return _mm256_mask_sll_epi64(__W, __U, __A, __B);
6412 }
6413 
test_mm256_maskz_sll_epi64(__mmask8 __U,__m256i __A,__m128i __B)6414 __m256i test_mm256_maskz_sll_epi64(__mmask8 __U, __m256i __A, __m128i __B) {
6415   // CHECK-LABEL: @test_mm256_maskz_sll_epi64
6416   // CHECK: @llvm.x86.avx2.psll.q
6417   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6418   return _mm256_maskz_sll_epi64(__U, __A, __B);
6419 }
6420 
test_mm_mask_slli_epi64(__m128i __W,__mmask8 __U,__m128i __A)6421 __m128i test_mm_mask_slli_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
6422   // CHECK-LABEL: @test_mm_mask_slli_epi64
6423   // CHECK: @llvm.x86.sse2.pslli.q
6424   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6425   return _mm_mask_slli_epi64(__W, __U, __A, 5);
6426 }
6427 
test_mm_mask_slli_epi64_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)6428 __m128i test_mm_mask_slli_epi64_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
6429   // CHECK-LABEL: @test_mm_mask_slli_epi64_2
6430   // CHECK: @llvm.x86.sse2.pslli.q
6431   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6432   return _mm_mask_slli_epi64(__W, __U, __A, __B);
6433 }
6434 
test_mm_maskz_slli_epi64(__mmask8 __U,__m128i __A)6435 __m128i test_mm_maskz_slli_epi64(__mmask8 __U, __m128i __A) {
6436   // CHECK-LABEL: @test_mm_maskz_slli_epi64
6437   // CHECK: @llvm.x86.sse2.pslli.q
6438   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6439   return _mm_maskz_slli_epi64(__U, __A, 5);
6440 }
6441 
test_mm_maskz_slli_epi64_2(__mmask8 __U,__m128i __A,unsigned int __B)6442 __m128i test_mm_maskz_slli_epi64_2(__mmask8 __U, __m128i __A, unsigned int __B) {
6443   // CHECK-LABEL: @test_mm_maskz_slli_epi64_2
6444   // CHECK: @llvm.x86.sse2.pslli.q
6445   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6446   return _mm_maskz_slli_epi64(__U, __A, __B);
6447 }
6448 
test_mm256_mask_slli_epi64(__m256i __W,__mmask8 __U,__m256i __A)6449 __m256i test_mm256_mask_slli_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
6450   // CHECK-LABEL: @test_mm256_mask_slli_epi64
6451   // CHECK: @llvm.x86.avx2.pslli.q
6452   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6453   return _mm256_mask_slli_epi64(__W, __U, __A, 5);
6454 }
6455 
test_mm256_mask_slli_epi64_2(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)6456 __m256i test_mm256_mask_slli_epi64_2(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B) {
6457   // CHECK-LABEL: @test_mm256_mask_slli_epi64_2
6458   // CHECK: @llvm.x86.avx2.pslli.q
6459   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6460   return _mm256_mask_slli_epi64(__W, __U, __A, __B);
6461 }
6462 
test_mm256_maskz_slli_epi64(__mmask8 __U,__m256i __A)6463 __m256i test_mm256_maskz_slli_epi64(__mmask8 __U, __m256i __A) {
6464   // CHECK-LABEL: @test_mm256_maskz_slli_epi64
6465   // CHECK: @llvm.x86.avx2.pslli.q
6466   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6467   return _mm256_maskz_slli_epi64(__U, __A, 5);
6468 }
6469 
test_mm256_maskz_slli_epi64_2(__mmask8 __U,__m256i __A,unsigned int __B)6470 __m256i test_mm256_maskz_slli_epi64_2(__mmask8 __U, __m256i __A, unsigned int __B) {
6471   // CHECK-LABEL: @test_mm256_maskz_slli_epi64_2
6472   // CHECK: @llvm.x86.avx2.pslli.q
6473   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6474   return _mm256_maskz_slli_epi64(__U, __A, __B);
6475 }
6476 
test_mm_mask_srav_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6477 __m128i test_mm_mask_srav_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6478   // CHECK-LABEL: @test_mm_mask_srav_epi32
6479   // CHECK: @llvm.x86.avx2.psrav.d
6480   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6481   return _mm_mask_srav_epi32(__W, __U, __X, __Y);
6482 }
6483 
test_mm_maskz_srav_epi32(__mmask8 __U,__m128i __X,__m128i __Y)6484 __m128i test_mm_maskz_srav_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
6485   // CHECK-LABEL: @test_mm_maskz_srav_epi32
6486   // CHECK: @llvm.x86.avx2.psrav.d
6487   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6488   return _mm_maskz_srav_epi32(__U, __X, __Y);
6489 }
6490 
test_mm256_mask_srav_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6491 __m256i test_mm256_mask_srav_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6492   // CHECK-LABEL: @test_mm256_mask_srav_epi32
6493   // CHECK: @llvm.x86.avx2.psrav.d.256
6494   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6495   return _mm256_mask_srav_epi32(__W, __U, __X, __Y);
6496 }
6497 
test_mm256_maskz_srav_epi32(__mmask8 __U,__m256i __X,__m256i __Y)6498 __m256i test_mm256_maskz_srav_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
6499   // CHECK-LABEL: @test_mm256_maskz_srav_epi32
6500   // CHECK: @llvm.x86.avx2.psrav.d.256
6501   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6502   return _mm256_maskz_srav_epi32(__U, __X, __Y);
6503 }
6504 
test_mm_srav_epi64(__m128i __X,__m128i __Y)6505 __m128i test_mm_srav_epi64(__m128i __X, __m128i __Y) {
6506   // CHECK-LABEL: @test_mm_srav_epi64
6507   // CHECK: @llvm.x86.avx512.psrav.q.128
6508   return _mm_srav_epi64(__X, __Y);
6509 }
6510 
test_mm_mask_srav_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)6511 __m128i test_mm_mask_srav_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
6512   // CHECK-LABEL: @test_mm_mask_srav_epi64
6513   // CHECK: @llvm.x86.avx512.psrav.q.128
6514   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6515   return _mm_mask_srav_epi64(__W, __U, __X, __Y);
6516 }
6517 
test_mm_maskz_srav_epi64(__mmask8 __U,__m128i __X,__m128i __Y)6518 __m128i test_mm_maskz_srav_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
6519   // CHECK-LABEL: @test_mm_maskz_srav_epi64
6520   // CHECK: @llvm.x86.avx512.psrav.q.128
6521   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6522   return _mm_maskz_srav_epi64(__U, __X, __Y);
6523 }
6524 
test_mm256_srav_epi64(__m256i __X,__m256i __Y)6525 __m256i test_mm256_srav_epi64(__m256i __X, __m256i __Y) {
6526   // CHECK-LABEL: @test_mm256_srav_epi64
6527   // CHECK: @llvm.x86.avx512.psrav.q.256
6528   return _mm256_srav_epi64(__X, __Y);
6529 }
6530 
test_mm256_mask_srav_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)6531 __m256i test_mm256_mask_srav_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
6532   // CHECK-LABEL: @test_mm256_mask_srav_epi64
6533   // CHECK: @llvm.x86.avx512.psrav.q.256
6534   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6535   return _mm256_mask_srav_epi64(__W, __U, __X, __Y);
6536 }
6537 
test_mm256_maskz_srav_epi64(__mmask8 __U,__m256i __X,__m256i __Y)6538 __m256i test_mm256_maskz_srav_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
6539   // CHECK-LABEL: @test_mm256_maskz_srav_epi64
6540   // CHECK: @llvm.x86.avx512.psrav.q.256
6541   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6542   return _mm256_maskz_srav_epi64(__U, __X, __Y);
6543 }
6544 
test_mm_store_epi32(void * __P,__m128i __A)6545 void test_mm_store_epi32(void *__P, __m128i __A) {
6546   // CHECK-LABEL: @test_mm_store_epi32
6547   // CHECK: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}
6548   return _mm_store_epi32(__P, __A);
6549 }
6550 
test_mm_mask_store_epi32(void * __P,__mmask8 __U,__m128i __A)6551 void test_mm_mask_store_epi32(void *__P, __mmask8 __U, __m128i __A) {
6552   // CHECK-LABEL: @test_mm_mask_store_epi32
6553   // CHECK: @llvm.masked.store.v4i32.p0v4i32(<4 x i32> %{{.*}}, <4 x i32>* %{{.}}, i32 16, <4 x i1> %{{.*}})
6554   return _mm_mask_store_epi32(__P, __U, __A);
6555 }
6556 
test_mm256_store_epi32(void * __P,__m256i __A)6557 void test_mm256_store_epi32(void *__P, __m256i __A) {
6558   // CHECK-LABEL: @test_mm256_store_epi32
6559   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}
6560   return _mm256_store_epi32(__P, __A);
6561 }
6562 
test_mm256_mask_store_epi32(void * __P,__mmask8 __U,__m256i __A)6563 void test_mm256_mask_store_epi32(void *__P, __mmask8 __U, __m256i __A) {
6564   // CHECK-LABEL: @test_mm256_mask_store_epi32
6565   // CHECK: @llvm.masked.store.v8i32.p0v8i32(<8 x i32> %{{.*}}, <8 x i32>* %{{.}}, i32 32, <8 x i1> %{{.*}})
6566   return _mm256_mask_store_epi32(__P, __U, __A);
6567 }
6568 
test_mm_mask_mov_epi32(__m128i __W,__mmask8 __U,__m128i __A)6569 __m128i test_mm_mask_mov_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
6570   // CHECK-LABEL: @test_mm_mask_mov_epi32
6571   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6572   return _mm_mask_mov_epi32(__W, __U, __A);
6573 }
6574 
test_mm_maskz_mov_epi32(__mmask8 __U,__m128i __A)6575 __m128i test_mm_maskz_mov_epi32(__mmask8 __U, __m128i __A) {
6576   // CHECK-LABEL: @test_mm_maskz_mov_epi32
6577   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6578   return _mm_maskz_mov_epi32(__U, __A);
6579 }
6580 
test_mm256_mask_mov_epi32(__m256i __W,__mmask8 __U,__m256i __A)6581 __m256i test_mm256_mask_mov_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
6582   // CHECK-LABEL: @test_mm256_mask_mov_epi32
6583   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6584   return _mm256_mask_mov_epi32(__W, __U, __A);
6585 }
6586 
test_mm256_maskz_mov_epi32(__mmask8 __U,__m256i __A)6587 __m256i test_mm256_maskz_mov_epi32(__mmask8 __U, __m256i __A) {
6588   // CHECK-LABEL: @test_mm256_maskz_mov_epi32
6589   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6590   return _mm256_maskz_mov_epi32(__U, __A);
6591 }
6592 
test_mm_mask_mov_epi64(__m128i __W,__mmask8 __U,__m128i __A)6593 __m128i test_mm_mask_mov_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
6594   // CHECK-LABEL: @test_mm_mask_mov_epi64
6595   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6596   return _mm_mask_mov_epi64(__W, __U, __A);
6597 }
6598 
test_mm_maskz_mov_epi64(__mmask8 __U,__m128i __A)6599 __m128i test_mm_maskz_mov_epi64(__mmask8 __U, __m128i __A) {
6600   // CHECK-LABEL: @test_mm_maskz_mov_epi64
6601   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6602   return _mm_maskz_mov_epi64(__U, __A);
6603 }
6604 
test_mm256_mask_mov_epi64(__m256i __W,__mmask8 __U,__m256i __A)6605 __m256i test_mm256_mask_mov_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
6606   // CHECK-LABEL: @test_mm256_mask_mov_epi64
6607   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6608   return _mm256_mask_mov_epi64(__W, __U, __A);
6609 }
6610 
test_mm256_maskz_mov_epi64(__mmask8 __U,__m256i __A)6611 __m256i test_mm256_maskz_mov_epi64(__mmask8 __U, __m256i __A) {
6612   // CHECK-LABEL: @test_mm256_maskz_mov_epi64
6613   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6614   return _mm256_maskz_mov_epi64(__U, __A);
6615 }
6616 
test_mm_load_epi32(void const * __P)6617 __m128i test_mm_load_epi32(void const *__P) {
6618   // CHECK-LABEL: @test_mm_load_epi32
6619   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}
6620   return _mm_load_epi32(__P);
6621 }
6622 
test_mm_mask_load_epi32(__m128i __W,__mmask8 __U,void const * __P)6623 __m128i test_mm_mask_load_epi32(__m128i __W, __mmask8 __U, void const *__P) {
6624   // CHECK-LABEL: @test_mm_mask_load_epi32
6625   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
6626   return _mm_mask_load_epi32(__W, __U, __P);
6627 }
6628 
test_mm_maskz_load_epi32(__mmask8 __U,void const * __P)6629 __m128i test_mm_maskz_load_epi32(__mmask8 __U, void const *__P) {
6630   // CHECK-LABEL: @test_mm_maskz_load_epi32
6631   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
6632   return _mm_maskz_load_epi32(__U, __P);
6633 }
6634 
test_mm256_load_epi32(void const * __P)6635 __m256i test_mm256_load_epi32(void const *__P) {
6636   // CHECK-LABEL: @test_mm256_load_epi32
6637   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}
6638   return _mm256_load_epi32(__P);
6639 }
6640 
test_mm256_mask_load_epi32(__m256i __W,__mmask8 __U,void const * __P)6641 __m256i test_mm256_mask_load_epi32(__m256i __W, __mmask8 __U, void const *__P) {
6642   // CHECK-LABEL: @test_mm256_mask_load_epi32
6643   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
6644   return _mm256_mask_load_epi32(__W, __U, __P);
6645 }
6646 
test_mm256_maskz_load_epi32(__mmask8 __U,void const * __P)6647 __m256i test_mm256_maskz_load_epi32(__mmask8 __U, void const *__P) {
6648   // CHECK-LABEL: @test_mm256_maskz_load_epi32
6649   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
6650   return _mm256_maskz_load_epi32(__U, __P);
6651 }
6652 
test_mm_load_epi64(void const * __P)6653 __m128i test_mm_load_epi64(void const *__P) {
6654   // CHECK-LABEL: @test_mm_load_epi64
6655   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}
6656   return _mm_load_epi64(__P);
6657 }
6658 
test_mm_mask_load_epi64(__m128i __W,__mmask8 __U,void const * __P)6659 __m128i test_mm_mask_load_epi64(__m128i __W, __mmask8 __U, void const *__P) {
6660   // CHECK-LABEL: @test_mm_mask_load_epi64
6661   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
6662   return _mm_mask_load_epi64(__W, __U, __P);
6663 }
6664 
test_mm_maskz_load_epi64(__mmask8 __U,void const * __P)6665 __m128i test_mm_maskz_load_epi64(__mmask8 __U, void const *__P) {
6666   // CHECK-LABEL: @test_mm_maskz_load_epi64
6667   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
6668   return _mm_maskz_load_epi64(__U, __P);
6669 }
6670 
test_mm256_load_epi64(void const * __P)6671 __m256i test_mm256_load_epi64(void const *__P) {
6672   // CHECK-LABEL: @test_mm256_load_epi64
6673   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}
6674   return _mm256_load_epi64(__P);
6675 }
6676 
test_mm256_mask_load_epi64(__m256i __W,__mmask8 __U,void const * __P)6677 __m256i test_mm256_mask_load_epi64(__m256i __W, __mmask8 __U, void const *__P) {
6678   // CHECK-LABEL: @test_mm256_mask_load_epi64
6679   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
6680   return _mm256_mask_load_epi64(__W, __U, __P);
6681 }
6682 
test_mm256_maskz_load_epi64(__mmask8 __U,void const * __P)6683 __m256i test_mm256_maskz_load_epi64(__mmask8 __U, void const *__P) {
6684   // CHECK-LABEL: @test_mm256_maskz_load_epi64
6685   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
6686   return _mm256_maskz_load_epi64(__U, __P);
6687 }
6688 
test_mm_store_epi64(void * __P,__m128i __A)6689 void test_mm_store_epi64(void *__P, __m128i __A) {
6690   // CHECK-LABEL: @test_mm_store_epi64
6691   // CHECK: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}
6692   return _mm_store_epi64(__P, __A);
6693 }
6694 
test_mm_mask_store_epi64(void * __P,__mmask8 __U,__m128i __A)6695 void test_mm_mask_store_epi64(void *__P, __mmask8 __U, __m128i __A) {
6696   // CHECK-LABEL: @test_mm_mask_store_epi64
6697   // CHECK: @llvm.masked.store.v2i64.p0v2i64(<2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}})
6698   return _mm_mask_store_epi64(__P, __U, __A);
6699 }
6700 
test_mm256_store_epi64(void * __P,__m256i __A)6701 void test_mm256_store_epi64(void *__P, __m256i __A) {
6702   // CHECK-LABEL: @test_mm256_store_epi64
6703   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}
6704   return _mm256_store_epi64(__P, __A);
6705 }
6706 
test_mm256_mask_store_epi64(void * __P,__mmask8 __U,__m256i __A)6707 void test_mm256_mask_store_epi64(void *__P, __mmask8 __U, __m256i __A) {
6708   // CHECK-LABEL: @test_mm256_mask_store_epi64
6709   // CHECK: @llvm.masked.store.v4i64.p0v4i64(<4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}})
6710   return _mm256_mask_store_epi64(__P, __U, __A);
6711 }
6712 
test_mm_mask_movedup_pd(__m128d __W,__mmask8 __U,__m128d __A)6713 __m128d test_mm_mask_movedup_pd(__m128d __W, __mmask8 __U, __m128d __A) {
6714   // CHECK-LABEL: @test_mm_mask_movedup_pd
6715   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> zeroinitializer
6716   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
6717   return _mm_mask_movedup_pd(__W, __U, __A);
6718 }
6719 
test_mm_maskz_movedup_pd(__mmask8 __U,__m128d __A)6720 __m128d test_mm_maskz_movedup_pd(__mmask8 __U, __m128d __A) {
6721   // CHECK-LABEL: @test_mm_maskz_movedup_pd
6722   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> zeroinitializer
6723   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
6724   return _mm_maskz_movedup_pd(__U, __A);
6725 }
6726 
test_mm256_mask_movedup_pd(__m256d __W,__mmask8 __U,__m256d __A)6727 __m256d test_mm256_mask_movedup_pd(__m256d __W, __mmask8 __U, __m256d __A) {
6728   // CHECK-LABEL: @test_mm256_mask_movedup_pd
6729   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
6730   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
6731   return _mm256_mask_movedup_pd(__W, __U, __A);
6732 }
6733 
test_mm256_maskz_movedup_pd(__mmask8 __U,__m256d __A)6734 __m256d test_mm256_maskz_movedup_pd(__mmask8 __U, __m256d __A) {
6735   // CHECK-LABEL: @test_mm256_maskz_movedup_pd
6736   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
6737   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
6738   return _mm256_maskz_movedup_pd(__U, __A);
6739 }
6740 
test_mm_mask_set1_epi32(__m128i __O,__mmask8 __M)6741 __m128i test_mm_mask_set1_epi32(__m128i __O, __mmask8 __M) {
6742   // CHECK-LABEL: @test_mm_mask_set1_epi32
6743   // CHECK: insertelement <4 x i32> undef, i32 %{{.*}}, i32 0
6744   // CHECK: insertelement <4 x i32> %{{.*}}32 1
6745   // CHECK: insertelement <4 x i32> %{{.*}}32 2
6746   // CHECK: insertelement <4 x i32> %{{.*}}32 3
6747   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6748   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6749   return _mm_mask_set1_epi32(__O, __M, 5);
6750 }
6751 
test_mm_maskz_set1_epi32(__mmask8 __M)6752 __m128i test_mm_maskz_set1_epi32(__mmask8 __M) {
6753   // CHECK-LABEL: @test_mm_maskz_set1_epi32
6754   // CHECK: insertelement <4 x i32> undef, i32 %{{.*}}, i32 0
6755   // CHECK: insertelement <4 x i32> %{{.*}}32 1
6756   // CHECK: insertelement <4 x i32> %{{.*}}32 2
6757   // CHECK: insertelement <4 x i32> %{{.*}}32 3
6758   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6759   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
6760   return _mm_maskz_set1_epi32(__M, 5);
6761 }
6762 
test_mm256_mask_set1_epi32(__m256i __O,__mmask8 __M)6763 __m256i test_mm256_mask_set1_epi32(__m256i __O, __mmask8 __M) {
6764   // CHECK-LABEL: @test_mm256_mask_set1_epi32
6765   // CHECK:  insertelement <8 x i32> undef, i32 %{{.*}}, i32 0
6766   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 1
6767   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 2
6768   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 3
6769   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 4
6770   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 5
6771   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 6
6772   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 7
6773   // CHECK:  select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6774   return _mm256_mask_set1_epi32(__O, __M, 5);
6775 }
6776 
test_mm256_maskz_set1_epi32(__mmask8 __M)6777 __m256i test_mm256_maskz_set1_epi32(__mmask8 __M) {
6778   // CHECK-LABEL: @test_mm256_maskz_set1_epi32
6779   // CHECK:  insertelement <8 x i32> undef, i32 %{{.*}}, i32 0
6780   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 1
6781   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 2
6782   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 3
6783   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 4
6784   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 5
6785   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 6
6786   // CHECK:  insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, i32 7
6787   // CHECK:  select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
6788   return _mm256_maskz_set1_epi32(__M, 5);
6789 }
6790 
test_mm_mask_set1_epi64(__m128i __O,__mmask8 __M,long long __A)6791 __m128i test_mm_mask_set1_epi64(__m128i __O, __mmask8 __M, long long __A) {
6792   // CHECK-LABEL: @test_mm_mask_set1_epi64
6793   // CHECK: insertelement <2 x i64> undef, i64 %{{.*}}, i32 0
6794   // CHECK: insertelement <2 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6795   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
6796   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6797   return _mm_mask_set1_epi64(__O, __M, __A);
6798 }
6799 
test_mm_maskz_set1_epi64(__mmask8 __M,long long __A)6800 __m128i test_mm_maskz_set1_epi64(__mmask8 __M, long long __A) {
6801   // CHECK-LABEL: @test_mm_maskz_set1_epi64
6802   // CHECK: insertelement <2 x i64> undef, i64 %{{.*}}, i32 0
6803   // CHECK: insertelement <2 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6804   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
6805   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6806   return _mm_maskz_set1_epi64(__M, __A);
6807 }
6808 
test_mm256_mask_set1_epi64(__m256i __O,__mmask8 __M,long long __A)6809 __m256i test_mm256_mask_set1_epi64(__m256i __O, __mmask8 __M, long long __A) {
6810   // CHECK-LABEL: @test_mm256_mask_set1_epi64
6811   // CHECK: insertelement <4 x i64> undef, i64 %{{.*}}, i32 0
6812   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6813   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 2
6814   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 3
6815   // CHECK:  shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6816   // CHECK:  select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6817   return _mm256_mask_set1_epi64(__O, __M, __A);
6818 }
6819 
test_mm256_maskz_set1_epi64(__mmask8 __M,long long __A)6820 __m256i test_mm256_maskz_set1_epi64(__mmask8 __M, long long __A) {
6821   // CHECK-LABEL: @test_mm256_maskz_set1_epi64
6822   // CHECK: insertelement <4 x i64> undef, i64 %{{.*}}, i32 0
6823   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 1
6824   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 2
6825   // CHECK: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, i32 3
6826   // CHECK:  shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
6827   // CHECK:  select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
6828   return _mm256_maskz_set1_epi64(__M, __A);
6829 }
6830 
test_mm_fixupimm_pd(__m128d __A,__m128d __B,__m128i __C)6831 __m128d test_mm_fixupimm_pd(__m128d __A, __m128d __B, __m128i __C) {
6832   // CHECK-LABEL: @test_mm_fixupimm_pd
6833   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.128
6834   return _mm_fixupimm_pd(__A, __B, __C, 5);
6835 }
6836 
test_mm_mask_fixupimm_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128i __C)6837 __m128d test_mm_mask_fixupimm_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128i __C) {
6838   // CHECK-LABEL: @test_mm_mask_fixupimm_pd
6839   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.128
6840   return _mm_mask_fixupimm_pd(__A, __U, __B, __C, 5);
6841 }
6842 
test_mm_maskz_fixupimm_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128i __C)6843 __m128d test_mm_maskz_fixupimm_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128i __C) {
6844   // CHECK-LABEL: @test_mm_maskz_fixupimm_pd
6845   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.128
6846   return _mm_maskz_fixupimm_pd(__U, __A, __B, __C, 5);
6847 }
6848 
test_mm256_fixupimm_pd(__m256d __A,__m256d __B,__m256i __C)6849 __m256d test_mm256_fixupimm_pd(__m256d __A, __m256d __B, __m256i __C) {
6850   // CHECK-LABEL: @test_mm256_fixupimm_pd
6851   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.256
6852   return _mm256_fixupimm_pd(__A, __B, __C, 5);
6853 }
6854 
test_mm256_mask_fixupimm_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256i __C)6855 __m256d test_mm256_mask_fixupimm_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256i __C) {
6856   // CHECK-LABEL: @test_mm256_mask_fixupimm_pd
6857   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.256
6858   return _mm256_mask_fixupimm_pd(__A, __U, __B, __C, 5);
6859 }
6860 
test_mm256_maskz_fixupimm_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256i __C)6861 __m256d test_mm256_maskz_fixupimm_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256i __C) {
6862   // CHECK-LABEL: @test_mm256_maskz_fixupimm_pd
6863   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.256
6864   return _mm256_maskz_fixupimm_pd(__U, __A, __B, __C, 5);
6865 }
6866 
test_mm_fixupimm_ps(__m128 __A,__m128 __B,__m128i __C)6867 __m128 test_mm_fixupimm_ps(__m128 __A, __m128 __B, __m128i __C) {
6868   // CHECK-LABEL: @test_mm_fixupimm_ps
6869   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.128
6870   return _mm_fixupimm_ps(__A, __B, __C, 5);
6871 }
6872 
test_mm_mask_fixupimm_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128i __C)6873 __m128 test_mm_mask_fixupimm_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128i __C) {
6874   // CHECK-LABEL: @test_mm_mask_fixupimm_ps
6875   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.128
6876   return _mm_mask_fixupimm_ps(__A, __U, __B, __C, 5);
6877 }
6878 
test_mm_maskz_fixupimm_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128i __C)6879 __m128 test_mm_maskz_fixupimm_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128i __C) {
6880   // CHECK-LABEL: @test_mm_maskz_fixupimm_ps
6881   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.128
6882   return _mm_maskz_fixupimm_ps(__U, __A, __B, __C, 5);
6883 }
6884 
test_mm256_fixupimm_ps(__m256 __A,__m256 __B,__m256i __C)6885 __m256 test_mm256_fixupimm_ps(__m256 __A, __m256 __B, __m256i __C) {
6886   // CHECK-LABEL: @test_mm256_fixupimm_ps
6887   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.256
6888   return _mm256_fixupimm_ps(__A, __B, __C, 5);
6889 }
6890 
test_mm256_mask_fixupimm_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256i __C)6891 __m256 test_mm256_mask_fixupimm_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256i __C) {
6892   // CHECK-LABEL: @test_mm256_mask_fixupimm_ps
6893   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.256
6894   return _mm256_mask_fixupimm_ps(__A, __U, __B, __C, 5);
6895 }
6896 
test_mm256_maskz_fixupimm_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256i __C)6897 __m256 test_mm256_maskz_fixupimm_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256i __C) {
6898   // CHECK-LABEL: @test_mm256_maskz_fixupimm_ps
6899   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.256
6900   return _mm256_maskz_fixupimm_ps(__U, __A, __B, __C, 5);
6901 }
6902 
test_mm_mask_load_pd(__m128d __W,__mmask8 __U,void const * __P)6903 __m128d test_mm_mask_load_pd(__m128d __W, __mmask8 __U, void const *__P) {
6904   // CHECK-LABEL: @test_mm_mask_load_pd
6905   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
6906   return _mm_mask_load_pd(__W, __U, __P);
6907 }
6908 
test_mm_maskz_load_pd(__mmask8 __U,void const * __P)6909 __m128d test_mm_maskz_load_pd(__mmask8 __U, void const *__P) {
6910   // CHECK-LABEL: @test_mm_maskz_load_pd
6911   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
6912   return _mm_maskz_load_pd(__U, __P);
6913 }
6914 
test_mm256_mask_load_pd(__m256d __W,__mmask8 __U,void const * __P)6915 __m256d test_mm256_mask_load_pd(__m256d __W, __mmask8 __U, void const *__P) {
6916   // CHECK-LABEL: @test_mm256_mask_load_pd
6917   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
6918   return _mm256_mask_load_pd(__W, __U, __P);
6919 }
6920 
test_mm256_maskz_load_pd(__mmask8 __U,void const * __P)6921 __m256d test_mm256_maskz_load_pd(__mmask8 __U, void const *__P) {
6922   // CHECK-LABEL: @test_mm256_maskz_load_pd
6923   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
6924   return _mm256_maskz_load_pd(__U, __P);
6925 }
6926 
test_mm_mask_load_ps(__m128 __W,__mmask8 __U,void const * __P)6927 __m128 test_mm_mask_load_ps(__m128 __W, __mmask8 __U, void const *__P) {
6928   // CHECK-LABEL: @test_mm_mask_load_ps
6929   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
6930   return _mm_mask_load_ps(__W, __U, __P);
6931 }
6932 
test_mm_maskz_load_ps(__mmask8 __U,void const * __P)6933 __m128 test_mm_maskz_load_ps(__mmask8 __U, void const *__P) {
6934   // CHECK-LABEL: @test_mm_maskz_load_ps
6935   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
6936   return _mm_maskz_load_ps(__U, __P);
6937 }
6938 
test_mm256_mask_load_ps(__m256 __W,__mmask8 __U,void const * __P)6939 __m256 test_mm256_mask_load_ps(__m256 __W, __mmask8 __U, void const *__P) {
6940   // CHECK-LABEL: @test_mm256_mask_load_ps
6941   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
6942   return _mm256_mask_load_ps(__W, __U, __P);
6943 }
6944 
test_mm256_maskz_load_ps(__mmask8 __U,void const * __P)6945 __m256 test_mm256_maskz_load_ps(__mmask8 __U, void const *__P) {
6946   // CHECK-LABEL: @test_mm256_maskz_load_ps
6947   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
6948   return _mm256_maskz_load_ps(__U, __P);
6949 }
6950 
test_mm_loadu_epi64(void const * __P)6951 __m128i test_mm_loadu_epi64(void const *__P) {
6952   // CHECK-LABEL: @test_mm_loadu_epi64
6953   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
6954   return _mm_loadu_epi64(__P);
6955 }
6956 
test_mm_mask_loadu_epi64(__m128i __W,__mmask8 __U,void const * __P)6957 __m128i test_mm_mask_loadu_epi64(__m128i __W, __mmask8 __U, void const *__P) {
6958   // CHECK-LABEL: @test_mm_mask_loadu_epi64
6959   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
6960   return _mm_mask_loadu_epi64(__W, __U, __P);
6961 }
6962 
test_mm_maskz_loadu_epi64(__mmask8 __U,void const * __P)6963 __m128i test_mm_maskz_loadu_epi64(__mmask8 __U, void const *__P) {
6964   // CHECK-LABEL: @test_mm_maskz_loadu_epi64
6965   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
6966   return _mm_maskz_loadu_epi64(__U, __P);
6967 }
6968 
test_mm256_loadu_epi64(void const * __P)6969 __m256i test_mm256_loadu_epi64(void const *__P) {
6970   // CHECK-LABEL: @test_mm256_loadu_epi64
6971   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}, align 1{{$}}
6972   return _mm256_loadu_epi64(__P);
6973 }
6974 
test_mm256_mask_loadu_epi64(__m256i __W,__mmask8 __U,void const * __P)6975 __m256i test_mm256_mask_loadu_epi64(__m256i __W, __mmask8 __U, void const *__P) {
6976   // CHECK-LABEL: @test_mm256_mask_loadu_epi64
6977   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
6978   return _mm256_mask_loadu_epi64(__W, __U, __P);
6979 }
6980 
test_mm256_maskz_loadu_epi64(__mmask8 __U,void const * __P)6981 __m256i test_mm256_maskz_loadu_epi64(__mmask8 __U, void const *__P) {
6982   // CHECK-LABEL: @test_mm256_maskz_loadu_epi64
6983   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
6984   return _mm256_maskz_loadu_epi64(__U, __P);
6985 }
6986 
test_mm_loadu_epi32(void const * __P)6987 __m128i test_mm_loadu_epi32(void const *__P) {
6988   // CHECK-LABEL: @test_mm_loadu_epi32
6989   // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
6990   return _mm_loadu_epi32(__P);
6991 }
6992 
test_mm_mask_loadu_epi32(__m128i __W,__mmask8 __U,void const * __P)6993 __m128i test_mm_mask_loadu_epi32(__m128i __W, __mmask8 __U, void const *__P) {
6994   // CHECK-LABEL: @test_mm_mask_loadu_epi32
6995   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
6996   return _mm_mask_loadu_epi32(__W, __U, __P);
6997 }
6998 
test_mm_maskz_loadu_epi32(__mmask8 __U,void const * __P)6999 __m128i test_mm_maskz_loadu_epi32(__mmask8 __U, void const *__P) {
7000   // CHECK-LABEL: @test_mm_maskz_loadu_epi32
7001   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
7002   return _mm_maskz_loadu_epi32(__U, __P);
7003 }
7004 
test_mm256_loadu_epi32(void const * __P)7005 __m256i test_mm256_loadu_epi32(void const *__P) {
7006   // CHECK-LABEL: @test_mm256_loadu_epi32
7007   // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}, align 1{{$}}
7008   return _mm256_loadu_epi32(__P);
7009 }
7010 
test_mm256_mask_loadu_epi32(__m256i __W,__mmask8 __U,void const * __P)7011 __m256i test_mm256_mask_loadu_epi32(__m256i __W, __mmask8 __U, void const *__P) {
7012   // CHECK-LABEL: @test_mm256_mask_loadu_epi32
7013   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
7014   return _mm256_mask_loadu_epi32(__W, __U, __P);
7015 }
7016 
test_mm256_maskz_loadu_epi32(__mmask8 __U,void const * __P)7017 __m256i test_mm256_maskz_loadu_epi32(__mmask8 __U, void const *__P) {
7018   // CHECK-LABEL: @test_mm256_maskz_loadu_epi32
7019   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
7020   return _mm256_maskz_loadu_epi32(__U, __P);
7021 }
7022 
test_mm_mask_loadu_pd(__m128d __W,__mmask8 __U,void const * __P)7023 __m128d test_mm_mask_loadu_pd(__m128d __W, __mmask8 __U, void const *__P) {
7024   // CHECK-LABEL: @test_mm_mask_loadu_pd
7025   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
7026   return _mm_mask_loadu_pd(__W, __U, __P);
7027 }
7028 
test_mm_maskz_loadu_pd(__mmask8 __U,void const * __P)7029 __m128d test_mm_maskz_loadu_pd(__mmask8 __U, void const *__P) {
7030   // CHECK-LABEL: @test_mm_maskz_loadu_pd
7031   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
7032   return _mm_maskz_loadu_pd(__U, __P);
7033 }
7034 
test_mm256_mask_loadu_pd(__m256d __W,__mmask8 __U,void const * __P)7035 __m256d test_mm256_mask_loadu_pd(__m256d __W, __mmask8 __U, void const *__P) {
7036   // CHECK-LABEL: @test_mm256_mask_loadu_pd
7037   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
7038   return _mm256_mask_loadu_pd(__W, __U, __P);
7039 }
7040 
test_mm256_maskz_loadu_pd(__mmask8 __U,void const * __P)7041 __m256d test_mm256_maskz_loadu_pd(__mmask8 __U, void const *__P) {
7042   // CHECK-LABEL: @test_mm256_maskz_loadu_pd
7043   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
7044   return _mm256_maskz_loadu_pd(__U, __P);
7045 }
7046 
test_mm_mask_loadu_ps(__m128 __W,__mmask8 __U,void const * __P)7047 __m128 test_mm_mask_loadu_ps(__m128 __W, __mmask8 __U, void const *__P) {
7048   // CHECK-LABEL: @test_mm_mask_loadu_ps
7049   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
7050   return _mm_mask_loadu_ps(__W, __U, __P);
7051 }
7052 
test_mm_maskz_loadu_ps(__mmask8 __U,void const * __P)7053 __m128 test_mm_maskz_loadu_ps(__mmask8 __U, void const *__P) {
7054   // CHECK-LABEL: @test_mm_maskz_loadu_ps
7055   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
7056   return _mm_maskz_loadu_ps(__U, __P);
7057 }
7058 
test_mm256_mask_loadu_ps(__m256 __W,__mmask8 __U,void const * __P)7059 __m256 test_mm256_mask_loadu_ps(__m256 __W, __mmask8 __U, void const *__P) {
7060   // CHECK-LABEL: @test_mm256_mask_loadu_ps
7061   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
7062   return _mm256_mask_loadu_ps(__W, __U, __P);
7063 }
7064 
test_mm256_maskz_loadu_ps(__mmask8 __U,void const * __P)7065 __m256 test_mm256_maskz_loadu_ps(__mmask8 __U, void const *__P) {
7066   // CHECK-LABEL: @test_mm256_maskz_loadu_ps
7067   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
7068   return _mm256_maskz_loadu_ps(__U, __P);
7069 }
7070 
test_mm_mask_store_pd(void * __P,__mmask8 __U,__m128d __A)7071 void test_mm_mask_store_pd(void *__P, __mmask8 __U, __m128d __A) {
7072   // CHECK-LABEL: @test_mm_mask_store_pd
7073   // CHECK: @llvm.masked.store.v2f64.p0v2f64(<2 x double> %{{.*}}, <2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}})
7074   return _mm_mask_store_pd(__P, __U, __A);
7075 }
7076 
test_mm256_mask_store_pd(void * __P,__mmask8 __U,__m256d __A)7077 void test_mm256_mask_store_pd(void *__P, __mmask8 __U, __m256d __A) {
7078   // CHECK-LABEL: @test_mm256_mask_store_pd
7079   // CHECK: @llvm.masked.store.v4f64.p0v4f64(<4 x double> %{{.*}}, <4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}})
7080   return _mm256_mask_store_pd(__P, __U, __A);
7081 }
7082 
test_mm_mask_store_ps(void * __P,__mmask8 __U,__m128 __A)7083 void test_mm_mask_store_ps(void *__P, __mmask8 __U, __m128 __A) {
7084   // CHECK-LABEL: @test_mm_mask_store_ps
7085   // CHECK: @llvm.masked.store.v4f32.p0v4f32(<4 x float> %{{.*}}, <4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}})
7086   return _mm_mask_store_ps(__P, __U, __A);
7087 }
7088 
test_mm256_mask_store_ps(void * __P,__mmask8 __U,__m256 __A)7089 void test_mm256_mask_store_ps(void *__P, __mmask8 __U, __m256 __A) {
7090   // CHECK-LABEL: @test_mm256_mask_store_ps
7091   // CHECK: @llvm.masked.store.v8f32.p0v8f32(<8 x float> %{{.*}}, <8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}})
7092   return _mm256_mask_store_ps(__P, __U, __A);
7093 }
7094 
test_mm_storeu_epi64(void * __p,__m128i __a)7095 void test_mm_storeu_epi64(void *__p, __m128i __a) {
7096   // check-label: @test_mm_storeu_epi64
7097   // check: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1{{$}}
7098   return _mm_storeu_epi64(__p, __a);
7099 }
7100 
test_mm_mask_storeu_epi64(void * __P,__mmask8 __U,__m128i __A)7101 void test_mm_mask_storeu_epi64(void *__P, __mmask8 __U, __m128i __A) {
7102   // CHECK-LABEL: @test_mm_mask_storeu_epi64
7103   // CHECK: @llvm.masked.store.v2i64.p0v2i64(<2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}})
7104   return _mm_mask_storeu_epi64(__P, __U, __A);
7105 }
7106 
test_mm256_storeu_epi64(void * __P,__m256i __A)7107 void test_mm256_storeu_epi64(void *__P, __m256i __A) {
7108   // CHECK-LABEL: @test_mm256_storeu_epi64
7109   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, align 1{{$}}
7110   return _mm256_storeu_epi64(__P, __A);
7111 }
7112 
test_mm256_mask_storeu_epi64(void * __P,__mmask8 __U,__m256i __A)7113 void test_mm256_mask_storeu_epi64(void *__P, __mmask8 __U, __m256i __A) {
7114   // CHECK-LABEL: @test_mm256_mask_storeu_epi64
7115   // CHECK: @llvm.masked.store.v4i64.p0v4i64(<4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7116   return _mm256_mask_storeu_epi64(__P, __U, __A);
7117 }
7118 
test_mm_storeu_epi32(void * __P,__m128i __A)7119 void test_mm_storeu_epi32(void *__P, __m128i __A) {
7120   // CHECK-LABEL: @test_mm_storeu_epi32
7121   // CHECK: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1{{$}}
7122   return _mm_storeu_epi32(__P, __A);
7123 }
7124 
test_mm_mask_storeu_epi32(void * __P,__mmask8 __U,__m128i __A)7125 void test_mm_mask_storeu_epi32(void *__P, __mmask8 __U, __m128i __A) {
7126   // CHECK-LABEL: @test_mm_mask_storeu_epi32
7127   // CHECK: @llvm.masked.store.v4i32.p0v4i32(<4 x i32> %{{.*}}, <4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7128   return _mm_mask_storeu_epi32(__P, __U, __A);
7129 }
7130 
test_mm256_storeu_epi32(void * __P,__m256i __A)7131 void test_mm256_storeu_epi32(void *__P, __m256i __A) {
7132   // CHECK-LABEL: @test_mm256_storeu_epi32
7133   // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, align 1{{$}}
7134   return _mm256_storeu_epi32(__P, __A);
7135 }
7136 
test_mm256_mask_storeu_epi32(void * __P,__mmask8 __U,__m256i __A)7137 void test_mm256_mask_storeu_epi32(void *__P, __mmask8 __U, __m256i __A) {
7138   // CHECK-LABEL: @test_mm256_mask_storeu_epi32
7139   // CHECK: @llvm.masked.store.v8i32.p0v8i32(<8 x i32> %{{.*}}, <8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
7140   return _mm256_mask_storeu_epi32(__P, __U, __A);
7141 }
7142 
test_mm_mask_storeu_pd(void * __P,__mmask8 __U,__m128d __A)7143 void test_mm_mask_storeu_pd(void *__P, __mmask8 __U, __m128d __A) {
7144   // CHECK-LABEL: @test_mm_mask_storeu_pd
7145   // CHECK: @llvm.masked.store.v2f64.p0v2f64(<2 x double> %{{.*}}, <2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}})
7146   return _mm_mask_storeu_pd(__P, __U, __A);
7147 }
7148 
test_mm256_mask_storeu_pd(void * __P,__mmask8 __U,__m256d __A)7149 void test_mm256_mask_storeu_pd(void *__P, __mmask8 __U, __m256d __A) {
7150   // CHECK-LABEL: @test_mm256_mask_storeu_pd
7151   // CHECK: @llvm.masked.store.v4f64.p0v4f64(<4 x double> %{{.*}}, <4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7152   return _mm256_mask_storeu_pd(__P, __U, __A);
7153 }
7154 
test_mm_mask_storeu_ps(void * __P,__mmask8 __U,__m128 __A)7155 void test_mm_mask_storeu_ps(void *__P, __mmask8 __U, __m128 __A) {
7156   // CHECK-LABEL: @test_mm_mask_storeu_ps
7157   // CHECK: @llvm.masked.store.v4f32.p0v4f32(<4 x float> %{{.*}}, <4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
7158   return _mm_mask_storeu_ps(__P, __U, __A);
7159 }
7160 
test_mm256_mask_storeu_ps(void * __P,__mmask8 __U,__m256 __A)7161 void test_mm256_mask_storeu_ps(void *__P, __mmask8 __U, __m256 __A) {
7162   // CHECK-LABEL: @test_mm256_mask_storeu_ps
7163   // CHECK: @llvm.masked.store.v8f32.p0v8f32(<8 x float> %{{.*}}, <8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
7164   return _mm256_mask_storeu_ps(__P, __U, __A);
7165 }
7166 
test_mm_mask_unpackhi_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)7167 __m128d test_mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
7168   // CHECK-LABEL: @test_mm_mask_unpackhi_pd
7169   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
7170   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7171   return _mm_mask_unpackhi_pd(__W, __U, __A, __B);
7172 }
7173 
test_mm_maskz_unpackhi_pd(__mmask8 __U,__m128d __A,__m128d __B)7174 __m128d test_mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B) {
7175   // CHECK-LABEL: @test_mm_maskz_unpackhi_pd
7176   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
7177   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7178   return _mm_maskz_unpackhi_pd(__U, __A, __B);
7179 }
7180 
test_mm256_mask_unpackhi_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)7181 __m256d test_mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
7182   // CHECK-LABEL: @test_mm256_mask_unpackhi_pd
7183   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7184   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7185   return _mm256_mask_unpackhi_pd(__W, __U, __A, __B);
7186 }
7187 
test_mm256_maskz_unpackhi_pd(__mmask8 __U,__m256d __A,__m256d __B)7188 __m256d test_mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B) {
7189   // CHECK-LABEL: @test_mm256_maskz_unpackhi_pd
7190   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
7191   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7192   return _mm256_maskz_unpackhi_pd(__U, __A, __B);
7193 }
7194 
test_mm_mask_unpackhi_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)7195 __m128 test_mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
7196   // CHECK-LABEL: @test_mm_mask_unpackhi_ps
7197   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7198   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}} <4 x float> %{{.*}}
7199   return _mm_mask_unpackhi_ps(__W, __U, __A, __B);
7200 }
7201 
test_mm_maskz_unpackhi_ps(__mmask8 __U,__m128 __A,__m128 __B)7202 __m128 test_mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B) {
7203   // CHECK-LABEL: @test_mm_maskz_unpackhi_ps
7204   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7205   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}} <4 x float> %{{.*}}
7206   return _mm_maskz_unpackhi_ps(__U, __A, __B);
7207 }
7208 
test_mm256_mask_unpackhi_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)7209 __m256 test_mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
7210   // CHECK-LABEL: @test_mm256_mask_unpackhi_ps
7211   // 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>
7212   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7213   return _mm256_mask_unpackhi_ps(__W, __U, __A, __B);
7214 }
7215 
test_mm256_maskz_unpackhi_ps(__mmask8 __U,__m256 __A,__m256 __B)7216 __m256 test_mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B) {
7217   // CHECK-LABEL: @test_mm256_maskz_unpackhi_ps
7218   // 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>
7219   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7220   return _mm256_maskz_unpackhi_ps(__U, __A, __B);
7221 }
7222 
test_mm_mask_unpacklo_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)7223 __m128d test_mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
7224   // CHECK-LABEL: @test_mm_mask_unpacklo_pd
7225   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 0, i32 2>
7226   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7227   return _mm_mask_unpacklo_pd(__W, __U, __A, __B);
7228 }
7229 
test_mm_maskz_unpacklo_pd(__mmask8 __U,__m128d __A,__m128d __B)7230 __m128d test_mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B) {
7231   // CHECK-LABEL: @test_mm_maskz_unpacklo_pd
7232   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 0, i32 2>
7233   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7234   return _mm_maskz_unpacklo_pd(__U, __A, __B);
7235 }
7236 
test_mm256_mask_unpacklo_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)7237 __m256d test_mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
7238   // CHECK-LABEL: @test_mm256_mask_unpacklo_pd
7239   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7240   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7241   return _mm256_mask_unpacklo_pd(__W, __U, __A, __B);
7242 }
7243 
test_mm256_maskz_unpacklo_pd(__mmask8 __U,__m256d __A,__m256d __B)7244 __m256d test_mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B) {
7245   // CHECK-LABEL: @test_mm256_maskz_unpacklo_pd
7246   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7247   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
7248   return _mm256_maskz_unpacklo_pd(__U, __A, __B);
7249 }
7250 
test_mm_mask_unpacklo_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)7251 __m128 test_mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
7252   // CHECK-LABEL: @test_mm_mask_unpacklo_ps
7253   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7254   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
7255   return _mm_mask_unpacklo_ps(__W, __U, __A, __B);
7256 }
7257 
test_mm_maskz_unpacklo_ps(__mmask8 __U,__m128 __A,__m128 __B)7258 __m128 test_mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B) {
7259   // CHECK-LABEL: @test_mm_maskz_unpacklo_ps
7260   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7261   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
7262   return _mm_maskz_unpacklo_ps(__U, __A, __B);
7263 }
7264 
test_mm256_mask_unpacklo_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)7265 __m256 test_mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
7266   // CHECK-LABEL: @test_mm256_mask_unpacklo_ps
7267   // 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>
7268   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7269   return _mm256_mask_unpacklo_ps(__W, __U, __A, __B);
7270 }
7271 
test_mm256_maskz_unpacklo_ps(__mmask8 __U,__m256 __A,__m256 __B)7272 __m256 test_mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B) {
7273   // CHECK-LABEL: @test_mm256_maskz_unpacklo_ps
7274   // 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>
7275   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7276   return _mm256_maskz_unpacklo_ps(__U, __A, __B);
7277 }
7278 
test_mm_rcp14_pd(__m128d __A)7279 __m128d test_mm_rcp14_pd(__m128d __A) {
7280   // CHECK-LABEL: @test_mm_rcp14_pd
7281   // CHECK: @llvm.x86.avx512.rcp14.pd.128
7282   return _mm_rcp14_pd(__A);
7283 }
7284 
test_mm_mask_rcp14_pd(__m128d __W,__mmask8 __U,__m128d __A)7285 __m128d test_mm_mask_rcp14_pd(__m128d __W, __mmask8 __U, __m128d __A) {
7286   // CHECK-LABEL: @test_mm_mask_rcp14_pd
7287   // CHECK: @llvm.x86.avx512.rcp14.pd.128
7288   return _mm_mask_rcp14_pd(__W, __U, __A);
7289 }
7290 
test_mm_maskz_rcp14_pd(__mmask8 __U,__m128d __A)7291 __m128d test_mm_maskz_rcp14_pd(__mmask8 __U, __m128d __A) {
7292   // CHECK-LABEL: @test_mm_maskz_rcp14_pd
7293   // CHECK: @llvm.x86.avx512.rcp14.pd.128
7294   return _mm_maskz_rcp14_pd(__U, __A);
7295 }
7296 
test_mm256_rcp14_pd(__m256d __A)7297 __m256d test_mm256_rcp14_pd(__m256d __A) {
7298   // CHECK-LABEL: @test_mm256_rcp14_pd
7299   // CHECK: @llvm.x86.avx512.rcp14.pd.256
7300   return _mm256_rcp14_pd(__A);
7301 }
7302 
test_mm256_mask_rcp14_pd(__m256d __W,__mmask8 __U,__m256d __A)7303 __m256d test_mm256_mask_rcp14_pd(__m256d __W, __mmask8 __U, __m256d __A) {
7304   // CHECK-LABEL: @test_mm256_mask_rcp14_pd
7305   // CHECK: @llvm.x86.avx512.rcp14.pd.256
7306   return _mm256_mask_rcp14_pd(__W, __U, __A);
7307 }
7308 
test_mm256_maskz_rcp14_pd(__mmask8 __U,__m256d __A)7309 __m256d test_mm256_maskz_rcp14_pd(__mmask8 __U, __m256d __A) {
7310   // CHECK-LABEL: @test_mm256_maskz_rcp14_pd
7311   // CHECK: @llvm.x86.avx512.rcp14.pd.256
7312   return _mm256_maskz_rcp14_pd(__U, __A);
7313 }
7314 
test_mm_rcp14_ps(__m128 __A)7315 __m128 test_mm_rcp14_ps(__m128 __A) {
7316   // CHECK-LABEL: @test_mm_rcp14_ps
7317   // CHECK: @llvm.x86.avx512.rcp14.ps.128
7318   return _mm_rcp14_ps(__A);
7319 }
7320 
test_mm_mask_rcp14_ps(__m128 __W,__mmask8 __U,__m128 __A)7321 __m128 test_mm_mask_rcp14_ps(__m128 __W, __mmask8 __U, __m128 __A) {
7322   // CHECK-LABEL: @test_mm_mask_rcp14_ps
7323   // CHECK: @llvm.x86.avx512.rcp14.ps.128
7324   return _mm_mask_rcp14_ps(__W, __U, __A);
7325 }
7326 
test_mm_maskz_rcp14_ps(__mmask8 __U,__m128 __A)7327 __m128 test_mm_maskz_rcp14_ps(__mmask8 __U, __m128 __A) {
7328   // CHECK-LABEL: @test_mm_maskz_rcp14_ps
7329   // CHECK: @llvm.x86.avx512.rcp14.ps.128
7330   return _mm_maskz_rcp14_ps(__U, __A);
7331 }
7332 
test_mm256_rcp14_ps(__m256 __A)7333 __m256 test_mm256_rcp14_ps(__m256 __A) {
7334   // CHECK-LABEL: @test_mm256_rcp14_ps
7335   // CHECK: @llvm.x86.avx512.rcp14.ps.256
7336   return _mm256_rcp14_ps(__A);
7337 }
7338 
test_mm256_mask_rcp14_ps(__m256 __W,__mmask8 __U,__m256 __A)7339 __m256 test_mm256_mask_rcp14_ps(__m256 __W, __mmask8 __U, __m256 __A) {
7340   // CHECK-LABEL: @test_mm256_mask_rcp14_ps
7341   // CHECK: @llvm.x86.avx512.rcp14.ps.256
7342   return _mm256_mask_rcp14_ps(__W, __U, __A);
7343 }
7344 
test_mm256_maskz_rcp14_ps(__mmask8 __U,__m256 __A)7345 __m256 test_mm256_maskz_rcp14_ps(__mmask8 __U, __m256 __A) {
7346   // CHECK-LABEL: @test_mm256_maskz_rcp14_ps
7347   // CHECK: @llvm.x86.avx512.rcp14.ps.256
7348   return _mm256_maskz_rcp14_ps(__U, __A);
7349 }
7350 
test_mm_mask_permute_pd(__m128d __W,__mmask8 __U,__m128d __X)7351 __m128d test_mm_mask_permute_pd(__m128d __W, __mmask8 __U, __m128d __X) {
7352   // CHECK-LABEL: @test_mm_mask_permute_pd
7353   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <2 x i32> <i32 1, i32 0>
7354   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7355   return _mm_mask_permute_pd(__W, __U, __X, 1);
7356 }
7357 
test_mm_maskz_permute_pd(__mmask8 __U,__m128d __X)7358 __m128d test_mm_maskz_permute_pd(__mmask8 __U, __m128d __X) {
7359   // CHECK-LABEL: @test_mm_maskz_permute_pd
7360   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <2 x i32> <i32 1, i32 0>
7361   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7362   return _mm_maskz_permute_pd(__U, __X, 1);
7363 }
7364 
test_mm256_mask_permute_pd(__m256d __W,__mmask8 __U,__m256d __X)7365 __m256d test_mm256_mask_permute_pd(__m256d __W, __mmask8 __U, __m256d __X) {
7366   // CHECK-LABEL: @test_mm256_mask_permute_pd
7367   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
7368   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7369   return _mm256_mask_permute_pd(__W, __U, __X, 5);
7370 }
7371 
test_mm256_maskz_permute_pd(__mmask8 __U,__m256d __X)7372 __m256d test_mm256_maskz_permute_pd(__mmask8 __U, __m256d __X) {
7373   // CHECK-LABEL: @test_mm256_maskz_permute_pd
7374   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
7375   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7376   return _mm256_maskz_permute_pd(__U, __X, 5);
7377 }
7378 
test_mm_mask_permute_ps(__m128 __W,__mmask8 __U,__m128 __X)7379 __m128 test_mm_mask_permute_ps(__m128 __W, __mmask8 __U, __m128 __X) {
7380   // CHECK-LABEL: @test_mm_mask_permute_ps
7381   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
7382   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7383   return _mm_mask_permute_ps(__W, __U, __X, 0x1b);
7384 }
7385 
test_mm_maskz_permute_ps(__mmask8 __U,__m128 __X)7386 __m128 test_mm_maskz_permute_ps(__mmask8 __U, __m128 __X) {
7387   // CHECK-LABEL: @test_mm_maskz_permute_ps
7388   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
7389   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7390   return _mm_maskz_permute_ps(__U, __X, 0x1b);
7391 }
7392 
test_mm256_mask_permute_ps(__m256 __W,__mmask8 __U,__m256 __X)7393 __m256 test_mm256_mask_permute_ps(__m256 __W, __mmask8 __U, __m256 __X) {
7394   // CHECK-LABEL: @test_mm256_mask_permute_ps
7395   // 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>
7396   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7397   return _mm256_mask_permute_ps(__W, __U, __X, 0x1b);
7398 }
7399 
test_mm256_maskz_permute_ps(__mmask8 __U,__m256 __X)7400 __m256 test_mm256_maskz_permute_ps(__mmask8 __U, __m256 __X) {
7401   // CHECK-LABEL: @test_mm256_maskz_permute_ps
7402   // 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>
7403   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7404   return _mm256_maskz_permute_ps(__U, __X, 0x1b);
7405 }
7406 
test_mm_mask_permutevar_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128i __C)7407 __m128d test_mm_mask_permutevar_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128i __C) {
7408   // CHECK-LABEL: @test_mm_mask_permutevar_pd
7409   // CHECK: @llvm.x86.avx.vpermilvar.pd
7410   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7411   return _mm_mask_permutevar_pd(__W, __U, __A, __C);
7412 }
7413 
test_mm_maskz_permutevar_pd(__mmask8 __U,__m128d __A,__m128i __C)7414 __m128d test_mm_maskz_permutevar_pd(__mmask8 __U, __m128d __A, __m128i __C) {
7415   // CHECK-LABEL: @test_mm_maskz_permutevar_pd
7416   // CHECK: @llvm.x86.avx.vpermilvar.pd
7417   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
7418   return _mm_maskz_permutevar_pd(__U, __A, __C);
7419 }
7420 
test_mm256_mask_permutevar_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256i __C)7421 __m256d test_mm256_mask_permutevar_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256i __C) {
7422   // CHECK-LABEL: @test_mm256_mask_permutevar_pd
7423   // CHECK: @llvm.x86.avx.vpermilvar.pd.256
7424   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7425   return _mm256_mask_permutevar_pd(__W, __U, __A, __C);
7426 }
7427 
test_mm256_maskz_permutevar_pd(__mmask8 __U,__m256d __A,__m256i __C)7428 __m256d test_mm256_maskz_permutevar_pd(__mmask8 __U, __m256d __A, __m256i __C) {
7429   // CHECK-LABEL: @test_mm256_maskz_permutevar_pd
7430   // CHECK: @llvm.x86.avx.vpermilvar.pd.256
7431   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
7432   return _mm256_maskz_permutevar_pd(__U, __A, __C);
7433 }
7434 
test_mm_mask_permutevar_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128i __C)7435 __m128 test_mm_mask_permutevar_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128i __C) {
7436   // CHECK-LABEL: @test_mm_mask_permutevar_ps
7437   // CHECK: @llvm.x86.avx.vpermilvar.ps
7438   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7439   return _mm_mask_permutevar_ps(__W, __U, __A, __C);
7440 }
7441 
test_mm_maskz_permutevar_ps(__mmask8 __U,__m128 __A,__m128i __C)7442 __m128 test_mm_maskz_permutevar_ps(__mmask8 __U, __m128 __A, __m128i __C) {
7443   // CHECK-LABEL: @test_mm_maskz_permutevar_ps
7444   // CHECK: @llvm.x86.avx.vpermilvar.ps
7445   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
7446   return _mm_maskz_permutevar_ps(__U, __A, __C);
7447 }
7448 
test_mm256_mask_permutevar_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256i __C)7449 __m256 test_mm256_mask_permutevar_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256i __C) {
7450   // CHECK-LABEL: @test_mm256_mask_permutevar_ps
7451   // CHECK: @llvm.x86.avx.vpermilvar.ps.256
7452   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7453   return _mm256_mask_permutevar_ps(__W, __U, __A, __C);
7454 }
7455 
test_mm256_maskz_permutevar_ps(__mmask8 __U,__m256 __A,__m256i __C)7456 __m256 test_mm256_maskz_permutevar_ps(__mmask8 __U, __m256 __A, __m256i __C) {
7457   // CHECK-LABEL: @test_mm256_maskz_permutevar_ps
7458   // CHECK: @llvm.x86.avx.vpermilvar.ps.256
7459   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7460   return _mm256_maskz_permutevar_ps(__U, __A, __C);
7461 }
7462 
test_mm_test_epi32_mask(__m128i __A,__m128i __B)7463 __mmask8 test_mm_test_epi32_mask(__m128i __A, __m128i __B) {
7464   // CHECK-LABEL: @test_mm_test_epi32_mask
7465   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7466   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
7467   return _mm_test_epi32_mask(__A, __B);
7468 }
7469 
test_mm_mask_test_epi32_mask(__mmask8 __U,__m128i __A,__m128i __B)7470 __mmask8 test_mm_mask_test_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7471   // CHECK-LABEL: @test_mm_mask_test_epi32_mask
7472   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7473   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
7474   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7475   return _mm_mask_test_epi32_mask(__U, __A, __B);
7476 }
7477 
test_mm256_test_epi32_mask(__m256i __A,__m256i __B)7478 __mmask8 test_mm256_test_epi32_mask(__m256i __A, __m256i __B) {
7479   // CHECK-LABEL: @test_mm256_test_epi32_mask
7480   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7481   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
7482   return _mm256_test_epi32_mask(__A, __B);
7483 }
7484 
test_mm256_mask_test_epi32_mask(__mmask8 __U,__m256i __A,__m256i __B)7485 __mmask8 test_mm256_mask_test_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7486   // CHECK-LABEL: @test_mm256_mask_test_epi32_mask
7487   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7488   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
7489   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
7490   return _mm256_mask_test_epi32_mask(__U, __A, __B);
7491 }
7492 
test_mm_test_epi64_mask(__m128i __A,__m128i __B)7493 __mmask8 test_mm_test_epi64_mask(__m128i __A, __m128i __B) {
7494   // CHECK-LABEL: @test_mm_test_epi64_mask
7495   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7496   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
7497   return _mm_test_epi64_mask(__A, __B);
7498 }
7499 
test_mm_mask_test_epi64_mask(__mmask8 __U,__m128i __A,__m128i __B)7500 __mmask8 test_mm_mask_test_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7501   // CHECK-LABEL: @test_mm_mask_test_epi64_mask
7502   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7503   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
7504   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
7505   return _mm_mask_test_epi64_mask(__U, __A, __B);
7506 }
7507 
test_mm256_test_epi64_mask(__m256i __A,__m256i __B)7508 __mmask8 test_mm256_test_epi64_mask(__m256i __A, __m256i __B) {
7509   // CHECK-LABEL: @test_mm256_test_epi64_mask
7510   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7511   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
7512   return _mm256_test_epi64_mask(__A, __B);
7513 }
7514 
test_mm256_mask_test_epi64_mask(__mmask8 __U,__m256i __A,__m256i __B)7515 __mmask8 test_mm256_mask_test_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7516   // CHECK-LABEL: @test_mm256_mask_test_epi64_mask
7517   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7518   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
7519   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7520   return _mm256_mask_test_epi64_mask(__U, __A, __B);
7521 }
7522 
test_mm_testn_epi32_mask(__m128i __A,__m128i __B)7523 __mmask8 test_mm_testn_epi32_mask(__m128i __A, __m128i __B) {
7524   // CHECK-LABEL: @test_mm_testn_epi32_mask
7525   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7526   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
7527   return _mm_testn_epi32_mask(__A, __B);
7528 }
7529 
test_mm_mask_testn_epi32_mask(__mmask8 __U,__m128i __A,__m128i __B)7530 __mmask8 test_mm_mask_testn_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7531   // CHECK-LABEL: @test_mm_mask_testn_epi32_mask
7532   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7533   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
7534   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7535   return _mm_mask_testn_epi32_mask(__U, __A, __B);
7536 }
7537 
test_mm256_testn_epi32_mask(__m256i __A,__m256i __B)7538 __mmask8 test_mm256_testn_epi32_mask(__m256i __A, __m256i __B) {
7539   // CHECK-LABEL: @test_mm256_testn_epi32_mask
7540   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7541   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
7542   return _mm256_testn_epi32_mask(__A, __B);
7543 }
7544 
test_mm256_mask_testn_epi32_mask(__mmask8 __U,__m256i __A,__m256i __B)7545 __mmask8 test_mm256_mask_testn_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7546   // CHECK-LABEL: @test_mm256_mask_testn_epi32_mask
7547   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7548   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
7549   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
7550   return _mm256_mask_testn_epi32_mask(__U, __A, __B);
7551 }
7552 
test_mm_testn_epi64_mask(__m128i __A,__m128i __B)7553 __mmask8 test_mm_testn_epi64_mask(__m128i __A, __m128i __B) {
7554   // CHECK-LABEL: @test_mm_testn_epi64_mask
7555   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7556   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
7557   return _mm_testn_epi64_mask(__A, __B);
7558 }
7559 
test_mm_mask_testn_epi64_mask(__mmask8 __U,__m128i __A,__m128i __B)7560 __mmask8 test_mm_mask_testn_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) {
7561   // CHECK-LABEL: @test_mm_mask_testn_epi64_mask
7562   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
7563   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
7564   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
7565   return _mm_mask_testn_epi64_mask(__U, __A, __B);
7566 }
7567 
test_mm256_testn_epi64_mask(__m256i __A,__m256i __B)7568 __mmask8 test_mm256_testn_epi64_mask(__m256i __A, __m256i __B) {
7569   // CHECK-LABEL: @test_mm256_testn_epi64_mask
7570   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7571   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
7572   return _mm256_testn_epi64_mask(__A, __B);
7573 }
7574 
test_mm256_mask_testn_epi64_mask(__mmask8 __U,__m256i __A,__m256i __B)7575 __mmask8 test_mm256_mask_testn_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) {
7576   // CHECK-LABEL: @test_mm256_mask_testn_epi64_mask
7577   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
7578   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
7579   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
7580   return _mm256_mask_testn_epi64_mask(__U, __A, __B);
7581 }
7582 
test_mm_mask_unpackhi_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7583 __m128i test_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7584   // CHECK-LABEL: @test_mm_mask_unpackhi_epi32
7585   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7586   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7587   return _mm_mask_unpackhi_epi32(__W, __U, __A, __B);
7588 }
7589 
test_mm_maskz_unpackhi_epi32(__mmask8 __U,__m128i __A,__m128i __B)7590 __m128i test_mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
7591   // CHECK-LABEL: @test_mm_maskz_unpackhi_epi32
7592   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
7593   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7594   return _mm_maskz_unpackhi_epi32(__U, __A, __B);
7595 }
7596 
test_mm256_mask_unpackhi_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7597 __m256i test_mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7598   // CHECK-LABEL: @test_mm256_mask_unpackhi_epi32
7599   // 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>
7600   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7601   return _mm256_mask_unpackhi_epi32(__W, __U, __A, __B);
7602 }
7603 
test_mm256_maskz_unpackhi_epi32(__mmask8 __U,__m256i __A,__m256i __B)7604 __m256i test_mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
7605   // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi32
7606   // 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>
7607   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7608   return _mm256_maskz_unpackhi_epi32(__U, __A, __B);
7609 }
7610 
test_mm_mask_unpackhi_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7611 __m128i test_mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7612   // CHECK-LABEL: @test_mm_mask_unpackhi_epi64
7613   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 3>
7614   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7615   return _mm_mask_unpackhi_epi64(__W, __U, __A, __B);
7616 }
7617 
test_mm_maskz_unpackhi_epi64(__mmask8 __U,__m128i __A,__m128i __B)7618 __m128i test_mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
7619   // CHECK-LABEL: @test_mm_maskz_unpackhi_epi64
7620   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 3>
7621   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7622   return _mm_maskz_unpackhi_epi64(__U, __A, __B);
7623 }
7624 
test_mm256_mask_unpackhi_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7625 __m256i test_mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7626   // CHECK-LABEL: @test_mm256_mask_unpackhi_epi64
7627   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 3, i32 7>
7628   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7629   return _mm256_mask_unpackhi_epi64(__W, __U, __A, __B);
7630 }
7631 
test_mm256_maskz_unpackhi_epi64(__mmask8 __U,__m256i __A,__m256i __B)7632 __m256i test_mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
7633   // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi64
7634   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 3, i32 7>
7635   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7636   return _mm256_maskz_unpackhi_epi64(__U, __A, __B);
7637 }
7638 
test_mm_mask_unpacklo_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7639 __m128i test_mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7640   // CHECK-LABEL: @test_mm_mask_unpacklo_epi32
7641   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7642   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7643   return _mm_mask_unpacklo_epi32(__W, __U, __A, __B);
7644 }
7645 
test_mm_maskz_unpacklo_epi32(__mmask8 __U,__m128i __A,__m128i __B)7646 __m128i test_mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
7647   // CHECK-LABEL: @test_mm_maskz_unpacklo_epi32
7648   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
7649   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7650   return _mm_maskz_unpacklo_epi32(__U, __A, __B);
7651 }
7652 
test_mm256_mask_unpacklo_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7653 __m256i test_mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7654   // CHECK-LABEL: @test_mm256_mask_unpacklo_epi32
7655   // 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>
7656   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7657   return _mm256_mask_unpacklo_epi32(__W, __U, __A, __B);
7658 }
7659 
test_mm256_maskz_unpacklo_epi32(__mmask8 __U,__m256i __A,__m256i __B)7660 __m256i test_mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
7661   // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi32
7662   // 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>
7663   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7664   return _mm256_maskz_unpacklo_epi32(__U, __A, __B);
7665 }
7666 
test_mm_mask_unpacklo_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7667 __m128i test_mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7668   // CHECK-LABEL: @test_mm_mask_unpacklo_epi64
7669   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2>
7670   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7671   return _mm_mask_unpacklo_epi64(__W, __U, __A, __B);
7672 }
7673 
test_mm_maskz_unpacklo_epi64(__mmask8 __U,__m128i __A,__m128i __B)7674 __m128i test_mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
7675   // CHECK-LABEL: @test_mm_maskz_unpacklo_epi64
7676   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2>
7677   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7678   return _mm_maskz_unpacklo_epi64(__U, __A, __B);
7679 }
7680 
test_mm256_mask_unpacklo_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)7681 __m256i test_mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
7682   // CHECK-LABEL: @test_mm256_mask_unpacklo_epi64
7683   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7684   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7685   return _mm256_mask_unpacklo_epi64(__W, __U, __A, __B);
7686 }
7687 
test_mm256_maskz_unpacklo_epi64(__mmask8 __U,__m256i __A,__m256i __B)7688 __m256i test_mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
7689   // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi64
7690   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
7691   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7692   return _mm256_maskz_unpacklo_epi64(__U, __A, __B);
7693 }
7694 
test_mm_mask_sra_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7695 __m128i test_mm_mask_sra_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7696   // CHECK-LABEL: @test_mm_mask_sra_epi32
7697   // CHECK: @llvm.x86.sse2.psra.d
7698   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7699   return _mm_mask_sra_epi32(__W, __U, __A, __B);
7700 }
7701 
test_mm_maskz_sra_epi32(__mmask8 __U,__m128i __A,__m128i __B)7702 __m128i test_mm_maskz_sra_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
7703   // CHECK-LABEL: @test_mm_maskz_sra_epi32
7704   // CHECK: @llvm.x86.sse2.psra.d
7705   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7706   return _mm_maskz_sra_epi32(__U, __A, __B);
7707 }
7708 
test_mm256_mask_sra_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)7709 __m256i test_mm256_mask_sra_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
7710   // CHECK-LABEL: @test_mm256_mask_sra_epi32
7711   // CHECK: @llvm.x86.avx2.psra.d
7712   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7713   return _mm256_mask_sra_epi32(__W, __U, __A, __B);
7714 }
7715 
test_mm256_maskz_sra_epi32(__mmask8 __U,__m256i __A,__m128i __B)7716 __m256i test_mm256_maskz_sra_epi32(__mmask8 __U, __m256i __A, __m128i __B) {
7717   // CHECK-LABEL: @test_mm256_maskz_sra_epi32
7718   // CHECK: @llvm.x86.avx2.psra.d
7719   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7720   return _mm256_maskz_sra_epi32(__U, __A, __B);
7721 }
7722 
test_mm_mask_srai_epi32(__m128i __W,__mmask8 __U,__m128i __A)7723 __m128i test_mm_mask_srai_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
7724   // CHECK-LABEL: @test_mm_mask_srai_epi32
7725   // CHECK: @llvm.x86.sse2.psrai.d
7726   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7727   return _mm_mask_srai_epi32(__W, __U, __A, 5);
7728 }
7729 
test_mm_mask_srai_epi32_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)7730 __m128i test_mm_mask_srai_epi32_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
7731   // CHECK-LABEL: @test_mm_mask_srai_epi32_2
7732   // CHECK: @llvm.x86.sse2.psrai.d
7733   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7734   return _mm_mask_srai_epi32(__W, __U, __A, __B);
7735 }
7736 
test_mm_maskz_srai_epi32(__mmask8 __U,__m128i __A)7737 __m128i test_mm_maskz_srai_epi32(__mmask8 __U, __m128i __A) {
7738   // CHECK-LABEL: @test_mm_maskz_srai_epi32
7739   // CHECK: @llvm.x86.sse2.psrai.d
7740   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7741   return _mm_maskz_srai_epi32(__U, __A, 5);
7742 }
7743 
test_mm_maskz_srai_epi32_2(__mmask8 __U,__m128i __A,unsigned int __B)7744 __m128i test_mm_maskz_srai_epi32_2(__mmask8 __U, __m128i __A, unsigned int __B) {
7745   // CHECK-LABEL: @test_mm_maskz_srai_epi32_2
7746   // CHECK: @llvm.x86.sse2.psrai.d
7747   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7748   return _mm_maskz_srai_epi32(__U, __A, __B);
7749 }
7750 
test_mm256_mask_srai_epi32(__m256i __W,__mmask8 __U,__m256i __A)7751 __m256i test_mm256_mask_srai_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
7752   // CHECK-LABEL: @test_mm256_mask_srai_epi32
7753   // CHECK: @llvm.x86.avx2.psrai.d
7754   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7755   return _mm256_mask_srai_epi32(__W, __U, __A, 5);
7756 }
7757 
test_mm256_mask_srai_epi32_2(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)7758 __m256i test_mm256_mask_srai_epi32_2(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B) {
7759   // CHECK-LABEL: @test_mm256_mask_srai_epi32_2
7760   // CHECK: @llvm.x86.avx2.psrai.d
7761   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7762   return _mm256_mask_srai_epi32(__W, __U, __A, __B);
7763 }
7764 
test_mm256_maskz_srai_epi32(__mmask8 __U,__m256i __A)7765 __m256i test_mm256_maskz_srai_epi32(__mmask8 __U, __m256i __A) {
7766   // CHECK-LABEL: @test_mm256_maskz_srai_epi32
7767   // CHECK: @llvm.x86.avx2.psrai.d
7768   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7769   return _mm256_maskz_srai_epi32(__U, __A, 5);
7770 }
7771 
test_mm256_maskz_srai_epi32_2(__mmask8 __U,__m256i __A,unsigned int __B)7772 __m256i test_mm256_maskz_srai_epi32_2(__mmask8 __U, __m256i __A, unsigned int __B) {
7773   // CHECK-LABEL: @test_mm256_maskz_srai_epi32_2
7774   // CHECK: @llvm.x86.avx2.psrai.d
7775   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7776   return _mm256_maskz_srai_epi32(__U, __A, __B);
7777 }
7778 
test_mm_sra_epi64(__m128i __A,__m128i __B)7779 __m128i test_mm_sra_epi64(__m128i __A, __m128i __B) {
7780   // CHECK-LABEL: @test_mm_sra_epi64
7781   // CHECK: @llvm.x86.avx512.psra.q.128
7782   return _mm_sra_epi64(__A, __B);
7783 }
7784 
test_mm_mask_sra_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)7785 __m128i test_mm_mask_sra_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
7786   // CHECK-LABEL: @test_mm_mask_sra_epi64
7787   // CHECK: @llvm.x86.avx512.psra.q.128
7788   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7789   return _mm_mask_sra_epi64(__W, __U, __A, __B);
7790 }
7791 
test_mm_maskz_sra_epi64(__mmask8 __U,__m128i __A,__m128i __B)7792 __m128i test_mm_maskz_sra_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
7793   // CHECK-LABEL: @test_mm_maskz_sra_epi64
7794   // CHECK: @llvm.x86.avx512.psra.q.128
7795   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7796   return _mm_maskz_sra_epi64(__U, __A, __B);
7797 }
7798 
test_mm256_sra_epi64(__m256i __A,__m128i __B)7799 __m256i test_mm256_sra_epi64(__m256i __A, __m128i __B) {
7800   // CHECK-LABEL: @test_mm256_sra_epi64
7801   // CHECK: @llvm.x86.avx512.psra.q.256
7802   return _mm256_sra_epi64(__A, __B);
7803 }
7804 
test_mm256_mask_sra_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)7805 __m256i test_mm256_mask_sra_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
7806   // CHECK-LABEL: @test_mm256_mask_sra_epi64
7807   // CHECK: @llvm.x86.avx512.psra.q.256
7808   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7809   return _mm256_mask_sra_epi64(__W, __U, __A, __B);
7810 }
7811 
test_mm256_maskz_sra_epi64(__mmask8 __U,__m256i __A,__m128i __B)7812 __m256i test_mm256_maskz_sra_epi64(__mmask8 __U, __m256i __A, __m128i __B) {
7813   // CHECK-LABEL: @test_mm256_maskz_sra_epi64
7814   // CHECK: @llvm.x86.avx512.psra.q.256
7815   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7816   return _mm256_maskz_sra_epi64(__U, __A, __B);
7817 }
7818 
test_mm_srai_epi64(__m128i __A)7819 __m128i test_mm_srai_epi64(__m128i __A) {
7820   // CHECK-LABEL: @test_mm_srai_epi64
7821   // CHECK: @llvm.x86.avx512.psrai.q.128
7822   return _mm_srai_epi64(__A, 5);
7823 }
7824 
test_mm_srai_epi64_2(__m128i __A,unsigned int __B)7825 __m128i test_mm_srai_epi64_2(__m128i __A, unsigned int __B) {
7826   // CHECK-LABEL: @test_mm_srai_epi64_2
7827   // CHECK: @llvm.x86.avx512.psrai.q.128
7828   return _mm_srai_epi64(__A, __B);
7829 }
7830 
test_mm_mask_srai_epi64(__m128i __W,__mmask8 __U,__m128i __A)7831 __m128i test_mm_mask_srai_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
7832   // CHECK-LABEL: @test_mm_mask_srai_epi64
7833   // CHECK: @llvm.x86.avx512.psrai.q.128
7834   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7835   return _mm_mask_srai_epi64(__W, __U, __A, 5);
7836 }
7837 
test_mm_mask_srai_epi64_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)7838 __m128i test_mm_mask_srai_epi64_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
7839   // CHECK-LABEL: @test_mm_mask_srai_epi64_2
7840   // CHECK: @llvm.x86.avx512.psrai.q.128
7841   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7842   return _mm_mask_srai_epi64(__W, __U, __A, __B);
7843 }
7844 
test_mm_maskz_srai_epi64(__mmask8 __U,__m128i __A)7845 __m128i test_mm_maskz_srai_epi64(__mmask8 __U, __m128i __A) {
7846   // CHECK-LABEL: @test_mm_maskz_srai_epi64
7847   // CHECK: @llvm.x86.avx512.psrai.q.128
7848   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7849   return _mm_maskz_srai_epi64(__U, __A, 5);
7850 }
7851 
test_mm_maskz_srai_epi64_2(__mmask8 __U,__m128i __A,unsigned int __B)7852 __m128i test_mm_maskz_srai_epi64_2(__mmask8 __U, __m128i __A, unsigned int __B) {
7853   // CHECK-LABEL: @test_mm_maskz_srai_epi64_2
7854   // CHECK: @llvm.x86.avx512.psrai.q.128
7855   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7856   return _mm_maskz_srai_epi64(__U, __A, __B);
7857 }
7858 
test_mm256_srai_epi64(__m256i __A)7859 __m256i test_mm256_srai_epi64(__m256i __A) {
7860   // CHECK-LABEL: @test_mm256_srai_epi64
7861   // CHECK: @llvm.x86.avx512.psrai.q.256
7862   return _mm256_srai_epi64(__A, 5);
7863 }
7864 
test_mm256_srai_epi64_2(__m256i __A,unsigned int __B)7865 __m256i test_mm256_srai_epi64_2(__m256i __A, unsigned int __B) {
7866   // CHECK-LABEL: @test_mm256_srai_epi64_2
7867   // CHECK: @llvm.x86.avx512.psrai.q.256
7868   return _mm256_srai_epi64(__A, __B);
7869 }
7870 
test_mm256_mask_srai_epi64(__m256i __W,__mmask8 __U,__m256i __A)7871 __m256i test_mm256_mask_srai_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
7872   // CHECK-LABEL: @test_mm256_mask_srai_epi64
7873   // CHECK: @llvm.x86.avx512.psrai.q.256
7874   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7875   return _mm256_mask_srai_epi64(__W, __U, __A, 5);
7876 }
7877 
test_mm256_mask_srai_epi64_2(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)7878 __m256i test_mm256_mask_srai_epi64_2(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B) {
7879   // CHECK-LABEL: @test_mm256_mask_srai_epi64_2
7880   // CHECK: @llvm.x86.avx512.psrai.q.256
7881   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7882   return _mm256_mask_srai_epi64(__W, __U, __A, __B);
7883 }
7884 
test_mm256_maskz_srai_epi64(__mmask8 __U,__m256i __A)7885 __m256i test_mm256_maskz_srai_epi64(__mmask8 __U, __m256i __A) {
7886   // CHECK-LABEL: @test_mm256_maskz_srai_epi64
7887   // CHECK: @llvm.x86.avx512.psrai.q.256
7888   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7889   return _mm256_maskz_srai_epi64(__U, __A, 5);
7890 }
7891 
test_mm256_maskz_srai_epi64_2(__mmask8 __U,__m256i __A,unsigned int __B)7892 __m256i test_mm256_maskz_srai_epi64_2(__mmask8 __U, __m256i __A, unsigned int __B) {
7893   // CHECK-LABEL: @test_mm256_maskz_srai_epi64_2
7894   // CHECK: @llvm.x86.avx512.psrai.q.256
7895   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7896   return _mm256_maskz_srai_epi64(__U, __A, __B);
7897 }
7898 
test_mm_ternarylogic_epi32(__m128i __A,__m128i __B,__m128i __C)7899 __m128i test_mm_ternarylogic_epi32(__m128i __A, __m128i __B, __m128i __C) {
7900   // CHECK-LABEL: @test_mm_ternarylogic_epi32
7901   // CHECK: @llvm.x86.avx512.pternlog.d.128
7902   return _mm_ternarylogic_epi32(__A, __B, __C, 4);
7903 }
7904 
test_mm_mask_ternarylogic_epi32(__m128i __A,__mmask8 __U,__m128i __B,__m128i __C)7905 __m128i test_mm_mask_ternarylogic_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
7906   // CHECK-LABEL: @test_mm_mask_ternarylogic_epi32
7907   // CHECK: @llvm.x86.avx512.pternlog.d.128
7908   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
7909   return _mm_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
7910 }
7911 
test_mm_maskz_ternarylogic_epi32(__mmask8 __U,__m128i __A,__m128i __B,__m128i __C)7912 __m128i test_mm_maskz_ternarylogic_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
7913   // CHECK-LABEL: @test_mm_maskz_ternarylogic_epi32
7914   // CHECK: @llvm.x86.avx512.pternlog.d.128
7915   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
7916   return _mm_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
7917 }
7918 
test_mm256_ternarylogic_epi32(__m256i __A,__m256i __B,__m256i __C)7919 __m256i test_mm256_ternarylogic_epi32(__m256i __A, __m256i __B, __m256i __C) {
7920   // CHECK-LABEL: @test_mm256_ternarylogic_epi32
7921   // CHECK: @llvm.x86.avx512.pternlog.d.256
7922   return _mm256_ternarylogic_epi32(__A, __B, __C, 4);
7923 }
7924 
test_mm256_mask_ternarylogic_epi32(__m256i __A,__mmask8 __U,__m256i __B,__m256i __C)7925 __m256i test_mm256_mask_ternarylogic_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) {
7926   // CHECK-LABEL: @test_mm256_mask_ternarylogic_epi32
7927   // CHECK: @llvm.x86.avx512.pternlog.d.256
7928   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
7929   return _mm256_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
7930 }
7931 
test_mm256_maskz_ternarylogic_epi32(__mmask8 __U,__m256i __A,__m256i __B,__m256i __C)7932 __m256i test_mm256_maskz_ternarylogic_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) {
7933   // CHECK-LABEL: @test_mm256_maskz_ternarylogic_epi32
7934   // CHECK: @llvm.x86.avx512.pternlog.d.256
7935   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> zeroinitializer
7936   return _mm256_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
7937 }
7938 
test_mm_ternarylogic_epi64(__m128i __A,__m128i __B,__m128i __C)7939 __m128i test_mm_ternarylogic_epi64(__m128i __A, __m128i __B, __m128i __C) {
7940   // CHECK-LABEL: @test_mm_ternarylogic_epi64
7941   // CHECK: @llvm.x86.avx512.pternlog.q.128
7942   return _mm_ternarylogic_epi64(__A, __B, __C, 4);
7943 }
7944 
test_mm_mask_ternarylogic_epi64(__m128i __A,__mmask8 __U,__m128i __B,__m128i __C)7945 __m128i test_mm_mask_ternarylogic_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
7946   // CHECK-LABEL: @test_mm_mask_ternarylogic_epi64
7947   // CHECK: @llvm.x86.avx512.pternlog.q.128
7948   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7949   return _mm_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
7950 }
7951 
test_mm_maskz_ternarylogic_epi64(__mmask8 __U,__m128i __A,__m128i __B,__m128i __C)7952 __m128i test_mm_maskz_ternarylogic_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
7953   // CHECK-LABEL: @test_mm_maskz_ternarylogic_epi64
7954   // CHECK: @llvm.x86.avx512.pternlog.q.128
7955   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> zeroinitializer
7956   return _mm_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
7957 }
7958 
test_mm256_ternarylogic_epi64(__m256i __A,__m256i __B,__m256i __C)7959 __m256i test_mm256_ternarylogic_epi64(__m256i __A, __m256i __B, __m256i __C) {
7960   // CHECK-LABEL: @test_mm256_ternarylogic_epi64
7961   // CHECK: @llvm.x86.avx512.pternlog.q.256
7962   return _mm256_ternarylogic_epi64(__A, __B, __C, 4);
7963 }
7964 
test_mm256_mask_ternarylogic_epi64(__m256i __A,__mmask8 __U,__m256i __B,__m256i __C)7965 __m256i test_mm256_mask_ternarylogic_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) {
7966   // CHECK-LABEL: @test_mm256_mask_ternarylogic_epi64
7967   // CHECK: @llvm.x86.avx512.pternlog.q.256
7968   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
7969   return _mm256_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
7970 }
7971 
test_mm256_maskz_ternarylogic_epi64(__mmask8 __U,__m256i __A,__m256i __B,__m256i __C)7972 __m256i test_mm256_maskz_ternarylogic_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) {
7973   // CHECK-LABEL: @test_mm256_maskz_ternarylogic_epi64
7974   // CHECK: @llvm.x86.avx512.pternlog.q.256
7975   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> zeroinitializer
7976   return _mm256_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
7977 }
test_mm256_shuffle_f32x4(__m256 __A,__m256 __B)7978 __m256 test_mm256_shuffle_f32x4(__m256 __A, __m256 __B) {
7979   // CHECK-LABEL: @test_mm256_shuffle_f32x4
7980   // 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>
7981   return _mm256_shuffle_f32x4(__A, __B, 3);
7982 }
7983 
test_mm256_mask_shuffle_f32x4(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)7984 __m256 test_mm256_mask_shuffle_f32x4(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
7985   // CHECK-LABEL: @test_mm256_mask_shuffle_f32x4
7986   // 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>
7987   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7988   return _mm256_mask_shuffle_f32x4(__W, __U, __A, __B, 3);
7989 }
7990 
test_mm256_maskz_shuffle_f32x4(__mmask8 __U,__m256 __A,__m256 __B)7991 __m256 test_mm256_maskz_shuffle_f32x4(__mmask8 __U, __m256 __A, __m256 __B) {
7992   // CHECK-LABEL: @test_mm256_maskz_shuffle_f32x4
7993   // 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>
7994   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
7995   return _mm256_maskz_shuffle_f32x4(__U, __A, __B, 3);
7996 }
7997 
test_mm256_shuffle_f64x2(__m256d __A,__m256d __B)7998 __m256d test_mm256_shuffle_f64x2(__m256d __A, __m256d __B) {
7999   // CHECK-LABEL: @test_mm256_shuffle_f64x2
8000   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8001   return _mm256_shuffle_f64x2(__A, __B, 3);
8002 }
8003 
test_mm256_mask_shuffle_f64x2(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)8004 __m256d test_mm256_mask_shuffle_f64x2(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
8005   // CHECK-LABEL: @test_mm256_mask_shuffle_f64x2
8006   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8007   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8008   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8009   return _mm256_mask_shuffle_f64x2(__W, __U, __A, __B, 3);
8010 }
8011 
test_mm256_maskz_shuffle_f64x2(__mmask8 __U,__m256d __A,__m256d __B)8012 __m256d test_mm256_maskz_shuffle_f64x2(__mmask8 __U, __m256d __A, __m256d __B) {
8013   // CHECK-LABEL: @test_mm256_maskz_shuffle_f64x2
8014   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8015   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8016   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8017   return _mm256_maskz_shuffle_f64x2(__U, __A, __B, 3);
8018 }
8019 
test_mm256_shuffle_i32x4(__m256i __A,__m256i __B)8020 __m256i test_mm256_shuffle_i32x4(__m256i __A, __m256i __B) {
8021   // CHECK-LABEL: @test_mm256_shuffle_i32x4
8022   // 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>
8023   return _mm256_shuffle_i32x4(__A, __B, 3);
8024 }
8025 
test_mm256_mask_shuffle_i32x4(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)8026 __m256i test_mm256_mask_shuffle_i32x4(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
8027   // CHECK-LABEL: @test_mm256_mask_shuffle_i32x4
8028   // 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>
8029   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8030   return _mm256_mask_shuffle_i32x4(__W, __U, __A, __B, 3);
8031 }
8032 
test_mm256_maskz_shuffle_i32x4(__mmask8 __U,__m256i __A,__m256i __B)8033 __m256i test_mm256_maskz_shuffle_i32x4(__mmask8 __U, __m256i __A, __m256i __B) {
8034   // CHECK-LABEL: @test_mm256_maskz_shuffle_i32x4
8035   // 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>
8036   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8037   return _mm256_maskz_shuffle_i32x4(__U, __A, __B, 3);
8038 }
8039 
test_mm256_shuffle_i64x2(__m256i __A,__m256i __B)8040 __m256i test_mm256_shuffle_i64x2(__m256i __A, __m256i __B) {
8041   // CHECK-LABEL: @test_mm256_shuffle_i64x2
8042   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8043   return _mm256_shuffle_i64x2(__A, __B, 3);
8044 }
8045 
test_mm256_mask_shuffle_i64x2(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)8046 __m256i test_mm256_mask_shuffle_i64x2(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
8047   // CHECK-LABEL: @test_mm256_mask_shuffle_i64x2
8048   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8049   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8050   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8051   return _mm256_mask_shuffle_i64x2(__W, __U, __A, __B, 3);
8052 }
8053 
test_mm256_maskz_shuffle_i64x2(__mmask8 __U,__m256i __A,__m256i __B)8054 __m256i test_mm256_maskz_shuffle_i64x2(__mmask8 __U, __m256i __A, __m256i __B) {
8055   // CHECK-LABEL: @test_mm256_maskz_shuffle_i64x2
8056   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
8057   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8058   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8059   return _mm256_maskz_shuffle_i64x2(__U, __A, __B, 3);
8060 }
8061 
test_mm_mask_shuffle_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)8062 __m128d test_mm_mask_shuffle_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
8063   // CHECK-LABEL: @test_mm_mask_shuffle_pd
8064   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
8065   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
8066   return _mm_mask_shuffle_pd(__W, __U, __A, __B, 3);
8067 }
8068 
test_mm_maskz_shuffle_pd(__mmask8 __U,__m128d __A,__m128d __B)8069 __m128d test_mm_maskz_shuffle_pd(__mmask8 __U, __m128d __A, __m128d __B) {
8070   // CHECK-LABEL: @test_mm_maskz_shuffle_pd
8071   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
8072   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
8073   return _mm_maskz_shuffle_pd(__U, __A, __B, 3);
8074 }
8075 
test_mm256_mask_shuffle_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)8076 __m256d test_mm256_mask_shuffle_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
8077   // CHECK-LABEL: @test_mm256_mask_shuffle_pd
8078   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 2, i32 6>
8079   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8080   return _mm256_mask_shuffle_pd(__W, __U, __A, __B, 3);
8081 }
8082 
test_mm256_maskz_shuffle_pd(__mmask8 __U,__m256d __A,__m256d __B)8083 __m256d test_mm256_maskz_shuffle_pd(__mmask8 __U, __m256d __A, __m256d __B) {
8084   // CHECK-LABEL: @test_mm256_maskz_shuffle_pd
8085   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 2, i32 6>
8086   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8087   return _mm256_maskz_shuffle_pd(__U, __A, __B, 3);
8088 }
8089 
test_mm_mask_shuffle_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)8090 __m128 test_mm_mask_shuffle_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
8091   // CHECK-LABEL: @test_mm_mask_shuffle_ps
8092   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 4>
8093   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8094   return _mm_mask_shuffle_ps(__W, __U, __A, __B, 4);
8095 }
8096 
test_mm_maskz_shuffle_ps(__mmask8 __U,__m128 __A,__m128 __B)8097 __m128 test_mm_maskz_shuffle_ps(__mmask8 __U, __m128 __A, __m128 __B) {
8098   // CHECK-LABEL: @test_mm_maskz_shuffle_ps
8099   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 4>
8100   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8101   return _mm_maskz_shuffle_ps(__U, __A, __B, 4);
8102 }
8103 
test_mm256_mask_shuffle_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)8104 __m256 test_mm256_mask_shuffle_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
8105   // CHECK-LABEL: @test_mm256_mask_shuffle_ps
8106   // 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>
8107   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8108   return _mm256_mask_shuffle_ps(__W, __U, __A, __B, 4);
8109 }
8110 
test_mm256_maskz_shuffle_ps(__mmask8 __U,__m256 __A,__m256 __B)8111 __m256 test_mm256_maskz_shuffle_ps(__mmask8 __U, __m256 __A, __m256 __B) {
8112   // CHECK-LABEL: @test_mm256_maskz_shuffle_ps
8113   // 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>
8114   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8115   return _mm256_maskz_shuffle_ps(__U, __A, __B, 4);
8116 }
8117 
test_mm_rsqrt14_pd(__m128d __A)8118 __m128d test_mm_rsqrt14_pd(__m128d __A) {
8119   // CHECK-LABEL: @test_mm_rsqrt14_pd
8120   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8121   return _mm_rsqrt14_pd(__A);
8122 }
8123 
test_mm_mask_rsqrt14_pd(__m128d __W,__mmask8 __U,__m128d __A)8124 __m128d test_mm_mask_rsqrt14_pd(__m128d __W, __mmask8 __U, __m128d __A) {
8125   // CHECK-LABEL: @test_mm_mask_rsqrt14_pd
8126   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8127   return _mm_mask_rsqrt14_pd(__W, __U, __A);
8128 }
8129 
test_mm_maskz_rsqrt14_pd(__mmask8 __U,__m128d __A)8130 __m128d test_mm_maskz_rsqrt14_pd(__mmask8 __U, __m128d __A) {
8131   // CHECK-LABEL: @test_mm_maskz_rsqrt14_pd
8132   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
8133   return _mm_maskz_rsqrt14_pd(__U, __A);
8134 }
8135 
test_mm256_rsqrt14_pd(__m256d __A)8136 __m256d test_mm256_rsqrt14_pd(__m256d __A) {
8137   // CHECK-LABEL: @test_mm256_rsqrt14_pd
8138   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8139   return _mm256_rsqrt14_pd(__A);
8140 }
8141 
test_mm256_mask_rsqrt14_pd(__m256d __W,__mmask8 __U,__m256d __A)8142 __m256d test_mm256_mask_rsqrt14_pd(__m256d __W, __mmask8 __U, __m256d __A) {
8143   // CHECK-LABEL: @test_mm256_mask_rsqrt14_pd
8144   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8145   return _mm256_mask_rsqrt14_pd(__W, __U, __A);
8146 }
8147 
test_mm256_maskz_rsqrt14_pd(__mmask8 __U,__m256d __A)8148 __m256d test_mm256_maskz_rsqrt14_pd(__mmask8 __U, __m256d __A) {
8149   // CHECK-LABEL: @test_mm256_maskz_rsqrt14_pd
8150   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
8151   return _mm256_maskz_rsqrt14_pd(__U, __A);
8152 }
8153 
test_mm_rsqrt14_ps(__m128 __A)8154 __m128 test_mm_rsqrt14_ps(__m128 __A) {
8155   // CHECK-LABEL: @test_mm_rsqrt14_ps
8156   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8157   return _mm_rsqrt14_ps(__A);
8158 }
8159 
test_mm_mask_rsqrt14_ps(__m128 __W,__mmask8 __U,__m128 __A)8160 __m128 test_mm_mask_rsqrt14_ps(__m128 __W, __mmask8 __U, __m128 __A) {
8161   // CHECK-LABEL: @test_mm_mask_rsqrt14_ps
8162   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8163   return _mm_mask_rsqrt14_ps(__W, __U, __A);
8164 }
8165 
test_mm_maskz_rsqrt14_ps(__mmask8 __U,__m128 __A)8166 __m128 test_mm_maskz_rsqrt14_ps(__mmask8 __U, __m128 __A) {
8167   // CHECK-LABEL: @test_mm_maskz_rsqrt14_ps
8168   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
8169   return _mm_maskz_rsqrt14_ps(__U, __A);
8170 }
8171 
test_mm256_rsqrt14_ps(__m256 __A)8172 __m256 test_mm256_rsqrt14_ps(__m256 __A) {
8173   // CHECK-LABEL: @test_mm256_rsqrt14_ps
8174   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8175   return _mm256_rsqrt14_ps(__A);
8176 }
8177 
test_mm256_mask_rsqrt14_ps(__m256 __W,__mmask8 __U,__m256 __A)8178 __m256 test_mm256_mask_rsqrt14_ps(__m256 __W, __mmask8 __U, __m256 __A) {
8179   // CHECK-LABEL: @test_mm256_mask_rsqrt14_ps
8180   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8181   return _mm256_mask_rsqrt14_ps(__W, __U, __A);
8182 }
8183 
test_mm256_maskz_rsqrt14_ps(__mmask8 __U,__m256 __A)8184 __m256 test_mm256_maskz_rsqrt14_ps(__mmask8 __U, __m256 __A) {
8185   // CHECK-LABEL: @test_mm256_maskz_rsqrt14_ps
8186   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
8187   return _mm256_maskz_rsqrt14_ps(__U, __A);
8188 }
8189 
test_mm256_broadcast_f32x4(__m128 __A)8190 __m256 test_mm256_broadcast_f32x4(__m128 __A) {
8191   // CHECK-LABEL: @test_mm256_broadcast_f32x4
8192   // 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>
8193   return _mm256_broadcast_f32x4(__A);
8194 }
8195 
test_mm256_mask_broadcast_f32x4(__m256 __O,__mmask8 __M,__m128 __A)8196 __m256 test_mm256_mask_broadcast_f32x4(__m256 __O, __mmask8 __M, __m128 __A) {
8197   // CHECK-LABEL: @test_mm256_mask_broadcast_f32x4
8198   // 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>
8199   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8200   return _mm256_mask_broadcast_f32x4(__O, __M, __A);
8201 }
8202 
test_mm256_maskz_broadcast_f32x4(__mmask8 __M,__m128 __A)8203 __m256 test_mm256_maskz_broadcast_f32x4(__mmask8 __M, __m128 __A) {
8204   // CHECK-LABEL: @test_mm256_maskz_broadcast_f32x4
8205   // 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>
8206   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8207   return _mm256_maskz_broadcast_f32x4(__M, __A);
8208 }
8209 
test_mm256_broadcast_i32x4(__m128i const * __A)8210 __m256i test_mm256_broadcast_i32x4(__m128i const* __A) {
8211   // CHECK-LABEL: @test_mm256_broadcast_i32x4
8212   // 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>
8213   return _mm256_broadcast_i32x4(_mm_loadu_si128(__A));
8214 }
8215 
test_mm256_mask_broadcast_i32x4(__m256i __O,__mmask8 __M,__m128i const * __A)8216 __m256i test_mm256_mask_broadcast_i32x4(__m256i __O, __mmask8 __M, __m128i const* __A) {
8217   // CHECK-LABEL: @test_mm256_mask_broadcast_i32x4
8218   // 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>
8219   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8220   return _mm256_mask_broadcast_i32x4(__O, __M, _mm_loadu_si128(__A));
8221 }
8222 
test_mm256_maskz_broadcast_i32x4(__mmask8 __M,__m128i const * __A)8223 __m256i test_mm256_maskz_broadcast_i32x4(__mmask8 __M, __m128i const* __A) {
8224   // CHECK-LABEL: @test_mm256_maskz_broadcast_i32x4
8225   // 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>
8226   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8227   return _mm256_maskz_broadcast_i32x4(__M, _mm_loadu_si128(__A));
8228 }
8229 
test_mm256_mask_broadcastsd_pd(__m256d __O,__mmask8 __M,__m128d __A)8230 __m256d test_mm256_mask_broadcastsd_pd(__m256d __O, __mmask8 __M, __m128d __A) {
8231   // CHECK-LABEL: @test_mm256_mask_broadcastsd_pd
8232   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer
8233   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8234   return _mm256_mask_broadcastsd_pd(__O, __M, __A);
8235 }
8236 
test_mm256_maskz_broadcastsd_pd(__mmask8 __M,__m128d __A)8237 __m256d test_mm256_maskz_broadcastsd_pd(__mmask8 __M, __m128d __A) {
8238   // CHECK-LABEL: @test_mm256_maskz_broadcastsd_pd
8239   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer
8240   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
8241   return _mm256_maskz_broadcastsd_pd(__M, __A);
8242 }
8243 
test_mm_mask_broadcastss_ps(__m128 __O,__mmask8 __M,__m128 __A)8244 __m128 test_mm_mask_broadcastss_ps(__m128 __O, __mmask8 __M, __m128 __A) {
8245   // CHECK-LABEL: @test_mm_mask_broadcastss_ps
8246   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer
8247   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8248   return _mm_mask_broadcastss_ps(__O, __M, __A);
8249 }
8250 
test_mm_maskz_broadcastss_ps(__mmask8 __M,__m128 __A)8251 __m128 test_mm_maskz_broadcastss_ps(__mmask8 __M, __m128 __A) {
8252   // CHECK-LABEL: @test_mm_maskz_broadcastss_ps
8253   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer
8254   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
8255   return _mm_maskz_broadcastss_ps(__M, __A);
8256 }
8257 
test_mm256_mask_broadcastss_ps(__m256 __O,__mmask8 __M,__m128 __A)8258 __m256 test_mm256_mask_broadcastss_ps(__m256 __O, __mmask8 __M, __m128 __A) {
8259   // CHECK-LABEL: @test_mm256_mask_broadcastss_ps
8260   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer
8261   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8262   return _mm256_mask_broadcastss_ps(__O, __M, __A);
8263 }
8264 
test_mm256_maskz_broadcastss_ps(__mmask8 __M,__m128 __A)8265 __m256 test_mm256_maskz_broadcastss_ps(__mmask8 __M, __m128 __A) {
8266   // CHECK-LABEL: @test_mm256_maskz_broadcastss_ps
8267   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer
8268   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
8269   return _mm256_maskz_broadcastss_ps(__M, __A);
8270 }
8271 
test_mm_mask_broadcastd_epi32(__m128i __O,__mmask8 __M,__m128i __A)8272 __m128i test_mm_mask_broadcastd_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
8273   // CHECK-LABEL: @test_mm_mask_broadcastd_epi32
8274   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
8275   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8276   return _mm_mask_broadcastd_epi32(__O, __M, __A);
8277 }
8278 
test_mm_maskz_broadcastd_epi32(__mmask8 __M,__m128i __A)8279 __m128i test_mm_maskz_broadcastd_epi32(__mmask8 __M, __m128i __A) {
8280   // CHECK-LABEL: @test_mm_maskz_broadcastd_epi32
8281   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
8282   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8283   return _mm_maskz_broadcastd_epi32(__M, __A);
8284 }
8285 
test_mm256_mask_broadcastd_epi32(__m256i __O,__mmask8 __M,__m128i __A)8286 __m256i test_mm256_mask_broadcastd_epi32(__m256i __O, __mmask8 __M, __m128i __A) {
8287   // CHECK-LABEL: @test_mm256_mask_broadcastd_epi32
8288   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer
8289   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8290   return _mm256_mask_broadcastd_epi32(__O, __M, __A);
8291 }
8292 
test_mm256_maskz_broadcastd_epi32(__mmask8 __M,__m128i __A)8293 __m256i test_mm256_maskz_broadcastd_epi32(__mmask8 __M, __m128i __A) {
8294   // CHECK-LABEL: @test_mm256_maskz_broadcastd_epi32
8295   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer
8296   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
8297   return _mm256_maskz_broadcastd_epi32(__M, __A);
8298 }
8299 
test_mm_mask_broadcastq_epi64(__m128i __O,__mmask8 __M,__m128i __A)8300 __m128i test_mm_mask_broadcastq_epi64(__m128i __O, __mmask8 __M, __m128i __A) {
8301   // CHECK-LABEL: @test_mm_mask_broadcastq_epi64
8302   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer
8303   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
8304   return _mm_mask_broadcastq_epi64(__O, __M, __A);
8305 }
8306 
test_mm_maskz_broadcastq_epi64(__mmask8 __M,__m128i __A)8307 __m128i test_mm_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
8308   // CHECK-LABEL: @test_mm_maskz_broadcastq_epi64
8309   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer
8310   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
8311   return _mm_maskz_broadcastq_epi64(__M, __A);
8312 }
8313 
test_mm256_mask_broadcastq_epi64(__m256i __O,__mmask8 __M,__m128i __A)8314 __m256i test_mm256_mask_broadcastq_epi64(__m256i __O, __mmask8 __M, __m128i __A) {
8315   // CHECK-LABEL: @test_mm256_mask_broadcastq_epi64
8316   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer
8317   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8318   return _mm256_mask_broadcastq_epi64(__O, __M, __A);
8319 }
8320 
test_mm256_maskz_broadcastq_epi64(__mmask8 __M,__m128i __A)8321 __m256i test_mm256_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
8322   // CHECK-LABEL: @test_mm256_maskz_broadcastq_epi64
8323   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer
8324   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8325   return _mm256_maskz_broadcastq_epi64(__M, __A);
8326 }
8327 
test_mm_cvtsepi32_epi8(__m128i __A)8328 __m128i test_mm_cvtsepi32_epi8(__m128i __A) {
8329   // CHECK-LABEL: @test_mm_cvtsepi32_epi8
8330   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8331   return _mm_cvtsepi32_epi8(__A);
8332 }
8333 
test_mm_mask_cvtsepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)8334 __m128i test_mm_mask_cvtsepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8335   // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi8
8336   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8337   return _mm_mask_cvtsepi32_epi8(__O, __M, __A);
8338 }
8339 
test_mm_maskz_cvtsepi32_epi8(__mmask8 __M,__m128i __A)8340 __m128i test_mm_maskz_cvtsepi32_epi8(__mmask8 __M, __m128i __A) {
8341   // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi8
8342   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
8343   return _mm_maskz_cvtsepi32_epi8(__M, __A);
8344 }
8345 
test_mm_mask_cvtsepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8346 void test_mm_mask_cvtsepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8347   // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi8
8348   // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.128
8349   return _mm_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
8350 }
8351 
test_mm256_cvtsepi32_epi8(__m256i __A)8352 __m128i test_mm256_cvtsepi32_epi8(__m256i __A) {
8353   // CHECK-LABEL: @test_mm256_cvtsepi32_epi8
8354   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8355   return _mm256_cvtsepi32_epi8(__A);
8356 }
8357 
test_mm256_mask_cvtsepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)8358 __m128i test_mm256_mask_cvtsepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8359   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi8
8360   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8361   return _mm256_mask_cvtsepi32_epi8(__O, __M, __A);
8362 }
8363 
test_mm256_maskz_cvtsepi32_epi8(__mmask8 __M,__m256i __A)8364 __m128i test_mm256_maskz_cvtsepi32_epi8(__mmask8 __M, __m256i __A) {
8365   // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi8
8366   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
8367   return _mm256_maskz_cvtsepi32_epi8(__M, __A);
8368 }
8369 
test_mm256_mask_cvtsepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8370 void test_mm256_mask_cvtsepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8371   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi8
8372   // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.256
8373   return _mm256_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
8374 }
8375 
test_mm_cvtsepi32_epi16(__m128i __A)8376 __m128i test_mm_cvtsepi32_epi16(__m128i __A) {
8377   // CHECK-LABEL: @test_mm_cvtsepi32_epi16
8378   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8379   return _mm_cvtsepi32_epi16(__A);
8380 }
8381 
test_mm_mask_cvtsepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)8382 __m128i test_mm_mask_cvtsepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8383   // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi16
8384   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8385   return _mm_mask_cvtsepi32_epi16(__O, __M, __A);
8386 }
8387 
test_mm_maskz_cvtsepi32_epi16(__mmask8 __M,__m128i __A)8388 __m128i test_mm_maskz_cvtsepi32_epi16(__mmask8 __M, __m128i __A) {
8389   // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi16
8390   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
8391   return _mm_maskz_cvtsepi32_epi16(__M, __A);
8392 }
8393 
test_mm_mask_cvtsepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8394 void test_mm_mask_cvtsepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8395   // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi16
8396   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.128
8397   return _mm_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
8398 }
8399 
test_mm256_cvtsepi32_epi16(__m256i __A)8400 __m128i test_mm256_cvtsepi32_epi16(__m256i __A) {
8401   // CHECK-LABEL: @test_mm256_cvtsepi32_epi16
8402   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8403   return _mm256_cvtsepi32_epi16(__A);
8404 }
8405 
test_mm256_mask_cvtsepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)8406 __m128i test_mm256_mask_cvtsepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8407   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi16
8408   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8409   return _mm256_mask_cvtsepi32_epi16(__O, __M, __A);
8410 }
8411 
test_mm256_maskz_cvtsepi32_epi16(__mmask8 __M,__m256i __A)8412 __m128i test_mm256_maskz_cvtsepi32_epi16(__mmask8 __M, __m256i __A) {
8413   // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi16
8414   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
8415   return _mm256_maskz_cvtsepi32_epi16(__M, __A);
8416 }
8417 
test_mm256_mask_cvtsepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8418 void test_mm256_mask_cvtsepi32_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8419   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi16
8420   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.256
8421   return _mm256_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
8422 }
8423 
test_mm_cvtsepi64_epi8(__m128i __A)8424 __m128i test_mm_cvtsepi64_epi8(__m128i __A) {
8425   // CHECK-LABEL: @test_mm_cvtsepi64_epi8
8426   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8427   return _mm_cvtsepi64_epi8(__A);
8428 }
8429 
test_mm_mask_cvtsepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)8430 __m128i test_mm_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8431   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi8
8432   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8433   return _mm_mask_cvtsepi64_epi8(__O, __M, __A);
8434 }
8435 
test_mm_maskz_cvtsepi64_epi8(__mmask8 __M,__m128i __A)8436 __m128i test_mm_maskz_cvtsepi64_epi8(__mmask8 __M, __m128i __A) {
8437   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi8
8438   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
8439   return _mm_maskz_cvtsepi64_epi8(__M, __A);
8440 }
8441 
test_mm_mask_cvtsepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8442 void test_mm_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8443   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi8
8444   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.128
8445   return _mm_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
8446 }
8447 
test_mm256_cvtsepi64_epi8(__m256i __A)8448 __m128i test_mm256_cvtsepi64_epi8(__m256i __A) {
8449   // CHECK-LABEL: @test_mm256_cvtsepi64_epi8
8450   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8451   return _mm256_cvtsepi64_epi8(__A);
8452 }
8453 
test_mm256_mask_cvtsepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)8454 __m128i test_mm256_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8455   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi8
8456   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8457   return _mm256_mask_cvtsepi64_epi8(__O, __M, __A);
8458 }
8459 
test_mm256_maskz_cvtsepi64_epi8(__mmask8 __M,__m256i __A)8460 __m128i test_mm256_maskz_cvtsepi64_epi8(__mmask8 __M, __m256i __A) {
8461   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi8
8462   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
8463   return _mm256_maskz_cvtsepi64_epi8(__M, __A);
8464 }
8465 
test_mm256_mask_cvtsepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8466 void test_mm256_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8467   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi8
8468   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.256
8469   return _mm256_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
8470 }
8471 
test_mm_cvtsepi64_epi32(__m128i __A)8472 __m128i test_mm_cvtsepi64_epi32(__m128i __A) {
8473   // CHECK-LABEL: @test_mm_cvtsepi64_epi32
8474   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8475   return _mm_cvtsepi64_epi32(__A);
8476 }
8477 
test_mm_mask_cvtsepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)8478 __m128i test_mm_mask_cvtsepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
8479   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi32
8480   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8481   return _mm_mask_cvtsepi64_epi32(__O, __M, __A);
8482 }
8483 
test_mm_maskz_cvtsepi64_epi32(__mmask8 __M,__m128i __A)8484 __m128i test_mm_maskz_cvtsepi64_epi32(__mmask8 __M, __m128i __A) {
8485   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi32
8486   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
8487   return _mm_maskz_cvtsepi64_epi32(__M, __A);
8488 }
8489 
test_mm_mask_cvtsepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)8490 void test_mm_mask_cvtsepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
8491   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi32
8492   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.128
8493   return _mm_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
8494 }
8495 
test_mm256_cvtsepi64_epi32(__m256i __A)8496 __m128i test_mm256_cvtsepi64_epi32(__m256i __A) {
8497   // CHECK-LABEL: @test_mm256_cvtsepi64_epi32
8498   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8499   return _mm256_cvtsepi64_epi32(__A);
8500 }
8501 
test_mm256_mask_cvtsepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)8502 __m128i test_mm256_mask_cvtsepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
8503   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi32
8504   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8505   return _mm256_mask_cvtsepi64_epi32(__O, __M, __A);
8506 }
8507 
test_mm256_maskz_cvtsepi64_epi32(__mmask8 __M,__m256i __A)8508 __m128i test_mm256_maskz_cvtsepi64_epi32(__mmask8 __M, __m256i __A) {
8509   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi32
8510   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
8511   return _mm256_maskz_cvtsepi64_epi32(__M, __A);
8512 }
8513 
test_mm256_mask_cvtsepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)8514 void test_mm256_mask_cvtsepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
8515   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi32
8516   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.256
8517   return _mm256_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
8518 }
8519 
test_mm_cvtsepi64_epi16(__m128i __A)8520 __m128i test_mm_cvtsepi64_epi16(__m128i __A) {
8521   // CHECK-LABEL: @test_mm_cvtsepi64_epi16
8522   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8523   return _mm_cvtsepi64_epi16(__A);
8524 }
8525 
test_mm_mask_cvtsepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)8526 __m128i test_mm_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8527   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi16
8528   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8529   return _mm_mask_cvtsepi64_epi16(__O, __M, __A);
8530 }
8531 
test_mm_maskz_cvtsepi64_epi16(__mmask8 __M,__m128i __A)8532 __m128i test_mm_maskz_cvtsepi64_epi16(__mmask8 __M, __m128i __A) {
8533   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi16
8534   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
8535   return _mm_maskz_cvtsepi64_epi16(__M, __A);
8536 }
8537 
test_mm_mask_cvtsepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8538 void test_mm_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8539   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi16
8540   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.128
8541   return _mm_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
8542 }
8543 
test_mm256_cvtsepi64_epi16(__m256i __A)8544 __m128i test_mm256_cvtsepi64_epi16(__m256i __A) {
8545   // CHECK-LABEL: @test_mm256_cvtsepi64_epi16
8546   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8547   return _mm256_cvtsepi64_epi16(__A);
8548 }
8549 
test_mm256_mask_cvtsepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)8550 __m128i test_mm256_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8551   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi16
8552   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8553   return _mm256_mask_cvtsepi64_epi16(__O, __M, __A);
8554 }
8555 
test_mm256_maskz_cvtsepi64_epi16(__mmask8 __M,__m256i __A)8556 __m128i test_mm256_maskz_cvtsepi64_epi16(__mmask8 __M, __m256i __A) {
8557   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi16
8558   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
8559   return _mm256_maskz_cvtsepi64_epi16(__M, __A);
8560 }
8561 
test_mm256_mask_cvtsepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8562 void test_mm256_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8563   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi16
8564   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.256
8565   return _mm256_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
8566 }
8567 
test_mm_cvtusepi32_epi8(__m128i __A)8568 __m128i test_mm_cvtusepi32_epi8(__m128i __A) {
8569   // CHECK-LABEL: @test_mm_cvtusepi32_epi8
8570   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8571   return _mm_cvtusepi32_epi8(__A);
8572 }
8573 
test_mm_mask_cvtusepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)8574 __m128i test_mm_mask_cvtusepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8575   // CHECK-LABEL: @test_mm_mask_cvtusepi32_epi8
8576   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8577   return _mm_mask_cvtusepi32_epi8(__O, __M, __A);
8578 }
8579 
test_mm_maskz_cvtusepi32_epi8(__mmask8 __M,__m128i __A)8580 __m128i test_mm_maskz_cvtusepi32_epi8(__mmask8 __M, __m128i __A) {
8581   // CHECK-LABEL: @test_mm_maskz_cvtusepi32_epi8
8582   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
8583   return _mm_maskz_cvtusepi32_epi8(__M, __A);
8584 }
8585 
test_mm_mask_cvtusepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8586 void test_mm_mask_cvtusepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8587   // CHECK-LABEL: @test_mm_mask_cvtusepi32_storeu_epi8
8588   // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.128
8589   return _mm_mask_cvtusepi32_storeu_epi8(__P, __M, __A);
8590 }
8591 
test_mm256_cvtusepi32_epi8(__m256i __A)8592 __m128i test_mm256_cvtusepi32_epi8(__m256i __A) {
8593   // CHECK-LABEL: @test_mm256_cvtusepi32_epi8
8594   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8595   return _mm256_cvtusepi32_epi8(__A);
8596 }
8597 
test_mm256_mask_cvtusepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)8598 __m128i test_mm256_mask_cvtusepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8599   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_epi8
8600   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8601   return _mm256_mask_cvtusepi32_epi8(__O, __M, __A);
8602 }
8603 
test_mm256_maskz_cvtusepi32_epi8(__mmask8 __M,__m256i __A)8604 __m128i test_mm256_maskz_cvtusepi32_epi8(__mmask8 __M, __m256i __A) {
8605   // CHECK-LABEL: @test_mm256_maskz_cvtusepi32_epi8
8606   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
8607   return _mm256_maskz_cvtusepi32_epi8(__M, __A);
8608 }
8609 
test_mm256_mask_cvtusepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8610 void test_mm256_mask_cvtusepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8611   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_storeu_epi8
8612   // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.256
8613   return _mm256_mask_cvtusepi32_storeu_epi8(__P, __M, __A);
8614 }
8615 
test_mm_cvtusepi32_epi16(__m128i __A)8616 __m128i test_mm_cvtusepi32_epi16(__m128i __A) {
8617   // CHECK-LABEL: @test_mm_cvtusepi32_epi16
8618   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8619   return _mm_cvtusepi32_epi16(__A);
8620 }
8621 
test_mm_mask_cvtusepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)8622 __m128i test_mm_mask_cvtusepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8623   // CHECK-LABEL: @test_mm_mask_cvtusepi32_epi16
8624   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8625   return _mm_mask_cvtusepi32_epi16(__O, __M, __A);
8626 }
8627 
test_mm_maskz_cvtusepi32_epi16(__mmask8 __M,__m128i __A)8628 __m128i test_mm_maskz_cvtusepi32_epi16(__mmask8 __M, __m128i __A) {
8629   // CHECK-LABEL: @test_mm_maskz_cvtusepi32_epi16
8630   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
8631   return _mm_maskz_cvtusepi32_epi16(__M, __A);
8632 }
8633 
test_mm_mask_cvtusepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8634 void test_mm_mask_cvtusepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8635   // CHECK-LABEL: @test_mm_mask_cvtusepi32_storeu_epi16
8636   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.128
8637   return _mm_mask_cvtusepi32_storeu_epi16(__P, __M, __A);
8638 }
8639 
test_mm256_cvtusepi32_epi16(__m256i __A)8640 __m128i test_mm256_cvtusepi32_epi16(__m256i __A) {
8641   // CHECK-LABEL: @test_mm256_cvtusepi32_epi16
8642   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8643   return _mm256_cvtusepi32_epi16(__A);
8644 }
8645 
test_mm256_mask_cvtusepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)8646 __m128i test_mm256_mask_cvtusepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8647   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_epi16
8648   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8649   return _mm256_mask_cvtusepi32_epi16(__O, __M, __A);
8650 }
8651 
test_mm256_maskz_cvtusepi32_epi16(__mmask8 __M,__m256i __A)8652 __m128i test_mm256_maskz_cvtusepi32_epi16(__mmask8 __M, __m256i __A) {
8653   // CHECK-LABEL: @test_mm256_maskz_cvtusepi32_epi16
8654   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
8655   return _mm256_maskz_cvtusepi32_epi16(__M, __A);
8656 }
8657 
test_mm256_mask_cvtusepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8658 void test_mm256_mask_cvtusepi32_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8659   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_storeu_epi16
8660   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.256
8661   return _mm256_mask_cvtusepi32_storeu_epi16(__P, __M, __A);
8662 }
8663 
test_mm_cvtusepi64_epi8(__m128i __A)8664 __m128i test_mm_cvtusepi64_epi8(__m128i __A) {
8665   // CHECK-LABEL: @test_mm_cvtusepi64_epi8
8666   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8667   return _mm_cvtusepi64_epi8(__A);
8668 }
8669 
test_mm_mask_cvtusepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)8670 __m128i test_mm_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8671   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi8
8672   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8673   return _mm_mask_cvtusepi64_epi8(__O, __M, __A);
8674 }
8675 
test_mm_maskz_cvtusepi64_epi8(__mmask8 __M,__m128i __A)8676 __m128i test_mm_maskz_cvtusepi64_epi8(__mmask8 __M, __m128i __A) {
8677   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi8
8678   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
8679   return _mm_maskz_cvtusepi64_epi8(__M, __A);
8680 }
8681 
test_mm_mask_cvtusepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8682 void test_mm_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8683   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi8
8684   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.128
8685   return _mm_mask_cvtusepi64_storeu_epi8(__P, __M, __A);
8686 }
8687 
test_mm256_cvtusepi64_epi8(__m256i __A)8688 __m128i test_mm256_cvtusepi64_epi8(__m256i __A) {
8689   // CHECK-LABEL: @test_mm256_cvtusepi64_epi8
8690   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8691   return _mm256_cvtusepi64_epi8(__A);
8692 }
8693 
test_mm256_mask_cvtusepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)8694 __m128i test_mm256_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8695   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi8
8696   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8697   return _mm256_mask_cvtusepi64_epi8(__O, __M, __A);
8698 }
8699 
test_mm256_maskz_cvtusepi64_epi8(__mmask8 __M,__m256i __A)8700 __m128i test_mm256_maskz_cvtusepi64_epi8(__mmask8 __M, __m256i __A) {
8701   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi8
8702   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
8703   return _mm256_maskz_cvtusepi64_epi8(__M, __A);
8704 }
8705 
test_mm256_mask_cvtusepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8706 void test_mm256_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8707   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi8
8708   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.256
8709   return _mm256_mask_cvtusepi64_storeu_epi8(__P, __M, __A);
8710 }
8711 
test_mm_cvtusepi64_epi32(__m128i __A)8712 __m128i test_mm_cvtusepi64_epi32(__m128i __A) {
8713   // CHECK-LABEL: @test_mm_cvtusepi64_epi32
8714   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8715   return _mm_cvtusepi64_epi32(__A);
8716 }
8717 
test_mm_mask_cvtusepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)8718 __m128i test_mm_mask_cvtusepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
8719   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi32
8720   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8721   return _mm_mask_cvtusepi64_epi32(__O, __M, __A);
8722 }
8723 
test_mm_maskz_cvtusepi64_epi32(__mmask8 __M,__m128i __A)8724 __m128i test_mm_maskz_cvtusepi64_epi32(__mmask8 __M, __m128i __A) {
8725   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi32
8726   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
8727   return _mm_maskz_cvtusepi64_epi32(__M, __A);
8728 }
8729 
test_mm_mask_cvtusepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)8730 void test_mm_mask_cvtusepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
8731   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi32
8732   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.128
8733   return _mm_mask_cvtusepi64_storeu_epi32(__P, __M, __A);
8734 }
8735 
test_mm256_cvtusepi64_epi32(__m256i __A)8736 __m128i test_mm256_cvtusepi64_epi32(__m256i __A) {
8737   // CHECK-LABEL: @test_mm256_cvtusepi64_epi32
8738   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8739   return _mm256_cvtusepi64_epi32(__A);
8740 }
8741 
test_mm256_mask_cvtusepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)8742 __m128i test_mm256_mask_cvtusepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
8743   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi32
8744   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8745   return _mm256_mask_cvtusepi64_epi32(__O, __M, __A);
8746 }
8747 
test_mm256_maskz_cvtusepi64_epi32(__mmask8 __M,__m256i __A)8748 __m128i test_mm256_maskz_cvtusepi64_epi32(__mmask8 __M, __m256i __A) {
8749   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi32
8750   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
8751   return _mm256_maskz_cvtusepi64_epi32(__M, __A);
8752 }
8753 
test_mm256_mask_cvtusepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)8754 void test_mm256_mask_cvtusepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
8755   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi32
8756   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.256
8757   return _mm256_mask_cvtusepi64_storeu_epi32(__P, __M, __A);
8758 }
8759 
test_mm_cvtusepi64_epi16(__m128i __A)8760 __m128i test_mm_cvtusepi64_epi16(__m128i __A) {
8761   // CHECK-LABEL: @test_mm_cvtusepi64_epi16
8762   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8763   return _mm_cvtusepi64_epi16(__A);
8764 }
8765 
test_mm_mask_cvtusepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)8766 __m128i test_mm_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8767   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi16
8768   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8769   return _mm_mask_cvtusepi64_epi16(__O, __M, __A);
8770 }
8771 
test_mm_maskz_cvtusepi64_epi16(__mmask8 __M,__m128i __A)8772 __m128i test_mm_maskz_cvtusepi64_epi16(__mmask8 __M, __m128i __A) {
8773   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi16
8774   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
8775   return _mm_maskz_cvtusepi64_epi16(__M, __A);
8776 }
8777 
test_mm_mask_cvtusepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8778 void test_mm_mask_cvtusepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8779   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi16
8780   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.128
8781   return _mm_mask_cvtusepi64_storeu_epi16(__P, __M, __A);
8782 }
8783 
test_mm256_cvtusepi64_epi16(__m256i __A)8784 __m128i test_mm256_cvtusepi64_epi16(__m256i __A) {
8785   // CHECK-LABEL: @test_mm256_cvtusepi64_epi16
8786   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8787   return _mm256_cvtusepi64_epi16(__A);
8788 }
8789 
test_mm256_mask_cvtusepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)8790 __m128i test_mm256_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8791   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi16
8792   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8793   return _mm256_mask_cvtusepi64_epi16(__O, __M, __A);
8794 }
8795 
test_mm256_maskz_cvtusepi64_epi16(__mmask8 __M,__m256i __A)8796 __m128i test_mm256_maskz_cvtusepi64_epi16(__mmask8 __M, __m256i __A) {
8797   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi16
8798   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
8799   return _mm256_maskz_cvtusepi64_epi16(__M, __A);
8800 }
8801 
test_mm256_mask_cvtusepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8802 void test_mm256_mask_cvtusepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
8803   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi16
8804   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.256
8805   return _mm256_mask_cvtusepi64_storeu_epi16(__P, __M, __A);
8806 }
8807 
test_mm_cvtepi32_epi8(__m128i __A)8808 __m128i test_mm_cvtepi32_epi8(__m128i __A) {
8809   // CHECK-LABEL: @test_mm_cvtepi32_epi8
8810   // CHECK: trunc <4 x i32> %{{.*}} to <4 x i8>
8811   // 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>
8812   return _mm_cvtepi32_epi8(__A);
8813 }
8814 
test_mm_mask_cvtepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)8815 __m128i test_mm_mask_cvtepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8816   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi8
8817   // CHECK: @llvm.x86.avx512.mask.pmov.db.128
8818   return _mm_mask_cvtepi32_epi8(__O, __M, __A);
8819 }
8820 
test_mm_maskz_cvtepi32_epi8(__mmask8 __M,__m128i __A)8821 __m128i test_mm_maskz_cvtepi32_epi8(__mmask8 __M, __m128i __A) {
8822   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi8
8823   // CHECK: @llvm.x86.avx512.mask.pmov.db.128
8824   return _mm_maskz_cvtepi32_epi8(__M, __A);
8825 }
8826 
test_mm_mask_cvtepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8827 void test_mm_mask_cvtepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8828   // CHECK-LABEL: @test_mm_mask_cvtepi32_storeu_epi8
8829   // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.128
8830   return _mm_mask_cvtepi32_storeu_epi8(__P, __M, __A);
8831 }
8832 
test_mm256_cvtepi32_epi8(__m256i __A)8833 __m128i test_mm256_cvtepi32_epi8(__m256i __A) {
8834   // CHECK-LABEL: @test_mm256_cvtepi32_epi8
8835   // CHECK: trunc <8 x i32> %{{.*}} to <8 x i8>
8836   // 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>
8837   return _mm256_cvtepi32_epi8(__A);
8838 }
8839 
test_mm256_mask_cvtepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)8840 __m128i test_mm256_mask_cvtepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8841   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi8
8842   // CHECK: @llvm.x86.avx512.mask.pmov.db.256
8843   return _mm256_mask_cvtepi32_epi8(__O, __M, __A);
8844 }
8845 
test_mm256_maskz_cvtepi32_epi8(__mmask8 __M,__m256i __A)8846 __m128i test_mm256_maskz_cvtepi32_epi8(__mmask8 __M, __m256i __A) {
8847   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi8
8848   // CHECK: @llvm.x86.avx512.mask.pmov.db.256
8849   return _mm256_maskz_cvtepi32_epi8(__M, __A);
8850 }
8851 
test_mm256_mask_cvtepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8852 void test_mm256_mask_cvtepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8853   // CHECK-LABEL: @test_mm256_mask_cvtepi32_storeu_epi8
8854   // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.256
8855   return _mm256_mask_cvtepi32_storeu_epi8(__P, __M, __A);
8856 }
8857 
test_mm_cvtepi32_epi16(__m128i __A)8858 __m128i test_mm_cvtepi32_epi16(__m128i __A) {
8859   // CHECK-LABEL: @test_mm_cvtepi32_epi16
8860   // CHECK: trunc <4 x i32> %{{.*}} to <4 x i16>
8861   // 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>
8862   return _mm_cvtepi32_epi16(__A);
8863 }
8864 
test_mm_mask_cvtepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)8865 __m128i test_mm_mask_cvtepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
8866   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi16
8867   // CHECK: @llvm.x86.avx512.mask.pmov.dw.128
8868   return _mm_mask_cvtepi32_epi16(__O, __M, __A);
8869 }
8870 
test_mm_maskz_cvtepi32_epi16(__mmask8 __M,__m128i __A)8871 __m128i test_mm_maskz_cvtepi32_epi16(__mmask8 __M, __m128i __A) {
8872   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi16
8873   // CHECK: @llvm.x86.avx512.mask.pmov.dw.128
8874   return _mm_maskz_cvtepi32_epi16(__M, __A);
8875 }
8876 
test_mm_mask_cvtepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)8877 void test_mm_mask_cvtepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
8878   // CHECK-LABEL: @test_mm_mask_cvtepi32_storeu_epi16
8879   // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.128
8880   return _mm_mask_cvtepi32_storeu_epi16(__P, __M, __A);
8881 }
8882 
test_mm256_cvtepi32_epi16(__m256i __A)8883 __m128i test_mm256_cvtepi32_epi16(__m256i __A) {
8884   // CHECK-LABEL: @test_mm256_cvtepi32_epi16
8885   // CHECK: trunc <8 x i32> %{{.*}} to <8 x i16>
8886   return _mm256_cvtepi32_epi16(__A);
8887 }
8888 
test_mm256_mask_cvtepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)8889 __m128i test_mm256_mask_cvtepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
8890   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi16
8891   // CHECK: @llvm.x86.avx512.mask.pmov.dw.256
8892   return _mm256_mask_cvtepi32_epi16(__O, __M, __A);
8893 }
8894 
test_mm256_maskz_cvtepi32_epi16(__mmask8 __M,__m256i __A)8895 __m128i test_mm256_maskz_cvtepi32_epi16(__mmask8 __M, __m256i __A) {
8896   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi16
8897   // CHECK: @llvm.x86.avx512.mask.pmov.dw.256
8898   return _mm256_maskz_cvtepi32_epi16(__M, __A);
8899 }
8900 
test_mm256_mask_cvtepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)8901 void test_mm256_mask_cvtepi32_storeu_epi16(void *  __P, __mmask8 __M, __m256i __A) {
8902   // CHECK-LABEL: @test_mm256_mask_cvtepi32_storeu_epi16
8903   // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.256
8904   return _mm256_mask_cvtepi32_storeu_epi16(__P, __M, __A);
8905 }
8906 
test_mm_cvtepi64_epi8(__m128i __A)8907 __m128i test_mm_cvtepi64_epi8(__m128i __A) {
8908   // CHECK-LABEL: @test_mm_cvtepi64_epi8
8909   // CHECK: trunc <2 x i64> %{{.*}} to <2 x i8>
8910   // 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>
8911   return _mm_cvtepi64_epi8(__A);
8912 }
8913 
test_mm_mask_cvtepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)8914 __m128i test_mm_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
8915   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi8
8916   // CHECK: @llvm.x86.avx512.mask.pmov.qb.128
8917   return _mm_mask_cvtepi64_epi8(__O, __M, __A);
8918 }
8919 
test_mm_maskz_cvtepi64_epi8(__mmask8 __M,__m128i __A)8920 __m128i test_mm_maskz_cvtepi64_epi8(__mmask8 __M, __m128i __A) {
8921   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi8
8922   // CHECK: @llvm.x86.avx512.mask.pmov.qb.128
8923   return _mm_maskz_cvtepi64_epi8(__M, __A);
8924 }
8925 
test_mm_mask_cvtepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)8926 void test_mm_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
8927   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi8
8928   // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.128
8929   return _mm_mask_cvtepi64_storeu_epi8(__P, __M, __A);
8930 }
8931 
test_mm256_cvtepi64_epi8(__m256i __A)8932 __m128i test_mm256_cvtepi64_epi8(__m256i __A) {
8933   // CHECK-LABEL: @test_mm256_cvtepi64_epi8
8934   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i8>
8935   // 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>
8936   return _mm256_cvtepi64_epi8(__A);
8937 }
8938 
test_mm256_mask_cvtepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)8939 __m128i test_mm256_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
8940   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi8
8941   // CHECK: @llvm.x86.avx512.mask.pmov.qb.256
8942   return _mm256_mask_cvtepi64_epi8(__O, __M, __A);
8943 }
8944 
test_mm256_maskz_cvtepi64_epi8(__mmask8 __M,__m256i __A)8945 __m128i test_mm256_maskz_cvtepi64_epi8(__mmask8 __M, __m256i __A) {
8946   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi8
8947   // CHECK: @llvm.x86.avx512.mask.pmov.qb.256
8948   return _mm256_maskz_cvtepi64_epi8(__M, __A);
8949 }
8950 
test_mm256_mask_cvtepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)8951 void test_mm256_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
8952   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi8
8953   // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.256
8954   return _mm256_mask_cvtepi64_storeu_epi8(__P, __M, __A);
8955 }
8956 
test_mm_cvtepi64_epi32(__m128i __A)8957 __m128i test_mm_cvtepi64_epi32(__m128i __A) {
8958   // CHECK-LABEL: @test_mm_cvtepi64_epi32
8959   // CHECK: trunc <2 x i64> %{{.*}} to <2 x i32>
8960   // CHECK: shufflevector <2 x i32> %{{.*}}, <2 x i32> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
8961   return _mm_cvtepi64_epi32(__A);
8962 }
8963 
test_mm_mask_cvtepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)8964 __m128i test_mm_mask_cvtepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
8965   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi32
8966   // CHECK: @llvm.x86.avx512.mask.pmov.qd.128
8967   return _mm_mask_cvtepi64_epi32(__O, __M, __A);
8968 }
8969 
test_mm_maskz_cvtepi64_epi32(__mmask8 __M,__m128i __A)8970 __m128i test_mm_maskz_cvtepi64_epi32(__mmask8 __M, __m128i __A) {
8971   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi32
8972   // CHECK: @llvm.x86.avx512.mask.pmov.qd.128
8973   return _mm_maskz_cvtepi64_epi32(__M, __A);
8974 }
8975 
test_mm_mask_cvtepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)8976 void test_mm_mask_cvtepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
8977   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi32
8978   // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.128
8979   return _mm_mask_cvtepi64_storeu_epi32(__P, __M, __A);
8980 }
8981 
test_mm256_cvtepi64_epi32(__m256i __A)8982 __m128i test_mm256_cvtepi64_epi32(__m256i __A) {
8983   // CHECK-LABEL: @test_mm256_cvtepi64_epi32
8984   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
8985   return _mm256_cvtepi64_epi32(__A);
8986 }
8987 
test_mm256_mask_cvtepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)8988 __m128i test_mm256_mask_cvtepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
8989   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi32
8990   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
8991   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8992   return _mm256_mask_cvtepi64_epi32(__O, __M, __A);
8993 }
8994 
test_mm256_maskz_cvtepi64_epi32(__mmask8 __M,__m256i __A)8995 __m128i test_mm256_maskz_cvtepi64_epi32(__mmask8 __M, __m256i __A) {
8996   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi32
8997   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i32>
8998   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
8999   return _mm256_maskz_cvtepi64_epi32(__M, __A);
9000 }
9001 
test_mm256_mask_cvtepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)9002 void test_mm256_mask_cvtepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
9003   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi32
9004   // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.256
9005   return _mm256_mask_cvtepi64_storeu_epi32(__P, __M, __A);
9006 }
9007 
test_mm_cvtepi64_epi16(__m128i __A)9008 __m128i test_mm_cvtepi64_epi16(__m128i __A) {
9009   // CHECK-LABEL: @test_mm_cvtepi64_epi16
9010   // CHECK: trunc <2 x i64> %{{.*}} to <2 x i16>
9011   // 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>
9012   return _mm_cvtepi64_epi16(__A);
9013 }
9014 
test_mm_mask_cvtepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)9015 __m128i test_mm_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
9016   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi16
9017   // CHECK: @llvm.x86.avx512.mask.pmov.qw.128
9018   return _mm_mask_cvtepi64_epi16(__O, __M, __A);
9019 }
9020 
test_mm_maskz_cvtepi64_epi16(__mmask8 __M,__m128i __A)9021 __m128i test_mm_maskz_cvtepi64_epi16(__mmask8 __M, __m128i __A) {
9022   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi16
9023   // CHECK: @llvm.x86.avx512.mask.pmov.qw.128
9024   return _mm_maskz_cvtepi64_epi16(__M, __A);
9025 }
9026 
test_mm_mask_cvtepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)9027 void test_mm_mask_cvtepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
9028   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi16
9029   // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.128
9030   return _mm_mask_cvtepi64_storeu_epi16(__P, __M, __A);
9031 }
9032 
test_mm256_cvtepi64_epi16(__m256i __A)9033 __m128i test_mm256_cvtepi64_epi16(__m256i __A) {
9034   // CHECK-LABEL: @test_mm256_cvtepi64_epi16
9035   // CHECK: trunc <4 x i64> %{{.*}} to <4 x i16>
9036   // 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>
9037   return _mm256_cvtepi64_epi16(__A);
9038 }
9039 
test_mm256_mask_cvtepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)9040 __m128i test_mm256_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
9041   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi16
9042   // CHECK: @llvm.x86.avx512.mask.pmov.qw.256
9043   return _mm256_mask_cvtepi64_epi16(__O, __M, __A);
9044 }
9045 
test_mm256_maskz_cvtepi64_epi16(__mmask8 __M,__m256i __A)9046 __m128i test_mm256_maskz_cvtepi64_epi16(__mmask8 __M, __m256i __A) {
9047   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi16
9048   // CHECK: @llvm.x86.avx512.mask.pmov.qw.256
9049   return _mm256_maskz_cvtepi64_epi16(__M, __A);
9050 }
9051 
test_mm256_mask_cvtepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)9052 void test_mm256_mask_cvtepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
9053   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi16
9054   // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.256
9055   return _mm256_mask_cvtepi64_storeu_epi16(__P, __M, __A);
9056 }
9057 
test_mm256_extractf32x4_ps(__m256 __A)9058 __m128 test_mm256_extractf32x4_ps(__m256 __A) {
9059   // CHECK-LABEL: @test_mm256_extractf32x4_ps
9060   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9061   return _mm256_extractf32x4_ps(__A, 1);
9062 }
9063 
test_mm256_mask_extractf32x4_ps(__m128 __W,__mmask8 __U,__m256 __A)9064 __m128 test_mm256_mask_extractf32x4_ps(__m128 __W, __mmask8 __U, __m256 __A) {
9065   // CHECK-LABEL: @test_mm256_mask_extractf32x4_ps
9066   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9067   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9068   return _mm256_mask_extractf32x4_ps(__W, __U, __A, 1);
9069 }
9070 
test_mm256_maskz_extractf32x4_ps(__mmask8 __U,__m256 __A)9071 __m128 test_mm256_maskz_extractf32x4_ps(__mmask8 __U, __m256 __A) {
9072   // CHECK-LABEL: @test_mm256_maskz_extractf32x4_ps
9073   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9074   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9075   return _mm256_maskz_extractf32x4_ps(__U, __A, 1);
9076 }
9077 
test_mm256_extracti32x4_epi32(__m256i __A)9078 __m128i test_mm256_extracti32x4_epi32(__m256i __A) {
9079   // CHECK-LABEL: @test_mm256_extracti32x4_epi32
9080   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9081   return _mm256_extracti32x4_epi32(__A, 1);
9082 }
9083 
test_mm256_mask_extracti32x4_epi32(__m128i __W,__mmask8 __U,__m256i __A)9084 __m128i test_mm256_mask_extracti32x4_epi32(__m128i __W, __mmask8 __U, __m256i __A) {
9085   // CHECK-LABEL: @test_mm256_mask_extracti32x4_epi32
9086   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9087   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9088   return _mm256_mask_extracti32x4_epi32(__W, __U, __A, 1);
9089 }
9090 
test_mm256_maskz_extracti32x4_epi32(__mmask8 __U,__m256i __A)9091 __m128i test_mm256_maskz_extracti32x4_epi32(__mmask8 __U, __m256i __A) {
9092   // CHECK-LABEL: @test_mm256_maskz_extracti32x4_epi32
9093   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> undef, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
9094   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9095   return _mm256_maskz_extracti32x4_epi32(__U, __A, 1);
9096 }
9097 
test_mm256_insertf32x4(__m256 __A,__m128 __B)9098 __m256 test_mm256_insertf32x4(__m256 __A, __m128 __B) {
9099   // CHECK-LABEL: @test_mm256_insertf32x4
9100   // 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>
9101   return _mm256_insertf32x4(__A, __B, 1);
9102 }
9103 
test_mm256_mask_insertf32x4(__m256 __W,__mmask8 __U,__m256 __A,__m128 __B)9104 __m256 test_mm256_mask_insertf32x4(__m256 __W, __mmask8 __U, __m256 __A, __m128 __B) {
9105   // CHECK-LABEL: @test_mm256_mask_insertf32x4
9106   // 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>
9107   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9108   return _mm256_mask_insertf32x4(__W, __U, __A, __B, 1);
9109 }
9110 
test_mm256_maskz_insertf32x4(__mmask8 __U,__m256 __A,__m128 __B)9111 __m256 test_mm256_maskz_insertf32x4(__mmask8 __U, __m256 __A, __m128 __B) {
9112   // CHECK-LABEL: @test_mm256_maskz_insertf32x4
9113   // 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>
9114   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9115   return _mm256_maskz_insertf32x4(__U, __A, __B, 1);
9116 }
9117 
test_mm256_inserti32x4(__m256i __A,__m128i __B)9118 __m256i test_mm256_inserti32x4(__m256i __A, __m128i __B) {
9119   // CHECK-LABEL: @test_mm256_inserti32x4
9120   // 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>
9121   return _mm256_inserti32x4(__A, __B, 1);
9122 }
9123 
test_mm256_mask_inserti32x4(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)9124 __m256i test_mm256_mask_inserti32x4(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
9125   // CHECK-LABEL: @test_mm256_mask_inserti32x4
9126   // 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>
9127   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9128   return _mm256_mask_inserti32x4(__W, __U, __A, __B, 1);
9129 }
9130 
test_mm256_maskz_inserti32x4(__mmask8 __U,__m256i __A,__m128i __B)9131 __m256i test_mm256_maskz_inserti32x4(__mmask8 __U, __m256i __A, __m128i __B) {
9132   // CHECK-LABEL: @test_mm256_maskz_inserti32x4
9133   // 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>
9134   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9135   return _mm256_maskz_inserti32x4(__U, __A, __B, 1);
9136 }
9137 
test_mm_getmant_pd(__m128d __A)9138 __m128d test_mm_getmant_pd(__m128d __A) {
9139   // CHECK-LABEL: @test_mm_getmant_pd
9140   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9141   return _mm_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9142 }
9143 
test_mm_mask_getmant_pd(__m128d __W,__mmask8 __U,__m128d __A)9144 __m128d test_mm_mask_getmant_pd(__m128d __W, __mmask8 __U, __m128d __A) {
9145   // CHECK-LABEL: @test_mm_mask_getmant_pd
9146   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9147   return _mm_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9148 }
9149 
test_mm_maskz_getmant_pd(__mmask8 __U,__m128d __A)9150 __m128d test_mm_maskz_getmant_pd(__mmask8 __U, __m128d __A) {
9151   // CHECK-LABEL: @test_mm_maskz_getmant_pd
9152   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
9153   return _mm_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9154 }
9155 
test_mm256_getmant_pd(__m256d __A)9156 __m256d test_mm256_getmant_pd(__m256d __A) {
9157   // CHECK-LABEL: @test_mm256_getmant_pd
9158   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9159   return _mm256_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9160 }
9161 
test_mm256_mask_getmant_pd(__m256d __W,__mmask8 __U,__m256d __A)9162 __m256d test_mm256_mask_getmant_pd(__m256d __W, __mmask8 __U, __m256d __A) {
9163   // CHECK-LABEL: @test_mm256_mask_getmant_pd
9164   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9165   return _mm256_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9166 }
9167 
test_mm256_maskz_getmant_pd(__mmask8 __U,__m256d __A)9168 __m256d test_mm256_maskz_getmant_pd(__mmask8 __U, __m256d __A) {
9169   // CHECK-LABEL: @test_mm256_maskz_getmant_pd
9170   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
9171   return _mm256_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9172 }
9173 
test_mm_getmant_ps(__m128 __A)9174 __m128 test_mm_getmant_ps(__m128 __A) {
9175   // CHECK-LABEL: @test_mm_getmant_ps
9176   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9177   return _mm_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9178 }
9179 
test_mm_mask_getmant_ps(__m128 __W,__mmask8 __U,__m128 __A)9180 __m128 test_mm_mask_getmant_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9181   // CHECK-LABEL: @test_mm_mask_getmant_ps
9182   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9183   return _mm_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9184 }
9185 
test_mm_maskz_getmant_ps(__mmask8 __U,__m128 __A)9186 __m128 test_mm_maskz_getmant_ps(__mmask8 __U, __m128 __A) {
9187   // CHECK-LABEL: @test_mm_maskz_getmant_ps
9188   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
9189   return _mm_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9190 }
9191 
test_mm256_getmant_ps(__m256 __A)9192 __m256 test_mm256_getmant_ps(__m256 __A) {
9193   // CHECK-LABEL: @test_mm256_getmant_ps
9194   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9195   return _mm256_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9196 }
9197 
test_mm256_mask_getmant_ps(__m256 __W,__mmask8 __U,__m256 __A)9198 __m256 test_mm256_mask_getmant_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9199   // CHECK-LABEL: @test_mm256_mask_getmant_ps
9200   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9201   return _mm256_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9202 }
9203 
test_mm256_maskz_getmant_ps(__mmask8 __U,__m256 __A)9204 __m256 test_mm256_maskz_getmant_ps(__mmask8 __U, __m256 __A) {
9205   // CHECK-LABEL: @test_mm256_maskz_getmant_ps
9206   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
9207   return _mm256_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
9208 }
9209 
test_mm_mmask_i64gather_pd(__m128d __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9210 __m128d test_mm_mmask_i64gather_pd(__m128d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9211   // CHECK-LABEL: @test_mm_mmask_i64gather_pd
9212   // CHECK: @llvm.x86.avx512.mask.gather3div2.df
9213   return _mm_mmask_i64gather_pd(__v1_old, __mask, __index, __addr, 2);
9214 }
9215 
test_mm_mmask_i64gather_epi64(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9216 __m128i test_mm_mmask_i64gather_epi64(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9217   // CHECK-LABEL: @test_mm_mmask_i64gather_epi64
9218   // CHECK: @llvm.x86.avx512.mask.gather3div2.di
9219   return _mm_mmask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2);
9220 }
9221 
test_mm256_mmask_i64gather_pd(__m256d __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9222 __m256d test_mm256_mmask_i64gather_pd(__m256d __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9223   // CHECK-LABEL: @test_mm256_mmask_i64gather_pd
9224   // CHECK: @llvm.x86.avx512.mask.gather3div4.df
9225   return _mm256_mmask_i64gather_pd(__v1_old, __mask, __index, __addr, 2);
9226 }
9227 
test_mm256_mmask_i64gather_epi64(__m256i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9228 __m256i test_mm256_mmask_i64gather_epi64(__m256i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9229   // CHECK-LABEL: @test_mm256_mmask_i64gather_epi64
9230   // CHECK: @llvm.x86.avx512.mask.gather3div4.di
9231   return _mm256_mmask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2);
9232 }
9233 
test_mm_mmask_i64gather_ps(__m128 __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9234 __m128 test_mm_mmask_i64gather_ps(__m128 __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9235   // CHECK-LABEL: @test_mm_mmask_i64gather_ps
9236   // CHECK: @llvm.x86.avx512.mask.gather3div4.sf
9237   return _mm_mmask_i64gather_ps(__v1_old, __mask, __index, __addr, 2);
9238 }
9239 
test_mm_mmask_i64gather_epi32(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9240 __m128i test_mm_mmask_i64gather_epi32(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9241   // CHECK-LABEL: @test_mm_mmask_i64gather_epi32
9242   // CHECK: @llvm.x86.avx512.mask.gather3div4.si
9243   return _mm_mmask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2);
9244 }
9245 
test_mm256_mmask_i64gather_ps(__m128 __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9246 __m128 test_mm256_mmask_i64gather_ps(__m128 __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9247   // CHECK-LABEL: @test_mm256_mmask_i64gather_ps
9248   // CHECK: @llvm.x86.avx512.mask.gather3div8.sf
9249   return _mm256_mmask_i64gather_ps(__v1_old, __mask, __index, __addr, 2);
9250 }
9251 
test_mm256_mmask_i64gather_epi32(__m128i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9252 __m128i test_mm256_mmask_i64gather_epi32(__m128i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9253   // CHECK-LABEL: @test_mm256_mmask_i64gather_epi32
9254   // CHECK: @llvm.x86.avx512.mask.gather3div8.si
9255   return _mm256_mmask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2);
9256 }
9257 
test_mm_mask_i32gather_pd(__m128d __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9258 __m128d test_mm_mask_i32gather_pd(__m128d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9259   // CHECK-LABEL: @test_mm_mask_i32gather_pd
9260   // CHECK: @llvm.x86.avx512.mask.gather3siv2.df
9261   return _mm_mmask_i32gather_pd(__v1_old, __mask, __index, __addr, 2);
9262 }
9263 
test_mm_mask_i32gather_epi64(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9264 __m128i test_mm_mask_i32gather_epi64(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9265   // CHECK-LABEL: @test_mm_mask_i32gather_epi64
9266   // CHECK: @llvm.x86.avx512.mask.gather3siv2.di
9267   return _mm_mmask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2);
9268 }
9269 
test_mm256_mask_i32gather_pd(__m256d __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9270 __m256d test_mm256_mask_i32gather_pd(__m256d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9271   // CHECK-LABEL: @test_mm256_mask_i32gather_pd
9272   // CHECK: @llvm.x86.avx512.mask.gather3siv4.df
9273   return _mm256_mmask_i32gather_pd(__v1_old, __mask, __index, __addr, 2);
9274 }
9275 
test_mm256_mask_i32gather_epi64(__m256i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9276 __m256i test_mm256_mask_i32gather_epi64(__m256i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9277   // CHECK-LABEL: @test_mm256_mask_i32gather_epi64
9278   // CHECK: @llvm.x86.avx512.mask.gather3siv4.di
9279   return _mm256_mmask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2);
9280 }
9281 
test_mm_mask_i32gather_ps(__m128 __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9282 __m128 test_mm_mask_i32gather_ps(__m128 __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9283   // CHECK-LABEL: @test_mm_mask_i32gather_ps
9284   // CHECK: @llvm.x86.avx512.mask.gather3siv4.sf
9285   return _mm_mmask_i32gather_ps(__v1_old, __mask, __index, __addr, 2);
9286 }
9287 
test_mm_mask_i32gather_epi32(__m128i __v1_old,__mmask8 __mask,__m128i __index,void const * __addr)9288 __m128i test_mm_mask_i32gather_epi32(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
9289   // CHECK-LABEL: @test_mm_mask_i32gather_epi32
9290   // CHECK: @llvm.x86.avx512.mask.gather3siv4.si
9291   return _mm_mmask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2);
9292 }
9293 
test_mm256_mask_i32gather_ps(__m256 __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9294 __m256 test_mm256_mask_i32gather_ps(__m256 __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9295   // CHECK-LABEL: @test_mm256_mask_i32gather_ps
9296   // CHECK: @llvm.x86.avx512.mask.gather3siv8.sf
9297   return _mm256_mmask_i32gather_ps(__v1_old, __mask, __index, __addr, 2);
9298 }
9299 
test_mm256_mask_i32gather_epi32(__m256i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr)9300 __m256i test_mm256_mask_i32gather_epi32(__m256i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
9301   // CHECK-LABEL: @test_mm256_mask_i32gather_epi32
9302   // CHECK: @llvm.x86.avx512.mask.gather3siv8.si
9303   return _mm256_mmask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2);
9304 }
9305 
test_mm256_permutex_pd(__m256d __X)9306 __m256d test_mm256_permutex_pd(__m256d __X) {
9307   // CHECK-LABEL: @test_mm256_permutex_pd
9308   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9309   return _mm256_permutex_pd(__X, 3);
9310 }
9311 
test_mm256_mask_permutex_pd(__m256d __W,__mmask8 __U,__m256d __X)9312 __m256d test_mm256_mask_permutex_pd(__m256d __W, __mmask8 __U, __m256d __X) {
9313   // CHECK-LABEL: @test_mm256_mask_permutex_pd
9314   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9315   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9316   return _mm256_mask_permutex_pd(__W, __U, __X, 1);
9317 }
9318 
test_mm256_maskz_permutex_pd(__mmask8 __U,__m256d __X)9319 __m256d test_mm256_maskz_permutex_pd(__mmask8 __U, __m256d __X) {
9320   // CHECK-LABEL: @test_mm256_maskz_permutex_pd
9321   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9322   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9323   return _mm256_maskz_permutex_pd(__U, __X, 1);
9324 }
9325 
test_mm256_permutex_epi64(__m256i __X)9326 __m256i test_mm256_permutex_epi64(__m256i __X) {
9327   // CHECK-LABEL: @test_mm256_permutex_epi64
9328   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9329   return _mm256_permutex_epi64(__X, 3);
9330 }
9331 
test_mm256_mask_permutex_epi64(__m256i __W,__mmask8 __M,__m256i __X)9332 __m256i test_mm256_mask_permutex_epi64(__m256i __W, __mmask8 __M, __m256i __X) {
9333   // CHECK-LABEL: @test_mm256_mask_permutex_epi64
9334   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9335   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9336   return _mm256_mask_permutex_epi64(__W, __M, __X, 3);
9337 }
9338 
test_mm256_maskz_permutex_epi64(__mmask8 __M,__m256i __X)9339 __m256i test_mm256_maskz_permutex_epi64(__mmask8 __M, __m256i __X) {
9340   // CHECK-LABEL: @test_mm256_maskz_permutex_epi64
9341   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
9342   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9343   return _mm256_maskz_permutex_epi64(__M, __X, 3);
9344 }
9345 
test_mm256_permutexvar_pd(__m256i __X,__m256d __Y)9346 __m256d test_mm256_permutexvar_pd(__m256i __X, __m256d __Y) {
9347   // CHECK-LABEL: @test_mm256_permutexvar_pd
9348   // CHECK: @llvm.x86.avx512.permvar.df.256
9349   return _mm256_permutexvar_pd(__X, __Y);
9350 }
9351 
test_mm256_mask_permutexvar_pd(__m256d __W,__mmask8 __U,__m256i __X,__m256d __Y)9352 __m256d test_mm256_mask_permutexvar_pd(__m256d __W, __mmask8 __U, __m256i __X, __m256d __Y) {
9353   // CHECK-LABEL: @test_mm256_mask_permutexvar_pd
9354   // CHECK: @llvm.x86.avx512.permvar.df.256
9355   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9356   return _mm256_mask_permutexvar_pd(__W, __U, __X, __Y);
9357 }
9358 
test_mm256_maskz_permutexvar_pd(__mmask8 __U,__m256i __X,__m256d __Y)9359 __m256d test_mm256_maskz_permutexvar_pd(__mmask8 __U, __m256i __X, __m256d __Y) {
9360   // CHECK-LABEL: @test_mm256_maskz_permutexvar_pd
9361   // CHECK: @llvm.x86.avx512.permvar.df.256
9362   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9363   return _mm256_maskz_permutexvar_pd(__U, __X, __Y);
9364 }
9365 
test_mm256_maskz_permutexvar_epi64(__mmask8 __M,__m256i __X,__m256i __Y)9366 __m256i test_mm256_maskz_permutexvar_epi64(__mmask8 __M, __m256i __X, __m256i __Y) {
9367   // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi64
9368   // CHECK: @llvm.x86.avx512.permvar.di.256
9369   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9370   return _mm256_maskz_permutexvar_epi64(__M, __X, __Y);
9371 }
9372 
test_mm256_mask_permutexvar_epi64(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)9373 __m256i test_mm256_mask_permutexvar_epi64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) {
9374   // CHECK-LABEL: @test_mm256_mask_permutexvar_epi64
9375   // CHECK: @llvm.x86.avx512.permvar.di.256
9376   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9377   return _mm256_mask_permutexvar_epi64(__W, __M, __X, __Y);
9378 }
9379 
test_mm256_mask_permutexvar_ps(__m256 __W,__mmask8 __U,__m256i __X,__m256 __Y)9380 __m256 test_mm256_mask_permutexvar_ps(__m256 __W, __mmask8 __U, __m256i __X, __m256 __Y) {
9381   // CHECK-LABEL: @test_mm256_mask_permutexvar_ps
9382   // CHECK: @llvm.x86.avx2.permps
9383   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9384   return _mm256_mask_permutexvar_ps(__W, __U, __X, __Y);
9385 }
9386 
test_mm256_maskz_permutexvar_ps(__mmask8 __U,__m256i __X,__m256 __Y)9387 __m256 test_mm256_maskz_permutexvar_ps(__mmask8 __U, __m256i __X, __m256 __Y) {
9388   // CHECK-LABEL: @test_mm256_maskz_permutexvar_ps
9389   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9390   return _mm256_maskz_permutexvar_ps(__U, __X, __Y);
9391 }
9392 
test_mm256_permutexvar_ps(__m256i __X,__m256 __Y)9393 __m256 test_mm256_permutexvar_ps(__m256i __X, __m256 __Y) {
9394   // CHECK-LABEL: @test_mm256_permutexvar_ps
9395   // CHECK: @llvm.x86.avx2.permps
9396   return _mm256_permutexvar_ps( __X, __Y);
9397 }
9398 
test_mm256_maskz_permutexvar_epi32(__mmask8 __M,__m256i __X,__m256i __Y)9399 __m256i test_mm256_maskz_permutexvar_epi32(__mmask8 __M, __m256i __X, __m256i __Y) {
9400   // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi32
9401   // CHECK: @llvm.x86.avx2.permd
9402   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9403   return _mm256_maskz_permutexvar_epi32(__M, __X, __Y);
9404 }
9405 
test_mm256_permutexvar_epi32(__m256i __X,__m256i __Y)9406 __m256i test_mm256_permutexvar_epi32(__m256i __X, __m256i __Y) {
9407   // CHECK-LABEL: @test_mm256_permutexvar_epi32
9408   // CHECK: @llvm.x86.avx2.permd
9409   return _mm256_permutexvar_epi32(__X, __Y);
9410 }
9411 
test_mm256_mask_permutexvar_epi32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)9412 __m256i test_mm256_mask_permutexvar_epi32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) {
9413   // CHECK-LABEL: @test_mm256_mask_permutexvar_epi32
9414   // CHECK: @llvm.x86.avx2.permd
9415   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9416   return _mm256_mask_permutexvar_epi32(__W, __M, __X, __Y);
9417 }
9418 
test_mm_alignr_epi32(__m128i __A,__m128i __B)9419 __m128i test_mm_alignr_epi32(__m128i __A, __m128i __B) {
9420   // CHECK-LABEL: @test_mm_alignr_epi32
9421   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9422   return _mm_alignr_epi32(__A, __B, 1);
9423 }
9424 
test_mm_mask_alignr_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)9425 __m128i test_mm_mask_alignr_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
9426   // CHECK-LABEL: @test_mm_mask_alignr_epi32
9427   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9428   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9429   return _mm_mask_alignr_epi32(__W, __U, __A, __B, 1);
9430 }
9431 
test_mm_maskz_alignr_epi32(__mmask8 __U,__m128i __A,__m128i __B)9432 __m128i test_mm_maskz_alignr_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
9433   // CHECK-LABEL: @test_mm_maskz_alignr_epi32
9434   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9435   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9436   return _mm_maskz_alignr_epi32(__U, __A, __B, 1);
9437 }
9438 
test_mm256_alignr_epi32(__m256i __A,__m256i __B)9439 __m256i test_mm256_alignr_epi32(__m256i __A, __m256i __B) {
9440   // CHECK-LABEL: @test_mm256_alignr_epi32
9441   // 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>
9442   return _mm256_alignr_epi32(__A, __B, 1);
9443 }
9444 
test_mm256_mask_alignr_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)9445 __m256i test_mm256_mask_alignr_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
9446   // CHECK-LABEL: @test_mm256_mask_alignr_epi32
9447   // 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>
9448   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9449   return _mm256_mask_alignr_epi32(__W, __U, __A, __B, 1);
9450 }
9451 
test_mm256_maskz_alignr_epi32(__mmask8 __U,__m256i __A,__m256i __B)9452 __m256i test_mm256_maskz_alignr_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
9453   // CHECK-LABEL: @test_mm256_maskz_alignr_epi32
9454   // 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>
9455   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9456   return _mm256_maskz_alignr_epi32(__U, __A, __B, 1);
9457 }
9458 
test_mm_alignr_epi64(__m128i __A,__m128i __B)9459 __m128i test_mm_alignr_epi64(__m128i __A, __m128i __B) {
9460   // CHECK-LABEL: @test_mm_alignr_epi64
9461   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9462   return _mm_alignr_epi64(__A, __B, 1);
9463 }
9464 
test_mm_mask_alignr_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)9465 __m128i test_mm_mask_alignr_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
9466   // CHECK-LABEL: @test_mm_mask_alignr_epi64
9467   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9468   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
9469   return _mm_mask_alignr_epi64(__W, __U, __A, __B, 1);
9470 }
9471 
test_mm_maskz_alignr_epi64(__mmask8 __U,__m128i __A,__m128i __B)9472 __m128i test_mm_maskz_alignr_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
9473   // CHECK-LABEL: @test_mm_maskz_alignr_epi64
9474   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 2>
9475   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
9476   return _mm_maskz_alignr_epi64(__U, __A, __B, 1);
9477 }
9478 
test_mm256_alignr_epi64(__m256i __A,__m256i __B)9479 __m256i test_mm256_alignr_epi64(__m256i __A, __m256i __B) {
9480   // CHECK-LABEL: @test_mm256_alignr_epi64
9481   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9482   return _mm256_alignr_epi64(__A, __B, 1);
9483 }
9484 
test_mm256_mask_alignr_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)9485 __m256i test_mm256_mask_alignr_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
9486   // CHECK-LABEL: @test_mm256_mask_alignr_epi64
9487   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9488   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9489   return _mm256_mask_alignr_epi64(__W, __U, __A, __B, 1);
9490 }
9491 
test_mm256_maskz_alignr_epi64(__mmask8 __U,__m256i __A,__m256i __B)9492 __m256i test_mm256_maskz_alignr_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
9493   // CHECK-LABEL: @test_mm256_maskz_alignr_epi64
9494   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
9495   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9496   return _mm256_maskz_alignr_epi64(__U, __A, __B, 1);
9497 }
9498 
test_mm_mask_movehdup_ps(__m128 __W,__mmask8 __U,__m128 __A)9499 __m128 test_mm_mask_movehdup_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9500   // CHECK-LABEL: @test_mm_mask_movehdup_ps
9501   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
9502   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9503   return _mm_mask_movehdup_ps(__W, __U, __A);
9504 }
9505 
test_mm_maskz_movehdup_ps(__mmask8 __U,__m128 __A)9506 __m128 test_mm_maskz_movehdup_ps(__mmask8 __U, __m128 __A) {
9507   // CHECK-LABEL: @test_mm_maskz_movehdup_ps
9508   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
9509   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9510   return _mm_maskz_movehdup_ps(__U, __A);
9511 }
9512 
test_mm256_mask_movehdup_ps(__m256 __W,__mmask8 __U,__m256 __A)9513 __m256 test_mm256_mask_movehdup_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9514   // CHECK-LABEL: @test_mm256_mask_movehdup_ps
9515   // 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>
9516   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9517   return _mm256_mask_movehdup_ps(__W, __U, __A);
9518 }
9519 
test_mm256_maskz_movehdup_ps(__mmask8 __U,__m256 __A)9520 __m256 test_mm256_maskz_movehdup_ps(__mmask8 __U, __m256 __A) {
9521   // CHECK-LABEL: @test_mm256_maskz_movehdup_ps
9522   // 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>
9523   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9524   return _mm256_maskz_movehdup_ps(__U, __A);
9525 }
9526 
test_mm_mask_moveldup_ps(__m128 __W,__mmask8 __U,__m128 __A)9527 __m128 test_mm_mask_moveldup_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9528   // CHECK-LABEL: @test_mm_mask_moveldup_ps
9529   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
9530   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9531   return _mm_mask_moveldup_ps(__W, __U, __A);
9532 }
9533 
test_mm_maskz_moveldup_ps(__mmask8 __U,__m128 __A)9534 __m128 test_mm_maskz_moveldup_ps(__mmask8 __U, __m128 __A) {
9535   // CHECK-LABEL: @test_mm_maskz_moveldup_ps
9536   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
9537   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
9538   return _mm_maskz_moveldup_ps(__U, __A);
9539 }
9540 
test_mm256_mask_moveldup_ps(__m256 __W,__mmask8 __U,__m256 __A)9541 __m256 test_mm256_mask_moveldup_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9542   // CHECK-LABEL: @test_mm256_mask_moveldup_ps
9543   // 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>
9544   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9545   return _mm256_mask_moveldup_ps(__W, __U, __A);
9546 }
9547 
test_mm256_maskz_moveldup_ps(__mmask8 __U,__m256 __A)9548 __m256 test_mm256_maskz_moveldup_ps(__mmask8 __U, __m256 __A) {
9549   // CHECK-LABEL: @test_mm256_maskz_moveldup_ps
9550   // 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>
9551   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
9552   return _mm256_maskz_moveldup_ps(__U, __A);
9553 }
9554 
test_mm_mask_shuffle_epi32(__m128i __W,__mmask8 __U,__m128i __A)9555 __m128i test_mm_mask_shuffle_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
9556   // CHECK-LABEL: @test_mm_mask_shuffle_epi32
9557   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
9558   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9559   return _mm_mask_shuffle_epi32(__W, __U, __A, 1);
9560 }
9561 
test_mm_maskz_shuffle_epi32(__mmask8 __U,__m128i __A)9562 __m128i test_mm_maskz_shuffle_epi32(__mmask8 __U, __m128i __A) {
9563   // CHECK-LABEL: @test_mm_maskz_shuffle_epi32
9564   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <4 x i32> <i32 2, i32 0, i32 0, i32 0>
9565   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
9566   return _mm_maskz_shuffle_epi32(__U, __A, 2);
9567 }
9568 
test_mm256_mask_shuffle_epi32(__m256i __W,__mmask8 __U,__m256i __A)9569 __m256i test_mm256_mask_shuffle_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
9570   // CHECK-LABEL: @test_mm256_mask_shuffle_epi32
9571   // 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>
9572   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9573   return _mm256_mask_shuffle_epi32(__W, __U, __A, 2);
9574 }
9575 
test_mm256_maskz_shuffle_epi32(__mmask8 __U,__m256i __A)9576 __m256i test_mm256_maskz_shuffle_epi32(__mmask8 __U, __m256i __A) {
9577   // CHECK-LABEL: @test_mm256_maskz_shuffle_epi32
9578   // 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>
9579   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
9580   return _mm256_maskz_shuffle_epi32(__U, __A, 2);
9581 }
9582 
test_mm_mask_mov_pd(__m128d __W,__mmask8 __U,__m128d __A)9583 __m128d test_mm_mask_mov_pd(__m128d __W, __mmask8 __U, __m128d __A) {
9584   // CHECK-LABEL: @test_mm_mask_mov_pd
9585   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
9586   return _mm_mask_mov_pd(__W, __U, __A);
9587 }
9588 
test_mm_maskz_mov_pd(__mmask8 __U,__m128d __A)9589 __m128d test_mm_maskz_mov_pd(__mmask8 __U, __m128d __A) {
9590   // CHECK-LABEL: @test_mm_maskz_mov_pd
9591   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
9592   return _mm_maskz_mov_pd(__U, __A);
9593 }
9594 
test_mm256_mask_mov_pd(__m256d __W,__mmask8 __U,__m256d __A)9595 __m256d test_mm256_mask_mov_pd(__m256d __W, __mmask8 __U, __m256d __A) {
9596   // CHECK-LABEL: @test_mm256_mask_mov_pd
9597   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9598   return _mm256_mask_mov_pd(__W, __U, __A);
9599 }
9600 
test_mm256_maskz_mov_pd(__mmask8 __U,__m256d __A)9601 __m256d test_mm256_maskz_mov_pd(__mmask8 __U, __m256d __A) {
9602   // CHECK-LABEL: @test_mm256_maskz_mov_pd
9603   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
9604   return _mm256_maskz_mov_pd(__U, __A);
9605 }
9606 
test_mm_mask_mov_ps(__m128 __W,__mmask8 __U,__m128 __A)9607 __m128 test_mm_mask_mov_ps(__m128 __W, __mmask8 __U, __m128 __A) {
9608   // CHECK-LABEL: @test_mm_mask_mov_ps
9609   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9610   return _mm_mask_mov_ps(__W, __U, __A);
9611 }
9612 
test_mm_maskz_mov_ps(__mmask8 __U,__m128 __A)9613 __m128 test_mm_maskz_mov_ps(__mmask8 __U, __m128 __A) {
9614   // CHECK-LABEL: @test_mm_maskz_mov_ps
9615   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9616   return _mm_maskz_mov_ps(__U, __A);
9617 }
9618 
test_mm256_mask_mov_ps(__m256 __W,__mmask8 __U,__m256 __A)9619 __m256 test_mm256_mask_mov_ps(__m256 __W, __mmask8 __U, __m256 __A) {
9620   // CHECK-LABEL: @test_mm256_mask_mov_ps
9621   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9622   return _mm256_mask_mov_ps(__W, __U, __A);
9623 }
9624 
test_mm256_maskz_mov_ps(__mmask8 __U,__m256 __A)9625 __m256 test_mm256_maskz_mov_ps(__mmask8 __U, __m256 __A) {
9626   // CHECK-LABEL: @test_mm256_maskz_mov_ps
9627   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9628   return _mm256_maskz_mov_ps(__U, __A);
9629 }
9630 
test_mm_mask_cvtph_ps(__m128 __W,__mmask8 __U,__m128i __A)9631 __m128 test_mm_mask_cvtph_ps(__m128 __W, __mmask8 __U, __m128i __A) {
9632   // CHECK-LABEL: @test_mm_mask_cvtph_ps
9633   // CHECK: bitcast <2 x i64> %{{.*}} to <8 x i16>
9634   // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
9635   // CHECK: bitcast <4 x i16> %{{.*}} to <4 x half>
9636   // CHECK: fpext <4 x half> %{{.*}} to <4 x float>
9637   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9638   return _mm_mask_cvtph_ps(__W, __U, __A);
9639 }
9640 
test_mm_maskz_cvtph_ps(__mmask8 __U,__m128i __A)9641 __m128 test_mm_maskz_cvtph_ps(__mmask8 __U, __m128i __A) {
9642   // CHECK-LABEL: @test_mm_maskz_cvtph_ps
9643   // CHECK: bitcast <2 x i64> %{{.*}} to <8 x i16>
9644   // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
9645   // CHECK: bitcast <4 x i16> %{{.*}} to <4 x half>
9646   // CHECK: fpext <4 x half> %{{.*}} to <4 x float>
9647   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
9648   return _mm_maskz_cvtph_ps(__U, __A);
9649 }
9650 
test_mm256_mask_cvtph_ps(__m256 __W,__mmask8 __U,__m128i __A)9651 __m256 test_mm256_mask_cvtph_ps(__m256 __W, __mmask8 __U, __m128i __A) {
9652   // CHECK-LABEL: @test_mm256_mask_cvtph_ps
9653   // CHECK: bitcast <2 x i64> %{{.*}} to <8 x i16>
9654   // CHECK: bitcast <8 x i16> %{{.*}} to <8 x half>
9655   // CHECK: fpext <8 x half> %{{.*}} to <8 x float>
9656   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9657   return _mm256_mask_cvtph_ps(__W, __U, __A);
9658 }
9659 
test_mm256_maskz_cvtph_ps(__mmask8 __U,__m128i __A)9660 __m256 test_mm256_maskz_cvtph_ps(__mmask8 __U, __m128i __A) {
9661   // CHECK-LABEL: @test_mm256_maskz_cvtph_ps
9662   // CHECK: bitcast <2 x i64> %{{.*}} to <8 x i16>
9663   // CHECK: bitcast <8 x i16> %{{.*}} to <8 x half>
9664   // CHECK: fpext <8 x half> %{{.*}} to <8 x float>
9665   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
9666   return _mm256_maskz_cvtph_ps(__U, __A);
9667 }
9668 
test_mm_mask_cvtps_ph(__m128i __W,__mmask8 __U,__m128 __A)9669 __m128i test_mm_mask_cvtps_ph(__m128i __W, __mmask8 __U, __m128 __A) {
9670   // CHECK-LABEL: @test_mm_mask_cvtps_ph
9671   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9672   return _mm_mask_cvtps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9673 }
9674 
test_mm_maskz_cvtps_ph(__mmask8 __U,__m128 __A)9675 __m128i test_mm_maskz_cvtps_ph(__mmask8 __U, __m128 __A) {
9676   // CHECK-LABEL: @test_mm_maskz_cvtps_ph
9677   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9678   return _mm_maskz_cvtps_ph(__U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9679 }
9680 
test_mm256_mask_cvtps_ph(__m128i __W,__mmask8 __U,__m256 __A)9681 __m128i test_mm256_mask_cvtps_ph(__m128i __W, __mmask8 __U, __m256 __A) {
9682   // CHECK-LABEL: @test_mm256_mask_cvtps_ph
9683   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9684   return _mm256_mask_cvtps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9685 }
9686 
test_mm256_maskz_cvtps_ph(__mmask8 __U,__m256 __A)9687 __m128i test_mm256_maskz_cvtps_ph(__mmask8 __U, __m256 __A) {
9688   // CHECK-LABEL: @test_mm256_maskz_cvtps_ph
9689   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9690   return _mm256_maskz_cvtps_ph(__U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
9691 }
9692 
test_mm_mask_cvt_roundps_ph(__m128i __W,__mmask8 __U,__m128 __A)9693 __m128i test_mm_mask_cvt_roundps_ph(__m128i __W, __mmask8 __U, __m128 __A) {
9694   // CHECK-LABEL: @test_mm_mask_cvt_roundps_ph
9695   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9696   return _mm_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO);
9697 }
9698 
test_mm_maskz_cvt_roundps_ph(__mmask8 __U,__m128 __A)9699 __m128i test_mm_maskz_cvt_roundps_ph(__mmask8 __U, __m128 __A) {
9700   // CHECK-LABEL: @test_mm_maskz_cvt_roundps_ph
9701   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
9702   return _mm_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_TO_ZERO);
9703 }
9704 
test_mm256_mask_cvt_roundps_ph(__m128i __W,__mmask8 __U,__m256 __A)9705 __m128i test_mm256_mask_cvt_roundps_ph(__m128i __W, __mmask8 __U, __m256 __A) {
9706   // CHECK-LABEL: @test_mm256_mask_cvt_roundps_ph
9707   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9708   return _mm256_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO);
9709 }
9710 
test_mm256_maskz_cvt_roundps_ph(__mmask8 __U,__m256 __A)9711 __m128i test_mm256_maskz_cvt_roundps_ph(__mmask8 __U, __m256 __A) {
9712   // CHECK-LABEL: @test_mm256_maskz_cvt_roundps_ph
9713   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
9714   return _mm256_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_TO_ZERO);
9715 }
9716 
test_mm_cmpeq_epi32_mask(__m128i __a,__m128i __b)9717 __mmask8 test_mm_cmpeq_epi32_mask(__m128i __a, __m128i __b) {
9718   // CHECK-LABEL: @test_mm_cmpeq_epi32_mask
9719   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
9720   return (__mmask8)_mm_cmpeq_epi32_mask(__a, __b);
9721 }
9722 
test_mm_mask_cmpeq_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)9723 __mmask8 test_mm_mask_cmpeq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9724   // CHECK-LABEL: @test_mm_mask_cmpeq_epi32_mask
9725   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
9726   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9727   return (__mmask8)_mm_mask_cmpeq_epi32_mask(__u, __a, __b);
9728 }
9729 
test_mm_mask_cmpeq_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)9730 __mmask8 test_mm_mask_cmpeq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9731   // CHECK-LABEL: @test_mm_mask_cmpeq_epi64_mask
9732   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
9733   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
9734   return (__mmask8)_mm_mask_cmpeq_epi64_mask(__u, __a, __b);
9735 }
9736 
test_mm_cmpeq_epi64_mask(__m128i __a,__m128i __b)9737 __mmask8 test_mm_cmpeq_epi64_mask(__m128i __a, __m128i __b) {
9738   // CHECK-LABEL: @test_mm_cmpeq_epi64_mask
9739   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
9740   return (__mmask8)_mm_cmpeq_epi64_mask(__a, __b);
9741 }
9742 
test_mm_cmpgt_epi32_mask(__m128i __a,__m128i __b)9743 __mmask8 test_mm_cmpgt_epi32_mask(__m128i __a, __m128i __b) {
9744   // CHECK-LABEL: @test_mm_cmpgt_epi32_mask
9745   // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}}
9746   return (__mmask8)_mm_cmpgt_epi32_mask(__a, __b);
9747 }
9748 
test_mm_mask_cmpgt_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)9749 __mmask8 test_mm_mask_cmpgt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9750   // CHECK-LABEL: @test_mm_mask_cmpgt_epi32_mask
9751   // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}}
9752   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9753   return (__mmask8)_mm_mask_cmpgt_epi32_mask(__u, __a, __b);
9754 }
9755 
test_mm_mask_cmpgt_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)9756 __mmask8 test_mm_mask_cmpgt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
9757   // CHECK-LABEL: @test_mm_mask_cmpgt_epi64_mask
9758   // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}}
9759   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
9760   return (__mmask8)_mm_mask_cmpgt_epi64_mask(__u, __a, __b);
9761 }
9762 
test_mm_cmpgt_epi64_mask(__m128i __a,__m128i __b)9763 __mmask8 test_mm_cmpgt_epi64_mask(__m128i __a, __m128i __b) {
9764   // CHECK-LABEL: @test_mm_cmpgt_epi64_mask
9765   // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}}
9766   return (__mmask8)_mm_cmpgt_epi64_mask(__a, __b);
9767 }
9768 
test_mm256_cmpeq_epi32_mask(__m256i __a,__m256i __b)9769 __mmask8 test_mm256_cmpeq_epi32_mask(__m256i __a, __m256i __b) {
9770   // CHECK-LABEL: @test_mm256_cmpeq_epi32_mask
9771   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
9772   return (__mmask8)_mm256_cmpeq_epi32_mask(__a, __b);
9773 }
9774 
test_mm256_mask_cmpeq_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)9775 __mmask8 test_mm256_mask_cmpeq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9776   // CHECK-LABEL: @test_mm256_mask_cmpeq_epi32_mask
9777   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
9778   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
9779   return (__mmask8)_mm256_mask_cmpeq_epi32_mask(__u, __a, __b);
9780 }
9781 
test_mm256_mask_cmpeq_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)9782 __mmask8 test_mm256_mask_cmpeq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9783   // CHECK-LABEL: @test_mm256_mask_cmpeq_epi64_mask
9784   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
9785   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9786   return (__mmask8)_mm256_mask_cmpeq_epi64_mask(__u, __a, __b);
9787 }
9788 
test_mm256_cmpeq_epi64_mask(__m256i __a,__m256i __b)9789 __mmask8 test_mm256_cmpeq_epi64_mask(__m256i __a, __m256i __b) {
9790   // CHECK-LABEL: @test_mm256_cmpeq_epi64_mask
9791   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
9792   return (__mmask8)_mm256_cmpeq_epi64_mask(__a, __b);
9793 }
9794 
test_mm256_cmpgt_epi32_mask(__m256i __a,__m256i __b)9795 __mmask8 test_mm256_cmpgt_epi32_mask(__m256i __a, __m256i __b) {
9796   // CHECK-LABEL: @test_mm256_cmpgt_epi32_mask
9797   // CHECK: icmp sgt <8 x i32> %{{.*}}, %{{.*}}
9798   return (__mmask8)_mm256_cmpgt_epi32_mask(__a, __b);
9799 }
9800 
test_mm256_mask_cmpgt_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)9801 __mmask8 test_mm256_mask_cmpgt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9802   // CHECK-LABEL: @test_mm256_mask_cmpgt_epi32_mask
9803   // CHECK: icmp sgt <8 x i32> %{{.*}}, %{{.*}}
9804   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
9805   return (__mmask8)_mm256_mask_cmpgt_epi32_mask(__u, __a, __b);
9806 }
9807 
test_mm256_mask_cmpgt_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)9808 __mmask8 test_mm256_mask_cmpgt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
9809   // CHECK-LABEL: @test_mm256_mask_cmpgt_epi64_mask
9810   // CHECK: icmp sgt <4 x i64> %{{.*}}, %{{.*}}
9811   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
9812   return (__mmask8)_mm256_mask_cmpgt_epi64_mask(__u, __a, __b);
9813 }
9814 
test_mm256_cmpgt_epi64_mask(__m256i __a,__m256i __b)9815 __mmask8 test_mm256_cmpgt_epi64_mask(__m256i __a, __m256i __b) {
9816   // CHECK-LABEL: @test_mm256_cmpgt_epi64_mask
9817   // CHECK: icmp sgt <4 x i64> %{{.*}}, %{{.*}}
9818   return (__mmask8)_mm256_cmpgt_epi64_mask(__a, __b);
9819 }
9820