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