1 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -fexperimental-new-pass-manager -triple=x86_64-apple-darwin -target-feature +avx512bw -target-feature +avx512vl -emit-llvm -o - -Wall -Werror -Wsign-conversion | FileCheck %s
2 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -fexperimental-new-pass-manager -triple=x86_64-apple-darwin -target-feature +avx512bw -target-feature +avx512vl -fno-signed-char -emit-llvm -o - -Wall -Werror -Wsign-conversion | FileCheck %s
3
4 #include <immintrin.h>
5
test_mm256_cmpeq_epi8_mask(__m256i __a,__m256i __b)6 __mmask32 test_mm256_cmpeq_epi8_mask(__m256i __a, __m256i __b) {
7 // CHECK-LABEL: @test_mm256_cmpeq_epi8_mask
8 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
9 return (__mmask32)_mm256_cmpeq_epi8_mask(__a, __b);
10 }
11
test_mm256_mask_cmpeq_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)12 __mmask32 test_mm256_mask_cmpeq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
13 // CHECK-LABEL: @test_mm256_mask_cmpeq_epi8_mask
14 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
15 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
16 return (__mmask32)_mm256_mask_cmpeq_epi8_mask(__u, __a, __b);
17 }
18
test_mm_cmpeq_epi8_mask(__m128i __a,__m128i __b)19 __mmask16 test_mm_cmpeq_epi8_mask(__m128i __a, __m128i __b) {
20 // CHECK-LABEL: @test_mm_cmpeq_epi8_mask
21 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
22 return (__mmask16)_mm_cmpeq_epi8_mask(__a, __b);
23 }
24
test_mm_mask_cmpeq_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)25 __mmask16 test_mm_mask_cmpeq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
26 // CHECK-LABEL: @test_mm_mask_cmpeq_epi8_mask
27 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
28 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
29 return (__mmask16)_mm_mask_cmpeq_epi8_mask(__u, __a, __b);
30 }
31
test_mm256_cmpeq_epi16_mask(__m256i __a,__m256i __b)32 __mmask16 test_mm256_cmpeq_epi16_mask(__m256i __a, __m256i __b) {
33 // CHECK-LABEL: @test_mm256_cmpeq_epi16_mask
34 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
35 return (__mmask16)_mm256_cmpeq_epi16_mask(__a, __b);
36 }
37
test_mm256_mask_cmpeq_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)38 __mmask16 test_mm256_mask_cmpeq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
39 // CHECK-LABEL: @test_mm256_mask_cmpeq_epi16_mask
40 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
41 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
42 return (__mmask16)_mm256_mask_cmpeq_epi16_mask(__u, __a, __b);
43 }
44
test_mm_cmpeq_epi16_mask(__m128i __a,__m128i __b)45 __mmask8 test_mm_cmpeq_epi16_mask(__m128i __a, __m128i __b) {
46 // CHECK-LABEL: @test_mm_cmpeq_epi16_mask
47 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
48 return (__mmask8)_mm_cmpeq_epi16_mask(__a, __b);
49 }
50
test_mm_mask_cmpeq_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)51 __mmask8 test_mm_mask_cmpeq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
52 // CHECK-LABEL: @test_mm_mask_cmpeq_epi16_mask
53 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
54 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
55 return (__mmask8)_mm_mask_cmpeq_epi16_mask(__u, __a, __b);
56 }
57
test_mm256_cmpgt_epi8_mask(__m256i __a,__m256i __b)58 __mmask32 test_mm256_cmpgt_epi8_mask(__m256i __a, __m256i __b) {
59 // CHECK-LABEL: @test_mm256_cmpgt_epi8_mask
60 // CHECK: icmp sgt <32 x i8> %{{.*}}, %{{.*}}
61 return (__mmask32)_mm256_cmpgt_epi8_mask(__a, __b);
62 }
63
test_mm256_mask_cmpgt_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)64 __mmask32 test_mm256_mask_cmpgt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
65 // CHECK-LABEL: @test_mm256_mask_cmpgt_epi8_mask
66 // CHECK: icmp sgt <32 x i8> %{{.*}}, %{{.*}}
67 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
68 return (__mmask32)_mm256_mask_cmpgt_epi8_mask(__u, __a, __b);
69 }
70
test_mm_cmpgt_epi8_mask(__m128i __a,__m128i __b)71 __mmask16 test_mm_cmpgt_epi8_mask(__m128i __a, __m128i __b) {
72 // CHECK-LABEL: @test_mm_cmpgt_epi8_mask
73 // CHECK: icmp sgt <16 x i8> %{{.*}}, %{{.*}}
74 return (__mmask16)_mm_cmpgt_epi8_mask(__a, __b);
75 }
76
test_mm_mask_cmpgt_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)77 __mmask16 test_mm_mask_cmpgt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
78 // CHECK-LABEL: @test_mm_mask_cmpgt_epi8_mask
79 // CHECK: icmp sgt <16 x i8> %{{.*}}, %{{.*}}
80 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
81 return (__mmask16)_mm_mask_cmpgt_epi8_mask(__u, __a, __b);
82 }
83
test_mm256_cmpgt_epi16_mask(__m256i __a,__m256i __b)84 __mmask16 test_mm256_cmpgt_epi16_mask(__m256i __a, __m256i __b) {
85 // CHECK-LABEL: @test_mm256_cmpgt_epi16_mask
86 // CHECK: icmp sgt <16 x i16> %{{.*}}, %{{.*}}
87 return (__mmask16)_mm256_cmpgt_epi16_mask(__a, __b);
88 }
89
test_mm256_mask_cmpgt_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)90 __mmask16 test_mm256_mask_cmpgt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
91 // CHECK-LABEL: @test_mm256_mask_cmpgt_epi16_mask
92 // CHECK: icmp sgt <16 x i16> %{{.*}}, %{{.*}}
93 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
94 return (__mmask16)_mm256_mask_cmpgt_epi16_mask(__u, __a, __b);
95 }
96
test_mm_cmpgt_epi16_mask(__m128i __a,__m128i __b)97 __mmask8 test_mm_cmpgt_epi16_mask(__m128i __a, __m128i __b) {
98 // CHECK-LABEL: @test_mm_cmpgt_epi16_mask
99 // CHECK: icmp sgt <8 x i16> %{{.*}}, %{{.*}}
100 return (__mmask8)_mm_cmpgt_epi16_mask(__a, __b);
101 }
102
test_mm_mask_cmpgt_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)103 __mmask8 test_mm_mask_cmpgt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
104 // CHECK-LABEL: @test_mm_mask_cmpgt_epi16_mask
105 // CHECK: icmp sgt <8 x i16> %{{.*}}, %{{.*}}
106 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
107 return (__mmask8)_mm_mask_cmpgt_epi16_mask(__u, __a, __b);
108 }
109
test_mm_cmpeq_epu8_mask(__m128i __a,__m128i __b)110 __mmask16 test_mm_cmpeq_epu8_mask(__m128i __a, __m128i __b) {
111 // CHECK-LABEL: @test_mm_cmpeq_epu8_mask
112 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
113 return (__mmask16)_mm_cmpeq_epu8_mask(__a, __b);
114 }
115
test_mm_mask_cmpeq_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)116 __mmask16 test_mm_mask_cmpeq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
117 // CHECK-LABEL: @test_mm_mask_cmpeq_epu8_mask
118 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
119 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
120 return (__mmask16)_mm_mask_cmpeq_epu8_mask(__u, __a, __b);
121 }
122
test_mm_cmpeq_epu16_mask(__m128i __a,__m128i __b)123 __mmask8 test_mm_cmpeq_epu16_mask(__m128i __a, __m128i __b) {
124 // CHECK-LABEL: @test_mm_cmpeq_epu16_mask
125 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
126 return (__mmask8)_mm_cmpeq_epu16_mask(__a, __b);
127 }
128
test_mm_mask_cmpeq_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)129 __mmask8 test_mm_mask_cmpeq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
130 // CHECK-LABEL: @test_mm_mask_cmpeq_epu16_mask
131 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
132 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
133 return (__mmask8)_mm_mask_cmpeq_epu16_mask(__u, __a, __b);
134 }
135
test_mm256_cmpeq_epu8_mask(__m256i __a,__m256i __b)136 __mmask32 test_mm256_cmpeq_epu8_mask(__m256i __a, __m256i __b) {
137 // CHECK-LABEL: @test_mm256_cmpeq_epu8_mask
138 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
139 return (__mmask32)_mm256_cmpeq_epu8_mask(__a, __b);
140 }
141
test_mm256_mask_cmpeq_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)142 __mmask32 test_mm256_mask_cmpeq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
143 // CHECK-LABEL: @test_mm256_mask_cmpeq_epu8_mask
144 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
145 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
146 return (__mmask32)_mm256_mask_cmpeq_epu8_mask(__u, __a, __b);
147 }
148
test_mm256_cmpeq_epu16_mask(__m256i __a,__m256i __b)149 __mmask16 test_mm256_cmpeq_epu16_mask(__m256i __a, __m256i __b) {
150 // CHECK-LABEL: @test_mm256_cmpeq_epu16_mask
151 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
152 return (__mmask16)_mm256_cmpeq_epu16_mask(__a, __b);
153 }
154
test_mm256_mask_cmpeq_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)155 __mmask16 test_mm256_mask_cmpeq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
156 // CHECK-LABEL: @test_mm256_mask_cmpeq_epu16_mask
157 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
158 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
159 return (__mmask16)_mm256_mask_cmpeq_epu16_mask(__u, __a, __b);
160 }
161
test_mm_cmpgt_epu8_mask(__m128i __a,__m128i __b)162 __mmask16 test_mm_cmpgt_epu8_mask(__m128i __a, __m128i __b) {
163 // CHECK-LABEL: @test_mm_cmpgt_epu8_mask
164 // CHECK: icmp ugt <16 x i8> %{{.*}}, %{{.*}}
165 return (__mmask16)_mm_cmpgt_epu8_mask(__a, __b);
166 }
167
test_mm_mask_cmpgt_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)168 __mmask16 test_mm_mask_cmpgt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
169 // CHECK-LABEL: @test_mm_mask_cmpgt_epu8_mask
170 // CHECK: icmp ugt <16 x i8> %{{.*}}, %{{.*}}
171 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
172 return (__mmask16)_mm_mask_cmpgt_epu8_mask(__u, __a, __b);
173 }
174
test_mm_cmpgt_epu16_mask(__m128i __a,__m128i __b)175 __mmask8 test_mm_cmpgt_epu16_mask(__m128i __a, __m128i __b) {
176 // CHECK-LABEL: @test_mm_cmpgt_epu16_mask
177 // CHECK: icmp ugt <8 x i16> %{{.*}}, %{{.*}}
178 return (__mmask8)_mm_cmpgt_epu16_mask(__a, __b);
179 }
180
test_mm_mask_cmpgt_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)181 __mmask8 test_mm_mask_cmpgt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
182 // CHECK-LABEL: @test_mm_mask_cmpgt_epu16_mask
183 // CHECK: icmp ugt <8 x i16> %{{.*}}, %{{.*}}
184 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
185 return (__mmask8)_mm_mask_cmpgt_epu16_mask(__u, __a, __b);
186 }
187
test_mm256_cmpgt_epu8_mask(__m256i __a,__m256i __b)188 __mmask32 test_mm256_cmpgt_epu8_mask(__m256i __a, __m256i __b) {
189 // CHECK-LABEL: @test_mm256_cmpgt_epu8_mask
190 // CHECK: icmp ugt <32 x i8> %{{.*}}, %{{.*}}
191 return (__mmask32)_mm256_cmpgt_epu8_mask(__a, __b);
192 }
193
test_mm256_mask_cmpgt_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)194 __mmask32 test_mm256_mask_cmpgt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
195 // CHECK-LABEL: @test_mm256_mask_cmpgt_epu8_mask
196 // CHECK: icmp ugt <32 x i8> %{{.*}}, %{{.*}}
197 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
198 return (__mmask32)_mm256_mask_cmpgt_epu8_mask(__u, __a, __b);
199 }
200
test_mm256_cmpgt_epu16_mask(__m256i __a,__m256i __b)201 __mmask16 test_mm256_cmpgt_epu16_mask(__m256i __a, __m256i __b) {
202 // CHECK-LABEL: @test_mm256_cmpgt_epu16_mask
203 // CHECK: icmp ugt <16 x i16> %{{.*}}, %{{.*}}
204 return (__mmask16)_mm256_cmpgt_epu16_mask(__a, __b);
205 }
206
test_mm256_mask_cmpgt_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)207 __mmask16 test_mm256_mask_cmpgt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
208 // CHECK-LABEL: @test_mm256_mask_cmpgt_epu16_mask
209 // CHECK: icmp ugt <16 x i16> %{{.*}}, %{{.*}}
210 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
211 return (__mmask16)_mm256_mask_cmpgt_epu16_mask(__u, __a, __b);
212 }
213
test_mm_cmpge_epi8_mask(__m128i __a,__m128i __b)214 __mmask16 test_mm_cmpge_epi8_mask(__m128i __a, __m128i __b) {
215 // CHECK-LABEL: @test_mm_cmpge_epi8_mask
216 // CHECK: icmp sge <16 x i8> %{{.*}}, %{{.*}}
217 return (__mmask16)_mm_cmpge_epi8_mask(__a, __b);
218 }
219
test_mm_mask_cmpge_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)220 __mmask16 test_mm_mask_cmpge_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
221 // CHECK-LABEL: @test_mm_mask_cmpge_epi8_mask
222 // CHECK: icmp sge <16 x i8> %{{.*}}, %{{.*}}
223 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
224 return (__mmask16)_mm_mask_cmpge_epi8_mask(__u, __a, __b);
225 }
226
test_mm_cmpge_epu8_mask(__m128i __a,__m128i __b)227 __mmask16 test_mm_cmpge_epu8_mask(__m128i __a, __m128i __b) {
228 // CHECK-LABEL: @test_mm_cmpge_epu8_mask
229 // CHECK: icmp uge <16 x i8> %{{.*}}, %{{.*}}
230 return (__mmask16)_mm_cmpge_epu8_mask(__a, __b);
231 }
232
test_mm_mask_cmpge_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)233 __mmask16 test_mm_mask_cmpge_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
234 // CHECK-LABEL: @test_mm_mask_cmpge_epu8_mask
235 // CHECK: icmp uge <16 x i8> %{{.*}}, %{{.*}}
236 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
237 return (__mmask16)_mm_mask_cmpge_epu8_mask(__u, __a, __b);
238 }
239
test_mm_cmpge_epi16_mask(__m128i __a,__m128i __b)240 __mmask8 test_mm_cmpge_epi16_mask(__m128i __a, __m128i __b) {
241 // CHECK-LABEL: @test_mm_cmpge_epi16_mask
242 // CHECK: icmp sge <8 x i16> %{{.*}}, %{{.*}}
243 return (__mmask8)_mm_cmpge_epi16_mask(__a, __b);
244 }
245
test_mm_mask_cmpge_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)246 __mmask8 test_mm_mask_cmpge_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
247 // CHECK-LABEL: @test_mm_mask_cmpge_epi16_mask
248 // CHECK: icmp sge <8 x i16> %{{.*}}, %{{.*}}
249 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
250 return (__mmask8)_mm_mask_cmpge_epi16_mask(__u, __a, __b);
251 }
252
test_mm_cmpge_epu16_mask(__m128i __a,__m128i __b)253 __mmask8 test_mm_cmpge_epu16_mask(__m128i __a, __m128i __b) {
254 // CHECK-LABEL: @test_mm_cmpge_epu16_mask
255 // CHECK: icmp uge <8 x i16> %{{.*}}, %{{.*}}
256 return (__mmask8)_mm_cmpge_epu16_mask(__a, __b);
257 }
258
test_mm_mask_cmpge_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)259 __mmask8 test_mm_mask_cmpge_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
260 // CHECK-LABEL: @test_mm_mask_cmpge_epu16_mask
261 // CHECK: icmp uge <8 x i16> %{{.*}}, %{{.*}}
262 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
263 return (__mmask8)_mm_mask_cmpge_epu16_mask(__u, __a, __b);
264 }
265
test_mm256_cmpge_epi8_mask(__m256i __a,__m256i __b)266 __mmask32 test_mm256_cmpge_epi8_mask(__m256i __a, __m256i __b) {
267 // CHECK-LABEL: @test_mm256_cmpge_epi8_mask
268 // CHECK: icmp sge <32 x i8> %{{.*}}, %{{.*}}
269 return (__mmask32)_mm256_cmpge_epi8_mask(__a, __b);
270 }
271
test_mm256_mask_cmpge_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)272 __mmask32 test_mm256_mask_cmpge_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
273 // CHECK-LABEL: @test_mm256_mask_cmpge_epi8_mask
274 // CHECK: icmp sge <32 x i8> %{{.*}}, %{{.*}}
275 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
276 return (__mmask32)_mm256_mask_cmpge_epi8_mask(__u, __a, __b);
277 }
278
test_mm256_cmpge_epu8_mask(__m256i __a,__m256i __b)279 __mmask32 test_mm256_cmpge_epu8_mask(__m256i __a, __m256i __b) {
280 // CHECK-LABEL: @test_mm256_cmpge_epu8_mask
281 // CHECK: icmp uge <32 x i8> %{{.*}}, %{{.*}}
282 return (__mmask32)_mm256_cmpge_epu8_mask(__a, __b);
283 }
284
test_mm256_mask_cmpge_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)285 __mmask32 test_mm256_mask_cmpge_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
286 // CHECK-LABEL: @test_mm256_mask_cmpge_epu8_mask
287 // CHECK: icmp uge <32 x i8> %{{.*}}, %{{.*}}
288 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
289 return (__mmask32)_mm256_mask_cmpge_epu8_mask(__u, __a, __b);
290 }
291
test_mm256_cmpge_epi16_mask(__m256i __a,__m256i __b)292 __mmask16 test_mm256_cmpge_epi16_mask(__m256i __a, __m256i __b) {
293 // CHECK-LABEL: @test_mm256_cmpge_epi16_mask
294 // CHECK: icmp sge <16 x i16> %{{.*}}, %{{.*}}
295 return (__mmask16)_mm256_cmpge_epi16_mask(__a, __b);
296 }
297
test_mm256_mask_cmpge_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)298 __mmask16 test_mm256_mask_cmpge_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
299 // CHECK-LABEL: @test_mm256_mask_cmpge_epi16_mask
300 // CHECK: icmp sge <16 x i16> %{{.*}}, %{{.*}}
301 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
302 return (__mmask16)_mm256_mask_cmpge_epi16_mask(__u, __a, __b);
303 }
304
test_mm256_cmpge_epu16_mask(__m256i __a,__m256i __b)305 __mmask16 test_mm256_cmpge_epu16_mask(__m256i __a, __m256i __b) {
306 // CHECK-LABEL: @test_mm256_cmpge_epu16_mask
307 // CHECK: icmp uge <16 x i16> %{{.*}}, %{{.*}}
308 return (__mmask16)_mm256_cmpge_epu16_mask(__a, __b);
309 }
310
test_mm256_mask_cmpge_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)311 __mmask16 test_mm256_mask_cmpge_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
312 // CHECK-LABEL: @test_mm256_mask_cmpge_epu16_mask
313 // CHECK: icmp uge <16 x i16> %{{.*}}, %{{.*}}
314 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
315 return (__mmask16)_mm256_mask_cmpge_epu16_mask(__u, __a, __b);
316 }
317
test_mm_cmple_epi8_mask(__m128i __a,__m128i __b)318 __mmask16 test_mm_cmple_epi8_mask(__m128i __a, __m128i __b) {
319 // CHECK-LABEL: @test_mm_cmple_epi8_mask
320 // CHECK: icmp sle <16 x i8> %{{.*}}, %{{.*}}
321 return (__mmask16)_mm_cmple_epi8_mask(__a, __b);
322 }
323
test_mm_mask_cmple_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)324 __mmask16 test_mm_mask_cmple_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
325 // CHECK-LABEL: @test_mm_mask_cmple_epi8_mask
326 // CHECK: icmp sle <16 x i8> %{{.*}}, %{{.*}}
327 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
328 return (__mmask16)_mm_mask_cmple_epi8_mask(__u, __a, __b);
329 }
330
test_mm_cmple_epu8_mask(__m128i __a,__m128i __b)331 __mmask16 test_mm_cmple_epu8_mask(__m128i __a, __m128i __b) {
332 // CHECK-LABEL: @test_mm_cmple_epu8_mask
333 // CHECK: icmp ule <16 x i8> %{{.*}}, %{{.*}}
334 return (__mmask16)_mm_cmple_epu8_mask(__a, __b);
335 }
336
test_mm_mask_cmple_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)337 __mmask16 test_mm_mask_cmple_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
338 // CHECK-LABEL: @test_mm_mask_cmple_epu8_mask
339 // CHECK: icmp ule <16 x i8> %{{.*}}, %{{.*}}
340 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
341 return (__mmask16)_mm_mask_cmple_epu8_mask(__u, __a, __b);
342 }
343
test_mm_cmple_epi16_mask(__m128i __a,__m128i __b)344 __mmask8 test_mm_cmple_epi16_mask(__m128i __a, __m128i __b) {
345 // CHECK-LABEL: @test_mm_cmple_epi16_mask
346 // CHECK: icmp sle <8 x i16> %{{.*}}, %{{.*}}
347 return (__mmask8)_mm_cmple_epi16_mask(__a, __b);
348 }
349
test_mm_mask_cmple_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)350 __mmask8 test_mm_mask_cmple_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
351 // CHECK-LABEL: @test_mm_mask_cmple_epi16_mask
352 // CHECK: icmp sle <8 x i16> %{{.*}}, %{{.*}}
353 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
354 return (__mmask8)_mm_mask_cmple_epi16_mask(__u, __a, __b);
355 }
356
test_mm_cmple_epu16_mask(__m128i __a,__m128i __b)357 __mmask8 test_mm_cmple_epu16_mask(__m128i __a, __m128i __b) {
358 // CHECK-LABEL: @test_mm_cmple_epu16_mask
359 // CHECK: icmp ule <8 x i16> %{{.*}}, %{{.*}}
360 return (__mmask8)_mm_cmple_epu16_mask(__a, __b);
361 }
362
test_mm_mask_cmple_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)363 __mmask8 test_mm_mask_cmple_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
364 // CHECK-LABEL: @test_mm_mask_cmple_epu16_mask
365 // CHECK: icmp ule <8 x i16> %{{.*}}, %{{.*}}
366 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
367 return (__mmask8)_mm_mask_cmple_epu16_mask(__u, __a, __b);
368 }
369
test_mm256_cmple_epi8_mask(__m256i __a,__m256i __b)370 __mmask32 test_mm256_cmple_epi8_mask(__m256i __a, __m256i __b) {
371 // CHECK-LABEL: @test_mm256_cmple_epi8_mask
372 // CHECK: icmp sle <32 x i8> %{{.*}}, %{{.*}}
373 return (__mmask32)_mm256_cmple_epi8_mask(__a, __b);
374 }
375
test_mm256_mask_cmple_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)376 __mmask32 test_mm256_mask_cmple_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
377 // CHECK-LABEL: @test_mm256_mask_cmple_epi8_mask
378 // CHECK: icmp sle <32 x i8> %{{.*}}, %{{.*}}
379 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
380 return (__mmask32)_mm256_mask_cmple_epi8_mask(__u, __a, __b);
381 }
382
test_mm256_cmple_epu8_mask(__m256i __a,__m256i __b)383 __mmask32 test_mm256_cmple_epu8_mask(__m256i __a, __m256i __b) {
384 // CHECK-LABEL: @test_mm256_cmple_epu8_mask
385 // CHECK: icmp ule <32 x i8> %{{.*}}, %{{.*}}
386 return (__mmask32)_mm256_cmple_epu8_mask(__a, __b);
387 }
388
test_mm256_mask_cmple_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)389 __mmask32 test_mm256_mask_cmple_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
390 // CHECK-LABEL: @test_mm256_mask_cmple_epu8_mask
391 // CHECK: icmp ule <32 x i8> %{{.*}}, %{{.*}}
392 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
393 return (__mmask32)_mm256_mask_cmple_epu8_mask(__u, __a, __b);
394 }
395
test_mm256_cmple_epi16_mask(__m256i __a,__m256i __b)396 __mmask16 test_mm256_cmple_epi16_mask(__m256i __a, __m256i __b) {
397 // CHECK-LABEL: @test_mm256_cmple_epi16_mask
398 // CHECK: icmp sle <16 x i16> %{{.*}}, %{{.*}}
399 return (__mmask16)_mm256_cmple_epi16_mask(__a, __b);
400 }
401
test_mm256_mask_cmple_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)402 __mmask16 test_mm256_mask_cmple_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
403 // CHECK-LABEL: @test_mm256_mask_cmple_epi16_mask
404 // CHECK: icmp sle <16 x i16> %{{.*}}, %{{.*}}
405 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
406 return (__mmask16)_mm256_mask_cmple_epi16_mask(__u, __a, __b);
407 }
408
test_mm256_cmple_epu16_mask(__m256i __a,__m256i __b)409 __mmask16 test_mm256_cmple_epu16_mask(__m256i __a, __m256i __b) {
410 // CHECK-LABEL: @test_mm256_cmple_epu16_mask
411 // CHECK: icmp ule <16 x i16> %{{.*}}, %{{.*}}
412 return (__mmask16)_mm256_cmple_epu16_mask(__a, __b);
413 }
414
test_mm256_mask_cmple_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)415 __mmask16 test_mm256_mask_cmple_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
416 // CHECK-LABEL: @test_mm256_mask_cmple_epu16_mask
417 // CHECK: icmp ule <16 x i16> %{{.*}}, %{{.*}}
418 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
419 return (__mmask16)_mm256_mask_cmple_epu16_mask(__u, __a, __b);
420 }
421
test_mm_cmplt_epi8_mask(__m128i __a,__m128i __b)422 __mmask16 test_mm_cmplt_epi8_mask(__m128i __a, __m128i __b) {
423 // CHECK-LABEL: @test_mm_cmplt_epi8_mask
424 // CHECK: icmp slt <16 x i8> %{{.*}}, %{{.*}}
425 return (__mmask16)_mm_cmplt_epi8_mask(__a, __b);
426 }
427
test_mm_mask_cmplt_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)428 __mmask16 test_mm_mask_cmplt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
429 // CHECK-LABEL: @test_mm_mask_cmplt_epi8_mask
430 // CHECK: icmp slt <16 x i8> %{{.*}}, %{{.*}}
431 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
432 return (__mmask16)_mm_mask_cmplt_epi8_mask(__u, __a, __b);
433 }
434
test_mm_cmplt_epu8_mask(__m128i __a,__m128i __b)435 __mmask16 test_mm_cmplt_epu8_mask(__m128i __a, __m128i __b) {
436 // CHECK-LABEL: @test_mm_cmplt_epu8_mask
437 // CHECK: icmp ult <16 x i8> %{{.*}}, %{{.*}}
438 return (__mmask16)_mm_cmplt_epu8_mask(__a, __b);
439 }
440
test_mm_mask_cmplt_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)441 __mmask16 test_mm_mask_cmplt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
442 // CHECK-LABEL: @test_mm_mask_cmplt_epu8_mask
443 // CHECK: icmp ult <16 x i8> %{{.*}}, %{{.*}}
444 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
445 return (__mmask16)_mm_mask_cmplt_epu8_mask(__u, __a, __b);
446 }
447
test_mm_cmplt_epi16_mask(__m128i __a,__m128i __b)448 __mmask8 test_mm_cmplt_epi16_mask(__m128i __a, __m128i __b) {
449 // CHECK-LABEL: @test_mm_cmplt_epi16_mask
450 // CHECK: icmp slt <8 x i16> %{{.*}}, %{{.*}}
451 return (__mmask8)_mm_cmplt_epi16_mask(__a, __b);
452 }
453
test_mm_mask_cmplt_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)454 __mmask8 test_mm_mask_cmplt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
455 // CHECK-LABEL: @test_mm_mask_cmplt_epi16_mask
456 // CHECK: icmp slt <8 x i16> %{{.*}}, %{{.*}}
457 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
458 return (__mmask8)_mm_mask_cmplt_epi16_mask(__u, __a, __b);
459 }
460
test_mm_cmplt_epu16_mask(__m128i __a,__m128i __b)461 __mmask8 test_mm_cmplt_epu16_mask(__m128i __a, __m128i __b) {
462 // CHECK-LABEL: @test_mm_cmplt_epu16_mask
463 // CHECK: icmp ult <8 x i16> %{{.*}}, %{{.*}}
464 return (__mmask8)_mm_cmplt_epu16_mask(__a, __b);
465 }
466
test_mm_mask_cmplt_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)467 __mmask8 test_mm_mask_cmplt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
468 // CHECK-LABEL: @test_mm_mask_cmplt_epu16_mask
469 // CHECK: icmp ult <8 x i16> %{{.*}}, %{{.*}}
470 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
471 return (__mmask8)_mm_mask_cmplt_epu16_mask(__u, __a, __b);
472 }
473
test_mm256_cmplt_epi8_mask(__m256i __a,__m256i __b)474 __mmask32 test_mm256_cmplt_epi8_mask(__m256i __a, __m256i __b) {
475 // CHECK-LABEL: @test_mm256_cmplt_epi8_mask
476 // CHECK: icmp slt <32 x i8> %{{.*}}, %{{.*}}
477 return (__mmask32)_mm256_cmplt_epi8_mask(__a, __b);
478 }
479
test_mm256_mask_cmplt_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)480 __mmask32 test_mm256_mask_cmplt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
481 // CHECK-LABEL: @test_mm256_mask_cmplt_epi8_mask
482 // CHECK: icmp slt <32 x i8> %{{.*}}, %{{.*}}
483 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
484 return (__mmask32)_mm256_mask_cmplt_epi8_mask(__u, __a, __b);
485 }
486
test_mm256_cmplt_epu8_mask(__m256i __a,__m256i __b)487 __mmask32 test_mm256_cmplt_epu8_mask(__m256i __a, __m256i __b) {
488 // CHECK-LABEL: @test_mm256_cmplt_epu8_mask
489 // CHECK: icmp ult <32 x i8> %{{.*}}, %{{.*}}
490 return (__mmask32)_mm256_cmplt_epu8_mask(__a, __b);
491 }
492
test_mm256_mask_cmplt_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)493 __mmask32 test_mm256_mask_cmplt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
494 // CHECK-LABEL: @test_mm256_mask_cmplt_epu8_mask
495 // CHECK: icmp ult <32 x i8> %{{.*}}, %{{.*}}
496 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
497 return (__mmask32)_mm256_mask_cmplt_epu8_mask(__u, __a, __b);
498 }
499
test_mm256_cmplt_epi16_mask(__m256i __a,__m256i __b)500 __mmask16 test_mm256_cmplt_epi16_mask(__m256i __a, __m256i __b) {
501 // CHECK-LABEL: @test_mm256_cmplt_epi16_mask
502 // CHECK: icmp slt <16 x i16> %{{.*}}, %{{.*}}
503 return (__mmask16)_mm256_cmplt_epi16_mask(__a, __b);
504 }
505
test_mm256_mask_cmplt_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)506 __mmask16 test_mm256_mask_cmplt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
507 // CHECK-LABEL: @test_mm256_mask_cmplt_epi16_mask
508 // CHECK: icmp slt <16 x i16> %{{.*}}, %{{.*}}
509 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
510 return (__mmask16)_mm256_mask_cmplt_epi16_mask(__u, __a, __b);
511 }
512
test_mm256_cmplt_epu16_mask(__m256i __a,__m256i __b)513 __mmask16 test_mm256_cmplt_epu16_mask(__m256i __a, __m256i __b) {
514 // CHECK-LABEL: @test_mm256_cmplt_epu16_mask
515 // CHECK: icmp ult <16 x i16> %{{.*}}, %{{.*}}
516 return (__mmask16)_mm256_cmplt_epu16_mask(__a, __b);
517 }
518
test_mm256_mask_cmplt_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)519 __mmask16 test_mm256_mask_cmplt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
520 // CHECK-LABEL: @test_mm256_mask_cmplt_epu16_mask
521 // CHECK: icmp ult <16 x i16> %{{.*}}, %{{.*}}
522 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
523 return (__mmask16)_mm256_mask_cmplt_epu16_mask(__u, __a, __b);
524 }
525
test_mm_cmpneq_epi8_mask(__m128i __a,__m128i __b)526 __mmask16 test_mm_cmpneq_epi8_mask(__m128i __a, __m128i __b) {
527 // CHECK-LABEL: @test_mm_cmpneq_epi8_mask
528 // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
529 return (__mmask16)_mm_cmpneq_epi8_mask(__a, __b);
530 }
531
test_mm_mask_cmpneq_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)532 __mmask16 test_mm_mask_cmpneq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
533 // CHECK-LABEL: @test_mm_mask_cmpneq_epi8_mask
534 // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
535 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
536 return (__mmask16)_mm_mask_cmpneq_epi8_mask(__u, __a, __b);
537 }
538
test_mm_cmpneq_epu8_mask(__m128i __a,__m128i __b)539 __mmask16 test_mm_cmpneq_epu8_mask(__m128i __a, __m128i __b) {
540 // CHECK-LABEL: @test_mm_cmpneq_epu8_mask
541 // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
542 return (__mmask16)_mm_cmpneq_epu8_mask(__a, __b);
543 }
544
test_mm_mask_cmpneq_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)545 __mmask16 test_mm_mask_cmpneq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
546 // CHECK-LABEL: @test_mm_mask_cmpneq_epu8_mask
547 // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
548 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
549 return (__mmask16)_mm_mask_cmpneq_epu8_mask(__u, __a, __b);
550 }
551
test_mm_cmpneq_epi16_mask(__m128i __a,__m128i __b)552 __mmask8 test_mm_cmpneq_epi16_mask(__m128i __a, __m128i __b) {
553 // CHECK-LABEL: @test_mm_cmpneq_epi16_mask
554 // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
555 return (__mmask8)_mm_cmpneq_epi16_mask(__a, __b);
556 }
557
test_mm_mask_cmpneq_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)558 __mmask8 test_mm_mask_cmpneq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
559 // CHECK-LABEL: @test_mm_mask_cmpneq_epi16_mask
560 // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
561 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
562 return (__mmask8)_mm_mask_cmpneq_epi16_mask(__u, __a, __b);
563 }
564
test_mm_cmpneq_epu16_mask(__m128i __a,__m128i __b)565 __mmask8 test_mm_cmpneq_epu16_mask(__m128i __a, __m128i __b) {
566 // CHECK-LABEL: @test_mm_cmpneq_epu16_mask
567 // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
568 return (__mmask8)_mm_cmpneq_epu16_mask(__a, __b);
569 }
570
test_mm_mask_cmpneq_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)571 __mmask8 test_mm_mask_cmpneq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
572 // CHECK-LABEL: @test_mm_mask_cmpneq_epu16_mask
573 // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
574 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
575 return (__mmask8)_mm_mask_cmpneq_epu16_mask(__u, __a, __b);
576 }
577
test_mm256_cmpneq_epi8_mask(__m256i __a,__m256i __b)578 __mmask32 test_mm256_cmpneq_epi8_mask(__m256i __a, __m256i __b) {
579 // CHECK-LABEL: @test_mm256_cmpneq_epi8_mask
580 // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}}
581 return (__mmask32)_mm256_cmpneq_epi8_mask(__a, __b);
582 }
583
test_mm256_mask_cmpneq_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)584 __mmask32 test_mm256_mask_cmpneq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
585 // CHECK-LABEL: @test_mm256_mask_cmpneq_epi8_mask
586 // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}}
587 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
588 return (__mmask32)_mm256_mask_cmpneq_epi8_mask(__u, __a, __b);
589 }
590
test_mm256_cmpneq_epu8_mask(__m256i __a,__m256i __b)591 __mmask32 test_mm256_cmpneq_epu8_mask(__m256i __a, __m256i __b) {
592 // CHECK-LABEL: @test_mm256_cmpneq_epu8_mask
593 // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}}
594 return (__mmask32)_mm256_cmpneq_epu8_mask(__a, __b);
595 }
596
test_mm256_mask_cmpneq_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)597 __mmask32 test_mm256_mask_cmpneq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
598 // CHECK-LABEL: @test_mm256_mask_cmpneq_epu8_mask
599 // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}}
600 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
601 return (__mmask32)_mm256_mask_cmpneq_epu8_mask(__u, __a, __b);
602 }
603
test_mm256_cmpneq_epi16_mask(__m256i __a,__m256i __b)604 __mmask16 test_mm256_cmpneq_epi16_mask(__m256i __a, __m256i __b) {
605 // CHECK-LABEL: @test_mm256_cmpneq_epi16_mask
606 // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}}
607 return (__mmask16)_mm256_cmpneq_epi16_mask(__a, __b);
608 }
609
test_mm256_mask_cmpneq_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)610 __mmask16 test_mm256_mask_cmpneq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
611 // CHECK-LABEL: @test_mm256_mask_cmpneq_epi16_mask
612 // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}}
613 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
614 return (__mmask16)_mm256_mask_cmpneq_epi16_mask(__u, __a, __b);
615 }
616
test_mm256_cmpneq_epu16_mask(__m256i __a,__m256i __b)617 __mmask16 test_mm256_cmpneq_epu16_mask(__m256i __a, __m256i __b) {
618 // CHECK-LABEL: @test_mm256_cmpneq_epu16_mask
619 // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}}
620 return (__mmask16)_mm256_cmpneq_epu16_mask(__a, __b);
621 }
622
test_mm256_mask_cmpneq_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)623 __mmask16 test_mm256_mask_cmpneq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
624 // CHECK-LABEL: @test_mm256_mask_cmpneq_epu16_mask
625 // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}}
626 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
627 return (__mmask16)_mm256_mask_cmpneq_epu16_mask(__u, __a, __b);
628 }
629
test_mm_cmp_epi8_mask(__m128i __a,__m128i __b)630 __mmask16 test_mm_cmp_epi8_mask(__m128i __a, __m128i __b) {
631 // CHECK-LABEL: @test_mm_cmp_epi8_mask
632 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
633 return (__mmask16)_mm_cmp_epi8_mask(__a, __b, 0);
634 }
635
test_mm_mask_cmp_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)636 __mmask16 test_mm_mask_cmp_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
637 // CHECK-LABEL: @test_mm_mask_cmp_epi8_mask
638 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
639 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
640 return (__mmask16)_mm_mask_cmp_epi8_mask(__u, __a, __b, 0);
641 }
642
test_mm_cmp_epu8_mask(__m128i __a,__m128i __b)643 __mmask16 test_mm_cmp_epu8_mask(__m128i __a, __m128i __b) {
644 // CHECK-LABEL: @test_mm_cmp_epu8_mask
645 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
646 return (__mmask16)_mm_cmp_epu8_mask(__a, __b, 0);
647 }
648
test_mm_mask_cmp_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)649 __mmask16 test_mm_mask_cmp_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
650 // CHECK-LABEL: @test_mm_mask_cmp_epu8_mask
651 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
652 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
653 return (__mmask16)_mm_mask_cmp_epu8_mask(__u, __a, __b, 0);
654 }
655
test_mm_cmp_epi16_mask(__m128i __a,__m128i __b)656 __mmask8 test_mm_cmp_epi16_mask(__m128i __a, __m128i __b) {
657 // CHECK-LABEL: @test_mm_cmp_epi16_mask
658 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
659 return (__mmask8)_mm_cmp_epi16_mask(__a, __b, 0);
660 }
661
test_mm_mask_cmp_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)662 __mmask8 test_mm_mask_cmp_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
663 // CHECK-LABEL: @test_mm_mask_cmp_epi16_mask
664 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
665 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
666 return (__mmask8)_mm_mask_cmp_epi16_mask(__u, __a, __b, 0);
667 }
668
test_mm_cmp_epu16_mask(__m128i __a,__m128i __b)669 __mmask8 test_mm_cmp_epu16_mask(__m128i __a, __m128i __b) {
670 // CHECK-LABEL: @test_mm_cmp_epu16_mask
671 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
672 return (__mmask8)_mm_cmp_epu16_mask(__a, __b, 0);
673 }
674
test_mm_mask_cmp_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)675 __mmask8 test_mm_mask_cmp_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
676 // CHECK-LABEL: @test_mm_mask_cmp_epu16_mask
677 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
678 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
679 return (__mmask8)_mm_mask_cmp_epu16_mask(__u, __a, __b, 0);
680 }
681
test_mm256_cmp_epi8_mask(__m256i __a,__m256i __b)682 __mmask32 test_mm256_cmp_epi8_mask(__m256i __a, __m256i __b) {
683 // CHECK-LABEL: @test_mm256_cmp_epi8_mask
684 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
685 return (__mmask32)_mm256_cmp_epi8_mask(__a, __b, 0);
686 }
687
test_mm256_mask_cmp_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)688 __mmask32 test_mm256_mask_cmp_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
689 // CHECK-LABEL: @test_mm256_mask_cmp_epi8_mask
690 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
691 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
692 return (__mmask32)_mm256_mask_cmp_epi8_mask(__u, __a, __b, 0);
693 }
694
test_mm256_cmp_epu8_mask(__m256i __a,__m256i __b)695 __mmask32 test_mm256_cmp_epu8_mask(__m256i __a, __m256i __b) {
696 // CHECK-LABEL: @test_mm256_cmp_epu8_mask
697 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
698 return (__mmask32)_mm256_cmp_epu8_mask(__a, __b, 0);
699 }
700
test_mm256_mask_cmp_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)701 __mmask32 test_mm256_mask_cmp_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
702 // CHECK-LABEL: @test_mm256_mask_cmp_epu8_mask
703 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
704 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
705 return (__mmask32)_mm256_mask_cmp_epu8_mask(__u, __a, __b, 0);
706 }
707
test_mm256_cmp_epi16_mask(__m256i __a,__m256i __b)708 __mmask16 test_mm256_cmp_epi16_mask(__m256i __a, __m256i __b) {
709 // CHECK-LABEL: @test_mm256_cmp_epi16_mask
710 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
711 return (__mmask16)_mm256_cmp_epi16_mask(__a, __b, 0);
712 }
713
test_mm256_mask_cmp_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)714 __mmask16 test_mm256_mask_cmp_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
715 // CHECK-LABEL: @test_mm256_mask_cmp_epi16_mask
716 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
717 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
718 return (__mmask16)_mm256_mask_cmp_epi16_mask(__u, __a, __b, 0);
719 }
720
test_mm256_cmp_epu16_mask(__m256i __a,__m256i __b)721 __mmask16 test_mm256_cmp_epu16_mask(__m256i __a, __m256i __b) {
722 // CHECK-LABEL: @test_mm256_cmp_epu16_mask
723 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
724 return (__mmask16)_mm256_cmp_epu16_mask(__a, __b, 0);
725 }
726
test_mm256_mask_cmp_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)727 __mmask16 test_mm256_mask_cmp_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
728 // CHECK-LABEL: @test_mm256_mask_cmp_epu16_mask
729 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
730 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
731 return (__mmask16)_mm256_mask_cmp_epu16_mask(__u, __a, __b, 0);
732 }
733
734
test_mm256_mask_add_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)735 __m256i test_mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){
736 //CHECK-LABEL: @test_mm256_mask_add_epi8
737 //CHECK: add <32 x i8> %{{.*}}, %{{.*}}
738 //CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
739 return _mm256_mask_add_epi8(__W, __U , __A, __B);
740 }
741
test_mm256_maskz_add_epi8(__mmask32 __U,__m256i __A,__m256i __B)742 __m256i test_mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
743 //CHECK-LABEL: @test_mm256_maskz_add_epi8
744 //CHECK: add <32 x i8> %{{.*}}, %{{.*}}
745 //CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
746 return _mm256_maskz_add_epi8(__U , __A, __B);
747 }
test_mm256_mask_add_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)748 __m256i test_mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
749 //CHECK-LABEL: @test_mm256_mask_add_epi16
750 //CHECK: add <16 x i16> %{{.*}}, %{{.*}}
751 //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
752 return _mm256_mask_add_epi16(__W, __U , __A, __B);
753 }
754
test_mm256_maskz_add_epi16(__mmask16 __U,__m256i __A,__m256i __B)755 __m256i test_mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
756 //CHECK-LABEL: @test_mm256_maskz_add_epi16
757 //CHECK: add <16 x i16> %{{.*}}, %{{.*}}
758 //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
759 return _mm256_maskz_add_epi16(__U , __A, __B);
760 }
761
test_mm256_mask_sub_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)762 __m256i test_mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
763 //CHECK-LABEL: @test_mm256_mask_sub_epi8
764 //CHECK: sub <32 x i8> %{{.*}}, %{{.*}}
765 //CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
766 return _mm256_mask_sub_epi8(__W, __U , __A, __B);
767 }
768
test_mm256_maskz_sub_epi8(__mmask32 __U,__m256i __A,__m256i __B)769 __m256i test_mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
770 //CHECK-LABEL: @test_mm256_maskz_sub_epi8
771 //CHECK: sub <32 x i8> %{{.*}}, %{{.*}}
772 //CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
773 return _mm256_maskz_sub_epi8(__U , __A, __B);
774 }
775
test_mm256_mask_sub_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)776 __m256i test_mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
777 //CHECK-LABEL: @test_mm256_mask_sub_epi16
778 //CHECK: sub <16 x i16> %{{.*}}, %{{.*}}
779 //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
780 return _mm256_mask_sub_epi16(__W, __U , __A, __B);
781 }
782
test_mm256_maskz_sub_epi16(__mmask16 __U,__m256i __A,__m256i __B)783 __m256i test_mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
784 //CHECK-LABEL: @test_mm256_maskz_sub_epi16
785 //CHECK: sub <16 x i16> %{{.*}}, %{{.*}}
786 //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
787 return _mm256_maskz_sub_epi16(__U , __A, __B);
788 }
789
test_mm_mask_add_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)790 __m128i test_mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
791 //CHECK-LABEL: @test_mm_mask_add_epi8
792 //CHECK: add <16 x i8> %{{.*}}, %{{.*}}
793 //CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
794 return _mm_mask_add_epi8(__W, __U , __A, __B);
795 }
796
test_mm_maskz_add_epi8(__mmask16 __U,__m128i __A,__m128i __B)797 __m128i test_mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
798 //CHECK-LABEL: @test_mm_maskz_add_epi8
799 //CHECK: add <16 x i8> %{{.*}}, %{{.*}}
800 //CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
801 return _mm_maskz_add_epi8(__U , __A, __B);
802 }
803
test_mm_mask_add_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)804 __m128i test_mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
805 //CHECK-LABEL: @test_mm_mask_add_epi16
806 //CHECK: add <8 x i16> %{{.*}}, %{{.*}}
807 //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
808 return _mm_mask_add_epi16(__W, __U , __A, __B);
809 }
810
test_mm_maskz_add_epi16(__mmask8 __U,__m128i __A,__m128i __B)811 __m128i test_mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
812 //CHECK-LABEL: @test_mm_maskz_add_epi16
813 //CHECK: add <8 x i16> %{{.*}}, %{{.*}}
814 //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
815 return _mm_maskz_add_epi16(__U , __A, __B);
816 }
817
test_mm_mask_sub_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)818 __m128i test_mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
819 //CHECK-LABEL: @test_mm_mask_sub_epi8
820 //CHECK: sub <16 x i8> %{{.*}}, %{{.*}}
821 //CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
822 return _mm_mask_sub_epi8(__W, __U , __A, __B);
823 }
824
test_mm_maskz_sub_epi8(__mmask16 __U,__m128i __A,__m128i __B)825 __m128i test_mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
826 //CHECK-LABEL: @test_mm_maskz_sub_epi8
827 //CHECK: sub <16 x i8> %{{.*}}, %{{.*}}
828 //CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
829 return _mm_maskz_sub_epi8(__U , __A, __B);
830 }
831
test_mm_mask_sub_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)832 __m128i test_mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
833 //CHECK-LABEL: @test_mm_mask_sub_epi16
834 //CHECK: sub <8 x i16> %{{.*}}, %{{.*}}
835 //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
836 return _mm_mask_sub_epi16(__W, __U , __A, __B);
837 }
838
test_mm_maskz_sub_epi16(__mmask8 __U,__m128i __A,__m128i __B)839 __m128i test_mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
840 //CHECK-LABEL: @test_mm_maskz_sub_epi16
841 //CHECK: sub <8 x i16> %{{.*}}, %{{.*}}
842 //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
843 return _mm_maskz_sub_epi16(__U , __A, __B);
844 }
845
test_mm256_mask_mullo_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)846 __m256i test_mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
847 //CHECK-LABEL: @test_mm256_mask_mullo_epi16
848 //CHECK: mul <16 x i16> %{{.*}}, %{{.*}}
849 //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
850 return _mm256_mask_mullo_epi16(__W, __U , __A, __B);
851 }
852
test_mm256_maskz_mullo_epi16(__mmask16 __U,__m256i __A,__m256i __B)853 __m256i test_mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
854 //CHECK-LABEL: @test_mm256_maskz_mullo_epi16
855 //CHECK: mul <16 x i16> %{{.*}}, %{{.*}}
856 //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
857 return _mm256_maskz_mullo_epi16(__U , __A, __B);
858 }
859
test_mm_mask_mullo_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)860 __m128i test_mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
861 //CHECK-LABEL: @test_mm_mask_mullo_epi16
862 //CHECK: mul <8 x i16> %{{.*}}, %{{.*}}
863 //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
864 return _mm_mask_mullo_epi16(__W, __U , __A, __B);
865 }
866
test_mm_maskz_mullo_epi16(__mmask8 __U,__m128i __A,__m128i __B)867 __m128i test_mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
868 //CHECK-LABEL: @test_mm_maskz_mullo_epi16
869 //CHECK: mul <8 x i16> %{{.*}}, %{{.*}}
870 //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
871 return _mm_maskz_mullo_epi16(__U , __A, __B);
872 }
873
874
test_mm_mask_blend_epi8(__mmask16 __U,__m128i __A,__m128i __W)875 __m128i test_mm_mask_blend_epi8(__mmask16 __U, __m128i __A, __m128i __W) {
876 // CHECK-LABEL: @test_mm_mask_blend_epi8
877 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
878 return _mm_mask_blend_epi8(__U,__A,__W);
879 }
test_mm256_mask_blend_epi8(__mmask32 __U,__m256i __A,__m256i __W)880 __m256i test_mm256_mask_blend_epi8(__mmask32 __U, __m256i __A, __m256i __W) {
881 // CHECK-LABEL: @test_mm256_mask_blend_epi8
882 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
883 return _mm256_mask_blend_epi8(__U,__A,__W);
884 }
885
test_mm_mask_blend_epi16(__mmask8 __U,__m128i __A,__m128i __W)886 __m128i test_mm_mask_blend_epi16(__mmask8 __U, __m128i __A, __m128i __W) {
887 // CHECK-LABEL: @test_mm_mask_blend_epi16
888 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
889 return _mm_mask_blend_epi16(__U,__A,__W);
890 }
891
test_mm256_mask_blend_epi16(__mmask16 __U,__m256i __A,__m256i __W)892 __m256i test_mm256_mask_blend_epi16(__mmask16 __U, __m256i __A, __m256i __W) {
893 // CHECK-LABEL: @test_mm256_mask_blend_epi16
894 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
895 return _mm256_mask_blend_epi16(__U,__A,__W);
896 }
897
test_mm_mask_abs_epi8(__m128i __W,__mmask16 __U,__m128i __A)898 __m128i test_mm_mask_abs_epi8(__m128i __W, __mmask16 __U, __m128i __A) {
899 // CHECK-LABEL: @test_mm_mask_abs_epi8
900 // CHECK: [[SUB:%.*]] = sub <16 x i8> zeroinitializer, [[A:%.*]]
901 // CHECK: [[CMP:%.*]] = icmp sgt <16 x i8> [[A]], zeroinitializer
902 // CHECK: [[SEL:%.*]] = select <16 x i1> [[CMP]], <16 x i8> [[A]], <16 x i8> [[SUB]]
903 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[SEL]] to [[DSTTY:<2 x i64>]]
904 // CHECK: [[SEL:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
905 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> [[SEL]], <16 x i8> %{{.*}}
906 return _mm_mask_abs_epi8(__W,__U,__A);
907 }
908
test_mm_maskz_abs_epi8(__mmask16 __U,__m128i __A)909 __m128i test_mm_maskz_abs_epi8(__mmask16 __U, __m128i __A) {
910 // CHECK-LABEL: @test_mm_maskz_abs_epi8
911 // CHECK: [[SUB:%.*]] = sub <16 x i8> zeroinitializer, [[A:%.*]]
912 // CHECK: [[CMP:%.*]] = icmp sgt <16 x i8> [[A]], zeroinitializer
913 // CHECK: [[SEL:%.*]] = select <16 x i1> [[CMP]], <16 x i8> [[A]], <16 x i8> [[SUB]]
914 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[SEL]] to [[DSTTY:<2 x i64>]]
915 // CHECK: [[SEL:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
916 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> [[SEL]], <16 x i8> %{{.*}}
917 return _mm_maskz_abs_epi8(__U,__A);
918 }
919
test_mm256_mask_abs_epi8(__m256i __W,__mmask32 __U,__m256i __A)920 __m256i test_mm256_mask_abs_epi8(__m256i __W, __mmask32 __U, __m256i __A) {
921 // CHECK-LABEL: @test_mm256_mask_abs_epi8
922 // CHECK: [[SUB:%.*]] = sub <32 x i8> zeroinitializer, [[A:%.*]]
923 // CHECK: [[CMP:%.*]] = icmp sgt <32 x i8> [[A]], zeroinitializer
924 // CHECK: [[SEL:%.*]] = select <32 x i1> [[CMP]], <32 x i8> [[A]], <32 x i8> [[SUB]]
925 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[SEL]] to [[DSTTY:<4 x i64>]]
926 // CHECK: [[SEL:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
927 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> [[SEL]], <32 x i8> %{{.*}}
928 return _mm256_mask_abs_epi8(__W,__U,__A);
929 }
930
test_mm256_maskz_abs_epi8(__mmask32 __U,__m256i __A)931 __m256i test_mm256_maskz_abs_epi8(__mmask32 __U, __m256i __A) {
932 // CHECK-LABEL: @test_mm256_maskz_abs_epi8
933 // CHECK: [[SUB:%.*]] = sub <32 x i8> zeroinitializer, [[A:%.*]]
934 // CHECK: [[CMP:%.*]] = icmp sgt <32 x i8> [[A]], zeroinitializer
935 // CHECK: [[SEL:%.*]] = select <32 x i1> [[CMP]], <32 x i8> [[A]], <32 x i8> [[SUB]]
936 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[SEL]] to [[DSTTY:<4 x i64>]]
937 // CHECK: [[SEL:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
938 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> [[SEL]], <32 x i8> %{{.*}}
939 return _mm256_maskz_abs_epi8(__U,__A);
940 }
941
test_mm_mask_abs_epi16(__m128i __W,__mmask8 __U,__m128i __A)942 __m128i test_mm_mask_abs_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
943 // CHECK-LABEL: @test_mm_mask_abs_epi16
944 // CHECK: [[SUB:%.*]] = sub <8 x i16> zeroinitializer, [[A:%.*]]
945 // CHECK: [[CMP:%.*]] = icmp sgt <8 x i16> [[A]], zeroinitializer
946 // CHECK: [[SEL:%.*]] = select <8 x i1> [[CMP]], <8 x i16> [[A]], <8 x i16> [[SUB]]
947 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[SEL]] to [[DSTTY:<2 x i64>]]
948 // CHECK: [[SEL:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
949 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> [[SEL]], <8 x i16> %{{.*}}
950 return _mm_mask_abs_epi16(__W,__U,__A);
951 }
952
test_mm_maskz_abs_epi16(__mmask8 __U,__m128i __A)953 __m128i test_mm_maskz_abs_epi16(__mmask8 __U, __m128i __A) {
954 // CHECK-LABEL: @test_mm_maskz_abs_epi16
955 // CHECK: [[SUB:%.*]] = sub <8 x i16> zeroinitializer, [[A:%.*]]
956 // CHECK: [[CMP:%.*]] = icmp sgt <8 x i16> [[A]], zeroinitializer
957 // CHECK: [[SEL:%.*]] = select <8 x i1> [[CMP]], <8 x i16> [[A]], <8 x i16> [[SUB]]
958 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[SEL]] to [[DSTTY:<2 x i64>]]
959 // CHECK: [[SEL:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
960 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> [[SEL]], <8 x i16> %{{.*}}
961 return _mm_maskz_abs_epi16(__U,__A);
962 }
963
test_mm256_mask_abs_epi16(__m256i __W,__mmask16 __U,__m256i __A)964 __m256i test_mm256_mask_abs_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
965 // CHECK-LABEL: @test_mm256_mask_abs_epi16
966 // CHECK: [[SUB:%.*]] = sub <16 x i16> zeroinitializer, [[A:%.*]]
967 // CHECK: [[CMP:%.*]] = icmp sgt <16 x i16> [[A]], zeroinitializer
968 // CHECK: [[SEL:%.*]] = select <16 x i1> [[CMP]], <16 x i16> [[A]], <16 x i16> [[SUB]]
969 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[SEL]] to [[DSTTY:<4 x i64>]]
970 // CHECK: [[SEL:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
971 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> [[SEL]], <16 x i16> %{{.*}}
972 return _mm256_mask_abs_epi16(__W,__U,__A);
973 }
974
test_mm256_maskz_abs_epi16(__mmask16 __U,__m256i __A)975 __m256i test_mm256_maskz_abs_epi16(__mmask16 __U, __m256i __A) {
976 // CHECK-LABEL: @test_mm256_maskz_abs_epi16
977 // CHECK: [[SUB:%.*]] = sub <16 x i16> zeroinitializer, [[A:%.*]]
978 // CHECK: [[CMP:%.*]] = icmp sgt <16 x i16> [[A]], zeroinitializer
979 // CHECK: [[SEL:%.*]] = select <16 x i1> [[CMP]], <16 x i16> [[A]], <16 x i16> [[SUB]]
980 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[SEL]] to [[DSTTY:<4 x i64>]]
981 // CHECK: [[SEL:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
982 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> [[SEL]], <16 x i16> %{{.*}}
983 return _mm256_maskz_abs_epi16(__U,__A);
984 }
985
test_mm_maskz_packs_epi32(__mmask8 __M,__m128i __A,__m128i __B)986 __m128i test_mm_maskz_packs_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
987 // CHECK-LABEL: @test_mm_maskz_packs_epi32
988 // CHECK: @llvm.x86.sse2.packssdw
989 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
990 return _mm_maskz_packs_epi32(__M,__A,__B);
991 }
test_mm_mask_packs_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)992 __m128i test_mm_mask_packs_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
993 // CHECK-LABEL: @test_mm_mask_packs_epi32
994 // CHECK: @llvm.x86.sse2.packssdw
995 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
996 return _mm_mask_packs_epi32(__W,__M,__A,__B);
997 }
test_mm256_maskz_packs_epi32(__mmask16 __M,__m256i __A,__m256i __B)998 __m256i test_mm256_maskz_packs_epi32(__mmask16 __M, __m256i __A, __m256i __B) {
999 // CHECK-LABEL: @test_mm256_maskz_packs_epi32
1000 // CHECK: @llvm.x86.avx2.packssdw
1001 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1002 return _mm256_maskz_packs_epi32(__M,__A,__B);
1003 }
test_mm256_mask_packs_epi32(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1004 __m256i test_mm256_mask_packs_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
1005 // CHECK-LABEL: @test_mm256_mask_packs_epi32
1006 // CHECK: @llvm.x86.avx2.packssdw
1007 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1008 return _mm256_mask_packs_epi32(__W,__M,__A,__B);
1009 }
test_mm_maskz_packs_epi16(__mmask16 __M,__m128i __A,__m128i __B)1010 __m128i test_mm_maskz_packs_epi16(__mmask16 __M, __m128i __A, __m128i __B) {
1011 // CHECK-LABEL: @test_mm_maskz_packs_epi16
1012 // CHECK: @llvm.x86.sse2.packsswb
1013 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1014 return _mm_maskz_packs_epi16(__M,__A,__B);
1015 }
test_mm_mask_packs_epi16(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1016 __m128i test_mm_mask_packs_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
1017 // CHECK-LABEL: @test_mm_mask_packs_epi16
1018 // CHECK: @llvm.x86.sse2.packsswb
1019 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1020 return _mm_mask_packs_epi16(__W,__M,__A,__B);
1021 }
test_mm256_maskz_packs_epi16(__mmask32 __M,__m256i __A,__m256i __B)1022 __m256i test_mm256_maskz_packs_epi16(__mmask32 __M, __m256i __A, __m256i __B) {
1023 // CHECK-LABEL: @test_mm256_maskz_packs_epi16
1024 // CHECK: @llvm.x86.avx2.packsswb
1025 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1026 return _mm256_maskz_packs_epi16(__M,__A,__B);
1027 }
test_mm256_mask_packs_epi16(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1028 __m256i test_mm256_mask_packs_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
1029 // CHECK-LABEL: @test_mm256_mask_packs_epi16
1030 // CHECK: @llvm.x86.avx2.packsswb
1031 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1032 return _mm256_mask_packs_epi16(__W,__M,__A,__B);
1033 }
1034
test_mm_mask_packus_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1035 __m128i test_mm_mask_packus_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
1036 // CHECK-LABEL: @test_mm_mask_packus_epi32
1037 // CHECK: @llvm.x86.sse41.packusdw
1038 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1039 return _mm_mask_packus_epi32(__W,__M,__A,__B);
1040 }
1041
test_mm_maskz_packus_epi32(__mmask8 __M,__m128i __A,__m128i __B)1042 __m128i test_mm_maskz_packus_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
1043 // CHECK-LABEL: @test_mm_maskz_packus_epi32
1044 // CHECK: @llvm.x86.sse41.packusdw
1045 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1046 return _mm_maskz_packus_epi32(__M,__A,__B);
1047 }
1048
test_mm256_maskz_packus_epi32(__mmask16 __M,__m256i __A,__m256i __B)1049 __m256i test_mm256_maskz_packus_epi32(__mmask16 __M, __m256i __A, __m256i __B) {
1050 // CHECK-LABEL: @test_mm256_maskz_packus_epi32
1051 // CHECK: @llvm.x86.avx2.packusdw
1052 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1053 return _mm256_maskz_packus_epi32(__M,__A,__B);
1054 }
1055
test_mm256_mask_packus_epi32(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1056 __m256i test_mm256_mask_packus_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
1057 // CHECK-LABEL: @test_mm256_mask_packus_epi32
1058 // CHECK: @llvm.x86.avx2.packusdw
1059 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1060 return _mm256_mask_packus_epi32(__W,__M,__A,__B);
1061 }
1062
test_mm_maskz_packus_epi16(__mmask16 __M,__m128i __A,__m128i __B)1063 __m128i test_mm_maskz_packus_epi16(__mmask16 __M, __m128i __A, __m128i __B) {
1064 // CHECK-LABEL: @test_mm_maskz_packus_epi16
1065 // CHECK: @llvm.x86.sse2.packuswb
1066 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1067 return _mm_maskz_packus_epi16(__M,__A,__B);
1068 }
1069
test_mm_mask_packus_epi16(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1070 __m128i test_mm_mask_packus_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
1071 // CHECK-LABEL: @test_mm_mask_packus_epi16
1072 // CHECK: @llvm.x86.sse2.packuswb
1073 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1074 return _mm_mask_packus_epi16(__W,__M,__A,__B);
1075 }
1076
test_mm256_maskz_packus_epi16(__mmask32 __M,__m256i __A,__m256i __B)1077 __m256i test_mm256_maskz_packus_epi16(__mmask32 __M, __m256i __A, __m256i __B) {
1078 // CHECK-LABEL: @test_mm256_maskz_packus_epi16
1079 // CHECK: @llvm.x86.avx2.packuswb
1080 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1081 return _mm256_maskz_packus_epi16(__M,__A,__B);
1082 }
1083
test_mm256_mask_packus_epi16(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1084 __m256i test_mm256_mask_packus_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
1085 // CHECK-LABEL: @test_mm256_mask_packus_epi16
1086 // CHECK: @llvm.x86.avx2.packuswb
1087 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1088 return _mm256_mask_packus_epi16(__W,__M,__A,__B);
1089 }
1090
test_mm_mask_adds_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1091 __m128i test_mm_mask_adds_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1092 // CHECK-LABEL: @test_mm_mask_adds_epi8
1093 // CHECK: @llvm.sadd.sat.v16i8
1094 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1095 return _mm_mask_adds_epi8(__W,__U,__A,__B);
1096 }
test_mm_maskz_adds_epi8(__mmask16 __U,__m128i __A,__m128i __B)1097 __m128i test_mm_maskz_adds_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
1098 // CHECK-LABEL: @test_mm_maskz_adds_epi8
1099 // CHECK: @llvm.sadd.sat.v16i8
1100 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1101 return _mm_maskz_adds_epi8(__U,__A,__B);
1102 }
test_mm256_mask_adds_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1103 __m256i test_mm256_mask_adds_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1104 // CHECK-LABEL: @test_mm256_mask_adds_epi8
1105 // CHECK: @llvm.sadd.sat.v32i8
1106 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1107 return _mm256_mask_adds_epi8(__W,__U,__A,__B);
1108 }
test_mm256_maskz_adds_epi8(__mmask32 __U,__m256i __A,__m256i __B)1109 __m256i test_mm256_maskz_adds_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
1110 // CHECK-LABEL: @test_mm256_maskz_adds_epi8
1111 // CHECK: @llvm.sadd.sat.v32i8
1112 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1113 return _mm256_maskz_adds_epi8(__U,__A,__B);
1114 }
test_mm_mask_adds_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1115 __m128i test_mm_mask_adds_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1116 // CHECK-LABEL: @test_mm_mask_adds_epi16
1117 // CHECK: @llvm.sadd.sat.v8i16
1118 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1119 return _mm_mask_adds_epi16(__W,__U,__A,__B);
1120 }
test_mm_maskz_adds_epi16(__mmask8 __U,__m128i __A,__m128i __B)1121 __m128i test_mm_maskz_adds_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1122 // CHECK-LABEL: @test_mm_maskz_adds_epi16
1123 // CHECK: @llvm.sadd.sat.v8i16
1124 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1125 return _mm_maskz_adds_epi16(__U,__A,__B);
1126 }
test_mm256_mask_adds_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1127 __m256i test_mm256_mask_adds_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1128 // CHECK-LABEL: @test_mm256_mask_adds_epi16
1129 // CHECK: @llvm.sadd.sat.v16i16
1130 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1131 return _mm256_mask_adds_epi16(__W,__U,__A,__B);
1132 }
test_mm256_maskz_adds_epi16(__mmask16 __U,__m256i __A,__m256i __B)1133 __m256i test_mm256_maskz_adds_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
1134 // CHECK-LABEL: @test_mm256_maskz_adds_epi16
1135 // CHECK: @llvm.sadd.sat.v16i16
1136 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1137 return _mm256_maskz_adds_epi16(__U,__A,__B);
1138 }
test_mm_mask_adds_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1139 __m128i test_mm_mask_adds_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1140 // CHECK-LABEL: @test_mm_mask_adds_epu8
1141 // CHECK-NOT: @llvm.x86.sse2.paddus.b
1142 // CHECK: call <16 x i8> @llvm.uadd.sat.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1143 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1144 return _mm_mask_adds_epu8(__W,__U,__A,__B);
1145 }
test_mm_maskz_adds_epu8(__mmask16 __U,__m128i __A,__m128i __B)1146 __m128i test_mm_maskz_adds_epu8(__mmask16 __U, __m128i __A, __m128i __B) {
1147 // CHECK-LABEL: @test_mm_maskz_adds_epu8
1148 // CHECK-NOT: @llvm.x86.sse2.paddus.b
1149 // CHECK: call <16 x i8> @llvm.uadd.sat.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1150 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1151 return _mm_maskz_adds_epu8(__U,__A,__B);
1152 }
test_mm256_mask_adds_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1153 __m256i test_mm256_mask_adds_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1154 // CHECK-LABEL: @test_mm256_mask_adds_epu8
1155 // CHECK-NOT: @llvm.x86.avx2.paddus.b
1156 // CHECK: call <32 x i8> @llvm.uadd.sat.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1157 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1158 return _mm256_mask_adds_epu8(__W,__U,__A,__B);
1159 }
test_mm256_maskz_adds_epu8(__mmask32 __U,__m256i __A,__m256i __B)1160 __m256i test_mm256_maskz_adds_epu8(__mmask32 __U, __m256i __A, __m256i __B) {
1161 // CHECK-LABEL: @test_mm256_maskz_adds_epu8
1162 // CHECK-NOT: @llvm.x86.avx2.paddus.b
1163 // CHECK: call <32 x i8> @llvm.uadd.sat.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1164 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1165 return _mm256_maskz_adds_epu8(__U,__A,__B);
1166 }
test_mm_mask_adds_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1167 __m128i test_mm_mask_adds_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1168 // CHECK-LABEL: @test_mm_mask_adds_epu16
1169 // CHECK-NOT: @llvm.x86.sse2.paddus.w
1170 // CHECK: call <8 x i16> @llvm.uadd.sat.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1171 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1172 return _mm_mask_adds_epu16(__W,__U,__A,__B);
1173 }
test_mm_maskz_adds_epu16(__mmask8 __U,__m128i __A,__m128i __B)1174 __m128i test_mm_maskz_adds_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
1175 // CHECK-LABEL: @test_mm_maskz_adds_epu16
1176 // CHECK-NOT: @llvm.x86.sse2.paddus.w
1177 // CHECK: call <8 x i16> @llvm.uadd.sat.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1178 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1179 return _mm_maskz_adds_epu16(__U,__A,__B);
1180 }
test_mm256_mask_adds_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1181 __m256i test_mm256_mask_adds_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1182 // CHECK-LABEL: @test_mm256_mask_adds_epu16
1183 // CHECK-NOT: @llvm.x86.avx2.paddus.w
1184 // CHECK: call <16 x i16> @llvm.uadd.sat.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1185 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1186 return _mm256_mask_adds_epu16(__W,__U,__A,__B);
1187 }
test_mm256_maskz_adds_epu16(__mmask16 __U,__m256i __A,__m256i __B)1188 __m256i test_mm256_maskz_adds_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
1189 // CHECK-LABEL: @test_mm256_maskz_adds_epu16
1190 // CHECK-NOT: @llvm.x86.avx2.paddus.w
1191 // CHECK: call <16 x i16> @llvm.uadd.sat.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1192 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1193 return _mm256_maskz_adds_epu16(__U,__A,__B);
1194 }
test_mm_mask_avg_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1195 __m128i test_mm_mask_avg_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1196 // CHECK-LABEL: @test_mm_mask_avg_epu8
1197 // CHECK: @llvm.x86.sse2.pavg.b
1198 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1199 return _mm_mask_avg_epu8(__W,__U,__A,__B);
1200 }
test_mm_maskz_avg_epu8(__mmask16 __U,__m128i __A,__m128i __B)1201 __m128i test_mm_maskz_avg_epu8(__mmask16 __U, __m128i __A, __m128i __B) {
1202 // CHECK-LABEL: @test_mm_maskz_avg_epu8
1203 // CHECK: @llvm.x86.sse2.pavg.b
1204 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1205 return _mm_maskz_avg_epu8(__U,__A,__B);
1206 }
test_mm256_mask_avg_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1207 __m256i test_mm256_mask_avg_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1208 // CHECK-LABEL: @test_mm256_mask_avg_epu8
1209 // CHECK: @llvm.x86.avx2.pavg.b
1210 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1211 return _mm256_mask_avg_epu8(__W,__U,__A,__B);
1212 }
test_mm256_maskz_avg_epu8(__mmask32 __U,__m256i __A,__m256i __B)1213 __m256i test_mm256_maskz_avg_epu8(__mmask32 __U, __m256i __A, __m256i __B) {
1214 // CHECK-LABEL: @test_mm256_maskz_avg_epu8
1215 // CHECK: @llvm.x86.avx2.pavg.b
1216 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1217 return _mm256_maskz_avg_epu8(__U,__A,__B);
1218 }
test_mm_mask_avg_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1219 __m128i test_mm_mask_avg_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1220 // CHECK-LABEL: @test_mm_mask_avg_epu16
1221 // CHECK: @llvm.x86.sse2.pavg.w
1222 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1223 return _mm_mask_avg_epu16(__W,__U,__A,__B);
1224 }
test_mm_maskz_avg_epu16(__mmask8 __U,__m128i __A,__m128i __B)1225 __m128i test_mm_maskz_avg_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
1226 // CHECK-LABEL: @test_mm_maskz_avg_epu16
1227 // CHECK: @llvm.x86.sse2.pavg.w
1228 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1229 return _mm_maskz_avg_epu16(__U,__A,__B);
1230 }
test_mm256_mask_avg_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1231 __m256i test_mm256_mask_avg_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1232 // CHECK-LABEL: @test_mm256_mask_avg_epu16
1233 // CHECK: @llvm.x86.avx2.pavg.w
1234 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1235 return _mm256_mask_avg_epu16(__W,__U,__A,__B);
1236 }
test_mm256_maskz_avg_epu16(__mmask16 __U,__m256i __A,__m256i __B)1237 __m256i test_mm256_maskz_avg_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
1238 // CHECK-LABEL: @test_mm256_maskz_avg_epu16
1239 // CHECK: @llvm.x86.avx2.pavg.w
1240 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1241 return _mm256_maskz_avg_epu16(__U,__A,__B);
1242 }
test_mm_maskz_max_epi8(__mmask16 __M,__m128i __A,__m128i __B)1243 __m128i test_mm_maskz_max_epi8(__mmask16 __M, __m128i __A, __m128i __B) {
1244 // CHECK-LABEL: @test_mm_maskz_max_epi8
1245 // CHECK: [[CMP:%.*]] = icmp sgt <16 x i8> [[X:%.*]], [[Y:%.*]]
1246 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i8> [[X]], <16 x i8> [[Y]]
1247 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1248 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1249 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1250 return _mm_maskz_max_epi8(__M,__A,__B);
1251 }
test_mm_mask_max_epi8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1252 __m128i test_mm_mask_max_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
1253 // CHECK-LABEL: @test_mm_mask_max_epi8
1254 // CHECK: [[CMP:%.*]] = icmp sgt <16 x i8> [[X:%.*]], [[Y:%.*]]
1255 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i8> [[X]], <16 x i8> [[Y]]
1256 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1257 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1258 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1259 return _mm_mask_max_epi8(__W,__M,__A,__B);
1260 }
test_mm256_maskz_max_epi8(__mmask32 __M,__m256i __A,__m256i __B)1261 __m256i test_mm256_maskz_max_epi8(__mmask32 __M, __m256i __A, __m256i __B) {
1262 // CHECK-LABEL: @test_mm256_maskz_max_epi8
1263 // CHECK: [[CMP:%.*]] = icmp sgt <32 x i8> [[X:%.*]], [[Y:%.*]]
1264 // CHECK-NEXT: [[RES:%.*]] = select <32 x i1> [[CMP]], <32 x i8> [[X]], <32 x i8> [[Y]]
1265 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1266 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1267 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1268 return _mm256_maskz_max_epi8(__M,__A,__B);
1269 }
test_mm256_mask_max_epi8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1270 __m256i test_mm256_mask_max_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
1271 // CHECK-LABEL: @test_mm256_mask_max_epi8
1272 // CHECK: [[CMP:%.*]] = icmp sgt <32 x i8> [[X:%.*]], [[Y:%.*]]
1273 // CHECK-NEXT: [[RES:%.*]] = select <32 x i1> [[CMP]], <32 x i8> [[X]], <32 x i8> [[Y]]
1274 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1275 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1276 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1277 return _mm256_mask_max_epi8(__W,__M,__A,__B);
1278 }
test_mm_maskz_max_epi16(__mmask8 __M,__m128i __A,__m128i __B)1279 __m128i test_mm_maskz_max_epi16(__mmask8 __M, __m128i __A, __m128i __B) {
1280 // CHECK-LABEL: @test_mm_maskz_max_epi16
1281 // CHECK: [[CMP:%.*]] = icmp sgt <8 x i16> [[X:%.*]], [[Y:%.*]]
1282 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i16> [[X]], <8 x i16> [[Y]]
1283 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1284 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1285 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1286 return _mm_maskz_max_epi16(__M,__A,__B);
1287 }
test_mm_mask_max_epi16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1288 __m128i test_mm_mask_max_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
1289 // CHECK-LABEL: @test_mm_mask_max_epi16
1290 // CHECK: [[CMP:%.*]] = icmp sgt <8 x i16> [[X:%.*]], [[Y:%.*]]
1291 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i16> [[X]], <8 x i16> [[Y]]
1292 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1293 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1294 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1295 return _mm_mask_max_epi16(__W,__M,__A,__B);
1296 }
test_mm256_maskz_max_epi16(__mmask16 __M,__m256i __A,__m256i __B)1297 __m256i test_mm256_maskz_max_epi16(__mmask16 __M, __m256i __A, __m256i __B) {
1298 // CHECK-LABEL: @test_mm256_maskz_max_epi16
1299 // CHECK: [[CMP:%.*]] = icmp sgt <16 x i16> [[X:%.*]], [[Y:%.*]]
1300 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i16> [[X]], <16 x i16> [[Y]]
1301 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1302 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1303 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1304 return _mm256_maskz_max_epi16(__M,__A,__B);
1305 }
test_mm256_mask_max_epi16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1306 __m256i test_mm256_mask_max_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
1307 // CHECK-LABEL: @test_mm256_mask_max_epi16
1308 // CHECK: [[CMP:%.*]] = icmp sgt <16 x i16> [[X:%.*]], [[Y:%.*]]
1309 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i16> [[X]], <16 x i16> [[Y]]
1310 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1311 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1312 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1313 return _mm256_mask_max_epi16(__W,__M,__A,__B);
1314 }
test_mm_maskz_max_epu8(__mmask16 __M,__m128i __A,__m128i __B)1315 __m128i test_mm_maskz_max_epu8(__mmask16 __M, __m128i __A, __m128i __B) {
1316 // CHECK-LABEL: @test_mm_maskz_max_epu8
1317 // CHECK: [[CMP:%.*]] = icmp ugt <16 x i8> [[X:%.*]], [[Y:%.*]]
1318 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i8> [[X]], <16 x i8> [[Y]]
1319 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1320 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1321 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1322 return _mm_maskz_max_epu8(__M,__A,__B);
1323 }
test_mm_mask_max_epu8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1324 __m128i test_mm_mask_max_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
1325 // CHECK-LABEL: @test_mm_mask_max_epu8
1326 // CHECK: [[CMP:%.*]] = icmp ugt <16 x i8> [[X:%.*]], [[Y:%.*]]
1327 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i8> [[X]], <16 x i8> [[Y]]
1328 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1329 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1330 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1331 return _mm_mask_max_epu8(__W,__M,__A,__B);
1332 }
test_mm256_maskz_max_epu8(__mmask32 __M,__m256i __A,__m256i __B)1333 __m256i test_mm256_maskz_max_epu8(__mmask32 __M, __m256i __A, __m256i __B) {
1334 // CHECK-LABEL: @test_mm256_maskz_max_epu8
1335 // CHECK: [[CMP:%.*]] = icmp ugt <32 x i8> [[X:%.*]], [[Y:%.*]]
1336 // CHECK-NEXT: [[RES:%.*]] = select <32 x i1> [[CMP]], <32 x i8> [[X]], <32 x i8> [[Y]]
1337 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1338 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1339 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1340 return _mm256_maskz_max_epu8(__M,__A,__B);
1341 }
test_mm256_mask_max_epu8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1342 __m256i test_mm256_mask_max_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
1343 // CHECK-LABEL: @test_mm256_mask_max_epu8
1344 // CHECK: [[CMP:%.*]] = icmp ugt <32 x i8> [[X:%.*]], [[Y:%.*]]
1345 // CHECK-NEXT: [[RES:%.*]] = select <32 x i1> [[CMP]], <32 x i8> [[X]], <32 x i8> [[Y]]
1346 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1347 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1348 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1349 return _mm256_mask_max_epu8(__W,__M,__A,__B);
1350 }
test_mm_maskz_max_epu16(__mmask8 __M,__m128i __A,__m128i __B)1351 __m128i test_mm_maskz_max_epu16(__mmask8 __M, __m128i __A, __m128i __B) {
1352 // CHECK-LABEL: @test_mm_maskz_max_epu16
1353 // CHECK: [[CMP:%.*]] = icmp ugt <8 x i16> [[X:%.*]], [[Y:%.*]]
1354 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i16> [[X]], <8 x i16> [[Y]]
1355 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1356 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1357 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1358 return _mm_maskz_max_epu16(__M,__A,__B);
1359 }
test_mm_mask_max_epu16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1360 __m128i test_mm_mask_max_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
1361 // CHECK-LABEL: @test_mm_mask_max_epu16
1362 // CHECK: [[CMP:%.*]] = icmp ugt <8 x i16> [[X:%.*]], [[Y:%.*]]
1363 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i16> [[X]], <8 x i16> [[Y]]
1364 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1365 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1366 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1367 return _mm_mask_max_epu16(__W,__M,__A,__B);
1368 }
test_mm256_maskz_max_epu16(__mmask16 __M,__m256i __A,__m256i __B)1369 __m256i test_mm256_maskz_max_epu16(__mmask16 __M, __m256i __A, __m256i __B) {
1370 // CHECK-LABEL: @test_mm256_maskz_max_epu16
1371 // CHECK: [[CMP:%.*]] = icmp ugt <16 x i16> [[X:%.*]], [[Y:%.*]]
1372 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i16> [[X]], <16 x i16> [[Y]]
1373 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1374 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1375 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1376 return _mm256_maskz_max_epu16(__M,__A,__B);
1377 }
test_mm256_mask_max_epu16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1378 __m256i test_mm256_mask_max_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
1379 // CHECK-LABEL: @test_mm256_mask_max_epu16
1380 // CHECK: [[CMP:%.*]] = icmp ugt <16 x i16> [[X:%.*]], [[Y:%.*]]
1381 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i16> [[X]], <16 x i16> [[Y]]
1382 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1383 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1384 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1385 return _mm256_mask_max_epu16(__W,__M,__A,__B);
1386 }
test_mm_maskz_min_epi8(__mmask16 __M,__m128i __A,__m128i __B)1387 __m128i test_mm_maskz_min_epi8(__mmask16 __M, __m128i __A, __m128i __B) {
1388 // CHECK-LABEL: @test_mm_maskz_min_epi8
1389 // CHECK: [[CMP:%.*]] = icmp slt <16 x i8> [[X:%.*]], [[Y:%.*]]
1390 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i8> [[X]], <16 x i8> [[Y]]
1391 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1392 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1393 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1394 return _mm_maskz_min_epi8(__M,__A,__B);
1395 }
test_mm_mask_min_epi8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1396 __m128i test_mm_mask_min_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
1397 // CHECK-LABEL: @test_mm_mask_min_epi8
1398 // CHECK: [[CMP:%.*]] = icmp slt <16 x i8> [[X:%.*]], [[Y:%.*]]
1399 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i8> [[X]], <16 x i8> [[Y]]
1400 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1401 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1402 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1403 return _mm_mask_min_epi8(__W,__M,__A,__B);
1404 }
test_mm256_maskz_min_epi8(__mmask32 __M,__m256i __A,__m256i __B)1405 __m256i test_mm256_maskz_min_epi8(__mmask32 __M, __m256i __A, __m256i __B) {
1406 // CHECK-LABEL: @test_mm256_maskz_min_epi8
1407 // CHECK: [[CMP:%.*]] = icmp slt <32 x i8> [[X:%.*]], [[Y:%.*]]
1408 // CHECK-NEXT: [[RES:%.*]] = select <32 x i1> [[CMP]], <32 x i8> [[X]], <32 x i8> [[Y]]
1409 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1410 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1411 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1412 return _mm256_maskz_min_epi8(__M,__A,__B);
1413 }
test_mm256_mask_min_epi8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1414 __m256i test_mm256_mask_min_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
1415 // CHECK-LABEL: @test_mm256_mask_min_epi8
1416 // CHECK: [[CMP:%.*]] = icmp slt <32 x i8> [[X:%.*]], [[Y:%.*]]
1417 // CHECK-NEXT: [[RES:%.*]] = select <32 x i1> [[CMP]], <32 x i8> [[X]], <32 x i8> [[Y]]
1418 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1419 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1420 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1421 return _mm256_mask_min_epi8(__W,__M,__A,__B);
1422 }
test_mm_maskz_min_epi16(__mmask8 __M,__m128i __A,__m128i __B)1423 __m128i test_mm_maskz_min_epi16(__mmask8 __M, __m128i __A, __m128i __B) {
1424 // CHECK-LABEL: @test_mm_maskz_min_epi16
1425 // CHECK: [[CMP:%.*]] = icmp slt <8 x i16> [[X:%.*]], [[Y:%.*]]
1426 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i16> [[X]], <8 x i16> [[Y]]
1427 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1428 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1429 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1430 return _mm_maskz_min_epi16(__M,__A,__B);
1431 }
test_mm_mask_min_epi16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1432 __m128i test_mm_mask_min_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
1433 // CHECK-LABEL: @test_mm_mask_min_epi16
1434 // CHECK: [[CMP:%.*]] = icmp slt <8 x i16> [[X:%.*]], [[Y:%.*]]
1435 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i16> [[X]], <8 x i16> [[Y]]
1436 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1437 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1438 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1439 return _mm_mask_min_epi16(__W,__M,__A,__B);
1440 }
test_mm256_maskz_min_epi16(__mmask16 __M,__m256i __A,__m256i __B)1441 __m256i test_mm256_maskz_min_epi16(__mmask16 __M, __m256i __A, __m256i __B) {
1442 // CHECK-LABEL: @test_mm256_maskz_min_epi16
1443 // CHECK: [[CMP:%.*]] = icmp slt <16 x i16> [[X:%.*]], [[Y:%.*]]
1444 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i16> [[X]], <16 x i16> [[Y]]
1445 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1446 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1447 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1448 return _mm256_maskz_min_epi16(__M,__A,__B);
1449 }
test_mm256_mask_min_epi16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1450 __m256i test_mm256_mask_min_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
1451 // CHECK-LABEL: @test_mm256_mask_min_epi16
1452 // CHECK: [[CMP:%.*]] = icmp slt <16 x i16> [[X:%.*]], [[Y:%.*]]
1453 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i16> [[X]], <16 x i16> [[Y]]
1454 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1455 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1456 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1457 return _mm256_mask_min_epi16(__W,__M,__A,__B);
1458 }
test_mm_maskz_min_epu8(__mmask16 __M,__m128i __A,__m128i __B)1459 __m128i test_mm_maskz_min_epu8(__mmask16 __M, __m128i __A, __m128i __B) {
1460 // CHECK-LABEL: @test_mm_maskz_min_epu8
1461 // CHECK: [[CMP:%.*]] = icmp ult <16 x i8> [[X:%.*]], [[Y:%.*]]
1462 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i8> [[X]], <16 x i8> [[Y]]
1463 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1464 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1465 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1466 return _mm_maskz_min_epu8(__M,__A,__B);
1467 }
test_mm_mask_min_epu8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1468 __m128i test_mm_mask_min_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
1469 // CHECK-LABEL: @test_mm_mask_min_epu8
1470 // CHECK: [[CMP:%.*]] = icmp ult <16 x i8> [[X:%.*]], [[Y:%.*]]
1471 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i8> [[X]], <16 x i8> [[Y]]
1472 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1473 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1474 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1475 return _mm_mask_min_epu8(__W,__M,__A,__B);
1476 }
test_mm256_maskz_min_epu8(__mmask32 __M,__m256i __A,__m256i __B)1477 __m256i test_mm256_maskz_min_epu8(__mmask32 __M, __m256i __A, __m256i __B) {
1478 // CHECK-LABEL: @test_mm256_maskz_min_epu8
1479 // CHECK: [[CMP:%.*]] = icmp ult <32 x i8> [[X:%.*]], [[Y:%.*]]
1480 // CHECK-NEXT: [[RES:%.*]] = select <32 x i1> [[CMP]], <32 x i8> [[X]], <32 x i8> [[Y]]
1481 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1482 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1483 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1484 return _mm256_maskz_min_epu8(__M,__A,__B);
1485 }
test_mm256_mask_min_epu8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1486 __m256i test_mm256_mask_min_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
1487 // CHECK-LABEL: @test_mm256_mask_min_epu8
1488 // CHECK: [[CMP:%.*]] = icmp ult <32 x i8> [[X:%.*]], [[Y:%.*]]
1489 // CHECK-NEXT: [[RES:%.*]] = select <32 x i1> [[CMP]], <32 x i8> [[X]], <32 x i8> [[Y]]
1490 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1491 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1492 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1493 return _mm256_mask_min_epu8(__W,__M,__A,__B);
1494 }
test_mm_maskz_min_epu16(__mmask8 __M,__m128i __A,__m128i __B)1495 __m128i test_mm_maskz_min_epu16(__mmask8 __M, __m128i __A, __m128i __B) {
1496 // CHECK-LABEL: @test_mm_maskz_min_epu16
1497 // CHECK: [[CMP:%.*]] = icmp ult <8 x i16> [[X:%.*]], [[Y:%.*]]
1498 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i16> [[X]], <8 x i16> [[Y]]
1499 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1500 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1501 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1502 return _mm_maskz_min_epu16(__M,__A,__B);
1503 }
test_mm_mask_min_epu16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1504 __m128i test_mm_mask_min_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
1505 // CHECK-LABEL: @test_mm_mask_min_epu16
1506 // CHECK: [[CMP:%.*]] = icmp ult <8 x i16> [[X:%.*]], [[Y:%.*]]
1507 // CHECK-NEXT: [[RES:%.*]] = select <8 x i1> [[CMP]], <8 x i16> [[X]], <8 x i16> [[Y]]
1508 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1509 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1510 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1511 return _mm_mask_min_epu16(__W,__M,__A,__B);
1512 }
test_mm256_maskz_min_epu16(__mmask16 __M,__m256i __A,__m256i __B)1513 __m256i test_mm256_maskz_min_epu16(__mmask16 __M, __m256i __A, __m256i __B) {
1514 // CHECK-LABEL: @test_mm256_maskz_min_epu16
1515 // CHECK: [[CMP:%.*]] = icmp ult <16 x i16> [[X:%.*]], [[Y:%.*]]
1516 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i16> [[X]], <16 x i16> [[Y]]
1517 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1518 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1519 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1520 return _mm256_maskz_min_epu16(__M,__A,__B);
1521 }
test_mm256_mask_min_epu16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1522 __m256i test_mm256_mask_min_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
1523 // CHECK-LABEL: @test_mm256_mask_min_epu16
1524 // CHECK: [[CMP:%.*]] = icmp ult <16 x i16> [[X:%.*]], [[Y:%.*]]
1525 // CHECK-NEXT: [[RES:%.*]] = select <16 x i1> [[CMP]], <16 x i16> [[X]], <16 x i16> [[Y]]
1526 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1527 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1528 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1529 return _mm256_mask_min_epu16(__W,__M,__A,__B);
1530 }
test_mm_mask_shuffle_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1531 __m128i test_mm_mask_shuffle_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1532 // CHECK-LABEL: @test_mm_mask_shuffle_epi8
1533 // CHECK: @llvm.x86.ssse3.pshuf.b
1534 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1535 return _mm_mask_shuffle_epi8(__W,__U,__A,__B);
1536 }
test_mm_maskz_shuffle_epi8(__mmask16 __U,__m128i __A,__m128i __B)1537 __m128i test_mm_maskz_shuffle_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
1538 // CHECK-LABEL: @test_mm_maskz_shuffle_epi8
1539 // CHECK: @llvm.x86.ssse3.pshuf.b
1540 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1541 return _mm_maskz_shuffle_epi8(__U,__A,__B);
1542 }
test_mm256_mask_shuffle_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1543 __m256i test_mm256_mask_shuffle_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1544 // CHECK-LABEL: @test_mm256_mask_shuffle_epi8
1545 // CHECK: @llvm.x86.avx2.pshuf.b
1546 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1547 return _mm256_mask_shuffle_epi8(__W,__U,__A,__B);
1548 }
test_mm256_maskz_shuffle_epi8(__mmask32 __U,__m256i __A,__m256i __B)1549 __m256i test_mm256_maskz_shuffle_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
1550 // CHECK-LABEL: @test_mm256_maskz_shuffle_epi8
1551 // CHECK: @llvm.x86.avx2.pshuf.b
1552 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1553 return _mm256_maskz_shuffle_epi8(__U,__A,__B);
1554 }
test_mm_mask_subs_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1555 __m128i test_mm_mask_subs_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1556 // CHECK-LABEL: @test_mm_mask_subs_epi8
1557 // CHECK: @llvm.ssub.sat.v16i8
1558 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1559 return _mm_mask_subs_epi8(__W,__U,__A,__B);
1560 }
test_mm_maskz_subs_epi8(__mmask16 __U,__m128i __A,__m128i __B)1561 __m128i test_mm_maskz_subs_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
1562 // CHECK-LABEL: @test_mm_maskz_subs_epi8
1563 // CHECK: @llvm.ssub.sat.v16i8
1564 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1565 return _mm_maskz_subs_epi8(__U,__A,__B);
1566 }
test_mm256_mask_subs_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1567 __m256i test_mm256_mask_subs_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1568 // CHECK-LABEL: @test_mm256_mask_subs_epi8
1569 // CHECK: @llvm.ssub.sat.v32i8
1570 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1571 return _mm256_mask_subs_epi8(__W,__U,__A,__B);
1572 }
test_mm256_maskz_subs_epi8(__mmask32 __U,__m256i __A,__m256i __B)1573 __m256i test_mm256_maskz_subs_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
1574 // CHECK-LABEL: @test_mm256_maskz_subs_epi8
1575 // CHECK: @llvm.ssub.sat.v32i8
1576 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1577 return _mm256_maskz_subs_epi8(__U,__A,__B);
1578 }
test_mm_mask_subs_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1579 __m128i test_mm_mask_subs_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1580 // CHECK-LABEL: @test_mm_mask_subs_epi16
1581 // CHECK: @llvm.ssub.sat.v8i16
1582 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1583 return _mm_mask_subs_epi16(__W,__U,__A,__B);
1584 }
test_mm_maskz_subs_epi16(__mmask8 __U,__m128i __A,__m128i __B)1585 __m128i test_mm_maskz_subs_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1586 // CHECK-LABEL: @test_mm_maskz_subs_epi16
1587 // CHECK: @llvm.ssub.sat.v8i16
1588 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1589 return _mm_maskz_subs_epi16(__U,__A,__B);
1590 }
test_mm256_mask_subs_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1591 __m256i test_mm256_mask_subs_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1592 // CHECK-LABEL: @test_mm256_mask_subs_epi16
1593 // CHECK: @llvm.ssub.sat.v16i16
1594 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1595 return _mm256_mask_subs_epi16(__W,__U,__A,__B);
1596 }
test_mm256_maskz_subs_epi16(__mmask16 __U,__m256i __A,__m256i __B)1597 __m256i test_mm256_maskz_subs_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
1598 // CHECK-LABEL: @test_mm256_maskz_subs_epi16
1599 // CHECK: @llvm.ssub.sat.v16i16
1600 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1601 return _mm256_maskz_subs_epi16(__U,__A,__B);
1602 }
test_mm_mask_subs_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1603 __m128i test_mm_mask_subs_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1604 // CHECK-LABEL: @test_mm_mask_subs_epu8
1605 // CHECK-NOT: @llvm.x86.sse2.psubus.b
1606 // CHECK: call <16 x i8> @llvm.usub.sat.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1607 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1608 return _mm_mask_subs_epu8(__W,__U,__A,__B);
1609 }
test_mm_maskz_subs_epu8(__mmask16 __U,__m128i __A,__m128i __B)1610 __m128i test_mm_maskz_subs_epu8(__mmask16 __U, __m128i __A, __m128i __B) {
1611 // CHECK-LABEL: @test_mm_maskz_subs_epu8
1612 // CHECK-NOT: @llvm.x86.sse2.psubus.b
1613 // CHECK: call <16 x i8> @llvm.usub.sat.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1614 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1615 return _mm_maskz_subs_epu8(__U,__A,__B);
1616 }
test_mm256_mask_subs_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1617 __m256i test_mm256_mask_subs_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1618 // CHECK-LABEL: @test_mm256_mask_subs_epu8
1619 // CHECK-NOT: @llvm.x86.avx2.psubus.b
1620 // CHECK: call <32 x i8> @llvm.usub.sat.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1621 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1622 return _mm256_mask_subs_epu8(__W,__U,__A,__B);
1623 }
test_mm256_maskz_subs_epu8(__mmask32 __U,__m256i __A,__m256i __B)1624 __m256i test_mm256_maskz_subs_epu8(__mmask32 __U, __m256i __A, __m256i __B) {
1625 // CHECK-LABEL: @test_mm256_maskz_subs_epu8
1626 // CHECK-NOT: @llvm.x86.avx2.psubus.b
1627 // CHECK: call <32 x i8> @llvm.usub.sat.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1628 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1629 return _mm256_maskz_subs_epu8(__U,__A,__B);
1630 }
test_mm_mask_subs_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1631 __m128i test_mm_mask_subs_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1632 // CHECK-LABEL: @test_mm_mask_subs_epu16
1633 // CHECK-NOT: @llvm.x86.sse2.psubus.w
1634 // CHECK: call <8 x i16> @llvm.usub.sat.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1635 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1636 return _mm_mask_subs_epu16(__W,__U,__A,__B);
1637 }
test_mm_maskz_subs_epu16(__mmask8 __U,__m128i __A,__m128i __B)1638 __m128i test_mm_maskz_subs_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
1639 // CHECK-LABEL: @test_mm_maskz_subs_epu16
1640 // CHECK-NOT: @llvm.x86.sse2.psubus.w
1641 // CHECK: call <8 x i16> @llvm.usub.sat.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1642 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1643 return _mm_maskz_subs_epu16(__U,__A,__B);
1644 }
test_mm256_mask_subs_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1645 __m256i test_mm256_mask_subs_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1646 // CHECK-LABEL: @test_mm256_mask_subs_epu16
1647 // CHECK-NOT: @llvm.x86.avx2.psubus.w
1648 // CHECK: call <16 x i16> @llvm.usub.sat.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1649 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1650 return _mm256_mask_subs_epu16(__W,__U,__A,__B);
1651 }
test_mm256_maskz_subs_epu16(__mmask16 __U,__m256i __A,__m256i __B)1652 __m256i test_mm256_maskz_subs_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
1653 // CHECK-LABEL: @test_mm256_maskz_subs_epu16
1654 // CHECK-NOT: @llvm.x86.avx2.psubus.w
1655 // CHECK: call <16 x i16> @llvm.usub.sat.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1656 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1657 return _mm256_maskz_subs_epu16(__U,__A,__B);
1658 }
1659
1660
test_mm_mask2_permutex2var_epi16(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)1661 __m128i test_mm_mask2_permutex2var_epi16(__m128i __A, __m128i __I, __mmask8 __U, __m128i __B) {
1662 // CHECK-LABEL: @test_mm_mask2_permutex2var_epi16
1663 // CHECK: @llvm.x86.avx512.vpermi2var.hi.128
1664 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1665 return _mm_mask2_permutex2var_epi16(__A,__I,__U,__B);
1666 }
test_mm256_mask2_permutex2var_epi16(__m256i __A,__m256i __I,__mmask16 __U,__m256i __B)1667 __m256i test_mm256_mask2_permutex2var_epi16(__m256i __A, __m256i __I, __mmask16 __U, __m256i __B) {
1668 // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi16
1669 // CHECK: @llvm.x86.avx512.vpermi2var.hi.256
1670 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1671 return _mm256_mask2_permutex2var_epi16(__A,__I,__U,__B);
1672 }
test_mm_permutex2var_epi16(__m128i __A,__m128i __I,__m128i __B)1673 __m128i test_mm_permutex2var_epi16(__m128i __A, __m128i __I, __m128i __B) {
1674 // CHECK-LABEL: @test_mm_permutex2var_epi16
1675 // CHECK: @llvm.x86.avx512.vpermi2var.hi.128
1676 return _mm_permutex2var_epi16(__A,__I,__B);
1677 }
test_mm_mask_permutex2var_epi16(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)1678 __m128i test_mm_mask_permutex2var_epi16(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) {
1679 // CHECK-LABEL: @test_mm_mask_permutex2var_epi16
1680 // CHECK: @llvm.x86.avx512.vpermi2var.hi.128
1681 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1682 return _mm_mask_permutex2var_epi16(__A,__U,__I,__B);
1683 }
test_mm_maskz_permutex2var_epi16(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)1684 __m128i test_mm_maskz_permutex2var_epi16(__mmask8 __U, __m128i __A, __m128i __I, __m128i __B) {
1685 // CHECK-LABEL: @test_mm_maskz_permutex2var_epi16
1686 // CHECK: @llvm.x86.avx512.vpermi2var.hi.128
1687 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1688 return _mm_maskz_permutex2var_epi16(__U,__A,__I,__B);
1689 }
1690
test_mm256_permutex2var_epi16(__m256i __A,__m256i __I,__m256i __B)1691 __m256i test_mm256_permutex2var_epi16(__m256i __A, __m256i __I, __m256i __B) {
1692 // CHECK-LABEL: @test_mm256_permutex2var_epi16
1693 // CHECK: @llvm.x86.avx512.vpermi2var.hi.256
1694 return _mm256_permutex2var_epi16(__A,__I,__B);
1695 }
test_mm256_mask_permutex2var_epi16(__m256i __A,__mmask16 __U,__m256i __I,__m256i __B)1696 __m256i test_mm256_mask_permutex2var_epi16(__m256i __A, __mmask16 __U, __m256i __I, __m256i __B) {
1697 // CHECK-LABEL: @test_mm256_mask_permutex2var_epi16
1698 // CHECK: @llvm.x86.avx512.vpermi2var.hi.256
1699 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1700 return _mm256_mask_permutex2var_epi16(__A,__U,__I,__B);
1701 }
test_mm256_maskz_permutex2var_epi16(__mmask16 __U,__m256i __A,__m256i __I,__m256i __B)1702 __m256i test_mm256_maskz_permutex2var_epi16(__mmask16 __U, __m256i __A, __m256i __I, __m256i __B) {
1703 // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi16
1704 // CHECK: @llvm.x86.avx512.vpermi2var.hi.256
1705 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1706 return _mm256_maskz_permutex2var_epi16(__U,__A,__I,__B);
1707 }
test_mm_mask_maddubs_epi16(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)1708 __m128i test_mm_mask_maddubs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
1709 // CHECK-LABEL: @test_mm_mask_maddubs_epi16
1710 // CHECK: @llvm.x86.ssse3.pmadd.ub.sw
1711 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1712 return _mm_mask_maddubs_epi16(__W, __U, __X, __Y);
1713 }
1714
test_mm_maskz_maddubs_epi16(__mmask8 __U,__m128i __X,__m128i __Y)1715 __m128i test_mm_maskz_maddubs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
1716 // CHECK-LABEL: @test_mm_maskz_maddubs_epi16
1717 // CHECK: @llvm.x86.ssse3.pmadd.ub.sw
1718 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1719 return _mm_maskz_maddubs_epi16(__U, __X, __Y);
1720 }
1721
test_mm256_mask_maddubs_epi16(__m256i __W,__mmask16 __U,__m256i __X,__m256i __Y)1722 __m256i test_mm256_mask_maddubs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
1723 // CHECK-LABEL: @test_mm256_mask_maddubs_epi16
1724 // CHECK: @llvm.x86.avx2.pmadd.ub.sw
1725 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1726 return _mm256_mask_maddubs_epi16(__W, __U, __X, __Y);
1727 }
1728
test_mm256_maskz_maddubs_epi16(__mmask16 __U,__m256i __X,__m256i __Y)1729 __m256i test_mm256_maskz_maddubs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
1730 // CHECK-LABEL: @test_mm256_maskz_maddubs_epi16
1731 // CHECK: @llvm.x86.avx2.pmadd.ub.sw
1732 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1733 return _mm256_maskz_maddubs_epi16(__U, __X, __Y);
1734 }
1735
test_mm_mask_madd_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1736 __m128i test_mm_mask_madd_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1737 // CHECK-LABEL: @test_mm_mask_madd_epi16
1738 // CHECK: @llvm.x86.sse2.pmadd.wd
1739 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
1740 return _mm_mask_madd_epi16(__W, __U, __A, __B);
1741 }
1742
test_mm_maskz_madd_epi16(__mmask8 __U,__m128i __A,__m128i __B)1743 __m128i test_mm_maskz_madd_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1744 // CHECK-LABEL: @test_mm_maskz_madd_epi16
1745 // CHECK: @llvm.x86.sse2.pmadd.wd
1746 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
1747 return _mm_maskz_madd_epi16(__U, __A, __B);
1748 }
1749
test_mm256_mask_madd_epi16(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1750 __m256i test_mm256_mask_madd_epi16(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1751 // CHECK-LABEL: @test_mm256_mask_madd_epi16
1752 // CHECK: @llvm.x86.avx2.pmadd.wd
1753 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
1754 return _mm256_mask_madd_epi16(__W, __U, __A, __B);
1755 }
1756
test_mm256_maskz_madd_epi16(__mmask8 __U,__m256i __A,__m256i __B)1757 __m256i test_mm256_maskz_madd_epi16(__mmask8 __U, __m256i __A, __m256i __B) {
1758 // CHECK-LABEL: @test_mm256_maskz_madd_epi16
1759 // CHECK: @llvm.x86.avx2.pmadd.wd
1760 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
1761 return _mm256_maskz_madd_epi16(__U, __A, __B);
1762 }
1763
test_mm_cvtsepi16_epi8(__m128i __A)1764 __m128i test_mm_cvtsepi16_epi8(__m128i __A) {
1765 // CHECK-LABEL: @test_mm_cvtsepi16_epi8
1766 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
1767 return _mm_cvtsepi16_epi8(__A);
1768 }
1769
test_mm_mask_cvtsepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)1770 __m128i test_mm_mask_cvtsepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
1771 // CHECK-LABEL: @test_mm_mask_cvtsepi16_epi8
1772 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
1773 return _mm_mask_cvtsepi16_epi8(__O, __M, __A);
1774 }
1775
test_mm_maskz_cvtsepi16_epi8(__mmask8 __M,__m128i __A)1776 __m128i test_mm_maskz_cvtsepi16_epi8(__mmask8 __M, __m128i __A) {
1777 // CHECK-LABEL: @test_mm_maskz_cvtsepi16_epi8
1778 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
1779 return _mm_maskz_cvtsepi16_epi8(__M, __A);
1780 }
1781
test_mm256_cvtsepi16_epi8(__m256i __A)1782 __m128i test_mm256_cvtsepi16_epi8(__m256i __A) {
1783 // CHECK-LABEL: @test_mm256_cvtsepi16_epi8
1784 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
1785 return _mm256_cvtsepi16_epi8(__A);
1786 }
1787
test_mm256_mask_cvtsepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)1788 __m128i test_mm256_mask_cvtsepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) {
1789 // CHECK-LABEL: @test_mm256_mask_cvtsepi16_epi8
1790 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
1791 return _mm256_mask_cvtsepi16_epi8(__O, __M, __A);
1792 }
1793
test_mm256_maskz_cvtsepi16_epi8(__mmask16 __M,__m256i __A)1794 __m128i test_mm256_maskz_cvtsepi16_epi8(__mmask16 __M, __m256i __A) {
1795 // CHECK-LABEL: @test_mm256_maskz_cvtsepi16_epi8
1796 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
1797 return _mm256_maskz_cvtsepi16_epi8(__M, __A);
1798 }
1799
test_mm_cvtusepi16_epi8(__m128i __A)1800 __m128i test_mm_cvtusepi16_epi8(__m128i __A) {
1801 // CHECK-LABEL: @test_mm_cvtusepi16_epi8
1802 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
1803 return _mm_cvtusepi16_epi8(__A);
1804 }
1805
test_mm_mask_cvtusepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)1806 __m128i test_mm_mask_cvtusepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
1807 // CHECK-LABEL: @test_mm_mask_cvtusepi16_epi8
1808 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
1809 return _mm_mask_cvtusepi16_epi8(__O, __M, __A);
1810 }
1811
test_mm_maskz_cvtusepi16_epi8(__mmask8 __M,__m128i __A)1812 __m128i test_mm_maskz_cvtusepi16_epi8(__mmask8 __M, __m128i __A) {
1813 // CHECK-LABEL: @test_mm_maskz_cvtusepi16_epi8
1814 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
1815 return _mm_maskz_cvtusepi16_epi8(__M, __A);
1816 }
1817
test_mm256_cvtusepi16_epi8(__m256i __A)1818 __m128i test_mm256_cvtusepi16_epi8(__m256i __A) {
1819 // CHECK-LABEL: @test_mm256_cvtusepi16_epi8
1820 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
1821 return _mm256_cvtusepi16_epi8(__A);
1822 }
1823
test_mm256_mask_cvtusepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)1824 __m128i test_mm256_mask_cvtusepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) {
1825 // CHECK-LABEL: @test_mm256_mask_cvtusepi16_epi8
1826 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
1827 return _mm256_mask_cvtusepi16_epi8(__O, __M, __A);
1828 }
1829
test_mm256_maskz_cvtusepi16_epi8(__mmask16 __M,__m256i __A)1830 __m128i test_mm256_maskz_cvtusepi16_epi8(__mmask16 __M, __m256i __A) {
1831 // CHECK-LABEL: @test_mm256_maskz_cvtusepi16_epi8
1832 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
1833 return _mm256_maskz_cvtusepi16_epi8(__M, __A);
1834 }
1835
test_mm_cvtepi16_epi8(__m128i __A)1836 __m128i test_mm_cvtepi16_epi8(__m128i __A) {
1837 // CHECK-LABEL: @test_mm_cvtepi16_epi8
1838 // CHECK: trunc <8 x i16> %{{.*}} to <8 x i8>
1839 // CHECK: shufflevector <8 x i8> %{{.*}}, <8 x i8> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
1840 return _mm_cvtepi16_epi8(__A);
1841 }
1842
test_mm_mask_cvtepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)1843 __m128i test_mm_mask_cvtepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
1844 // CHECK-LABEL: @test_mm_mask_cvtepi16_epi8
1845 // CHECK: @llvm.x86.avx512.mask.pmov.wb.128
1846 return _mm_mask_cvtepi16_epi8(__O, __M, __A);
1847 }
1848
test_mm_maskz_cvtepi16_epi8(__mmask8 __M,__m128i __A)1849 __m128i test_mm_maskz_cvtepi16_epi8(__mmask8 __M, __m128i __A) {
1850 // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi8
1851 // CHECK: @llvm.x86.avx512.mask.pmov.wb.128
1852 return _mm_maskz_cvtepi16_epi8(__M, __A);
1853 }
1854
test_mm256_cvtepi16_epi8(__m256i __A)1855 __m128i test_mm256_cvtepi16_epi8(__m256i __A) {
1856 // CHECK-LABEL: @test_mm256_cvtepi16_epi8
1857 // CHECK: trunc <16 x i16> %{{.*}} to <16 x i8>
1858 return _mm256_cvtepi16_epi8(__A);
1859 }
1860
test_mm256_mask_cvtepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)1861 __m128i test_mm256_mask_cvtepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) {
1862 // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi8
1863 // CHECK: trunc <16 x i16> %{{.*}} to <16 x i8>
1864 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1865 return _mm256_mask_cvtepi16_epi8(__O, __M, __A);
1866 }
1867
test_mm256_maskz_cvtepi16_epi8(__mmask16 __M,__m256i __A)1868 __m128i test_mm256_maskz_cvtepi16_epi8(__mmask16 __M, __m256i __A) {
1869 // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi8
1870 // CHECK: trunc <16 x i16> %{{.*}} to <16 x i8>
1871 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1872 return _mm256_maskz_cvtepi16_epi8(__M, __A);
1873 }
1874
test_mm_mask_mulhrs_epi16(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)1875 __m128i test_mm_mask_mulhrs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
1876 // CHECK-LABEL: @test_mm_mask_mulhrs_epi16
1877 // CHECK: @llvm.x86.ssse3.pmul.hr.sw
1878 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1879 return _mm_mask_mulhrs_epi16(__W, __U, __X, __Y);
1880 }
1881
test_mm_maskz_mulhrs_epi16(__mmask8 __U,__m128i __X,__m128i __Y)1882 __m128i test_mm_maskz_mulhrs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
1883 // CHECK-LABEL: @test_mm_maskz_mulhrs_epi16
1884 // CHECK: @llvm.x86.ssse3.pmul.hr.sw
1885 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1886 return _mm_maskz_mulhrs_epi16(__U, __X, __Y);
1887 }
1888
test_mm256_mask_mulhrs_epi16(__m256i __W,__mmask16 __U,__m256i __X,__m256i __Y)1889 __m256i test_mm256_mask_mulhrs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
1890 // CHECK-LABEL: @test_mm256_mask_mulhrs_epi16
1891 // CHECK: @llvm.x86.avx2.pmul.hr.sw
1892 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1893 return _mm256_mask_mulhrs_epi16(__W, __U, __X, __Y);
1894 }
1895
test_mm256_maskz_mulhrs_epi16(__mmask16 __U,__m256i __X,__m256i __Y)1896 __m256i test_mm256_maskz_mulhrs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
1897 // CHECK-LABEL: @test_mm256_maskz_mulhrs_epi16
1898 // CHECK: @llvm.x86.avx2.pmul.hr.sw
1899 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1900 return _mm256_maskz_mulhrs_epi16(__U, __X, __Y);
1901 }
1902
test_mm_mask_mulhi_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1903 __m128i test_mm_mask_mulhi_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1904 // CHECK-LABEL: @test_mm_mask_mulhi_epu16
1905 // CHECK: @llvm.x86.sse2.pmulhu.w
1906 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1907 return _mm_mask_mulhi_epu16(__W, __U, __A, __B);
1908 }
1909
test_mm_maskz_mulhi_epu16(__mmask8 __U,__m128i __A,__m128i __B)1910 __m128i test_mm_maskz_mulhi_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
1911 // CHECK-LABEL: @test_mm_maskz_mulhi_epu16
1912 // CHECK: @llvm.x86.sse2.pmulhu.w
1913 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1914 return _mm_maskz_mulhi_epu16(__U, __A, __B);
1915 }
1916
test_mm256_mask_mulhi_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1917 __m256i test_mm256_mask_mulhi_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1918 // CHECK-LABEL: @test_mm256_mask_mulhi_epu16
1919 // CHECK: @llvm.x86.avx2.pmulhu.w
1920 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1921 return _mm256_mask_mulhi_epu16(__W, __U, __A, __B);
1922 }
1923
test_mm256_maskz_mulhi_epu16(__mmask16 __U,__m256i __A,__m256i __B)1924 __m256i test_mm256_maskz_mulhi_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
1925 // CHECK-LABEL: @test_mm256_maskz_mulhi_epu16
1926 // CHECK: @llvm.x86.avx2.pmulhu.w
1927 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1928 return _mm256_maskz_mulhi_epu16(__U, __A, __B);
1929 }
1930
test_mm_mask_mulhi_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1931 __m128i test_mm_mask_mulhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1932 // CHECK-LABEL: @test_mm_mask_mulhi_epi16
1933 // CHECK: @llvm.x86.sse2.pmulh.w
1934 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1935 return _mm_mask_mulhi_epi16(__W, __U, __A, __B);
1936 }
1937
test_mm_maskz_mulhi_epi16(__mmask8 __U,__m128i __A,__m128i __B)1938 __m128i test_mm_maskz_mulhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1939 // CHECK-LABEL: @test_mm_maskz_mulhi_epi16
1940 // CHECK: @llvm.x86.sse2.pmulh.w
1941 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1942 return _mm_maskz_mulhi_epi16(__U, __A, __B);
1943 }
1944
test_mm256_mask_mulhi_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1945 __m256i test_mm256_mask_mulhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1946 // CHECK-LABEL: @test_mm256_mask_mulhi_epi16
1947 // CHECK: @llvm.x86.avx2.pmulh.w
1948 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1949 return _mm256_mask_mulhi_epi16(__W, __U, __A, __B);
1950 }
1951
test_mm256_maskz_mulhi_epi16(__mmask16 __U,__m256i __A,__m256i __B)1952 __m256i test_mm256_maskz_mulhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
1953 // CHECK-LABEL: @test_mm256_maskz_mulhi_epi16
1954 // CHECK: @llvm.x86.avx2.pmulh.w
1955 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1956 return _mm256_maskz_mulhi_epi16(__U, __A, __B);
1957 }
1958
test_mm_mask_unpackhi_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1959 __m128i test_mm_mask_unpackhi_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1960 // CHECK-LABEL: @test_mm_mask_unpackhi_epi8
1961 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31>
1962 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1963 return _mm_mask_unpackhi_epi8(__W, __U, __A, __B);
1964 }
1965
test_mm_maskz_unpackhi_epi8(__mmask16 __U,__m128i __A,__m128i __B)1966 __m128i test_mm_maskz_unpackhi_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
1967 // CHECK-LABEL: @test_mm_maskz_unpackhi_epi8
1968 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31>
1969 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1970 return _mm_maskz_unpackhi_epi8(__U, __A, __B);
1971 }
1972
test_mm256_mask_unpackhi_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1973 __m256i test_mm256_mask_unpackhi_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1974 // CHECK-LABEL: @test_mm256_mask_unpackhi_epi8
1975 // CHECK: shufflevector <32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 x i32> <i32 8, i32 40, i32 9, i32 41, i32 10, i32 42, i32 11, i32 43, i32 12, i32 44, i32 13, i32 45, i32 14, i32 46, i32 15, i32 47, i32 24, i32 56, i32 25, i32 57, i32 26, i32 58, i32 27, i32 59, i32 28, i32 60, i32 29, i32 61, i32 30, i32 62, i32 31, i32 63>
1976 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1977 return _mm256_mask_unpackhi_epi8(__W, __U, __A, __B);
1978 }
1979
test_mm256_maskz_unpackhi_epi8(__mmask32 __U,__m256i __A,__m256i __B)1980 __m256i test_mm256_maskz_unpackhi_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
1981 // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi8
1982 // CHECK: shufflevector <32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 x i32> <i32 8, i32 40, i32 9, i32 41, i32 10, i32 42, i32 11, i32 43, i32 12, i32 44, i32 13, i32 45, i32 14, i32 46, i32 15, i32 47, i32 24, i32 56, i32 25, i32 57, i32 26, i32 58, i32 27, i32 59, i32 28, i32 60, i32 29, i32 61, i32 30, i32 62, i32 31, i32 63>
1983 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1984 return _mm256_maskz_unpackhi_epi8(__U, __A, __B);
1985 }
1986
test_mm_mask_unpackhi_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1987 __m128i test_mm_mask_unpackhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1988 // CHECK-LABEL: @test_mm_mask_unpackhi_epi16
1989 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
1990 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1991 return _mm_mask_unpackhi_epi16(__W, __U, __A, __B);
1992 }
1993
test_mm_maskz_unpackhi_epi16(__mmask8 __U,__m128i __A,__m128i __B)1994 __m128i test_mm_maskz_unpackhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1995 // CHECK-LABEL: @test_mm_maskz_unpackhi_epi16
1996 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
1997 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1998 return _mm_maskz_unpackhi_epi16(__U, __A, __B);
1999 }
2000
test_mm256_mask_unpackhi_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2001 __m256i test_mm256_mask_unpackhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
2002 // CHECK-LABEL: @test_mm256_mask_unpackhi_epi16
2003 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i32> <i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31>
2004 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2005 return _mm256_mask_unpackhi_epi16(__W, __U, __A, __B);
2006 }
2007
test_mm256_maskz_unpackhi_epi16(__mmask16 __U,__m256i __A,__m256i __B)2008 __m256i test_mm256_maskz_unpackhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
2009 // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi16
2010 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i32> <i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31>
2011 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2012 return _mm256_maskz_unpackhi_epi16(__U, __A, __B);
2013 }
2014
test_mm_mask_unpacklo_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)2015 __m128i test_mm_mask_unpacklo_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
2016 // CHECK-LABEL: @test_mm_mask_unpacklo_epi8
2017 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23>
2018 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2019 return _mm_mask_unpacklo_epi8(__W, __U, __A, __B);
2020 }
2021
test_mm_maskz_unpacklo_epi8(__mmask16 __U,__m128i __A,__m128i __B)2022 __m128i test_mm_maskz_unpacklo_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
2023 // CHECK-LABEL: @test_mm_maskz_unpacklo_epi8
2024 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23>
2025 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2026 return _mm_maskz_unpacklo_epi8(__U, __A, __B);
2027 }
2028
test_mm256_mask_unpacklo_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)2029 __m256i test_mm256_mask_unpacklo_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
2030 // CHECK-LABEL: @test_mm256_mask_unpacklo_epi8
2031 // CHECK: shufflevector <32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55>
2032 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2033 return _mm256_mask_unpacklo_epi8(__W, __U, __A, __B);
2034 }
2035
test_mm256_maskz_unpacklo_epi8(__mmask32 __U,__m256i __A,__m256i __B)2036 __m256i test_mm256_maskz_unpacklo_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
2037 // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi8
2038 // CHECK: shufflevector <32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55>
2039 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2040 return _mm256_maskz_unpacklo_epi8(__U, __A, __B);
2041 }
2042
test_mm_mask_unpacklo_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2043 __m128i test_mm_mask_unpacklo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2044 // CHECK-LABEL: @test_mm_mask_unpacklo_epi16
2045 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11>
2046 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2047 return _mm_mask_unpacklo_epi16(__W, __U, __A, __B);
2048 }
2049
test_mm_maskz_unpacklo_epi16(__mmask8 __U,__m128i __A,__m128i __B)2050 __m128i test_mm_maskz_unpacklo_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2051 // CHECK-LABEL: @test_mm_maskz_unpacklo_epi16
2052 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11>
2053 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2054 return _mm_maskz_unpacklo_epi16(__U, __A, __B);
2055 }
2056
test_mm256_mask_unpacklo_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2057 __m256i test_mm256_mask_unpacklo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
2058 // CHECK-LABEL: @test_mm256_mask_unpacklo_epi16
2059 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27>
2060 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2061 return _mm256_mask_unpacklo_epi16(__W, __U, __A, __B);
2062 }
2063
test_mm256_maskz_unpacklo_epi16(__mmask16 __U,__m256i __A,__m256i __B)2064 __m256i test_mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
2065 // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi16
2066 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27>
2067 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2068 return _mm256_maskz_unpacklo_epi16(__U, __A, __B);
2069 }
2070
test_mm_mask_cvtepi8_epi16(__m128i __W,__mmask8 __U,__m128i __A)2071 __m128i test_mm_mask_cvtepi8_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
2072 // CHECK-LABEL: @test_mm_mask_cvtepi8_epi16
2073 // CHECK: sext <8 x i8> %{{.*}} to <8 x i16>
2074 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2075 return _mm_mask_cvtepi8_epi16(__W, __U, __A);
2076 }
2077
test_mm_maskz_cvtepi8_epi16(__mmask8 __U,__m128i __A)2078 __m128i test_mm_maskz_cvtepi8_epi16(__mmask8 __U, __m128i __A) {
2079 // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi16
2080 // CHECK: sext <8 x i8> %{{.*}} to <8 x i16>
2081 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2082 return _mm_maskz_cvtepi8_epi16(__U, __A);
2083 }
2084
test_mm256_mask_cvtepi8_epi16(__m256i __W,__mmask16 __U,__m128i __A)2085 __m256i test_mm256_mask_cvtepi8_epi16(__m256i __W, __mmask16 __U, __m128i __A) {
2086 // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi16
2087 // CHECK: sext <16 x i8> %{{.*}} to <16 x i16>
2088 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2089 return _mm256_mask_cvtepi8_epi16(__W, __U, __A);
2090 }
2091
test_mm256_maskz_cvtepi8_epi16(__mmask16 __U,__m128i __A)2092 __m256i test_mm256_maskz_cvtepi8_epi16(__mmask16 __U, __m128i __A) {
2093 // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi16
2094 // CHECK: sext <16 x i8> %{{.*}} to <16 x i16>
2095 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2096 return _mm256_maskz_cvtepi8_epi16(__U, __A);
2097 }
2098
test_mm_mask_cvtepu8_epi16(__m128i __W,__mmask8 __U,__m128i __A)2099 __m128i test_mm_mask_cvtepu8_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
2100 // CHECK-LABEL: @test_mm_mask_cvtepu8_epi16
2101 // CHECK: zext <8 x i8> %{{.*}} to <8 x i16>
2102 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2103 return _mm_mask_cvtepu8_epi16(__W, __U, __A);
2104 }
2105
test_mm_maskz_cvtepu8_epi16(__mmask8 __U,__m128i __A)2106 __m128i test_mm_maskz_cvtepu8_epi16(__mmask8 __U, __m128i __A) {
2107 // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi16
2108 // CHECK: zext <8 x i8> %{{.*}} to <8 x i16>
2109 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2110 return _mm_maskz_cvtepu8_epi16(__U, __A);
2111 }
2112
test_mm256_mask_cvtepu8_epi16(__m256i __W,__mmask16 __U,__m128i __A)2113 __m256i test_mm256_mask_cvtepu8_epi16(__m256i __W, __mmask16 __U, __m128i __A) {
2114 // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi16
2115 // CHECK: zext <16 x i8> %{{.*}} to <16 x i16>
2116 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2117 return _mm256_mask_cvtepu8_epi16(__W, __U, __A);
2118 }
2119
test_mm256_maskz_cvtepu8_epi16(__mmask16 __U,__m128i __A)2120 __m256i test_mm256_maskz_cvtepu8_epi16(__mmask16 __U, __m128i __A) {
2121 // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi16
2122 // CHECK: zext <16 x i8> %{{.*}} to <16 x i16>
2123 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2124 return _mm256_maskz_cvtepu8_epi16(__U, __A);
2125 }
2126
test_mm256_sllv_epi16(__m256i __A,__m256i __B)2127 __m256i test_mm256_sllv_epi16(__m256i __A, __m256i __B) {
2128 // CHECK-LABEL: @test_mm256_sllv_epi16
2129 // CHECK: @llvm.x86.avx512.psllv.w.256(
2130 return _mm256_sllv_epi16(__A, __B);
2131 }
2132
test_mm256_mask_sllv_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2133 __m256i test_mm256_mask_sllv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
2134 // CHECK-LABEL: @test_mm256_mask_sllv_epi16
2135 // CHECK: @llvm.x86.avx512.psllv.w.256(
2136 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2137 return _mm256_mask_sllv_epi16(__W, __U, __A, __B);
2138 }
2139
test_mm256_maskz_sllv_epi16(__mmask16 __U,__m256i __A,__m256i __B)2140 __m256i test_mm256_maskz_sllv_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
2141 // CHECK-LABEL: @test_mm256_maskz_sllv_epi16
2142 // CHECK: @llvm.x86.avx512.psllv.w.256(
2143 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2144 return _mm256_maskz_sllv_epi16(__U, __A, __B);
2145 }
2146
test_mm_sllv_epi16(__m128i __A,__m128i __B)2147 __m128i test_mm_sllv_epi16(__m128i __A, __m128i __B) {
2148 // CHECK-LABEL: @test_mm_sllv_epi16
2149 // CHECK: @llvm.x86.avx512.psllv.w.128(
2150 return _mm_sllv_epi16(__A, __B);
2151 }
2152
test_mm_mask_sllv_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2153 __m128i test_mm_mask_sllv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2154 // CHECK-LABEL: @test_mm_mask_sllv_epi16
2155 // CHECK: @llvm.x86.avx512.psllv.w.128(
2156 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2157 return _mm_mask_sllv_epi16(__W, __U, __A, __B);
2158 }
2159
test_mm_maskz_sllv_epi16(__mmask8 __U,__m128i __A,__m128i __B)2160 __m128i test_mm_maskz_sllv_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2161 // CHECK-LABEL: @test_mm_maskz_sllv_epi16
2162 // CHECK: @llvm.x86.avx512.psllv.w.128(
2163 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2164 return _mm_maskz_sllv_epi16(__U, __A, __B);
2165 }
2166
test_mm_mask_sll_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2167 __m128i test_mm_mask_sll_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2168 // CHECK-LABEL: @test_mm_mask_sll_epi16
2169 // CHECK: @llvm.x86.sse2.psll.w
2170 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2171 return _mm_mask_sll_epi16(__W, __U, __A, __B);
2172 }
2173
test_mm_maskz_sll_epi16(__mmask8 __U,__m128i __A,__m128i __B)2174 __m128i test_mm_maskz_sll_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2175 // CHECK-LABEL: @test_mm_maskz_sll_epi16
2176 // CHECK: @llvm.x86.sse2.psll.w
2177 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2178 return _mm_maskz_sll_epi16(__U, __A, __B);
2179 }
2180
test_mm256_mask_sll_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m128i __B)2181 __m256i test_mm256_mask_sll_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) {
2182 // CHECK-LABEL: @test_mm256_mask_sll_epi16
2183 // CHECK: @llvm.x86.avx2.psll.w
2184 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2185 return _mm256_mask_sll_epi16(__W, __U, __A, __B);
2186 }
2187
test_mm256_maskz_sll_epi16(__mmask16 __U,__m256i __A,__m128i __B)2188 __m256i test_mm256_maskz_sll_epi16(__mmask16 __U, __m256i __A, __m128i __B) {
2189 // CHECK-LABEL: @test_mm256_maskz_sll_epi16
2190 // CHECK: @llvm.x86.avx2.psll.w
2191 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2192 return _mm256_maskz_sll_epi16(__U, __A, __B);
2193 }
2194
test_mm_mask_slli_epi16(__m128i __W,__mmask8 __U,__m128i __A)2195 __m128i test_mm_mask_slli_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
2196 // CHECK-LABEL: @test_mm_mask_slli_epi16
2197 // CHECK: @llvm.x86.sse2.pslli.w
2198 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2199 return _mm_mask_slli_epi16(__W, __U, __A, 5);
2200 }
2201
test_mm_mask_slli_epi16_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)2202 __m128i test_mm_mask_slli_epi16_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
2203 // CHECK-LABEL: @test_mm_mask_slli_epi16_2
2204 // CHECK: @llvm.x86.sse2.pslli.w
2205 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2206 return _mm_mask_slli_epi16(__W, __U, __A, __B);
2207 }
2208
test_mm_maskz_slli_epi16(__mmask8 __U,__m128i __A)2209 __m128i test_mm_maskz_slli_epi16(__mmask8 __U, __m128i __A) {
2210 // CHECK-LABEL: @test_mm_maskz_slli_epi16
2211 // CHECK: @llvm.x86.sse2.pslli.w
2212 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2213 return _mm_maskz_slli_epi16(__U, __A, 5);
2214 }
2215
test_mm_maskz_slli_epi16_2(__mmask8 __U,__m128i __A,unsigned int __B)2216 __m128i test_mm_maskz_slli_epi16_2(__mmask8 __U, __m128i __A, unsigned int __B) {
2217 // CHECK-LABEL: @test_mm_maskz_slli_epi16_2
2218 // CHECK: @llvm.x86.sse2.pslli.w
2219 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2220 return _mm_maskz_slli_epi16(__U, __A, __B);
2221 }
2222
test_mm256_mask_slli_epi16(__m256i __W,__mmask16 __U,__m256i __A)2223 __m256i test_mm256_mask_slli_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
2224 // CHECK-LABEL: @test_mm256_mask_slli_epi16
2225 // CHECK: @llvm.x86.avx2.pslli.w
2226 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2227 return _mm256_mask_slli_epi16(__W, __U, __A, 5);
2228 }
2229
test_mm256_mask_slli_epi16_2(__m256i __W,__mmask16 __U,__m256i __A,unsigned int __B)2230 __m256i test_mm256_mask_slli_epi16_2(__m256i __W, __mmask16 __U, __m256i __A, unsigned int __B) {
2231 // CHECK-LABEL: @test_mm256_mask_slli_epi16_2
2232 // CHECK: @llvm.x86.avx2.pslli.w
2233 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2234 return _mm256_mask_slli_epi16(__W, __U, __A, __B);
2235 }
2236
test_mm256_maskz_slli_epi16(__mmask16 __U,__m256i __A)2237 __m256i test_mm256_maskz_slli_epi16(__mmask16 __U, __m256i __A) {
2238 // CHECK-LABEL: @test_mm256_maskz_slli_epi16
2239 // CHECK: @llvm.x86.avx2.pslli.w
2240 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2241 return _mm256_maskz_slli_epi16(__U, __A, 5);
2242 }
2243
test_mm256_maskz_slli_epi16_2(__mmask16 __U,__m256i __A,unsigned int __B)2244 __m256i test_mm256_maskz_slli_epi16_2(__mmask16 __U, __m256i __A, unsigned int __B) {
2245 // CHECK-LABEL: @test_mm256_maskz_slli_epi16_2
2246 // CHECK: @llvm.x86.avx2.pslli.w
2247 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2248 return _mm256_maskz_slli_epi16(__U, __A, __B);
2249 }
2250
test_mm256_srlv_epi16(__m256i __A,__m256i __B)2251 __m256i test_mm256_srlv_epi16(__m256i __A, __m256i __B) {
2252 // CHECK-LABEL: @test_mm256_srlv_epi16
2253 // CHECK: @llvm.x86.avx512.psrlv.w.256(
2254 return _mm256_srlv_epi16(__A, __B);
2255 }
2256
test_mm256_mask_srlv_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2257 __m256i test_mm256_mask_srlv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
2258 // CHECK-LABEL: @test_mm256_mask_srlv_epi16
2259 // CHECK: @llvm.x86.avx512.psrlv.w.256(
2260 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2261 return _mm256_mask_srlv_epi16(__W, __U, __A, __B);
2262 }
2263
test_mm256_maskz_srlv_epi16(__mmask16 __U,__m256i __A,__m256i __B)2264 __m256i test_mm256_maskz_srlv_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
2265 // CHECK-LABEL: @test_mm256_maskz_srlv_epi16
2266 // CHECK: @llvm.x86.avx512.psrlv.w.256(
2267 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2268 return _mm256_maskz_srlv_epi16(__U, __A, __B);
2269 }
2270
test_mm_srlv_epi16(__m128i __A,__m128i __B)2271 __m128i test_mm_srlv_epi16(__m128i __A, __m128i __B) {
2272 // CHECK-LABEL: @test_mm_srlv_epi16
2273 // CHECK: @llvm.x86.avx512.psrlv.w.128(
2274 return _mm_srlv_epi16(__A, __B);
2275 }
2276
test_mm_mask_srlv_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2277 __m128i test_mm_mask_srlv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2278 // CHECK-LABEL: @test_mm_mask_srlv_epi16
2279 // CHECK: @llvm.x86.avx512.psrlv.w.128(
2280 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2281 return _mm_mask_srlv_epi16(__W, __U, __A, __B);
2282 }
2283
test_mm_maskz_srlv_epi16(__mmask8 __U,__m128i __A,__m128i __B)2284 __m128i test_mm_maskz_srlv_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2285 // CHECK-LABEL: @test_mm_maskz_srlv_epi16
2286 // CHECK: @llvm.x86.avx512.psrlv.w.128(
2287 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2288 return _mm_maskz_srlv_epi16(__U, __A, __B);
2289 }
2290
test_mm_mask_srl_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2291 __m128i test_mm_mask_srl_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2292 // CHECK-LABEL: @test_mm_mask_srl_epi16
2293 // CHECK: @llvm.x86.sse2.psrl.w
2294 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2295 return _mm_mask_srl_epi16(__W, __U, __A, __B);
2296 }
2297
test_mm_maskz_srl_epi16(__mmask8 __U,__m128i __A,__m128i __B)2298 __m128i test_mm_maskz_srl_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2299 // CHECK-LABEL: @test_mm_maskz_srl_epi16
2300 // CHECK: @llvm.x86.sse2.psrl.w
2301 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2302 return _mm_maskz_srl_epi16(__U, __A, __B);
2303 }
2304
test_mm256_mask_srl_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m128i __B)2305 __m256i test_mm256_mask_srl_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) {
2306 // CHECK-LABEL: @test_mm256_mask_srl_epi16
2307 // CHECK: @llvm.x86.avx2.psrl.w
2308 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2309 return _mm256_mask_srl_epi16(__W, __U, __A, __B);
2310 }
2311
test_mm256_maskz_srl_epi16(__mmask16 __U,__m256i __A,__m128i __B)2312 __m256i test_mm256_maskz_srl_epi16(__mmask16 __U, __m256i __A, __m128i __B) {
2313 // CHECK-LABEL: @test_mm256_maskz_srl_epi16
2314 // CHECK: @llvm.x86.avx2.psrl.w
2315 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2316 return _mm256_maskz_srl_epi16(__U, __A, __B);
2317 }
2318
test_mm_mask_srli_epi16(__m128i __W,__mmask8 __U,__m128i __A)2319 __m128i test_mm_mask_srli_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
2320 // CHECK-LABEL: @test_mm_mask_srli_epi16
2321 // CHECK: @llvm.x86.sse2.psrli.w
2322 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2323 return _mm_mask_srli_epi16(__W, __U, __A, 5);
2324 }
2325
test_mm_mask_srli_epi16_2(__m128i __W,__mmask8 __U,__m128i __A,int __B)2326 __m128i test_mm_mask_srli_epi16_2(__m128i __W, __mmask8 __U, __m128i __A, int __B) {
2327 // CHECK-LABEL: @test_mm_mask_srli_epi16_2
2328 // CHECK: @llvm.x86.sse2.psrli.w
2329 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2330 return _mm_mask_srli_epi16(__W, __U, __A, __B);
2331 }
2332
test_mm_maskz_srli_epi16(__mmask8 __U,__m128i __A)2333 __m128i test_mm_maskz_srli_epi16(__mmask8 __U, __m128i __A) {
2334 // CHECK-LABEL: @test_mm_maskz_srli_epi16
2335 // CHECK: @llvm.x86.sse2.psrli.w
2336 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2337 return _mm_maskz_srli_epi16(__U, __A, 5);
2338 }
2339
test_mm_maskz_srli_epi16_2(__mmask8 __U,__m128i __A,int __B)2340 __m128i test_mm_maskz_srli_epi16_2(__mmask8 __U, __m128i __A, int __B) {
2341 // CHECK-LABEL: @test_mm_maskz_srli_epi16_2
2342 // CHECK: @llvm.x86.sse2.psrli.w
2343 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2344 return _mm_maskz_srli_epi16(__U, __A, __B);
2345 }
2346
test_mm256_mask_srli_epi16(__m256i __W,__mmask16 __U,__m256i __A)2347 __m256i test_mm256_mask_srli_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
2348 // CHECK-LABEL: @test_mm256_mask_srli_epi16
2349 // CHECK: @llvm.x86.avx2.psrli.w
2350 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2351 return _mm256_mask_srli_epi16(__W, __U, __A, 5);
2352 }
2353
test_mm256_mask_srli_epi16_2(__m256i __W,__mmask16 __U,__m256i __A,int __B)2354 __m256i test_mm256_mask_srli_epi16_2(__m256i __W, __mmask16 __U, __m256i __A, int __B) {
2355 // CHECK-LABEL: @test_mm256_mask_srli_epi16_2
2356 // CHECK: @llvm.x86.avx2.psrli.w
2357 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2358 return _mm256_mask_srli_epi16(__W, __U, __A, __B);
2359 }
2360
test_mm256_maskz_srli_epi16(__mmask16 __U,__m256i __A)2361 __m256i test_mm256_maskz_srli_epi16(__mmask16 __U, __m256i __A) {
2362 // CHECK-LABEL: @test_mm256_maskz_srli_epi16
2363 // CHECK: @llvm.x86.avx2.psrli.w
2364 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2365 return _mm256_maskz_srli_epi16(__U, __A, 5);
2366 }
2367
test_mm256_maskz_srli_epi16_2(__mmask16 __U,__m256i __A,int __B)2368 __m256i test_mm256_maskz_srli_epi16_2(__mmask16 __U, __m256i __A, int __B) {
2369 // CHECK-LABEL: @test_mm256_maskz_srli_epi16_2
2370 // CHECK: @llvm.x86.avx2.psrli.w
2371 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2372 return _mm256_maskz_srli_epi16(__U, __A, __B);
2373 }
2374
test_mm256_srav_epi16(__m256i __A,__m256i __B)2375 __m256i test_mm256_srav_epi16(__m256i __A, __m256i __B) {
2376 // CHECK-LABEL: @test_mm256_srav_epi16
2377 // CHECK: @llvm.x86.avx512.psrav.w.256(
2378 return _mm256_srav_epi16(__A, __B);
2379 }
2380
test_mm256_mask_srav_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2381 __m256i test_mm256_mask_srav_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
2382 // CHECK-LABEL: @test_mm256_mask_srav_epi16
2383 // CHECK: @llvm.x86.avx512.psrav.w.256(
2384 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2385 return _mm256_mask_srav_epi16(__W, __U, __A, __B);
2386 }
2387
test_mm256_maskz_srav_epi16(__mmask16 __U,__m256i __A,__m256i __B)2388 __m256i test_mm256_maskz_srav_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
2389 // CHECK-LABEL: @test_mm256_maskz_srav_epi16
2390 // CHECK: @llvm.x86.avx512.psrav.w.256(
2391 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2392 return _mm256_maskz_srav_epi16(__U, __A, __B);
2393 }
2394
test_mm_srav_epi16(__m128i __A,__m128i __B)2395 __m128i test_mm_srav_epi16(__m128i __A, __m128i __B) {
2396 // CHECK-LABEL: @test_mm_srav_epi16
2397 // CHECK: @llvm.x86.avx512.psrav.w.128(
2398 return _mm_srav_epi16(__A, __B);
2399 }
2400
test_mm_mask_srav_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2401 __m128i test_mm_mask_srav_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2402 // CHECK-LABEL: @test_mm_mask_srav_epi16
2403 // CHECK: @llvm.x86.avx512.psrav.w.128(
2404 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2405 return _mm_mask_srav_epi16(__W, __U, __A, __B);
2406 }
2407
test_mm_maskz_srav_epi16(__mmask8 __U,__m128i __A,__m128i __B)2408 __m128i test_mm_maskz_srav_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2409 // CHECK-LABEL: @test_mm_maskz_srav_epi16
2410 // CHECK: @llvm.x86.avx512.psrav.w.128(
2411 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2412 return _mm_maskz_srav_epi16(__U, __A, __B);
2413 }
2414
test_mm_mask_sra_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2415 __m128i test_mm_mask_sra_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2416 // CHECK-LABEL: @test_mm_mask_sra_epi16
2417 // CHECK: @llvm.x86.sse2.psra.w
2418 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2419 return _mm_mask_sra_epi16(__W, __U, __A, __B);
2420 }
2421
test_mm_maskz_sra_epi16(__mmask8 __U,__m128i __A,__m128i __B)2422 __m128i test_mm_maskz_sra_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2423 // CHECK-LABEL: @test_mm_maskz_sra_epi16
2424 // CHECK: @llvm.x86.sse2.psra.w
2425 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2426 return _mm_maskz_sra_epi16(__U, __A, __B);
2427 }
2428
test_mm256_mask_sra_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m128i __B)2429 __m256i test_mm256_mask_sra_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) {
2430 // CHECK-LABEL: @test_mm256_mask_sra_epi16
2431 // CHECK: @llvm.x86.avx2.psra.w
2432 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2433 return _mm256_mask_sra_epi16(__W, __U, __A, __B);
2434 }
2435
test_mm256_maskz_sra_epi16(__mmask16 __U,__m256i __A,__m128i __B)2436 __m256i test_mm256_maskz_sra_epi16(__mmask16 __U, __m256i __A, __m128i __B) {
2437 // CHECK-LABEL: @test_mm256_maskz_sra_epi16
2438 // CHECK: @llvm.x86.avx2.psra.w
2439 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2440 return _mm256_maskz_sra_epi16(__U, __A, __B);
2441 }
2442
test_mm_mask_srai_epi16(__m128i __W,__mmask8 __U,__m128i __A)2443 __m128i test_mm_mask_srai_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
2444 // CHECK-LABEL: @test_mm_mask_srai_epi16
2445 // CHECK: @llvm.x86.sse2.psrai.w
2446 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2447 return _mm_mask_srai_epi16(__W, __U, __A, 5);
2448 }
2449
test_mm_mask_srai_epi16_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)2450 __m128i test_mm_mask_srai_epi16_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
2451 // CHECK-LABEL: @test_mm_mask_srai_epi16_2
2452 // CHECK: @llvm.x86.sse2.psrai.w
2453 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2454 return _mm_mask_srai_epi16(__W, __U, __A, __B);
2455 }
2456
test_mm_maskz_srai_epi16(__mmask8 __U,__m128i __A)2457 __m128i test_mm_maskz_srai_epi16(__mmask8 __U, __m128i __A) {
2458 // CHECK-LABEL: @test_mm_maskz_srai_epi16
2459 // CHECK: @llvm.x86.sse2.psrai.w
2460 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2461 return _mm_maskz_srai_epi16(__U, __A, 5);
2462 }
2463
test_mm_maskz_srai_epi16_2(__mmask8 __U,__m128i __A,unsigned int __B)2464 __m128i test_mm_maskz_srai_epi16_2(__mmask8 __U, __m128i __A, unsigned int __B) {
2465 // CHECK-LABEL: @test_mm_maskz_srai_epi16_2
2466 // CHECK: @llvm.x86.sse2.psrai.w
2467 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2468 return _mm_maskz_srai_epi16(__U, __A, __B);
2469 }
2470
test_mm256_mask_srai_epi16(__m256i __W,__mmask16 __U,__m256i __A)2471 __m256i test_mm256_mask_srai_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
2472 // CHECK-LABEL: @test_mm256_mask_srai_epi16
2473 // CHECK: @llvm.x86.avx2.psrai.w
2474 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2475 return _mm256_mask_srai_epi16(__W, __U, __A, 5);
2476 }
2477
test_mm256_mask_srai_epi16_2(__m256i __W,__mmask16 __U,__m256i __A,unsigned int __B)2478 __m256i test_mm256_mask_srai_epi16_2(__m256i __W, __mmask16 __U, __m256i __A, unsigned int __B) {
2479 // CHECK-LABEL: @test_mm256_mask_srai_epi16_2
2480 // CHECK: @llvm.x86.avx2.psrai.w
2481 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2482 return _mm256_mask_srai_epi16(__W, __U, __A, __B);
2483 }
2484
test_mm256_maskz_srai_epi16(__mmask16 __U,__m256i __A)2485 __m256i test_mm256_maskz_srai_epi16(__mmask16 __U, __m256i __A) {
2486 // CHECK-LABEL: @test_mm256_maskz_srai_epi16
2487 // CHECK: @llvm.x86.avx2.psrai.w
2488 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2489 return _mm256_maskz_srai_epi16(__U, __A, 5);
2490 }
2491
test_mm256_maskz_srai_epi16_2(__mmask16 __U,__m256i __A,unsigned int __B)2492 __m256i test_mm256_maskz_srai_epi16_2(__mmask16 __U, __m256i __A, unsigned int __B) {
2493 // CHECK-LABEL: @test_mm256_maskz_srai_epi16_2
2494 // CHECK: @llvm.x86.avx2.psrai.w
2495 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2496 return _mm256_maskz_srai_epi16(__U, __A, __B);
2497 }
2498
test_mm_mask_mov_epi16(__m128i __W,__mmask8 __U,__m128i __A)2499 __m128i test_mm_mask_mov_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
2500 // CHECK-LABEL: @test_mm_mask_mov_epi16
2501 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2502 return _mm_mask_mov_epi16(__W, __U, __A);
2503 }
2504
test_mm_maskz_mov_epi16(__mmask8 __U,__m128i __A)2505 __m128i test_mm_maskz_mov_epi16(__mmask8 __U, __m128i __A) {
2506 // CHECK-LABEL: @test_mm_maskz_mov_epi16
2507 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2508 return _mm_maskz_mov_epi16(__U, __A);
2509 }
2510
test_mm256_mask_mov_epi16(__m256i __W,__mmask16 __U,__m256i __A)2511 __m256i test_mm256_mask_mov_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
2512 // CHECK-LABEL: @test_mm256_mask_mov_epi16
2513 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2514 return _mm256_mask_mov_epi16(__W, __U, __A);
2515 }
2516
test_mm256_maskz_mov_epi16(__mmask16 __U,__m256i __A)2517 __m256i test_mm256_maskz_mov_epi16(__mmask16 __U, __m256i __A) {
2518 // CHECK-LABEL: @test_mm256_maskz_mov_epi16
2519 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2520 return _mm256_maskz_mov_epi16(__U, __A);
2521 }
2522
test_mm_mask_mov_epi8(__m128i __W,__mmask16 __U,__m128i __A)2523 __m128i test_mm_mask_mov_epi8(__m128i __W, __mmask16 __U, __m128i __A) {
2524 // CHECK-LABEL: @test_mm_mask_mov_epi8
2525 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2526 return _mm_mask_mov_epi8(__W, __U, __A);
2527 }
2528
test_mm_maskz_mov_epi8(__mmask16 __U,__m128i __A)2529 __m128i test_mm_maskz_mov_epi8(__mmask16 __U, __m128i __A) {
2530 // CHECK-LABEL: @test_mm_maskz_mov_epi8
2531 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2532 return _mm_maskz_mov_epi8(__U, __A);
2533 }
2534
test_mm256_mask_mov_epi8(__m256i __W,__mmask32 __U,__m256i __A)2535 __m256i test_mm256_mask_mov_epi8(__m256i __W, __mmask32 __U, __m256i __A) {
2536 // CHECK-LABEL: @test_mm256_mask_mov_epi8
2537 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2538 return _mm256_mask_mov_epi8(__W, __U, __A);
2539 }
2540
test_mm256_maskz_mov_epi8(__mmask32 __U,__m256i __A)2541 __m256i test_mm256_maskz_mov_epi8(__mmask32 __U, __m256i __A) {
2542 // CHECK-LABEL: @test_mm256_maskz_mov_epi8
2543 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2544 return _mm256_maskz_mov_epi8(__U, __A);
2545 }
2546
test_mm_loadu_epi16(void const * __P)2547 __m128i test_mm_loadu_epi16(void const *__P) {
2548 // CHECK-LABEL: @test_mm_loadu_epi16
2549 // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
2550 return _mm_loadu_epi16(__P);
2551 }
2552
test_mm_mask_loadu_epi16(__m128i __W,__mmask8 __U,void const * __P)2553 __m128i test_mm_mask_loadu_epi16(__m128i __W, __mmask8 __U, void const *__P) {
2554 // CHECK-LABEL: @test_mm_mask_loadu_epi16
2555 // CHECK: @llvm.masked.load.v8i16.p0v8i16(<8 x i16>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i16> %{{.*}})
2556 return _mm_mask_loadu_epi16(__W, __U, __P);
2557 }
2558
test_mm_maskz_loadu_epi16(__mmask8 __U,void const * __P)2559 __m128i test_mm_maskz_loadu_epi16(__mmask8 __U, void const *__P) {
2560 // CHECK-LABEL: @test_mm_maskz_loadu_epi16
2561 // CHECK: @llvm.masked.load.v8i16.p0v8i16(<8 x i16>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i16> %{{.*}})
2562 return _mm_maskz_loadu_epi16(__U, __P);
2563 }
2564
test_mm256_loadu_epi16(void const * __P)2565 __m256i test_mm256_loadu_epi16(void const *__P) {
2566 // CHECK-LABEL: @test_mm256_loadu_epi16
2567 // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}, align 1{{$}}
2568 return _mm256_loadu_epi16(__P);
2569 }
2570
test_mm256_mask_loadu_epi16(__m256i __W,__mmask16 __U,void const * __P)2571 __m256i test_mm256_mask_loadu_epi16(__m256i __W, __mmask16 __U, void const *__P) {
2572 // CHECK-LABEL: @test_mm256_mask_loadu_epi16
2573 // CHECK: @llvm.masked.load.v16i16.p0v16i16(<16 x i16>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i16> %{{.*}})
2574 return _mm256_mask_loadu_epi16(__W, __U, __P);
2575 }
2576
test_mm256_maskz_loadu_epi16(__mmask16 __U,void const * __P)2577 __m256i test_mm256_maskz_loadu_epi16(__mmask16 __U, void const *__P) {
2578 // CHECK-LABEL: @test_mm256_maskz_loadu_epi16
2579 // CHECK: @llvm.masked.load.v16i16.p0v16i16(<16 x i16>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i16> %{{.*}})
2580 return _mm256_maskz_loadu_epi16(__U, __P);
2581 }
2582
test_mm_loadu_epi8(void const * __P)2583 __m128i test_mm_loadu_epi8(void const *__P) {
2584 // CHECK-LABEL: @test_mm_loadu_epi8
2585 // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
2586 return _mm_loadu_epi8(__P);
2587 }
2588
test_mm_mask_loadu_epi8(__m128i __W,__mmask16 __U,void const * __P)2589 __m128i test_mm_mask_loadu_epi8(__m128i __W, __mmask16 __U, void const *__P) {
2590 // CHECK-LABEL: @test_mm_mask_loadu_epi8
2591 // CHECK: @llvm.masked.load.v16i8.p0v16i8(<16 x i8>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i8> %{{.*}})
2592 return _mm_mask_loadu_epi8(__W, __U, __P);
2593 }
2594
test_mm_maskz_loadu_epi8(__mmask16 __U,void const * __P)2595 __m128i test_mm_maskz_loadu_epi8(__mmask16 __U, void const *__P) {
2596 // CHECK-LABEL: @test_mm_maskz_loadu_epi8
2597 // CHECK: @llvm.masked.load.v16i8.p0v16i8(<16 x i8>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i8> %{{.*}})
2598 return _mm_maskz_loadu_epi8(__U, __P);
2599 }
2600
test_mm256_loadu_epi8(void const * __P)2601 __m256i test_mm256_loadu_epi8(void const *__P) {
2602 // CHECK-LABEL: @test_mm256_loadu_epi8
2603 // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}, align 1{{$}}
2604 return _mm256_loadu_epi8(__P);
2605 }
2606
test_mm256_mask_loadu_epi8(__m256i __W,__mmask32 __U,void const * __P)2607 __m256i test_mm256_mask_loadu_epi8(__m256i __W, __mmask32 __U, void const *__P) {
2608 // CHECK-LABEL: @test_mm256_mask_loadu_epi8
2609 // CHECK: @llvm.masked.load.v32i8.p0v32i8(<32 x i8>* %{{.*}}, i32 1, <32 x i1> %{{.*}}, <32 x i8> %{{.*}})
2610 return _mm256_mask_loadu_epi8(__W, __U, __P);
2611 }
2612
test_mm256_maskz_loadu_epi8(__mmask32 __U,void const * __P)2613 __m256i test_mm256_maskz_loadu_epi8(__mmask32 __U, void const *__P) {
2614 // CHECK-LABEL: @test_mm256_maskz_loadu_epi8
2615 // CHECK: @llvm.masked.load.v32i8.p0v32i8(<32 x i8>* %{{.*}}, i32 1, <32 x i1> %{{.*}}, <32 x i8> %{{.*}})
2616 return _mm256_maskz_loadu_epi8(__U, __P);
2617 }
2618
test_mm_storeu_epi16(void * __p,__m128i __a)2619 void test_mm_storeu_epi16(void *__p, __m128i __a) {
2620 // check-label: @test_mm_storeu_epi16
2621 // check: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1{{$}}
2622 return _mm_storeu_epi16(__p, __a);
2623 }
2624
test_mm_mask_storeu_epi16(void * __P,__mmask8 __U,__m128i __A)2625 void test_mm_mask_storeu_epi16(void *__P, __mmask8 __U, __m128i __A) {
2626 // CHECK-LABEL: @test_mm_mask_storeu_epi16
2627 // CHECK: @llvm.masked.store.v8i16.p0v8i16(<8 x i16> %{{.*}}, <8 x i16>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
2628 return _mm_mask_storeu_epi16(__P, __U, __A);
2629 }
2630
test_mm256_storeu_epi16(void * __P,__m256i __A)2631 void test_mm256_storeu_epi16(void *__P, __m256i __A) {
2632 // CHECK-LABEL: @test_mm256_storeu_epi16
2633 // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, align 1{{$}}
2634 return _mm256_storeu_epi16(__P, __A);
2635 }
2636
test_mm256_mask_storeu_epi16(void * __P,__mmask16 __U,__m256i __A)2637 void test_mm256_mask_storeu_epi16(void *__P, __mmask16 __U, __m256i __A) {
2638 // CHECK-LABEL: @test_mm256_mask_storeu_epi16
2639 // CHECK: @llvm.masked.store.v16i16.p0v16i16(<16 x i16> %{{.*}}, <16 x i16>* %{{.*}}, i32 1, <16 x i1> %{{.*}})
2640 return _mm256_mask_storeu_epi16(__P, __U, __A);
2641 }
2642
test_mm_storeu_epi8(void * __p,__m128i __a)2643 void test_mm_storeu_epi8(void *__p, __m128i __a) {
2644 // check-label: @test_mm_storeu_epi8
2645 // check: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1{{$}}
2646 return _mm_storeu_epi8(__p, __a);
2647 }
2648
test_mm_mask_storeu_epi8(void * __P,__mmask16 __U,__m128i __A)2649 void test_mm_mask_storeu_epi8(void *__P, __mmask16 __U, __m128i __A) {
2650 // CHECK-LABEL: @test_mm_mask_storeu_epi8
2651 // CHECK: @llvm.masked.store.v16i8.p0v16i8(<16 x i8> %{{.*}}, <16 x i8>* %{{.*}}, i32 1, <16 x i1> %{{.*}})
2652 return _mm_mask_storeu_epi8(__P, __U, __A);
2653 }
2654
test_mm256_storeu_epi8(void * __P,__m256i __A)2655 void test_mm256_storeu_epi8(void *__P, __m256i __A) {
2656 // CHECK-LABEL: @test_mm256_storeu_epi8
2657 // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, align 1{{$}}
2658 return _mm256_storeu_epi8(__P, __A);
2659 }
2660
test_mm256_mask_storeu_epi8(void * __P,__mmask32 __U,__m256i __A)2661 void test_mm256_mask_storeu_epi8(void *__P, __mmask32 __U, __m256i __A) {
2662 // CHECK-LABEL: @test_mm256_mask_storeu_epi8
2663 // CHECK: @llvm.masked.store.v32i8.p0v32i8(<32 x i8> %{{.*}}, <32 x i8>* %{{.*}}, i32 1, <32 x i1> %{{.*}})
2664 return _mm256_mask_storeu_epi8(__P, __U, __A);
2665 }
test_mm_test_epi8_mask(__m128i __A,__m128i __B)2666 __mmask16 test_mm_test_epi8_mask(__m128i __A, __m128i __B) {
2667 // CHECK-LABEL: @test_mm_test_epi8_mask
2668 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2669 // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
2670 return _mm_test_epi8_mask(__A, __B);
2671 }
2672
test_mm_mask_test_epi8_mask(__mmask16 __U,__m128i __A,__m128i __B)2673 __mmask16 test_mm_mask_test_epi8_mask(__mmask16 __U, __m128i __A, __m128i __B) {
2674 // CHECK-LABEL: @test_mm_mask_test_epi8_mask
2675 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2676 // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
2677 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
2678 return _mm_mask_test_epi8_mask(__U, __A, __B);
2679 }
2680
test_mm256_test_epi8_mask(__m256i __A,__m256i __B)2681 __mmask32 test_mm256_test_epi8_mask(__m256i __A, __m256i __B) {
2682 // CHECK-LABEL: @test_mm256_test_epi8_mask
2683 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2684 // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}}
2685 return _mm256_test_epi8_mask(__A, __B);
2686 }
2687
test_mm256_mask_test_epi8_mask(__mmask32 __U,__m256i __A,__m256i __B)2688 __mmask32 test_mm256_mask_test_epi8_mask(__mmask32 __U, __m256i __A, __m256i __B) {
2689 // CHECK-LABEL: @test_mm256_mask_test_epi8_mask
2690 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2691 // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}}
2692 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
2693 return _mm256_mask_test_epi8_mask(__U, __A, __B);
2694 }
2695
test_mm_test_epi16_mask(__m128i __A,__m128i __B)2696 __mmask8 test_mm_test_epi16_mask(__m128i __A, __m128i __B) {
2697 // CHECK-LABEL: @test_mm_test_epi16_mask
2698 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2699 // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
2700 return _mm_test_epi16_mask(__A, __B);
2701 }
2702
test_mm_mask_test_epi16_mask(__mmask8 __U,__m128i __A,__m128i __B)2703 __mmask8 test_mm_mask_test_epi16_mask(__mmask8 __U, __m128i __A, __m128i __B) {
2704 // CHECK-LABEL: @test_mm_mask_test_epi16_mask
2705 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2706 // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
2707 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
2708 return _mm_mask_test_epi16_mask(__U, __A, __B);
2709 }
2710
test_mm256_test_epi16_mask(__m256i __A,__m256i __B)2711 __mmask16 test_mm256_test_epi16_mask(__m256i __A, __m256i __B) {
2712 // CHECK-LABEL: @test_mm256_test_epi16_mask
2713 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2714 // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}}
2715 return _mm256_test_epi16_mask(__A, __B);
2716 }
2717
test_mm256_mask_test_epi16_mask(__mmask16 __U,__m256i __A,__m256i __B)2718 __mmask16 test_mm256_mask_test_epi16_mask(__mmask16 __U, __m256i __A, __m256i __B) {
2719 // CHECK-LABEL: @test_mm256_mask_test_epi16_mask
2720 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2721 // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}}
2722 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
2723 return _mm256_mask_test_epi16_mask(__U, __A, __B);
2724 }
2725
test_mm_testn_epi8_mask(__m128i __A,__m128i __B)2726 __mmask16 test_mm_testn_epi8_mask(__m128i __A, __m128i __B) {
2727 // CHECK-LABEL: @test_mm_testn_epi8_mask
2728 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2729 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
2730 return _mm_testn_epi8_mask(__A, __B);
2731 }
2732
test_mm_mask_testn_epi8_mask(__mmask16 __U,__m128i __A,__m128i __B)2733 __mmask16 test_mm_mask_testn_epi8_mask(__mmask16 __U, __m128i __A, __m128i __B) {
2734 // CHECK-LABEL: @test_mm_mask_testn_epi8_mask
2735 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2736 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
2737 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
2738 return _mm_mask_testn_epi8_mask(__U, __A, __B);
2739 }
2740
test_mm256_testn_epi8_mask(__m256i __A,__m256i __B)2741 __mmask32 test_mm256_testn_epi8_mask(__m256i __A, __m256i __B) {
2742 // CHECK-LABEL: @test_mm256_testn_epi8_mask
2743 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2744 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
2745 return _mm256_testn_epi8_mask(__A, __B);
2746 }
2747
test_mm256_mask_testn_epi8_mask(__mmask32 __U,__m256i __A,__m256i __B)2748 __mmask32 test_mm256_mask_testn_epi8_mask(__mmask32 __U, __m256i __A, __m256i __B) {
2749 // CHECK-LABEL: @test_mm256_mask_testn_epi8_mask
2750 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2751 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
2752 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
2753 return _mm256_mask_testn_epi8_mask(__U, __A, __B);
2754 }
2755
test_mm_testn_epi16_mask(__m128i __A,__m128i __B)2756 __mmask8 test_mm_testn_epi16_mask(__m128i __A, __m128i __B) {
2757 // CHECK-LABEL: @test_mm_testn_epi16_mask
2758 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2759 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
2760 return _mm_testn_epi16_mask(__A, __B);
2761 }
2762
test_mm_mask_testn_epi16_mask(__mmask8 __U,__m128i __A,__m128i __B)2763 __mmask8 test_mm_mask_testn_epi16_mask(__mmask8 __U, __m128i __A, __m128i __B) {
2764 // CHECK-LABEL: @test_mm_mask_testn_epi16_mask
2765 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2766 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
2767 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
2768 return _mm_mask_testn_epi16_mask(__U, __A, __B);
2769 }
2770
test_mm256_testn_epi16_mask(__m256i __A,__m256i __B)2771 __mmask16 test_mm256_testn_epi16_mask(__m256i __A, __m256i __B) {
2772 // CHECK-LABEL: @test_mm256_testn_epi16_mask
2773 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2774 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
2775 return _mm256_testn_epi16_mask(__A, __B);
2776 }
2777
test_mm256_mask_testn_epi16_mask(__mmask16 __U,__m256i __A,__m256i __B)2778 __mmask16 test_mm256_mask_testn_epi16_mask(__mmask16 __U, __m256i __A, __m256i __B) {
2779 // CHECK-LABEL: @test_mm256_mask_testn_epi16_mask
2780 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2781 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
2782 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
2783 return _mm256_mask_testn_epi16_mask(__U, __A, __B);
2784 }
2785
test_mm_movepi8_mask(__m128i __A)2786 __mmask16 test_mm_movepi8_mask(__m128i __A) {
2787 // CHECK-LABEL: @test_mm_movepi8_mask
2788 // CHECK: [[CMP:%.*]] = icmp slt <16 x i8> %{{.*}}, zeroinitializer
2789 // CHECK: bitcast <16 x i1> [[CMP]] to i16
2790 return _mm_movepi8_mask(__A);
2791 }
2792
test_mm256_movepi8_mask(__m256i __A)2793 __mmask32 test_mm256_movepi8_mask(__m256i __A) {
2794 // CHECK-LABEL: @test_mm256_movepi8_mask
2795 // CHECK: [[CMP:%.*]] = icmp slt <32 x i8> %{{.*}}, zeroinitializer
2796 // CHECK: bitcast <32 x i1> [[CMP]] to i32
2797 return _mm256_movepi8_mask(__A);
2798 }
2799
test_mm_movm_epi8(__mmask16 __A)2800 __m128i test_mm_movm_epi8(__mmask16 __A) {
2801 // CHECK-LABEL: @test_mm_movm_epi8
2802 // CHECK: %{{.*}} = bitcast i16 %{{.*}} to <16 x i1>
2803 // CHECK: %vpmovm2.i = sext <16 x i1> %{{.*}} to <16 x i8>
2804 return _mm_movm_epi8(__A);
2805 }
2806
test_mm256_movm_epi8(__mmask32 __A)2807 __m256i test_mm256_movm_epi8(__mmask32 __A) {
2808 // CHECK-LABEL: @test_mm256_movm_epi8
2809 // CHECK: %{{.*}} = bitcast i32 %{{.*}} to <32 x i1>
2810 // CHECK: %vpmovm2.i = sext <32 x i1> %{{.*}} to <32 x i8>
2811 return _mm256_movm_epi8(__A);
2812 }
2813
test_mm_movm_epi16(__mmask8 __A)2814 __m128i test_mm_movm_epi16(__mmask8 __A) {
2815 // CHECK-LABEL: @test_mm_movm_epi16
2816 // CHECK: %{{.*}} = bitcast i8 %{{.*}} to <8 x i1>
2817 // CHECK: %vpmovm2.i = sext <8 x i1> %{{.*}} to <8 x i16>
2818 return _mm_movm_epi16(__A);
2819 }
2820
test_mm256_movm_epi16(__mmask16 __A)2821 __m256i test_mm256_movm_epi16(__mmask16 __A) {
2822 // CHECK-LABEL: @test_mm256_movm_epi16
2823 // CHECK: %{{.*}} = bitcast i16 %{{.*}} to <16 x i1>
2824 // CHECK: %vpmovm2.i = sext <16 x i1> %{{.*}} to <16 x i16>
2825 return _mm256_movm_epi16(__A);
2826 }
2827
test_mm_mask_broadcastb_epi8(__m128i __O,__mmask16 __M,__m128i __A)2828 __m128i test_mm_mask_broadcastb_epi8(__m128i __O, __mmask16 __M, __m128i __A) {
2829 // CHECK-LABEL: @test_mm_mask_broadcastb_epi8
2830 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> zeroinitializer
2831 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2832 return _mm_mask_broadcastb_epi8(__O, __M, __A);
2833 }
2834
test_mm_maskz_broadcastb_epi8(__mmask16 __M,__m128i __A)2835 __m128i test_mm_maskz_broadcastb_epi8(__mmask16 __M, __m128i __A) {
2836 // CHECK-LABEL: @test_mm_maskz_broadcastb_epi8
2837 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> zeroinitializer
2838 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2839 return _mm_maskz_broadcastb_epi8(__M, __A);
2840 }
2841
test_mm256_mask_broadcastb_epi8(__m256i __O,__mmask32 __M,__m128i __A)2842 __m256i test_mm256_mask_broadcastb_epi8(__m256i __O, __mmask32 __M, __m128i __A) {
2843 // CHECK-LABEL: @test_mm256_mask_broadcastb_epi8
2844 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <32 x i32> zeroinitializer
2845 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2846 return _mm256_mask_broadcastb_epi8(__O, __M, __A);
2847 }
2848
test_mm256_maskz_broadcastb_epi8(__mmask32 __M,__m128i __A)2849 __m256i test_mm256_maskz_broadcastb_epi8(__mmask32 __M, __m128i __A) {
2850 // CHECK-LABEL: @test_mm256_maskz_broadcastb_epi8
2851 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <32 x i32> zeroinitializer
2852 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2853 return _mm256_maskz_broadcastb_epi8(__M, __A);
2854 }
2855
test_mm_mask_broadcastw_epi16(__m128i __O,__mmask8 __M,__m128i __A)2856 __m128i test_mm_mask_broadcastw_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
2857 // CHECK-LABEL: @test_mm_mask_broadcastw_epi16
2858 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> zeroinitializer
2859 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2860 return _mm_mask_broadcastw_epi16(__O, __M, __A);
2861 }
2862
test_mm_maskz_broadcastw_epi16(__mmask8 __M,__m128i __A)2863 __m128i test_mm_maskz_broadcastw_epi16(__mmask8 __M, __m128i __A) {
2864 // CHECK-LABEL: @test_mm_maskz_broadcastw_epi16
2865 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> zeroinitializer
2866 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2867 return _mm_maskz_broadcastw_epi16(__M, __A);
2868 }
2869
test_mm256_mask_broadcastw_epi16(__m256i __O,__mmask16 __M,__m128i __A)2870 __m256i test_mm256_mask_broadcastw_epi16(__m256i __O, __mmask16 __M, __m128i __A) {
2871 // CHECK-LABEL: @test_mm256_mask_broadcastw_epi16
2872 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <16 x i32> zeroinitializer
2873 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2874 return _mm256_mask_broadcastw_epi16(__O, __M, __A);
2875 }
2876
test_mm256_maskz_broadcastw_epi16(__mmask16 __M,__m128i __A)2877 __m256i test_mm256_maskz_broadcastw_epi16(__mmask16 __M, __m128i __A) {
2878 // CHECK-LABEL: @test_mm256_maskz_broadcastw_epi16
2879 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <16 x i32> zeroinitializer
2880 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2881 return _mm256_maskz_broadcastw_epi16(__M, __A);
2882 }
test_mm_mask_set1_epi8(__m128i __O,__mmask16 __M,char __A)2883 __m128i test_mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A){
2884 // CHECK-LABEL: @test_mm_mask_set1_epi8
2885 // CHECK: insertelement <16 x i8> undef, i8 %{{.*}}, i32 0
2886 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 1
2887 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 2
2888 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 3
2889 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 4
2890 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 5
2891 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 6
2892 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 7
2893 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 8
2894 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 9
2895 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 10
2896 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 11
2897 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 12
2898 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 13
2899 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 14
2900 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 15
2901 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2902 return _mm_mask_set1_epi8(__O, __M, __A);
2903 }
test_mm_maskz_set1_epi8(__mmask16 __M,char __A)2904 __m128i test_mm_maskz_set1_epi8 ( __mmask16 __M, char __A){
2905 // CHECK-LABEL: @test_mm_maskz_set1_epi8
2906 // CHECK: insertelement <16 x i8> undef, i8 %{{.*}}, i32 0
2907 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 1
2908 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 2
2909 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 3
2910 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 4
2911 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 5
2912 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 6
2913 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 7
2914 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 8
2915 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 9
2916 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 10
2917 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 11
2918 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 12
2919 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 13
2920 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 14
2921 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 15
2922 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2923 return _mm_maskz_set1_epi8( __M, __A);
2924 }
2925
test_mm256_mask_set1_epi8(__m256i __O,__mmask32 __M,char __A)2926 __m256i test_mm256_mask_set1_epi8(__m256i __O, __mmask32 __M, char __A) {
2927 // CHECK-LABEL: @test_mm256_mask_set1_epi8
2928 // CHECK: insertelement <32 x i8> undef, i8 %{{.*}}, i32 0
2929 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 1
2930 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 2
2931 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 3
2932 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 4
2933 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 5
2934 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 6
2935 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 7
2936 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 8
2937 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 9
2938 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 10
2939 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 11
2940 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 12
2941 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 13
2942 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 14
2943 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 15
2944 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 16
2945 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 17
2946 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 18
2947 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 19
2948 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 20
2949 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 21
2950 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 22
2951 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 23
2952 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 24
2953 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 25
2954 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 26
2955 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 27
2956 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 28
2957 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 29
2958 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 30
2959 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 31
2960 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2961 return _mm256_mask_set1_epi8(__O, __M, __A);
2962 }
2963
test_mm256_maskz_set1_epi8(__mmask32 __M,char __A)2964 __m256i test_mm256_maskz_set1_epi8( __mmask32 __M, char __A) {
2965 // CHECK-LABEL: @test_mm256_maskz_set1_epi8
2966 // CHECK: insertelement <32 x i8> undef, i8 %{{.*}}, i32 0
2967 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 1
2968 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 2
2969 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 3
2970 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 4
2971 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 5
2972 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 6
2973 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 7
2974 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 8
2975 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 9
2976 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 10
2977 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 11
2978 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 12
2979 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 13
2980 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 14
2981 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 15
2982 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 16
2983 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 17
2984 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 18
2985 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 19
2986 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 20
2987 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 21
2988 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 22
2989 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 23
2990 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 24
2991 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 25
2992 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 26
2993 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 27
2994 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 28
2995 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 29
2996 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 30
2997 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 31
2998 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2999 return _mm256_maskz_set1_epi8( __M, __A);
3000 }
3001
3002
test_mm256_mask_set1_epi16(__m256i __O,__mmask16 __M,short __A)3003 __m256i test_mm256_mask_set1_epi16(__m256i __O, __mmask16 __M, short __A) {
3004 // CHECK-LABEL: @test_mm256_mask_set1_epi16
3005 // CHECK: insertelement <16 x i16> undef, i16 %{{.*}}, i32 0
3006 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 1
3007 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 2
3008 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 3
3009 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 4
3010 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 5
3011 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 6
3012 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 7
3013 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 8
3014 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 9
3015 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 10
3016 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 11
3017 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 12
3018 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 13
3019 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 14
3020 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 15
3021 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3022 return _mm256_mask_set1_epi16(__O, __M, __A);
3023 }
3024
test_mm256_maskz_set1_epi16(__mmask16 __M,short __A)3025 __m256i test_mm256_maskz_set1_epi16(__mmask16 __M, short __A) {
3026 // CHECK-LABEL: @test_mm256_maskz_set1_epi16
3027 // CHECK: insertelement <16 x i16> undef, i16 %{{.*}}, i32 0
3028 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 1
3029 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 2
3030 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 3
3031 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 4
3032 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 5
3033 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 6
3034 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 7
3035 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 8
3036 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 9
3037 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 10
3038 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 11
3039 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 12
3040 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 13
3041 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 14
3042 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 15
3043 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3044 return _mm256_maskz_set1_epi16(__M, __A);
3045 }
3046
test_mm_mask_set1_epi16(__m128i __O,__mmask8 __M,short __A)3047 __m128i test_mm_mask_set1_epi16(__m128i __O, __mmask8 __M, short __A) {
3048 // CHECK-LABEL: @test_mm_mask_set1_epi16
3049 // CHECK: insertelement <8 x i16> undef, i16 %{{.*}}, i32 0
3050 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 1
3051 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 2
3052 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 3
3053 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 4
3054 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 5
3055 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 6
3056 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 7
3057 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3058 return _mm_mask_set1_epi16(__O, __M, __A);
3059 }
3060
test_mm_maskz_set1_epi16(__mmask8 __M,short __A)3061 __m128i test_mm_maskz_set1_epi16(__mmask8 __M, short __A) {
3062 // CHECK-LABEL: @test_mm_maskz_set1_epi16
3063 // CHECK: insertelement <8 x i16> undef, i16 %{{.*}}, i32 0
3064 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 1
3065 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 2
3066 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 3
3067 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 4
3068 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 5
3069 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 6
3070 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 7
3071 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3072 return _mm_maskz_set1_epi16(__M, __A);
3073 }
test_mm_permutexvar_epi16(__m128i __A,__m128i __B)3074 __m128i test_mm_permutexvar_epi16(__m128i __A, __m128i __B) {
3075 // CHECK-LABEL: @test_mm_permutexvar_epi16
3076 // CHECK: @llvm.x86.avx512.permvar.hi.128
3077 return _mm_permutexvar_epi16(__A, __B);
3078 }
3079
test_mm_maskz_permutexvar_epi16(__mmask8 __M,__m128i __A,__m128i __B)3080 __m128i test_mm_maskz_permutexvar_epi16(__mmask8 __M, __m128i __A, __m128i __B) {
3081 // CHECK-LABEL: @test_mm_maskz_permutexvar_epi16
3082 // CHECK: @llvm.x86.avx512.permvar.hi.128
3083 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3084 return _mm_maskz_permutexvar_epi16(__M, __A, __B);
3085 }
3086
test_mm_mask_permutexvar_epi16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)3087 __m128i test_mm_mask_permutexvar_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3088 // CHECK-LABEL: @test_mm_mask_permutexvar_epi16
3089 // CHECK: @llvm.x86.avx512.permvar.hi.128
3090 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3091 return _mm_mask_permutexvar_epi16(__W, __M, __A, __B);
3092 }
3093
test_mm256_permutexvar_epi16(__m256i __A,__m256i __B)3094 __m256i test_mm256_permutexvar_epi16(__m256i __A, __m256i __B) {
3095 // CHECK-LABEL: @test_mm256_permutexvar_epi16
3096 // CHECK: @llvm.x86.avx512.permvar.hi.256
3097 return _mm256_permutexvar_epi16(__A, __B);
3098 }
3099
test_mm256_maskz_permutexvar_epi16(__mmask16 __M,__m256i __A,__m256i __B)3100 __m256i test_mm256_maskz_permutexvar_epi16(__mmask16 __M, __m256i __A, __m256i __B) {
3101 // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi16
3102 // CHECK: @llvm.x86.avx512.permvar.hi.256
3103 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3104 return _mm256_maskz_permutexvar_epi16(__M, __A, __B);
3105 }
3106
test_mm256_mask_permutexvar_epi16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)3107 __m256i test_mm256_mask_permutexvar_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
3108 // CHECK-LABEL: @test_mm256_mask_permutexvar_epi16
3109 // CHECK: @llvm.x86.avx512.permvar.hi.256
3110 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3111 return _mm256_mask_permutexvar_epi16(__W, __M, __A, __B);
3112 }
test_mm_mask_alignr_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)3113 __m128i test_mm_mask_alignr_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
3114 // CHECK-LABEL: @test_mm_mask_alignr_epi8
3115 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17>
3116 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
3117 return _mm_mask_alignr_epi8(__W, __U, __A, __B, 2);
3118 }
3119
test_mm_maskz_alignr_epi8(__mmask16 __U,__m128i __A,__m128i __B)3120 __m128i test_mm_maskz_alignr_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
3121 // CHECK-LABEL: @test_mm_maskz_alignr_epi8
3122 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17>
3123 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
3124 return _mm_maskz_alignr_epi8(__U, __A, __B, 2);
3125 }
3126
test_mm256_mask_alignr_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)3127 __m256i test_mm256_mask_alignr_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
3128 // CHECK-LABEL: @test_mm256_mask_alignr_epi8
3129 // CHECK: shufflevector <32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 32, i32 33, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 48, i32 49>
3130 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
3131 return _mm256_mask_alignr_epi8(__W, __U, __A, __B, 2);
3132 }
3133
test_mm256_maskz_alignr_epi8(__mmask32 __U,__m256i __A,__m256i __B)3134 __m256i test_mm256_maskz_alignr_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
3135 // CHECK-LABEL: @test_mm256_maskz_alignr_epi8
3136 // CHECK: shufflevector <32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 32, i32 33, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 48, i32 49>
3137 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
3138 return _mm256_maskz_alignr_epi8(__U, __A, __B, 2);
3139 }
3140
test_mm_dbsad_epu8(__m128i __A,__m128i __B)3141 __m128i test_mm_dbsad_epu8(__m128i __A, __m128i __B) {
3142 // CHECK-LABEL: @test_mm_dbsad_epu8
3143 // CHECK: @llvm.x86.avx512.dbpsadbw.128
3144 return _mm_dbsad_epu8(__A, __B, 170);
3145 }
3146
test_mm_mask_dbsad_epu8(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)3147 __m128i test_mm_mask_dbsad_epu8(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
3148 // CHECK-LABEL: @test_mm_mask_dbsad_epu8
3149 // CHECK: @llvm.x86.avx512.dbpsadbw.128
3150 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3151 return _mm_mask_dbsad_epu8(__W, __U, __A, __B, 170);
3152 }
3153
test_mm_maskz_dbsad_epu8(__mmask8 __U,__m128i __A,__m128i __B)3154 __m128i test_mm_maskz_dbsad_epu8(__mmask8 __U, __m128i __A, __m128i __B) {
3155 // CHECK-LABEL: @test_mm_maskz_dbsad_epu8
3156 // CHECK: @llvm.x86.avx512.dbpsadbw.128
3157 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3158 return _mm_maskz_dbsad_epu8(__U, __A, __B, 170);
3159 }
3160
test_mm256_dbsad_epu8(__m256i __A,__m256i __B)3161 __m256i test_mm256_dbsad_epu8(__m256i __A, __m256i __B) {
3162 // CHECK-LABEL: @test_mm256_dbsad_epu8
3163 // CHECK: @llvm.x86.avx512.dbpsadbw.256
3164 return _mm256_dbsad_epu8(__A, __B, 170);
3165 }
3166
test_mm256_mask_dbsad_epu8(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)3167 __m256i test_mm256_mask_dbsad_epu8(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
3168 // CHECK-LABEL: @test_mm256_mask_dbsad_epu8
3169 // CHECK: @llvm.x86.avx512.dbpsadbw.256
3170 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3171 return _mm256_mask_dbsad_epu8(__W, __U, __A, __B, 170);
3172 }
3173
test_mm256_maskz_dbsad_epu8(__mmask16 __U,__m256i __A,__m256i __B)3174 __m256i test_mm256_maskz_dbsad_epu8(__mmask16 __U, __m256i __A, __m256i __B) {
3175 // CHECK-LABEL: @test_mm256_maskz_dbsad_epu8
3176 // CHECK: @llvm.x86.avx512.dbpsadbw.256
3177 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3178 return _mm256_maskz_dbsad_epu8(__U, __A, __B, 170);
3179 }
test_mm_movepi16_mask(__m128i __A)3180 __mmask8 test_mm_movepi16_mask(__m128i __A) {
3181 // CHECK-LABEL: @test_mm_movepi16_mask
3182 // CHECK: [[CMP:%.*]] = icmp slt <8 x i16> %{{.*}}, zeroinitializer
3183 // CHECK: bitcast <8 x i1> [[CMP]] to i8
3184 return _mm_movepi16_mask(__A);
3185 }
3186
test_mm256_movepi16_mask(__m256i __A)3187 __mmask16 test_mm256_movepi16_mask(__m256i __A) {
3188 // CHECK-LABEL: @test_mm256_movepi16_mask
3189 // CHECK: [[CMP:%.*]] = icmp slt <16 x i16> %{{.*}}, zeroinitializer
3190 // CHECK: bitcast <16 x i1> [[CMP]] to i16
3191 return _mm256_movepi16_mask(__A);
3192 }
3193
test_mm_mask_shufflehi_epi16(__m128i __W,__mmask8 __U,__m128i __A)3194 __m128i test_mm_mask_shufflehi_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
3195 // CHECK-LABEL: @test_mm_mask_shufflehi_epi16
3196 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4>
3197 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3198 return _mm_mask_shufflehi_epi16(__W, __U, __A, 5);
3199 }
3200
test_mm_maskz_shufflehi_epi16(__mmask8 __U,__m128i __A)3201 __m128i test_mm_maskz_shufflehi_epi16(__mmask8 __U, __m128i __A) {
3202 // CHECK-LABEL: @test_mm_maskz_shufflehi_epi16
3203 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4>
3204 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3205 return _mm_maskz_shufflehi_epi16(__U, __A, 5);
3206 }
3207
test_mm_mask_shufflelo_epi16(__m128i __W,__mmask8 __U,__m128i __A)3208 __m128i test_mm_mask_shufflelo_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
3209 // CHECK-LABEL: @test_mm_mask_shufflelo_epi16
3210 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <8 x i32> <i32 1, i32 1, i32 0, i32 0, i32 4, i32 5, i32 6, i32 7>
3211 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3212 return _mm_mask_shufflelo_epi16(__W, __U, __A, 5);
3213 }
3214
test_mm_maskz_shufflelo_epi16(__mmask8 __U,__m128i __A)3215 __m128i test_mm_maskz_shufflelo_epi16(__mmask8 __U, __m128i __A) {
3216 // CHECK-LABEL: @test_mm_maskz_shufflelo_epi16
3217 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <8 x i32> <i32 1, i32 1, i32 0, i32 0, i32 4, i32 5, i32 6, i32 7>
3218 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3219 return _mm_maskz_shufflelo_epi16(__U, __A, 5);
3220 }
3221
test_mm256_mask_shufflehi_epi16(__m256i __W,__mmask16 __U,__m256i __A)3222 __m256i test_mm256_mask_shufflehi_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
3223 // CHECK-LABEL: @test_mm256_mask_shufflehi_epi16
3224 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> undef, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4, i32 8, i32 9, i32 10, i32 11, i32 13, i32 13, i32 12, i32 12>
3225 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3226 return _mm256_mask_shufflehi_epi16(__W, __U, __A, 5);
3227 }
3228
test_mm256_maskz_shufflehi_epi16(__mmask16 __U,__m256i __A)3229 __m256i test_mm256_maskz_shufflehi_epi16(__mmask16 __U, __m256i __A) {
3230 // CHECK-LABEL: @test_mm256_maskz_shufflehi_epi16
3231 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> undef, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4, i32 8, i32 9, i32 10, i32 11, i32 13, i32 13, i32 12, i32 12>
3232 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3233 return _mm256_maskz_shufflehi_epi16(__U, __A, 5);
3234 }
3235
test_mm256_mask_shufflelo_epi16(__m256i __W,__mmask16 __U,__m256i __A)3236 __m256i test_mm256_mask_shufflelo_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
3237 // CHECK-LABEL: @test_mm256_mask_shufflelo_epi16
3238 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> undef, <16 x i32> <i32 1, i32 1, i32 0, i32 0, i32 4, i32 5, i32 6, i32 7, i32 9, i32 9, i32 8, i32 8, i32 12, i32 13, i32 14, i32 15>
3239 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3240 return _mm256_mask_shufflelo_epi16(__W, __U, __A, 5);
3241 }
3242
test_mm256_maskz_shufflelo_epi16(__mmask16 __U,__m256i __A)3243 __m256i test_mm256_maskz_shufflelo_epi16(__mmask16 __U, __m256i __A) {
3244 // CHECK-LABEL: @test_mm256_maskz_shufflelo_epi16
3245 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> undef, <16 x i32> <i32 1, i32 1, i32 0, i32 0, i32 4, i32 5, i32 6, i32 7, i32 9, i32 9, i32 8, i32 8, i32 12, i32 13, i32 14, i32 15>
3246 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3247 return _mm256_maskz_shufflelo_epi16(__U, __A, 5);
3248 }
3249
test_mm_mask_cvtepi16_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)3250 void test_mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
3251 {
3252 // CHECK-LABEL:@test_mm_mask_cvtepi16_storeu_epi8
3253 // CHECK: @llvm.x86.avx512.mask.pmov.wb.mem.128
3254 _mm_mask_cvtepi16_storeu_epi8 (__P, __M, __A);
3255 }
3256
test_mm_mask_cvtsepi16_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)3257 void test_mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
3258 {
3259 // CHECK-LABEL:@test_mm_mask_cvtsepi16_storeu_epi8
3260 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.mem.128
3261 _mm_mask_cvtsepi16_storeu_epi8 ( __P, __M, __A);
3262 }
3263
test_mm_mask_cvtusepi16_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)3264 void test_mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
3265 {
3266 // CHECK-LABEL:@test_mm_mask_cvtusepi16_storeu_epi8
3267 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.mem.128
3268 _mm_mask_cvtusepi16_storeu_epi8 (__P, __M, __A);
3269 }
3270
test_mm256_mask_cvtusepi16_storeu_epi8(void * __P,__mmask16 __M,__m256i __A)3271 void test_mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
3272 {
3273 // CHECK-LABEL:@test_mm256_mask_cvtusepi16_storeu_epi8
3274 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.mem.256
3275 _mm256_mask_cvtusepi16_storeu_epi8 ( __P, __M, __A);
3276 }
3277
test_mm256_mask_cvtepi16_storeu_epi8(void * __P,__mmask16 __M,__m256i __A)3278 void test_mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
3279 {
3280 // CHECK-LABEL:@test_mm256_mask_cvtepi16_storeu_epi8
3281 // CHECK: @llvm.x86.avx512.mask.pmov.wb.mem.256
3282 _mm256_mask_cvtepi16_storeu_epi8 ( __P, __M, __A);
3283 }
3284
test_mm256_mask_cvtsepi16_storeu_epi8(void * __P,__mmask16 __M,__m256i __A)3285 void test_mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
3286 {
3287 // CHECK-LABEL:@test_mm256_mask_cvtsepi16_storeu_epi8
3288 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.mem.256
3289 _mm256_mask_cvtsepi16_storeu_epi8 ( __P, __M, __A);
3290 }
3291