1 // RUN: %clang_cc1 -ffreestanding %s -fexperimental-new-pass-manager -triple=x86_64-apple-darwin -target-feature +avx512f -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s
2
3 #include <immintrin.h>
4
test_mm_cmpeq_epu32_mask(__m128i __a,__m128i __b)5 __mmask8 test_mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) {
6 // CHECK-LABEL: @test_mm_cmpeq_epu32_mask
7 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
8 // CHECK: shufflevector <4 x i1> %{{.*}}, <4 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
9 return (__mmask8)_mm_cmpeq_epu32_mask(__a, __b);
10 }
11
test_mm_mask_cmpeq_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)12 __mmask8 test_mm_mask_cmpeq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
13 // CHECK-LABEL: @test_mm_mask_cmpeq_epu32_mask
14 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
15 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
16 return (__mmask8)_mm_mask_cmpeq_epu32_mask(__u, __a, __b);
17 }
18
test_mm_cmpeq_epu64_mask(__m128i __a,__m128i __b)19 __mmask8 test_mm_cmpeq_epu64_mask(__m128i __a, __m128i __b) {
20 // CHECK-LABEL: @test_mm_cmpeq_epu64_mask
21 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
22 // CHECK: shufflevector <2 x i1> %{{.*}}, <2 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 2, i32 3, i32 2, i32 3>
23 return (__mmask8)_mm_cmpeq_epu64_mask(__a, __b);
24 }
25
test_mm_mask_cmpeq_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)26 __mmask8 test_mm_mask_cmpeq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
27 // CHECK-LABEL: @test_mm_mask_cmpeq_epu64_mask
28 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
29 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
30 return (__mmask8)_mm_mask_cmpeq_epu64_mask(__u, __a, __b);
31 }
32
test_mm_cmpge_epi32_mask(__m128i __a,__m128i __b)33 __mmask8 test_mm_cmpge_epi32_mask(__m128i __a, __m128i __b) {
34 // CHECK-LABEL: @test_mm_cmpge_epi32_mask
35 // CHECK: icmp sge <4 x i32> %{{.*}}, %{{.*}}
36 return (__mmask8)_mm_cmpge_epi32_mask(__a, __b);
37 }
38
test_mm_mask_cmpge_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)39 __mmask8 test_mm_mask_cmpge_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
40 // CHECK-LABEL: @test_mm_mask_cmpge_epi32_mask
41 // CHECK: icmp sge <4 x i32> %{{.*}}, %{{.*}}
42 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
43 return (__mmask8)_mm_mask_cmpge_epi32_mask(__u, __a, __b);
44 }
45
test_mm_cmpge_epi64_mask(__m128i __a,__m128i __b)46 __mmask8 test_mm_cmpge_epi64_mask(__m128i __a, __m128i __b) {
47 // CHECK-LABEL: @test_mm_cmpge_epi64_mask
48 // CHECK: icmp sge <2 x i64> %{{.*}}, %{{.*}}
49 return (__mmask8)_mm_cmpge_epi64_mask(__a, __b);
50 }
51
test_mm_mask_cmpge_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)52 __mmask8 test_mm_mask_cmpge_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
53 // CHECK-LABEL: @test_mm_mask_cmpge_epi64_mask
54 // CHECK: icmp sge <2 x i64> %{{.*}}, %{{.*}}
55 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
56 return (__mmask8)_mm_mask_cmpge_epi64_mask(__u, __a, __b);
57 }
58
test_mm256_cmpge_epi32_mask(__m256i __a,__m256i __b)59 __mmask8 test_mm256_cmpge_epi32_mask(__m256i __a, __m256i __b) {
60 // CHECK-LABEL: @test_mm256_cmpge_epi32_mask
61 // CHECK: icmp sge <8 x i32> %{{.*}}, %{{.*}}
62 return (__mmask8)_mm256_cmpge_epi32_mask(__a, __b);
63 }
64
test_mm256_mask_cmpge_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)65 __mmask8 test_mm256_mask_cmpge_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
66 // CHECK-LABEL: @test_mm256_mask_cmpge_epi32_mask
67 // CHECK: icmp sge <8 x i32> %{{.*}}, %{{.*}}
68 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
69 return (__mmask8)_mm256_mask_cmpge_epi32_mask(__u, __a, __b);
70 }
71
test_mm256_cmpge_epi64_mask(__m256i __a,__m256i __b)72 __mmask8 test_mm256_cmpge_epi64_mask(__m256i __a, __m256i __b) {
73 // CHECK-LABEL: @test_mm256_cmpge_epi64_mask
74 // CHECK: icmp sge <4 x i64> %{{.*}}, %{{.*}}
75 return (__mmask8)_mm256_cmpge_epi64_mask(__a, __b);
76 }
77
test_mm256_mask_cmpge_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)78 __mmask8 test_mm256_mask_cmpge_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
79 // CHECK-LABEL: @test_mm256_mask_cmpge_epi64_mask
80 // CHECK: icmp sge <4 x i64> %{{.*}}, %{{.*}}
81 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
82 return (__mmask8)_mm256_mask_cmpge_epi64_mask(__u, __a, __b);
83 }
84
test_mm_cmpge_epu32_mask(__m128i __a,__m128i __b)85 __mmask8 test_mm_cmpge_epu32_mask(__m128i __a, __m128i __b) {
86 // CHECK-LABEL: @test_mm_cmpge_epu32_mask
87 // CHECK: icmp uge <4 x i32> %{{.*}}, %{{.*}}
88 return (__mmask8)_mm_cmpge_epu32_mask(__a, __b);
89 }
90
test_mm_mask_cmpge_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)91 __mmask8 test_mm_mask_cmpge_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
92 // CHECK-LABEL: @test_mm_mask_cmpge_epu32_mask
93 // CHECK: icmp uge <4 x i32> %{{.*}}, %{{.*}}
94 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
95 return (__mmask8)_mm_mask_cmpge_epu32_mask(__u, __a, __b);
96 }
97
test_mm_cmpge_epu64_mask(__m128i __a,__m128i __b)98 __mmask8 test_mm_cmpge_epu64_mask(__m128i __a, __m128i __b) {
99 // CHECK-LABEL: @test_mm_cmpge_epu64_mask
100 // CHECK: icmp uge <2 x i64> %{{.*}}, %{{.*}}
101 return (__mmask8)_mm_cmpge_epu64_mask(__a, __b);
102 }
103
test_mm_mask_cmpge_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)104 __mmask8 test_mm_mask_cmpge_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
105 // CHECK-LABEL: @test_mm_mask_cmpge_epu64_mask
106 // CHECK: icmp uge <2 x i64> %{{.*}}, %{{.*}}
107 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
108 return (__mmask8)_mm_mask_cmpge_epu64_mask(__u, __a, __b);
109 }
110
test_mm256_cmpge_epu32_mask(__m256i __a,__m256i __b)111 __mmask8 test_mm256_cmpge_epu32_mask(__m256i __a, __m256i __b) {
112 // CHECK-LABEL: @test_mm256_cmpge_epu32_mask
113 // CHECK: icmp uge <8 x i32> %{{.*}}, %{{.*}}
114 return (__mmask8)_mm256_cmpge_epu32_mask(__a, __b);
115 }
116
test_mm256_mask_cmpge_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)117 __mmask8 test_mm256_mask_cmpge_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
118 // CHECK-LABEL: @test_mm256_mask_cmpge_epu32_mask
119 // CHECK: icmp uge <8 x i32> %{{.*}}, %{{.*}}
120 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
121 return (__mmask8)_mm256_mask_cmpge_epu32_mask(__u, __a, __b);
122 }
123
test_mm256_cmpge_epu64_mask(__m256i __a,__m256i __b)124 __mmask8 test_mm256_cmpge_epu64_mask(__m256i __a, __m256i __b) {
125 // CHECK-LABEL: @test_mm256_cmpge_epu64_mask
126 // CHECK: icmp uge <4 x i64> %{{.*}}, %{{.*}}
127 return (__mmask8)_mm256_cmpge_epu64_mask(__a, __b);
128 }
129
test_mm256_mask_cmpge_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)130 __mmask8 test_mm256_mask_cmpge_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
131 // CHECK-LABEL: @test_mm256_mask_cmpge_epu64_mask
132 // CHECK: icmp uge <4 x i64> %{{.*}}, %{{.*}}
133 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
134 return (__mmask8)_mm256_mask_cmpge_epu64_mask(__u, __a, __b);
135 }
136
test_mm_cmpgt_epu32_mask(__m128i __a,__m128i __b)137 __mmask8 test_mm_cmpgt_epu32_mask(__m128i __a, __m128i __b) {
138 // CHECK-LABEL: @test_mm_cmpgt_epu32_mask
139 // CHECK: icmp ugt <4 x i32> %{{.*}}, %{{.*}}
140 return (__mmask8)_mm_cmpgt_epu32_mask(__a, __b);
141 }
142
test_mm_mask_cmpgt_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)143 __mmask8 test_mm_mask_cmpgt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
144 // CHECK-LABEL: @test_mm_mask_cmpgt_epu32_mask
145 // CHECK: icmp ugt <4 x i32> %{{.*}}, %{{.*}}
146 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
147 return (__mmask8)_mm_mask_cmpgt_epu32_mask(__u, __a, __b);
148 }
149
test_mm_cmpgt_epu64_mask(__m128i __a,__m128i __b)150 __mmask8 test_mm_cmpgt_epu64_mask(__m128i __a, __m128i __b) {
151 // CHECK-LABEL: @test_mm_cmpgt_epu64_mask
152 // CHECK: icmp ugt <2 x i64> %{{.*}}, %{{.*}}
153 return (__mmask8)_mm_cmpgt_epu64_mask(__a, __b);
154 }
155
test_mm_mask_cmpgt_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)156 __mmask8 test_mm_mask_cmpgt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
157 // CHECK-LABEL: @test_mm_mask_cmpgt_epu64_mask
158 // CHECK: icmp ugt <2 x i64> %{{.*}}, %{{.*}}
159 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
160 return (__mmask8)_mm_mask_cmpgt_epu64_mask(__u, __a, __b);
161 }
162
test_mm256_cmpgt_epu32_mask(__m256i __a,__m256i __b)163 __mmask8 test_mm256_cmpgt_epu32_mask(__m256i __a, __m256i __b) {
164 // CHECK-LABEL: @test_mm256_cmpgt_epu32_mask
165 // CHECK: icmp ugt <8 x i32> %{{.*}}, %{{.*}}
166 return (__mmask8)_mm256_cmpgt_epu32_mask(__a, __b);
167 }
168
test_mm256_mask_cmpgt_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)169 __mmask8 test_mm256_mask_cmpgt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
170 // CHECK-LABEL: @test_mm256_mask_cmpgt_epu32_mask
171 // CHECK: icmp ugt <8 x i32> %{{.*}}, %{{.*}}
172 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
173 return (__mmask8)_mm256_mask_cmpgt_epu32_mask(__u, __a, __b);
174 }
175
test_mm256_cmpgt_epu64_mask(__m256i __a,__m256i __b)176 __mmask8 test_mm256_cmpgt_epu64_mask(__m256i __a, __m256i __b) {
177 // CHECK-LABEL: @test_mm256_cmpgt_epu64_mask
178 // CHECK: icmp ugt <4 x i64> %{{.*}}, %{{.*}}
179 return (__mmask8)_mm256_cmpgt_epu64_mask(__a, __b);
180 }
181
test_mm256_mask_cmpgt_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)182 __mmask8 test_mm256_mask_cmpgt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
183 // CHECK-LABEL: @test_mm256_mask_cmpgt_epu64_mask
184 // CHECK: icmp ugt <4 x i64> %{{.*}}, %{{.*}}
185 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
186 return (__mmask8)_mm256_mask_cmpgt_epu64_mask(__u, __a, __b);
187 }
188
test_mm_cmple_epi32_mask(__m128i __a,__m128i __b)189 __mmask8 test_mm_cmple_epi32_mask(__m128i __a, __m128i __b) {
190 // CHECK-LABEL: @test_mm_cmple_epi32_mask
191 // CHECK: icmp sle <4 x i32> %{{.*}}, %{{.*}}
192 return (__mmask8)_mm_cmple_epi32_mask(__a, __b);
193 }
194
test_mm_mask_cmple_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)195 __mmask8 test_mm_mask_cmple_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
196 // CHECK-LABEL: @test_mm_mask_cmple_epi32_mask
197 // CHECK: icmp sle <4 x i32> %{{.*}}, %{{.*}}
198 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
199 return (__mmask8)_mm_mask_cmple_epi32_mask(__u, __a, __b);
200 }
201
test_mm_cmple_epi64_mask(__m128i __a,__m128i __b)202 __mmask8 test_mm_cmple_epi64_mask(__m128i __a, __m128i __b) {
203 // CHECK-LABEL: @test_mm_cmple_epi64_mask
204 // CHECK: icmp sle <2 x i64> %{{.*}}, %{{.*}}
205 return (__mmask8)_mm_cmple_epi64_mask(__a, __b);
206 }
207
test_mm_mask_cmple_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)208 __mmask8 test_mm_mask_cmple_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
209 // CHECK-LABEL: @test_mm_mask_cmple_epi64_mask
210 // CHECK: icmp sle <2 x i64> %{{.*}}, %{{.*}}
211 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
212 return (__mmask8)_mm_mask_cmple_epi64_mask(__u, __a, __b);
213 }
214
test_mm256_cmple_epi32_mask(__m256i __a,__m256i __b)215 __mmask8 test_mm256_cmple_epi32_mask(__m256i __a, __m256i __b) {
216 // CHECK-LABEL: @test_mm256_cmple_epi32_mask
217 // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
218 return (__mmask8)_mm256_cmple_epi32_mask(__a, __b);
219 }
220
test_mm256_mask_cmple_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)221 __mmask8 test_mm256_mask_cmple_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
222 // CHECK-LABEL: @test_mm256_mask_cmple_epi32_mask
223 // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
224 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
225 return (__mmask8)_mm256_mask_cmple_epi32_mask(__u, __a, __b);
226 }
227
test_mm256_cmple_epi64_mask(__m256i __a,__m256i __b)228 __mmask8 test_mm256_cmple_epi64_mask(__m256i __a, __m256i __b) {
229 // CHECK-LABEL: @test_mm256_cmple_epi64_mask
230 // CHECK: icmp sle <4 x i64> %{{.*}}, %{{.*}}
231 return (__mmask8)_mm256_cmple_epi64_mask(__a, __b);
232 }
233
test_mm256_mask_cmple_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)234 __mmask8 test_mm256_mask_cmple_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
235 // CHECK-LABEL: @test_mm256_mask_cmple_epi64_mask
236 // CHECK: icmp sle <4 x i64> %{{.*}}, %{{.*}}
237 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
238 return (__mmask8)_mm256_mask_cmple_epi64_mask(__u, __a, __b);
239 }
240
test_mm_cmple_epu32_mask(__m128i __a,__m128i __b)241 __mmask8 test_mm_cmple_epu32_mask(__m128i __a, __m128i __b) {
242 // CHECK-LABEL: @test_mm_cmple_epu32_mask
243 // CHECK: icmp ule <4 x i32> %{{.*}}, %{{.*}}
244 return (__mmask8)_mm_cmple_epu32_mask(__a, __b);
245 }
246
test_mm_mask_cmple_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)247 __mmask8 test_mm_mask_cmple_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
248 // CHECK-LABEL: @test_mm_mask_cmple_epu32_mask
249 // CHECK: icmp ule <4 x i32> %{{.*}}, %{{.*}}
250 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
251 return (__mmask8)_mm_mask_cmple_epu32_mask(__u, __a, __b);
252 }
253
test_mm_cmple_epu64_mask(__m128i __a,__m128i __b)254 __mmask8 test_mm_cmple_epu64_mask(__m128i __a, __m128i __b) {
255 // CHECK-LABEL: @test_mm_cmple_epu64_mask
256 // CHECK: icmp ule <2 x i64> %{{.*}}, %{{.*}}
257 return (__mmask8)_mm_cmple_epu64_mask(__a, __b);
258 }
259
test_mm_mask_cmple_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)260 __mmask8 test_mm_mask_cmple_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
261 // CHECK-LABEL: @test_mm_mask_cmple_epu64_mask
262 // CHECK: icmp ule <2 x i64> %{{.*}}, %{{.*}}
263 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
264 return (__mmask8)_mm_mask_cmple_epu64_mask(__u, __a, __b);
265 }
266
test_mm256_cmple_epu32_mask(__m256i __a,__m256i __b)267 __mmask8 test_mm256_cmple_epu32_mask(__m256i __a, __m256i __b) {
268 // CHECK-LABEL: @test_mm256_cmple_epu32_mask
269 // CHECK: icmp ule <8 x i32> %{{.*}}, %{{.*}}
270 return (__mmask8)_mm256_cmple_epu32_mask(__a, __b);
271 }
272
test_mm256_mask_cmple_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)273 __mmask8 test_mm256_mask_cmple_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
274 // CHECK-LABEL: @test_mm256_mask_cmple_epu32_mask
275 // CHECK: icmp ule <8 x i32> %{{.*}}, %{{.*}}
276 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
277 return (__mmask8)_mm256_mask_cmple_epu32_mask(__u, __a, __b);
278 }
279
test_mm256_cmple_epu64_mask(__m256i __a,__m256i __b)280 __mmask8 test_mm256_cmple_epu64_mask(__m256i __a, __m256i __b) {
281 // CHECK-LABEL: @test_mm256_cmple_epu64_mask
282 // CHECK: icmp ule <4 x i64> %{{.*}}, %{{.*}}
283 return (__mmask8)_mm256_cmple_epu64_mask(__a, __b);
284 }
285
test_mm256_mask_cmple_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)286 __mmask8 test_mm256_mask_cmple_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
287 // CHECK-LABEL: @test_mm256_mask_cmple_epu64_mask
288 // CHECK: icmp ule <4 x i64> %{{.*}}, %{{.*}}
289 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
290 return (__mmask8)_mm256_mask_cmple_epu64_mask(__u, __a, __b);
291 }
292
test_mm_cmplt_epi32_mask(__m128i __a,__m128i __b)293 __mmask8 test_mm_cmplt_epi32_mask(__m128i __a, __m128i __b) {
294 // CHECK-LABEL: @test_mm_cmplt_epi32_mask
295 // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
296 return (__mmask8)_mm_cmplt_epi32_mask(__a, __b);
297 }
298
test_mm_mask_cmplt_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)299 __mmask8 test_mm_mask_cmplt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
300 // CHECK-LABEL: @test_mm_mask_cmplt_epi32_mask
301 // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
302 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
303 return (__mmask8)_mm_mask_cmplt_epi32_mask(__u, __a, __b);
304 }
305
test_mm_cmplt_epi64_mask(__m128i __a,__m128i __b)306 __mmask8 test_mm_cmplt_epi64_mask(__m128i __a, __m128i __b) {
307 // CHECK-LABEL: @test_mm_cmplt_epi64_mask
308 // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
309 return (__mmask8)_mm_cmplt_epi64_mask(__a, __b);
310 }
311
test_mm_mask_cmplt_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)312 __mmask8 test_mm_mask_cmplt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
313 // CHECK-LABEL: @test_mm_mask_cmplt_epi64_mask
314 // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
315 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
316 return (__mmask8)_mm_mask_cmplt_epi64_mask(__u, __a, __b);
317 }
318
test_mm256_cmplt_epi32_mask(__m256i __a,__m256i __b)319 __mmask8 test_mm256_cmplt_epi32_mask(__m256i __a, __m256i __b) {
320 // CHECK-LABEL: @test_mm256_cmplt_epi32_mask
321 // CHECK: icmp slt <8 x i32> %{{.*}}, %{{.*}}
322 return (__mmask8)_mm256_cmplt_epi32_mask(__a, __b);
323 }
324
test_mm256_mask_cmplt_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)325 __mmask8 test_mm256_mask_cmplt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
326 // CHECK-LABEL: @test_mm256_mask_cmplt_epi32_mask
327 // CHECK: icmp slt <8 x i32> %{{.*}}, %{{.*}}
328 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
329 return (__mmask8)_mm256_mask_cmplt_epi32_mask(__u, __a, __b);
330 }
331
test_mm256_cmplt_epi64_mask(__m256i __a,__m256i __b)332 __mmask8 test_mm256_cmplt_epi64_mask(__m256i __a, __m256i __b) {
333 // CHECK-LABEL: @test_mm256_cmplt_epi64_mask
334 // CHECK: icmp slt <4 x i64> %{{.*}}, %{{.*}}
335 return (__mmask8)_mm256_cmplt_epi64_mask(__a, __b);
336 }
337
test_mm256_mask_cmplt_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)338 __mmask8 test_mm256_mask_cmplt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
339 // CHECK-LABEL: @test_mm256_mask_cmplt_epi64_mask
340 // CHECK: icmp slt <4 x i64> %{{.*}}, %{{.*}}
341 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
342 return (__mmask8)_mm256_mask_cmplt_epi64_mask(__u, __a, __b);
343 }
344
test_mm_cmplt_epu32_mask(__m128i __a,__m128i __b)345 __mmask8 test_mm_cmplt_epu32_mask(__m128i __a, __m128i __b) {
346 // CHECK-LABEL: @test_mm_cmplt_epu32_mask
347 // CHECK: icmp ult <4 x i32> %{{.*}}, %{{.*}}
348 return (__mmask8)_mm_cmplt_epu32_mask(__a, __b);
349 }
350
test_mm_mask_cmplt_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)351 __mmask8 test_mm_mask_cmplt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
352 // CHECK-LABEL: @test_mm_mask_cmplt_epu32_mask
353 // CHECK: icmp ult <4 x i32> %{{.*}}, %{{.*}}
354 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
355 return (__mmask8)_mm_mask_cmplt_epu32_mask(__u, __a, __b);
356 }
357
test_mm_cmplt_epu64_mask(__m128i __a,__m128i __b)358 __mmask8 test_mm_cmplt_epu64_mask(__m128i __a, __m128i __b) {
359 // CHECK-LABEL: @test_mm_cmplt_epu64_mask
360 // CHECK: icmp ult <2 x i64> %{{.*}}, %{{.*}}
361 return (__mmask8)_mm_cmplt_epu64_mask(__a, __b);
362 }
363
test_mm_mask_cmplt_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)364 __mmask8 test_mm_mask_cmplt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
365 // CHECK-LABEL: @test_mm_mask_cmplt_epu64_mask
366 // CHECK: icmp ult <2 x i64> %{{.*}}, %{{.*}}
367 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
368 return (__mmask8)_mm_mask_cmplt_epu64_mask(__u, __a, __b);
369 }
370
test_mm256_cmplt_epu32_mask(__m256i __a,__m256i __b)371 __mmask8 test_mm256_cmplt_epu32_mask(__m256i __a, __m256i __b) {
372 // CHECK-LABEL: @test_mm256_cmplt_epu32_mask
373 // CHECK: icmp ult <8 x i32> %{{.*}}, %{{.*}}
374 return (__mmask8)_mm256_cmplt_epu32_mask(__a, __b);
375 }
376
test_mm256_mask_cmplt_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)377 __mmask8 test_mm256_mask_cmplt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
378 // CHECK-LABEL: @test_mm256_mask_cmplt_epu32_mask
379 // CHECK: icmp ult <8 x i32> %{{.*}}, %{{.*}}
380 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
381 return (__mmask8)_mm256_mask_cmplt_epu32_mask(__u, __a, __b);
382 }
383
test_mm256_cmplt_epu64_mask(__m256i __a,__m256i __b)384 __mmask8 test_mm256_cmplt_epu64_mask(__m256i __a, __m256i __b) {
385 // CHECK-LABEL: @test_mm256_cmplt_epu64_mask
386 // CHECK: icmp ult <4 x i64> %{{.*}}, %{{.*}}
387 return (__mmask8)_mm256_cmplt_epu64_mask(__a, __b);
388 }
389
test_mm256_mask_cmplt_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)390 __mmask8 test_mm256_mask_cmplt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
391 // CHECK-LABEL: @test_mm256_mask_cmplt_epu64_mask
392 // CHECK: icmp ult <4 x i64> %{{.*}}, %{{.*}}
393 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
394 return (__mmask8)_mm256_mask_cmplt_epu64_mask(__u, __a, __b);
395 }
396
test_mm_cmpneq_epi32_mask(__m128i __a,__m128i __b)397 __mmask8 test_mm_cmpneq_epi32_mask(__m128i __a, __m128i __b) {
398 // CHECK-LABEL: @test_mm_cmpneq_epi32_mask
399 // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
400 return (__mmask8)_mm_cmpneq_epi32_mask(__a, __b);
401 }
402
test_mm_mask_cmpneq_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)403 __mmask8 test_mm_mask_cmpneq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
404 // CHECK-LABEL: @test_mm_mask_cmpneq_epi32_mask
405 // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
406 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
407 return (__mmask8)_mm_mask_cmpneq_epi32_mask(__u, __a, __b);
408 }
409
test_mm_cmpneq_epi64_mask(__m128i __a,__m128i __b)410 __mmask8 test_mm_cmpneq_epi64_mask(__m128i __a, __m128i __b) {
411 // CHECK-LABEL: @test_mm_cmpneq_epi64_mask
412 // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
413 return (__mmask8)_mm_cmpneq_epi64_mask(__a, __b);
414 }
415
test_mm_mask_cmpneq_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)416 __mmask8 test_mm_mask_cmpneq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
417 // CHECK-LABEL: @test_mm_mask_cmpneq_epi64_mask
418 // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
419 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
420 return (__mmask8)_mm_mask_cmpneq_epi64_mask(__u, __a, __b);
421 }
422
test_mm256_cmpneq_epi32_mask(__m256i __a,__m256i __b)423 __mmask8 test_mm256_cmpneq_epi32_mask(__m256i __a, __m256i __b) {
424 // CHECK-LABEL: @test_mm256_cmpneq_epi32_mask
425 // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
426 return (__mmask8)_mm256_cmpneq_epi32_mask(__a, __b);
427 }
428
test_mm256_mask_cmpneq_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)429 __mmask8 test_mm256_mask_cmpneq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
430 // CHECK-LABEL: @test_mm256_mask_cmpneq_epi32_mask
431 // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
432 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
433 return (__mmask8)_mm256_mask_cmpneq_epi32_mask(__u, __a, __b);
434 }
435
test_mm256_cmpneq_epi64_mask(__m256i __a,__m256i __b)436 __mmask8 test_mm256_cmpneq_epi64_mask(__m256i __a, __m256i __b) {
437 // CHECK-LABEL: @test_mm256_cmpneq_epi64_mask
438 // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
439 return (__mmask8)_mm256_cmpneq_epi64_mask(__a, __b);
440 }
441
test_mm256_mask_cmpneq_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)442 __mmask8 test_mm256_mask_cmpneq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
443 // CHECK-LABEL: @test_mm256_mask_cmpneq_epi64_mask
444 // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
445 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
446 return (__mmask8)_mm256_mask_cmpneq_epi64_mask(__u, __a, __b);
447 }
448
test_mm_cmpneq_epu32_mask(__m128i __a,__m128i __b)449 __mmask8 test_mm_cmpneq_epu32_mask(__m128i __a, __m128i __b) {
450 // CHECK-LABEL: @test_mm_cmpneq_epu32_mask
451 // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
452 return (__mmask8)_mm_cmpneq_epu32_mask(__a, __b);
453 }
454
test_mm_mask_cmpneq_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)455 __mmask8 test_mm_mask_cmpneq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
456 // CHECK-LABEL: @test_mm_mask_cmpneq_epu32_mask
457 // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
458 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
459 return (__mmask8)_mm_mask_cmpneq_epu32_mask(__u, __a, __b);
460 }
461
test_mm_cmpneq_epu64_mask(__m128i __a,__m128i __b)462 __mmask8 test_mm_cmpneq_epu64_mask(__m128i __a, __m128i __b) {
463 // CHECK-LABEL: @test_mm_cmpneq_epu64_mask
464 // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
465 return (__mmask8)_mm_cmpneq_epu64_mask(__a, __b);
466 }
467
test_mm_mask_cmpneq_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)468 __mmask8 test_mm_mask_cmpneq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
469 // CHECK-LABEL: @test_mm_mask_cmpneq_epu64_mask
470 // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
471 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
472 return (__mmask8)_mm_mask_cmpneq_epu64_mask(__u, __a, __b);
473 }
474
test_mm256_cmpneq_epu32_mask(__m256i __a,__m256i __b)475 __mmask8 test_mm256_cmpneq_epu32_mask(__m256i __a, __m256i __b) {
476 // CHECK-LABEL: @test_mm256_cmpneq_epu32_mask
477 // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
478 return (__mmask8)_mm256_cmpneq_epu32_mask(__a, __b);
479 }
480
test_mm256_mask_cmpneq_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)481 __mmask8 test_mm256_mask_cmpneq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
482 // CHECK-LABEL: @test_mm256_mask_cmpneq_epu32_mask
483 // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
484 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
485 return (__mmask8)_mm256_mask_cmpneq_epu32_mask(__u, __a, __b);
486 }
487
test_mm256_cmpneq_epu64_mask(__m256i __a,__m256i __b)488 __mmask8 test_mm256_cmpneq_epu64_mask(__m256i __a, __m256i __b) {
489 // CHECK-LABEL: @test_mm256_cmpneq_epu64_mask
490 // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
491 return (__mmask8)_mm256_cmpneq_epu64_mask(__a, __b);
492 }
493
test_mm256_mask_cmpneq_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)494 __mmask8 test_mm256_mask_cmpneq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
495 // CHECK-LABEL: @test_mm256_mask_cmpneq_epu64_mask
496 // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
497 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
498 return (__mmask8)_mm256_mask_cmpneq_epu64_mask(__u, __a, __b);
499 }
500
test_mm_cmp_eq_epi32_mask(__m128i __a,__m128i __b)501 __mmask8 test_mm_cmp_eq_epi32_mask(__m128i __a, __m128i __b) {
502 // CHECK-LABEL: @test_mm_cmp_eq_epi32_mask
503 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
504 return (__mmask8)_mm_cmp_epi32_mask(__a, __b, _MM_CMPINT_EQ);
505 }
506
test_mm_mask_cmp_lt_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)507 __mmask8 test_mm_mask_cmp_lt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
508 // CHECK-LABEL: @test_mm_mask_cmp_lt_epi32_mask
509 // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
510 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
511 return (__mmask8)_mm_mask_cmp_epi32_mask(__u, __a, __b, _MM_CMPINT_LT);
512 }
513
test_mm_cmp_lt_epi64_mask(__m128i __a,__m128i __b)514 __mmask8 test_mm_cmp_lt_epi64_mask(__m128i __a, __m128i __b) {
515 // CHECK-LABEL: @test_mm_cmp_lt_epi64_mask
516 // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
517 return (__mmask8)_mm_cmp_epi64_mask(__a, __b, _MM_CMPINT_LT);
518 }
519
test_mm_mask_cmp_eq_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)520 __mmask8 test_mm_mask_cmp_eq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
521 // CHECK-LABEL: @test_mm_mask_cmp_eq_epi64_mask
522 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
523 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
524 return (__mmask8)_mm_mask_cmp_epi64_mask(__u, __a, __b, _MM_CMPINT_EQ);
525 }
526
test_mm256_cmp_eq_epi32_mask(__m256i __a,__m256i __b)527 __mmask8 test_mm256_cmp_eq_epi32_mask(__m256i __a, __m256i __b) {
528 // CHECK-LABEL: @test_mm256_cmp_eq_epi32_mask
529 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
530 return (__mmask8)_mm256_cmp_epi32_mask(__a, __b, _MM_CMPINT_EQ);
531 }
532
test_mm256_mask_cmp_le_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)533 __mmask8 test_mm256_mask_cmp_le_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
534 // CHECK-LABEL: @test_mm256_mask_cmp_le_epi32_mask
535 // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
536 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
537 return (__mmask8)_mm256_mask_cmp_epi32_mask(__u, __a, __b, _MM_CMPINT_LE);
538 }
539
test_mm256_cmp_eq_epi64_mask(__m256i __a,__m256i __b)540 __mmask8 test_mm256_cmp_eq_epi64_mask(__m256i __a, __m256i __b) {
541 // CHECK-LABEL: @test_mm256_cmp_eq_epi64_mask
542 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
543 return (__mmask8)_mm256_cmp_epi64_mask(__a, __b, _MM_CMPINT_EQ);
544 }
545
test_mm256_mask_cmp_eq_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)546 __mmask8 test_mm256_mask_cmp_eq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
547 // CHECK-LABEL: @test_mm256_mask_cmp_eq_epi64_mask
548 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
549 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
550 return (__mmask8)_mm256_mask_cmp_epi64_mask(__u, __a, __b, _MM_CMPINT_EQ);
551 }
552
test_mm_cmp_epu32_mask(__m128i __a,__m128i __b)553 __mmask8 test_mm_cmp_epu32_mask(__m128i __a, __m128i __b) {
554 // CHECK-LABEL: @test_mm_cmp_epu32_mask
555 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
556 return (__mmask8)_mm_cmp_epu32_mask(__a, __b, 0);
557 }
558
test_mm_mask_cmp_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)559 __mmask8 test_mm_mask_cmp_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
560 // CHECK-LABEL: @test_mm_mask_cmp_epu32_mask
561 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
562 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
563 return (__mmask8)_mm_mask_cmp_epu32_mask(__u, __a, __b, 0);
564 }
565
test_mm_cmp_epu64_mask(__m128i __a,__m128i __b)566 __mmask8 test_mm_cmp_epu64_mask(__m128i __a, __m128i __b) {
567 // CHECK-LABEL: @test_mm_cmp_epu64_mask
568 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
569 return (__mmask8)_mm_cmp_epu64_mask(__a, __b, 0);
570 }
571
test_mm_mask_cmp_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)572 __mmask8 test_mm_mask_cmp_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
573 // CHECK-LABEL: @test_mm_mask_cmp_epu64_mask
574 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
575 // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
576 return (__mmask8)_mm_mask_cmp_epu64_mask(__u, __a, __b, 0);
577 }
578
test_mm256_cmp_epu32_mask(__m256i __a,__m256i __b)579 __mmask8 test_mm256_cmp_epu32_mask(__m256i __a, __m256i __b) {
580 // CHECK-LABEL: @test_mm256_cmp_epu32_mask
581 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
582 return (__mmask8)_mm256_cmp_epu32_mask(__a, __b, 0);
583 }
584
test_mm256_mask_cmp_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)585 __mmask8 test_mm256_mask_cmp_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
586 // CHECK-LABEL: @test_mm256_mask_cmp_epu32_mask
587 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
588 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
589 return (__mmask8)_mm256_mask_cmp_epu32_mask(__u, __a, __b, 0);
590 }
591
test_mm256_cmp_epu64_mask(__m256i __a,__m256i __b)592 __mmask8 test_mm256_cmp_epu64_mask(__m256i __a, __m256i __b) {
593 // CHECK-LABEL: @test_mm256_cmp_epu64_mask
594 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
595 return (__mmask8)_mm256_cmp_epu64_mask(__a, __b, 0);
596 }
597
test_mm256_mask_cmp_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)598 __mmask8 test_mm256_mask_cmp_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
599 // CHECK-LABEL: @test_mm256_mask_cmp_epu64_mask
600 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
601 // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
602 return (__mmask8)_mm256_mask_cmp_epu64_mask(__u, __a, __b, 0);
603 }
604
test_mm256_mask_add_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)605 __m256i test_mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
606 __m256i __B) {
607 //CHECK-LABEL: @test_mm256_mask_add_epi32
608 //CHECK: add <8 x i32> %{{.*}}, %{{.*}}
609 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
610 return _mm256_mask_add_epi32(__W, __U, __A, __B);
611 }
612
test_mm256_maskz_add_epi32(__mmask8 __U,__m256i __A,__m256i __B)613 __m256i test_mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
614 //CHECK-LABEL: @test_mm256_maskz_add_epi32
615 //CHECK: add <8 x i32> %{{.*}}, %{{.*}}
616 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
617 return _mm256_maskz_add_epi32(__U, __A, __B);
618 }
619
test_mm256_mask_add_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)620 __m256i test_mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
621 __m256i __B) {
622 //CHECK-LABEL: @test_mm256_mask_add_epi64
623 //CHECK: add <4 x i64> %{{.*}}, %{{.*}}
624 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
625 return _mm256_mask_add_epi64(__W,__U,__A,__B);
626 }
627
test_mm256_maskz_add_epi64(__mmask8 __U,__m256i __A,__m256i __B)628 __m256i test_mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
629 //CHECK-LABEL: @test_mm256_maskz_add_epi64
630 //CHECK: add <4 x i64> %{{.*}}, %{{.*}}
631 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
632 return _mm256_maskz_add_epi64 (__U,__A,__B);
633 }
634
test_mm256_mask_sub_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)635 __m256i test_mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
636 __m256i __B) {
637 //CHECK-LABEL: @test_mm256_mask_sub_epi32
638 //CHECK: sub <8 x i32> %{{.*}}, %{{.*}}
639 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
640 return _mm256_mask_sub_epi32 (__W,__U,__A,__B);
641 }
642
test_mm256_maskz_sub_epi32(__mmask8 __U,__m256i __A,__m256i __B)643 __m256i test_mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
644 //CHECK-LABEL: @test_mm256_maskz_sub_epi32
645 //CHECK: sub <8 x i32> %{{.*}}, %{{.*}}
646 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
647 return _mm256_maskz_sub_epi32 (__U,__A,__B);
648 }
649
test_mm256_mask_sub_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)650 __m256i test_mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
651 __m256i __B) {
652 //CHECK-LABEL: @test_mm256_mask_sub_epi64
653 //CHECK: sub <4 x i64> %{{.*}}, %{{.*}}
654 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
655 return _mm256_mask_sub_epi64 (__W,__U,__A,__B);
656 }
657
test_mm256_maskz_sub_epi64(__mmask8 __U,__m256i __A,__m256i __B)658 __m256i test_mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
659 //CHECK-LABEL: @test_mm256_maskz_sub_epi64
660 //CHECK: sub <4 x i64> %{{.*}}, %{{.*}}
661 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
662 return _mm256_maskz_sub_epi64 (__U,__A,__B);
663 }
664
test_mm_mask_add_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)665 __m128i test_mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
666 __m128i __B) {
667 //CHECK-LABEL: @test_mm_mask_add_epi32
668 //CHECK: add <4 x i32> %{{.*}}, %{{.*}}
669 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
670 return _mm_mask_add_epi32(__W,__U,__A,__B);
671 }
672
673
test_mm_maskz_add_epi32(__mmask8 __U,__m128i __A,__m128i __B)674 __m128i test_mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
675 //CHECK-LABEL: @test_mm_maskz_add_epi32
676 //CHECK: add <4 x i32> %{{.*}}, %{{.*}}
677 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
678 return _mm_maskz_add_epi32 (__U,__A,__B);
679 }
680
test_mm_mask_add_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)681 __m128i test_mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
682 __m128i __B) {
683 //CHECK-LABEL: @test_mm_mask_add_epi64
684 //CHECK: add <2 x i64> %{{.*}}, %{{.*}}
685 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
686 return _mm_mask_add_epi64 (__W,__U,__A,__B);
687 }
688
test_mm_maskz_add_epi64(__mmask8 __U,__m128i __A,__m128i __B)689 __m128i test_mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
690 //CHECK-LABEL: @test_mm_maskz_add_epi64
691 //CHECK: add <2 x i64> %{{.*}}, %{{.*}}
692 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
693 return _mm_maskz_add_epi64 (__U,__A,__B);
694 }
695
test_mm_mask_sub_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)696 __m128i test_mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
697 __m128i __B) {
698 //CHECK-LABEL: @test_mm_mask_sub_epi32
699 //CHECK: sub <4 x i32> %{{.*}}, %{{.*}}
700 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
701 return _mm_mask_sub_epi32(__W, __U, __A, __B);
702 }
703
test_mm_maskz_sub_epi32(__mmask8 __U,__m128i __A,__m128i __B)704 __m128i test_mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
705 //CHECK-LABEL: @test_mm_maskz_sub_epi32
706 //CHECK: sub <4 x i32> %{{.*}}, %{{.*}}
707 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
708 return _mm_maskz_sub_epi32(__U, __A, __B);
709 }
710
test_mm_mask_sub_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)711 __m128i test_mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
712 __m128i __B) {
713 //CHECK-LABEL: @test_mm_mask_sub_epi64
714 //CHECK: sub <2 x i64> %{{.*}}, %{{.*}}
715 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
716 return _mm_mask_sub_epi64 (__W, __U, __A, __B);
717 }
718
test_mm_maskz_sub_epi64(__mmask8 __U,__m128i __A,__m128i __B)719 __m128i test_mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
720 //CHECK-LABEL: @test_mm_maskz_sub_epi64
721 //CHECK: sub <2 x i64> %{{.*}}, %{{.*}}
722 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
723 return _mm_maskz_sub_epi64 (__U, __A, __B);
724 }
725
test_mm256_mask_mul_epi32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)726 __m256i test_mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
727 __m256i __Y) {
728 //CHECK-LABEL: @test_mm256_mask_mul_epi32
729 //CHECK: shl <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
730 //CHECK: ashr <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
731 //CHECK: shl <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
732 //CHECK: ashr <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
733 //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
734 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
735 return _mm256_mask_mul_epi32(__W, __M, __X, __Y);
736 }
737
test_mm256_maskz_mul_epi32(__mmask8 __M,__m256i __X,__m256i __Y)738 __m256i test_mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y) {
739 //CHECK-LABEL: @test_mm256_maskz_mul_epi32
740 //CHECK: shl <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
741 //CHECK: ashr <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
742 //CHECK: shl <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
743 //CHECK: ashr <4 x i64> %{{.*}}, <i64 32, i64 32, i64 32, i64 32>
744 //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
745 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
746 return _mm256_maskz_mul_epi32(__M, __X, __Y);
747 }
748
749
test_mm_mask_mul_epi32(__m128i __W,__mmask8 __M,__m128i __X,__m128i __Y)750 __m128i test_mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X,
751 __m128i __Y) {
752 //CHECK-LABEL: @test_mm_mask_mul_epi32
753 //CHECK: shl <2 x i64> %{{.*}}, <i64 32, i64 32>
754 //CHECK: ashr <2 x i64> %{{.*}}, <i64 32, i64 32>
755 //CHECK: shl <2 x i64> %{{.*}}, <i64 32, i64 32>
756 //CHECK: ashr <2 x i64> %{{.*}}, <i64 32, i64 32>
757 //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
758 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
759 return _mm_mask_mul_epi32(__W, __M, __X, __Y);
760 }
761
test_mm_maskz_mul_epi32(__mmask8 __M,__m128i __X,__m128i __Y)762 __m128i test_mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y) {
763 //CHECK-LABEL: @test_mm_maskz_mul_epi32
764 //CHECK: shl <2 x i64> %{{.*}}, <i64 32, i64 32>
765 //CHECK: ashr <2 x i64> %{{.*}}, <i64 32, i64 32>
766 //CHECK: shl <2 x i64> %{{.*}}, <i64 32, i64 32>
767 //CHECK: ashr <2 x i64> %{{.*}}, <i64 32, i64 32>
768 //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
769 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
770 return _mm_maskz_mul_epi32(__M, __X, __Y);
771 }
772
test_mm256_mask_mul_epu32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)773 __m256i test_mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X,
774 __m256i __Y) {
775 //CHECK-LABEL: @test_mm256_mask_mul_epu32
776 //CHECK: and <4 x i64> %{{.*}}, <i64 4294967295, i64 4294967295, i64 4294967295, i64 4294967295>
777 //CHECK: and <4 x i64> %{{.*}}, <i64 4294967295, i64 4294967295, i64 4294967295, i64 4294967295>
778 //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
779 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
780 return _mm256_mask_mul_epu32(__W, __M, __X, __Y);
781 }
782
test_mm256_maskz_mul_epu32(__mmask8 __M,__m256i __X,__m256i __Y)783 __m256i test_mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y) {
784 //CHECK-LABEL: @test_mm256_maskz_mul_epu32
785 //CHECK: and <4 x i64> %{{.*}}, <i64 4294967295, i64 4294967295, i64 4294967295, i64 4294967295>
786 //CHECK: and <4 x i64> %{{.*}}, <i64 4294967295, i64 4294967295, i64 4294967295, i64 4294967295>
787 //CHECK: mul <4 x i64> %{{.*}}, %{{.*}}
788 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
789 return _mm256_maskz_mul_epu32(__M, __X, __Y);
790 }
791
test_mm_mask_mul_epu32(__m128i __W,__mmask8 __M,__m128i __X,__m128i __Y)792 __m128i test_mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X,
793 __m128i __Y) {
794 //CHECK-LABEL: @test_mm_mask_mul_epu32
795 //CHECK: and <2 x i64> %{{.*}}, <i64 4294967295, i64 4294967295>
796 //CHECK: and <2 x i64> %{{.*}}, <i64 4294967295, i64 4294967295>
797 //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
798 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
799 return _mm_mask_mul_epu32(__W, __M, __X, __Y);
800 }
801
test_mm_maskz_mul_epu32(__mmask8 __M,__m128i __X,__m128i __Y)802 __m128i test_mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y) {
803 //CHECK-LABEL: @test_mm_maskz_mul_epu32
804 //CHECK: and <2 x i64> %{{.*}}, <i64 4294967295, i64 4294967295>
805 //CHECK: and <2 x i64> %{{.*}}, <i64 4294967295, i64 4294967295>
806 //CHECK: mul <2 x i64> %{{.*}}, %{{.*}}
807 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
808 return _mm_maskz_mul_epu32(__M, __X, __Y);
809 }
810
test_mm_maskz_mullo_epi32(__mmask8 __M,__m128i __A,__m128i __B)811 __m128i test_mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
812 //CHECK-LABEL: @test_mm_maskz_mullo_epi32
813 //CHECK: mul <4 x i32> %{{.*}}, %{{.*}}
814 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
815 return _mm_maskz_mullo_epi32(__M, __A, __B);
816 }
817
test_mm_mask_mullo_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)818 __m128i test_mm_mask_mullo_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
819 __m128i __B) {
820 //CHECK-LABEL: @test_mm_mask_mullo_epi32
821 //CHECK: mul <4 x i32> %{{.*}}, %{{.*}}
822 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
823 return _mm_mask_mullo_epi32(__W, __M, __A, __B);
824 }
825
test_mm256_maskz_mullo_epi32(__mmask8 __M,__m256i __A,__m256i __B)826 __m256i test_mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
827 //CHECK-LABEL: @test_mm256_maskz_mullo_epi32
828 //CHECK: mul <8 x i32> %{{.*}}, %{{.*}}
829 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
830 return _mm256_maskz_mullo_epi32(__M, __A, __B);
831 }
832
test_mm256_mask_mullo_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)833 __m256i test_mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
834 __m256i __B) {
835 //CHECK-LABEL: @test_mm256_mask_mullo_epi32
836 //CHECK: mul <8 x i32> %{{.*}}, %{{.*}}
837 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
838 return _mm256_mask_mullo_epi32(__W, __M, __A, __B);
839 }
840
test_mm256_and_epi32(__m256i __A,__m256i __B)841 __m256i test_mm256_and_epi32 (__m256i __A, __m256i __B) {
842 //CHECK-LABEL: @test_mm256_and_epi32
843 //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
844 return _mm256_and_epi32(__A, __B);
845 }
846
test_mm256_mask_and_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)847 __m256i test_mm256_mask_and_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
848 //CHECK-LABEL: @test_mm256_mask_and_epi32
849 //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
850 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
851 return _mm256_mask_and_epi32(__W, __U, __A, __B);
852 }
853
test_mm256_maskz_and_epi32(__mmask8 __U,__m256i __A,__m256i __B)854 __m256i test_mm256_maskz_and_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
855 //CHECK-LABEL: @test_mm256_maskz_and_epi32
856 //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
857 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
858 return _mm256_maskz_and_epi32(__U, __A, __B);
859 }
860
test_mm_and_epi32(__m128i __A,__m128i __B)861 __m128i test_mm_and_epi32 (__m128i __A, __m128i __B) {
862 //CHECK-LABEL: @test_mm_and_epi32
863 //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
864 return _mm_and_epi32(__A, __B);
865 }
866
test_mm_mask_and_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)867 __m128i test_mm_mask_and_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
868 //CHECK-LABEL: @test_mm_mask_and_epi32
869 //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
870 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
871 return _mm_mask_and_epi32(__W, __U, __A, __B);
872 }
873
test_mm_maskz_and_epi32(__mmask8 __U,__m128i __A,__m128i __B)874 __m128i test_mm_maskz_and_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
875 //CHECK-LABEL: @test_mm_maskz_and_epi32
876 //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
877 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
878 return _mm_maskz_and_epi32(__U, __A, __B);
879 }
880
test_mm256_andnot_epi32(__m256i __A,__m256i __B)881 __m256i test_mm256_andnot_epi32 (__m256i __A, __m256i __B) {
882 //CHECK-LABEL: @test_mm256_andnot_epi32
883 //CHECK: xor <8 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
884 //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
885 return _mm256_andnot_epi32(__A, __B);
886 }
887
test_mm256_mask_andnot_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)888 __m256i test_mm256_mask_andnot_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
889 //CHECK-LABEL: @test_mm256_mask_andnot_epi32
890 //CHECK: xor <8 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
891 //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
892 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
893 return _mm256_mask_andnot_epi32(__W, __U, __A, __B);
894 }
895
test_mm256_maskz_andnot_epi32(__mmask8 __U,__m256i __A,__m256i __B)896 __m256i test_mm256_maskz_andnot_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
897 //CHECK-LABEL: @test_mm256_maskz_andnot_epi32
898 //CHECK: xor <8 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
899 //CHECK: and <8 x i32> %{{.*}}, %{{.*}}
900 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
901 return _mm256_maskz_andnot_epi32(__U, __A, __B);
902 }
903
test_mm_andnot_epi32(__m128i __A,__m128i __B)904 __m128i test_mm_andnot_epi32 (__m128i __A, __m128i __B) {
905 //CHECK-LABEL: @test_mm_andnot_epi32
906 //CHECK: xor <4 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1>
907 //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
908 return _mm_andnot_epi32(__A, __B);
909 }
910
test_mm_mask_andnot_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)911 __m128i test_mm_mask_andnot_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
912 //CHECK-LABEL: @test_mm_mask_andnot_epi32
913 //CHECK: xor <4 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1>
914 //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
915 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
916 return _mm_mask_andnot_epi32(__W, __U, __A, __B);
917 }
918
test_mm_maskz_andnot_epi32(__mmask8 __U,__m128i __A,__m128i __B)919 __m128i test_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
920 //CHECK-LABEL: @test_mm_maskz_andnot_epi32
921 //CHECK: xor <4 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1>
922 //CHECK: and <4 x i32> %{{.*}}, %{{.*}}
923 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
924 return _mm_maskz_andnot_epi32(__U, __A, __B);
925 }
926
test_mm256_or_epi32(__m256i __A,__m256i __B)927 __m256i test_mm256_or_epi32 (__m256i __A, __m256i __B) {
928 //CHECK-LABEL: @test_mm256_or_epi32
929 //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
930 return _mm256_or_epi32(__A, __B);
931 }
932
test_mm256_mask_or_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)933 __m256i test_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
934 //CHECK-LABEL: @test_mm256_mask_or_epi32
935 //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
936 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
937 return _mm256_mask_or_epi32(__W, __U, __A, __B);
938 }
939
test_mm256_maskz_or_epi32(__mmask8 __U,__m256i __A,__m256i __B)940 __m256i test_mm256_maskz_or_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
941 //CHECK-LABEL: @test_mm256_maskz_or_epi32
942 //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
943 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
944 return _mm256_maskz_or_epi32(__U, __A, __B);
945 }
946
test_mm_or_epi32(__m128i __A,__m128i __B)947 __m128i test_mm_or_epi32 (__m128i __A, __m128i __B) {
948 //CHECK-LABEL: @test_mm_or_epi32
949 //CHECK: or <4 x i32> %{{.*}}, %{{.*}}
950 return _mm_or_epi32(__A, __B);
951 }
952
test_mm_mask_or_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)953 __m128i test_mm_mask_or_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
954 //CHECK-LABEL: @test_mm_mask_or_epi32
955 //CHECK: or <4 x i32> %{{.*}}, %{{.*}}
956 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
957 return _mm_mask_or_epi32(__W, __U, __A, __B);
958 }
959
test_mm_maskz_or_epi32(__mmask8 __U,__m128i __A,__m128i __B)960 __m128i test_mm_maskz_or_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
961 //CHECK-LABEL: @test_mm_maskz_or_epi32
962 //CHECK: or <4 x i32> %{{.*}}, %{{.*}}
963 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
964 return _mm_maskz_or_epi32(__U, __A, __B);
965 }
966
test_mm256_xor_epi32(__m256i __A,__m256i __B)967 __m256i test_mm256_xor_epi32 (__m256i __A, __m256i __B) {
968 //CHECK-LABEL: @test_mm256_xor_epi32
969 //CHECK: or <8 x i32> %{{.*}}, %{{.*}}
970 return _mm256_xor_epi32(__A, __B);
971 }
972
test_mm256_mask_xor_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)973 __m256i test_mm256_mask_xor_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
974 //CHECK-LABEL: @test_mm256_mask_xor_epi32
975 //CHECK: xor <8 x i32> %{{.*}}, %{{.*}}
976 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
977 return _mm256_mask_xor_epi32(__W, __U, __A, __B);
978 }
979
test_mm256_maskz_xor_epi32(__mmask8 __U,__m256i __A,__m256i __B)980 __m256i test_mm256_maskz_xor_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
981 //CHECK-LABEL: @test_mm256_maskz_xor_epi32
982 //CHECK: xor <8 x i32> %{{.*}}, %{{.*}}
983 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
984 return _mm256_maskz_xor_epi32(__U, __A, __B);
985 }
986
test_mm_xor_epi32(__m128i __A,__m128i __B)987 __m128i test_mm_xor_epi32 (__m128i __A, __m128i __B) {
988 //CHECK-LABEL: @test_mm_xor_epi32
989 //CHECK: xor <4 x i32> %{{.*}}, %{{.*}}
990 return _mm_xor_epi32(__A, __B);
991 }
992
test_mm_mask_xor_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)993 __m128i test_mm_mask_xor_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
994 //CHECK-LABEL: @test_mm_mask_xor_epi32
995 //CHECK: xor <4 x i32> %{{.*}}, %{{.*}}
996 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
997 return _mm_mask_xor_epi32(__W, __U, __A, __B);
998 }
999
test_mm_maskz_xor_epi32(__mmask8 __U,__m128i __A,__m128i __B)1000 __m128i test_mm_maskz_xor_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
1001 //CHECK-LABEL: @test_mm_maskz_xor_epi32
1002 //CHECK: xor <4 x i32> %{{.*}}, %{{.*}}
1003 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
1004 return _mm_maskz_xor_epi32(__U, __A, __B);
1005 }
1006
test_mm256_and_epi64(__m256i __A,__m256i __B)1007 __m256i test_mm256_and_epi64 (__m256i __A, __m256i __B) {
1008 //CHECK-LABEL: @test_mm256_and_epi64
1009 //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1010 return _mm256_and_epi64(__A, __B);
1011 }
1012
test_mm256_mask_and_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1013 __m256i test_mm256_mask_and_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1014 //CHECK-LABEL: @test_mm256_mask_and_epi64
1015 //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1016 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1017 return _mm256_mask_and_epi64(__W, __U, __A, __B);
1018 }
1019
test_mm256_maskz_and_epi64(__mmask8 __U,__m256i __A,__m256i __B)1020 __m256i test_mm256_maskz_and_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
1021 //CHECK-LABEL: @test_mm256_maskz_and_epi64
1022 //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1023 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1024 return _mm256_maskz_and_epi64(__U, __A, __B);
1025 }
1026
test_mm_and_epi64(__m128i __A,__m128i __B)1027 __m128i test_mm_and_epi64 (__m128i __A, __m128i __B) {
1028 //CHECK-LABEL: @test_mm_and_epi64
1029 //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1030 return _mm_and_epi64(__A, __B);
1031 }
1032
test_mm_mask_and_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1033 __m128i test_mm_mask_and_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1034 //CHECK-LABEL: @test_mm_mask_and_epi64
1035 //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1036 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1037 return _mm_mask_and_epi64(__W,__U, __A, __B);
1038 }
1039
test_mm_maskz_and_epi64(__mmask8 __U,__m128i __A,__m128i __B)1040 __m128i test_mm_maskz_and_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
1041 //CHECK-LABEL: @test_mm_maskz_and_epi64
1042 //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1043 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1044 return _mm_maskz_and_epi64(__U, __A, __B);
1045 }
1046
test_mm256_andnot_epi64(__m256i __A,__m256i __B)1047 __m256i test_mm256_andnot_epi64 (__m256i __A, __m256i __B) {
1048 //CHECK-LABEL: @test_mm256_andnot_epi64
1049 //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1>
1050 //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1051 return _mm256_andnot_epi64(__A, __B);
1052 }
1053
test_mm256_mask_andnot_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1054 __m256i test_mm256_mask_andnot_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1055 //CHECK-LABEL: @test_mm256_mask_andnot_epi64
1056 //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1>
1057 //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1058 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1059 return _mm256_mask_andnot_epi64(__W, __U, __A, __B);
1060 }
1061
test_mm256_maskz_andnot_epi64(__mmask8 __U,__m256i __A,__m256i __B)1062 __m256i test_mm256_maskz_andnot_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
1063 //CHECK-LABEL: @test_mm256_maskz_andnot_epi64
1064 //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1>
1065 //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
1066 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1067 return _mm256_maskz_andnot_epi64(__U, __A, __B);
1068 }
1069
test_mm_andnot_epi64(__m128i __A,__m128i __B)1070 __m128i test_mm_andnot_epi64 (__m128i __A, __m128i __B) {
1071 //CHECK-LABEL: @test_mm_andnot_epi64
1072 //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1>
1073 //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1074 return _mm_andnot_epi64(__A, __B);
1075 }
1076
test_mm_mask_andnot_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1077 __m128i test_mm_mask_andnot_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1078 //CHECK-LABEL: @test_mm_mask_andnot_epi64
1079 //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1>
1080 //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1081 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1082 return _mm_mask_andnot_epi64(__W,__U, __A, __B);
1083 }
1084
test_mm_maskz_andnot_epi64(__mmask8 __U,__m128i __A,__m128i __B)1085 __m128i test_mm_maskz_andnot_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
1086 //CHECK-LABEL: @test_mm_maskz_andnot_epi64
1087 //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1>
1088 //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
1089 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1090 return _mm_maskz_andnot_epi64(__U, __A, __B);
1091 }
1092
test_mm256_or_epi64(__m256i __A,__m256i __B)1093 __m256i test_mm256_or_epi64 (__m256i __A, __m256i __B) {
1094 //CHECK-LABEL: @test_mm256_or_epi64
1095 //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
1096 return _mm256_or_epi64(__A, __B);
1097 }
1098
test_mm256_mask_or_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1099 __m256i test_mm256_mask_or_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1100 //CHECK-LABEL: @test_mm256_mask_or_epi64
1101 //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
1102 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1103 return _mm256_mask_or_epi64(__W,__U, __A, __B);
1104 }
1105
test_mm256_maskz_or_epi64(__mmask8 __U,__m256i __A,__m256i __B)1106 __m256i test_mm256_maskz_or_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
1107 //CHECK-LABEL: @test_mm256_maskz_or_epi64
1108 //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
1109 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1110 return _mm256_maskz_or_epi64(__U, __A, __B);
1111 }
1112
test_mm_or_epi64(__m128i __A,__m128i __B)1113 __m128i test_mm_or_epi64 (__m128i __A, __m128i __B) {
1114 //CHECK-LABEL: @test_mm_or_epi64
1115 //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
1116 return _mm_or_epi64(__A, __B);
1117 }
1118
test_mm_mask_or_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1119 __m128i test_mm_mask_or_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1120 //CHECK-LABEL: @test_mm_mask_or_epi64
1121 //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
1122 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1123 return _mm_mask_or_epi64(__W, __U, __A, __B);
1124 }
1125
test_mm_maskz_or_epi64(__mmask8 __U,__m128i __A,__m128i __B)1126 __m128i test_mm_maskz_or_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
1127 //CHECK-LABEL: @test_mm_maskz_or_epi64
1128 //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
1129 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1130 return _mm_maskz_or_epi64( __U, __A, __B);
1131 }
1132
test_mm256_xor_epi64(__m256i __A,__m256i __B)1133 __m256i test_mm256_xor_epi64 (__m256i __A, __m256i __B) {
1134 //CHECK-LABEL: @test_mm256_xor_epi64
1135 //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
1136 return _mm256_xor_epi64(__A, __B);
1137 }
1138
test_mm256_mask_xor_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1139 __m256i test_mm256_mask_xor_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1140 //CHECK-LABEL: @test_mm256_mask_xor_epi64
1141 //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
1142 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1143 return _mm256_mask_xor_epi64(__W,__U, __A, __B);
1144 }
1145
test_mm256_maskz_xor_epi64(__mmask8 __U,__m256i __A,__m256i __B)1146 __m256i test_mm256_maskz_xor_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
1147 //CHECK-LABEL: @test_mm256_maskz_xor_epi64
1148 //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
1149 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
1150 return _mm256_maskz_xor_epi64(__U, __A, __B);
1151 }
1152
test_mm_xor_epi64(__m128i __A,__m128i __B)1153 __m128i test_mm_xor_epi64 (__m128i __A, __m128i __B) {
1154 //CHECK-LABEL: @test_mm_xor_epi64
1155 //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
1156 return _mm_xor_epi64(__A, __B);
1157 }
1158
test_mm_mask_xor_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1159 __m128i test_mm_mask_xor_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1160 //CHECK-LABEL: @test_mm_mask_xor_epi64
1161 //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
1162 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1163 return _mm_mask_xor_epi64(__W, __U, __A, __B);
1164 }
1165
test_mm_maskz_xor_epi64(__mmask8 __U,__m128i __A,__m128i __B)1166 __m128i test_mm_maskz_xor_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
1167 //CHECK-LABEL: @test_mm_maskz_xor_epi64
1168 //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
1169 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1170 return _mm_maskz_xor_epi64( __U, __A, __B);
1171 }
1172
test_mm256_cmp_ps_mask_eq_oq(__m256 a,__m256 b)1173 __mmask8 test_mm256_cmp_ps_mask_eq_oq(__m256 a, __m256 b) {
1174 // CHECK-LABEL: @test_mm256_cmp_ps_mask_eq_oq
1175 // CHECK: fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1176 return _mm256_cmp_ps_mask(a, b, _CMP_EQ_OQ);
1177 }
1178
test_mm256_cmp_ps_mask_lt_os(__m256 a,__m256 b)1179 __mmask8 test_mm256_cmp_ps_mask_lt_os(__m256 a, __m256 b) {
1180 // CHECK-LABEL: test_mm256_cmp_ps_mask_lt_os
1181 // CHECK: fcmp olt <8 x float> %{{.*}}, %{{.*}}
1182 return _mm256_cmp_ps_mask(a, b, _CMP_LT_OS);
1183 }
1184
test_mm256_cmp_ps_mask_le_os(__m256 a,__m256 b)1185 __mmask8 test_mm256_cmp_ps_mask_le_os(__m256 a, __m256 b) {
1186 // CHECK-LABEL: test_mm256_cmp_ps_mask_le_os
1187 // CHECK: fcmp ole <8 x float> %{{.*}}, %{{.*}}
1188 return _mm256_cmp_ps_mask(a, b, _CMP_LE_OS);
1189 }
1190
test_mm256_cmp_ps_mask_unord_q(__m256 a,__m256 b)1191 __mmask8 test_mm256_cmp_ps_mask_unord_q(__m256 a, __m256 b) {
1192 // CHECK-LABEL: test_mm256_cmp_ps_mask_unord_q
1193 // CHECK: fcmp uno <8 x float> %{{.*}}, %{{.*}}
1194 return _mm256_cmp_ps_mask(a, b, _CMP_UNORD_Q);
1195 }
1196
test_mm256_cmp_ps_mask_neq_uq(__m256 a,__m256 b)1197 __mmask8 test_mm256_cmp_ps_mask_neq_uq(__m256 a, __m256 b) {
1198 // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_uq
1199 // CHECK: fcmp une <8 x float> %{{.*}}, %{{.*}}
1200 return _mm256_cmp_ps_mask(a, b, _CMP_NEQ_UQ);
1201 }
1202
test_mm256_cmp_ps_mask_nlt_us(__m256 a,__m256 b)1203 __mmask8 test_mm256_cmp_ps_mask_nlt_us(__m256 a, __m256 b) {
1204 // CHECK-LABEL: test_mm256_cmp_ps_mask_nlt_us
1205 // CHECK: fcmp uge <8 x float> %{{.*}}, %{{.*}}
1206 return _mm256_cmp_ps_mask(a, b, _CMP_NLT_US);
1207 }
1208
test_mm256_cmp_ps_mask_nle_us(__m256 a,__m256 b)1209 __mmask8 test_mm256_cmp_ps_mask_nle_us(__m256 a, __m256 b) {
1210 // CHECK-LABEL: test_mm256_cmp_ps_mask_nle_us
1211 // CHECK: fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1212 return _mm256_cmp_ps_mask(a, b, _CMP_NLE_US);
1213 }
1214
test_mm256_cmp_ps_mask_ord_q(__m256 a,__m256 b)1215 __mmask8 test_mm256_cmp_ps_mask_ord_q(__m256 a, __m256 b) {
1216 // CHECK-LABEL: test_mm256_cmp_ps_mask_ord_q
1217 // CHECK: fcmp ord <8 x float> %{{.*}}, %{{.*}}
1218 return _mm256_cmp_ps_mask(a, b, _CMP_ORD_Q);
1219 }
1220
test_mm256_cmp_ps_mask_eq_uq(__m256 a,__m256 b)1221 __mmask8 test_mm256_cmp_ps_mask_eq_uq(__m256 a, __m256 b) {
1222 // CHECK-LABEL: test_mm256_cmp_ps_mask_eq_uq
1223 // CHECK: fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1224 return _mm256_cmp_ps_mask(a, b, _CMP_EQ_UQ);
1225 }
1226
test_mm256_cmp_ps_mask_nge_us(__m256 a,__m256 b)1227 __mmask8 test_mm256_cmp_ps_mask_nge_us(__m256 a, __m256 b) {
1228 // CHECK-LABEL: test_mm256_cmp_ps_mask_nge_us
1229 // CHECK: fcmp ult <8 x float> %{{.*}}, %{{.*}}
1230 return _mm256_cmp_ps_mask(a, b, _CMP_NGE_US);
1231 }
1232
test_mm256_cmp_ps_mask_ngt_us(__m256 a,__m256 b)1233 __mmask8 test_mm256_cmp_ps_mask_ngt_us(__m256 a, __m256 b) {
1234 // CHECK-LABEL: test_mm256_cmp_ps_mask_ngt_us
1235 // CHECK: fcmp ule <8 x float> %{{.*}}, %{{.*}}
1236 return _mm256_cmp_ps_mask(a, b, _CMP_NGT_US);
1237 }
1238
test_mm256_cmp_ps_mask_false_oq(__m256 a,__m256 b)1239 __mmask8 test_mm256_cmp_ps_mask_false_oq(__m256 a, __m256 b) {
1240 // CHECK-LABEL: test_mm256_cmp_ps_mask_false_oq
1241 // CHECK: fcmp false <8 x float> %{{.*}}, %{{.*}}
1242 return _mm256_cmp_ps_mask(a, b, _CMP_FALSE_OQ);
1243 }
1244
test_mm256_cmp_ps_mask_neq_oq(__m256 a,__m256 b)1245 __mmask8 test_mm256_cmp_ps_mask_neq_oq(__m256 a, __m256 b) {
1246 // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_oq
1247 // CHECK: fcmp one <8 x float> %{{.*}}, %{{.*}}
1248 return _mm256_cmp_ps_mask(a, b, _CMP_NEQ_OQ);
1249 }
1250
test_mm256_cmp_ps_mask_ge_os(__m256 a,__m256 b)1251 __mmask8 test_mm256_cmp_ps_mask_ge_os(__m256 a, __m256 b) {
1252 // CHECK-LABEL: test_mm256_cmp_ps_mask_ge_os
1253 // CHECK: fcmp oge <8 x float> %{{.*}}, %{{.*}}
1254 return _mm256_cmp_ps_mask(a, b, _CMP_GE_OS);
1255 }
1256
test_mm256_cmp_ps_mask_gt_os(__m256 a,__m256 b)1257 __mmask8 test_mm256_cmp_ps_mask_gt_os(__m256 a, __m256 b) {
1258 // CHECK-LABEL: test_mm256_cmp_ps_mask_gt_os
1259 // CHECK: fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1260 return _mm256_cmp_ps_mask(a, b, _CMP_GT_OS);
1261 }
1262
test_mm256_cmp_ps_mask_true_uq(__m256 a,__m256 b)1263 __mmask8 test_mm256_cmp_ps_mask_true_uq(__m256 a, __m256 b) {
1264 // CHECK-LABEL: test_mm256_cmp_ps_mask_true_uq
1265 // CHECK: fcmp true <8 x float> %{{.*}}, %{{.*}}
1266 return _mm256_cmp_ps_mask(a, b, _CMP_TRUE_UQ);
1267 }
1268
test_mm256_cmp_ps_mask_eq_os(__m256 a,__m256 b)1269 __mmask8 test_mm256_cmp_ps_mask_eq_os(__m256 a, __m256 b) {
1270 // CHECK-LABEL: test_mm256_cmp_ps_mask_eq_os
1271 // CHECK: fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1272 return _mm256_cmp_ps_mask(a, b, _CMP_EQ_OS);
1273 }
1274
test_mm256_cmp_ps_mask_lt_oq(__m256 a,__m256 b)1275 __mmask8 test_mm256_cmp_ps_mask_lt_oq(__m256 a, __m256 b) {
1276 // CHECK-LABEL: test_mm256_cmp_ps_mask_lt_oq
1277 // CHECK: fcmp olt <8 x float> %{{.*}}, %{{.*}}
1278 return _mm256_cmp_ps_mask(a, b, _CMP_LT_OQ);
1279 }
1280
test_mm256_cmp_ps_mask_le_oq(__m256 a,__m256 b)1281 __mmask8 test_mm256_cmp_ps_mask_le_oq(__m256 a, __m256 b) {
1282 // CHECK-LABEL: test_mm256_cmp_ps_mask_le_oq
1283 // CHECK: fcmp ole <8 x float> %{{.*}}, %{{.*}}
1284 return _mm256_cmp_ps_mask(a, b, _CMP_LE_OQ);
1285 }
1286
test_mm256_cmp_ps_mask_unord_s(__m256 a,__m256 b)1287 __mmask8 test_mm256_cmp_ps_mask_unord_s(__m256 a, __m256 b) {
1288 // CHECK-LABEL: test_mm256_cmp_ps_mask_unord_s
1289 // CHECK: fcmp uno <8 x float> %{{.*}}, %{{.*}}
1290 return _mm256_cmp_ps_mask(a, b, _CMP_UNORD_S);
1291 }
1292
test_mm256_cmp_ps_mask_neq_us(__m256 a,__m256 b)1293 __mmask8 test_mm256_cmp_ps_mask_neq_us(__m256 a, __m256 b) {
1294 // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_us
1295 // CHECK: fcmp une <8 x float> %{{.*}}, %{{.*}}
1296 return _mm256_cmp_ps_mask(a, b, _CMP_NEQ_US);
1297 }
1298
test_mm256_cmp_ps_mask_nlt_uq(__m256 a,__m256 b)1299 __mmask8 test_mm256_cmp_ps_mask_nlt_uq(__m256 a, __m256 b) {
1300 // CHECK-LABEL: test_mm256_cmp_ps_mask_nlt_uq
1301 // CHECK: fcmp uge <8 x float> %{{.*}}, %{{.*}}
1302 return _mm256_cmp_ps_mask(a, b, _CMP_NLT_UQ);
1303 }
1304
test_mm256_cmp_ps_mask_nle_uq(__m256 a,__m256 b)1305 __mmask8 test_mm256_cmp_ps_mask_nle_uq(__m256 a, __m256 b) {
1306 // CHECK-LABEL: test_mm256_cmp_ps_mask_nle_uq
1307 // CHECK: fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1308 return _mm256_cmp_ps_mask(a, b, _CMP_NLE_UQ);
1309 }
1310
test_mm256_cmp_ps_mask_ord_s(__m256 a,__m256 b)1311 __mmask8 test_mm256_cmp_ps_mask_ord_s(__m256 a, __m256 b) {
1312 // CHECK-LABEL: test_mm256_cmp_ps_mask_ord_s
1313 // CHECK: fcmp ord <8 x float> %{{.*}}, %{{.*}}
1314 return _mm256_cmp_ps_mask(a, b, _CMP_ORD_S);
1315 }
1316
test_mm256_cmp_ps_mask_eq_us(__m256 a,__m256 b)1317 __mmask8 test_mm256_cmp_ps_mask_eq_us(__m256 a, __m256 b) {
1318 // CHECK-LABEL: test_mm256_cmp_ps_mask_eq_us
1319 // CHECK: fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1320 return _mm256_cmp_ps_mask(a, b, _CMP_EQ_US);
1321 }
1322
test_mm256_cmp_ps_mask_nge_uq(__m256 a,__m256 b)1323 __mmask8 test_mm256_cmp_ps_mask_nge_uq(__m256 a, __m256 b) {
1324 // CHECK-LABEL: test_mm256_cmp_ps_mask_nge_uq
1325 // CHECK: fcmp ult <8 x float> %{{.*}}, %{{.*}}
1326 return _mm256_cmp_ps_mask(a, b, _CMP_NGE_UQ);
1327 }
1328
test_mm256_cmp_ps_mask_ngt_uq(__m256 a,__m256 b)1329 __mmask8 test_mm256_cmp_ps_mask_ngt_uq(__m256 a, __m256 b) {
1330 // CHECK-LABEL: test_mm256_cmp_ps_mask_ngt_uq
1331 // CHECK: fcmp ule <8 x float> %{{.*}}, %{{.*}}
1332 return _mm256_cmp_ps_mask(a, b, _CMP_NGT_UQ);
1333 }
1334
test_mm256_cmp_ps_mask_false_os(__m256 a,__m256 b)1335 __mmask8 test_mm256_cmp_ps_mask_false_os(__m256 a, __m256 b) {
1336 // CHECK-LABEL: test_mm256_cmp_ps_mask_false_os
1337 // CHECK: fcmp false <8 x float> %{{.*}}, %{{.*}}
1338 return _mm256_cmp_ps_mask(a, b, _CMP_FALSE_OS);
1339 }
1340
test_mm256_cmp_ps_mask_neq_os(__m256 a,__m256 b)1341 __mmask8 test_mm256_cmp_ps_mask_neq_os(__m256 a, __m256 b) {
1342 // CHECK-LABEL: test_mm256_cmp_ps_mask_neq_os
1343 // CHECK: fcmp one <8 x float> %{{.*}}, %{{.*}}
1344 return _mm256_cmp_ps_mask(a, b, _CMP_NEQ_OS);
1345 }
1346
test_mm256_cmp_ps_mask_ge_oq(__m256 a,__m256 b)1347 __mmask8 test_mm256_cmp_ps_mask_ge_oq(__m256 a, __m256 b) {
1348 // CHECK-LABEL: test_mm256_cmp_ps_mask_ge_oq
1349 // CHECK: fcmp oge <8 x float> %{{.*}}, %{{.*}}
1350 return _mm256_cmp_ps_mask(a, b, _CMP_GE_OQ);
1351 }
1352
test_mm256_cmp_ps_mask_gt_oq(__m256 a,__m256 b)1353 __mmask8 test_mm256_cmp_ps_mask_gt_oq(__m256 a, __m256 b) {
1354 // CHECK-LABEL: test_mm256_cmp_ps_mask_gt_oq
1355 // CHECK: fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1356 return _mm256_cmp_ps_mask(a, b, _CMP_GT_OQ);
1357 }
1358
test_mm256_cmp_ps_mask_true_us(__m256 a,__m256 b)1359 __mmask8 test_mm256_cmp_ps_mask_true_us(__m256 a, __m256 b) {
1360 // CHECK-LABEL: test_mm256_cmp_ps_mask_true_us
1361 // CHECK: fcmp true <8 x float> %{{.*}}, %{{.*}}
1362 return _mm256_cmp_ps_mask(a, b, _CMP_TRUE_US);
1363 }
1364
test_mm256_mask_cmp_ps_mask_eq_oq(__mmask8 m,__m256 a,__m256 b)1365 __mmask8 test_mm256_mask_cmp_ps_mask_eq_oq(__mmask8 m, __m256 a, __m256 b) {
1366 // CHECK-LABEL: @test_mm256_mask_cmp_ps_mask_eq_oq
1367 // CHECK: [[CMP:%.*]] = fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1368 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1369 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_EQ_OQ);
1370 }
1371
test_mm256_mask_cmp_ps_mask_lt_os(__mmask8 m,__m256 a,__m256 b)1372 __mmask8 test_mm256_mask_cmp_ps_mask_lt_os(__mmask8 m, __m256 a, __m256 b) {
1373 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_lt_os
1374 // CHECK: [[CMP:%.*]] = fcmp olt <8 x float> %{{.*}}, %{{.*}}
1375 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1376 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_LT_OS);
1377 }
1378
test_mm256_mask_cmp_ps_mask_le_os(__mmask8 m,__m256 a,__m256 b)1379 __mmask8 test_mm256_mask_cmp_ps_mask_le_os(__mmask8 m, __m256 a, __m256 b) {
1380 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_le_os
1381 // CHECK: [[CMP:%.*]] = fcmp ole <8 x float> %{{.*}}, %{{.*}}
1382 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1383 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_LE_OS);
1384 }
1385
test_mm256_mask_cmp_ps_mask_unord_q(__mmask8 m,__m256 a,__m256 b)1386 __mmask8 test_mm256_mask_cmp_ps_mask_unord_q(__mmask8 m, __m256 a, __m256 b) {
1387 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_unord_q
1388 // CHECK: [[CMP:%.*]] = fcmp uno <8 x float> %{{.*}}, %{{.*}}
1389 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1390 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_UNORD_Q);
1391 }
1392
test_mm256_mask_cmp_ps_mask_neq_uq(__mmask8 m,__m256 a,__m256 b)1393 __mmask8 test_mm256_mask_cmp_ps_mask_neq_uq(__mmask8 m, __m256 a, __m256 b) {
1394 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_uq
1395 // CHECK: [[CMP:%.*]] = fcmp une <8 x float> %{{.*}}, %{{.*}}
1396 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1397 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_UQ);
1398 }
1399
test_mm256_mask_cmp_ps_mask_nlt_us(__mmask8 m,__m256 a,__m256 b)1400 __mmask8 test_mm256_mask_cmp_ps_mask_nlt_us(__mmask8 m, __m256 a, __m256 b) {
1401 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nlt_us
1402 // CHECK: [[CMP:%.*]] = fcmp uge <8 x float> %{{.*}}, %{{.*}}
1403 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1404 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NLT_US);
1405 }
1406
test_mm256_mask_cmp_ps_mask_nle_us(__mmask8 m,__m256 a,__m256 b)1407 __mmask8 test_mm256_mask_cmp_ps_mask_nle_us(__mmask8 m, __m256 a, __m256 b) {
1408 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nle_us
1409 // CHECK: [[CMP:%.*]] = fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1410 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1411 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NLE_US);
1412 }
1413
test_mm256_mask_cmp_ps_mask_ord_q(__mmask8 m,__m256 a,__m256 b)1414 __mmask8 test_mm256_mask_cmp_ps_mask_ord_q(__mmask8 m, __m256 a, __m256 b) {
1415 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ord_q
1416 // CHECK: [[CMP:%.*]] = fcmp ord <8 x float> %{{.*}}, %{{.*}}
1417 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1418 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_ORD_Q);
1419 }
1420
test_mm256_mask_cmp_ps_mask_eq_uq(__mmask8 m,__m256 a,__m256 b)1421 __mmask8 test_mm256_mask_cmp_ps_mask_eq_uq(__mmask8 m, __m256 a, __m256 b) {
1422 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_eq_uq
1423 // CHECK: [[CMP:%.*]] = fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1424 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1425 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_EQ_UQ);
1426 }
1427
test_mm256_mask_cmp_ps_mask_nge_us(__mmask8 m,__m256 a,__m256 b)1428 __mmask8 test_mm256_mask_cmp_ps_mask_nge_us(__mmask8 m, __m256 a, __m256 b) {
1429 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nge_us
1430 // CHECK: [[CMP:%.*]] = fcmp ult <8 x float> %{{.*}}, %{{.*}}
1431 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1432 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NGE_US);
1433 }
1434
test_mm256_mask_cmp_ps_mask_ngt_us(__mmask8 m,__m256 a,__m256 b)1435 __mmask8 test_mm256_mask_cmp_ps_mask_ngt_us(__mmask8 m, __m256 a, __m256 b) {
1436 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ngt_us
1437 // CHECK: [[CMP:%.*]] = fcmp ule <8 x float> %{{.*}}, %{{.*}}
1438 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1439 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NGT_US);
1440 }
1441
test_mm256_mask_cmp_ps_mask_false_oq(__mmask8 m,__m256 a,__m256 b)1442 __mmask8 test_mm256_mask_cmp_ps_mask_false_oq(__mmask8 m, __m256 a, __m256 b) {
1443 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_false_oq
1444 // CHECK: [[CMP:%.*]] = fcmp false <8 x float> %{{.*}}, %{{.*}}
1445 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1446 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_FALSE_OQ);
1447 }
1448
test_mm256_mask_cmp_ps_mask_neq_oq(__mmask8 m,__m256 a,__m256 b)1449 __mmask8 test_mm256_mask_cmp_ps_mask_neq_oq(__mmask8 m, __m256 a, __m256 b) {
1450 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_oq
1451 // CHECK: [[CMP:%.*]] = fcmp one <8 x float> %{{.*}}, %{{.*}}
1452 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1453 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_OQ);
1454 }
1455
test_mm256_mask_cmp_ps_mask_ge_os(__mmask8 m,__m256 a,__m256 b)1456 __mmask8 test_mm256_mask_cmp_ps_mask_ge_os(__mmask8 m, __m256 a, __m256 b) {
1457 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ge_os
1458 // CHECK: [[CMP:%.*]] = fcmp oge <8 x float> %{{.*}}, %{{.*}}
1459 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1460 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_GE_OS);
1461 }
1462
test_mm256_mask_cmp_ps_mask_gt_os(__mmask8 m,__m256 a,__m256 b)1463 __mmask8 test_mm256_mask_cmp_ps_mask_gt_os(__mmask8 m, __m256 a, __m256 b) {
1464 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_gt_os
1465 // CHECK: [[CMP:%.*]] = fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1466 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1467 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_GT_OS);
1468 }
1469
test_mm256_mask_cmp_ps_mask_true_uq(__mmask8 m,__m256 a,__m256 b)1470 __mmask8 test_mm256_mask_cmp_ps_mask_true_uq(__mmask8 m, __m256 a, __m256 b) {
1471 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_true_uq
1472 // CHECK: [[CMP:%.*]] = fcmp true <8 x float> %{{.*}}, %{{.*}}
1473 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1474 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_TRUE_UQ);
1475 }
1476
test_mm256_mask_cmp_ps_mask_eq_os(__mmask8 m,__m256 a,__m256 b)1477 __mmask8 test_mm256_mask_cmp_ps_mask_eq_os(__mmask8 m, __m256 a, __m256 b) {
1478 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_eq_os
1479 // CHECK: [[CMP:%.*]] = fcmp oeq <8 x float> %{{.*}}, %{{.*}}
1480 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1481 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_EQ_OS);
1482 }
1483
test_mm256_mask_cmp_ps_mask_lt_oq(__mmask8 m,__m256 a,__m256 b)1484 __mmask8 test_mm256_mask_cmp_ps_mask_lt_oq(__mmask8 m, __m256 a, __m256 b) {
1485 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_lt_oq
1486 // CHECK: [[CMP:%.*]] = fcmp olt <8 x float> %{{.*}}, %{{.*}}
1487 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1488 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_LT_OQ);
1489 }
1490
test_mm256_mask_cmp_ps_mask_le_oq(__mmask8 m,__m256 a,__m256 b)1491 __mmask8 test_mm256_mask_cmp_ps_mask_le_oq(__mmask8 m, __m256 a, __m256 b) {
1492 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_le_oq
1493 // CHECK: [[CMP:%.*]] = fcmp ole <8 x float> %{{.*}}, %{{.*}}
1494 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1495 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_LE_OQ);
1496 }
1497
test_mm256_mask_cmp_ps_mask_unord_s(__mmask8 m,__m256 a,__m256 b)1498 __mmask8 test_mm256_mask_cmp_ps_mask_unord_s(__mmask8 m, __m256 a, __m256 b) {
1499 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_unord_s
1500 // CHECK: [[CMP:%.*]] = fcmp uno <8 x float> %{{.*}}, %{{.*}}
1501 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1502 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_UNORD_S);
1503 }
1504
test_mm256_mask_cmp_ps_mask_neq_us(__mmask8 m,__m256 a,__m256 b)1505 __mmask8 test_mm256_mask_cmp_ps_mask_neq_us(__mmask8 m, __m256 a, __m256 b) {
1506 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_us
1507 // CHECK: [[CMP:%.*]] = fcmp une <8 x float> %{{.*}}, %{{.*}}
1508 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1509 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_US);
1510 }
1511
test_mm256_mask_cmp_ps_mask_nlt_uq(__mmask8 m,__m256 a,__m256 b)1512 __mmask8 test_mm256_mask_cmp_ps_mask_nlt_uq(__mmask8 m, __m256 a, __m256 b) {
1513 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nlt_uq
1514 // CHECK: [[CMP:%.*]] = fcmp uge <8 x float> %{{.*}}, %{{.*}}
1515 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1516 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NLT_UQ);
1517 }
1518
test_mm256_mask_cmp_ps_mask_nle_uq(__mmask8 m,__m256 a,__m256 b)1519 __mmask8 test_mm256_mask_cmp_ps_mask_nle_uq(__mmask8 m, __m256 a, __m256 b) {
1520 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nle_uq
1521 // CHECK: [[CMP:%.*]] = fcmp ugt <8 x float> %{{.*}}, %{{.*}}
1522 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1523 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NLE_UQ);
1524 }
1525
test_mm256_mask_cmp_ps_mask_ord_s(__mmask8 m,__m256 a,__m256 b)1526 __mmask8 test_mm256_mask_cmp_ps_mask_ord_s(__mmask8 m, __m256 a, __m256 b) {
1527 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ord_s
1528 // CHECK: [[CMP:%.*]] = fcmp ord <8 x float> %{{.*}}, %{{.*}}
1529 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1530 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_ORD_S);
1531 }
1532
test_mm256_mask_cmp_ps_mask_eq_us(__mmask8 m,__m256 a,__m256 b)1533 __mmask8 test_mm256_mask_cmp_ps_mask_eq_us(__mmask8 m, __m256 a, __m256 b) {
1534 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_eq_us
1535 // CHECK: [[CMP:%.*]] = fcmp ueq <8 x float> %{{.*}}, %{{.*}}
1536 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1537 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_EQ_US);
1538 }
1539
test_mm256_mask_cmp_ps_mask_nge_uq(__mmask8 m,__m256 a,__m256 b)1540 __mmask8 test_mm256_mask_cmp_ps_mask_nge_uq(__mmask8 m, __m256 a, __m256 b) {
1541 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_nge_uq
1542 // CHECK: [[CMP:%.*]] = fcmp ult <8 x float> %{{.*}}, %{{.*}}
1543 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1544 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NGE_UQ);
1545 }
1546
test_mm256_mask_cmp_ps_mask_ngt_uq(__mmask8 m,__m256 a,__m256 b)1547 __mmask8 test_mm256_mask_cmp_ps_mask_ngt_uq(__mmask8 m, __m256 a, __m256 b) {
1548 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ngt_uq
1549 // CHECK: [[CMP:%.*]] = fcmp ule <8 x float> %{{.*}}, %{{.*}}
1550 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1551 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NGT_UQ);
1552 }
1553
test_mm256_mask_cmp_ps_mask_false_os(__mmask8 m,__m256 a,__m256 b)1554 __mmask8 test_mm256_mask_cmp_ps_mask_false_os(__mmask8 m, __m256 a, __m256 b) {
1555 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_false_os
1556 // CHECK: [[CMP:%.*]] = fcmp false <8 x float> %{{.*}}, %{{.*}}
1557 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1558 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_FALSE_OS);
1559 }
1560
test_mm256_mask_cmp_ps_mask_neq_os(__mmask8 m,__m256 a,__m256 b)1561 __mmask8 test_mm256_mask_cmp_ps_mask_neq_os(__mmask8 m, __m256 a, __m256 b) {
1562 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_neq_os
1563 // CHECK: [[CMP:%.*]] = fcmp one <8 x float> %{{.*}}, %{{.*}}
1564 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1565 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_OS);
1566 }
1567
test_mm256_mask_cmp_ps_mask_ge_oq(__mmask8 m,__m256 a,__m256 b)1568 __mmask8 test_mm256_mask_cmp_ps_mask_ge_oq(__mmask8 m, __m256 a, __m256 b) {
1569 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_ge_oq
1570 // CHECK: [[CMP:%.*]] = fcmp oge <8 x float> %{{.*}}, %{{.*}}
1571 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1572 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_GE_OQ);
1573 }
1574
test_mm256_mask_cmp_ps_mask_gt_oq(__mmask8 m,__m256 a,__m256 b)1575 __mmask8 test_mm256_mask_cmp_ps_mask_gt_oq(__mmask8 m, __m256 a, __m256 b) {
1576 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_gt_oq
1577 // CHECK: [[CMP:%.*]] = fcmp ogt <8 x float> %{{.*}}, %{{.*}}
1578 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1579 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_GT_OQ);
1580 }
1581
test_mm256_mask_cmp_ps_mask_true_us(__mmask8 m,__m256 a,__m256 b)1582 __mmask8 test_mm256_mask_cmp_ps_mask_true_us(__mmask8 m, __m256 a, __m256 b) {
1583 // CHECK-LABEL: test_mm256_mask_cmp_ps_mask_true_us
1584 // CHECK: [[CMP:%.*]] = fcmp true <8 x float> %{{.*}}, %{{.*}}
1585 // CHECK: and <8 x i1> [[CMP]], {{.*}}
1586 return _mm256_mask_cmp_ps_mask(m, a, b, _CMP_TRUE_US);
1587 }
1588
test_mm256_cmp_pd_mask_eq_oq(__m256d a,__m256d b)1589 __mmask8 test_mm256_cmp_pd_mask_eq_oq(__m256d a, __m256d b) {
1590 // CHECK-LABEL: @test_mm256_cmp_pd_mask_eq_oq
1591 // CHECK: fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1592 return _mm256_cmp_pd_mask(a, b, _CMP_EQ_OQ);
1593 }
1594
test_mm256_cmp_pd_mask_lt_os(__m256d a,__m256d b)1595 __mmask8 test_mm256_cmp_pd_mask_lt_os(__m256d a, __m256d b) {
1596 // CHECK-LABEL: test_mm256_cmp_pd_mask_lt_os
1597 // CHECK: fcmp olt <4 x double> %{{.*}}, %{{.*}}
1598 return _mm256_cmp_pd_mask(a, b, _CMP_LT_OS);
1599 }
1600
test_mm256_cmp_pd_mask_le_os(__m256d a,__m256d b)1601 __mmask8 test_mm256_cmp_pd_mask_le_os(__m256d a, __m256d b) {
1602 // CHECK-LABEL: test_mm256_cmp_pd_mask_le_os
1603 // CHECK: fcmp ole <4 x double> %{{.*}}, %{{.*}}
1604 return _mm256_cmp_pd_mask(a, b, _CMP_LE_OS);
1605 }
1606
test_mm256_cmp_pd_mask_unord_q(__m256d a,__m256d b)1607 __mmask8 test_mm256_cmp_pd_mask_unord_q(__m256d a, __m256d b) {
1608 // CHECK-LABEL: test_mm256_cmp_pd_mask_unord_q
1609 // CHECK: fcmp uno <4 x double> %{{.*}}, %{{.*}}
1610 return _mm256_cmp_pd_mask(a, b, _CMP_UNORD_Q);
1611 }
1612
test_mm256_cmp_pd_mask_neq_uq(__m256d a,__m256d b)1613 __mmask8 test_mm256_cmp_pd_mask_neq_uq(__m256d a, __m256d b) {
1614 // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_uq
1615 // CHECK: fcmp une <4 x double> %{{.*}}, %{{.*}}
1616 return _mm256_cmp_pd_mask(a, b, _CMP_NEQ_UQ);
1617 }
1618
test_mm256_cmp_pd_mask_nlt_us(__m256d a,__m256d b)1619 __mmask8 test_mm256_cmp_pd_mask_nlt_us(__m256d a, __m256d b) {
1620 // CHECK-LABEL: test_mm256_cmp_pd_mask_nlt_us
1621 // CHECK: fcmp uge <4 x double> %{{.*}}, %{{.*}}
1622 return _mm256_cmp_pd_mask(a, b, _CMP_NLT_US);
1623 }
1624
test_mm256_cmp_pd_mask_nle_us(__m256d a,__m256d b)1625 __mmask8 test_mm256_cmp_pd_mask_nle_us(__m256d a, __m256d b) {
1626 // CHECK-LABEL: test_mm256_cmp_pd_mask_nle_us
1627 // CHECK: fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1628 return _mm256_cmp_pd_mask(a, b, _CMP_NLE_US);
1629 }
1630
test_mm256_cmp_pd_mask_ord_q(__m256d a,__m256d b)1631 __mmask8 test_mm256_cmp_pd_mask_ord_q(__m256d a, __m256d b) {
1632 // CHECK-LABEL: test_mm256_cmp_pd_mask_ord_q
1633 // CHECK: fcmp ord <4 x double> %{{.*}}, %{{.*}}
1634 return _mm256_cmp_pd_mask(a, b, _CMP_ORD_Q);
1635 }
1636
test_mm256_cmp_pd_mask_eq_uq(__m256d a,__m256d b)1637 __mmask8 test_mm256_cmp_pd_mask_eq_uq(__m256d a, __m256d b) {
1638 // CHECK-LABEL: test_mm256_cmp_pd_mask_eq_uq
1639 // CHECK: fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1640 return _mm256_cmp_pd_mask(a, b, _CMP_EQ_UQ);
1641 }
1642
test_mm256_cmp_pd_mask_nge_us(__m256d a,__m256d b)1643 __mmask8 test_mm256_cmp_pd_mask_nge_us(__m256d a, __m256d b) {
1644 // CHECK-LABEL: test_mm256_cmp_pd_mask_nge_us
1645 // CHECK: fcmp ult <4 x double> %{{.*}}, %{{.*}}
1646 return _mm256_cmp_pd_mask(a, b, _CMP_NGE_US);
1647 }
1648
test_mm256_cmp_pd_mask_ngt_us(__m256d a,__m256d b)1649 __mmask8 test_mm256_cmp_pd_mask_ngt_us(__m256d a, __m256d b) {
1650 // CHECK-LABEL: test_mm256_cmp_pd_mask_ngt_us
1651 // CHECK: fcmp ule <4 x double> %{{.*}}, %{{.*}}
1652 return _mm256_cmp_pd_mask(a, b, _CMP_NGT_US);
1653 }
1654
test_mm256_cmp_pd_mask_false_oq(__m256d a,__m256d b)1655 __mmask8 test_mm256_cmp_pd_mask_false_oq(__m256d a, __m256d b) {
1656 // CHECK-LABEL: test_mm256_cmp_pd_mask_false_oq
1657 // CHECK: fcmp false <4 x double> %{{.*}}, %{{.*}}
1658 return _mm256_cmp_pd_mask(a, b, _CMP_FALSE_OQ);
1659 }
1660
test_mm256_cmp_pd_mask_neq_oq(__m256d a,__m256d b)1661 __mmask8 test_mm256_cmp_pd_mask_neq_oq(__m256d a, __m256d b) {
1662 // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_oq
1663 // CHECK: fcmp one <4 x double> %{{.*}}, %{{.*}}
1664 return _mm256_cmp_pd_mask(a, b, _CMP_NEQ_OQ);
1665 }
1666
test_mm256_cmp_pd_mask_ge_os(__m256d a,__m256d b)1667 __mmask8 test_mm256_cmp_pd_mask_ge_os(__m256d a, __m256d b) {
1668 // CHECK-LABEL: test_mm256_cmp_pd_mask_ge_os
1669 // CHECK: fcmp oge <4 x double> %{{.*}}, %{{.*}}
1670 return _mm256_cmp_pd_mask(a, b, _CMP_GE_OS);
1671 }
1672
test_mm256_cmp_pd_mask_gt_os(__m256d a,__m256d b)1673 __mmask8 test_mm256_cmp_pd_mask_gt_os(__m256d a, __m256d b) {
1674 // CHECK-LABEL: test_mm256_cmp_pd_mask_gt_os
1675 // CHECK: fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1676 return _mm256_cmp_pd_mask(a, b, _CMP_GT_OS);
1677 }
1678
test_mm256_cmp_pd_mask_true_uq(__m256d a,__m256d b)1679 __mmask8 test_mm256_cmp_pd_mask_true_uq(__m256d a, __m256d b) {
1680 // CHECK-LABEL: test_mm256_cmp_pd_mask_true_uq
1681 // CHECK: fcmp true <4 x double> %{{.*}}, %{{.*}}
1682 return _mm256_cmp_pd_mask(a, b, _CMP_TRUE_UQ);
1683 }
1684
test_mm256_cmp_pd_mask_eq_os(__m256d a,__m256d b)1685 __mmask8 test_mm256_cmp_pd_mask_eq_os(__m256d a, __m256d b) {
1686 // CHECK-LABEL: test_mm256_cmp_pd_mask_eq_os
1687 // CHECK: fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1688 return _mm256_cmp_pd_mask(a, b, _CMP_EQ_OS);
1689 }
1690
test_mm256_cmp_pd_mask_lt_oq(__m256d a,__m256d b)1691 __mmask8 test_mm256_cmp_pd_mask_lt_oq(__m256d a, __m256d b) {
1692 // CHECK-LABEL: test_mm256_cmp_pd_mask_lt_oq
1693 // CHECK: fcmp olt <4 x double> %{{.*}}, %{{.*}}
1694 return _mm256_cmp_pd_mask(a, b, _CMP_LT_OQ);
1695 }
1696
test_mm256_cmp_pd_mask_le_oq(__m256d a,__m256d b)1697 __mmask8 test_mm256_cmp_pd_mask_le_oq(__m256d a, __m256d b) {
1698 // CHECK-LABEL: test_mm256_cmp_pd_mask_le_oq
1699 // CHECK: fcmp ole <4 x double> %{{.*}}, %{{.*}}
1700 return _mm256_cmp_pd_mask(a, b, _CMP_LE_OQ);
1701 }
1702
test_mm256_cmp_pd_mask_unord_s(__m256d a,__m256d b)1703 __mmask8 test_mm256_cmp_pd_mask_unord_s(__m256d a, __m256d b) {
1704 // CHECK-LABEL: test_mm256_cmp_pd_mask_unord_s
1705 // CHECK: fcmp uno <4 x double> %{{.*}}, %{{.*}}
1706 return _mm256_cmp_pd_mask(a, b, _CMP_UNORD_S);
1707 }
1708
test_mm256_cmp_pd_mask_neq_us(__m256d a,__m256d b)1709 __mmask8 test_mm256_cmp_pd_mask_neq_us(__m256d a, __m256d b) {
1710 // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_us
1711 // CHECK: fcmp une <4 x double> %{{.*}}, %{{.*}}
1712 return _mm256_cmp_pd_mask(a, b, _CMP_NEQ_US);
1713 }
1714
test_mm256_cmp_pd_mask_nlt_uq(__m256d a,__m256d b)1715 __mmask8 test_mm256_cmp_pd_mask_nlt_uq(__m256d a, __m256d b) {
1716 // CHECK-LABEL: test_mm256_cmp_pd_mask_nlt_uq
1717 // CHECK: fcmp uge <4 x double> %{{.*}}, %{{.*}}
1718 return _mm256_cmp_pd_mask(a, b, _CMP_NLT_UQ);
1719 }
1720
test_mm256_cmp_pd_mask_nle_uq(__m256d a,__m256d b)1721 __mmask8 test_mm256_cmp_pd_mask_nle_uq(__m256d a, __m256d b) {
1722 // CHECK-LABEL: test_mm256_cmp_pd_mask_nle_uq
1723 // CHECK: fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1724 return _mm256_cmp_pd_mask(a, b, _CMP_NLE_UQ);
1725 }
1726
test_mm256_cmp_pd_mask_ord_s(__m256d a,__m256d b)1727 __mmask8 test_mm256_cmp_pd_mask_ord_s(__m256d a, __m256d b) {
1728 // CHECK-LABEL: test_mm256_cmp_pd_mask_ord_s
1729 // CHECK: fcmp ord <4 x double> %{{.*}}, %{{.*}}
1730 return _mm256_cmp_pd_mask(a, b, _CMP_ORD_S);
1731 }
1732
test_mm256_cmp_pd_mask_eq_us(__m256d a,__m256d b)1733 __mmask8 test_mm256_cmp_pd_mask_eq_us(__m256d a, __m256d b) {
1734 // CHECK-LABEL: test_mm256_cmp_pd_mask_eq_us
1735 // CHECK: fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1736 return _mm256_cmp_pd_mask(a, b, _CMP_EQ_US);
1737 }
1738
test_mm256_cmp_pd_mask_nge_uq(__m256d a,__m256d b)1739 __mmask8 test_mm256_cmp_pd_mask_nge_uq(__m256d a, __m256d b) {
1740 // CHECK-LABEL: test_mm256_cmp_pd_mask_nge_uq
1741 // CHECK: fcmp ult <4 x double> %{{.*}}, %{{.*}}
1742 return _mm256_cmp_pd_mask(a, b, _CMP_NGE_UQ);
1743 }
1744
test_mm256_cmp_pd_mask_ngt_uq(__m256d a,__m256d b)1745 __mmask8 test_mm256_cmp_pd_mask_ngt_uq(__m256d a, __m256d b) {
1746 // CHECK-LABEL: test_mm256_cmp_pd_mask_ngt_uq
1747 // CHECK: fcmp ule <4 x double> %{{.*}}, %{{.*}}
1748 return _mm256_cmp_pd_mask(a, b, _CMP_NGT_UQ);
1749 }
1750
test_mm256_cmp_pd_mask_false_os(__m256d a,__m256d b)1751 __mmask8 test_mm256_cmp_pd_mask_false_os(__m256d a, __m256d b) {
1752 // CHECK-LABEL: test_mm256_cmp_pd_mask_false_os
1753 // CHECK: fcmp false <4 x double> %{{.*}}, %{{.*}}
1754 return _mm256_cmp_pd_mask(a, b, _CMP_FALSE_OS);
1755 }
1756
test_mm256_cmp_pd_mask_neq_os(__m256d a,__m256d b)1757 __mmask8 test_mm256_cmp_pd_mask_neq_os(__m256d a, __m256d b) {
1758 // CHECK-LABEL: test_mm256_cmp_pd_mask_neq_os
1759 // CHECK: fcmp one <4 x double> %{{.*}}, %{{.*}}
1760 return _mm256_cmp_pd_mask(a, b, _CMP_NEQ_OS);
1761 }
1762
test_mm256_cmp_pd_mask_ge_oq(__m256d a,__m256d b)1763 __mmask8 test_mm256_cmp_pd_mask_ge_oq(__m256d a, __m256d b) {
1764 // CHECK-LABEL: test_mm256_cmp_pd_mask_ge_oq
1765 // CHECK: fcmp oge <4 x double> %{{.*}}, %{{.*}}
1766 return _mm256_cmp_pd_mask(a, b, _CMP_GE_OQ);
1767 }
1768
test_mm256_cmp_pd_mask_gt_oq(__m256d a,__m256d b)1769 __mmask8 test_mm256_cmp_pd_mask_gt_oq(__m256d a, __m256d b) {
1770 // CHECK-LABEL: test_mm256_cmp_pd_mask_gt_oq
1771 // CHECK: fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1772 return _mm256_cmp_pd_mask(a, b, _CMP_GT_OQ);
1773 }
1774
test_mm256_cmp_pd_mask_true_us(__m256d a,__m256d b)1775 __mmask8 test_mm256_cmp_pd_mask_true_us(__m256d a, __m256d b) {
1776 // CHECK-LABEL: test_mm256_cmp_pd_mask_true_us
1777 // CHECK: fcmp true <4 x double> %{{.*}}, %{{.*}}
1778 return _mm256_cmp_pd_mask(a, b, _CMP_TRUE_US);
1779 }
1780
test_mm256_mask_cmp_pd_mask_eq_oq(__mmask8 m,__m256d a,__m256d b)1781 __mmask8 test_mm256_mask_cmp_pd_mask_eq_oq(__mmask8 m, __m256d a, __m256d b) {
1782 // CHECK-LABEL: @test_mm256_mask_cmp_pd_mask_eq_oq
1783 // CHECK: [[CMP:%.*]] = fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1784 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1785 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_EQ_OQ);
1786 }
1787
test_mm256_mask_cmp_pd_mask_lt_os(__mmask8 m,__m256d a,__m256d b)1788 __mmask8 test_mm256_mask_cmp_pd_mask_lt_os(__mmask8 m, __m256d a, __m256d b) {
1789 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_lt_os
1790 // CHECK: [[CMP:%.*]] = fcmp olt <4 x double> %{{.*}}, %{{.*}}
1791 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1792 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_LT_OS);
1793 }
1794
test_mm256_mask_cmp_pd_mask_le_os(__mmask8 m,__m256d a,__m256d b)1795 __mmask8 test_mm256_mask_cmp_pd_mask_le_os(__mmask8 m, __m256d a, __m256d b) {
1796 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_le_os
1797 // CHECK: [[CMP:%.*]] = fcmp ole <4 x double> %{{.*}}, %{{.*}}
1798 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1799 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_LE_OS);
1800 }
1801
test_mm256_mask_cmp_pd_mask_unord_q(__mmask8 m,__m256d a,__m256d b)1802 __mmask8 test_mm256_mask_cmp_pd_mask_unord_q(__mmask8 m, __m256d a, __m256d b) {
1803 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_unord_q
1804 // CHECK: [[CMP:%.*]] = fcmp uno <4 x double> %{{.*}}, %{{.*}}
1805 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1806 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_UNORD_Q);
1807 }
1808
test_mm256_mask_cmp_pd_mask_neq_uq(__mmask8 m,__m256d a,__m256d b)1809 __mmask8 test_mm256_mask_cmp_pd_mask_neq_uq(__mmask8 m, __m256d a, __m256d b) {
1810 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_uq
1811 // CHECK: [[CMP:%.*]] = fcmp une <4 x double> %{{.*}}, %{{.*}}
1812 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1813 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_UQ);
1814 }
1815
test_mm256_mask_cmp_pd_mask_nlt_us(__mmask8 m,__m256d a,__m256d b)1816 __mmask8 test_mm256_mask_cmp_pd_mask_nlt_us(__mmask8 m, __m256d a, __m256d b) {
1817 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nlt_us
1818 // CHECK: [[CMP:%.*]] = fcmp uge <4 x double> %{{.*}}, %{{.*}}
1819 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1820 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NLT_US);
1821 }
1822
test_mm256_mask_cmp_pd_mask_nle_us(__mmask8 m,__m256d a,__m256d b)1823 __mmask8 test_mm256_mask_cmp_pd_mask_nle_us(__mmask8 m, __m256d a, __m256d b) {
1824 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nle_us
1825 // CHECK: [[CMP:%.*]] = fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1826 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1827 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NLE_US);
1828 }
1829
test_mm256_mask_cmp_pd_mask_ord_q(__mmask8 m,__m256d a,__m256d b)1830 __mmask8 test_mm256_mask_cmp_pd_mask_ord_q(__mmask8 m, __m256d a, __m256d b) {
1831 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ord_q
1832 // CHECK: [[CMP:%.*]] = fcmp ord <4 x double> %{{.*}}, %{{.*}}
1833 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1834 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_ORD_Q);
1835 }
1836
test_mm256_mask_cmp_pd_mask_eq_uq(__mmask8 m,__m256d a,__m256d b)1837 __mmask8 test_mm256_mask_cmp_pd_mask_eq_uq(__mmask8 m, __m256d a, __m256d b) {
1838 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_eq_uq
1839 // CHECK: [[CMP:%.*]] = fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1840 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1841 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_EQ_UQ);
1842 }
1843
test_mm256_mask_cmp_pd_mask_nge_us(__mmask8 m,__m256d a,__m256d b)1844 __mmask8 test_mm256_mask_cmp_pd_mask_nge_us(__mmask8 m, __m256d a, __m256d b) {
1845 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nge_us
1846 // CHECK: [[CMP:%.*]] = fcmp ult <4 x double> %{{.*}}, %{{.*}}
1847 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1848 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NGE_US);
1849 }
1850
test_mm256_mask_cmp_pd_mask_ngt_us(__mmask8 m,__m256d a,__m256d b)1851 __mmask8 test_mm256_mask_cmp_pd_mask_ngt_us(__mmask8 m, __m256d a, __m256d b) {
1852 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ngt_us
1853 // CHECK: [[CMP:%.*]] = fcmp ule <4 x double> %{{.*}}, %{{.*}}
1854 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1855 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NGT_US);
1856 }
1857
test_mm256_mask_cmp_pd_mask_false_oq(__mmask8 m,__m256d a,__m256d b)1858 __mmask8 test_mm256_mask_cmp_pd_mask_false_oq(__mmask8 m, __m256d a, __m256d b) {
1859 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_false_oq
1860 // CHECK: [[CMP:%.*]] = fcmp false <4 x double> %{{.*}}, %{{.*}}
1861 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1862 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_FALSE_OQ);
1863 }
1864
test_mm256_mask_cmp_pd_mask_neq_oq(__mmask8 m,__m256d a,__m256d b)1865 __mmask8 test_mm256_mask_cmp_pd_mask_neq_oq(__mmask8 m, __m256d a, __m256d b) {
1866 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_oq
1867 // CHECK: [[CMP:%.*]] = fcmp one <4 x double> %{{.*}}, %{{.*}}
1868 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1869 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_OQ);
1870 }
1871
test_mm256_mask_cmp_pd_mask_ge_os(__mmask8 m,__m256d a,__m256d b)1872 __mmask8 test_mm256_mask_cmp_pd_mask_ge_os(__mmask8 m, __m256d a, __m256d b) {
1873 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ge_os
1874 // CHECK: [[CMP:%.*]] = fcmp oge <4 x double> %{{.*}}, %{{.*}}
1875 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1876 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_GE_OS);
1877 }
1878
test_mm256_mask_cmp_pd_mask_gt_os(__mmask8 m,__m256d a,__m256d b)1879 __mmask8 test_mm256_mask_cmp_pd_mask_gt_os(__mmask8 m, __m256d a, __m256d b) {
1880 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_gt_os
1881 // CHECK: [[CMP:%.*]] = fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1882 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1883 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_GT_OS);
1884 }
1885
test_mm256_mask_cmp_pd_mask_true_uq(__mmask8 m,__m256d a,__m256d b)1886 __mmask8 test_mm256_mask_cmp_pd_mask_true_uq(__mmask8 m, __m256d a, __m256d b) {
1887 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_true_uq
1888 // CHECK: [[CMP:%.*]] = fcmp true <4 x double> %{{.*}}, %{{.*}}
1889 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1890 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_TRUE_UQ);
1891 }
1892
test_mm256_mask_cmp_pd_mask_eq_os(__mmask8 m,__m256d a,__m256d b)1893 __mmask8 test_mm256_mask_cmp_pd_mask_eq_os(__mmask8 m, __m256d a, __m256d b) {
1894 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_eq_os
1895 // CHECK: [[CMP:%.*]] = fcmp oeq <4 x double> %{{.*}}, %{{.*}}
1896 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1897 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_EQ_OS);
1898 }
1899
test_mm256_mask_cmp_pd_mask_lt_oq(__mmask8 m,__m256d a,__m256d b)1900 __mmask8 test_mm256_mask_cmp_pd_mask_lt_oq(__mmask8 m, __m256d a, __m256d b) {
1901 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_lt_oq
1902 // CHECK: [[CMP:%.*]] = fcmp olt <4 x double> %{{.*}}, %{{.*}}
1903 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1904 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_LT_OQ);
1905 }
1906
test_mm256_mask_cmp_pd_mask_le_oq(__mmask8 m,__m256d a,__m256d b)1907 __mmask8 test_mm256_mask_cmp_pd_mask_le_oq(__mmask8 m, __m256d a, __m256d b) {
1908 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_le_oq
1909 // CHECK: [[CMP:%.*]] = fcmp ole <4 x double> %{{.*}}, %{{.*}}
1910 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1911 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_LE_OQ);
1912 }
1913
test_mm256_mask_cmp_pd_mask_unord_s(__mmask8 m,__m256d a,__m256d b)1914 __mmask8 test_mm256_mask_cmp_pd_mask_unord_s(__mmask8 m, __m256d a, __m256d b) {
1915 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_unord_s
1916 // CHECK: [[CMP:%.*]] = fcmp uno <4 x double> %{{.*}}, %{{.*}}
1917 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1918 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_UNORD_S);
1919 }
1920
test_mm256_mask_cmp_pd_mask_neq_us(__mmask8 m,__m256d a,__m256d b)1921 __mmask8 test_mm256_mask_cmp_pd_mask_neq_us(__mmask8 m, __m256d a, __m256d b) {
1922 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_us
1923 // CHECK: [[CMP:%.*]] = fcmp une <4 x double> %{{.*}}, %{{.*}}
1924 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1925 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_US);
1926 }
1927
test_mm256_mask_cmp_pd_mask_nlt_uq(__mmask8 m,__m256d a,__m256d b)1928 __mmask8 test_mm256_mask_cmp_pd_mask_nlt_uq(__mmask8 m, __m256d a, __m256d b) {
1929 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nlt_uq
1930 // CHECK: [[CMP:%.*]] = fcmp uge <4 x double> %{{.*}}, %{{.*}}
1931 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1932 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NLT_UQ);
1933 }
1934
test_mm256_mask_cmp_pd_mask_nle_uq(__mmask8 m,__m256d a,__m256d b)1935 __mmask8 test_mm256_mask_cmp_pd_mask_nle_uq(__mmask8 m, __m256d a, __m256d b) {
1936 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nle_uq
1937 // CHECK: [[CMP:%.*]] = fcmp ugt <4 x double> %{{.*}}, %{{.*}}
1938 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1939 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NLE_UQ);
1940 }
1941
test_mm256_mask_cmp_pd_mask_ord_s(__mmask8 m,__m256d a,__m256d b)1942 __mmask8 test_mm256_mask_cmp_pd_mask_ord_s(__mmask8 m, __m256d a, __m256d b) {
1943 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ord_s
1944 // CHECK: [[CMP:%.*]] = fcmp ord <4 x double> %{{.*}}, %{{.*}}
1945 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1946 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_ORD_S);
1947 }
1948
test_mm256_mask_cmp_pd_mask_eq_us(__mmask8 m,__m256d a,__m256d b)1949 __mmask8 test_mm256_mask_cmp_pd_mask_eq_us(__mmask8 m, __m256d a, __m256d b) {
1950 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_eq_us
1951 // CHECK: [[CMP:%.*]] = fcmp ueq <4 x double> %{{.*}}, %{{.*}}
1952 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1953 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_EQ_US);
1954 }
1955
test_mm256_mask_cmp_pd_mask_nge_uq(__mmask8 m,__m256d a,__m256d b)1956 __mmask8 test_mm256_mask_cmp_pd_mask_nge_uq(__mmask8 m, __m256d a, __m256d b) {
1957 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_nge_uq
1958 // CHECK: [[CMP:%.*]] = fcmp ult <4 x double> %{{.*}}, %{{.*}}
1959 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1960 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NGE_UQ);
1961 }
1962
test_mm256_mask_cmp_pd_mask_ngt_uq(__mmask8 m,__m256d a,__m256d b)1963 __mmask8 test_mm256_mask_cmp_pd_mask_ngt_uq(__mmask8 m, __m256d a, __m256d b) {
1964 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ngt_uq
1965 // CHECK: [[CMP:%.*]] = fcmp ule <4 x double> %{{.*}}, %{{.*}}
1966 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1967 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NGT_UQ);
1968 }
1969
test_mm256_mask_cmp_pd_mask_false_os(__mmask8 m,__m256d a,__m256d b)1970 __mmask8 test_mm256_mask_cmp_pd_mask_false_os(__mmask8 m, __m256d a, __m256d b) {
1971 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_false_os
1972 // CHECK: [[CMP:%.*]] = fcmp false <4 x double> %{{.*}}, %{{.*}}
1973 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1974 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_FALSE_OS);
1975 }
1976
test_mm256_mask_cmp_pd_mask_neq_os(__mmask8 m,__m256d a,__m256d b)1977 __mmask8 test_mm256_mask_cmp_pd_mask_neq_os(__mmask8 m, __m256d a, __m256d b) {
1978 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_neq_os
1979 // CHECK: [[CMP:%.*]] = fcmp one <4 x double> %{{.*}}, %{{.*}}
1980 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1981 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_OS);
1982 }
1983
test_mm256_mask_cmp_pd_mask_ge_oq(__mmask8 m,__m256d a,__m256d b)1984 __mmask8 test_mm256_mask_cmp_pd_mask_ge_oq(__mmask8 m, __m256d a, __m256d b) {
1985 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_ge_oq
1986 // CHECK: [[CMP:%.*]] = fcmp oge <4 x double> %{{.*}}, %{{.*}}
1987 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1988 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_GE_OQ);
1989 }
1990
test_mm256_mask_cmp_pd_mask_gt_oq(__mmask8 m,__m256d a,__m256d b)1991 __mmask8 test_mm256_mask_cmp_pd_mask_gt_oq(__mmask8 m, __m256d a, __m256d b) {
1992 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_gt_oq
1993 // CHECK: [[CMP:%.*]] = fcmp ogt <4 x double> %{{.*}}, %{{.*}}
1994 // CHECK: and <4 x i1> [[CMP]], {{.*}}
1995 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_GT_OQ);
1996 }
1997
test_mm256_mask_cmp_pd_mask_true_us(__mmask8 m,__m256d a,__m256d b)1998 __mmask8 test_mm256_mask_cmp_pd_mask_true_us(__mmask8 m, __m256d a, __m256d b) {
1999 // CHECK-LABEL: test_mm256_mask_cmp_pd_mask_true_us
2000 // CHECK: [[CMP:%.*]] = fcmp true <4 x double> %{{.*}}, %{{.*}}
2001 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2002 return _mm256_mask_cmp_pd_mask(m, a, b, _CMP_TRUE_US);
2003 }
2004
test_mm_cmp_ps_mask_eq_oq(__m128 a,__m128 b)2005 __mmask8 test_mm_cmp_ps_mask_eq_oq(__m128 a, __m128 b) {
2006 // CHECK-LABEL: @test_mm_cmp_ps_mask_eq_oq
2007 // CHECK: fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2008 return _mm_cmp_ps_mask(a, b, _CMP_EQ_OQ);
2009 }
2010
test_mm_cmp_ps_mask_lt_os(__m128 a,__m128 b)2011 __mmask8 test_mm_cmp_ps_mask_lt_os(__m128 a, __m128 b) {
2012 // CHECK-LABEL: test_mm_cmp_ps_mask_lt_os
2013 // CHECK: fcmp olt <4 x float> %{{.*}}, %{{.*}}
2014 return _mm_cmp_ps_mask(a, b, _CMP_LT_OS);
2015 }
2016
test_mm_cmp_ps_mask_le_os(__m128 a,__m128 b)2017 __mmask8 test_mm_cmp_ps_mask_le_os(__m128 a, __m128 b) {
2018 // CHECK-LABEL: test_mm_cmp_ps_mask_le_os
2019 // CHECK: fcmp ole <4 x float> %{{.*}}, %{{.*}}
2020 return _mm_cmp_ps_mask(a, b, _CMP_LE_OS);
2021 }
2022
test_mm_cmp_ps_mask_unord_q(__m128 a,__m128 b)2023 __mmask8 test_mm_cmp_ps_mask_unord_q(__m128 a, __m128 b) {
2024 // CHECK-LABEL: test_mm_cmp_ps_mask_unord_q
2025 // CHECK: fcmp uno <4 x float> %{{.*}}, %{{.*}}
2026 return _mm_cmp_ps_mask(a, b, _CMP_UNORD_Q);
2027 }
2028
test_mm_cmp_ps_mask_neq_uq(__m128 a,__m128 b)2029 __mmask8 test_mm_cmp_ps_mask_neq_uq(__m128 a, __m128 b) {
2030 // CHECK-LABEL: test_mm_cmp_ps_mask_neq_uq
2031 // CHECK: fcmp une <4 x float> %{{.*}}, %{{.*}}
2032 return _mm_cmp_ps_mask(a, b, _CMP_NEQ_UQ);
2033 }
2034
test_mm_cmp_ps_mask_nlt_us(__m128 a,__m128 b)2035 __mmask8 test_mm_cmp_ps_mask_nlt_us(__m128 a, __m128 b) {
2036 // CHECK-LABEL: test_mm_cmp_ps_mask_nlt_us
2037 // CHECK: fcmp uge <4 x float> %{{.*}}, %{{.*}}
2038 return _mm_cmp_ps_mask(a, b, _CMP_NLT_US);
2039 }
2040
test_mm_cmp_ps_mask_nle_us(__m128 a,__m128 b)2041 __mmask8 test_mm_cmp_ps_mask_nle_us(__m128 a, __m128 b) {
2042 // CHECK-LABEL: test_mm_cmp_ps_mask_nle_us
2043 // CHECK: fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2044 return _mm_cmp_ps_mask(a, b, _CMP_NLE_US);
2045 }
2046
test_mm_cmp_ps_mask_ord_q(__m128 a,__m128 b)2047 __mmask8 test_mm_cmp_ps_mask_ord_q(__m128 a, __m128 b) {
2048 // CHECK-LABEL: test_mm_cmp_ps_mask_ord_q
2049 // CHECK: fcmp ord <4 x float> %{{.*}}, %{{.*}}
2050 return _mm_cmp_ps_mask(a, b, _CMP_ORD_Q);
2051 }
2052
test_mm_cmp_ps_mask_eq_uq(__m128 a,__m128 b)2053 __mmask8 test_mm_cmp_ps_mask_eq_uq(__m128 a, __m128 b) {
2054 // CHECK-LABEL: test_mm_cmp_ps_mask_eq_uq
2055 // CHECK: fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2056 return _mm_cmp_ps_mask(a, b, _CMP_EQ_UQ);
2057 }
2058
test_mm_cmp_ps_mask_nge_us(__m128 a,__m128 b)2059 __mmask8 test_mm_cmp_ps_mask_nge_us(__m128 a, __m128 b) {
2060 // CHECK-LABEL: test_mm_cmp_ps_mask_nge_us
2061 // CHECK: fcmp ult <4 x float> %{{.*}}, %{{.*}}
2062 return _mm_cmp_ps_mask(a, b, _CMP_NGE_US);
2063 }
2064
test_mm_cmp_ps_mask_ngt_us(__m128 a,__m128 b)2065 __mmask8 test_mm_cmp_ps_mask_ngt_us(__m128 a, __m128 b) {
2066 // CHECK-LABEL: test_mm_cmp_ps_mask_ngt_us
2067 // CHECK: fcmp ule <4 x float> %{{.*}}, %{{.*}}
2068 return _mm_cmp_ps_mask(a, b, _CMP_NGT_US);
2069 }
2070
test_mm_cmp_ps_mask_false_oq(__m128 a,__m128 b)2071 __mmask8 test_mm_cmp_ps_mask_false_oq(__m128 a, __m128 b) {
2072 // CHECK-LABEL: test_mm_cmp_ps_mask_false_oq
2073 // CHECK: fcmp false <4 x float> %{{.*}}, %{{.*}}
2074 return _mm_cmp_ps_mask(a, b, _CMP_FALSE_OQ);
2075 }
2076
test_mm_cmp_ps_mask_neq_oq(__m128 a,__m128 b)2077 __mmask8 test_mm_cmp_ps_mask_neq_oq(__m128 a, __m128 b) {
2078 // CHECK-LABEL: test_mm_cmp_ps_mask_neq_oq
2079 // CHECK: fcmp one <4 x float> %{{.*}}, %{{.*}}
2080 return _mm_cmp_ps_mask(a, b, _CMP_NEQ_OQ);
2081 }
2082
test_mm_cmp_ps_mask_ge_os(__m128 a,__m128 b)2083 __mmask8 test_mm_cmp_ps_mask_ge_os(__m128 a, __m128 b) {
2084 // CHECK-LABEL: test_mm_cmp_ps_mask_ge_os
2085 // CHECK: fcmp oge <4 x float> %{{.*}}, %{{.*}}
2086 return _mm_cmp_ps_mask(a, b, _CMP_GE_OS);
2087 }
2088
test_mm_cmp_ps_mask_gt_os(__m128 a,__m128 b)2089 __mmask8 test_mm_cmp_ps_mask_gt_os(__m128 a, __m128 b) {
2090 // CHECK-LABEL: test_mm_cmp_ps_mask_gt_os
2091 // CHECK: fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2092 return _mm_cmp_ps_mask(a, b, _CMP_GT_OS);
2093 }
2094
test_mm_cmp_ps_mask_true_uq(__m128 a,__m128 b)2095 __mmask8 test_mm_cmp_ps_mask_true_uq(__m128 a, __m128 b) {
2096 // CHECK-LABEL: test_mm_cmp_ps_mask_true_uq
2097 // CHECK: fcmp true <4 x float> %{{.*}}, %{{.*}}
2098 return _mm_cmp_ps_mask(a, b, _CMP_TRUE_UQ);
2099 }
2100
test_mm_cmp_ps_mask_eq_os(__m128 a,__m128 b)2101 __mmask8 test_mm_cmp_ps_mask_eq_os(__m128 a, __m128 b) {
2102 // CHECK-LABEL: test_mm_cmp_ps_mask_eq_os
2103 // CHECK: fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2104 return _mm_cmp_ps_mask(a, b, _CMP_EQ_OS);
2105 }
2106
test_mm_cmp_ps_mask_lt_oq(__m128 a,__m128 b)2107 __mmask8 test_mm_cmp_ps_mask_lt_oq(__m128 a, __m128 b) {
2108 // CHECK-LABEL: test_mm_cmp_ps_mask_lt_oq
2109 // CHECK: fcmp olt <4 x float> %{{.*}}, %{{.*}}
2110 return _mm_cmp_ps_mask(a, b, _CMP_LT_OQ);
2111 }
2112
test_mm_cmp_ps_mask_le_oq(__m128 a,__m128 b)2113 __mmask8 test_mm_cmp_ps_mask_le_oq(__m128 a, __m128 b) {
2114 // CHECK-LABEL: test_mm_cmp_ps_mask_le_oq
2115 // CHECK: fcmp ole <4 x float> %{{.*}}, %{{.*}}
2116 return _mm_cmp_ps_mask(a, b, _CMP_LE_OQ);
2117 }
2118
test_mm_cmp_ps_mask_unord_s(__m128 a,__m128 b)2119 __mmask8 test_mm_cmp_ps_mask_unord_s(__m128 a, __m128 b) {
2120 // CHECK-LABEL: test_mm_cmp_ps_mask_unord_s
2121 // CHECK: fcmp uno <4 x float> %{{.*}}, %{{.*}}
2122 return _mm_cmp_ps_mask(a, b, _CMP_UNORD_S);
2123 }
2124
test_mm_cmp_ps_mask_neq_us(__m128 a,__m128 b)2125 __mmask8 test_mm_cmp_ps_mask_neq_us(__m128 a, __m128 b) {
2126 // CHECK-LABEL: test_mm_cmp_ps_mask_neq_us
2127 // CHECK: fcmp une <4 x float> %{{.*}}, %{{.*}}
2128 return _mm_cmp_ps_mask(a, b, _CMP_NEQ_US);
2129 }
2130
test_mm_cmp_ps_mask_nlt_uq(__m128 a,__m128 b)2131 __mmask8 test_mm_cmp_ps_mask_nlt_uq(__m128 a, __m128 b) {
2132 // CHECK-LABEL: test_mm_cmp_ps_mask_nlt_uq
2133 // CHECK: fcmp uge <4 x float> %{{.*}}, %{{.*}}
2134 return _mm_cmp_ps_mask(a, b, _CMP_NLT_UQ);
2135 }
2136
test_mm_cmp_ps_mask_nle_uq(__m128 a,__m128 b)2137 __mmask8 test_mm_cmp_ps_mask_nle_uq(__m128 a, __m128 b) {
2138 // CHECK-LABEL: test_mm_cmp_ps_mask_nle_uq
2139 // CHECK: fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2140 return _mm_cmp_ps_mask(a, b, _CMP_NLE_UQ);
2141 }
2142
test_mm_cmp_ps_mask_ord_s(__m128 a,__m128 b)2143 __mmask8 test_mm_cmp_ps_mask_ord_s(__m128 a, __m128 b) {
2144 // CHECK-LABEL: test_mm_cmp_ps_mask_ord_s
2145 // CHECK: fcmp ord <4 x float> %{{.*}}, %{{.*}}
2146 return _mm_cmp_ps_mask(a, b, _CMP_ORD_S);
2147 }
2148
test_mm_cmp_ps_mask_eq_us(__m128 a,__m128 b)2149 __mmask8 test_mm_cmp_ps_mask_eq_us(__m128 a, __m128 b) {
2150 // CHECK-LABEL: test_mm_cmp_ps_mask_eq_us
2151 // CHECK: fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2152 return _mm_cmp_ps_mask(a, b, _CMP_EQ_US);
2153 }
2154
test_mm_cmp_ps_mask_nge_uq(__m128 a,__m128 b)2155 __mmask8 test_mm_cmp_ps_mask_nge_uq(__m128 a, __m128 b) {
2156 // CHECK-LABEL: test_mm_cmp_ps_mask_nge_uq
2157 // CHECK: fcmp ult <4 x float> %{{.*}}, %{{.*}}
2158 return _mm_cmp_ps_mask(a, b, _CMP_NGE_UQ);
2159 }
2160
test_mm_cmp_ps_mask_ngt_uq(__m128 a,__m128 b)2161 __mmask8 test_mm_cmp_ps_mask_ngt_uq(__m128 a, __m128 b) {
2162 // CHECK-LABEL: test_mm_cmp_ps_mask_ngt_uq
2163 // CHECK: fcmp ule <4 x float> %{{.*}}, %{{.*}}
2164 return _mm_cmp_ps_mask(a, b, _CMP_NGT_UQ);
2165 }
2166
test_mm_cmp_ps_mask_false_os(__m128 a,__m128 b)2167 __mmask8 test_mm_cmp_ps_mask_false_os(__m128 a, __m128 b) {
2168 // CHECK-LABEL: test_mm_cmp_ps_mask_false_os
2169 // CHECK: fcmp false <4 x float> %{{.*}}, %{{.*}}
2170 return _mm_cmp_ps_mask(a, b, _CMP_FALSE_OS);
2171 }
2172
test_mm_cmp_ps_mask_neq_os(__m128 a,__m128 b)2173 __mmask8 test_mm_cmp_ps_mask_neq_os(__m128 a, __m128 b) {
2174 // CHECK-LABEL: test_mm_cmp_ps_mask_neq_os
2175 // CHECK: fcmp one <4 x float> %{{.*}}, %{{.*}}
2176 return _mm_cmp_ps_mask(a, b, _CMP_NEQ_OS);
2177 }
2178
test_mm_cmp_ps_mask_ge_oq(__m128 a,__m128 b)2179 __mmask8 test_mm_cmp_ps_mask_ge_oq(__m128 a, __m128 b) {
2180 // CHECK-LABEL: test_mm_cmp_ps_mask_ge_oq
2181 // CHECK: fcmp oge <4 x float> %{{.*}}, %{{.*}}
2182 return _mm_cmp_ps_mask(a, b, _CMP_GE_OQ);
2183 }
2184
test_mm_cmp_ps_mask_gt_oq(__m128 a,__m128 b)2185 __mmask8 test_mm_cmp_ps_mask_gt_oq(__m128 a, __m128 b) {
2186 // CHECK-LABEL: test_mm_cmp_ps_mask_gt_oq
2187 // CHECK: fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2188 return _mm_cmp_ps_mask(a, b, _CMP_GT_OQ);
2189 }
2190
test_mm_cmp_ps_mask_true_us(__m128 a,__m128 b)2191 __mmask8 test_mm_cmp_ps_mask_true_us(__m128 a, __m128 b) {
2192 // CHECK-LABEL: test_mm_cmp_ps_mask_true_us
2193 // CHECK: fcmp true <4 x float> %{{.*}}, %{{.*}}
2194 return _mm_cmp_ps_mask(a, b, _CMP_TRUE_US);
2195 }
2196
test_mm_mask_cmp_ps_mask_eq_oq(__mmask8 m,__m128 a,__m128 b)2197 __mmask8 test_mm_mask_cmp_ps_mask_eq_oq(__mmask8 m, __m128 a, __m128 b) {
2198 // CHECK-LABEL: @test_mm_mask_cmp_ps_mask_eq_oq
2199 // CHECK: [[CMP:%.*]] = fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2200 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2201 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_EQ_OQ);
2202 }
2203
test_mm_mask_cmp_ps_mask_lt_os(__mmask8 m,__m128 a,__m128 b)2204 __mmask8 test_mm_mask_cmp_ps_mask_lt_os(__mmask8 m, __m128 a, __m128 b) {
2205 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_lt_os
2206 // CHECK: [[CMP:%.*]] = fcmp olt <4 x float> %{{.*}}, %{{.*}}
2207 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2208 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_LT_OS);
2209 }
2210
test_mm_mask_cmp_ps_mask_le_os(__mmask8 m,__m128 a,__m128 b)2211 __mmask8 test_mm_mask_cmp_ps_mask_le_os(__mmask8 m, __m128 a, __m128 b) {
2212 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_le_os
2213 // CHECK: [[CMP:%.*]] = fcmp ole <4 x float> %{{.*}}, %{{.*}}
2214 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2215 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_LE_OS);
2216 }
2217
test_mm_mask_cmp_ps_mask_unord_q(__mmask8 m,__m128 a,__m128 b)2218 __mmask8 test_mm_mask_cmp_ps_mask_unord_q(__mmask8 m, __m128 a, __m128 b) {
2219 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_unord_q
2220 // CHECK: [[CMP:%.*]] = fcmp uno <4 x float> %{{.*}}, %{{.*}}
2221 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2222 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_UNORD_Q);
2223 }
2224
test_mm_mask_cmp_ps_mask_neq_uq(__mmask8 m,__m128 a,__m128 b)2225 __mmask8 test_mm_mask_cmp_ps_mask_neq_uq(__mmask8 m, __m128 a, __m128 b) {
2226 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_uq
2227 // CHECK: [[CMP:%.*]] = fcmp une <4 x float> %{{.*}}, %{{.*}}
2228 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2229 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_UQ);
2230 }
2231
test_mm_mask_cmp_ps_mask_nlt_us(__mmask8 m,__m128 a,__m128 b)2232 __mmask8 test_mm_mask_cmp_ps_mask_nlt_us(__mmask8 m, __m128 a, __m128 b) {
2233 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nlt_us
2234 // CHECK: [[CMP:%.*]] = fcmp uge <4 x float> %{{.*}}, %{{.*}}
2235 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2236 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NLT_US);
2237 }
2238
test_mm_mask_cmp_ps_mask_nle_us(__mmask8 m,__m128 a,__m128 b)2239 __mmask8 test_mm_mask_cmp_ps_mask_nle_us(__mmask8 m, __m128 a, __m128 b) {
2240 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nle_us
2241 // CHECK: [[CMP:%.*]] = fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2242 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2243 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NLE_US);
2244 }
2245
test_mm_mask_cmp_ps_mask_ord_q(__mmask8 m,__m128 a,__m128 b)2246 __mmask8 test_mm_mask_cmp_ps_mask_ord_q(__mmask8 m, __m128 a, __m128 b) {
2247 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ord_q
2248 // CHECK: [[CMP:%.*]] = fcmp ord <4 x float> %{{.*}}, %{{.*}}
2249 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2250 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_ORD_Q);
2251 }
2252
test_mm_mask_cmp_ps_mask_eq_uq(__mmask8 m,__m128 a,__m128 b)2253 __mmask8 test_mm_mask_cmp_ps_mask_eq_uq(__mmask8 m, __m128 a, __m128 b) {
2254 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_eq_uq
2255 // CHECK: [[CMP:%.*]] = fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2256 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2257 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_EQ_UQ);
2258 }
2259
test_mm_mask_cmp_ps_mask_nge_us(__mmask8 m,__m128 a,__m128 b)2260 __mmask8 test_mm_mask_cmp_ps_mask_nge_us(__mmask8 m, __m128 a, __m128 b) {
2261 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nge_us
2262 // CHECK: [[CMP:%.*]] = fcmp ult <4 x float> %{{.*}}, %{{.*}}
2263 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2264 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NGE_US);
2265 }
2266
test_mm_mask_cmp_ps_mask_ngt_us(__mmask8 m,__m128 a,__m128 b)2267 __mmask8 test_mm_mask_cmp_ps_mask_ngt_us(__mmask8 m, __m128 a, __m128 b) {
2268 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ngt_us
2269 // CHECK: [[CMP:%.*]] = fcmp ule <4 x float> %{{.*}}, %{{.*}}
2270 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2271 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NGT_US);
2272 }
2273
test_mm_mask_cmp_ps_mask_false_oq(__mmask8 m,__m128 a,__m128 b)2274 __mmask8 test_mm_mask_cmp_ps_mask_false_oq(__mmask8 m, __m128 a, __m128 b) {
2275 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_false_oq
2276 // CHECK: [[CMP:%.*]] = fcmp false <4 x float> %{{.*}}, %{{.*}}
2277 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2278 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_FALSE_OQ);
2279 }
2280
test_mm_mask_cmp_ps_mask_neq_oq(__mmask8 m,__m128 a,__m128 b)2281 __mmask8 test_mm_mask_cmp_ps_mask_neq_oq(__mmask8 m, __m128 a, __m128 b) {
2282 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_oq
2283 // CHECK: [[CMP:%.*]] = fcmp one <4 x float> %{{.*}}, %{{.*}}
2284 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2285 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_OQ);
2286 }
2287
test_mm_mask_cmp_ps_mask_ge_os(__mmask8 m,__m128 a,__m128 b)2288 __mmask8 test_mm_mask_cmp_ps_mask_ge_os(__mmask8 m, __m128 a, __m128 b) {
2289 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ge_os
2290 // CHECK: [[CMP:%.*]] = fcmp oge <4 x float> %{{.*}}, %{{.*}}
2291 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2292 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_GE_OS);
2293 }
2294
test_mm_mask_cmp_ps_mask_gt_os(__mmask8 m,__m128 a,__m128 b)2295 __mmask8 test_mm_mask_cmp_ps_mask_gt_os(__mmask8 m, __m128 a, __m128 b) {
2296 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_gt_os
2297 // CHECK: [[CMP:%.*]] = fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2298 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2299 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_GT_OS);
2300 }
2301
test_mm_mask_cmp_ps_mask_true_uq(__mmask8 m,__m128 a,__m128 b)2302 __mmask8 test_mm_mask_cmp_ps_mask_true_uq(__mmask8 m, __m128 a, __m128 b) {
2303 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_true_uq
2304 // CHECK: [[CMP:%.*]] = fcmp true <4 x float> %{{.*}}, %{{.*}}
2305 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2306 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_TRUE_UQ);
2307 }
2308
test_mm_mask_cmp_ps_mask_eq_os(__mmask8 m,__m128 a,__m128 b)2309 __mmask8 test_mm_mask_cmp_ps_mask_eq_os(__mmask8 m, __m128 a, __m128 b) {
2310 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_eq_os
2311 // CHECK: [[CMP:%.*]] = fcmp oeq <4 x float> %{{.*}}, %{{.*}}
2312 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2313 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_EQ_OS);
2314 }
2315
test_mm_mask_cmp_ps_mask_lt_oq(__mmask8 m,__m128 a,__m128 b)2316 __mmask8 test_mm_mask_cmp_ps_mask_lt_oq(__mmask8 m, __m128 a, __m128 b) {
2317 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_lt_oq
2318 // CHECK: [[CMP:%.*]] = fcmp olt <4 x float> %{{.*}}, %{{.*}}
2319 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2320 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_LT_OQ);
2321 }
2322
test_mm_mask_cmp_ps_mask_le_oq(__mmask8 m,__m128 a,__m128 b)2323 __mmask8 test_mm_mask_cmp_ps_mask_le_oq(__mmask8 m, __m128 a, __m128 b) {
2324 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_le_oq
2325 // CHECK: [[CMP:%.*]] = fcmp ole <4 x float> %{{.*}}, %{{.*}}
2326 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2327 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_LE_OQ);
2328 }
2329
test_mm_mask_cmp_ps_mask_unord_s(__mmask8 m,__m128 a,__m128 b)2330 __mmask8 test_mm_mask_cmp_ps_mask_unord_s(__mmask8 m, __m128 a, __m128 b) {
2331 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_unord_s
2332 // CHECK: [[CMP:%.*]] = fcmp uno <4 x float> %{{.*}}, %{{.*}}
2333 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2334 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_UNORD_S);
2335 }
2336
test_mm_mask_cmp_ps_mask_neq_us(__mmask8 m,__m128 a,__m128 b)2337 __mmask8 test_mm_mask_cmp_ps_mask_neq_us(__mmask8 m, __m128 a, __m128 b) {
2338 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_us
2339 // CHECK: [[CMP:%.*]] = fcmp une <4 x float> %{{.*}}, %{{.*}}
2340 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2341 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_US);
2342 }
2343
test_mm_mask_cmp_ps_mask_nlt_uq(__mmask8 m,__m128 a,__m128 b)2344 __mmask8 test_mm_mask_cmp_ps_mask_nlt_uq(__mmask8 m, __m128 a, __m128 b) {
2345 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nlt_uq
2346 // CHECK: [[CMP:%.*]] = fcmp uge <4 x float> %{{.*}}, %{{.*}}
2347 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2348 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NLT_UQ);
2349 }
2350
test_mm_mask_cmp_ps_mask_nle_uq(__mmask8 m,__m128 a,__m128 b)2351 __mmask8 test_mm_mask_cmp_ps_mask_nle_uq(__mmask8 m, __m128 a, __m128 b) {
2352 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nle_uq
2353 // CHECK: [[CMP:%.*]] = fcmp ugt <4 x float> %{{.*}}, %{{.*}}
2354 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2355 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NLE_UQ);
2356 }
2357
test_mm_mask_cmp_ps_mask_ord_s(__mmask8 m,__m128 a,__m128 b)2358 __mmask8 test_mm_mask_cmp_ps_mask_ord_s(__mmask8 m, __m128 a, __m128 b) {
2359 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ord_s
2360 // CHECK: [[CMP:%.*]] = fcmp ord <4 x float> %{{.*}}, %{{.*}}
2361 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2362 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_ORD_S);
2363 }
2364
test_mm_mask_cmp_ps_mask_eq_us(__mmask8 m,__m128 a,__m128 b)2365 __mmask8 test_mm_mask_cmp_ps_mask_eq_us(__mmask8 m, __m128 a, __m128 b) {
2366 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_eq_us
2367 // CHECK: [[CMP:%.*]] = fcmp ueq <4 x float> %{{.*}}, %{{.*}}
2368 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2369 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_EQ_US);
2370 }
2371
test_mm_mask_cmp_ps_mask_nge_uq(__mmask8 m,__m128 a,__m128 b)2372 __mmask8 test_mm_mask_cmp_ps_mask_nge_uq(__mmask8 m, __m128 a, __m128 b) {
2373 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_nge_uq
2374 // CHECK: [[CMP:%.*]] = fcmp ult <4 x float> %{{.*}}, %{{.*}}
2375 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2376 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NGE_UQ);
2377 }
2378
test_mm_mask_cmp_ps_mask_ngt_uq(__mmask8 m,__m128 a,__m128 b)2379 __mmask8 test_mm_mask_cmp_ps_mask_ngt_uq(__mmask8 m, __m128 a, __m128 b) {
2380 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ngt_uq
2381 // CHECK: [[CMP:%.*]] = fcmp ule <4 x float> %{{.*}}, %{{.*}}
2382 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2383 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NGT_UQ);
2384 }
2385
test_mm_mask_cmp_ps_mask_false_os(__mmask8 m,__m128 a,__m128 b)2386 __mmask8 test_mm_mask_cmp_ps_mask_false_os(__mmask8 m, __m128 a, __m128 b) {
2387 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_false_os
2388 // CHECK: [[CMP:%.*]] = fcmp false <4 x float> %{{.*}}, %{{.*}}
2389 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2390 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_FALSE_OS);
2391 }
2392
test_mm_mask_cmp_ps_mask_neq_os(__mmask8 m,__m128 a,__m128 b)2393 __mmask8 test_mm_mask_cmp_ps_mask_neq_os(__mmask8 m, __m128 a, __m128 b) {
2394 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_neq_os
2395 // CHECK: [[CMP:%.*]] = fcmp one <4 x float> %{{.*}}, %{{.*}}
2396 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2397 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_NEQ_OS);
2398 }
2399
test_mm_mask_cmp_ps_mask_ge_oq(__mmask8 m,__m128 a,__m128 b)2400 __mmask8 test_mm_mask_cmp_ps_mask_ge_oq(__mmask8 m, __m128 a, __m128 b) {
2401 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_ge_oq
2402 // CHECK: [[CMP:%.*]] = fcmp oge <4 x float> %{{.*}}, %{{.*}}
2403 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2404 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_GE_OQ);
2405 }
2406
test_mm_mask_cmp_ps_mask_gt_oq(__mmask8 m,__m128 a,__m128 b)2407 __mmask8 test_mm_mask_cmp_ps_mask_gt_oq(__mmask8 m, __m128 a, __m128 b) {
2408 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_gt_oq
2409 // CHECK: [[CMP:%.*]] = fcmp ogt <4 x float> %{{.*}}, %{{.*}}
2410 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2411 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_GT_OQ);
2412 }
2413
test_mm_mask_cmp_ps_mask_true_us(__mmask8 m,__m128 a,__m128 b)2414 __mmask8 test_mm_mask_cmp_ps_mask_true_us(__mmask8 m, __m128 a, __m128 b) {
2415 // CHECK-LABEL: test_mm_mask_cmp_ps_mask_true_us
2416 // CHECK: [[CMP:%.*]] = fcmp true <4 x float> %{{.*}}, %{{.*}}
2417 // CHECK: and <4 x i1> [[CMP]], {{.*}}
2418 return _mm_mask_cmp_ps_mask(m, a, b, _CMP_TRUE_US);
2419 }
2420
test_mm_cmp_pd_mask_eq_oq(__m128d a,__m128d b)2421 __mmask8 test_mm_cmp_pd_mask_eq_oq(__m128d a, __m128d b) {
2422 // CHECK-LABEL: @test_mm_cmp_pd_mask_eq_oq
2423 // CHECK: fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2424 return _mm_cmp_pd_mask(a, b, _CMP_EQ_OQ);
2425 }
2426
test_mm_cmp_pd_mask_lt_os(__m128d a,__m128d b)2427 __mmask8 test_mm_cmp_pd_mask_lt_os(__m128d a, __m128d b) {
2428 // CHECK-LABEL: test_mm_cmp_pd_mask_lt_os
2429 // CHECK: fcmp olt <2 x double> %{{.*}}, %{{.*}}
2430 return _mm_cmp_pd_mask(a, b, _CMP_LT_OS);
2431 }
2432
test_mm_cmp_pd_mask_le_os(__m128d a,__m128d b)2433 __mmask8 test_mm_cmp_pd_mask_le_os(__m128d a, __m128d b) {
2434 // CHECK-LABEL: test_mm_cmp_pd_mask_le_os
2435 // CHECK: fcmp ole <2 x double> %{{.*}}, %{{.*}}
2436 return _mm_cmp_pd_mask(a, b, _CMP_LE_OS);
2437 }
2438
test_mm_cmp_pd_mask_unord_q(__m128d a,__m128d b)2439 __mmask8 test_mm_cmp_pd_mask_unord_q(__m128d a, __m128d b) {
2440 // CHECK-LABEL: test_mm_cmp_pd_mask_unord_q
2441 // CHECK: fcmp uno <2 x double> %{{.*}}, %{{.*}}
2442 return _mm_cmp_pd_mask(a, b, _CMP_UNORD_Q);
2443 }
2444
test_mm_cmp_pd_mask_neq_uq(__m128d a,__m128d b)2445 __mmask8 test_mm_cmp_pd_mask_neq_uq(__m128d a, __m128d b) {
2446 // CHECK-LABEL: test_mm_cmp_pd_mask_neq_uq
2447 // CHECK: fcmp une <2 x double> %{{.*}}, %{{.*}}
2448 return _mm_cmp_pd_mask(a, b, _CMP_NEQ_UQ);
2449 }
2450
test_mm_cmp_pd_mask_nlt_us(__m128d a,__m128d b)2451 __mmask8 test_mm_cmp_pd_mask_nlt_us(__m128d a, __m128d b) {
2452 // CHECK-LABEL: test_mm_cmp_pd_mask_nlt_us
2453 // CHECK: fcmp uge <2 x double> %{{.*}}, %{{.*}}
2454 return _mm_cmp_pd_mask(a, b, _CMP_NLT_US);
2455 }
2456
test_mm_cmp_pd_mask_nle_us(__m128d a,__m128d b)2457 __mmask8 test_mm_cmp_pd_mask_nle_us(__m128d a, __m128d b) {
2458 // CHECK-LABEL: test_mm_cmp_pd_mask_nle_us
2459 // CHECK: fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2460 return _mm_cmp_pd_mask(a, b, _CMP_NLE_US);
2461 }
2462
test_mm_cmp_pd_mask_ord_q(__m128d a,__m128d b)2463 __mmask8 test_mm_cmp_pd_mask_ord_q(__m128d a, __m128d b) {
2464 // CHECK-LABEL: test_mm_cmp_pd_mask_ord_q
2465 // CHECK: fcmp ord <2 x double> %{{.*}}, %{{.*}}
2466 return _mm_cmp_pd_mask(a, b, _CMP_ORD_Q);
2467 }
2468
test_mm_cmp_pd_mask_eq_uq(__m128d a,__m128d b)2469 __mmask8 test_mm_cmp_pd_mask_eq_uq(__m128d a, __m128d b) {
2470 // CHECK-LABEL: test_mm_cmp_pd_mask_eq_uq
2471 // CHECK: fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2472 return _mm_cmp_pd_mask(a, b, _CMP_EQ_UQ);
2473 }
2474
test_mm_cmp_pd_mask_nge_us(__m128d a,__m128d b)2475 __mmask8 test_mm_cmp_pd_mask_nge_us(__m128d a, __m128d b) {
2476 // CHECK-LABEL: test_mm_cmp_pd_mask_nge_us
2477 // CHECK: fcmp ult <2 x double> %{{.*}}, %{{.*}}
2478 return _mm_cmp_pd_mask(a, b, _CMP_NGE_US);
2479 }
2480
test_mm_cmp_pd_mask_ngt_us(__m128d a,__m128d b)2481 __mmask8 test_mm_cmp_pd_mask_ngt_us(__m128d a, __m128d b) {
2482 // CHECK-LABEL: test_mm_cmp_pd_mask_ngt_us
2483 // CHECK: fcmp ule <2 x double> %{{.*}}, %{{.*}}
2484 return _mm_cmp_pd_mask(a, b, _CMP_NGT_US);
2485 }
2486
test_mm_cmp_pd_mask_false_oq(__m128d a,__m128d b)2487 __mmask8 test_mm_cmp_pd_mask_false_oq(__m128d a, __m128d b) {
2488 // CHECK-LABEL: test_mm_cmp_pd_mask_false_oq
2489 // CHECK: fcmp false <2 x double> %{{.*}}, %{{.*}}
2490 return _mm_cmp_pd_mask(a, b, _CMP_FALSE_OQ);
2491 }
2492
test_mm_cmp_pd_mask_neq_oq(__m128d a,__m128d b)2493 __mmask8 test_mm_cmp_pd_mask_neq_oq(__m128d a, __m128d b) {
2494 // CHECK-LABEL: test_mm_cmp_pd_mask_neq_oq
2495 // CHECK: fcmp one <2 x double> %{{.*}}, %{{.*}}
2496 return _mm_cmp_pd_mask(a, b, _CMP_NEQ_OQ);
2497 }
2498
test_mm_cmp_pd_mask_ge_os(__m128d a,__m128d b)2499 __mmask8 test_mm_cmp_pd_mask_ge_os(__m128d a, __m128d b) {
2500 // CHECK-LABEL: test_mm_cmp_pd_mask_ge_os
2501 // CHECK: fcmp oge <2 x double> %{{.*}}, %{{.*}}
2502 return _mm_cmp_pd_mask(a, b, _CMP_GE_OS);
2503 }
2504
test_mm_cmp_pd_mask_gt_os(__m128d a,__m128d b)2505 __mmask8 test_mm_cmp_pd_mask_gt_os(__m128d a, __m128d b) {
2506 // CHECK-LABEL: test_mm_cmp_pd_mask_gt_os
2507 // CHECK: fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2508 return _mm_cmp_pd_mask(a, b, _CMP_GT_OS);
2509 }
2510
test_mm_cmp_pd_mask_true_uq(__m128d a,__m128d b)2511 __mmask8 test_mm_cmp_pd_mask_true_uq(__m128d a, __m128d b) {
2512 // CHECK-LABEL: test_mm_cmp_pd_mask_true_uq
2513 // CHECK: fcmp true <2 x double> %{{.*}}, %{{.*}}
2514 return _mm_cmp_pd_mask(a, b, _CMP_TRUE_UQ);
2515 }
2516
test_mm_cmp_pd_mask_eq_os(__m128d a,__m128d b)2517 __mmask8 test_mm_cmp_pd_mask_eq_os(__m128d a, __m128d b) {
2518 // CHECK-LABEL: test_mm_cmp_pd_mask_eq_os
2519 // CHECK: fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2520 return _mm_cmp_pd_mask(a, b, _CMP_EQ_OS);
2521 }
2522
test_mm_cmp_pd_mask_lt_oq(__m128d a,__m128d b)2523 __mmask8 test_mm_cmp_pd_mask_lt_oq(__m128d a, __m128d b) {
2524 // CHECK-LABEL: test_mm_cmp_pd_mask_lt_oq
2525 // CHECK: fcmp olt <2 x double> %{{.*}}, %{{.*}}
2526 return _mm_cmp_pd_mask(a, b, _CMP_LT_OQ);
2527 }
2528
test_mm_cmp_pd_mask_le_oq(__m128d a,__m128d b)2529 __mmask8 test_mm_cmp_pd_mask_le_oq(__m128d a, __m128d b) {
2530 // CHECK-LABEL: test_mm_cmp_pd_mask_le_oq
2531 // CHECK: fcmp ole <2 x double> %{{.*}}, %{{.*}}
2532 return _mm_cmp_pd_mask(a, b, _CMP_LE_OQ);
2533 }
2534
test_mm_cmp_pd_mask_unord_s(__m128d a,__m128d b)2535 __mmask8 test_mm_cmp_pd_mask_unord_s(__m128d a, __m128d b) {
2536 // CHECK-LABEL: test_mm_cmp_pd_mask_unord_s
2537 // CHECK: fcmp uno <2 x double> %{{.*}}, %{{.*}}
2538 return _mm_cmp_pd_mask(a, b, _CMP_UNORD_S);
2539 }
2540
test_mm_cmp_pd_mask_neq_us(__m128d a,__m128d b)2541 __mmask8 test_mm_cmp_pd_mask_neq_us(__m128d a, __m128d b) {
2542 // CHECK-LABEL: test_mm_cmp_pd_mask_neq_us
2543 // CHECK: fcmp une <2 x double> %{{.*}}, %{{.*}}
2544 return _mm_cmp_pd_mask(a, b, _CMP_NEQ_US);
2545 }
2546
test_mm_cmp_pd_mask_nlt_uq(__m128d a,__m128d b)2547 __mmask8 test_mm_cmp_pd_mask_nlt_uq(__m128d a, __m128d b) {
2548 // CHECK-LABEL: test_mm_cmp_pd_mask_nlt_uq
2549 // CHECK: fcmp uge <2 x double> %{{.*}}, %{{.*}}
2550 return _mm_cmp_pd_mask(a, b, _CMP_NLT_UQ);
2551 }
2552
test_mm_cmp_pd_mask_nle_uq(__m128d a,__m128d b)2553 __mmask8 test_mm_cmp_pd_mask_nle_uq(__m128d a, __m128d b) {
2554 // CHECK-LABEL: test_mm_cmp_pd_mask_nle_uq
2555 // CHECK: fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2556 return _mm_cmp_pd_mask(a, b, _CMP_NLE_UQ);
2557 }
2558
test_mm_cmp_pd_mask_ord_s(__m128d a,__m128d b)2559 __mmask8 test_mm_cmp_pd_mask_ord_s(__m128d a, __m128d b) {
2560 // CHECK-LABEL: test_mm_cmp_pd_mask_ord_s
2561 // CHECK: fcmp ord <2 x double> %{{.*}}, %{{.*}}
2562 return _mm_cmp_pd_mask(a, b, _CMP_ORD_S);
2563 }
2564
test_mm_cmp_pd_mask_eq_us(__m128d a,__m128d b)2565 __mmask8 test_mm_cmp_pd_mask_eq_us(__m128d a, __m128d b) {
2566 // CHECK-LABEL: test_mm_cmp_pd_mask_eq_us
2567 // CHECK: fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2568 return _mm_cmp_pd_mask(a, b, _CMP_EQ_US);
2569 }
2570
test_mm_cmp_pd_mask_nge_uq(__m128d a,__m128d b)2571 __mmask8 test_mm_cmp_pd_mask_nge_uq(__m128d a, __m128d b) {
2572 // CHECK-LABEL: test_mm_cmp_pd_mask_nge_uq
2573 // CHECK: fcmp ult <2 x double> %{{.*}}, %{{.*}}
2574 return _mm_cmp_pd_mask(a, b, _CMP_NGE_UQ);
2575 }
2576
test_mm_cmp_pd_mask_ngt_uq(__m128d a,__m128d b)2577 __mmask8 test_mm_cmp_pd_mask_ngt_uq(__m128d a, __m128d b) {
2578 // CHECK-LABEL: test_mm_cmp_pd_mask_ngt_uq
2579 // CHECK: fcmp ule <2 x double> %{{.*}}, %{{.*}}
2580 return _mm_cmp_pd_mask(a, b, _CMP_NGT_UQ);
2581 }
2582
test_mm_cmp_pd_mask_false_os(__m128d a,__m128d b)2583 __mmask8 test_mm_cmp_pd_mask_false_os(__m128d a, __m128d b) {
2584 // CHECK-LABEL: test_mm_cmp_pd_mask_false_os
2585 // CHECK: fcmp false <2 x double> %{{.*}}, %{{.*}}
2586 return _mm_cmp_pd_mask(a, b, _CMP_FALSE_OS);
2587 }
2588
test_mm_cmp_pd_mask_neq_os(__m128d a,__m128d b)2589 __mmask8 test_mm_cmp_pd_mask_neq_os(__m128d a, __m128d b) {
2590 // CHECK-LABEL: test_mm_cmp_pd_mask_neq_os
2591 // CHECK: fcmp one <2 x double> %{{.*}}, %{{.*}}
2592 return _mm_cmp_pd_mask(a, b, _CMP_NEQ_OS);
2593 }
2594
test_mm_cmp_pd_mask_ge_oq(__m128d a,__m128d b)2595 __mmask8 test_mm_cmp_pd_mask_ge_oq(__m128d a, __m128d b) {
2596 // CHECK-LABEL: test_mm_cmp_pd_mask_ge_oq
2597 // CHECK: fcmp oge <2 x double> %{{.*}}, %{{.*}}
2598 return _mm_cmp_pd_mask(a, b, _CMP_GE_OQ);
2599 }
2600
test_mm_cmp_pd_mask_gt_oq(__m128d a,__m128d b)2601 __mmask8 test_mm_cmp_pd_mask_gt_oq(__m128d a, __m128d b) {
2602 // CHECK-LABEL: test_mm_cmp_pd_mask_gt_oq
2603 // CHECK: fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2604 return _mm_cmp_pd_mask(a, b, _CMP_GT_OQ);
2605 }
2606
test_mm_cmp_pd_mask_true_us(__m128d a,__m128d b)2607 __mmask8 test_mm_cmp_pd_mask_true_us(__m128d a, __m128d b) {
2608 // CHECK-LABEL: test_mm_cmp_pd_mask_true_us
2609 // CHECK: fcmp true <2 x double> %{{.*}}, %{{.*}}
2610 return _mm_cmp_pd_mask(a, b, _CMP_TRUE_US);
2611 }
2612
test_mm_mask_cmp_pd_mask_eq_oq(__mmask8 m,__m128d a,__m128d b)2613 __mmask8 test_mm_mask_cmp_pd_mask_eq_oq(__mmask8 m, __m128d a, __m128d b) {
2614 // CHECK-LABEL: @test_mm_mask_cmp_pd_mask_eq_oq
2615 // CHECK: [[CMP:%.*]] = fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2616 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2617 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_EQ_OQ);
2618 }
2619
test_mm_mask_cmp_pd_mask_lt_os(__mmask8 m,__m128d a,__m128d b)2620 __mmask8 test_mm_mask_cmp_pd_mask_lt_os(__mmask8 m, __m128d a, __m128d b) {
2621 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_lt_os
2622 // CHECK: [[CMP:%.*]] = fcmp olt <2 x double> %{{.*}}, %{{.*}}
2623 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2624 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_LT_OS);
2625 }
2626
test_mm_mask_cmp_pd_mask_le_os(__mmask8 m,__m128d a,__m128d b)2627 __mmask8 test_mm_mask_cmp_pd_mask_le_os(__mmask8 m, __m128d a, __m128d b) {
2628 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_le_os
2629 // CHECK: [[CMP:%.*]] = fcmp ole <2 x double> %{{.*}}, %{{.*}}
2630 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2631 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_LE_OS);
2632 }
2633
test_mm_mask_cmp_pd_mask_unord_q(__mmask8 m,__m128d a,__m128d b)2634 __mmask8 test_mm_mask_cmp_pd_mask_unord_q(__mmask8 m, __m128d a, __m128d b) {
2635 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_unord_q
2636 // CHECK: [[CMP:%.*]] = fcmp uno <2 x double> %{{.*}}, %{{.*}}
2637 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2638 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_UNORD_Q);
2639 }
2640
test_mm_mask_cmp_pd_mask_neq_uq(__mmask8 m,__m128d a,__m128d b)2641 __mmask8 test_mm_mask_cmp_pd_mask_neq_uq(__mmask8 m, __m128d a, __m128d b) {
2642 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_uq
2643 // CHECK: [[CMP:%.*]] = fcmp une <2 x double> %{{.*}}, %{{.*}}
2644 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2645 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_UQ);
2646 }
2647
test_mm_mask_cmp_pd_mask_nlt_us(__mmask8 m,__m128d a,__m128d b)2648 __mmask8 test_mm_mask_cmp_pd_mask_nlt_us(__mmask8 m, __m128d a, __m128d b) {
2649 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nlt_us
2650 // CHECK: [[CMP:%.*]] = fcmp uge <2 x double> %{{.*}}, %{{.*}}
2651 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2652 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NLT_US);
2653 }
2654
test_mm_mask_cmp_pd_mask_nle_us(__mmask8 m,__m128d a,__m128d b)2655 __mmask8 test_mm_mask_cmp_pd_mask_nle_us(__mmask8 m, __m128d a, __m128d b) {
2656 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nle_us
2657 // CHECK: [[CMP:%.*]] = fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2658 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2659 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NLE_US);
2660 }
2661
test_mm_mask_cmp_pd_mask_ord_q(__mmask8 m,__m128d a,__m128d b)2662 __mmask8 test_mm_mask_cmp_pd_mask_ord_q(__mmask8 m, __m128d a, __m128d b) {
2663 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ord_q
2664 // CHECK: [[CMP:%.*]] = fcmp ord <2 x double> %{{.*}}, %{{.*}}
2665 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2666 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_ORD_Q);
2667 }
2668
test_mm_mask_cmp_pd_mask_eq_uq(__mmask8 m,__m128d a,__m128d b)2669 __mmask8 test_mm_mask_cmp_pd_mask_eq_uq(__mmask8 m, __m128d a, __m128d b) {
2670 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_eq_uq
2671 // CHECK: [[CMP:%.*]] = fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2672 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2673 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_EQ_UQ);
2674 }
2675
test_mm_mask_cmp_pd_mask_nge_us(__mmask8 m,__m128d a,__m128d b)2676 __mmask8 test_mm_mask_cmp_pd_mask_nge_us(__mmask8 m, __m128d a, __m128d b) {
2677 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nge_us
2678 // CHECK: [[CMP:%.*]] = fcmp ult <2 x double> %{{.*}}, %{{.*}}
2679 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2680 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NGE_US);
2681 }
2682
test_mm_mask_cmp_pd_mask_ngt_us(__mmask8 m,__m128d a,__m128d b)2683 __mmask8 test_mm_mask_cmp_pd_mask_ngt_us(__mmask8 m, __m128d a, __m128d b) {
2684 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ngt_us
2685 // CHECK: [[CMP:%.*]] = fcmp ule <2 x double> %{{.*}}, %{{.*}}
2686 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2687 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NGT_US);
2688 }
2689
test_mm_mask_cmp_pd_mask_false_oq(__mmask8 m,__m128d a,__m128d b)2690 __mmask8 test_mm_mask_cmp_pd_mask_false_oq(__mmask8 m, __m128d a, __m128d b) {
2691 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_false_oq
2692 // CHECK: [[CMP:%.*]] = fcmp false <2 x double> %{{.*}}, %{{.*}}
2693 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2694 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_FALSE_OQ);
2695 }
2696
test_mm_mask_cmp_pd_mask_neq_oq(__mmask8 m,__m128d a,__m128d b)2697 __mmask8 test_mm_mask_cmp_pd_mask_neq_oq(__mmask8 m, __m128d a, __m128d b) {
2698 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_oq
2699 // CHECK: [[CMP:%.*]] = fcmp one <2 x double> %{{.*}}, %{{.*}}
2700 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2701 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_OQ);
2702 }
2703
test_mm_mask_cmp_pd_mask_ge_os(__mmask8 m,__m128d a,__m128d b)2704 __mmask8 test_mm_mask_cmp_pd_mask_ge_os(__mmask8 m, __m128d a, __m128d b) {
2705 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ge_os
2706 // CHECK: [[CMP:%.*]] = fcmp oge <2 x double> %{{.*}}, %{{.*}}
2707 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2708 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_GE_OS);
2709 }
2710
test_mm_mask_cmp_pd_mask_gt_os(__mmask8 m,__m128d a,__m128d b)2711 __mmask8 test_mm_mask_cmp_pd_mask_gt_os(__mmask8 m, __m128d a, __m128d b) {
2712 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_gt_os
2713 // CHECK: [[CMP:%.*]] = fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2714 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2715 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_GT_OS);
2716 }
2717
test_mm_mask_cmp_pd_mask_true_uq(__mmask8 m,__m128d a,__m128d b)2718 __mmask8 test_mm_mask_cmp_pd_mask_true_uq(__mmask8 m, __m128d a, __m128d b) {
2719 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_true_uq
2720 // CHECK: [[CMP:%.*]] = fcmp true <2 x double> %{{.*}}, %{{.*}}
2721 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2722 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_TRUE_UQ);
2723 }
2724
test_mm_mask_cmp_pd_mask_eq_os(__mmask8 m,__m128d a,__m128d b)2725 __mmask8 test_mm_mask_cmp_pd_mask_eq_os(__mmask8 m, __m128d a, __m128d b) {
2726 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_eq_os
2727 // CHECK: [[CMP:%.*]] = fcmp oeq <2 x double> %{{.*}}, %{{.*}}
2728 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2729 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_EQ_OS);
2730 }
2731
test_mm_mask_cmp_pd_mask_lt_oq(__mmask8 m,__m128d a,__m128d b)2732 __mmask8 test_mm_mask_cmp_pd_mask_lt_oq(__mmask8 m, __m128d a, __m128d b) {
2733 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_lt_oq
2734 // CHECK: [[CMP:%.*]] = fcmp olt <2 x double> %{{.*}}, %{{.*}}
2735 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2736 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_LT_OQ);
2737 }
2738
test_mm_mask_cmp_pd_mask_le_oq(__mmask8 m,__m128d a,__m128d b)2739 __mmask8 test_mm_mask_cmp_pd_mask_le_oq(__mmask8 m, __m128d a, __m128d b) {
2740 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_le_oq
2741 // CHECK: [[CMP:%.*]] = fcmp ole <2 x double> %{{.*}}, %{{.*}}
2742 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2743 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_LE_OQ);
2744 }
2745
test_mm_mask_cmp_pd_mask_unord_s(__mmask8 m,__m128d a,__m128d b)2746 __mmask8 test_mm_mask_cmp_pd_mask_unord_s(__mmask8 m, __m128d a, __m128d b) {
2747 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_unord_s
2748 // CHECK: [[CMP:%.*]] = fcmp uno <2 x double> %{{.*}}, %{{.*}}
2749 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2750 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_UNORD_S);
2751 }
2752
test_mm_mask_cmp_pd_mask_neq_us(__mmask8 m,__m128d a,__m128d b)2753 __mmask8 test_mm_mask_cmp_pd_mask_neq_us(__mmask8 m, __m128d a, __m128d b) {
2754 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_us
2755 // CHECK: [[CMP:%.*]] = fcmp une <2 x double> %{{.*}}, %{{.*}}
2756 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2757 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_US);
2758 }
2759
test_mm_mask_cmp_pd_mask_nlt_uq(__mmask8 m,__m128d a,__m128d b)2760 __mmask8 test_mm_mask_cmp_pd_mask_nlt_uq(__mmask8 m, __m128d a, __m128d b) {
2761 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nlt_uq
2762 // CHECK: [[CMP:%.*]] = fcmp uge <2 x double> %{{.*}}, %{{.*}}
2763 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2764 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NLT_UQ);
2765 }
2766
test_mm_mask_cmp_pd_mask_nle_uq(__mmask8 m,__m128d a,__m128d b)2767 __mmask8 test_mm_mask_cmp_pd_mask_nle_uq(__mmask8 m, __m128d a, __m128d b) {
2768 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nle_uq
2769 // CHECK: [[CMP:%.*]] = fcmp ugt <2 x double> %{{.*}}, %{{.*}}
2770 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2771 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NLE_UQ);
2772 }
2773
test_mm_mask_cmp_pd_mask_ord_s(__mmask8 m,__m128d a,__m128d b)2774 __mmask8 test_mm_mask_cmp_pd_mask_ord_s(__mmask8 m, __m128d a, __m128d b) {
2775 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ord_s
2776 // CHECK: [[CMP:%.*]] = fcmp ord <2 x double> %{{.*}}, %{{.*}}
2777 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2778 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_ORD_S);
2779 }
2780
test_mm_mask_cmp_pd_mask_eq_us(__mmask8 m,__m128d a,__m128d b)2781 __mmask8 test_mm_mask_cmp_pd_mask_eq_us(__mmask8 m, __m128d a, __m128d b) {
2782 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_eq_us
2783 // CHECK: [[CMP:%.*]] = fcmp ueq <2 x double> %{{.*}}, %{{.*}}
2784 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2785 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_EQ_US);
2786 }
2787
test_mm_mask_cmp_pd_mask_nge_uq(__mmask8 m,__m128d a,__m128d b)2788 __mmask8 test_mm_mask_cmp_pd_mask_nge_uq(__mmask8 m, __m128d a, __m128d b) {
2789 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_nge_uq
2790 // CHECK: [[CMP:%.*]] = fcmp ult <2 x double> %{{.*}}, %{{.*}}
2791 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2792 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NGE_UQ);
2793 }
2794
test_mm_mask_cmp_pd_mask_ngt_uq(__mmask8 m,__m128d a,__m128d b)2795 __mmask8 test_mm_mask_cmp_pd_mask_ngt_uq(__mmask8 m, __m128d a, __m128d b) {
2796 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ngt_uq
2797 // CHECK: [[CMP:%.*]] = fcmp ule <2 x double> %{{.*}}, %{{.*}}
2798 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2799 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NGT_UQ);
2800 }
2801
test_mm_mask_cmp_pd_mask_false_os(__mmask8 m,__m128d a,__m128d b)2802 __mmask8 test_mm_mask_cmp_pd_mask_false_os(__mmask8 m, __m128d a, __m128d b) {
2803 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_false_os
2804 // CHECK: [[CMP:%.*]] = fcmp false <2 x double> %{{.*}}, %{{.*}}
2805 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2806 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_FALSE_OS);
2807 }
2808
test_mm_mask_cmp_pd_mask_neq_os(__mmask8 m,__m128d a,__m128d b)2809 __mmask8 test_mm_mask_cmp_pd_mask_neq_os(__mmask8 m, __m128d a, __m128d b) {
2810 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_neq_os
2811 // CHECK: [[CMP:%.*]] = fcmp one <2 x double> %{{.*}}, %{{.*}}
2812 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2813 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_NEQ_OS);
2814 }
2815
test_mm_mask_cmp_pd_mask_ge_oq(__mmask8 m,__m128d a,__m128d b)2816 __mmask8 test_mm_mask_cmp_pd_mask_ge_oq(__mmask8 m, __m128d a, __m128d b) {
2817 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_ge_oq
2818 // CHECK: [[CMP:%.*]] = fcmp oge <2 x double> %{{.*}}, %{{.*}}
2819 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2820 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_GE_OQ);
2821 }
2822
test_mm_mask_cmp_pd_mask_gt_oq(__mmask8 m,__m128d a,__m128d b)2823 __mmask8 test_mm_mask_cmp_pd_mask_gt_oq(__mmask8 m, __m128d a, __m128d b) {
2824 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_gt_oq
2825 // CHECK: [[CMP:%.*]] = fcmp ogt <2 x double> %{{.*}}, %{{.*}}
2826 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2827 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_GT_OQ);
2828 }
2829
test_mm_mask_cmp_pd_mask_true_us(__mmask8 m,__m128d a,__m128d b)2830 __mmask8 test_mm_mask_cmp_pd_mask_true_us(__mmask8 m, __m128d a, __m128d b) {
2831 // CHECK-LABEL: test_mm_mask_cmp_pd_mask_true_us
2832 // CHECK: [[CMP:%.*]] = fcmp true <2 x double> %{{.*}}, %{{.*}}
2833 // CHECK: and <2 x i1> [[CMP]], {{.*}}
2834 return _mm_mask_cmp_pd_mask(m, a, b, _CMP_TRUE_US);
2835 }
2836
test_mm_mask_fmadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)2837 __m128d test_mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
2838 // CHECK-LABEL: @test_mm_mask_fmadd_pd
2839 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2840 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2841 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2842 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2843 return _mm_mask_fmadd_pd(__A, __U, __B, __C);
2844 }
2845
test_mm_mask_fmsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)2846 __m128d test_mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
2847 // CHECK-LABEL: @test_mm_mask_fmsub_pd
2848 // CHECK: fneg <2 x double> %{{.*}}
2849 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2850 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2851 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2852 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2853 return _mm_mask_fmsub_pd(__A, __U, __B, __C);
2854 }
2855
test_mm_mask3_fmadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)2856 __m128d test_mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
2857 // CHECK-LABEL: @test_mm_mask3_fmadd_pd
2858 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2859 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2860 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2861 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2862 return _mm_mask3_fmadd_pd(__A, __B, __C, __U);
2863 }
2864
test_mm_mask3_fnmadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)2865 __m128d test_mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
2866 // CHECK-LABEL: @test_mm_mask3_fnmadd_pd
2867 // CHECK: fneg <2 x double> %{{.*}}
2868 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2869 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2870 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2871 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2872 return _mm_mask3_fnmadd_pd(__A, __B, __C, __U);
2873 }
2874
test_mm_maskz_fmadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)2875 __m128d test_mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
2876 // CHECK-LABEL: @test_mm_maskz_fmadd_pd
2877 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2878 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2879 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2880 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2881 return _mm_maskz_fmadd_pd(__U, __A, __B, __C);
2882 }
2883
test_mm_maskz_fmsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)2884 __m128d test_mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
2885 // CHECK-LABEL: @test_mm_maskz_fmsub_pd
2886 // CHECK: fneg <2 x double> %{{.*}}
2887 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2888 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2889 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2890 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2891 return _mm_maskz_fmsub_pd(__U, __A, __B, __C);
2892 }
2893
test_mm_maskz_fnmadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)2894 __m128d test_mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
2895 // CHECK-LABEL: @test_mm_maskz_fnmadd_pd
2896 // CHECK: fneg <2 x double> %{{.*}}
2897 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2898 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2899 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2900 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2901 return _mm_maskz_fnmadd_pd(__U, __A, __B, __C);
2902 }
2903
test_mm_maskz_fnmsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)2904 __m128d test_mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
2905 // CHECK-LABEL: @test_mm_maskz_fnmsub_pd
2906 // CHECK: fneg <2 x double> %{{.*}}
2907 // CHECK: fneg <2 x double> %{{.*}}
2908 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
2909 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2910 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
2911 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
2912 return _mm_maskz_fnmsub_pd(__U, __A, __B, __C);
2913 }
2914
test_mm256_mask_fmadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)2915 __m256d test_mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
2916 // CHECK-LABEL: @test_mm256_mask_fmadd_pd
2917 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2918 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2919 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2920 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2921 return _mm256_mask_fmadd_pd(__A, __U, __B, __C);
2922 }
2923
test_mm256_mask_fmsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)2924 __m256d test_mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
2925 // CHECK-LABEL: @test_mm256_mask_fmsub_pd
2926 // CHECK: fneg <4 x double> %{{.*}}
2927 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2928 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2929 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2930 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2931 return _mm256_mask_fmsub_pd(__A, __U, __B, __C);
2932 }
2933
test_mm256_mask3_fmadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)2934 __m256d test_mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
2935 // CHECK-LABEL: @test_mm256_mask3_fmadd_pd
2936 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2937 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2938 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2939 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2940 return _mm256_mask3_fmadd_pd(__A, __B, __C, __U);
2941 }
2942
test_mm256_mask3_fnmadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)2943 __m256d test_mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
2944 // CHECK-LABEL: @test_mm256_mask3_fnmadd_pd
2945 // CHECK: fneg <4 x double> %{{.*}}
2946 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2947 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2948 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2949 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2950 return _mm256_mask3_fnmadd_pd(__A, __B, __C, __U);
2951 }
2952
test_mm256_maskz_fmadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)2953 __m256d test_mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
2954 // CHECK-LABEL: @test_mm256_maskz_fmadd_pd
2955 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2956 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2957 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2958 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2959 return _mm256_maskz_fmadd_pd(__U, __A, __B, __C);
2960 }
2961
test_mm256_maskz_fmsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)2962 __m256d test_mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
2963 // CHECK-LABEL: @test_mm256_maskz_fmsub_pd
2964 // CHECK: fneg <4 x double> %{{.*}}
2965 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2966 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2967 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2968 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2969 return _mm256_maskz_fmsub_pd(__U, __A, __B, __C);
2970 }
2971
test_mm256_maskz_fnmadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)2972 __m256d test_mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
2973 // CHECK-LABEL: @test_mm256_maskz_fnmadd_pd
2974 // CHECK: fneg <4 x double> %{{.*}}
2975 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2976 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2977 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2978 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2979 return _mm256_maskz_fnmadd_pd(__U, __A, __B, __C);
2980 }
2981
test_mm256_maskz_fnmsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)2982 __m256d test_mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
2983 // CHECK-LABEL: @test_mm256_maskz_fnmsub_pd
2984 // CHECK: fneg <4 x double> %{{.*}}
2985 // CHECK: fneg <4 x double> %{{.*}}
2986 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
2987 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2988 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2989 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2990 return _mm256_maskz_fnmsub_pd(__U, __A, __B, __C);
2991 }
2992
test_mm_mask_fmadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)2993 __m128 test_mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
2994 // CHECK-LABEL: @test_mm_mask_fmadd_ps
2995 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
2996 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2997 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
2998 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
2999 return _mm_mask_fmadd_ps(__A, __U, __B, __C);
3000 }
3001
test_mm_mask_fmsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3002 __m128 test_mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3003 // CHECK-LABEL: @test_mm_mask_fmsub_ps
3004 // CHECK: fneg <4 x float> %{{.*}}
3005 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3006 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3007 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3008 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3009 return _mm_mask_fmsub_ps(__A, __U, __B, __C);
3010 }
3011
test_mm_mask3_fmadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3012 __m128 test_mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3013 // CHECK-LABEL: @test_mm_mask3_fmadd_ps
3014 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3015 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3016 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3017 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3018 return _mm_mask3_fmadd_ps(__A, __B, __C, __U);
3019 }
3020
test_mm_mask3_fnmadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3021 __m128 test_mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3022 // CHECK-LABEL: @test_mm_mask3_fnmadd_ps
3023 // CHECK: fneg <4 x float> %{{.*}}
3024 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3025 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3026 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3027 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3028 return _mm_mask3_fnmadd_ps(__A, __B, __C, __U);
3029 }
3030
test_mm_maskz_fmadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3031 __m128 test_mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3032 // CHECK-LABEL: @test_mm_maskz_fmadd_ps
3033 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3034 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3035 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3036 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3037 return _mm_maskz_fmadd_ps(__U, __A, __B, __C);
3038 }
3039
test_mm_maskz_fmsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3040 __m128 test_mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3041 // CHECK-LABEL: @test_mm_maskz_fmsub_ps
3042 // CHECK: fneg <4 x float> %{{.*}}
3043 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3044 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3045 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3046 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3047 return _mm_maskz_fmsub_ps(__U, __A, __B, __C);
3048 }
3049
test_mm_maskz_fnmadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3050 __m128 test_mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3051 // CHECK-LABEL: @test_mm_maskz_fnmadd_ps
3052 // CHECK: fneg <4 x float> %{{.*}}
3053 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3054 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3055 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3056 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3057 return _mm_maskz_fnmadd_ps(__U, __A, __B, __C);
3058 }
3059
test_mm_maskz_fnmsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3060 __m128 test_mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3061 // CHECK-LABEL: @test_mm_maskz_fnmsub_ps
3062 // CHECK: fneg <4 x float> %{{.*}}
3063 // CHECK: fneg <4 x float> %{{.*}}
3064 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3065 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3066 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3067 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3068 return _mm_maskz_fnmsub_ps(__U, __A, __B, __C);
3069 }
3070
test_mm256_mask_fmadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3071 __m256 test_mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3072 // CHECK-LABEL: @test_mm256_mask_fmadd_ps
3073 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3074 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3075 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3076 return _mm256_mask_fmadd_ps(__A, __U, __B, __C);
3077 }
3078
test_mm256_mask_fmsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3079 __m256 test_mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3080 // CHECK-LABEL: @test_mm256_mask_fmsub_ps
3081 // CHECK: fneg <8 x float> %{{.*}}
3082 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3083 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3084 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3085 return _mm256_mask_fmsub_ps(__A, __U, __B, __C);
3086 }
3087
test_mm256_mask3_fmadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3088 __m256 test_mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3089 // CHECK-LABEL: @test_mm256_mask3_fmadd_ps
3090 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3091 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3092 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3093 return _mm256_mask3_fmadd_ps(__A, __B, __C, __U);
3094 }
3095
test_mm256_mask3_fnmadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3096 __m256 test_mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3097 // CHECK-LABEL: @test_mm256_mask3_fnmadd_ps
3098 // CHECK: fneg <8 x float> %{{.*}}
3099 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3100 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3101 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3102 return _mm256_mask3_fnmadd_ps(__A, __B, __C, __U);
3103 }
3104
test_mm256_maskz_fmadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3105 __m256 test_mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3106 // CHECK-LABEL: @test_mm256_maskz_fmadd_ps
3107 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3108 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3109 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3110 return _mm256_maskz_fmadd_ps(__U, __A, __B, __C);
3111 }
3112
test_mm256_maskz_fmsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3113 __m256 test_mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3114 // CHECK-LABEL: @test_mm256_maskz_fmsub_ps
3115 // CHECK: fneg <8 x float> %{{.*}}
3116 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3117 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3118 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3119 return _mm256_maskz_fmsub_ps(__U, __A, __B, __C);
3120 }
3121
test_mm256_maskz_fnmadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3122 __m256 test_mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3123 // CHECK-LABEL: @test_mm256_maskz_fnmadd_ps
3124 // CHECK: fneg <8 x float> %{{.*}}
3125 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3126 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3127 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3128 return _mm256_maskz_fnmadd_ps(__U, __A, __B, __C);
3129 }
3130
test_mm256_maskz_fnmsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3131 __m256 test_mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3132 // CHECK-LABEL: @test_mm256_maskz_fnmsub_ps
3133 // CHECK: fneg <8 x float> %{{.*}}
3134 // CHECK: fneg <8 x float> %{{.*}}
3135 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3136 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3137 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3138 return _mm256_maskz_fnmsub_ps(__U, __A, __B, __C);
3139 }
3140
test_mm_mask_fmaddsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3141 __m128d test_mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3142 // CHECK-LABEL: @test_mm_mask_fmaddsub_pd
3143 // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3144 // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.+}}
3145 // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3146 // CHECK: shufflevector <2 x double> [[SUB]], <2 x double> [[ADD]], <2 x i32> <i32 0, i32 3>
3147 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3148 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3149 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3150 return _mm_mask_fmaddsub_pd(__A, __U, __B, __C);
3151 }
3152
test_mm_mask_fmsubadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3153 __m128d test_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3154 // CHECK-LABEL: @test_mm_mask_fmsubadd_pd
3155 // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.+}}
3156 // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3157 // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3158 // CHECK: shufflevector <2 x double> [[ADD]], <2 x double> [[SUB]], <2 x i32> <i32 0, i32 3>
3159 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3160 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3161 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3162 return _mm_mask_fmsubadd_pd(__A, __U, __B, __C);
3163 }
3164
test_mm_mask3_fmaddsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3165 __m128d test_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3166 // CHECK-LABEL: @test_mm_mask3_fmaddsub_pd
3167 // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3168 // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.+}}
3169 // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3170 // CHECK: shufflevector <2 x double> [[SUB]], <2 x double> [[ADD]], <2 x i32> <i32 0, i32 3>
3171 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3172 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3173 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3174 return _mm_mask3_fmaddsub_pd(__A, __B, __C, __U);
3175 }
3176
test_mm_maskz_fmaddsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)3177 __m128d test_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
3178 // CHECK-LABEL: @test_mm_maskz_fmaddsub_pd
3179 // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3180 // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.+}}
3181 // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3182 // CHECK: shufflevector <2 x double> [[SUB]], <2 x double> [[ADD]], <2 x i32> <i32 0, i32 3>
3183 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3184 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3185 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3186 return _mm_maskz_fmaddsub_pd(__U, __A, __B, __C);
3187 }
3188
test_mm_maskz_fmsubadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)3189 __m128d test_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
3190 // CHECK-LABEL: @test_mm_maskz_fmsubadd_pd
3191 // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.+}}
3192 // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3193 // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3194 // CHECK: shufflevector <2 x double> [[ADD]], <2 x double> [[SUB]], <2 x i32> <i32 0, i32 3>
3195 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3196 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3197 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3198 return _mm_maskz_fmsubadd_pd(__U, __A, __B, __C);
3199 }
3200
test_mm256_mask_fmaddsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3201 __m256d test_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3202 // CHECK-LABEL: @test_mm256_mask_fmaddsub_pd
3203 // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3204 // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.+}}
3205 // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3206 // CHECK: shufflevector <4 x double> [[SUB]], <4 x double> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3207 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3208 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3209 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3210 return _mm256_mask_fmaddsub_pd(__A, __U, __B, __C);
3211 }
3212
test_mm256_mask_fmsubadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3213 __m256d test_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3214 // CHECK-LABEL: @test_mm256_mask_fmsubadd_pd
3215 // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.+}}
3216 // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]]
3217 // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3218 // CHECK: shufflevector <4 x double> [[ADD]], <4 x double> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3219 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3220 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3221 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3222 return _mm256_mask_fmsubadd_pd(__A, __U, __B, __C);
3223 }
3224
test_mm256_mask3_fmaddsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3225 __m256d test_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3226 // CHECK-LABEL: @test_mm256_mask3_fmaddsub_pd
3227 // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3228 // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.+}}
3229 // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3230 // CHECK: shufflevector <4 x double> [[SUB]], <4 x double> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3231 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3232 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3233 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3234 return _mm256_mask3_fmaddsub_pd(__A, __B, __C, __U);
3235 }
3236
test_mm256_maskz_fmaddsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)3237 __m256d test_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
3238 // CHECK-LABEL: @test_mm256_maskz_fmaddsub_pd
3239 // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3240 // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.+}}
3241 // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3242 // CHECK: shufflevector <4 x double> [[SUB]], <4 x double> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3243 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3244 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3245 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3246 return _mm256_maskz_fmaddsub_pd(__U, __A, __B, __C);
3247 }
3248
test_mm256_maskz_fmsubadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)3249 __m256d test_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
3250 // CHECK-LABEL: @test_mm256_maskz_fmsubadd_pd
3251 // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.+}}
3252 // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]]
3253 // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3254 // CHECK: shufflevector <4 x double> [[ADD]], <4 x double> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3255 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3256 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3257 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3258 return _mm256_maskz_fmsubadd_pd(__U, __A, __B, __C);
3259 }
3260
test_mm_mask_fmaddsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3261 __m128 test_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3262 // CHECK-LABEL: @test_mm_mask_fmaddsub_ps
3263 // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3264 // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.+}}
3265 // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3266 // CHECK: shufflevector <4 x float> [[SUB]], <4 x float> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3267 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3268 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3269 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3270 return _mm_mask_fmaddsub_ps(__A, __U, __B, __C);
3271 }
3272
test_mm_mask_fmsubadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3273 __m128 test_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3274 // CHECK-LABEL: @test_mm_mask_fmsubadd_ps
3275 // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.+}}
3276 // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3277 // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3278 // CHECK: shufflevector <4 x float> [[ADD]], <4 x float> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3279 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3280 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3281 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3282 return _mm_mask_fmsubadd_ps(__A, __U, __B, __C);
3283 }
3284
test_mm_mask3_fmaddsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3285 __m128 test_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3286 // CHECK-LABEL: @test_mm_mask3_fmaddsub_ps
3287 // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3288 // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.+}}
3289 // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3290 // CHECK: shufflevector <4 x float> [[SUB]], <4 x float> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3291 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3292 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3293 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3294 return _mm_mask3_fmaddsub_ps(__A, __B, __C, __U);
3295 }
3296
test_mm_maskz_fmaddsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3297 __m128 test_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3298 // CHECK-LABEL: @test_mm_maskz_fmaddsub_ps
3299 // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3300 // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.+}}
3301 // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3302 // CHECK: shufflevector <4 x float> [[SUB]], <4 x float> [[ADD]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3303 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3304 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3305 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3306 return _mm_maskz_fmaddsub_ps(__U, __A, __B, __C);
3307 }
3308
test_mm_maskz_fmsubadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)3309 __m128 test_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
3310 // CHECK-LABEL: @test_mm_maskz_fmsubadd_ps
3311 // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.+}}
3312 // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3313 // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3314 // CHECK: shufflevector <4 x float> [[ADD]], <4 x float> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3315 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3316 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3317 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3318 return _mm_maskz_fmsubadd_ps(__U, __A, __B, __C);
3319 }
3320
test_mm256_mask_fmaddsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3321 __m256 test_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3322 // CHECK-LABEL: @test_mm256_mask_fmaddsub_ps
3323 // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3324 // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3325 // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3326 // CHECK: shufflevector <8 x float> [[SUB]], <8 x float> [[ADD]], <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15>
3327 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3328 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3329 return _mm256_mask_fmaddsub_ps(__A, __U, __B, __C);
3330 }
3331
test_mm256_mask_fmsubadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3332 __m256 test_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3333 // CHECK-LABEL: @test_mm256_mask_fmsubadd_ps
3334 // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3335 // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3336 // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3337 // CHECK: shufflevector <8 x float> [[ADD]], <8 x float> [[SUB]], <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15>
3338 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3339 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3340 return _mm256_mask_fmsubadd_ps(__A, __U, __B, __C);
3341 }
3342
test_mm256_mask3_fmaddsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3343 __m256 test_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3344 // CHECK-LABEL: @test_mm256_mask3_fmaddsub_ps
3345 // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3346 // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3347 // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3348 // CHECK: shufflevector <8 x float> [[SUB]], <8 x float> [[ADD]], <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15>
3349 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3350 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3351 return _mm256_mask3_fmaddsub_ps(__A, __B, __C, __U);
3352 }
3353
test_mm256_maskz_fmaddsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3354 __m256 test_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3355 // CHECK-LABEL: @test_mm256_maskz_fmaddsub_ps
3356 // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3357 // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3358 // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3359 // CHECK: shufflevector <8 x float> [[SUB]], <8 x float> [[ADD]], <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15>
3360 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3361 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3362 return _mm256_maskz_fmaddsub_ps(__U, __A, __B, __C);
3363 }
3364
test_mm256_maskz_fmsubadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)3365 __m256 test_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
3366 // CHECK-LABEL: @test_mm256_maskz_fmsubadd_ps
3367 // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3368 // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3369 // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3370 // CHECK: shufflevector <8 x float> [[ADD]], <8 x float> [[SUB]], <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15>
3371 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3372 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3373 return _mm256_maskz_fmsubadd_ps(__U, __A, __B, __C);
3374 }
3375
test_mm_mask3_fmsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3376 __m128d test_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3377 // CHECK-LABEL: @test_mm_mask3_fmsub_pd
3378 // CHECK: fneg <2 x double> %{{.*}}
3379 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3380 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3381 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3382 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3383 return _mm_mask3_fmsub_pd(__A, __B, __C, __U);
3384 }
3385
test_mm256_mask3_fmsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3386 __m256d test_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3387 // CHECK-LABEL: @test_mm256_mask3_fmsub_pd
3388 // CHECK: fneg <4 x double> %{{.*}}
3389 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3390 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3391 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3392 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3393 return _mm256_mask3_fmsub_pd(__A, __B, __C, __U);
3394 }
3395
test_mm_mask3_fmsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3396 __m128 test_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3397 // CHECK-LABEL: @test_mm_mask3_fmsub_ps
3398 // CHECK: fneg <4 x float> %{{.*}}
3399 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3400 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3401 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3402 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3403 return _mm_mask3_fmsub_ps(__A, __B, __C, __U);
3404 }
3405
test_mm256_mask3_fmsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3406 __m256 test_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3407 // CHECK-LABEL: @test_mm256_mask3_fmsub_ps
3408 // CHECK: fneg <8 x float> %{{.*}}
3409 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3410 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3411 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3412 return _mm256_mask3_fmsub_ps(__A, __B, __C, __U);
3413 }
3414
test_mm_mask3_fmsubadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3415 __m128d test_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3416 // CHECK-LABEL: @test_mm_mask3_fmsubadd_pd
3417 // CHECK: [[NEG:%.+]] = fneg <2 x double> %{{.+}}
3418 // CHECK: [[SUB:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> [[NEG]]
3419 // CHECK: [[ADD:%.+]] = call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3420 // CHECK: shufflevector <2 x double> [[ADD]], <2 x double> [[SUB]], <2 x i32> <i32 0, i32 3>
3421 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3422 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3423 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3424 return _mm_mask3_fmsubadd_pd(__A, __B, __C, __U);
3425 }
3426
test_mm256_mask3_fmsubadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3427 __m256d test_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3428 // CHECK-LABEL: @test_mm256_mask3_fmsubadd_pd
3429 // CHECK: [[NEG:%.+]] = fneg <4 x double> %{{.+}}
3430 // CHECK: [[SUB:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> [[NEG]]
3431 // CHECK: [[ADD:%.+]] = call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3432 // CHECK: shufflevector <4 x double> [[ADD]], <4 x double> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3433 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3434 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3435 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3436 return _mm256_mask3_fmsubadd_pd(__A, __B, __C, __U);
3437 }
3438
test_mm_mask3_fmsubadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3439 __m128 test_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3440 // CHECK-LABEL: @test_mm_mask3_fmsubadd_ps
3441 // CHECK: [[NEG:%.+]] = fneg <4 x float> %{{.+}}
3442 // CHECK: [[SUB:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> [[NEG]]
3443 // CHECK: [[ADD:%.+]] = call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3444 // CHECK: shufflevector <4 x float> [[ADD]], <4 x float> [[SUB]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>
3445 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3446 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3447 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3448 return _mm_mask3_fmsubadd_ps(__A, __B, __C, __U);
3449 }
3450
test_mm256_mask3_fmsubadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3451 __m256 test_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3452 // CHECK-LABEL: @test_mm256_mask3_fmsubadd_ps
3453 // CHECK: [[NEG:%.+]] = fneg <8 x float> %{{.*}}
3454 // CHECK: [[SUB:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> [[NEG]]
3455 // CHECK: [[ADD:%.+]] = call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3456 // CHECK: shufflevector <8 x float> [[ADD]], <8 x float> [[SUB]], <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15>
3457 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3458 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3459 return _mm256_mask3_fmsubadd_ps(__A, __B, __C, __U);
3460 }
3461
test_mm_mask_fnmadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3462 __m128d test_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3463 // CHECK-LABEL: @test_mm_mask_fnmadd_pd
3464 // CHECK: fneg <2 x double> %{{.*}}
3465 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3466 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3467 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3468 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3469 return _mm_mask_fnmadd_pd(__A, __U, __B, __C);
3470 }
3471
test_mm256_mask_fnmadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3472 __m256d test_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3473 // CHECK-LABEL: @test_mm256_mask_fnmadd_pd
3474 // CHECK: fneg <4 x double> %{{.*}}
3475 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3476 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3477 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3478 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3479 return _mm256_mask_fnmadd_pd(__A, __U, __B, __C);
3480 }
3481
test_mm_mask_fnmadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3482 __m128 test_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3483 // CHECK-LABEL: @test_mm_mask_fnmadd_ps
3484 // CHECK: fneg <4 x float> %{{.*}}
3485 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3486 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3487 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3488 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3489 return _mm_mask_fnmadd_ps(__A, __U, __B, __C);
3490 }
3491
test_mm256_mask_fnmadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3492 __m256 test_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3493 // CHECK-LABEL: @test_mm256_mask_fnmadd_ps
3494 // CHECK: fneg <8 x float> %{{.*}}
3495 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3496 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3497 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3498 return _mm256_mask_fnmadd_ps(__A, __U, __B, __C);
3499 }
3500
test_mm_mask_fnmsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)3501 __m128d test_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
3502 // CHECK-LABEL: @test_mm_mask_fnmsub_pd
3503 // CHECK: fneg <2 x double> %{{.*}}
3504 // CHECK: fneg <2 x double> %{{.*}}
3505 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3506 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3507 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3508 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3509 return _mm_mask_fnmsub_pd(__A, __U, __B, __C);
3510 }
3511
test_mm_mask3_fnmsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)3512 __m128d test_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
3513 // CHECK-LABEL: @test_mm_mask3_fnmsub_pd
3514 // CHECK: fneg <2 x double> %{{.*}}
3515 // CHECK: fneg <2 x double> %{{.*}}
3516 // CHECK: call <2 x double> @llvm.fma.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
3517 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3518 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1>
3519 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3520 return _mm_mask3_fnmsub_pd(__A, __B, __C, __U);
3521 }
3522
test_mm256_mask_fnmsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)3523 __m256d test_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
3524 // CHECK-LABEL: @test_mm256_mask_fnmsub_pd
3525 // CHECK: fneg <4 x double> %{{.*}}
3526 // CHECK: fneg <4 x double> %{{.*}}
3527 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3528 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3529 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3530 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3531 return _mm256_mask_fnmsub_pd(__A, __U, __B, __C);
3532 }
3533
test_mm256_mask3_fnmsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)3534 __m256d test_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
3535 // CHECK-LABEL: @test_mm256_mask3_fnmsub_pd
3536 // CHECK: fneg <4 x double> %{{.*}}
3537 // CHECK: fneg <4 x double> %{{.*}}
3538 // CHECK: call <4 x double> @llvm.fma.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}})
3539 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3540 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3541 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3542 return _mm256_mask3_fnmsub_pd(__A, __B, __C, __U);
3543 }
3544
test_mm_mask_fnmsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)3545 __m128 test_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
3546 // CHECK-LABEL: @test_mm_mask_fnmsub_ps
3547 // CHECK: fneg <4 x float> %{{.*}}
3548 // CHECK: fneg <4 x float> %{{.*}}
3549 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3550 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3551 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3552 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3553 return _mm_mask_fnmsub_ps(__A, __U, __B, __C);
3554 }
3555
test_mm_mask3_fnmsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)3556 __m128 test_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
3557 // CHECK-LABEL: @test_mm_mask3_fnmsub_ps
3558 // CHECK: fneg <4 x float> %{{.*}}
3559 // CHECK: fneg <4 x float> %{{.*}}
3560 // CHECK: call <4 x float> @llvm.fma.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
3561 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3562 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
3563 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3564 return _mm_mask3_fnmsub_ps(__A, __B, __C, __U);
3565 }
3566
test_mm256_mask_fnmsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)3567 __m256 test_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
3568 // CHECK-LABEL: @test_mm256_mask_fnmsub_ps
3569 // CHECK: fneg <8 x float> %{{.*}}
3570 // CHECK: fneg <8 x float> %{{.*}}
3571 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3572 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3573 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3574 return _mm256_mask_fnmsub_ps(__A, __U, __B, __C);
3575 }
3576
test_mm256_mask3_fnmsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)3577 __m256 test_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
3578 // CHECK-LABEL: @test_mm256_mask3_fnmsub_ps
3579 // CHECK: fneg <8 x float> %{{.*}}
3580 // CHECK: fneg <8 x float> %{{.*}}
3581 // CHECK: call <8 x float> @llvm.fma.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}})
3582 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
3583 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3584 return _mm256_mask3_fnmsub_ps(__A, __B, __C, __U);
3585 }
3586
test_mm_mask_add_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3587 __m128d test_mm_mask_add_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3588 // CHECK-LABEL: @test_mm_mask_add_pd
3589 // CHECK: fadd <2 x double> %{{.*}}, %{{.*}}
3590 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3591 return _mm_mask_add_pd(__W,__U,__A,__B);
3592 }
test_mm_maskz_add_pd(__mmask8 __U,__m128d __A,__m128d __B)3593 __m128d test_mm_maskz_add_pd(__mmask8 __U, __m128d __A, __m128d __B) {
3594 // CHECK-LABEL: @test_mm_maskz_add_pd
3595 // CHECK: fadd <2 x double> %{{.*}}, %{{.*}}
3596 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3597 return _mm_maskz_add_pd(__U,__A,__B);
3598 }
test_mm256_mask_add_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)3599 __m256d test_mm256_mask_add_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
3600 // CHECK-LABEL: @test_mm256_mask_add_pd
3601 // CHECK: fadd <4 x double> %{{.*}}, %{{.*}}
3602 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3603 return _mm256_mask_add_pd(__W,__U,__A,__B);
3604 }
test_mm256_maskz_add_pd(__mmask8 __U,__m256d __A,__m256d __B)3605 __m256d test_mm256_maskz_add_pd(__mmask8 __U, __m256d __A, __m256d __B) {
3606 // CHECK-LABEL: @test_mm256_maskz_add_pd
3607 // CHECK: fadd <4 x double> %{{.*}}, %{{.*}}
3608 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3609 return _mm256_maskz_add_pd(__U,__A,__B);
3610 }
test_mm_mask_add_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)3611 __m128 test_mm_mask_add_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3612 // CHECK-LABEL: @test_mm_mask_add_ps
3613 // CHECK: fadd <4 x float> %{{.*}}, %{{.*}}
3614 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3615 return _mm_mask_add_ps(__W,__U,__A,__B);
3616 }
test_mm_maskz_add_ps(__mmask8 __U,__m128 __A,__m128 __B)3617 __m128 test_mm_maskz_add_ps(__mmask8 __U, __m128 __A, __m128 __B) {
3618 // CHECK-LABEL: @test_mm_maskz_add_ps
3619 // CHECK: fadd <4 x float> %{{.*}}, %{{.*}}
3620 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3621 return _mm_maskz_add_ps(__U,__A,__B);
3622 }
test_mm256_mask_add_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)3623 __m256 test_mm256_mask_add_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3624 // CHECK-LABEL: @test_mm256_mask_add_ps
3625 // CHECK: fadd <8 x float> %{{.*}}, %{{.*}}
3626 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3627 return _mm256_mask_add_ps(__W,__U,__A,__B);
3628 }
test_mm256_maskz_add_ps(__mmask8 __U,__m256 __A,__m256 __B)3629 __m256 test_mm256_maskz_add_ps(__mmask8 __U, __m256 __A, __m256 __B) {
3630 // CHECK-LABEL: @test_mm256_maskz_add_ps
3631 // CHECK: fadd <8 x float> %{{.*}}, %{{.*}}
3632 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3633 return _mm256_maskz_add_ps(__U,__A,__B);
3634 }
test_mm_mask_blend_epi32(__mmask8 __U,__m128i __A,__m128i __W)3635 __m128i test_mm_mask_blend_epi32(__mmask8 __U, __m128i __A, __m128i __W) {
3636 // CHECK-LABEL: @test_mm_mask_blend_epi32
3637 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
3638 return _mm_mask_blend_epi32(__U,__A,__W);
3639 }
test_mm256_mask_blend_epi32(__mmask8 __U,__m256i __A,__m256i __W)3640 __m256i test_mm256_mask_blend_epi32(__mmask8 __U, __m256i __A, __m256i __W) {
3641 // CHECK-LABEL: @test_mm256_mask_blend_epi32
3642 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
3643 return _mm256_mask_blend_epi32(__U,__A,__W);
3644 }
test_mm_mask_blend_pd(__mmask8 __U,__m128d __A,__m128d __W)3645 __m128d test_mm_mask_blend_pd(__mmask8 __U, __m128d __A, __m128d __W) {
3646 // CHECK-LABEL: @test_mm_mask_blend_pd
3647 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
3648 return _mm_mask_blend_pd(__U,__A,__W);
3649 }
test_mm256_mask_blend_pd(__mmask8 __U,__m256d __A,__m256d __W)3650 __m256d test_mm256_mask_blend_pd(__mmask8 __U, __m256d __A, __m256d __W) {
3651 // CHECK-LABEL: @test_mm256_mask_blend_pd
3652 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
3653 return _mm256_mask_blend_pd(__U,__A,__W);
3654 }
test_mm_mask_blend_ps(__mmask8 __U,__m128 __A,__m128 __W)3655 __m128 test_mm_mask_blend_ps(__mmask8 __U, __m128 __A, __m128 __W) {
3656 // CHECK-LABEL: @test_mm_mask_blend_ps
3657 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
3658 return _mm_mask_blend_ps(__U,__A,__W);
3659 }
test_mm256_mask_blend_ps(__mmask8 __U,__m256 __A,__m256 __W)3660 __m256 test_mm256_mask_blend_ps(__mmask8 __U, __m256 __A, __m256 __W) {
3661 // CHECK-LABEL: @test_mm256_mask_blend_ps
3662 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
3663 return _mm256_mask_blend_ps(__U,__A,__W);
3664 }
test_mm_mask_blend_epi64(__mmask8 __U,__m128i __A,__m128i __W)3665 __m128i test_mm_mask_blend_epi64(__mmask8 __U, __m128i __A, __m128i __W) {
3666 // CHECK-LABEL: @test_mm_mask_blend_epi64
3667 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
3668 return _mm_mask_blend_epi64(__U,__A,__W);
3669 }
test_mm256_mask_blend_epi64(__mmask8 __U,__m256i __A,__m256i __W)3670 __m256i test_mm256_mask_blend_epi64(__mmask8 __U, __m256i __A, __m256i __W) {
3671 // CHECK-LABEL: @test_mm256_mask_blend_epi64
3672 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
3673 return _mm256_mask_blend_epi64(__U,__A,__W);
3674 }
test_mm_mask_compress_pd(__m128d __W,__mmask8 __U,__m128d __A)3675 __m128d test_mm_mask_compress_pd(__m128d __W, __mmask8 __U, __m128d __A) {
3676 // CHECK-LABEL: @test_mm_mask_compress_pd
3677 // CHECK: @llvm.x86.avx512.mask.compress
3678 return _mm_mask_compress_pd(__W,__U,__A);
3679 }
test_mm_maskz_compress_pd(__mmask8 __U,__m128d __A)3680 __m128d test_mm_maskz_compress_pd(__mmask8 __U, __m128d __A) {
3681 // CHECK-LABEL: @test_mm_maskz_compress_pd
3682 // CHECK: @llvm.x86.avx512.mask.compress
3683 return _mm_maskz_compress_pd(__U,__A);
3684 }
test_mm256_mask_compress_pd(__m256d __W,__mmask8 __U,__m256d __A)3685 __m256d test_mm256_mask_compress_pd(__m256d __W, __mmask8 __U, __m256d __A) {
3686 // CHECK-LABEL: @test_mm256_mask_compress_pd
3687 // CHECK: @llvm.x86.avx512.mask.compress
3688 return _mm256_mask_compress_pd(__W,__U,__A);
3689 }
test_mm256_maskz_compress_pd(__mmask8 __U,__m256d __A)3690 __m256d test_mm256_maskz_compress_pd(__mmask8 __U, __m256d __A) {
3691 // CHECK-LABEL: @test_mm256_maskz_compress_pd
3692 // CHECK: @llvm.x86.avx512.mask.compress
3693 return _mm256_maskz_compress_pd(__U,__A);
3694 }
test_mm_mask_compress_epi64(__m128i __W,__mmask8 __U,__m128i __A)3695 __m128i test_mm_mask_compress_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
3696 // CHECK-LABEL: @test_mm_mask_compress_epi64
3697 // CHECK: @llvm.x86.avx512.mask.compress
3698 return _mm_mask_compress_epi64(__W,__U,__A);
3699 }
test_mm_maskz_compress_epi64(__mmask8 __U,__m128i __A)3700 __m128i test_mm_maskz_compress_epi64(__mmask8 __U, __m128i __A) {
3701 // CHECK-LABEL: @test_mm_maskz_compress_epi64
3702 // CHECK: @llvm.x86.avx512.mask.compress
3703 return _mm_maskz_compress_epi64(__U,__A);
3704 }
test_mm256_mask_compress_epi64(__m256i __W,__mmask8 __U,__m256i __A)3705 __m256i test_mm256_mask_compress_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
3706 // CHECK-LABEL: @test_mm256_mask_compress_epi64
3707 // CHECK: @llvm.x86.avx512.mask.compress
3708 return _mm256_mask_compress_epi64(__W,__U,__A);
3709 }
test_mm256_maskz_compress_epi64(__mmask8 __U,__m256i __A)3710 __m256i test_mm256_maskz_compress_epi64(__mmask8 __U, __m256i __A) {
3711 // CHECK-LABEL: @test_mm256_maskz_compress_epi64
3712 // CHECK: @llvm.x86.avx512.mask.compress
3713 return _mm256_maskz_compress_epi64(__U,__A);
3714 }
test_mm_mask_compress_ps(__m128 __W,__mmask8 __U,__m128 __A)3715 __m128 test_mm_mask_compress_ps(__m128 __W, __mmask8 __U, __m128 __A) {
3716 // CHECK-LABEL: @test_mm_mask_compress_ps
3717 // CHECK: @llvm.x86.avx512.mask.compress
3718 return _mm_mask_compress_ps(__W,__U,__A);
3719 }
test_mm_maskz_compress_ps(__mmask8 __U,__m128 __A)3720 __m128 test_mm_maskz_compress_ps(__mmask8 __U, __m128 __A) {
3721 // CHECK-LABEL: @test_mm_maskz_compress_ps
3722 // CHECK: @llvm.x86.avx512.mask.compress
3723 return _mm_maskz_compress_ps(__U,__A);
3724 }
test_mm256_mask_compress_ps(__m256 __W,__mmask8 __U,__m256 __A)3725 __m256 test_mm256_mask_compress_ps(__m256 __W, __mmask8 __U, __m256 __A) {
3726 // CHECK-LABEL: @test_mm256_mask_compress_ps
3727 // CHECK: @llvm.x86.avx512.mask.compress
3728 return _mm256_mask_compress_ps(__W,__U,__A);
3729 }
test_mm256_maskz_compress_ps(__mmask8 __U,__m256 __A)3730 __m256 test_mm256_maskz_compress_ps(__mmask8 __U, __m256 __A) {
3731 // CHECK-LABEL: @test_mm256_maskz_compress_ps
3732 // CHECK: @llvm.x86.avx512.mask.compress
3733 return _mm256_maskz_compress_ps(__U,__A);
3734 }
test_mm_mask_compress_epi32(__m128i __W,__mmask8 __U,__m128i __A)3735 __m128i test_mm_mask_compress_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
3736 // CHECK-LABEL: @test_mm_mask_compress_epi32
3737 // CHECK: @llvm.x86.avx512.mask.compress
3738 return _mm_mask_compress_epi32(__W,__U,__A);
3739 }
test_mm_maskz_compress_epi32(__mmask8 __U,__m128i __A)3740 __m128i test_mm_maskz_compress_epi32(__mmask8 __U, __m128i __A) {
3741 // CHECK-LABEL: @test_mm_maskz_compress_epi32
3742 // CHECK: @llvm.x86.avx512.mask.compress
3743 return _mm_maskz_compress_epi32(__U,__A);
3744 }
test_mm256_mask_compress_epi32(__m256i __W,__mmask8 __U,__m256i __A)3745 __m256i test_mm256_mask_compress_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
3746 // CHECK-LABEL: @test_mm256_mask_compress_epi32
3747 // CHECK: @llvm.x86.avx512.mask.compress
3748 return _mm256_mask_compress_epi32(__W,__U,__A);
3749 }
test_mm256_maskz_compress_epi32(__mmask8 __U,__m256i __A)3750 __m256i test_mm256_maskz_compress_epi32(__mmask8 __U, __m256i __A) {
3751 // CHECK-LABEL: @test_mm256_maskz_compress_epi32
3752 // CHECK: @llvm.x86.avx512.mask.compress
3753 return _mm256_maskz_compress_epi32(__U,__A);
3754 }
test_mm_mask_compressstoreu_pd(void * __P,__mmask8 __U,__m128d __A)3755 void test_mm_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m128d __A) {
3756 // CHECK-LABEL: @test_mm_mask_compressstoreu_pd
3757 // CHECK: @llvm.masked.compressstore.v2f64(<2 x double> %{{.*}}, double* %{{.*}}, <2 x i1> %{{.*}})
3758 return _mm_mask_compressstoreu_pd(__P,__U,__A);
3759 }
test_mm256_mask_compressstoreu_pd(void * __P,__mmask8 __U,__m256d __A)3760 void test_mm256_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m256d __A) {
3761 // CHECK-LABEL: @test_mm256_mask_compressstoreu_pd
3762 // CHECK: @llvm.masked.compressstore.v4f64(<4 x double> %{{.*}}, double* %{{.*}}, <4 x i1> %{{.*}})
3763 return _mm256_mask_compressstoreu_pd(__P,__U,__A);
3764 }
test_mm_mask_compressstoreu_epi64(void * __P,__mmask8 __U,__m128i __A)3765 void test_mm_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m128i __A) {
3766 // CHECK-LABEL: @test_mm_mask_compressstoreu_epi64
3767 // CHECK: @llvm.masked.compressstore.v2i64(<2 x i64> %{{.*}}, i64* %{{.*}}, <2 x i1> %{{.*}})
3768 return _mm_mask_compressstoreu_epi64(__P,__U,__A);
3769 }
test_mm256_mask_compressstoreu_epi64(void * __P,__mmask8 __U,__m256i __A)3770 void test_mm256_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m256i __A) {
3771 // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi64
3772 // CHECK: @llvm.masked.compressstore.v4i64(<4 x i64> %{{.*}}, i64* %{{.*}}, <4 x i1> %{{.*}})
3773 return _mm256_mask_compressstoreu_epi64(__P,__U,__A);
3774 }
test_mm_mask_compressstoreu_ps(void * __P,__mmask8 __U,__m128 __A)3775 void test_mm_mask_compressstoreu_ps(void *__P, __mmask8 __U, __m128 __A) {
3776 // CHECK-LABEL: @test_mm_mask_compressstoreu_ps
3777 // CHECK: @llvm.masked.compressstore.v4f32(<4 x float> %{{.*}}, float* %{{.*}}, <4 x i1> %{{.*}})
3778 return _mm_mask_compressstoreu_ps(__P,__U,__A);
3779 }
test_mm256_mask_compressstoreu_ps(void * __P,__mmask8 __U,__m256 __A)3780 void test_mm256_mask_compressstoreu_ps(void *__P, __mmask8 __U, __m256 __A) {
3781 // CHECK-LABEL: @test_mm256_mask_compressstoreu_ps
3782 // CHECK: @llvm.masked.compressstore.v8f32(<8 x float> %{{.*}}, float* %{{.*}}, <8 x i1> %{{.*}})
3783 return _mm256_mask_compressstoreu_ps(__P,__U,__A);
3784 }
test_mm_mask_compressstoreu_epi32(void * __P,__mmask8 __U,__m128i __A)3785 void test_mm_mask_compressstoreu_epi32(void *__P, __mmask8 __U, __m128i __A) {
3786 // CHECK-LABEL: @test_mm_mask_compressstoreu_epi32
3787 // CHECK: @llvm.masked.compressstore.v4i32(<4 x i32> %{{.*}}, i32* %{{.*}}, <4 x i1> %{{.*}})
3788 return _mm_mask_compressstoreu_epi32(__P,__U,__A);
3789 }
test_mm256_mask_compressstoreu_epi32(void * __P,__mmask8 __U,__m256i __A)3790 void test_mm256_mask_compressstoreu_epi32(void *__P, __mmask8 __U, __m256i __A) {
3791 // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi32
3792 // CHECK: @llvm.masked.compressstore.v8i32(<8 x i32> %{{.*}}, i32* %{{.*}}, <8 x i1> %{{.*}})
3793 return _mm256_mask_compressstoreu_epi32(__P,__U,__A);
3794 }
test_mm_mask_cvtepi32_pd(__m128d __W,__mmask8 __U,__m128i __A)3795 __m128d test_mm_mask_cvtepi32_pd(__m128d __W, __mmask8 __U, __m128i __A) {
3796 // CHECK-LABEL: @test_mm_mask_cvtepi32_pd
3797 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
3798 // CHECK: sitofp <2 x i32> %{{.*}} to <2 x double>
3799 // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3800 return _mm_mask_cvtepi32_pd(__W,__U,__A);
3801 }
test_mm_maskz_cvtepi32_pd(__mmask8 __U,__m128i __A)3802 __m128d test_mm_maskz_cvtepi32_pd(__mmask8 __U, __m128i __A) {
3803 // CHECK-LABEL: @test_mm_maskz_cvtepi32_pd
3804 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
3805 // CHECK: sitofp <2 x i32> %{{.*}} to <2 x double>
3806 // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3807 return _mm_maskz_cvtepi32_pd(__U,__A);
3808 }
test_mm256_mask_cvtepi32_pd(__m256d __W,__mmask8 __U,__m128i __A)3809 __m256d test_mm256_mask_cvtepi32_pd(__m256d __W, __mmask8 __U, __m128i __A) {
3810 // CHECK-LABEL: @test_mm256_mask_cvtepi32_pd
3811 // CHECK: sitofp <4 x i32> %{{.*}} to <4 x double>
3812 // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3813 return _mm256_mask_cvtepi32_pd(__W,__U,__A);
3814 }
test_mm256_maskz_cvtepi32_pd(__mmask8 __U,__m128i __A)3815 __m256d test_mm256_maskz_cvtepi32_pd(__mmask8 __U, __m128i __A) {
3816 // CHECK-LABEL: @test_mm256_maskz_cvtepi32_pd
3817 // CHECK: sitofp <4 x i32> %{{.*}} to <4 x double>
3818 // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3819 return _mm256_maskz_cvtepi32_pd(__U,__A);
3820 }
test_mm_mask_cvtepi32_ps(__m128 __W,__mmask8 __U,__m128i __A)3821 __m128 test_mm_mask_cvtepi32_ps(__m128 __W, __mmask8 __U, __m128i __A) {
3822 // CHECK-LABEL: @test_mm_mask_cvtepi32_ps
3823 // CHECK: sitofp <4 x i32> %{{.*}} to <4 x float>
3824 // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3825 return _mm_mask_cvtepi32_ps(__W,__U,__A);
3826 }
test_mm_maskz_cvtepi32_ps(__mmask8 __U,__m128i __A)3827 __m128 test_mm_maskz_cvtepi32_ps(__mmask8 __U, __m128i __A) {
3828 // CHECK-LABEL: @test_mm_maskz_cvtepi32_ps
3829 // CHECK: sitofp <4 x i32> %{{.*}} to <4 x float>
3830 // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3831 return _mm_maskz_cvtepi32_ps(__U,__A);
3832 }
test_mm256_mask_cvtepi32_ps(__m256 __W,__mmask8 __U,__m256i __A)3833 __m256 test_mm256_mask_cvtepi32_ps(__m256 __W, __mmask8 __U, __m256i __A) {
3834 // CHECK-LABEL: @test_mm256_mask_cvtepi32_ps
3835 // CHECK: sitofp <8 x i32> %{{.*}} to <8 x float>
3836 // CHECK: select <8 x i1> {{.*}}, <8 x float> {{.*}}, <8 x float> {{.*}}
3837 return _mm256_mask_cvtepi32_ps(__W,__U,__A);
3838 }
test_mm256_maskz_cvtepi32_ps(__mmask8 __U,__m256i __A)3839 __m256 test_mm256_maskz_cvtepi32_ps(__mmask8 __U, __m256i __A) {
3840 // CHECK-LABEL: @test_mm256_maskz_cvtepi32_ps
3841 // CHECK: sitofp <8 x i32> %{{.*}} to <8 x float>
3842 // CHECK: select <8 x i1> {{.*}}, <8 x float> {{.*}}, <8 x float> {{.*}}
3843 return _mm256_maskz_cvtepi32_ps(__U,__A);
3844 }
test_mm_mask_cvtpd_epi32(__m128i __W,__mmask8 __U,__m128d __A)3845 __m128i test_mm_mask_cvtpd_epi32(__m128i __W, __mmask8 __U, __m128d __A) {
3846 // CHECK-LABEL: @test_mm_mask_cvtpd_epi32
3847 // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.128
3848 return _mm_mask_cvtpd_epi32(__W,__U,__A);
3849 }
test_mm_maskz_cvtpd_epi32(__mmask8 __U,__m128d __A)3850 __m128i test_mm_maskz_cvtpd_epi32(__mmask8 __U, __m128d __A) {
3851 // CHECK-LABEL: @test_mm_maskz_cvtpd_epi32
3852 // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.128
3853 return _mm_maskz_cvtpd_epi32(__U,__A);
3854 }
test_mm256_mask_cvtpd_epi32(__m128i __W,__mmask8 __U,__m256d __A)3855 __m128i test_mm256_mask_cvtpd_epi32(__m128i __W, __mmask8 __U, __m256d __A) {
3856 // CHECK-LABEL: @test_mm256_mask_cvtpd_epi32
3857 // CHECK: @llvm.x86.avx.cvt.pd2dq.256
3858 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3859 return _mm256_mask_cvtpd_epi32(__W,__U,__A);
3860 }
test_mm256_maskz_cvtpd_epi32(__mmask8 __U,__m256d __A)3861 __m128i test_mm256_maskz_cvtpd_epi32(__mmask8 __U, __m256d __A) {
3862 // CHECK-LABEL: @test_mm256_maskz_cvtpd_epi32
3863 // CHECK: @llvm.x86.avx.cvt.pd2dq.256
3864 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3865 return _mm256_maskz_cvtpd_epi32(__U,__A);
3866 }
test_mm_mask_cvtpd_ps(__m128 __W,__mmask8 __U,__m128d __A)3867 __m128 test_mm_mask_cvtpd_ps(__m128 __W, __mmask8 __U, __m128d __A) {
3868 // CHECK-LABEL: @test_mm_mask_cvtpd_ps
3869 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps
3870 return _mm_mask_cvtpd_ps(__W,__U,__A);
3871 }
test_mm_maskz_cvtpd_ps(__mmask8 __U,__m128d __A)3872 __m128 test_mm_maskz_cvtpd_ps(__mmask8 __U, __m128d __A) {
3873 // CHECK-LABEL: @test_mm_maskz_cvtpd_ps
3874 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps
3875 return _mm_maskz_cvtpd_ps(__U,__A);
3876 }
test_mm256_mask_cvtpd_ps(__m128 __W,__mmask8 __U,__m256d __A)3877 __m128 test_mm256_mask_cvtpd_ps(__m128 __W, __mmask8 __U, __m256d __A) {
3878 // CHECK-LABEL: @test_mm256_mask_cvtpd_ps
3879 // CHECK: @llvm.x86.avx.cvt.pd2.ps.256
3880 // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3881 return _mm256_mask_cvtpd_ps(__W,__U,__A);
3882 }
test_mm256_maskz_cvtpd_ps(__mmask8 __U,__m256d __A)3883 __m128 test_mm256_maskz_cvtpd_ps(__mmask8 __U, __m256d __A) {
3884 // CHECK-LABEL: @test_mm256_maskz_cvtpd_ps
3885 // CHECK: @llvm.x86.avx.cvt.pd2.ps.256
3886 // CHECK: select <4 x i1> {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}}
3887 return _mm256_maskz_cvtpd_ps(__U,__A);
3888 }
test_mm_cvtpd_epu32(__m128d __A)3889 __m128i test_mm_cvtpd_epu32(__m128d __A) {
3890 // CHECK-LABEL: @test_mm_cvtpd_epu32
3891 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3892 return _mm_cvtpd_epu32(__A);
3893 }
test_mm_mask_cvtpd_epu32(__m128i __W,__mmask8 __U,__m128d __A)3894 __m128i test_mm_mask_cvtpd_epu32(__m128i __W, __mmask8 __U, __m128d __A) {
3895 // CHECK-LABEL: @test_mm_mask_cvtpd_epu32
3896 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3897 return _mm_mask_cvtpd_epu32(__W,__U,__A);
3898 }
test_mm_maskz_cvtpd_epu32(__mmask8 __U,__m128d __A)3899 __m128i test_mm_maskz_cvtpd_epu32(__mmask8 __U, __m128d __A) {
3900 // CHECK-LABEL: @test_mm_maskz_cvtpd_epu32
3901 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
3902 return _mm_maskz_cvtpd_epu32(__U,__A);
3903 }
test_mm256_cvtpd_epu32(__m256d __A)3904 __m128i test_mm256_cvtpd_epu32(__m256d __A) {
3905 // CHECK-LABEL: @test_mm256_cvtpd_epu32
3906 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3907 return _mm256_cvtpd_epu32(__A);
3908 }
test_mm256_mask_cvtpd_epu32(__m128i __W,__mmask8 __U,__m256d __A)3909 __m128i test_mm256_mask_cvtpd_epu32(__m128i __W, __mmask8 __U, __m256d __A) {
3910 // CHECK-LABEL: @test_mm256_mask_cvtpd_epu32
3911 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3912 return _mm256_mask_cvtpd_epu32(__W,__U,__A);
3913 }
test_mm256_maskz_cvtpd_epu32(__mmask8 __U,__m256d __A)3914 __m128i test_mm256_maskz_cvtpd_epu32(__mmask8 __U, __m256d __A) {
3915 // CHECK-LABEL: @test_mm256_maskz_cvtpd_epu32
3916 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
3917 return _mm256_maskz_cvtpd_epu32(__U,__A);
3918 }
test_mm_mask_cvtps_epi32(__m128i __W,__mmask8 __U,__m128 __A)3919 __m128i test_mm_mask_cvtps_epi32(__m128i __W, __mmask8 __U, __m128 __A) {
3920 // CHECK-LABEL: @test_mm_mask_cvtps_epi32
3921 // CHECK: @llvm.x86.sse2.cvtps2dq
3922 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3923 return _mm_mask_cvtps_epi32(__W,__U,__A);
3924 }
test_mm_maskz_cvtps_epi32(__mmask8 __U,__m128 __A)3925 __m128i test_mm_maskz_cvtps_epi32(__mmask8 __U, __m128 __A) {
3926 // CHECK-LABEL: @test_mm_maskz_cvtps_epi32
3927 // CHECK: @llvm.x86.sse2.cvtps2dq
3928 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
3929 return _mm_maskz_cvtps_epi32(__U,__A);
3930 }
test_mm256_mask_cvtps_epi32(__m256i __W,__mmask8 __U,__m256 __A)3931 __m256i test_mm256_mask_cvtps_epi32(__m256i __W, __mmask8 __U, __m256 __A) {
3932 // CHECK-LABEL: @test_mm256_mask_cvtps_epi32
3933 // CHECK: @llvm.x86.avx.cvt.ps2dq.256
3934 // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
3935 return _mm256_mask_cvtps_epi32(__W,__U,__A);
3936 }
test_mm256_maskz_cvtps_epi32(__mmask8 __U,__m256 __A)3937 __m256i test_mm256_maskz_cvtps_epi32(__mmask8 __U, __m256 __A) {
3938 // CHECK-LABEL: @test_mm256_maskz_cvtps_epi32
3939 // CHECK: @llvm.x86.avx.cvt.ps2dq.256
3940 // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
3941 return _mm256_maskz_cvtps_epi32(__U,__A);
3942 }
test_mm_mask_cvtps_pd(__m128d __W,__mmask8 __U,__m128 __A)3943 __m128d test_mm_mask_cvtps_pd(__m128d __W, __mmask8 __U, __m128 __A) {
3944 // CHECK-LABEL: @test_mm_mask_cvtps_pd
3945 // CHECK: fpext <2 x float> %{{.*}} to <2 x double>
3946 // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3947 return _mm_mask_cvtps_pd(__W,__U,__A);
3948 }
test_mm_maskz_cvtps_pd(__mmask8 __U,__m128 __A)3949 __m128d test_mm_maskz_cvtps_pd(__mmask8 __U, __m128 __A) {
3950 // CHECK-LABEL: @test_mm_maskz_cvtps_pd
3951 // CHECK: fpext <2 x float> %{{.*}} to <2 x double>
3952 // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
3953 return _mm_maskz_cvtps_pd(__U,__A);
3954 }
test_mm256_mask_cvtps_pd(__m256d __W,__mmask8 __U,__m128 __A)3955 __m256d test_mm256_mask_cvtps_pd(__m256d __W, __mmask8 __U, __m128 __A) {
3956 // CHECK-LABEL: @test_mm256_mask_cvtps_pd
3957 // CHECK: fpext <4 x float> %{{.*}} to <4 x double>
3958 // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3959 return _mm256_mask_cvtps_pd(__W,__U,__A);
3960 }
test_mm256_maskz_cvtps_pd(__mmask8 __U,__m128 __A)3961 __m256d test_mm256_maskz_cvtps_pd(__mmask8 __U, __m128 __A) {
3962 // CHECK-LABEL: @test_mm256_maskz_cvtps_pd
3963 // CHECK: fpext <4 x float> %{{.*}} to <4 x double>
3964 // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
3965 return _mm256_maskz_cvtps_pd(__U,__A);
3966 }
test_mm_cvtps_epu32(__m128 __A)3967 __m128i test_mm_cvtps_epu32(__m128 __A) {
3968 // CHECK-LABEL: @test_mm_cvtps_epu32
3969 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3970 return _mm_cvtps_epu32(__A);
3971 }
test_mm_mask_cvtps_epu32(__m128i __W,__mmask8 __U,__m128 __A)3972 __m128i test_mm_mask_cvtps_epu32(__m128i __W, __mmask8 __U, __m128 __A) {
3973 // CHECK-LABEL: @test_mm_mask_cvtps_epu32
3974 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3975 return _mm_mask_cvtps_epu32(__W,__U,__A);
3976 }
test_mm_maskz_cvtps_epu32(__mmask8 __U,__m128 __A)3977 __m128i test_mm_maskz_cvtps_epu32(__mmask8 __U, __m128 __A) {
3978 // CHECK-LABEL: @test_mm_maskz_cvtps_epu32
3979 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
3980 return _mm_maskz_cvtps_epu32(__U,__A);
3981 }
test_mm256_cvtps_epu32(__m256 __A)3982 __m256i test_mm256_cvtps_epu32(__m256 __A) {
3983 // CHECK-LABEL: @test_mm256_cvtps_epu32
3984 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3985 return _mm256_cvtps_epu32(__A);
3986 }
test_mm256_mask_cvtps_epu32(__m256i __W,__mmask8 __U,__m256 __A)3987 __m256i test_mm256_mask_cvtps_epu32(__m256i __W, __mmask8 __U, __m256 __A) {
3988 // CHECK-LABEL: @test_mm256_mask_cvtps_epu32
3989 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3990 return _mm256_mask_cvtps_epu32(__W,__U,__A);
3991 }
test_mm256_maskz_cvtps_epu32(__mmask8 __U,__m256 __A)3992 __m256i test_mm256_maskz_cvtps_epu32(__mmask8 __U, __m256 __A) {
3993 // CHECK-LABEL: @test_mm256_maskz_cvtps_epu32
3994 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
3995 return _mm256_maskz_cvtps_epu32(__U,__A);
3996 }
test_mm_mask_cvttpd_epi32(__m128i __W,__mmask8 __U,__m128d __A)3997 __m128i test_mm_mask_cvttpd_epi32(__m128i __W, __mmask8 __U, __m128d __A) {
3998 // CHECK-LABEL: @test_mm_mask_cvttpd_epi32
3999 // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.128
4000 return _mm_mask_cvttpd_epi32(__W,__U,__A);
4001 }
test_mm_maskz_cvttpd_epi32(__mmask8 __U,__m128d __A)4002 __m128i test_mm_maskz_cvttpd_epi32(__mmask8 __U, __m128d __A) {
4003 // CHECK-LABEL: @test_mm_maskz_cvttpd_epi32
4004 // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.128
4005 return _mm_maskz_cvttpd_epi32(__U,__A);
4006 }
test_mm256_mask_cvttpd_epi32(__m128i __W,__mmask8 __U,__m256d __A)4007 __m128i test_mm256_mask_cvttpd_epi32(__m128i __W, __mmask8 __U, __m256d __A) {
4008 // CHECK-LABEL: @test_mm256_mask_cvttpd_epi32
4009 // CHECK: @llvm.x86.avx.cvtt.pd2dq.256
4010 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
4011 return _mm256_mask_cvttpd_epi32(__W,__U,__A);
4012 }
test_mm256_maskz_cvttpd_epi32(__mmask8 __U,__m256d __A)4013 __m128i test_mm256_maskz_cvttpd_epi32(__mmask8 __U, __m256d __A) {
4014 // CHECK-LABEL: @test_mm256_maskz_cvttpd_epi32
4015 // CHECK: @llvm.x86.avx.cvtt.pd2dq.256
4016 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
4017 return _mm256_maskz_cvttpd_epi32(__U,__A);
4018 }
test_mm_cvttpd_epu32(__m128d __A)4019 __m128i test_mm_cvttpd_epu32(__m128d __A) {
4020 // CHECK-LABEL: @test_mm_cvttpd_epu32
4021 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
4022 return _mm_cvttpd_epu32(__A);
4023 }
test_mm_mask_cvttpd_epu32(__m128i __W,__mmask8 __U,__m128d __A)4024 __m128i test_mm_mask_cvttpd_epu32(__m128i __W, __mmask8 __U, __m128d __A) {
4025 // CHECK-LABEL: @test_mm_mask_cvttpd_epu32
4026 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
4027 return _mm_mask_cvttpd_epu32(__W,__U,__A);
4028 }
test_mm_maskz_cvttpd_epu32(__mmask8 __U,__m128d __A)4029 __m128i test_mm_maskz_cvttpd_epu32(__mmask8 __U, __m128d __A) {
4030 // CHECK-LABEL: @test_mm_maskz_cvttpd_epu32
4031 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
4032 return _mm_maskz_cvttpd_epu32(__U,__A);
4033 }
test_mm256_cvttpd_epu32(__m256d __A)4034 __m128i test_mm256_cvttpd_epu32(__m256d __A) {
4035 // CHECK-LABEL: @test_mm256_cvttpd_epu32
4036 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
4037 return _mm256_cvttpd_epu32(__A);
4038 }
test_mm256_mask_cvttpd_epu32(__m128i __W,__mmask8 __U,__m256d __A)4039 __m128i test_mm256_mask_cvttpd_epu32(__m128i __W, __mmask8 __U, __m256d __A) {
4040 // CHECK-LABEL: @test_mm256_mask_cvttpd_epu32
4041 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
4042 return _mm256_mask_cvttpd_epu32(__W,__U,__A);
4043 }
test_mm256_maskz_cvttpd_epu32(__mmask8 __U,__m256d __A)4044 __m128i test_mm256_maskz_cvttpd_epu32(__mmask8 __U, __m256d __A) {
4045 // CHECK-LABEL: @test_mm256_maskz_cvttpd_epu32
4046 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
4047 return _mm256_maskz_cvttpd_epu32(__U,__A);
4048 }
test_mm_mask_cvttps_epi32(__m128i __W,__mmask8 __U,__m128 __A)4049 __m128i test_mm_mask_cvttps_epi32(__m128i __W, __mmask8 __U, __m128 __A) {
4050 // CHECK-LABEL: @test_mm_mask_cvttps_epi32
4051 // CHECK: @llvm.x86.sse2.cvttps2dq
4052 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
4053 return _mm_mask_cvttps_epi32(__W,__U,__A);
4054 }
test_mm_maskz_cvttps_epi32(__mmask8 __U,__m128 __A)4055 __m128i test_mm_maskz_cvttps_epi32(__mmask8 __U, __m128 __A) {
4056 // CHECK-LABEL: @test_mm_maskz_cvttps_epi32
4057 // CHECK: @llvm.x86.sse2.cvttps2dq
4058 // CHECK: select <4 x i1> {{.*}}, <4 x i32> {{.*}}, <4 x i32> {{.*}}
4059 return _mm_maskz_cvttps_epi32(__U,__A);
4060 }
test_mm256_mask_cvttps_epi32(__m256i __W,__mmask8 __U,__m256 __A)4061 __m256i test_mm256_mask_cvttps_epi32(__m256i __W, __mmask8 __U, __m256 __A) {
4062 // CHECK-LABEL: @test_mm256_mask_cvttps_epi32
4063 // CHECK: @llvm.x86.avx.cvtt.ps2dq.256
4064 // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
4065 return _mm256_mask_cvttps_epi32(__W,__U,__A);
4066 }
test_mm256_maskz_cvttps_epi32(__mmask8 __U,__m256 __A)4067 __m256i test_mm256_maskz_cvttps_epi32(__mmask8 __U, __m256 __A) {
4068 // CHECK-LABEL: @test_mm256_maskz_cvttps_epi32
4069 // CHECK: @llvm.x86.avx.cvtt.ps2dq.256
4070 // CHECK: select <8 x i1> {{.*}}, <8 x i32> {{.*}}, <8 x i32> {{.*}}
4071 return _mm256_maskz_cvttps_epi32(__U,__A);
4072 }
test_mm_cvttps_epu32(__m128 __A)4073 __m128i test_mm_cvttps_epu32(__m128 __A) {
4074 // CHECK-LABEL: @test_mm_cvttps_epu32
4075 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
4076 return _mm_cvttps_epu32(__A);
4077 }
test_mm_mask_cvttps_epu32(__m128i __W,__mmask8 __U,__m128 __A)4078 __m128i test_mm_mask_cvttps_epu32(__m128i __W, __mmask8 __U, __m128 __A) {
4079 // CHECK-LABEL: @test_mm_mask_cvttps_epu32
4080 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
4081 return _mm_mask_cvttps_epu32(__W,__U,__A);
4082 }
test_mm_maskz_cvttps_epu32(__mmask8 __U,__m128 __A)4083 __m128i test_mm_maskz_cvttps_epu32(__mmask8 __U, __m128 __A) {
4084 // CHECK-LABEL: @test_mm_maskz_cvttps_epu32
4085 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
4086 return _mm_maskz_cvttps_epu32(__U,__A);
4087 }
test_mm256_cvttps_epu32(__m256 __A)4088 __m256i test_mm256_cvttps_epu32(__m256 __A) {
4089 // CHECK-LABEL: @test_mm256_cvttps_epu32
4090 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
4091 return _mm256_cvttps_epu32(__A);
4092 }
test_mm256_mask_cvttps_epu32(__m256i __W,__mmask8 __U,__m256 __A)4093 __m256i test_mm256_mask_cvttps_epu32(__m256i __W, __mmask8 __U, __m256 __A) {
4094 // CHECK-LABEL: @test_mm256_mask_cvttps_epu32
4095 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
4096 return _mm256_mask_cvttps_epu32(__W,__U,__A);
4097 }
test_mm256_maskz_cvttps_epu32(__mmask8 __U,__m256 __A)4098 __m256i test_mm256_maskz_cvttps_epu32(__mmask8 __U, __m256 __A) {
4099 // CHECK-LABEL: @test_mm256_maskz_cvttps_epu32
4100 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
4101 return _mm256_maskz_cvttps_epu32(__U,__A);
4102 }
test_mm_cvtepu32_pd(__m128i __A)4103 __m128d test_mm_cvtepu32_pd(__m128i __A) {
4104 // CHECK-LABEL: @test_mm_cvtepu32_pd
4105 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
4106 // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
4107 return _mm_cvtepu32_pd(__A);
4108 }
test_mm_mask_cvtepu32_pd(__m128d __W,__mmask8 __U,__m128i __A)4109 __m128d test_mm_mask_cvtepu32_pd(__m128d __W, __mmask8 __U, __m128i __A) {
4110 // CHECK-LABEL: @test_mm_mask_cvtepu32_pd
4111 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
4112 // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
4113 // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
4114 return _mm_mask_cvtepu32_pd(__W,__U,__A);
4115 }
test_mm_maskz_cvtepu32_pd(__mmask8 __U,__m128i __A)4116 __m128d test_mm_maskz_cvtepu32_pd(__mmask8 __U, __m128i __A) {
4117 // CHECK-LABEL: @test_mm_maskz_cvtepu32_pd
4118 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i32> <i32 0, i32 1>
4119 // CHECK: uitofp <2 x i32> %{{.*}} to <2 x double>
4120 // CHECK: select <2 x i1> {{.*}}, <2 x double> {{.*}}, <2 x double> {{.*}}
4121 return _mm_maskz_cvtepu32_pd(__U,__A);
4122 }
test_mm256_cvtepu32_pd(__m128i __A)4123 __m256d test_mm256_cvtepu32_pd(__m128i __A) {
4124 // CHECK-LABEL: @test_mm256_cvtepu32_pd
4125 // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4126 return _mm256_cvtepu32_pd(__A);
4127 }
test_mm256_mask_cvtepu32_pd(__m256d __W,__mmask8 __U,__m128i __A)4128 __m256d test_mm256_mask_cvtepu32_pd(__m256d __W, __mmask8 __U, __m128i __A) {
4129 // CHECK-LABEL: @test_mm256_mask_cvtepu32_pd
4130 // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4131 // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
4132 return _mm256_mask_cvtepu32_pd(__W,__U,__A);
4133 }
test_mm256_maskz_cvtepu32_pd(__mmask8 __U,__m128i __A)4134 __m256d test_mm256_maskz_cvtepu32_pd(__mmask8 __U, __m128i __A) {
4135 // CHECK-LABEL: @test_mm256_maskz_cvtepu32_pd
4136 // CHECK: uitofp <4 x i32> %{{.*}} to <4 x double>
4137 // CHECK: select <4 x i1> {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}}
4138 return _mm256_maskz_cvtepu32_pd(__U,__A);
4139 }
test_mm_cvtepu32_ps(__m128i __A)4140 __m128 test_mm_cvtepu32_ps(__m128i __A) {
4141 // CHECK-LABEL: @test_mm_cvtepu32_ps
4142 // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4143 return _mm_cvtepu32_ps(__A);
4144 }
test_mm_mask_cvtepu32_ps(__m128 __W,__mmask8 __U,__m128i __A)4145 __m128 test_mm_mask_cvtepu32_ps(__m128 __W, __mmask8 __U, __m128i __A) {
4146 // CHECK-LABEL: @test_mm_mask_cvtepu32_ps
4147 // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4148 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4149 return _mm_mask_cvtepu32_ps(__W,__U,__A);
4150 }
test_mm_maskz_cvtepu32_ps(__mmask8 __U,__m128i __A)4151 __m128 test_mm_maskz_cvtepu32_ps(__mmask8 __U, __m128i __A) {
4152 // CHECK-LABEL: @test_mm_maskz_cvtepu32_ps
4153 // CHECK: uitofp <4 x i32> %{{.*}} to <4 x float>
4154 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4155 return _mm_maskz_cvtepu32_ps(__U,__A);
4156 }
test_mm256_cvtepu32_ps(__m256i __A)4157 __m256 test_mm256_cvtepu32_ps(__m256i __A) {
4158 // CHECK-LABEL: @test_mm256_cvtepu32_ps
4159 // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4160 return _mm256_cvtepu32_ps(__A);
4161 }
test_mm256_mask_cvtepu32_ps(__m256 __W,__mmask8 __U,__m256i __A)4162 __m256 test_mm256_mask_cvtepu32_ps(__m256 __W, __mmask8 __U, __m256i __A) {
4163 // CHECK-LABEL: @test_mm256_mask_cvtepu32_ps
4164 // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4165 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4166 return _mm256_mask_cvtepu32_ps(__W,__U,__A);
4167 }
test_mm256_maskz_cvtepu32_ps(__mmask8 __U,__m256i __A)4168 __m256 test_mm256_maskz_cvtepu32_ps(__mmask8 __U, __m256i __A) {
4169 // CHECK-LABEL: @test_mm256_maskz_cvtepu32_ps
4170 // CHECK: uitofp <8 x i32> %{{.*}} to <8 x float>
4171 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4172 return _mm256_maskz_cvtepu32_ps(__U,__A);
4173 }
test_mm_mask_div_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4174 __m128d test_mm_mask_div_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4175 // CHECK-LABEL: @test_mm_mask_div_pd
4176 // CHECK: fdiv <2 x double> %{{.*}}, %{{.*}}
4177 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4178 return _mm_mask_div_pd(__W,__U,__A,__B);
4179 }
test_mm_maskz_div_pd(__mmask8 __U,__m128d __A,__m128d __B)4180 __m128d test_mm_maskz_div_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4181 // CHECK-LABEL: @test_mm_maskz_div_pd
4182 // CHECK: fdiv <2 x double> %{{.*}}, %{{.*}}
4183 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4184 return _mm_maskz_div_pd(__U,__A,__B);
4185 }
test_mm256_mask_div_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4186 __m256d test_mm256_mask_div_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4187 // CHECK-LABEL: @test_mm256_mask_div_pd
4188 // CHECK: fdiv <4 x double> %{{.*}}, %{{.*}}
4189 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4190 return _mm256_mask_div_pd(__W,__U,__A,__B);
4191 }
test_mm256_maskz_div_pd(__mmask8 __U,__m256d __A,__m256d __B)4192 __m256d test_mm256_maskz_div_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4193 // CHECK-LABEL: @test_mm256_maskz_div_pd
4194 // CHECK: fdiv <4 x double> %{{.*}}, %{{.*}}
4195 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4196 return _mm256_maskz_div_pd(__U,__A,__B);
4197 }
test_mm_mask_div_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4198 __m128 test_mm_mask_div_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4199 // CHECK-LABEL: @test_mm_mask_div_ps
4200 // CHECK: fdiv <4 x float> %{{.*}}, %{{.*}}
4201 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4202 return _mm_mask_div_ps(__W,__U,__A,__B);
4203 }
test_mm_maskz_div_ps(__mmask8 __U,__m128 __A,__m128 __B)4204 __m128 test_mm_maskz_div_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4205 // CHECK-LABEL: @test_mm_maskz_div_ps
4206 // CHECK: fdiv <4 x float> %{{.*}}, %{{.*}}
4207 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4208 return _mm_maskz_div_ps(__U,__A,__B);
4209 }
test_mm256_mask_div_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4210 __m256 test_mm256_mask_div_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4211 // CHECK-LABEL: @test_mm256_mask_div_ps
4212 // CHECK: fdiv <8 x float> %{{.*}}, %{{.*}}
4213 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4214 return _mm256_mask_div_ps(__W,__U,__A,__B);
4215 }
test_mm256_maskz_div_ps(__mmask8 __U,__m256 __A,__m256 __B)4216 __m256 test_mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4217 // CHECK-LABEL: @test_mm256_maskz_div_ps
4218 // CHECK: fdiv <8 x float> %{{.*}}, %{{.*}}
4219 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4220 return _mm256_maskz_div_ps(__U,__A,__B);
4221 }
test_mm_mask_expand_pd(__m128d __W,__mmask8 __U,__m128d __A)4222 __m128d test_mm_mask_expand_pd(__m128d __W, __mmask8 __U, __m128d __A) {
4223 // CHECK-LABEL: @test_mm_mask_expand_pd
4224 // CHECK: @llvm.x86.avx512.mask.expand
4225 return _mm_mask_expand_pd(__W,__U,__A);
4226 }
test_mm_maskz_expand_pd(__mmask8 __U,__m128d __A)4227 __m128d test_mm_maskz_expand_pd(__mmask8 __U, __m128d __A) {
4228 // CHECK-LABEL: @test_mm_maskz_expand_pd
4229 // CHECK: @llvm.x86.avx512.mask.expand
4230 return _mm_maskz_expand_pd(__U,__A);
4231 }
test_mm256_mask_expand_pd(__m256d __W,__mmask8 __U,__m256d __A)4232 __m256d test_mm256_mask_expand_pd(__m256d __W, __mmask8 __U, __m256d __A) {
4233 // CHECK-LABEL: @test_mm256_mask_expand_pd
4234 // CHECK: @llvm.x86.avx512.mask.expand
4235 return _mm256_mask_expand_pd(__W,__U,__A);
4236 }
test_mm256_maskz_expand_pd(__mmask8 __U,__m256d __A)4237 __m256d test_mm256_maskz_expand_pd(__mmask8 __U, __m256d __A) {
4238 // CHECK-LABEL: @test_mm256_maskz_expand_pd
4239 // CHECK: @llvm.x86.avx512.mask.expand
4240 return _mm256_maskz_expand_pd(__U,__A);
4241 }
test_mm_mask_expand_epi64(__m128i __W,__mmask8 __U,__m128i __A)4242 __m128i test_mm_mask_expand_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
4243 // CHECK-LABEL: @test_mm_mask_expand_epi64
4244 // CHECK: @llvm.x86.avx512.mask.expand
4245 return _mm_mask_expand_epi64(__W,__U,__A);
4246 }
test_mm_maskz_expand_epi64(__mmask8 __U,__m128i __A)4247 __m128i test_mm_maskz_expand_epi64(__mmask8 __U, __m128i __A) {
4248 // CHECK-LABEL: @test_mm_maskz_expand_epi64
4249 // CHECK: @llvm.x86.avx512.mask.expand
4250 return _mm_maskz_expand_epi64(__U,__A);
4251 }
test_mm256_mask_expand_epi64(__m256i __W,__mmask8 __U,__m256i __A)4252 __m256i test_mm256_mask_expand_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
4253 // CHECK-LABEL: @test_mm256_mask_expand_epi64
4254 // CHECK: @llvm.x86.avx512.mask.expand
4255 return _mm256_mask_expand_epi64(__W,__U,__A);
4256 }
test_mm256_maskz_expand_epi64(__mmask8 __U,__m256i __A)4257 __m256i test_mm256_maskz_expand_epi64(__mmask8 __U, __m256i __A) {
4258 // CHECK-LABEL: @test_mm256_maskz_expand_epi64
4259 // CHECK: @llvm.x86.avx512.mask.expand
4260 return _mm256_maskz_expand_epi64(__U,__A);
4261 }
test_mm_mask_expandloadu_pd(__m128d __W,__mmask8 __U,void const * __P)4262 __m128d test_mm_mask_expandloadu_pd(__m128d __W, __mmask8 __U, void const *__P) {
4263 // CHECK-LABEL: @test_mm_mask_expandloadu_pd
4264 // CHECK: @llvm.masked.expandload.v2f64(double* %{{.*}}, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
4265 return _mm_mask_expandloadu_pd(__W,__U,__P);
4266 }
test_mm_maskz_expandloadu_pd(__mmask8 __U,void const * __P)4267 __m128d test_mm_maskz_expandloadu_pd(__mmask8 __U, void const *__P) {
4268 // CHECK-LABEL: @test_mm_maskz_expandloadu_pd
4269 // CHECK: @llvm.masked.expandload.v2f64(double* %{{.*}}, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
4270 return _mm_maskz_expandloadu_pd(__U,__P);
4271 }
test_mm256_mask_expandloadu_pd(__m256d __W,__mmask8 __U,void const * __P)4272 __m256d test_mm256_mask_expandloadu_pd(__m256d __W, __mmask8 __U, void const *__P) {
4273 // CHECK-LABEL: @test_mm256_mask_expandloadu_pd
4274 // CHECK: @llvm.masked.expandload.v4f64(double* %{{.*}}, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
4275 return _mm256_mask_expandloadu_pd(__W,__U,__P);
4276 }
test_mm256_maskz_expandloadu_pd(__mmask8 __U,void const * __P)4277 __m256d test_mm256_maskz_expandloadu_pd(__mmask8 __U, void const *__P) {
4278 // CHECK-LABEL: @test_mm256_maskz_expandloadu_pd
4279 // CHECK: @llvm.masked.expandload.v4f64(double* %{{.*}}, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
4280 return _mm256_maskz_expandloadu_pd(__U,__P);
4281 }
test_mm_mask_expandloadu_epi64(__m128i __W,__mmask8 __U,void const * __P)4282 __m128i test_mm_mask_expandloadu_epi64(__m128i __W, __mmask8 __U, void const *__P) {
4283 // CHECK-LABEL: @test_mm_mask_expandloadu_epi64
4284 // CHECK: @llvm.masked.expandload.v2i64(i64* %{{.*}}, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
4285 return _mm_mask_expandloadu_epi64(__W,__U,__P);
4286 }
test_mm_maskz_expandloadu_epi64(__mmask8 __U,void const * __P)4287 __m128i test_mm_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) {
4288 // CHECK-LABEL: @test_mm_maskz_expandloadu_epi64
4289 // CHECK: @llvm.masked.expandload.v2i64(i64* %{{.*}}, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
4290 return _mm_maskz_expandloadu_epi64(__U,__P);
4291 }
test_mm256_mask_expandloadu_epi64(__m256i __W,__mmask8 __U,void const * __P)4292 __m256i test_mm256_mask_expandloadu_epi64(__m256i __W, __mmask8 __U, void const *__P) {
4293 // CHECK-LABEL: @test_mm256_mask_expandloadu_epi64
4294 // CHECK: @llvm.masked.expandload.v4i64(i64* %{{.*}}, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
4295 return _mm256_mask_expandloadu_epi64(__W,__U,__P);
4296 }
test_mm256_maskz_expandloadu_epi64(__mmask8 __U,void const * __P)4297 __m256i test_mm256_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) {
4298 // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi64
4299 // CHECK: @llvm.masked.expandload.v4i64(i64* %{{.*}}, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
4300 return _mm256_maskz_expandloadu_epi64(__U,__P);
4301 }
test_mm_mask_expandloadu_ps(__m128 __W,__mmask8 __U,void const * __P)4302 __m128 test_mm_mask_expandloadu_ps(__m128 __W, __mmask8 __U, void const *__P) {
4303 // CHECK-LABEL: @test_mm_mask_expandloadu_ps
4304 // CHECK: @llvm.masked.expandload.v4f32(float* %{{.*}}, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
4305 return _mm_mask_expandloadu_ps(__W,__U,__P);
4306 }
test_mm_maskz_expandloadu_ps(__mmask8 __U,void const * __P)4307 __m128 test_mm_maskz_expandloadu_ps(__mmask8 __U, void const *__P) {
4308 // CHECK-LABEL: @test_mm_maskz_expandloadu_ps
4309 // CHECK: @llvm.masked.expandload.v4f32(float* %{{.*}}, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
4310 return _mm_maskz_expandloadu_ps(__U,__P);
4311 }
test_mm256_mask_expandloadu_ps(__m256 __W,__mmask8 __U,void const * __P)4312 __m256 test_mm256_mask_expandloadu_ps(__m256 __W, __mmask8 __U, void const *__P) {
4313 // CHECK-LABEL: @test_mm256_mask_expandloadu_ps
4314 // CHECK: @llvm.masked.expandload.v8f32(float* %{{.*}}, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
4315 return _mm256_mask_expandloadu_ps(__W,__U,__P);
4316 }
test_mm256_maskz_expandloadu_ps(__mmask8 __U,void const * __P)4317 __m256 test_mm256_maskz_expandloadu_ps(__mmask8 __U, void const *__P) {
4318 // CHECK-LABEL: @test_mm256_maskz_expandloadu_ps
4319 // CHECK: @llvm.masked.expandload.v8f32(float* %{{.*}}, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
4320 return _mm256_maskz_expandloadu_ps(__U,__P);
4321 }
test_mm_mask_expandloadu_epi32(__m128i __W,__mmask8 __U,void const * __P)4322 __m128i test_mm_mask_expandloadu_epi32(__m128i __W, __mmask8 __U, void const *__P) {
4323 // CHECK-LABEL: @test_mm_mask_expandloadu_epi32
4324 // CHECK: @llvm.masked.expandload.v4i32(i32* %{{.*}}, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
4325 return _mm_mask_expandloadu_epi32(__W,__U,__P);
4326 }
test_mm_maskz_expandloadu_epi32(__mmask8 __U,void const * __P)4327 __m128i test_mm_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) {
4328 // CHECK-LABEL: @test_mm_maskz_expandloadu_epi32
4329 // CHECK: @llvm.masked.expandload.v4i32(i32* %{{.*}}, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
4330 return _mm_maskz_expandloadu_epi32(__U,__P);
4331 }
test_mm256_mask_expandloadu_epi32(__m256i __W,__mmask8 __U,void const * __P)4332 __m256i test_mm256_mask_expandloadu_epi32(__m256i __W, __mmask8 __U, void const *__P) {
4333 // CHECK-LABEL: @test_mm256_mask_expandloadu_epi32
4334 // CHECK: @llvm.masked.expandload.v8i32(i32* %{{.*}}, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
4335 return _mm256_mask_expandloadu_epi32(__W,__U,__P);
4336 }
test_mm256_maskz_expandloadu_epi32(__mmask8 __U,void const * __P)4337 __m256i test_mm256_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) {
4338 // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi32
4339 // CHECK: @llvm.masked.expandload.v8i32(i32* %{{.*}}, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
4340 return _mm256_maskz_expandloadu_epi32(__U,__P);
4341 }
test_mm_mask_expand_ps(__m128 __W,__mmask8 __U,__m128 __A)4342 __m128 test_mm_mask_expand_ps(__m128 __W, __mmask8 __U, __m128 __A) {
4343 // CHECK-LABEL: @test_mm_mask_expand_ps
4344 // CHECK: @llvm.x86.avx512.mask.expand
4345 return _mm_mask_expand_ps(__W,__U,__A);
4346 }
test_mm_maskz_expand_ps(__mmask8 __U,__m128 __A)4347 __m128 test_mm_maskz_expand_ps(__mmask8 __U, __m128 __A) {
4348 // CHECK-LABEL: @test_mm_maskz_expand_ps
4349 // CHECK: @llvm.x86.avx512.mask.expand
4350 return _mm_maskz_expand_ps(__U,__A);
4351 }
test_mm256_mask_expand_ps(__m256 __W,__mmask8 __U,__m256 __A)4352 __m256 test_mm256_mask_expand_ps(__m256 __W, __mmask8 __U, __m256 __A) {
4353 // CHECK-LABEL: @test_mm256_mask_expand_ps
4354 // CHECK: @llvm.x86.avx512.mask.expand
4355 return _mm256_mask_expand_ps(__W,__U,__A);
4356 }
test_mm256_maskz_expand_ps(__mmask8 __U,__m256 __A)4357 __m256 test_mm256_maskz_expand_ps(__mmask8 __U, __m256 __A) {
4358 // CHECK-LABEL: @test_mm256_maskz_expand_ps
4359 // CHECK: @llvm.x86.avx512.mask.expand
4360 return _mm256_maskz_expand_ps(__U,__A);
4361 }
test_mm_mask_expand_epi32(__m128i __W,__mmask8 __U,__m128i __A)4362 __m128i test_mm_mask_expand_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
4363 // CHECK-LABEL: @test_mm_mask_expand_epi32
4364 // CHECK: @llvm.x86.avx512.mask.expand
4365 return _mm_mask_expand_epi32(__W,__U,__A);
4366 }
test_mm_maskz_expand_epi32(__mmask8 __U,__m128i __A)4367 __m128i test_mm_maskz_expand_epi32(__mmask8 __U, __m128i __A) {
4368 // CHECK-LABEL: @test_mm_maskz_expand_epi32
4369 // CHECK: @llvm.x86.avx512.mask.expand
4370 return _mm_maskz_expand_epi32(__U,__A);
4371 }
test_mm256_mask_expand_epi32(__m256i __W,__mmask8 __U,__m256i __A)4372 __m256i test_mm256_mask_expand_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
4373 // CHECK-LABEL: @test_mm256_mask_expand_epi32
4374 // CHECK: @llvm.x86.avx512.mask.expand
4375 return _mm256_mask_expand_epi32(__W,__U,__A);
4376 }
test_mm256_maskz_expand_epi32(__mmask8 __U,__m256i __A)4377 __m256i test_mm256_maskz_expand_epi32(__mmask8 __U, __m256i __A) {
4378 // CHECK-LABEL: @test_mm256_maskz_expand_epi32
4379 // CHECK: @llvm.x86.avx512.mask.expand
4380 return _mm256_maskz_expand_epi32(__U,__A);
4381 }
test_mm_getexp_pd(__m128d __A)4382 __m128d test_mm_getexp_pd(__m128d __A) {
4383 // CHECK-LABEL: @test_mm_getexp_pd
4384 // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4385 return _mm_getexp_pd(__A);
4386 }
test_mm_mask_getexp_pd(__m128d __W,__mmask8 __U,__m128d __A)4387 __m128d test_mm_mask_getexp_pd(__m128d __W, __mmask8 __U, __m128d __A) {
4388 // CHECK-LABEL: @test_mm_mask_getexp_pd
4389 // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4390 return _mm_mask_getexp_pd(__W,__U,__A);
4391 }
test_mm_maskz_getexp_pd(__mmask8 __U,__m128d __A)4392 __m128d test_mm_maskz_getexp_pd(__mmask8 __U, __m128d __A) {
4393 // CHECK-LABEL: @test_mm_maskz_getexp_pd
4394 // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
4395 return _mm_maskz_getexp_pd(__U,__A);
4396 }
test_mm256_getexp_pd(__m256d __A)4397 __m256d test_mm256_getexp_pd(__m256d __A) {
4398 // CHECK-LABEL: @test_mm256_getexp_pd
4399 // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4400 return _mm256_getexp_pd(__A);
4401 }
test_mm256_mask_getexp_pd(__m256d __W,__mmask8 __U,__m256d __A)4402 __m256d test_mm256_mask_getexp_pd(__m256d __W, __mmask8 __U, __m256d __A) {
4403 // CHECK-LABEL: @test_mm256_mask_getexp_pd
4404 // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4405 return _mm256_mask_getexp_pd(__W,__U,__A);
4406 }
test_mm256_maskz_getexp_pd(__mmask8 __U,__m256d __A)4407 __m256d test_mm256_maskz_getexp_pd(__mmask8 __U, __m256d __A) {
4408 // CHECK-LABEL: @test_mm256_maskz_getexp_pd
4409 // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
4410 return _mm256_maskz_getexp_pd(__U,__A);
4411 }
test_mm_getexp_ps(__m128 __A)4412 __m128 test_mm_getexp_ps(__m128 __A) {
4413 // CHECK-LABEL: @test_mm_getexp_ps
4414 // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4415 return _mm_getexp_ps(__A);
4416 }
test_mm_mask_getexp_ps(__m128 __W,__mmask8 __U,__m128 __A)4417 __m128 test_mm_mask_getexp_ps(__m128 __W, __mmask8 __U, __m128 __A) {
4418 // CHECK-LABEL: @test_mm_mask_getexp_ps
4419 // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4420 return _mm_mask_getexp_ps(__W,__U,__A);
4421 }
test_mm_maskz_getexp_ps(__mmask8 __U,__m128 __A)4422 __m128 test_mm_maskz_getexp_ps(__mmask8 __U, __m128 __A) {
4423 // CHECK-LABEL: @test_mm_maskz_getexp_ps
4424 // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
4425 return _mm_maskz_getexp_ps(__U,__A);
4426 }
test_mm256_getexp_ps(__m256 __A)4427 __m256 test_mm256_getexp_ps(__m256 __A) {
4428 // CHECK-LABEL: @test_mm256_getexp_ps
4429 // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4430 return _mm256_getexp_ps(__A);
4431 }
test_mm256_mask_getexp_ps(__m256 __W,__mmask8 __U,__m256 __A)4432 __m256 test_mm256_mask_getexp_ps(__m256 __W, __mmask8 __U, __m256 __A) {
4433 // CHECK-LABEL: @test_mm256_mask_getexp_ps
4434 // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4435 return _mm256_mask_getexp_ps(__W,__U,__A);
4436 }
test_mm256_maskz_getexp_ps(__mmask8 __U,__m256 __A)4437 __m256 test_mm256_maskz_getexp_ps(__mmask8 __U, __m256 __A) {
4438 // CHECK-LABEL: @test_mm256_maskz_getexp_ps
4439 // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
4440 return _mm256_maskz_getexp_ps(__U,__A);
4441 }
test_mm_mask_max_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4442 __m128d test_mm_mask_max_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4443 // CHECK-LABEL: @test_mm_mask_max_pd
4444 // CHECK: @llvm.x86.sse2.max.pd
4445 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4446 return _mm_mask_max_pd(__W,__U,__A,__B);
4447 }
test_mm_maskz_max_pd(__mmask8 __U,__m128d __A,__m128d __B)4448 __m128d test_mm_maskz_max_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4449 // CHECK-LABEL: @test_mm_maskz_max_pd
4450 // CHECK: @llvm.x86.sse2.max.pd
4451 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4452 return _mm_maskz_max_pd(__U,__A,__B);
4453 }
test_mm256_mask_max_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4454 __m256d test_mm256_mask_max_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4455 // CHECK-LABEL: @test_mm256_mask_max_pd
4456 // CHECK: @llvm.x86.avx.max.pd.256
4457 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4458 return _mm256_mask_max_pd(__W,__U,__A,__B);
4459 }
test_mm256_maskz_max_pd(__mmask8 __U,__m256d __A,__m256d __B)4460 __m256d test_mm256_maskz_max_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4461 // CHECK-LABEL: @test_mm256_maskz_max_pd
4462 // CHECK: @llvm.x86.avx.max.pd.256
4463 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4464 return _mm256_maskz_max_pd(__U,__A,__B);
4465 }
test_mm_mask_max_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4466 __m128 test_mm_mask_max_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4467 // CHECK-LABEL: @test_mm_mask_max_ps
4468 // CHECK: @llvm.x86.sse.max.ps
4469 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4470 return _mm_mask_max_ps(__W,__U,__A,__B);
4471 }
test_mm_maskz_max_ps(__mmask8 __U,__m128 __A,__m128 __B)4472 __m128 test_mm_maskz_max_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4473 // CHECK-LABEL: @test_mm_maskz_max_ps
4474 // CHECK: @llvm.x86.sse.max.ps
4475 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4476 return _mm_maskz_max_ps(__U,__A,__B);
4477 }
test_mm256_mask_max_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4478 __m256 test_mm256_mask_max_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4479 // CHECK-LABEL: @test_mm256_mask_max_ps
4480 // CHECK: @llvm.x86.avx.max.ps.256
4481 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4482 return _mm256_mask_max_ps(__W,__U,__A,__B);
4483 }
test_mm256_maskz_max_ps(__mmask8 __U,__m256 __A,__m256 __B)4484 __m256 test_mm256_maskz_max_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4485 // CHECK-LABEL: @test_mm256_maskz_max_ps
4486 // CHECK: @llvm.x86.avx.max.ps.256
4487 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4488 return _mm256_maskz_max_ps(__U,__A,__B);
4489 }
test_mm_mask_min_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4490 __m128d test_mm_mask_min_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4491 // CHECK-LABEL: @test_mm_mask_min_pd
4492 // CHECK: @llvm.x86.sse2.min.pd
4493 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4494 return _mm_mask_min_pd(__W,__U,__A,__B);
4495 }
test_mm_maskz_min_pd(__mmask8 __U,__m128d __A,__m128d __B)4496 __m128d test_mm_maskz_min_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4497 // CHECK-LABEL: @test_mm_maskz_min_pd
4498 // CHECK: @llvm.x86.sse2.min.pd
4499 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4500 return _mm_maskz_min_pd(__U,__A,__B);
4501 }
test_mm256_mask_min_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4502 __m256d test_mm256_mask_min_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4503 // CHECK-LABEL: @test_mm256_mask_min_pd
4504 // CHECK: @llvm.x86.avx.min.pd.256
4505 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4506 return _mm256_mask_min_pd(__W,__U,__A,__B);
4507 }
test_mm256_maskz_min_pd(__mmask8 __U,__m256d __A,__m256d __B)4508 __m256d test_mm256_maskz_min_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4509 // CHECK-LABEL: @test_mm256_maskz_min_pd
4510 // CHECK: @llvm.x86.avx.min.pd.256
4511 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4512 return _mm256_maskz_min_pd(__U,__A,__B);
4513 }
test_mm_mask_min_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4514 __m128 test_mm_mask_min_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4515 // CHECK-LABEL: @test_mm_mask_min_ps
4516 // CHECK: @llvm.x86.sse.min.ps
4517 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4518 return _mm_mask_min_ps(__W,__U,__A,__B);
4519 }
test_mm_maskz_min_ps(__mmask8 __U,__m128 __A,__m128 __B)4520 __m128 test_mm_maskz_min_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4521 // CHECK-LABEL: @test_mm_maskz_min_ps
4522 // CHECK: @llvm.x86.sse.min.ps
4523 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4524 return _mm_maskz_min_ps(__U,__A,__B);
4525 }
test_mm256_mask_min_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4526 __m256 test_mm256_mask_min_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4527 // CHECK-LABEL: @test_mm256_mask_min_ps
4528 // CHECK: @llvm.x86.avx.min.ps.256
4529 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4530 return _mm256_mask_min_ps(__W,__U,__A,__B);
4531 }
test_mm256_maskz_min_ps(__mmask8 __U,__m256 __A,__m256 __B)4532 __m256 test_mm256_maskz_min_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4533 // CHECK-LABEL: @test_mm256_maskz_min_ps
4534 // CHECK: @llvm.x86.avx.min.ps.256
4535 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4536 return _mm256_maskz_min_ps(__U,__A,__B);
4537 }
test_mm_mask_mul_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)4538 __m128d test_mm_mask_mul_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4539 // CHECK-LABEL: @test_mm_mask_mul_pd
4540 // CHECK: fmul <2 x double> %{{.*}}, %{{.*}}
4541 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4542 return _mm_mask_mul_pd(__W,__U,__A,__B);
4543 }
test_mm_maskz_mul_pd(__mmask8 __U,__m128d __A,__m128d __B)4544 __m128d test_mm_maskz_mul_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4545 // CHECK-LABEL: @test_mm_maskz_mul_pd
4546 // CHECK: fmul <2 x double> %{{.*}}, %{{.*}}
4547 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
4548 return _mm_maskz_mul_pd(__U,__A,__B);
4549 }
test_mm256_mask_mul_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)4550 __m256d test_mm256_mask_mul_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4551 // CHECK-LABEL: @test_mm256_mask_mul_pd
4552 // CHECK: fmul <4 x double> %{{.*}}, %{{.*}}
4553 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4554 return _mm256_mask_mul_pd(__W,__U,__A,__B);
4555 }
test_mm256_maskz_mul_pd(__mmask8 __U,__m256d __A,__m256d __B)4556 __m256d test_mm256_maskz_mul_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4557 // CHECK-LABEL: @test_mm256_maskz_mul_pd
4558 // CHECK: fmul <4 x double> %{{.*}}, %{{.*}}
4559 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
4560 return _mm256_maskz_mul_pd(__U,__A,__B);
4561 }
test_mm_mask_mul_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)4562 __m128 test_mm_mask_mul_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4563 // CHECK-LABEL: @test_mm_mask_mul_ps
4564 // CHECK: fmul <4 x float> %{{.*}}, %{{.*}}
4565 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4566 return _mm_mask_mul_ps(__W,__U,__A,__B);
4567 }
test_mm_maskz_mul_ps(__mmask8 __U,__m128 __A,__m128 __B)4568 __m128 test_mm_maskz_mul_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4569 // CHECK-LABEL: @test_mm_maskz_mul_ps
4570 // CHECK: fmul <4 x float> %{{.*}}, %{{.*}}
4571 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
4572 return _mm_maskz_mul_ps(__U,__A,__B);
4573 }
test_mm256_mask_mul_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)4574 __m256 test_mm256_mask_mul_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4575 // CHECK-LABEL: @test_mm256_mask_mul_ps
4576 // CHECK: fmul <8 x float> %{{.*}}, %{{.*}}
4577 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4578 return _mm256_mask_mul_ps(__W,__U,__A,__B);
4579 }
test_mm256_maskz_mul_ps(__mmask8 __U,__m256 __A,__m256 __B)4580 __m256 test_mm256_maskz_mul_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4581 // CHECK-LABEL: @test_mm256_maskz_mul_ps
4582 // CHECK: fmul <8 x float> %{{.*}}, %{{.*}}
4583 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
4584 return _mm256_maskz_mul_ps(__U,__A,__B);
4585 }
test_mm_mask_abs_epi32(__m128i __W,__mmask8 __U,__m128i __A)4586 __m128i test_mm_mask_abs_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
4587 // CHECK-LABEL: @test_mm_mask_abs_epi32
4588 // CHECK: [[SUB:%.*]] = sub <4 x i32> zeroinitializer, [[A:%.*]]
4589 // CHECK: [[CMP:%.*]] = icmp sgt <4 x i32> [[A]], zeroinitializer
4590 // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[A]], <4 x i32> [[SUB]]
4591 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[SEL]] to <2 x i64>
4592 // CHECK: [[SEL:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4593 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> [[SEL]], <4 x i32> %{{.*}}
4594 return _mm_mask_abs_epi32(__W,__U,__A);
4595 }
test_mm_maskz_abs_epi32(__mmask8 __U,__m128i __A)4596 __m128i test_mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) {
4597 // CHECK-LABEL: @test_mm_maskz_abs_epi32
4598 // CHECK: [[SUB:%.*]] = sub <4 x i32> zeroinitializer, [[A:%.*]]
4599 // CHECK: [[CMP:%.*]] = icmp sgt <4 x i32> [[A]], zeroinitializer
4600 // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[A]], <4 x i32> [[SUB]]
4601 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[SEL]] to <2 x i64>
4602 // CHECK: [[SEL:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4603 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> [[SEL]], <4 x i32> %{{.*}}
4604 return _mm_maskz_abs_epi32(__U,__A);
4605 }
test_mm256_mask_abs_epi32(__m256i __W,__mmask8 __U,__m256i __A)4606 __m256i test_mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
4607 // CHECK-LABEL: @test_mm256_mask_abs_epi32
4608 // CHECK: [[SUB:%.*]] = sub <8 x i32> zeroinitializer, [[A:%.*]]
4609 // CHECK: [[CMP:%.*]] = icmp sgt <8 x i32> [[A]], zeroinitializer
4610 // CHECK: [[SEL:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[A]], <8 x i32> [[SUB]]
4611 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[SEL]] to <4 x i64>
4612 // CHECK: [[SEL:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4613 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> [[SEL]], <8 x i32> %{{.*}}
4614 return _mm256_mask_abs_epi32(__W,__U,__A);
4615 }
test_mm256_maskz_abs_epi32(__mmask8 __U,__m256i __A)4616 __m256i test_mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) {
4617 // CHECK-LABEL: @test_mm256_maskz_abs_epi32
4618 // CHECK: [[SUB:%.*]] = sub <8 x i32> zeroinitializer, [[A:%.*]]
4619 // CHECK: [[CMP:%.*]] = icmp sgt <8 x i32> [[A]], zeroinitializer
4620 // CHECK: [[SEL:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[A]], <8 x i32> [[SUB]]
4621 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[SEL]] to <4 x i64>
4622 // CHECK: [[SEL:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4623 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> [[SEL]], <8 x i32> %{{.*}}
4624 return _mm256_maskz_abs_epi32(__U,__A);
4625 }
test_mm_abs_epi64(__m128i __A)4626 __m128i test_mm_abs_epi64(__m128i __A) {
4627 // CHECK-LABEL: @test_mm_abs_epi64
4628 // CHECK: [[SUB:%.*]] = sub <2 x i64> zeroinitializer, [[A:%.*]]
4629 // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[A]], zeroinitializer
4630 // CHECK: select <2 x i1> [[CMP]], <2 x i64> [[A]], <2 x i64> [[SUB]]
4631
4632 return _mm_abs_epi64(__A);
4633 }
test_mm_mask_abs_epi64(__m128i __W,__mmask8 __U,__m128i __A)4634 __m128i test_mm_mask_abs_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
4635 // CHECK-LABEL: @test_mm_mask_abs_epi64
4636 // CHECK: [[SUB:%.*]] = sub <2 x i64> zeroinitializer, [[A:%.*]]
4637 // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[A]], zeroinitializer
4638 // CHECK: [[SEL:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[A]], <2 x i64> [[SUB]]
4639 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> [[SEL]], <2 x i64> %{{.*}}
4640
4641 return _mm_mask_abs_epi64(__W,__U,__A);
4642 }
test_mm_maskz_abs_epi64(__mmask8 __U,__m128i __A)4643 __m128i test_mm_maskz_abs_epi64(__mmask8 __U, __m128i __A) {
4644 // CHECK-LABEL: @test_mm_maskz_abs_epi64
4645 // CHECK: [[SUB:%.*]] = sub <2 x i64> zeroinitializer, [[A:%.*]]
4646 // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[A]], zeroinitializer
4647 // CHECK: [[SEL:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[A]], <2 x i64> [[SUB]]
4648 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> [[SEL]], <2 x i64> %{{.*}}
4649 return _mm_maskz_abs_epi64(__U,__A);
4650 }
test_mm256_abs_epi64(__m256i __A)4651 __m256i test_mm256_abs_epi64(__m256i __A) {
4652 // CHECK-LABEL: @test_mm256_abs_epi64
4653 // CHECK: [[SUB:%.*]] = sub <4 x i64> zeroinitializer, [[A:%.*]]
4654 // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[A]], zeroinitializer
4655 // CHECK: select <4 x i1> [[CMP]], <4 x i64> [[A]], <4 x i64> [[SUB]]
4656 return _mm256_abs_epi64(__A);
4657 }
test_mm256_mask_abs_epi64(__m256i __W,__mmask8 __U,__m256i __A)4658 __m256i test_mm256_mask_abs_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
4659 // CHECK-LABEL: @test_mm256_mask_abs_epi64
4660 // CHECK: [[SUB:%.*]] = sub <4 x i64> zeroinitializer, [[A:%.*]]
4661 // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[A]], zeroinitializer
4662 // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[A]], <4 x i64> [[SUB]]
4663 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> [[SEL]], <4 x i64> %{{.*}}
4664 return _mm256_mask_abs_epi64(__W,__U,__A);
4665 }
test_mm256_maskz_abs_epi64(__mmask8 __U,__m256i __A)4666 __m256i test_mm256_maskz_abs_epi64(__mmask8 __U, __m256i __A) {
4667 // CHECK-LABEL: @test_mm256_maskz_abs_epi64
4668 // CHECK: [[SUB:%.*]] = sub <4 x i64> zeroinitializer, [[A:%.*]]
4669 // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[A]], zeroinitializer
4670 // CHECK: [[SEL:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[A]], <4 x i64> [[SUB]]
4671 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> [[SEL]], <4 x i64> %{{.*}}
4672 return _mm256_maskz_abs_epi64(__U,__A);
4673 }
test_mm_maskz_max_epi32(__mmask8 __M,__m128i __A,__m128i __B)4674 __m128i test_mm_maskz_max_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
4675 // CHECK-LABEL: @test_mm_maskz_max_epi32
4676 // CHECK: [[CMP:%.*]] = icmp sgt <4 x i32> [[X:%.*]], [[Y:%.*]]
4677 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4678 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4679 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4680 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4681 return _mm_maskz_max_epi32(__M,__A,__B);
4682 }
test_mm_mask_max_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4683 __m128i test_mm_mask_max_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4684 // CHECK-LABEL: @test_mm_mask_max_epi32
4685 // CHECK: [[CMP:%.*]] = icmp sgt <4 x i32> [[X:%.*]], [[Y:%.*]]
4686 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4687 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4688 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4689 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4690 return _mm_mask_max_epi32(__W,__M,__A,__B);
4691 }
test_mm256_maskz_max_epi32(__mmask8 __M,__m256i __A,__m256i __B)4692 __m256i test_mm256_maskz_max_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
4693 // CHECK-LABEL: @test_mm256_maskz_max_epi32
4694 // CHECK: [[CMP:%.*]] = icmp sgt <8 x i32> [[X:%.*]], [[Y:%.*]]
4695 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4696 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4697 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4698 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4699 return _mm256_maskz_max_epi32(__M,__A,__B);
4700 }
test_mm256_mask_max_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4701 __m256i test_mm256_mask_max_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4702 // CHECK-LABEL: @test_mm256_mask_max_epi32
4703 // CHECK: [[CMP:%.*]] = icmp sgt <8 x i32> [[X:%.*]], [[Y:%.*]]
4704 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4705 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4706 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4707 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4708 return _mm256_mask_max_epi32(__W,__M,__A,__B);
4709 }
test_mm_maskz_max_epi64(__mmask8 __M,__m128i __A,__m128i __B)4710 __m128i test_mm_maskz_max_epi64(__mmask8 __M, __m128i __A, __m128i __B) {
4711 // CHECK-LABEL: @test_mm_maskz_max_epi64
4712 // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[X:%.*]], [[Y:%.*]]
4713 // CHECK-NEXT: [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4714 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4715 return _mm_maskz_max_epi64(__M,__A,__B);
4716 }
test_mm_mask_max_epi64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4717 __m128i test_mm_mask_max_epi64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4718 // CHECK-LABEL: @test_mm_mask_max_epi64
4719 // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[X:%.*]], [[Y:%.*]]
4720 // CHECK-NEXT: [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4721 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4722 return _mm_mask_max_epi64(__W,__M,__A,__B);
4723 }
test_mm_max_epi64(__m128i __A,__m128i __B)4724 __m128i test_mm_max_epi64(__m128i __A, __m128i __B) {
4725 // CHECK-LABEL: @test_mm_max_epi64
4726 // CHECK: [[CMP:%.*]] = icmp sgt <2 x i64> [[X:%.*]], [[Y:%.*]]
4727 // CHECK-NEXT: [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4728 return _mm_max_epi64(__A,__B);
4729 }
test_mm256_maskz_max_epi64(__mmask8 __M,__m256i __A,__m256i __B)4730 __m256i test_mm256_maskz_max_epi64(__mmask8 __M, __m256i __A, __m256i __B) {
4731 // CHECK-LABEL: @test_mm256_maskz_max_epi64
4732 // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[X:%.*]], [[Y:%.*]]
4733 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4734 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4735 return _mm256_maskz_max_epi64(__M,__A,__B);
4736 }
test_mm256_mask_max_epi64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4737 __m256i test_mm256_mask_max_epi64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4738 // CHECK-LABEL: @test_mm256_mask_max_epi64
4739 // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[X:%.*]], [[Y:%.*]]
4740 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4741 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4742 return _mm256_mask_max_epi64(__W,__M,__A,__B);
4743 }
test_mm256_max_epi64(__m256i __A,__m256i __B)4744 __m256i test_mm256_max_epi64(__m256i __A, __m256i __B) {
4745 // CHECK-LABEL: @test_mm256_max_epi64
4746 // CHECK: [[CMP:%.*]] = icmp sgt <4 x i64> [[X:%.*]], [[Y:%.*]]
4747 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4748 return _mm256_max_epi64(__A,__B);
4749 }
test_mm_maskz_max_epu32(__mmask8 __M,__m128i __A,__m128i __B)4750 __m128i test_mm_maskz_max_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
4751 // CHECK-LABEL: @test_mm_maskz_max_epu32
4752 // CHECK: [[CMP:%.*]] = icmp ugt <4 x i32> [[X:%.*]], [[Y:%.*]]
4753 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4754 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4755 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4756 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4757 return _mm_maskz_max_epu32(__M,__A,__B);
4758 }
test_mm_mask_max_epu32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4759 __m128i test_mm_mask_max_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4760 // CHECK-LABEL: @test_mm_mask_max_epu32
4761 // CHECK: [[CMP:%.*]] = icmp ugt <4 x i32> [[X:%.*]], [[Y:%.*]]
4762 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4763 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4764 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4765 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4766 return _mm_mask_max_epu32(__W,__M,__A,__B);
4767 }
test_mm256_maskz_max_epu32(__mmask8 __M,__m256i __A,__m256i __B)4768 __m256i test_mm256_maskz_max_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
4769 // CHECK-LABEL: @test_mm256_maskz_max_epu32
4770 // CHECK: [[CMP:%.*]] = icmp ugt <8 x i32> [[X:%.*]], [[Y:%.*]]
4771 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4772 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4773 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4774 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4775 return _mm256_maskz_max_epu32(__M,__A,__B);
4776 }
test_mm256_mask_max_epu32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4777 __m256i test_mm256_mask_max_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4778 // CHECK-LABEL: @test_mm256_mask_max_epu32
4779 // CHECK: [[CMP:%.*]] = icmp ugt <8 x i32> [[X:%.*]], [[Y:%.*]]
4780 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4781 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4782 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4783 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4784 return _mm256_mask_max_epu32(__W,__M,__A,__B);
4785 }
test_mm_maskz_max_epu64(__mmask8 __M,__m128i __A,__m128i __B)4786 __m128i test_mm_maskz_max_epu64(__mmask8 __M, __m128i __A, __m128i __B) {
4787 // CHECK-LABEL: @test_mm_maskz_max_epu64
4788 // CHECK: [[CMP:%.*]] = icmp ugt <2 x i64> [[X:%.*]], [[Y:%.*]]
4789 // CHECK-NEXT: [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4790 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4791 return _mm_maskz_max_epu64(__M,__A,__B);
4792 }
test_mm_max_epu64(__m128i __A,__m128i __B)4793 __m128i test_mm_max_epu64(__m128i __A, __m128i __B) {
4794 // CHECK-LABEL: @test_mm_max_epu64
4795 // CHECK: [[CMP:%.*]] = icmp ugt <2 x i64> [[X:%.*]], [[Y:%.*]]
4796 // CHECK-NEXT: [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4797 return _mm_max_epu64(__A,__B);
4798 }
test_mm_mask_max_epu64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4799 __m128i test_mm_mask_max_epu64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4800 // CHECK-LABEL: @test_mm_mask_max_epu64
4801 // CHECK: [[CMP:%.*]] = icmp ugt <2 x i64> [[X:%.*]], [[Y:%.*]]
4802 // CHECK-NEXT: [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4803 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4804 return _mm_mask_max_epu64(__W,__M,__A,__B);
4805 }
test_mm256_maskz_max_epu64(__mmask8 __M,__m256i __A,__m256i __B)4806 __m256i test_mm256_maskz_max_epu64(__mmask8 __M, __m256i __A, __m256i __B) {
4807 // CHECK-LABEL: @test_mm256_maskz_max_epu64
4808 // CHECK: [[CMP:%.*]] = icmp ugt <4 x i64> [[X:%.*]], [[Y:%.*]]
4809 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4810 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4811 return _mm256_maskz_max_epu64(__M,__A,__B);
4812 }
test_mm256_max_epu64(__m256i __A,__m256i __B)4813 __m256i test_mm256_max_epu64(__m256i __A, __m256i __B) {
4814 // CHECK-LABEL: @test_mm256_max_epu64
4815 // CHECK: [[CMP:%.*]] = icmp ugt <4 x i64> [[X:%.*]], [[Y:%.*]]
4816 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4817 return _mm256_max_epu64(__A,__B);
4818 }
test_mm256_mask_max_epu64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4819 __m256i test_mm256_mask_max_epu64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4820 // CHECK-LABEL: @test_mm256_mask_max_epu64
4821 // CHECK: [[CMP:%.*]] = icmp ugt <4 x i64> [[X:%.*]], [[Y:%.*]]
4822 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4823 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4824 return _mm256_mask_max_epu64(__W,__M,__A,__B);
4825 }
test_mm_maskz_min_epi32(__mmask8 __M,__m128i __A,__m128i __B)4826 __m128i test_mm_maskz_min_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
4827 // CHECK-LABEL: @test_mm_maskz_min_epi32
4828 // CHECK: [[CMP:%.*]] = icmp slt <4 x i32> [[X:%.*]], [[Y:%.*]]
4829 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4830 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4831 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4832 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4833 return _mm_maskz_min_epi32(__M,__A,__B);
4834 }
test_mm_mask_min_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4835 __m128i test_mm_mask_min_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4836 // CHECK-LABEL: @test_mm_mask_min_epi32
4837 // CHECK: [[CMP:%.*]] = icmp slt <4 x i32> [[X:%.*]], [[Y:%.*]]
4838 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4839 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4840 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4841 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4842 return _mm_mask_min_epi32(__W,__M,__A,__B);
4843 }
test_mm256_maskz_min_epi32(__mmask8 __M,__m256i __A,__m256i __B)4844 __m256i test_mm256_maskz_min_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
4845 // CHECK-LABEL: @test_mm256_maskz_min_epi32
4846 // CHECK: [[CMP:%.*]] = icmp slt <8 x i32> [[X:%.*]], [[Y:%.*]]
4847 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4848 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4849 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4850 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4851 return _mm256_maskz_min_epi32(__M,__A,__B);
4852 }
test_mm256_mask_min_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4853 __m256i test_mm256_mask_min_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4854 // CHECK-LABEL: @test_mm256_mask_min_epi32
4855 // CHECK: [[CMP:%.*]] = icmp slt <8 x i32> [[X:%.*]], [[Y:%.*]]
4856 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4857 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4858 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4859 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4860 return _mm256_mask_min_epi32(__W,__M,__A,__B);
4861 }
test_mm_min_epi64(__m128i __A,__m128i __B)4862 __m128i test_mm_min_epi64(__m128i __A, __m128i __B) {
4863 // CHECK-LABEL: @test_mm_min_epi64
4864 // CHECK: [[CMP:%.*]] = icmp slt <2 x i64> [[X:%.*]], [[Y:%.*]]
4865 // CHECK-NEXT: [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4866 return _mm_min_epi64(__A,__B);
4867 }
test_mm_mask_min_epi64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4868 __m128i test_mm_mask_min_epi64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4869 // CHECK-LABEL: @test_mm_mask_min_epi64
4870 // CHECK: [[CMP:%.*]] = icmp slt <2 x i64> [[X:%.*]], [[Y:%.*]]
4871 // CHECK-NEXT: [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4872 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4873 return _mm_mask_min_epi64(__W,__M,__A,__B);
4874 }
test_mm_maskz_min_epi64(__mmask8 __M,__m128i __A,__m128i __B)4875 __m128i test_mm_maskz_min_epi64(__mmask8 __M, __m128i __A, __m128i __B) {
4876 // CHECK-LABEL: @test_mm_maskz_min_epi64
4877 // CHECK: [[CMP:%.*]] = icmp slt <2 x i64> [[X:%.*]], [[Y:%.*]]
4878 // CHECK-NEXT: [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4879 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4880 return _mm_maskz_min_epi64(__M,__A,__B);
4881 }
test_mm256_min_epi64(__m256i __A,__m256i __B)4882 __m256i test_mm256_min_epi64(__m256i __A, __m256i __B) {
4883 // CHECK-LABEL: @test_mm256_min_epi64
4884 // CHECK: [[CMP:%.*]] = icmp slt <4 x i64> [[X:%.*]], [[Y:%.*]]
4885 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4886 return _mm256_min_epi64(__A,__B);
4887 }
test_mm256_mask_min_epi64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4888 __m256i test_mm256_mask_min_epi64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4889 // CHECK-LABEL: @test_mm256_mask_min_epi64
4890 // CHECK: [[CMP:%.*]] = icmp slt <4 x i64> [[X:%.*]], [[Y:%.*]]
4891 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4892 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4893 return _mm256_mask_min_epi64(__W,__M,__A,__B);
4894 }
test_mm256_maskz_min_epi64(__mmask8 __M,__m256i __A,__m256i __B)4895 __m256i test_mm256_maskz_min_epi64(__mmask8 __M, __m256i __A, __m256i __B) {
4896 // CHECK-LABEL: @test_mm256_maskz_min_epi64
4897 // CHECK: [[CMP:%.*]] = icmp slt <4 x i64> [[X:%.*]], [[Y:%.*]]
4898 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4899 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4900 return _mm256_maskz_min_epi64(__M,__A,__B);
4901 }
test_mm_maskz_min_epu32(__mmask8 __M,__m128i __A,__m128i __B)4902 __m128i test_mm_maskz_min_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
4903 // CHECK-LABEL: @test_mm_maskz_min_epu32
4904 // CHECK: [[CMP:%.*]] = icmp ult <4 x i32> [[X:%.*]], [[Y:%.*]]
4905 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4906 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4907 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4908 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4909 return _mm_maskz_min_epu32(__M,__A,__B);
4910 }
test_mm_mask_min_epu32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4911 __m128i test_mm_mask_min_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4912 // CHECK-LABEL: @test_mm_mask_min_epu32
4913 // CHECK: [[CMP:%.*]] = icmp ult <4 x i32> [[X:%.*]], [[Y:%.*]]
4914 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i32> [[X]], <4 x i32> [[Y]]
4915 // CHECK: [[TMP:%.*]] = bitcast <4 x i32> [[RES]] to <2 x i64>
4916 // CHECK: [[RES:%.*]] = bitcast <2 x i64> [[TMP]] to <4 x i32>
4917 // CHECK: select <4 x i1> {{.*}}, <4 x i32> [[RES]], <4 x i32> {{.*}}
4918 return _mm_mask_min_epu32(__W,__M,__A,__B);
4919 }
test_mm256_maskz_min_epu32(__mmask8 __M,__m256i __A,__m256i __B)4920 __m256i test_mm256_maskz_min_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
4921 // CHECK-LABEL: @test_mm256_maskz_min_epu32
4922 // CHECK: [[CMP:%.*]] = icmp ult <8 x i32> [[X:%.*]], [[Y:%.*]]
4923 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4924 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4925 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4926 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4927 return _mm256_maskz_min_epu32(__M,__A,__B);
4928 }
test_mm256_mask_min_epu32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4929 __m256i test_mm256_mask_min_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4930 // CHECK-LABEL: @test_mm256_mask_min_epu32
4931 // CHECK: [[CMP:%.*]] = icmp ult <8 x i32> [[X:%.*]], [[Y:%.*]]
4932 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i32> [[X]], <8 x i32> [[Y]]
4933 // CHECK: [[TMP:%.*]] = bitcast <8 x i32> [[RES]] to <4 x i64>
4934 // CHECK: [[RES:%.*]] = bitcast <4 x i64> [[TMP]] to <8 x i32>
4935 // CHECK: select <8 x i1> {{.*}}, <8 x i32> [[RES]], <8 x i32> {{.*}}
4936 return _mm256_mask_min_epu32(__W,__M,__A,__B);
4937 }
test_mm_min_epu64(__m128i __A,__m128i __B)4938 __m128i test_mm_min_epu64(__m128i __A, __m128i __B) {
4939 // CHECK-LABEL: @test_mm_min_epu64
4940 // CHECK: [[CMP:%.*]] = icmp ult <2 x i64> [[X:%.*]], [[Y:%.*]]
4941 // CHECK-NEXT: [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4942 return _mm_min_epu64(__A,__B);
4943 }
test_mm_mask_min_epu64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)4944 __m128i test_mm_mask_min_epu64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
4945 // CHECK-LABEL: @test_mm_mask_min_epu64
4946 // CHECK: [[CMP:%.*]] = icmp ult <2 x i64> [[X:%.*]], [[Y:%.*]]
4947 // CHECK-NEXT: [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4948 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4949 return _mm_mask_min_epu64(__W,__M,__A,__B);
4950 }
test_mm_maskz_min_epu64(__mmask8 __M,__m128i __A,__m128i __B)4951 __m128i test_mm_maskz_min_epu64(__mmask8 __M, __m128i __A, __m128i __B) {
4952 // CHECK-LABEL: @test_mm_maskz_min_epu64
4953 // CHECK: [[CMP:%.*]] = icmp ult <2 x i64> [[X:%.*]], [[Y:%.*]]
4954 // CHECK-NEXT: [[RES:%.*]] = select <2 x i1> [[CMP]], <2 x i64> [[X]], <2 x i64> [[Y]]
4955 // CHECK: select <2 x i1> {{.*}}, <2 x i64> [[RES]], <2 x i64> {{.*}}
4956 return _mm_maskz_min_epu64(__M,__A,__B);
4957 }
test_mm256_min_epu64(__m256i __A,__m256i __B)4958 __m256i test_mm256_min_epu64(__m256i __A, __m256i __B) {
4959 // CHECK-LABEL: @test_mm256_min_epu64
4960 // CHECK: [[CMP:%.*]] = icmp ult <4 x i64> [[X:%.*]], [[Y:%.*]]
4961 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4962 return _mm256_min_epu64(__A,__B);
4963 }
test_mm256_mask_min_epu64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)4964 __m256i test_mm256_mask_min_epu64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
4965 // CHECK-LABEL: @test_mm256_mask_min_epu64
4966 // CHECK: [[CMP:%.*]] = icmp ult <4 x i64> [[X:%.*]], [[Y:%.*]]
4967 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4968 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4969 return _mm256_mask_min_epu64(__W,__M,__A,__B);
4970 }
test_mm256_maskz_min_epu64(__mmask8 __M,__m256i __A,__m256i __B)4971 __m256i test_mm256_maskz_min_epu64(__mmask8 __M, __m256i __A, __m256i __B) {
4972 // CHECK-LABEL: @test_mm256_maskz_min_epu64
4973 // CHECK: [[CMP:%.*]] = icmp ult <4 x i64> [[X:%.*]], [[Y:%.*]]
4974 // CHECK-NEXT: [[RES:%.*]] = select <4 x i1> [[CMP]], <4 x i64> [[X]], <4 x i64> [[Y]]
4975 // CHECK: select <4 x i1> {{.*}}, <4 x i64> [[RES]], <4 x i64> {{.*}}
4976 return _mm256_maskz_min_epu64(__M,__A,__B);
4977 }
test_mm_roundscale_pd(__m128d __A)4978 __m128d test_mm_roundscale_pd(__m128d __A) {
4979 // CHECK-LABEL: @test_mm_roundscale_pd
4980 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4981 return _mm_roundscale_pd(__A,4);
4982 }
test_mm_mask_roundscale_pd(__m128d __W,__mmask8 __U,__m128d __A)4983 __m128d test_mm_mask_roundscale_pd(__m128d __W, __mmask8 __U, __m128d __A) {
4984 // CHECK-LABEL: @test_mm_mask_roundscale_pd
4985 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4986 return _mm_mask_roundscale_pd(__W,__U,__A,4);
4987 }
test_mm_maskz_roundscale_pd(__mmask8 __U,__m128d __A)4988 __m128d test_mm_maskz_roundscale_pd(__mmask8 __U, __m128d __A) {
4989 // CHECK-LABEL: @test_mm_maskz_roundscale_pd
4990 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
4991 return _mm_maskz_roundscale_pd(__U,__A,4);
4992 }
test_mm256_roundscale_pd(__m256d __A)4993 __m256d test_mm256_roundscale_pd(__m256d __A) {
4994 // CHECK-LABEL: @test_mm256_roundscale_pd
4995 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
4996 return _mm256_roundscale_pd(__A,4);
4997 }
test_mm256_mask_roundscale_pd(__m256d __W,__mmask8 __U,__m256d __A)4998 __m256d test_mm256_mask_roundscale_pd(__m256d __W, __mmask8 __U, __m256d __A) {
4999 // CHECK-LABEL: @test_mm256_mask_roundscale_pd
5000 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
5001 return _mm256_mask_roundscale_pd(__W,__U,__A,4);
5002 }
test_mm256_maskz_roundscale_pd(__mmask8 __U,__m256d __A)5003 __m256d test_mm256_maskz_roundscale_pd(__mmask8 __U, __m256d __A) {
5004 // CHECK-LABEL: @test_mm256_maskz_roundscale_pd
5005 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
5006 return _mm256_maskz_roundscale_pd(__U,__A,4);
5007 }
test_mm_roundscale_ps(__m128 __A)5008 __m128 test_mm_roundscale_ps(__m128 __A) {
5009 // CHECK-LABEL: @test_mm_roundscale_ps
5010 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
5011 return _mm_roundscale_ps(__A,4);
5012 }
test_mm_mask_roundscale_ps(__m128 __W,__mmask8 __U,__m128 __A)5013 __m128 test_mm_mask_roundscale_ps(__m128 __W, __mmask8 __U, __m128 __A) {
5014 // CHECK-LABEL: @test_mm_mask_roundscale_ps
5015 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
5016 return _mm_mask_roundscale_ps(__W,__U,__A,4);
5017 }
test_mm_maskz_roundscale_ps(__mmask8 __U,__m128 __A)5018 __m128 test_mm_maskz_roundscale_ps(__mmask8 __U, __m128 __A) {
5019 // CHECK-LABEL: @test_mm_maskz_roundscale_ps
5020 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
5021 return _mm_maskz_roundscale_ps(__U,__A, 4);
5022 }
test_mm256_roundscale_ps(__m256 __A)5023 __m256 test_mm256_roundscale_ps(__m256 __A) {
5024 // CHECK-LABEL: @test_mm256_roundscale_ps
5025 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
5026 return _mm256_roundscale_ps(__A,4);
5027 }
test_mm256_mask_roundscale_ps(__m256 __W,__mmask8 __U,__m256 __A)5028 __m256 test_mm256_mask_roundscale_ps(__m256 __W, __mmask8 __U, __m256 __A) {
5029 // CHECK-LABEL: @test_mm256_mask_roundscale_ps
5030 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
5031 return _mm256_mask_roundscale_ps(__W,__U,__A,4);
5032 }
test_mm256_maskz_roundscale_ps(__mmask8 __U,__m256 __A)5033 __m256 test_mm256_maskz_roundscale_ps(__mmask8 __U, __m256 __A) {
5034 // CHECK-LABEL: @test_mm256_maskz_roundscale_ps
5035 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
5036 return _mm256_maskz_roundscale_ps(__U,__A,4);
5037 }
test_mm_scalef_pd(__m128d __A,__m128d __B)5038 __m128d test_mm_scalef_pd(__m128d __A, __m128d __B) {
5039 // CHECK-LABEL: @test_mm_scalef_pd
5040 // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
5041 return _mm_scalef_pd(__A,__B);
5042 }
test_mm_mask_scalef_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5043 __m128d test_mm_mask_scalef_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
5044 // CHECK-LABEL: @test_mm_mask_scalef_pd
5045 // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
5046 return _mm_mask_scalef_pd(__W,__U,__A,__B);
5047 }
test_mm_maskz_scalef_pd(__mmask8 __U,__m128d __A,__m128d __B)5048 __m128d test_mm_maskz_scalef_pd(__mmask8 __U, __m128d __A, __m128d __B) {
5049 // CHECK-LABEL: @test_mm_maskz_scalef_pd
5050 // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
5051 return _mm_maskz_scalef_pd(__U,__A,__B);
5052 }
test_mm256_scalef_pd(__m256d __A,__m256d __B)5053