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