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: [[ABS:%.*]] = call <16 x i8> @llvm.abs.v16i8(<16 x i8> %{{.*}}, i1 false)
901 // CHECK: [[TMP:%.*]] = bitcast <16 x i8> [[ABS]] to <2 x i64>
902 // CHECK: [[ABS:%.*]] = bitcast <2 x i64> [[TMP]] to <16 x i8>
903 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> [[ABS]], <16 x i8> %{{.*}}
904 return _mm_mask_abs_epi8(__W,__U,__A);
905 }
906
test_mm_maskz_abs_epi8(__mmask16 __U,__m128i __A)907 __m128i test_mm_maskz_abs_epi8(__mmask16 __U, __m128i __A) {
908 // CHECK-LABEL: @test_mm_maskz_abs_epi8
909 // CHECK: [[ABS:%.*]] = call <16 x i8> @llvm.abs.v16i8(<16 x i8> %{{.*}}, i1 false)
910 // CHECK: [[TMP:%.*]] = bitcast <16 x i8> [[ABS]] to <2 x i64>
911 // CHECK: [[ABS:%.*]] = bitcast <2 x i64> [[TMP]] to <16 x i8>
912 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> [[ABS]], <16 x i8> %{{.*}}
913 return _mm_maskz_abs_epi8(__U,__A);
914 }
915
test_mm256_mask_abs_epi8(__m256i __W,__mmask32 __U,__m256i __A)916 __m256i test_mm256_mask_abs_epi8(__m256i __W, __mmask32 __U, __m256i __A) {
917 // CHECK-LABEL: @test_mm256_mask_abs_epi8
918 // CHECK: [[ABS:%.*]] = call <32 x i8> @llvm.abs.v32i8(<32 x i8> %{{.*}}, i1 false)
919 // CHECK: [[TMP:%.*]] = bitcast <32 x i8> [[ABS]] to <4 x i64>
920 // CHECK: [[ABS:%.*]] = bitcast <4 x i64> [[TMP]] to <32 x i8>
921 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> [[ABS]], <32 x i8> %{{.*}}
922 return _mm256_mask_abs_epi8(__W,__U,__A);
923 }
924
test_mm256_maskz_abs_epi8(__mmask32 __U,__m256i __A)925 __m256i test_mm256_maskz_abs_epi8(__mmask32 __U, __m256i __A) {
926 // CHECK-LABEL: @test_mm256_maskz_abs_epi8
927 // CHECK: [[ABS:%.*]] = call <32 x i8> @llvm.abs.v32i8(<32 x i8> %{{.*}}, i1 false)
928 // CHECK: [[TMP:%.*]] = bitcast <32 x i8> [[ABS]] to <4 x i64>
929 // CHECK: [[ABS:%.*]] = bitcast <4 x i64> [[TMP]] to <32 x i8>
930 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> [[ABS]], <32 x i8> %{{.*}}
931 return _mm256_maskz_abs_epi8(__U,__A);
932 }
933
test_mm_mask_abs_epi16(__m128i __W,__mmask8 __U,__m128i __A)934 __m128i test_mm_mask_abs_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
935 // CHECK-LABEL: @test_mm_mask_abs_epi16
936 // CHECK: [[ABS:%.*]] = call <8 x i16> @llvm.abs.v8i16(<8 x i16> %{{.*}}, i1 false)
937 // CHECK: [[TMP:%.*]] = bitcast <8 x i16> [[ABS]] to <2 x i64>
938 // CHECK: [[ABS:%.*]] = bitcast <2 x i64> [[TMP]] to <8 x i16>
939 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> [[ABS]], <8 x i16> %{{.*}}
940 return _mm_mask_abs_epi16(__W,__U,__A);
941 }
942
test_mm_maskz_abs_epi16(__mmask8 __U,__m128i __A)943 __m128i test_mm_maskz_abs_epi16(__mmask8 __U, __m128i __A) {
944 // CHECK-LABEL: @test_mm_maskz_abs_epi16
945 // CHECK: [[ABS:%.*]] = call <8 x i16> @llvm.abs.v8i16(<8 x i16> %{{.*}}, i1 false)
946 // CHECK: [[TMP:%.*]] = bitcast <8 x i16> [[ABS]] to <2 x i64>
947 // CHECK: [[ABS:%.*]] = bitcast <2 x i64> [[TMP]] to <8 x i16>
948 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> [[ABS]], <8 x i16> %{{.*}}
949 return _mm_maskz_abs_epi16(__U,__A);
950 }
951
test_mm256_mask_abs_epi16(__m256i __W,__mmask16 __U,__m256i __A)952 __m256i test_mm256_mask_abs_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
953 // CHECK-LABEL: @test_mm256_mask_abs_epi16
954 // CHECK: [[ABS:%.*]] = call <16 x i16> @llvm.abs.v16i16(<16 x i16> %{{.*}}, i1 false)
955 // CHECK: [[TMP:%.*]] = bitcast <16 x i16> [[ABS]] to <4 x i64>
956 // CHECK: [[ABS:%.*]] = bitcast <4 x i64> [[TMP]] to <16 x i16>
957 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> [[ABS]], <16 x i16> %{{.*}}
958 return _mm256_mask_abs_epi16(__W,__U,__A);
959 }
960
test_mm256_maskz_abs_epi16(__mmask16 __U,__m256i __A)961 __m256i test_mm256_maskz_abs_epi16(__mmask16 __U, __m256i __A) {
962 // CHECK-LABEL: @test_mm256_maskz_abs_epi16
963 // CHECK: [[ABS:%.*]] = call <16 x i16> @llvm.abs.v16i16(<16 x i16> %{{.*}}, i1 false)
964 // CHECK: [[TMP:%.*]] = bitcast <16 x i16> [[ABS]] to <4 x i64>
965 // CHECK: [[ABS:%.*]] = bitcast <4 x i64> [[TMP]] to <16 x i16>
966 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> [[ABS]], <16 x i16> %{{.*}}
967 return _mm256_maskz_abs_epi16(__U,__A);
968 }
969
test_mm_maskz_packs_epi32(__mmask8 __M,__m128i __A,__m128i __B)970 __m128i test_mm_maskz_packs_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
971 // CHECK-LABEL: @test_mm_maskz_packs_epi32
972 // CHECK: @llvm.x86.sse2.packssdw
973 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
974 return _mm_maskz_packs_epi32(__M,__A,__B);
975 }
test_mm_mask_packs_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)976 __m128i test_mm_mask_packs_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
977 // CHECK-LABEL: @test_mm_mask_packs_epi32
978 // CHECK: @llvm.x86.sse2.packssdw
979 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
980 return _mm_mask_packs_epi32(__W,__M,__A,__B);
981 }
test_mm256_maskz_packs_epi32(__mmask16 __M,__m256i __A,__m256i __B)982 __m256i test_mm256_maskz_packs_epi32(__mmask16 __M, __m256i __A, __m256i __B) {
983 // CHECK-LABEL: @test_mm256_maskz_packs_epi32
984 // CHECK: @llvm.x86.avx2.packssdw
985 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
986 return _mm256_maskz_packs_epi32(__M,__A,__B);
987 }
test_mm256_mask_packs_epi32(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)988 __m256i test_mm256_mask_packs_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
989 // CHECK-LABEL: @test_mm256_mask_packs_epi32
990 // CHECK: @llvm.x86.avx2.packssdw
991 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
992 return _mm256_mask_packs_epi32(__W,__M,__A,__B);
993 }
test_mm_maskz_packs_epi16(__mmask16 __M,__m128i __A,__m128i __B)994 __m128i test_mm_maskz_packs_epi16(__mmask16 __M, __m128i __A, __m128i __B) {
995 // CHECK-LABEL: @test_mm_maskz_packs_epi16
996 // CHECK: @llvm.x86.sse2.packsswb
997 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
998 return _mm_maskz_packs_epi16(__M,__A,__B);
999 }
test_mm_mask_packs_epi16(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1000 __m128i test_mm_mask_packs_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
1001 // CHECK-LABEL: @test_mm_mask_packs_epi16
1002 // CHECK: @llvm.x86.sse2.packsswb
1003 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1004 return _mm_mask_packs_epi16(__W,__M,__A,__B);
1005 }
test_mm256_maskz_packs_epi16(__mmask32 __M,__m256i __A,__m256i __B)1006 __m256i test_mm256_maskz_packs_epi16(__mmask32 __M, __m256i __A, __m256i __B) {
1007 // CHECK-LABEL: @test_mm256_maskz_packs_epi16
1008 // CHECK: @llvm.x86.avx2.packsswb
1009 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1010 return _mm256_maskz_packs_epi16(__M,__A,__B);
1011 }
test_mm256_mask_packs_epi16(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1012 __m256i test_mm256_mask_packs_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
1013 // CHECK-LABEL: @test_mm256_mask_packs_epi16
1014 // CHECK: @llvm.x86.avx2.packsswb
1015 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1016 return _mm256_mask_packs_epi16(__W,__M,__A,__B);
1017 }
1018
test_mm_mask_packus_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1019 __m128i test_mm_mask_packus_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
1020 // CHECK-LABEL: @test_mm_mask_packus_epi32
1021 // CHECK: @llvm.x86.sse41.packusdw
1022 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1023 return _mm_mask_packus_epi32(__W,__M,__A,__B);
1024 }
1025
test_mm_maskz_packus_epi32(__mmask8 __M,__m128i __A,__m128i __B)1026 __m128i test_mm_maskz_packus_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
1027 // CHECK-LABEL: @test_mm_maskz_packus_epi32
1028 // CHECK: @llvm.x86.sse41.packusdw
1029 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1030 return _mm_maskz_packus_epi32(__M,__A,__B);
1031 }
1032
test_mm256_maskz_packus_epi32(__mmask16 __M,__m256i __A,__m256i __B)1033 __m256i test_mm256_maskz_packus_epi32(__mmask16 __M, __m256i __A, __m256i __B) {
1034 // CHECK-LABEL: @test_mm256_maskz_packus_epi32
1035 // CHECK: @llvm.x86.avx2.packusdw
1036 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1037 return _mm256_maskz_packus_epi32(__M,__A,__B);
1038 }
1039
test_mm256_mask_packus_epi32(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1040 __m256i test_mm256_mask_packus_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
1041 // CHECK-LABEL: @test_mm256_mask_packus_epi32
1042 // CHECK: @llvm.x86.avx2.packusdw
1043 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1044 return _mm256_mask_packus_epi32(__W,__M,__A,__B);
1045 }
1046
test_mm_maskz_packus_epi16(__mmask16 __M,__m128i __A,__m128i __B)1047 __m128i test_mm_maskz_packus_epi16(__mmask16 __M, __m128i __A, __m128i __B) {
1048 // CHECK-LABEL: @test_mm_maskz_packus_epi16
1049 // CHECK: @llvm.x86.sse2.packuswb
1050 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1051 return _mm_maskz_packus_epi16(__M,__A,__B);
1052 }
1053
test_mm_mask_packus_epi16(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1054 __m128i test_mm_mask_packus_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
1055 // CHECK-LABEL: @test_mm_mask_packus_epi16
1056 // CHECK: @llvm.x86.sse2.packuswb
1057 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1058 return _mm_mask_packus_epi16(__W,__M,__A,__B);
1059 }
1060
test_mm256_maskz_packus_epi16(__mmask32 __M,__m256i __A,__m256i __B)1061 __m256i test_mm256_maskz_packus_epi16(__mmask32 __M, __m256i __A, __m256i __B) {
1062 // CHECK-LABEL: @test_mm256_maskz_packus_epi16
1063 // CHECK: @llvm.x86.avx2.packuswb
1064 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1065 return _mm256_maskz_packus_epi16(__M,__A,__B);
1066 }
1067
test_mm256_mask_packus_epi16(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1068 __m256i test_mm256_mask_packus_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
1069 // CHECK-LABEL: @test_mm256_mask_packus_epi16
1070 // CHECK: @llvm.x86.avx2.packuswb
1071 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1072 return _mm256_mask_packus_epi16(__W,__M,__A,__B);
1073 }
1074
test_mm_mask_adds_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1075 __m128i test_mm_mask_adds_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1076 // CHECK-LABEL: @test_mm_mask_adds_epi8
1077 // CHECK: @llvm.sadd.sat.v16i8
1078 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1079 return _mm_mask_adds_epi8(__W,__U,__A,__B);
1080 }
test_mm_maskz_adds_epi8(__mmask16 __U,__m128i __A,__m128i __B)1081 __m128i test_mm_maskz_adds_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
1082 // CHECK-LABEL: @test_mm_maskz_adds_epi8
1083 // CHECK: @llvm.sadd.sat.v16i8
1084 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1085 return _mm_maskz_adds_epi8(__U,__A,__B);
1086 }
test_mm256_mask_adds_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1087 __m256i test_mm256_mask_adds_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1088 // CHECK-LABEL: @test_mm256_mask_adds_epi8
1089 // CHECK: @llvm.sadd.sat.v32i8
1090 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1091 return _mm256_mask_adds_epi8(__W,__U,__A,__B);
1092 }
test_mm256_maskz_adds_epi8(__mmask32 __U,__m256i __A,__m256i __B)1093 __m256i test_mm256_maskz_adds_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
1094 // CHECK-LABEL: @test_mm256_maskz_adds_epi8
1095 // CHECK: @llvm.sadd.sat.v32i8
1096 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1097 return _mm256_maskz_adds_epi8(__U,__A,__B);
1098 }
test_mm_mask_adds_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1099 __m128i test_mm_mask_adds_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1100 // CHECK-LABEL: @test_mm_mask_adds_epi16
1101 // CHECK: @llvm.sadd.sat.v8i16
1102 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1103 return _mm_mask_adds_epi16(__W,__U,__A,__B);
1104 }
test_mm_maskz_adds_epi16(__mmask8 __U,__m128i __A,__m128i __B)1105 __m128i test_mm_maskz_adds_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1106 // CHECK-LABEL: @test_mm_maskz_adds_epi16
1107 // CHECK: @llvm.sadd.sat.v8i16
1108 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1109 return _mm_maskz_adds_epi16(__U,__A,__B);
1110 }
test_mm256_mask_adds_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1111 __m256i test_mm256_mask_adds_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1112 // CHECK-LABEL: @test_mm256_mask_adds_epi16
1113 // CHECK: @llvm.sadd.sat.v16i16
1114 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1115 return _mm256_mask_adds_epi16(__W,__U,__A,__B);
1116 }
test_mm256_maskz_adds_epi16(__mmask16 __U,__m256i __A,__m256i __B)1117 __m256i test_mm256_maskz_adds_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
1118 // CHECK-LABEL: @test_mm256_maskz_adds_epi16
1119 // CHECK: @llvm.sadd.sat.v16i16
1120 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1121 return _mm256_maskz_adds_epi16(__U,__A,__B);
1122 }
test_mm_mask_adds_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1123 __m128i test_mm_mask_adds_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1124 // CHECK-LABEL: @test_mm_mask_adds_epu8
1125 // CHECK-NOT: @llvm.x86.sse2.paddus.b
1126 // CHECK: call <16 x i8> @llvm.uadd.sat.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1127 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1128 return _mm_mask_adds_epu8(__W,__U,__A,__B);
1129 }
test_mm_maskz_adds_epu8(__mmask16 __U,__m128i __A,__m128i __B)1130 __m128i test_mm_maskz_adds_epu8(__mmask16 __U, __m128i __A, __m128i __B) {
1131 // CHECK-LABEL: @test_mm_maskz_adds_epu8
1132 // CHECK-NOT: @llvm.x86.sse2.paddus.b
1133 // CHECK: call <16 x i8> @llvm.uadd.sat.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1134 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1135 return _mm_maskz_adds_epu8(__U,__A,__B);
1136 }
test_mm256_mask_adds_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1137 __m256i test_mm256_mask_adds_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1138 // CHECK-LABEL: @test_mm256_mask_adds_epu8
1139 // CHECK-NOT: @llvm.x86.avx2.paddus.b
1140 // CHECK: call <32 x i8> @llvm.uadd.sat.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1141 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1142 return _mm256_mask_adds_epu8(__W,__U,__A,__B);
1143 }
test_mm256_maskz_adds_epu8(__mmask32 __U,__m256i __A,__m256i __B)1144 __m256i test_mm256_maskz_adds_epu8(__mmask32 __U, __m256i __A, __m256i __B) {
1145 // CHECK-LABEL: @test_mm256_maskz_adds_epu8
1146 // CHECK-NOT: @llvm.x86.avx2.paddus.b
1147 // CHECK: call <32 x i8> @llvm.uadd.sat.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1148 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1149 return _mm256_maskz_adds_epu8(__U,__A,__B);
1150 }
test_mm_mask_adds_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1151 __m128i test_mm_mask_adds_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1152 // CHECK-LABEL: @test_mm_mask_adds_epu16
1153 // CHECK-NOT: @llvm.x86.sse2.paddus.w
1154 // CHECK: call <8 x i16> @llvm.uadd.sat.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1155 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1156 return _mm_mask_adds_epu16(__W,__U,__A,__B);
1157 }
test_mm_maskz_adds_epu16(__mmask8 __U,__m128i __A,__m128i __B)1158 __m128i test_mm_maskz_adds_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
1159 // CHECK-LABEL: @test_mm_maskz_adds_epu16
1160 // CHECK-NOT: @llvm.x86.sse2.paddus.w
1161 // CHECK: call <8 x i16> @llvm.uadd.sat.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1162 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1163 return _mm_maskz_adds_epu16(__U,__A,__B);
1164 }
test_mm256_mask_adds_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1165 __m256i test_mm256_mask_adds_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1166 // CHECK-LABEL: @test_mm256_mask_adds_epu16
1167 // CHECK-NOT: @llvm.x86.avx2.paddus.w
1168 // CHECK: call <16 x i16> @llvm.uadd.sat.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1169 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1170 return _mm256_mask_adds_epu16(__W,__U,__A,__B);
1171 }
test_mm256_maskz_adds_epu16(__mmask16 __U,__m256i __A,__m256i __B)1172 __m256i test_mm256_maskz_adds_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
1173 // CHECK-LABEL: @test_mm256_maskz_adds_epu16
1174 // CHECK-NOT: @llvm.x86.avx2.paddus.w
1175 // CHECK: call <16 x i16> @llvm.uadd.sat.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1176 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1177 return _mm256_maskz_adds_epu16(__U,__A,__B);
1178 }
test_mm_mask_avg_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1179 __m128i test_mm_mask_avg_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1180 // CHECK-LABEL: @test_mm_mask_avg_epu8
1181 // CHECK: @llvm.x86.sse2.pavg.b
1182 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1183 return _mm_mask_avg_epu8(__W,__U,__A,__B);
1184 }
test_mm_maskz_avg_epu8(__mmask16 __U,__m128i __A,__m128i __B)1185 __m128i test_mm_maskz_avg_epu8(__mmask16 __U, __m128i __A, __m128i __B) {
1186 // CHECK-LABEL: @test_mm_maskz_avg_epu8
1187 // CHECK: @llvm.x86.sse2.pavg.b
1188 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1189 return _mm_maskz_avg_epu8(__U,__A,__B);
1190 }
test_mm256_mask_avg_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1191 __m256i test_mm256_mask_avg_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1192 // CHECK-LABEL: @test_mm256_mask_avg_epu8
1193 // CHECK: @llvm.x86.avx2.pavg.b
1194 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1195 return _mm256_mask_avg_epu8(__W,__U,__A,__B);
1196 }
test_mm256_maskz_avg_epu8(__mmask32 __U,__m256i __A,__m256i __B)1197 __m256i test_mm256_maskz_avg_epu8(__mmask32 __U, __m256i __A, __m256i __B) {
1198 // CHECK-LABEL: @test_mm256_maskz_avg_epu8
1199 // CHECK: @llvm.x86.avx2.pavg.b
1200 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1201 return _mm256_maskz_avg_epu8(__U,__A,__B);
1202 }
test_mm_mask_avg_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1203 __m128i test_mm_mask_avg_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1204 // CHECK-LABEL: @test_mm_mask_avg_epu16
1205 // CHECK: @llvm.x86.sse2.pavg.w
1206 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1207 return _mm_mask_avg_epu16(__W,__U,__A,__B);
1208 }
test_mm_maskz_avg_epu16(__mmask8 __U,__m128i __A,__m128i __B)1209 __m128i test_mm_maskz_avg_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
1210 // CHECK-LABEL: @test_mm_maskz_avg_epu16
1211 // CHECK: @llvm.x86.sse2.pavg.w
1212 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1213 return _mm_maskz_avg_epu16(__U,__A,__B);
1214 }
test_mm256_mask_avg_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1215 __m256i test_mm256_mask_avg_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1216 // CHECK-LABEL: @test_mm256_mask_avg_epu16
1217 // CHECK: @llvm.x86.avx2.pavg.w
1218 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1219 return _mm256_mask_avg_epu16(__W,__U,__A,__B);
1220 }
test_mm256_maskz_avg_epu16(__mmask16 __U,__m256i __A,__m256i __B)1221 __m256i test_mm256_maskz_avg_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
1222 // CHECK-LABEL: @test_mm256_maskz_avg_epu16
1223 // CHECK: @llvm.x86.avx2.pavg.w
1224 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1225 return _mm256_maskz_avg_epu16(__U,__A,__B);
1226 }
test_mm_maskz_max_epi8(__mmask16 __M,__m128i __A,__m128i __B)1227 __m128i test_mm_maskz_max_epi8(__mmask16 __M, __m128i __A, __m128i __B) {
1228 // CHECK-LABEL: @test_mm_maskz_max_epi8
1229 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.smax.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1230 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1231 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1232 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1233 return _mm_maskz_max_epi8(__M,__A,__B);
1234 }
test_mm_mask_max_epi8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1235 __m128i test_mm_mask_max_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
1236 // CHECK-LABEL: @test_mm_mask_max_epi8
1237 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.smax.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1238 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1239 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1240 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1241 return _mm_mask_max_epi8(__W,__M,__A,__B);
1242 }
test_mm256_maskz_max_epi8(__mmask32 __M,__m256i __A,__m256i __B)1243 __m256i test_mm256_maskz_max_epi8(__mmask32 __M, __m256i __A, __m256i __B) {
1244 // CHECK-LABEL: @test_mm256_maskz_max_epi8
1245 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.smax.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1246 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1247 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1248 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1249 return _mm256_maskz_max_epi8(__M,__A,__B);
1250 }
test_mm256_mask_max_epi8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1251 __m256i test_mm256_mask_max_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
1252 // CHECK-LABEL: @test_mm256_mask_max_epi8
1253 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.smax.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1254 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1255 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1256 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1257 return _mm256_mask_max_epi8(__W,__M,__A,__B);
1258 }
test_mm_maskz_max_epi16(__mmask8 __M,__m128i __A,__m128i __B)1259 __m128i test_mm_maskz_max_epi16(__mmask8 __M, __m128i __A, __m128i __B) {
1260 // CHECK-LABEL: @test_mm_maskz_max_epi16
1261 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.smax.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1262 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1263 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1264 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1265 return _mm_maskz_max_epi16(__M,__A,__B);
1266 }
test_mm_mask_max_epi16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1267 __m128i test_mm_mask_max_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
1268 // CHECK-LABEL: @test_mm_mask_max_epi16
1269 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.smax.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1270 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1271 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1272 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1273 return _mm_mask_max_epi16(__W,__M,__A,__B);
1274 }
test_mm256_maskz_max_epi16(__mmask16 __M,__m256i __A,__m256i __B)1275 __m256i test_mm256_maskz_max_epi16(__mmask16 __M, __m256i __A, __m256i __B) {
1276 // CHECK-LABEL: @test_mm256_maskz_max_epi16
1277 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.smax.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1278 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1279 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1280 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1281 return _mm256_maskz_max_epi16(__M,__A,__B);
1282 }
test_mm256_mask_max_epi16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1283 __m256i test_mm256_mask_max_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
1284 // CHECK-LABEL: @test_mm256_mask_max_epi16
1285 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.smax.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1286 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1287 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1288 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1289 return _mm256_mask_max_epi16(__W,__M,__A,__B);
1290 }
test_mm_maskz_max_epu8(__mmask16 __M,__m128i __A,__m128i __B)1291 __m128i test_mm_maskz_max_epu8(__mmask16 __M, __m128i __A, __m128i __B) {
1292 // CHECK-LABEL: @test_mm_maskz_max_epu8
1293 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.umax.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1294 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1295 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1296 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1297 return _mm_maskz_max_epu8(__M,__A,__B);
1298 }
test_mm_mask_max_epu8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1299 __m128i test_mm_mask_max_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
1300 // CHECK-LABEL: @test_mm_mask_max_epu8
1301 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.umax.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1302 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1303 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1304 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1305 return _mm_mask_max_epu8(__W,__M,__A,__B);
1306 }
test_mm256_maskz_max_epu8(__mmask32 __M,__m256i __A,__m256i __B)1307 __m256i test_mm256_maskz_max_epu8(__mmask32 __M, __m256i __A, __m256i __B) {
1308 // CHECK-LABEL: @test_mm256_maskz_max_epu8
1309 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.umax.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1310 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1311 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1312 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1313 return _mm256_maskz_max_epu8(__M,__A,__B);
1314 }
test_mm256_mask_max_epu8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1315 __m256i test_mm256_mask_max_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
1316 // CHECK-LABEL: @test_mm256_mask_max_epu8
1317 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.umax.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1318 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1319 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1320 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1321 return _mm256_mask_max_epu8(__W,__M,__A,__B);
1322 }
test_mm_maskz_max_epu16(__mmask8 __M,__m128i __A,__m128i __B)1323 __m128i test_mm_maskz_max_epu16(__mmask8 __M, __m128i __A, __m128i __B) {
1324 // CHECK-LABEL: @test_mm_maskz_max_epu16
1325 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.umax.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1326 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1327 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1328 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1329 return _mm_maskz_max_epu16(__M,__A,__B);
1330 }
test_mm_mask_max_epu16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1331 __m128i test_mm_mask_max_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
1332 // CHECK-LABEL: @test_mm_mask_max_epu16
1333 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.umax.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1334 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1335 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1336 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1337 return _mm_mask_max_epu16(__W,__M,__A,__B);
1338 }
test_mm256_maskz_max_epu16(__mmask16 __M,__m256i __A,__m256i __B)1339 __m256i test_mm256_maskz_max_epu16(__mmask16 __M, __m256i __A, __m256i __B) {
1340 // CHECK-LABEL: @test_mm256_maskz_max_epu16
1341 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.umax.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1342 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1343 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1344 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1345 return _mm256_maskz_max_epu16(__M,__A,__B);
1346 }
test_mm256_mask_max_epu16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1347 __m256i test_mm256_mask_max_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
1348 // CHECK-LABEL: @test_mm256_mask_max_epu16
1349 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.umax.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1350 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1351 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1352 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1353 return _mm256_mask_max_epu16(__W,__M,__A,__B);
1354 }
test_mm_maskz_min_epi8(__mmask16 __M,__m128i __A,__m128i __B)1355 __m128i test_mm_maskz_min_epi8(__mmask16 __M, __m128i __A, __m128i __B) {
1356 // CHECK-LABEL: @test_mm_maskz_min_epi8
1357 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.smin.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1358 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1359 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1360 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1361 return _mm_maskz_min_epi8(__M,__A,__B);
1362 }
test_mm_mask_min_epi8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1363 __m128i test_mm_mask_min_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
1364 // CHECK-LABEL: @test_mm_mask_min_epi8
1365 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.smin.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1366 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1367 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1368 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1369 return _mm_mask_min_epi8(__W,__M,__A,__B);
1370 }
test_mm256_maskz_min_epi8(__mmask32 __M,__m256i __A,__m256i __B)1371 __m256i test_mm256_maskz_min_epi8(__mmask32 __M, __m256i __A, __m256i __B) {
1372 // CHECK-LABEL: @test_mm256_maskz_min_epi8
1373 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.smin.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1374 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1375 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1376 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1377 return _mm256_maskz_min_epi8(__M,__A,__B);
1378 }
test_mm256_mask_min_epi8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1379 __m256i test_mm256_mask_min_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
1380 // CHECK-LABEL: @test_mm256_mask_min_epi8
1381 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.smin.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1382 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1383 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1384 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1385 return _mm256_mask_min_epi8(__W,__M,__A,__B);
1386 }
test_mm_maskz_min_epi16(__mmask8 __M,__m128i __A,__m128i __B)1387 __m128i test_mm_maskz_min_epi16(__mmask8 __M, __m128i __A, __m128i __B) {
1388 // CHECK-LABEL: @test_mm_maskz_min_epi16
1389 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.smin.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1390 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1391 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1392 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1393 return _mm_maskz_min_epi16(__M,__A,__B);
1394 }
test_mm_mask_min_epi16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1395 __m128i test_mm_mask_min_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
1396 // CHECK-LABEL: @test_mm_mask_min_epi16
1397 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.smin.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1398 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1399 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1400 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1401 return _mm_mask_min_epi16(__W,__M,__A,__B);
1402 }
test_mm256_maskz_min_epi16(__mmask16 __M,__m256i __A,__m256i __B)1403 __m256i test_mm256_maskz_min_epi16(__mmask16 __M, __m256i __A, __m256i __B) {
1404 // CHECK-LABEL: @test_mm256_maskz_min_epi16
1405 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.smin.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1406 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1407 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1408 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1409 return _mm256_maskz_min_epi16(__M,__A,__B);
1410 }
test_mm256_mask_min_epi16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1411 __m256i test_mm256_mask_min_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
1412 // CHECK-LABEL: @test_mm256_mask_min_epi16
1413 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.smin.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1414 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1415 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1416 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1417 return _mm256_mask_min_epi16(__W,__M,__A,__B);
1418 }
test_mm_maskz_min_epu8(__mmask16 __M,__m128i __A,__m128i __B)1419 __m128i test_mm_maskz_min_epu8(__mmask16 __M, __m128i __A, __m128i __B) {
1420 // CHECK-LABEL: @test_mm_maskz_min_epu8
1421 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.umin.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1422 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1423 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1424 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1425 return _mm_maskz_min_epu8(__M,__A,__B);
1426 }
test_mm_mask_min_epu8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1427 __m128i test_mm_mask_min_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
1428 // CHECK-LABEL: @test_mm_mask_min_epu8
1429 // CHECK: [[RES:%.*]] = call <16 x i8> @llvm.umin.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1430 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i8>]] [[RES]] to [[DSTTY:<2 x i64>]]
1431 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1432 // CHECK: select <16 x i1> {{.*}}, <16 x i8> [[RES]], <16 x i8> {{.*}}
1433 return _mm_mask_min_epu8(__W,__M,__A,__B);
1434 }
test_mm256_maskz_min_epu8(__mmask32 __M,__m256i __A,__m256i __B)1435 __m256i test_mm256_maskz_min_epu8(__mmask32 __M, __m256i __A, __m256i __B) {
1436 // CHECK-LABEL: @test_mm256_maskz_min_epu8
1437 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.umin.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1438 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1439 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1440 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1441 return _mm256_maskz_min_epu8(__M,__A,__B);
1442 }
test_mm256_mask_min_epu8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1443 __m256i test_mm256_mask_min_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
1444 // CHECK-LABEL: @test_mm256_mask_min_epu8
1445 // CHECK: [[RES:%.*]] = call <32 x i8> @llvm.umin.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1446 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<32 x i8>]] [[RES]] to [[DSTTY:<4 x i64>]]
1447 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1448 // CHECK: select <32 x i1> {{.*}}, <32 x i8> [[RES]], <32 x i8> {{.*}}
1449 return _mm256_mask_min_epu8(__W,__M,__A,__B);
1450 }
test_mm_maskz_min_epu16(__mmask8 __M,__m128i __A,__m128i __B)1451 __m128i test_mm_maskz_min_epu16(__mmask8 __M, __m128i __A, __m128i __B) {
1452 // CHECK-LABEL: @test_mm_maskz_min_epu16
1453 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.umin.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1454 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1455 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1456 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1457 return _mm_maskz_min_epu16(__M,__A,__B);
1458 }
test_mm_mask_min_epu16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1459 __m128i test_mm_mask_min_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
1460 // CHECK-LABEL: @test_mm_mask_min_epu16
1461 // CHECK: [[RES:%.*]] = call <8 x i16> @llvm.umin.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1462 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<8 x i16>]] [[RES]] to [[DSTTY:<2 x i64>]]
1463 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1464 // CHECK: select <8 x i1> {{.*}}, <8 x i16> [[RES]], <8 x i16> {{.*}}
1465 return _mm_mask_min_epu16(__W,__M,__A,__B);
1466 }
test_mm256_maskz_min_epu16(__mmask16 __M,__m256i __A,__m256i __B)1467 __m256i test_mm256_maskz_min_epu16(__mmask16 __M, __m256i __A, __m256i __B) {
1468 // CHECK-LABEL: @test_mm256_maskz_min_epu16
1469 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.umin.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1470 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1471 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1472 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1473 return _mm256_maskz_min_epu16(__M,__A,__B);
1474 }
test_mm256_mask_min_epu16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1475 __m256i test_mm256_mask_min_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
1476 // CHECK-LABEL: @test_mm256_mask_min_epu16
1477 // CHECK: [[RES:%.*]] = call <16 x i16> @llvm.umin.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1478 // CHECK: [[TMP:%.*]] = bitcast [[SRCTY:<16 x i16>]] [[RES]] to [[DSTTY:<4 x i64>]]
1479 // CHECK: [[RES:%.*]] = bitcast [[DSTTY]] [[TMP]] to [[SRCTY]]
1480 // CHECK: select <16 x i1> {{.*}}, <16 x i16> [[RES]], <16 x i16> {{.*}}
1481 return _mm256_mask_min_epu16(__W,__M,__A,__B);
1482 }
test_mm_mask_shuffle_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1483 __m128i test_mm_mask_shuffle_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1484 // CHECK-LABEL: @test_mm_mask_shuffle_epi8
1485 // CHECK: @llvm.x86.ssse3.pshuf.b
1486 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1487 return _mm_mask_shuffle_epi8(__W,__U,__A,__B);
1488 }
test_mm_maskz_shuffle_epi8(__mmask16 __U,__m128i __A,__m128i __B)1489 __m128i test_mm_maskz_shuffle_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
1490 // CHECK-LABEL: @test_mm_maskz_shuffle_epi8
1491 // CHECK: @llvm.x86.ssse3.pshuf.b
1492 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1493 return _mm_maskz_shuffle_epi8(__U,__A,__B);
1494 }
test_mm256_mask_shuffle_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1495 __m256i test_mm256_mask_shuffle_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1496 // CHECK-LABEL: @test_mm256_mask_shuffle_epi8
1497 // CHECK: @llvm.x86.avx2.pshuf.b
1498 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1499 return _mm256_mask_shuffle_epi8(__W,__U,__A,__B);
1500 }
test_mm256_maskz_shuffle_epi8(__mmask32 __U,__m256i __A,__m256i __B)1501 __m256i test_mm256_maskz_shuffle_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
1502 // CHECK-LABEL: @test_mm256_maskz_shuffle_epi8
1503 // CHECK: @llvm.x86.avx2.pshuf.b
1504 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1505 return _mm256_maskz_shuffle_epi8(__U,__A,__B);
1506 }
test_mm_mask_subs_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1507 __m128i test_mm_mask_subs_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1508 // CHECK-LABEL: @test_mm_mask_subs_epi8
1509 // CHECK: @llvm.ssub.sat.v16i8
1510 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1511 return _mm_mask_subs_epi8(__W,__U,__A,__B);
1512 }
test_mm_maskz_subs_epi8(__mmask16 __U,__m128i __A,__m128i __B)1513 __m128i test_mm_maskz_subs_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
1514 // CHECK-LABEL: @test_mm_maskz_subs_epi8
1515 // CHECK: @llvm.ssub.sat.v16i8
1516 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1517 return _mm_maskz_subs_epi8(__U,__A,__B);
1518 }
test_mm256_mask_subs_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1519 __m256i test_mm256_mask_subs_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1520 // CHECK-LABEL: @test_mm256_mask_subs_epi8
1521 // CHECK: @llvm.ssub.sat.v32i8
1522 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1523 return _mm256_mask_subs_epi8(__W,__U,__A,__B);
1524 }
test_mm256_maskz_subs_epi8(__mmask32 __U,__m256i __A,__m256i __B)1525 __m256i test_mm256_maskz_subs_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
1526 // CHECK-LABEL: @test_mm256_maskz_subs_epi8
1527 // CHECK: @llvm.ssub.sat.v32i8
1528 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1529 return _mm256_maskz_subs_epi8(__U,__A,__B);
1530 }
test_mm_mask_subs_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1531 __m128i test_mm_mask_subs_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1532 // CHECK-LABEL: @test_mm_mask_subs_epi16
1533 // CHECK: @llvm.ssub.sat.v8i16
1534 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1535 return _mm_mask_subs_epi16(__W,__U,__A,__B);
1536 }
test_mm_maskz_subs_epi16(__mmask8 __U,__m128i __A,__m128i __B)1537 __m128i test_mm_maskz_subs_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1538 // CHECK-LABEL: @test_mm_maskz_subs_epi16
1539 // CHECK: @llvm.ssub.sat.v8i16
1540 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1541 return _mm_maskz_subs_epi16(__U,__A,__B);
1542 }
test_mm256_mask_subs_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1543 __m256i test_mm256_mask_subs_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1544 // CHECK-LABEL: @test_mm256_mask_subs_epi16
1545 // CHECK: @llvm.ssub.sat.v16i16
1546 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1547 return _mm256_mask_subs_epi16(__W,__U,__A,__B);
1548 }
test_mm256_maskz_subs_epi16(__mmask16 __U,__m256i __A,__m256i __B)1549 __m256i test_mm256_maskz_subs_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
1550 // CHECK-LABEL: @test_mm256_maskz_subs_epi16
1551 // CHECK: @llvm.ssub.sat.v16i16
1552 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1553 return _mm256_maskz_subs_epi16(__U,__A,__B);
1554 }
test_mm_mask_subs_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1555 __m128i test_mm_mask_subs_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1556 // CHECK-LABEL: @test_mm_mask_subs_epu8
1557 // CHECK-NOT: @llvm.x86.sse2.psubus.b
1558 // CHECK: call <16 x i8> @llvm.usub.sat.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1559 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1560 return _mm_mask_subs_epu8(__W,__U,__A,__B);
1561 }
test_mm_maskz_subs_epu8(__mmask16 __U,__m128i __A,__m128i __B)1562 __m128i test_mm_maskz_subs_epu8(__mmask16 __U, __m128i __A, __m128i __B) {
1563 // CHECK-LABEL: @test_mm_maskz_subs_epu8
1564 // CHECK-NOT: @llvm.x86.sse2.psubus.b
1565 // CHECK: call <16 x i8> @llvm.usub.sat.v16i8(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
1566 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1567 return _mm_maskz_subs_epu8(__U,__A,__B);
1568 }
test_mm256_mask_subs_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1569 __m256i test_mm256_mask_subs_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1570 // CHECK-LABEL: @test_mm256_mask_subs_epu8
1571 // CHECK-NOT: @llvm.x86.avx2.psubus.b
1572 // CHECK: call <32 x i8> @llvm.usub.sat.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1573 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1574 return _mm256_mask_subs_epu8(__W,__U,__A,__B);
1575 }
test_mm256_maskz_subs_epu8(__mmask32 __U,__m256i __A,__m256i __B)1576 __m256i test_mm256_maskz_subs_epu8(__mmask32 __U, __m256i __A, __m256i __B) {
1577 // CHECK-LABEL: @test_mm256_maskz_subs_epu8
1578 // CHECK-NOT: @llvm.x86.avx2.psubus.b
1579 // CHECK: call <32 x i8> @llvm.usub.sat.v32i8(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
1580 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1581 return _mm256_maskz_subs_epu8(__U,__A,__B);
1582 }
test_mm_mask_subs_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1583 __m128i test_mm_mask_subs_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1584 // CHECK-LABEL: @test_mm_mask_subs_epu16
1585 // CHECK-NOT: @llvm.x86.sse2.psubus.w
1586 // CHECK: call <8 x i16> @llvm.usub.sat.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1587 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1588 return _mm_mask_subs_epu16(__W,__U,__A,__B);
1589 }
test_mm_maskz_subs_epu16(__mmask8 __U,__m128i __A,__m128i __B)1590 __m128i test_mm_maskz_subs_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
1591 // CHECK-LABEL: @test_mm_maskz_subs_epu16
1592 // CHECK-NOT: @llvm.x86.sse2.psubus.w
1593 // CHECK: call <8 x i16> @llvm.usub.sat.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
1594 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1595 return _mm_maskz_subs_epu16(__U,__A,__B);
1596 }
test_mm256_mask_subs_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1597 __m256i test_mm256_mask_subs_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1598 // CHECK-LABEL: @test_mm256_mask_subs_epu16
1599 // CHECK-NOT: @llvm.x86.avx2.psubus.w
1600 // CHECK: call <16 x i16> @llvm.usub.sat.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1601 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1602 return _mm256_mask_subs_epu16(__W,__U,__A,__B);
1603 }
test_mm256_maskz_subs_epu16(__mmask16 __U,__m256i __A,__m256i __B)1604 __m256i test_mm256_maskz_subs_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
1605 // CHECK-LABEL: @test_mm256_maskz_subs_epu16
1606 // CHECK-NOT: @llvm.x86.avx2.psubus.w
1607 // CHECK: call <16 x i16> @llvm.usub.sat.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}})
1608 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1609 return _mm256_maskz_subs_epu16(__U,__A,__B);
1610 }
1611
1612
test_mm_mask2_permutex2var_epi16(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)1613 __m128i test_mm_mask2_permutex2var_epi16(__m128i __A, __m128i __I, __mmask8 __U, __m128i __B) {
1614 // CHECK-LABEL: @test_mm_mask2_permutex2var_epi16
1615 // CHECK: @llvm.x86.avx512.vpermi2var.hi.128
1616 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1617 return _mm_mask2_permutex2var_epi16(__A,__I,__U,__B);
1618 }
test_mm256_mask2_permutex2var_epi16(__m256i __A,__m256i __I,__mmask16 __U,__m256i __B)1619 __m256i test_mm256_mask2_permutex2var_epi16(__m256i __A, __m256i __I, __mmask16 __U, __m256i __B) {
1620 // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi16
1621 // CHECK: @llvm.x86.avx512.vpermi2var.hi.256
1622 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1623 return _mm256_mask2_permutex2var_epi16(__A,__I,__U,__B);
1624 }
test_mm_permutex2var_epi16(__m128i __A,__m128i __I,__m128i __B)1625 __m128i test_mm_permutex2var_epi16(__m128i __A, __m128i __I, __m128i __B) {
1626 // CHECK-LABEL: @test_mm_permutex2var_epi16
1627 // CHECK: @llvm.x86.avx512.vpermi2var.hi.128
1628 return _mm_permutex2var_epi16(__A,__I,__B);
1629 }
test_mm_mask_permutex2var_epi16(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)1630 __m128i test_mm_mask_permutex2var_epi16(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) {
1631 // CHECK-LABEL: @test_mm_mask_permutex2var_epi16
1632 // CHECK: @llvm.x86.avx512.vpermi2var.hi.128
1633 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1634 return _mm_mask_permutex2var_epi16(__A,__U,__I,__B);
1635 }
test_mm_maskz_permutex2var_epi16(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)1636 __m128i test_mm_maskz_permutex2var_epi16(__mmask8 __U, __m128i __A, __m128i __I, __m128i __B) {
1637 // CHECK-LABEL: @test_mm_maskz_permutex2var_epi16
1638 // CHECK: @llvm.x86.avx512.vpermi2var.hi.128
1639 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1640 return _mm_maskz_permutex2var_epi16(__U,__A,__I,__B);
1641 }
1642
test_mm256_permutex2var_epi16(__m256i __A,__m256i __I,__m256i __B)1643 __m256i test_mm256_permutex2var_epi16(__m256i __A, __m256i __I, __m256i __B) {
1644 // CHECK-LABEL: @test_mm256_permutex2var_epi16
1645 // CHECK: @llvm.x86.avx512.vpermi2var.hi.256
1646 return _mm256_permutex2var_epi16(__A,__I,__B);
1647 }
test_mm256_mask_permutex2var_epi16(__m256i __A,__mmask16 __U,__m256i __I,__m256i __B)1648 __m256i test_mm256_mask_permutex2var_epi16(__m256i __A, __mmask16 __U, __m256i __I, __m256i __B) {
1649 // CHECK-LABEL: @test_mm256_mask_permutex2var_epi16
1650 // CHECK: @llvm.x86.avx512.vpermi2var.hi.256
1651 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1652 return _mm256_mask_permutex2var_epi16(__A,__U,__I,__B);
1653 }
test_mm256_maskz_permutex2var_epi16(__mmask16 __U,__m256i __A,__m256i __I,__m256i __B)1654 __m256i test_mm256_maskz_permutex2var_epi16(__mmask16 __U, __m256i __A, __m256i __I, __m256i __B) {
1655 // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi16
1656 // CHECK: @llvm.x86.avx512.vpermi2var.hi.256
1657 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1658 return _mm256_maskz_permutex2var_epi16(__U,__A,__I,__B);
1659 }
test_mm_mask_maddubs_epi16(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)1660 __m128i test_mm_mask_maddubs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
1661 // CHECK-LABEL: @test_mm_mask_maddubs_epi16
1662 // CHECK: @llvm.x86.ssse3.pmadd.ub.sw
1663 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1664 return _mm_mask_maddubs_epi16(__W, __U, __X, __Y);
1665 }
1666
test_mm_maskz_maddubs_epi16(__mmask8 __U,__m128i __X,__m128i __Y)1667 __m128i test_mm_maskz_maddubs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
1668 // CHECK-LABEL: @test_mm_maskz_maddubs_epi16
1669 // CHECK: @llvm.x86.ssse3.pmadd.ub.sw
1670 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1671 return _mm_maskz_maddubs_epi16(__U, __X, __Y);
1672 }
1673
test_mm256_mask_maddubs_epi16(__m256i __W,__mmask16 __U,__m256i __X,__m256i __Y)1674 __m256i test_mm256_mask_maddubs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
1675 // CHECK-LABEL: @test_mm256_mask_maddubs_epi16
1676 // CHECK: @llvm.x86.avx2.pmadd.ub.sw
1677 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1678 return _mm256_mask_maddubs_epi16(__W, __U, __X, __Y);
1679 }
1680
test_mm256_maskz_maddubs_epi16(__mmask16 __U,__m256i __X,__m256i __Y)1681 __m256i test_mm256_maskz_maddubs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
1682 // CHECK-LABEL: @test_mm256_maskz_maddubs_epi16
1683 // CHECK: @llvm.x86.avx2.pmadd.ub.sw
1684 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1685 return _mm256_maskz_maddubs_epi16(__U, __X, __Y);
1686 }
1687
test_mm_mask_madd_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1688 __m128i test_mm_mask_madd_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1689 // CHECK-LABEL: @test_mm_mask_madd_epi16
1690 // CHECK: @llvm.x86.sse2.pmadd.wd
1691 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
1692 return _mm_mask_madd_epi16(__W, __U, __A, __B);
1693 }
1694
test_mm_maskz_madd_epi16(__mmask8 __U,__m128i __A,__m128i __B)1695 __m128i test_mm_maskz_madd_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1696 // CHECK-LABEL: @test_mm_maskz_madd_epi16
1697 // CHECK: @llvm.x86.sse2.pmadd.wd
1698 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
1699 return _mm_maskz_madd_epi16(__U, __A, __B);
1700 }
1701
test_mm256_mask_madd_epi16(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1702 __m256i test_mm256_mask_madd_epi16(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1703 // CHECK-LABEL: @test_mm256_mask_madd_epi16
1704 // CHECK: @llvm.x86.avx2.pmadd.wd
1705 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
1706 return _mm256_mask_madd_epi16(__W, __U, __A, __B);
1707 }
1708
test_mm256_maskz_madd_epi16(__mmask8 __U,__m256i __A,__m256i __B)1709 __m256i test_mm256_maskz_madd_epi16(__mmask8 __U, __m256i __A, __m256i __B) {
1710 // CHECK-LABEL: @test_mm256_maskz_madd_epi16
1711 // CHECK: @llvm.x86.avx2.pmadd.wd
1712 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
1713 return _mm256_maskz_madd_epi16(__U, __A, __B);
1714 }
1715
test_mm_cvtsepi16_epi8(__m128i __A)1716 __m128i test_mm_cvtsepi16_epi8(__m128i __A) {
1717 // CHECK-LABEL: @test_mm_cvtsepi16_epi8
1718 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
1719 return _mm_cvtsepi16_epi8(__A);
1720 }
1721
test_mm_mask_cvtsepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)1722 __m128i test_mm_mask_cvtsepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
1723 // CHECK-LABEL: @test_mm_mask_cvtsepi16_epi8
1724 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
1725 return _mm_mask_cvtsepi16_epi8(__O, __M, __A);
1726 }
1727
test_mm_maskz_cvtsepi16_epi8(__mmask8 __M,__m128i __A)1728 __m128i test_mm_maskz_cvtsepi16_epi8(__mmask8 __M, __m128i __A) {
1729 // CHECK-LABEL: @test_mm_maskz_cvtsepi16_epi8
1730 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
1731 return _mm_maskz_cvtsepi16_epi8(__M, __A);
1732 }
1733
test_mm256_cvtsepi16_epi8(__m256i __A)1734 __m128i test_mm256_cvtsepi16_epi8(__m256i __A) {
1735 // CHECK-LABEL: @test_mm256_cvtsepi16_epi8
1736 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
1737 return _mm256_cvtsepi16_epi8(__A);
1738 }
1739
test_mm256_mask_cvtsepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)1740 __m128i test_mm256_mask_cvtsepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) {
1741 // CHECK-LABEL: @test_mm256_mask_cvtsepi16_epi8
1742 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
1743 return _mm256_mask_cvtsepi16_epi8(__O, __M, __A);
1744 }
1745
test_mm256_maskz_cvtsepi16_epi8(__mmask16 __M,__m256i __A)1746 __m128i test_mm256_maskz_cvtsepi16_epi8(__mmask16 __M, __m256i __A) {
1747 // CHECK-LABEL: @test_mm256_maskz_cvtsepi16_epi8
1748 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
1749 return _mm256_maskz_cvtsepi16_epi8(__M, __A);
1750 }
1751
test_mm_cvtusepi16_epi8(__m128i __A)1752 __m128i test_mm_cvtusepi16_epi8(__m128i __A) {
1753 // CHECK-LABEL: @test_mm_cvtusepi16_epi8
1754 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
1755 return _mm_cvtusepi16_epi8(__A);
1756 }
1757
test_mm_mask_cvtusepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)1758 __m128i test_mm_mask_cvtusepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
1759 // CHECK-LABEL: @test_mm_mask_cvtusepi16_epi8
1760 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
1761 return _mm_mask_cvtusepi16_epi8(__O, __M, __A);
1762 }
1763
test_mm_maskz_cvtusepi16_epi8(__mmask8 __M,__m128i __A)1764 __m128i test_mm_maskz_cvtusepi16_epi8(__mmask8 __M, __m128i __A) {
1765 // CHECK-LABEL: @test_mm_maskz_cvtusepi16_epi8
1766 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
1767 return _mm_maskz_cvtusepi16_epi8(__M, __A);
1768 }
1769
test_mm256_cvtusepi16_epi8(__m256i __A)1770 __m128i test_mm256_cvtusepi16_epi8(__m256i __A) {
1771 // CHECK-LABEL: @test_mm256_cvtusepi16_epi8
1772 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
1773 return _mm256_cvtusepi16_epi8(__A);
1774 }
1775
test_mm256_mask_cvtusepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)1776 __m128i test_mm256_mask_cvtusepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) {
1777 // CHECK-LABEL: @test_mm256_mask_cvtusepi16_epi8
1778 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
1779 return _mm256_mask_cvtusepi16_epi8(__O, __M, __A);
1780 }
1781
test_mm256_maskz_cvtusepi16_epi8(__mmask16 __M,__m256i __A)1782 __m128i test_mm256_maskz_cvtusepi16_epi8(__mmask16 __M, __m256i __A) {
1783 // CHECK-LABEL: @test_mm256_maskz_cvtusepi16_epi8
1784 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
1785 return _mm256_maskz_cvtusepi16_epi8(__M, __A);
1786 }
1787
test_mm_cvtepi16_epi8(__m128i __A)1788 __m128i test_mm_cvtepi16_epi8(__m128i __A) {
1789 // CHECK-LABEL: @test_mm_cvtepi16_epi8
1790 // CHECK: trunc <8 x i16> %{{.*}} to <8 x i8>
1791 // 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>
1792 return _mm_cvtepi16_epi8(__A);
1793 }
1794
test_mm_mask_cvtepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)1795 __m128i test_mm_mask_cvtepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
1796 // CHECK-LABEL: @test_mm_mask_cvtepi16_epi8
1797 // CHECK: @llvm.x86.avx512.mask.pmov.wb.128
1798 return _mm_mask_cvtepi16_epi8(__O, __M, __A);
1799 }
1800
test_mm_maskz_cvtepi16_epi8(__mmask8 __M,__m128i __A)1801 __m128i test_mm_maskz_cvtepi16_epi8(__mmask8 __M, __m128i __A) {
1802 // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi8
1803 // CHECK: @llvm.x86.avx512.mask.pmov.wb.128
1804 return _mm_maskz_cvtepi16_epi8(__M, __A);
1805 }
1806
test_mm256_cvtepi16_epi8(__m256i __A)1807 __m128i test_mm256_cvtepi16_epi8(__m256i __A) {
1808 // CHECK-LABEL: @test_mm256_cvtepi16_epi8
1809 // CHECK: trunc <16 x i16> %{{.*}} to <16 x i8>
1810 return _mm256_cvtepi16_epi8(__A);
1811 }
1812
test_mm256_mask_cvtepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)1813 __m128i test_mm256_mask_cvtepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) {
1814 // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi8
1815 // CHECK: trunc <16 x i16> %{{.*}} to <16 x i8>
1816 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1817 return _mm256_mask_cvtepi16_epi8(__O, __M, __A);
1818 }
1819
test_mm256_maskz_cvtepi16_epi8(__mmask16 __M,__m256i __A)1820 __m128i test_mm256_maskz_cvtepi16_epi8(__mmask16 __M, __m256i __A) {
1821 // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi8
1822 // CHECK: trunc <16 x i16> %{{.*}} to <16 x i8>
1823 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1824 return _mm256_maskz_cvtepi16_epi8(__M, __A);
1825 }
1826
test_mm_mask_mulhrs_epi16(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)1827 __m128i test_mm_mask_mulhrs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
1828 // CHECK-LABEL: @test_mm_mask_mulhrs_epi16
1829 // CHECK: @llvm.x86.ssse3.pmul.hr.sw
1830 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1831 return _mm_mask_mulhrs_epi16(__W, __U, __X, __Y);
1832 }
1833
test_mm_maskz_mulhrs_epi16(__mmask8 __U,__m128i __X,__m128i __Y)1834 __m128i test_mm_maskz_mulhrs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
1835 // CHECK-LABEL: @test_mm_maskz_mulhrs_epi16
1836 // CHECK: @llvm.x86.ssse3.pmul.hr.sw
1837 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1838 return _mm_maskz_mulhrs_epi16(__U, __X, __Y);
1839 }
1840
test_mm256_mask_mulhrs_epi16(__m256i __W,__mmask16 __U,__m256i __X,__m256i __Y)1841 __m256i test_mm256_mask_mulhrs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
1842 // CHECK-LABEL: @test_mm256_mask_mulhrs_epi16
1843 // CHECK: @llvm.x86.avx2.pmul.hr.sw
1844 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1845 return _mm256_mask_mulhrs_epi16(__W, __U, __X, __Y);
1846 }
1847
test_mm256_maskz_mulhrs_epi16(__mmask16 __U,__m256i __X,__m256i __Y)1848 __m256i test_mm256_maskz_mulhrs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
1849 // CHECK-LABEL: @test_mm256_maskz_mulhrs_epi16
1850 // CHECK: @llvm.x86.avx2.pmul.hr.sw
1851 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1852 return _mm256_maskz_mulhrs_epi16(__U, __X, __Y);
1853 }
1854
test_mm_mask_mulhi_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1855 __m128i test_mm_mask_mulhi_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1856 // CHECK-LABEL: @test_mm_mask_mulhi_epu16
1857 // CHECK: @llvm.x86.sse2.pmulhu.w
1858 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1859 return _mm_mask_mulhi_epu16(__W, __U, __A, __B);
1860 }
1861
test_mm_maskz_mulhi_epu16(__mmask8 __U,__m128i __A,__m128i __B)1862 __m128i test_mm_maskz_mulhi_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
1863 // CHECK-LABEL: @test_mm_maskz_mulhi_epu16
1864 // CHECK: @llvm.x86.sse2.pmulhu.w
1865 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1866 return _mm_maskz_mulhi_epu16(__U, __A, __B);
1867 }
1868
test_mm256_mask_mulhi_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1869 __m256i test_mm256_mask_mulhi_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1870 // CHECK-LABEL: @test_mm256_mask_mulhi_epu16
1871 // CHECK: @llvm.x86.avx2.pmulhu.w
1872 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1873 return _mm256_mask_mulhi_epu16(__W, __U, __A, __B);
1874 }
1875
test_mm256_maskz_mulhi_epu16(__mmask16 __U,__m256i __A,__m256i __B)1876 __m256i test_mm256_maskz_mulhi_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
1877 // CHECK-LABEL: @test_mm256_maskz_mulhi_epu16
1878 // CHECK: @llvm.x86.avx2.pmulhu.w
1879 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1880 return _mm256_maskz_mulhi_epu16(__U, __A, __B);
1881 }
1882
test_mm_mask_mulhi_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1883 __m128i test_mm_mask_mulhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1884 // CHECK-LABEL: @test_mm_mask_mulhi_epi16
1885 // CHECK: @llvm.x86.sse2.pmulh.w
1886 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1887 return _mm_mask_mulhi_epi16(__W, __U, __A, __B);
1888 }
1889
test_mm_maskz_mulhi_epi16(__mmask8 __U,__m128i __A,__m128i __B)1890 __m128i test_mm_maskz_mulhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1891 // CHECK-LABEL: @test_mm_maskz_mulhi_epi16
1892 // CHECK: @llvm.x86.sse2.pmulh.w
1893 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1894 return _mm_maskz_mulhi_epi16(__U, __A, __B);
1895 }
1896
test_mm256_mask_mulhi_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1897 __m256i test_mm256_mask_mulhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1898 // CHECK-LABEL: @test_mm256_mask_mulhi_epi16
1899 // CHECK: @llvm.x86.avx2.pmulh.w
1900 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1901 return _mm256_mask_mulhi_epi16(__W, __U, __A, __B);
1902 }
1903
test_mm256_maskz_mulhi_epi16(__mmask16 __U,__m256i __A,__m256i __B)1904 __m256i test_mm256_maskz_mulhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
1905 // CHECK-LABEL: @test_mm256_maskz_mulhi_epi16
1906 // CHECK: @llvm.x86.avx2.pmulh.w
1907 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1908 return _mm256_maskz_mulhi_epi16(__U, __A, __B);
1909 }
1910
test_mm_mask_unpackhi_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1911 __m128i test_mm_mask_unpackhi_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1912 // CHECK-LABEL: @test_mm_mask_unpackhi_epi8
1913 // 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>
1914 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1915 return _mm_mask_unpackhi_epi8(__W, __U, __A, __B);
1916 }
1917
test_mm_maskz_unpackhi_epi8(__mmask16 __U,__m128i __A,__m128i __B)1918 __m128i test_mm_maskz_unpackhi_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
1919 // CHECK-LABEL: @test_mm_maskz_unpackhi_epi8
1920 // 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>
1921 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1922 return _mm_maskz_unpackhi_epi8(__U, __A, __B);
1923 }
1924
test_mm256_mask_unpackhi_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1925 __m256i test_mm256_mask_unpackhi_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1926 // CHECK-LABEL: @test_mm256_mask_unpackhi_epi8
1927 // 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>
1928 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1929 return _mm256_mask_unpackhi_epi8(__W, __U, __A, __B);
1930 }
1931
test_mm256_maskz_unpackhi_epi8(__mmask32 __U,__m256i __A,__m256i __B)1932 __m256i test_mm256_maskz_unpackhi_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
1933 // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi8
1934 // 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>
1935 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1936 return _mm256_maskz_unpackhi_epi8(__U, __A, __B);
1937 }
1938
test_mm_mask_unpackhi_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1939 __m128i test_mm_mask_unpackhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1940 // CHECK-LABEL: @test_mm_mask_unpackhi_epi16
1941 // 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>
1942 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1943 return _mm_mask_unpackhi_epi16(__W, __U, __A, __B);
1944 }
1945
test_mm_maskz_unpackhi_epi16(__mmask8 __U,__m128i __A,__m128i __B)1946 __m128i test_mm_maskz_unpackhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1947 // CHECK-LABEL: @test_mm_maskz_unpackhi_epi16
1948 // 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>
1949 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1950 return _mm_maskz_unpackhi_epi16(__U, __A, __B);
1951 }
1952
test_mm256_mask_unpackhi_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1953 __m256i test_mm256_mask_unpackhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1954 // CHECK-LABEL: @test_mm256_mask_unpackhi_epi16
1955 // 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>
1956 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1957 return _mm256_mask_unpackhi_epi16(__W, __U, __A, __B);
1958 }
1959
test_mm256_maskz_unpackhi_epi16(__mmask16 __U,__m256i __A,__m256i __B)1960 __m256i test_mm256_maskz_unpackhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
1961 // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi16
1962 // 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>
1963 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
1964 return _mm256_maskz_unpackhi_epi16(__U, __A, __B);
1965 }
1966
test_mm_mask_unpacklo_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1967 __m128i test_mm_mask_unpacklo_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1968 // CHECK-LABEL: @test_mm_mask_unpacklo_epi8
1969 // 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>
1970 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1971 return _mm_mask_unpacklo_epi8(__W, __U, __A, __B);
1972 }
1973
test_mm_maskz_unpacklo_epi8(__mmask16 __U,__m128i __A,__m128i __B)1974 __m128i test_mm_maskz_unpacklo_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
1975 // CHECK-LABEL: @test_mm_maskz_unpacklo_epi8
1976 // 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>
1977 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
1978 return _mm_maskz_unpacklo_epi8(__U, __A, __B);
1979 }
1980
test_mm256_mask_unpacklo_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1981 __m256i test_mm256_mask_unpacklo_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1982 // CHECK-LABEL: @test_mm256_mask_unpacklo_epi8
1983 // 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>
1984 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1985 return _mm256_mask_unpacklo_epi8(__W, __U, __A, __B);
1986 }
1987
test_mm256_maskz_unpacklo_epi8(__mmask32 __U,__m256i __A,__m256i __B)1988 __m256i test_mm256_maskz_unpacklo_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
1989 // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi8
1990 // 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>
1991 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
1992 return _mm256_maskz_unpacklo_epi8(__U, __A, __B);
1993 }
1994
test_mm_mask_unpacklo_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1995 __m128i test_mm_mask_unpacklo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1996 // CHECK-LABEL: @test_mm_mask_unpacklo_epi16
1997 // 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>
1998 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
1999 return _mm_mask_unpacklo_epi16(__W, __U, __A, __B);
2000 }
2001
test_mm_maskz_unpacklo_epi16(__mmask8 __U,__m128i __A,__m128i __B)2002 __m128i test_mm_maskz_unpacklo_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2003 // CHECK-LABEL: @test_mm_maskz_unpacklo_epi16
2004 // 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>
2005 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2006 return _mm_maskz_unpacklo_epi16(__U, __A, __B);
2007 }
2008
test_mm256_mask_unpacklo_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2009 __m256i test_mm256_mask_unpacklo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
2010 // CHECK-LABEL: @test_mm256_mask_unpacklo_epi16
2011 // 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>
2012 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2013 return _mm256_mask_unpacklo_epi16(__W, __U, __A, __B);
2014 }
2015
test_mm256_maskz_unpacklo_epi16(__mmask16 __U,__m256i __A,__m256i __B)2016 __m256i test_mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
2017 // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi16
2018 // 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>
2019 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2020 return _mm256_maskz_unpacklo_epi16(__U, __A, __B);
2021 }
2022
test_mm_mask_cvtepi8_epi16(__m128i __W,__mmask8 __U,__m128i __A)2023 __m128i test_mm_mask_cvtepi8_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
2024 // CHECK-LABEL: @test_mm_mask_cvtepi8_epi16
2025 // CHECK: sext <8 x i8> %{{.*}} to <8 x i16>
2026 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2027 return _mm_mask_cvtepi8_epi16(__W, __U, __A);
2028 }
2029
test_mm_maskz_cvtepi8_epi16(__mmask8 __U,__m128i __A)2030 __m128i test_mm_maskz_cvtepi8_epi16(__mmask8 __U, __m128i __A) {
2031 // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi16
2032 // CHECK: sext <8 x i8> %{{.*}} to <8 x i16>
2033 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2034 return _mm_maskz_cvtepi8_epi16(__U, __A);
2035 }
2036
test_mm256_mask_cvtepi8_epi16(__m256i __W,__mmask16 __U,__m128i __A)2037 __m256i test_mm256_mask_cvtepi8_epi16(__m256i __W, __mmask16 __U, __m128i __A) {
2038 // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi16
2039 // CHECK: sext <16 x i8> %{{.*}} to <16 x i16>
2040 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2041 return _mm256_mask_cvtepi8_epi16(__W, __U, __A);
2042 }
2043
test_mm256_maskz_cvtepi8_epi16(__mmask16 __U,__m128i __A)2044 __m256i test_mm256_maskz_cvtepi8_epi16(__mmask16 __U, __m128i __A) {
2045 // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi16
2046 // CHECK: sext <16 x i8> %{{.*}} to <16 x i16>
2047 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2048 return _mm256_maskz_cvtepi8_epi16(__U, __A);
2049 }
2050
test_mm_mask_cvtepu8_epi16(__m128i __W,__mmask8 __U,__m128i __A)2051 __m128i test_mm_mask_cvtepu8_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
2052 // CHECK-LABEL: @test_mm_mask_cvtepu8_epi16
2053 // CHECK: zext <8 x i8> %{{.*}} to <8 x i16>
2054 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2055 return _mm_mask_cvtepu8_epi16(__W, __U, __A);
2056 }
2057
test_mm_maskz_cvtepu8_epi16(__mmask8 __U,__m128i __A)2058 __m128i test_mm_maskz_cvtepu8_epi16(__mmask8 __U, __m128i __A) {
2059 // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi16
2060 // CHECK: zext <8 x i8> %{{.*}} to <8 x i16>
2061 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2062 return _mm_maskz_cvtepu8_epi16(__U, __A);
2063 }
2064
test_mm256_mask_cvtepu8_epi16(__m256i __W,__mmask16 __U,__m128i __A)2065 __m256i test_mm256_mask_cvtepu8_epi16(__m256i __W, __mmask16 __U, __m128i __A) {
2066 // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi16
2067 // CHECK: zext <16 x i8> %{{.*}} to <16 x i16>
2068 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2069 return _mm256_mask_cvtepu8_epi16(__W, __U, __A);
2070 }
2071
test_mm256_maskz_cvtepu8_epi16(__mmask16 __U,__m128i __A)2072 __m256i test_mm256_maskz_cvtepu8_epi16(__mmask16 __U, __m128i __A) {
2073 // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi16
2074 // CHECK: zext <16 x i8> %{{.*}} to <16 x i16>
2075 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2076 return _mm256_maskz_cvtepu8_epi16(__U, __A);
2077 }
2078
test_mm256_sllv_epi16(__m256i __A,__m256i __B)2079 __m256i test_mm256_sllv_epi16(__m256i __A, __m256i __B) {
2080 // CHECK-LABEL: @test_mm256_sllv_epi16
2081 // CHECK: @llvm.x86.avx512.psllv.w.256(
2082 return _mm256_sllv_epi16(__A, __B);
2083 }
2084
test_mm256_mask_sllv_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2085 __m256i test_mm256_mask_sllv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
2086 // CHECK-LABEL: @test_mm256_mask_sllv_epi16
2087 // CHECK: @llvm.x86.avx512.psllv.w.256(
2088 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2089 return _mm256_mask_sllv_epi16(__W, __U, __A, __B);
2090 }
2091
test_mm256_maskz_sllv_epi16(__mmask16 __U,__m256i __A,__m256i __B)2092 __m256i test_mm256_maskz_sllv_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
2093 // CHECK-LABEL: @test_mm256_maskz_sllv_epi16
2094 // CHECK: @llvm.x86.avx512.psllv.w.256(
2095 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2096 return _mm256_maskz_sllv_epi16(__U, __A, __B);
2097 }
2098
test_mm_sllv_epi16(__m128i __A,__m128i __B)2099 __m128i test_mm_sllv_epi16(__m128i __A, __m128i __B) {
2100 // CHECK-LABEL: @test_mm_sllv_epi16
2101 // CHECK: @llvm.x86.avx512.psllv.w.128(
2102 return _mm_sllv_epi16(__A, __B);
2103 }
2104
test_mm_mask_sllv_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2105 __m128i test_mm_mask_sllv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2106 // CHECK-LABEL: @test_mm_mask_sllv_epi16
2107 // CHECK: @llvm.x86.avx512.psllv.w.128(
2108 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2109 return _mm_mask_sllv_epi16(__W, __U, __A, __B);
2110 }
2111
test_mm_maskz_sllv_epi16(__mmask8 __U,__m128i __A,__m128i __B)2112 __m128i test_mm_maskz_sllv_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2113 // CHECK-LABEL: @test_mm_maskz_sllv_epi16
2114 // CHECK: @llvm.x86.avx512.psllv.w.128(
2115 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2116 return _mm_maskz_sllv_epi16(__U, __A, __B);
2117 }
2118
test_mm_mask_sll_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2119 __m128i test_mm_mask_sll_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2120 // CHECK-LABEL: @test_mm_mask_sll_epi16
2121 // CHECK: @llvm.x86.sse2.psll.w
2122 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2123 return _mm_mask_sll_epi16(__W, __U, __A, __B);
2124 }
2125
test_mm_maskz_sll_epi16(__mmask8 __U,__m128i __A,__m128i __B)2126 __m128i test_mm_maskz_sll_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2127 // CHECK-LABEL: @test_mm_maskz_sll_epi16
2128 // CHECK: @llvm.x86.sse2.psll.w
2129 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2130 return _mm_maskz_sll_epi16(__U, __A, __B);
2131 }
2132
test_mm256_mask_sll_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m128i __B)2133 __m256i test_mm256_mask_sll_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) {
2134 // CHECK-LABEL: @test_mm256_mask_sll_epi16
2135 // CHECK: @llvm.x86.avx2.psll.w
2136 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2137 return _mm256_mask_sll_epi16(__W, __U, __A, __B);
2138 }
2139
test_mm256_maskz_sll_epi16(__mmask16 __U,__m256i __A,__m128i __B)2140 __m256i test_mm256_maskz_sll_epi16(__mmask16 __U, __m256i __A, __m128i __B) {
2141 // CHECK-LABEL: @test_mm256_maskz_sll_epi16
2142 // CHECK: @llvm.x86.avx2.psll.w
2143 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2144 return _mm256_maskz_sll_epi16(__U, __A, __B);
2145 }
2146
test_mm_mask_slli_epi16(__m128i __W,__mmask8 __U,__m128i __A)2147 __m128i test_mm_mask_slli_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
2148 // CHECK-LABEL: @test_mm_mask_slli_epi16
2149 // CHECK: @llvm.x86.sse2.pslli.w
2150 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2151 return _mm_mask_slli_epi16(__W, __U, __A, 5);
2152 }
2153
test_mm_mask_slli_epi16_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)2154 __m128i test_mm_mask_slli_epi16_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
2155 // CHECK-LABEL: @test_mm_mask_slli_epi16_2
2156 // CHECK: @llvm.x86.sse2.pslli.w
2157 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2158 return _mm_mask_slli_epi16(__W, __U, __A, __B);
2159 }
2160
test_mm_maskz_slli_epi16(__mmask8 __U,__m128i __A)2161 __m128i test_mm_maskz_slli_epi16(__mmask8 __U, __m128i __A) {
2162 // CHECK-LABEL: @test_mm_maskz_slli_epi16
2163 // CHECK: @llvm.x86.sse2.pslli.w
2164 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2165 return _mm_maskz_slli_epi16(__U, __A, 5);
2166 }
2167
test_mm_maskz_slli_epi16_2(__mmask8 __U,__m128i __A,unsigned int __B)2168 __m128i test_mm_maskz_slli_epi16_2(__mmask8 __U, __m128i __A, unsigned int __B) {
2169 // CHECK-LABEL: @test_mm_maskz_slli_epi16_2
2170 // CHECK: @llvm.x86.sse2.pslli.w
2171 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2172 return _mm_maskz_slli_epi16(__U, __A, __B);
2173 }
2174
test_mm256_mask_slli_epi16(__m256i __W,__mmask16 __U,__m256i __A)2175 __m256i test_mm256_mask_slli_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
2176 // CHECK-LABEL: @test_mm256_mask_slli_epi16
2177 // CHECK: @llvm.x86.avx2.pslli.w
2178 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2179 return _mm256_mask_slli_epi16(__W, __U, __A, 5);
2180 }
2181
test_mm256_mask_slli_epi16_2(__m256i __W,__mmask16 __U,__m256i __A,unsigned int __B)2182 __m256i test_mm256_mask_slli_epi16_2(__m256i __W, __mmask16 __U, __m256i __A, unsigned int __B) {
2183 // CHECK-LABEL: @test_mm256_mask_slli_epi16_2
2184 // CHECK: @llvm.x86.avx2.pslli.w
2185 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2186 return _mm256_mask_slli_epi16(__W, __U, __A, __B);
2187 }
2188
test_mm256_maskz_slli_epi16(__mmask16 __U,__m256i __A)2189 __m256i test_mm256_maskz_slli_epi16(__mmask16 __U, __m256i __A) {
2190 // CHECK-LABEL: @test_mm256_maskz_slli_epi16
2191 // CHECK: @llvm.x86.avx2.pslli.w
2192 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2193 return _mm256_maskz_slli_epi16(__U, __A, 5);
2194 }
2195
test_mm256_maskz_slli_epi16_2(__mmask16 __U,__m256i __A,unsigned int __B)2196 __m256i test_mm256_maskz_slli_epi16_2(__mmask16 __U, __m256i __A, unsigned int __B) {
2197 // CHECK-LABEL: @test_mm256_maskz_slli_epi16_2
2198 // CHECK: @llvm.x86.avx2.pslli.w
2199 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2200 return _mm256_maskz_slli_epi16(__U, __A, __B);
2201 }
2202
test_mm256_srlv_epi16(__m256i __A,__m256i __B)2203 __m256i test_mm256_srlv_epi16(__m256i __A, __m256i __B) {
2204 // CHECK-LABEL: @test_mm256_srlv_epi16
2205 // CHECK: @llvm.x86.avx512.psrlv.w.256(
2206 return _mm256_srlv_epi16(__A, __B);
2207 }
2208
test_mm256_mask_srlv_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2209 __m256i test_mm256_mask_srlv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
2210 // CHECK-LABEL: @test_mm256_mask_srlv_epi16
2211 // CHECK: @llvm.x86.avx512.psrlv.w.256(
2212 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2213 return _mm256_mask_srlv_epi16(__W, __U, __A, __B);
2214 }
2215
test_mm256_maskz_srlv_epi16(__mmask16 __U,__m256i __A,__m256i __B)2216 __m256i test_mm256_maskz_srlv_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
2217 // CHECK-LABEL: @test_mm256_maskz_srlv_epi16
2218 // CHECK: @llvm.x86.avx512.psrlv.w.256(
2219 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2220 return _mm256_maskz_srlv_epi16(__U, __A, __B);
2221 }
2222
test_mm_srlv_epi16(__m128i __A,__m128i __B)2223 __m128i test_mm_srlv_epi16(__m128i __A, __m128i __B) {
2224 // CHECK-LABEL: @test_mm_srlv_epi16
2225 // CHECK: @llvm.x86.avx512.psrlv.w.128(
2226 return _mm_srlv_epi16(__A, __B);
2227 }
2228
test_mm_mask_srlv_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2229 __m128i test_mm_mask_srlv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2230 // CHECK-LABEL: @test_mm_mask_srlv_epi16
2231 // CHECK: @llvm.x86.avx512.psrlv.w.128(
2232 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2233 return _mm_mask_srlv_epi16(__W, __U, __A, __B);
2234 }
2235
test_mm_maskz_srlv_epi16(__mmask8 __U,__m128i __A,__m128i __B)2236 __m128i test_mm_maskz_srlv_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2237 // CHECK-LABEL: @test_mm_maskz_srlv_epi16
2238 // CHECK: @llvm.x86.avx512.psrlv.w.128(
2239 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2240 return _mm_maskz_srlv_epi16(__U, __A, __B);
2241 }
2242
test_mm_mask_srl_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2243 __m128i test_mm_mask_srl_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2244 // CHECK-LABEL: @test_mm_mask_srl_epi16
2245 // CHECK: @llvm.x86.sse2.psrl.w
2246 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2247 return _mm_mask_srl_epi16(__W, __U, __A, __B);
2248 }
2249
test_mm_maskz_srl_epi16(__mmask8 __U,__m128i __A,__m128i __B)2250 __m128i test_mm_maskz_srl_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2251 // CHECK-LABEL: @test_mm_maskz_srl_epi16
2252 // CHECK: @llvm.x86.sse2.psrl.w
2253 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2254 return _mm_maskz_srl_epi16(__U, __A, __B);
2255 }
2256
test_mm256_mask_srl_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m128i __B)2257 __m256i test_mm256_mask_srl_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) {
2258 // CHECK-LABEL: @test_mm256_mask_srl_epi16
2259 // CHECK: @llvm.x86.avx2.psrl.w
2260 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2261 return _mm256_mask_srl_epi16(__W, __U, __A, __B);
2262 }
2263
test_mm256_maskz_srl_epi16(__mmask16 __U,__m256i __A,__m128i __B)2264 __m256i test_mm256_maskz_srl_epi16(__mmask16 __U, __m256i __A, __m128i __B) {
2265 // CHECK-LABEL: @test_mm256_maskz_srl_epi16
2266 // CHECK: @llvm.x86.avx2.psrl.w
2267 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2268 return _mm256_maskz_srl_epi16(__U, __A, __B);
2269 }
2270
test_mm_mask_srli_epi16(__m128i __W,__mmask8 __U,__m128i __A)2271 __m128i test_mm_mask_srli_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
2272 // CHECK-LABEL: @test_mm_mask_srli_epi16
2273 // CHECK: @llvm.x86.sse2.psrli.w
2274 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2275 return _mm_mask_srli_epi16(__W, __U, __A, 5);
2276 }
2277
test_mm_mask_srli_epi16_2(__m128i __W,__mmask8 __U,__m128i __A,int __B)2278 __m128i test_mm_mask_srli_epi16_2(__m128i __W, __mmask8 __U, __m128i __A, int __B) {
2279 // CHECK-LABEL: @test_mm_mask_srli_epi16_2
2280 // CHECK: @llvm.x86.sse2.psrli.w
2281 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2282 return _mm_mask_srli_epi16(__W, __U, __A, __B);
2283 }
2284
test_mm_maskz_srli_epi16(__mmask8 __U,__m128i __A)2285 __m128i test_mm_maskz_srli_epi16(__mmask8 __U, __m128i __A) {
2286 // CHECK-LABEL: @test_mm_maskz_srli_epi16
2287 // CHECK: @llvm.x86.sse2.psrli.w
2288 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2289 return _mm_maskz_srli_epi16(__U, __A, 5);
2290 }
2291
test_mm_maskz_srli_epi16_2(__mmask8 __U,__m128i __A,int __B)2292 __m128i test_mm_maskz_srli_epi16_2(__mmask8 __U, __m128i __A, int __B) {
2293 // CHECK-LABEL: @test_mm_maskz_srli_epi16_2
2294 // CHECK: @llvm.x86.sse2.psrli.w
2295 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2296 return _mm_maskz_srli_epi16(__U, __A, __B);
2297 }
2298
test_mm256_mask_srli_epi16(__m256i __W,__mmask16 __U,__m256i __A)2299 __m256i test_mm256_mask_srli_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
2300 // CHECK-LABEL: @test_mm256_mask_srli_epi16
2301 // CHECK: @llvm.x86.avx2.psrli.w
2302 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2303 return _mm256_mask_srli_epi16(__W, __U, __A, 5);
2304 }
2305
test_mm256_mask_srli_epi16_2(__m256i __W,__mmask16 __U,__m256i __A,int __B)2306 __m256i test_mm256_mask_srli_epi16_2(__m256i __W, __mmask16 __U, __m256i __A, int __B) {
2307 // CHECK-LABEL: @test_mm256_mask_srli_epi16_2
2308 // CHECK: @llvm.x86.avx2.psrli.w
2309 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2310 return _mm256_mask_srli_epi16(__W, __U, __A, __B);
2311 }
2312
test_mm256_maskz_srli_epi16(__mmask16 __U,__m256i __A)2313 __m256i test_mm256_maskz_srli_epi16(__mmask16 __U, __m256i __A) {
2314 // CHECK-LABEL: @test_mm256_maskz_srli_epi16
2315 // CHECK: @llvm.x86.avx2.psrli.w
2316 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2317 return _mm256_maskz_srli_epi16(__U, __A, 5);
2318 }
2319
test_mm256_maskz_srli_epi16_2(__mmask16 __U,__m256i __A,int __B)2320 __m256i test_mm256_maskz_srli_epi16_2(__mmask16 __U, __m256i __A, int __B) {
2321 // CHECK-LABEL: @test_mm256_maskz_srli_epi16_2
2322 // CHECK: @llvm.x86.avx2.psrli.w
2323 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2324 return _mm256_maskz_srli_epi16(__U, __A, __B);
2325 }
2326
test_mm256_srav_epi16(__m256i __A,__m256i __B)2327 __m256i test_mm256_srav_epi16(__m256i __A, __m256i __B) {
2328 // CHECK-LABEL: @test_mm256_srav_epi16
2329 // CHECK: @llvm.x86.avx512.psrav.w.256(
2330 return _mm256_srav_epi16(__A, __B);
2331 }
2332
test_mm256_mask_srav_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2333 __m256i test_mm256_mask_srav_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
2334 // CHECK-LABEL: @test_mm256_mask_srav_epi16
2335 // CHECK: @llvm.x86.avx512.psrav.w.256(
2336 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2337 return _mm256_mask_srav_epi16(__W, __U, __A, __B);
2338 }
2339
test_mm256_maskz_srav_epi16(__mmask16 __U,__m256i __A,__m256i __B)2340 __m256i test_mm256_maskz_srav_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
2341 // CHECK-LABEL: @test_mm256_maskz_srav_epi16
2342 // CHECK: @llvm.x86.avx512.psrav.w.256(
2343 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2344 return _mm256_maskz_srav_epi16(__U, __A, __B);
2345 }
2346
test_mm_srav_epi16(__m128i __A,__m128i __B)2347 __m128i test_mm_srav_epi16(__m128i __A, __m128i __B) {
2348 // CHECK-LABEL: @test_mm_srav_epi16
2349 // CHECK: @llvm.x86.avx512.psrav.w.128(
2350 return _mm_srav_epi16(__A, __B);
2351 }
2352
test_mm_mask_srav_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2353 __m128i test_mm_mask_srav_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2354 // CHECK-LABEL: @test_mm_mask_srav_epi16
2355 // CHECK: @llvm.x86.avx512.psrav.w.128(
2356 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2357 return _mm_mask_srav_epi16(__W, __U, __A, __B);
2358 }
2359
test_mm_maskz_srav_epi16(__mmask8 __U,__m128i __A,__m128i __B)2360 __m128i test_mm_maskz_srav_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2361 // CHECK-LABEL: @test_mm_maskz_srav_epi16
2362 // CHECK: @llvm.x86.avx512.psrav.w.128(
2363 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2364 return _mm_maskz_srav_epi16(__U, __A, __B);
2365 }
2366
test_mm_mask_sra_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2367 __m128i test_mm_mask_sra_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2368 // CHECK-LABEL: @test_mm_mask_sra_epi16
2369 // CHECK: @llvm.x86.sse2.psra.w
2370 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2371 return _mm_mask_sra_epi16(__W, __U, __A, __B);
2372 }
2373
test_mm_maskz_sra_epi16(__mmask8 __U,__m128i __A,__m128i __B)2374 __m128i test_mm_maskz_sra_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2375 // CHECK-LABEL: @test_mm_maskz_sra_epi16
2376 // CHECK: @llvm.x86.sse2.psra.w
2377 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2378 return _mm_maskz_sra_epi16(__U, __A, __B);
2379 }
2380
test_mm256_mask_sra_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m128i __B)2381 __m256i test_mm256_mask_sra_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) {
2382 // CHECK-LABEL: @test_mm256_mask_sra_epi16
2383 // CHECK: @llvm.x86.avx2.psra.w
2384 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2385 return _mm256_mask_sra_epi16(__W, __U, __A, __B);
2386 }
2387
test_mm256_maskz_sra_epi16(__mmask16 __U,__m256i __A,__m128i __B)2388 __m256i test_mm256_maskz_sra_epi16(__mmask16 __U, __m256i __A, __m128i __B) {
2389 // CHECK-LABEL: @test_mm256_maskz_sra_epi16
2390 // CHECK: @llvm.x86.avx2.psra.w
2391 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2392 return _mm256_maskz_sra_epi16(__U, __A, __B);
2393 }
2394
test_mm_mask_srai_epi16(__m128i __W,__mmask8 __U,__m128i __A)2395 __m128i test_mm_mask_srai_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
2396 // CHECK-LABEL: @test_mm_mask_srai_epi16
2397 // CHECK: @llvm.x86.sse2.psrai.w
2398 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2399 return _mm_mask_srai_epi16(__W, __U, __A, 5);
2400 }
2401
test_mm_mask_srai_epi16_2(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)2402 __m128i test_mm_mask_srai_epi16_2(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B) {
2403 // CHECK-LABEL: @test_mm_mask_srai_epi16_2
2404 // CHECK: @llvm.x86.sse2.psrai.w
2405 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2406 return _mm_mask_srai_epi16(__W, __U, __A, __B);
2407 }
2408
test_mm_maskz_srai_epi16(__mmask8 __U,__m128i __A)2409 __m128i test_mm_maskz_srai_epi16(__mmask8 __U, __m128i __A) {
2410 // CHECK-LABEL: @test_mm_maskz_srai_epi16
2411 // CHECK: @llvm.x86.sse2.psrai.w
2412 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2413 return _mm_maskz_srai_epi16(__U, __A, 5);
2414 }
2415
test_mm_maskz_srai_epi16_2(__mmask8 __U,__m128i __A,unsigned int __B)2416 __m128i test_mm_maskz_srai_epi16_2(__mmask8 __U, __m128i __A, unsigned int __B) {
2417 // CHECK-LABEL: @test_mm_maskz_srai_epi16_2
2418 // CHECK: @llvm.x86.sse2.psrai.w
2419 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2420 return _mm_maskz_srai_epi16(__U, __A, __B);
2421 }
2422
test_mm256_mask_srai_epi16(__m256i __W,__mmask16 __U,__m256i __A)2423 __m256i test_mm256_mask_srai_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
2424 // CHECK-LABEL: @test_mm256_mask_srai_epi16
2425 // CHECK: @llvm.x86.avx2.psrai.w
2426 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2427 return _mm256_mask_srai_epi16(__W, __U, __A, 5);
2428 }
2429
test_mm256_mask_srai_epi16_2(__m256i __W,__mmask16 __U,__m256i __A,unsigned int __B)2430 __m256i test_mm256_mask_srai_epi16_2(__m256i __W, __mmask16 __U, __m256i __A, unsigned int __B) {
2431 // CHECK-LABEL: @test_mm256_mask_srai_epi16_2
2432 // CHECK: @llvm.x86.avx2.psrai.w
2433 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2434 return _mm256_mask_srai_epi16(__W, __U, __A, __B);
2435 }
2436
test_mm256_maskz_srai_epi16(__mmask16 __U,__m256i __A)2437 __m256i test_mm256_maskz_srai_epi16(__mmask16 __U, __m256i __A) {
2438 // CHECK-LABEL: @test_mm256_maskz_srai_epi16
2439 // CHECK: @llvm.x86.avx2.psrai.w
2440 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2441 return _mm256_maskz_srai_epi16(__U, __A, 5);
2442 }
2443
test_mm256_maskz_srai_epi16_2(__mmask16 __U,__m256i __A,unsigned int __B)2444 __m256i test_mm256_maskz_srai_epi16_2(__mmask16 __U, __m256i __A, unsigned int __B) {
2445 // CHECK-LABEL: @test_mm256_maskz_srai_epi16_2
2446 // CHECK: @llvm.x86.avx2.psrai.w
2447 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2448 return _mm256_maskz_srai_epi16(__U, __A, __B);
2449 }
2450
test_mm_mask_mov_epi16(__m128i __W,__mmask8 __U,__m128i __A)2451 __m128i test_mm_mask_mov_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
2452 // CHECK-LABEL: @test_mm_mask_mov_epi16
2453 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2454 return _mm_mask_mov_epi16(__W, __U, __A);
2455 }
2456
test_mm_maskz_mov_epi16(__mmask8 __U,__m128i __A)2457 __m128i test_mm_maskz_mov_epi16(__mmask8 __U, __m128i __A) {
2458 // CHECK-LABEL: @test_mm_maskz_mov_epi16
2459 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2460 return _mm_maskz_mov_epi16(__U, __A);
2461 }
2462
test_mm256_mask_mov_epi16(__m256i __W,__mmask16 __U,__m256i __A)2463 __m256i test_mm256_mask_mov_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
2464 // CHECK-LABEL: @test_mm256_mask_mov_epi16
2465 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2466 return _mm256_mask_mov_epi16(__W, __U, __A);
2467 }
2468
test_mm256_maskz_mov_epi16(__mmask16 __U,__m256i __A)2469 __m256i test_mm256_maskz_mov_epi16(__mmask16 __U, __m256i __A) {
2470 // CHECK-LABEL: @test_mm256_maskz_mov_epi16
2471 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2472 return _mm256_maskz_mov_epi16(__U, __A);
2473 }
2474
test_mm_mask_mov_epi8(__m128i __W,__mmask16 __U,__m128i __A)2475 __m128i test_mm_mask_mov_epi8(__m128i __W, __mmask16 __U, __m128i __A) {
2476 // CHECK-LABEL: @test_mm_mask_mov_epi8
2477 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2478 return _mm_mask_mov_epi8(__W, __U, __A);
2479 }
2480
test_mm_maskz_mov_epi8(__mmask16 __U,__m128i __A)2481 __m128i test_mm_maskz_mov_epi8(__mmask16 __U, __m128i __A) {
2482 // CHECK-LABEL: @test_mm_maskz_mov_epi8
2483 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2484 return _mm_maskz_mov_epi8(__U, __A);
2485 }
2486
test_mm256_mask_mov_epi8(__m256i __W,__mmask32 __U,__m256i __A)2487 __m256i test_mm256_mask_mov_epi8(__m256i __W, __mmask32 __U, __m256i __A) {
2488 // CHECK-LABEL: @test_mm256_mask_mov_epi8
2489 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2490 return _mm256_mask_mov_epi8(__W, __U, __A);
2491 }
2492
test_mm256_maskz_mov_epi8(__mmask32 __U,__m256i __A)2493 __m256i test_mm256_maskz_mov_epi8(__mmask32 __U, __m256i __A) {
2494 // CHECK-LABEL: @test_mm256_maskz_mov_epi8
2495 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2496 return _mm256_maskz_mov_epi8(__U, __A);
2497 }
2498
test_mm_loadu_epi16(void const * __P)2499 __m128i test_mm_loadu_epi16(void const *__P) {
2500 // CHECK-LABEL: @test_mm_loadu_epi16
2501 // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
2502 return _mm_loadu_epi16(__P);
2503 }
2504
test_mm_mask_loadu_epi16(__m128i __W,__mmask8 __U,void const * __P)2505 __m128i test_mm_mask_loadu_epi16(__m128i __W, __mmask8 __U, void const *__P) {
2506 // CHECK-LABEL: @test_mm_mask_loadu_epi16
2507 // CHECK: @llvm.masked.load.v8i16.p0v8i16(<8 x i16>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i16> %{{.*}})
2508 return _mm_mask_loadu_epi16(__W, __U, __P);
2509 }
2510
test_mm_maskz_loadu_epi16(__mmask8 __U,void const * __P)2511 __m128i test_mm_maskz_loadu_epi16(__mmask8 __U, void const *__P) {
2512 // CHECK-LABEL: @test_mm_maskz_loadu_epi16
2513 // CHECK: @llvm.masked.load.v8i16.p0v8i16(<8 x i16>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i16> %{{.*}})
2514 return _mm_maskz_loadu_epi16(__U, __P);
2515 }
2516
test_mm256_loadu_epi16(void const * __P)2517 __m256i test_mm256_loadu_epi16(void const *__P) {
2518 // CHECK-LABEL: @test_mm256_loadu_epi16
2519 // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}, align 1{{$}}
2520 return _mm256_loadu_epi16(__P);
2521 }
2522
test_mm256_mask_loadu_epi16(__m256i __W,__mmask16 __U,void const * __P)2523 __m256i test_mm256_mask_loadu_epi16(__m256i __W, __mmask16 __U, void const *__P) {
2524 // CHECK-LABEL: @test_mm256_mask_loadu_epi16
2525 // CHECK: @llvm.masked.load.v16i16.p0v16i16(<16 x i16>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i16> %{{.*}})
2526 return _mm256_mask_loadu_epi16(__W, __U, __P);
2527 }
2528
test_mm256_maskz_loadu_epi16(__mmask16 __U,void const * __P)2529 __m256i test_mm256_maskz_loadu_epi16(__mmask16 __U, void const *__P) {
2530 // CHECK-LABEL: @test_mm256_maskz_loadu_epi16
2531 // CHECK: @llvm.masked.load.v16i16.p0v16i16(<16 x i16>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i16> %{{.*}})
2532 return _mm256_maskz_loadu_epi16(__U, __P);
2533 }
2534
test_mm_loadu_epi8(void const * __P)2535 __m128i test_mm_loadu_epi8(void const *__P) {
2536 // CHECK-LABEL: @test_mm_loadu_epi8
2537 // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
2538 return _mm_loadu_epi8(__P);
2539 }
2540
test_mm_mask_loadu_epi8(__m128i __W,__mmask16 __U,void const * __P)2541 __m128i test_mm_mask_loadu_epi8(__m128i __W, __mmask16 __U, void const *__P) {
2542 // CHECK-LABEL: @test_mm_mask_loadu_epi8
2543 // CHECK: @llvm.masked.load.v16i8.p0v16i8(<16 x i8>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i8> %{{.*}})
2544 return _mm_mask_loadu_epi8(__W, __U, __P);
2545 }
2546
test_mm_maskz_loadu_epi8(__mmask16 __U,void const * __P)2547 __m128i test_mm_maskz_loadu_epi8(__mmask16 __U, void const *__P) {
2548 // CHECK-LABEL: @test_mm_maskz_loadu_epi8
2549 // CHECK: @llvm.masked.load.v16i8.p0v16i8(<16 x i8>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i8> %{{.*}})
2550 return _mm_maskz_loadu_epi8(__U, __P);
2551 }
2552
test_mm256_loadu_epi8(void const * __P)2553 __m256i test_mm256_loadu_epi8(void const *__P) {
2554 // CHECK-LABEL: @test_mm256_loadu_epi8
2555 // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}, align 1{{$}}
2556 return _mm256_loadu_epi8(__P);
2557 }
2558
test_mm256_mask_loadu_epi8(__m256i __W,__mmask32 __U,void const * __P)2559 __m256i test_mm256_mask_loadu_epi8(__m256i __W, __mmask32 __U, void const *__P) {
2560 // CHECK-LABEL: @test_mm256_mask_loadu_epi8
2561 // CHECK: @llvm.masked.load.v32i8.p0v32i8(<32 x i8>* %{{.*}}, i32 1, <32 x i1> %{{.*}}, <32 x i8> %{{.*}})
2562 return _mm256_mask_loadu_epi8(__W, __U, __P);
2563 }
2564
test_mm256_maskz_loadu_epi8(__mmask32 __U,void const * __P)2565 __m256i test_mm256_maskz_loadu_epi8(__mmask32 __U, void const *__P) {
2566 // CHECK-LABEL: @test_mm256_maskz_loadu_epi8
2567 // CHECK: @llvm.masked.load.v32i8.p0v32i8(<32 x i8>* %{{.*}}, i32 1, <32 x i1> %{{.*}}, <32 x i8> %{{.*}})
2568 return _mm256_maskz_loadu_epi8(__U, __P);
2569 }
2570
test_mm_storeu_epi16(void * __p,__m128i __a)2571 void test_mm_storeu_epi16(void *__p, __m128i __a) {
2572 // check-label: @test_mm_storeu_epi16
2573 // check: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1{{$}}
2574 return _mm_storeu_epi16(__p, __a);
2575 }
2576
test_mm_mask_storeu_epi16(void * __P,__mmask8 __U,__m128i __A)2577 void test_mm_mask_storeu_epi16(void *__P, __mmask8 __U, __m128i __A) {
2578 // CHECK-LABEL: @test_mm_mask_storeu_epi16
2579 // CHECK: @llvm.masked.store.v8i16.p0v8i16(<8 x i16> %{{.*}}, <8 x i16>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
2580 return _mm_mask_storeu_epi16(__P, __U, __A);
2581 }
2582
test_mm256_storeu_epi16(void * __P,__m256i __A)2583 void test_mm256_storeu_epi16(void *__P, __m256i __A) {
2584 // CHECK-LABEL: @test_mm256_storeu_epi16
2585 // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, align 1{{$}}
2586 return _mm256_storeu_epi16(__P, __A);
2587 }
2588
test_mm256_mask_storeu_epi16(void * __P,__mmask16 __U,__m256i __A)2589 void test_mm256_mask_storeu_epi16(void *__P, __mmask16 __U, __m256i __A) {
2590 // CHECK-LABEL: @test_mm256_mask_storeu_epi16
2591 // CHECK: @llvm.masked.store.v16i16.p0v16i16(<16 x i16> %{{.*}}, <16 x i16>* %{{.*}}, i32 1, <16 x i1> %{{.*}})
2592 return _mm256_mask_storeu_epi16(__P, __U, __A);
2593 }
2594
test_mm_storeu_epi8(void * __p,__m128i __a)2595 void test_mm_storeu_epi8(void *__p, __m128i __a) {
2596 // check-label: @test_mm_storeu_epi8
2597 // check: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1{{$}}
2598 return _mm_storeu_epi8(__p, __a);
2599 }
2600
test_mm_mask_storeu_epi8(void * __P,__mmask16 __U,__m128i __A)2601 void test_mm_mask_storeu_epi8(void *__P, __mmask16 __U, __m128i __A) {
2602 // CHECK-LABEL: @test_mm_mask_storeu_epi8
2603 // CHECK: @llvm.masked.store.v16i8.p0v16i8(<16 x i8> %{{.*}}, <16 x i8>* %{{.*}}, i32 1, <16 x i1> %{{.*}})
2604 return _mm_mask_storeu_epi8(__P, __U, __A);
2605 }
2606
test_mm256_storeu_epi8(void * __P,__m256i __A)2607 void test_mm256_storeu_epi8(void *__P, __m256i __A) {
2608 // CHECK-LABEL: @test_mm256_storeu_epi8
2609 // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, align 1{{$}}
2610 return _mm256_storeu_epi8(__P, __A);
2611 }
2612
test_mm256_mask_storeu_epi8(void * __P,__mmask32 __U,__m256i __A)2613 void test_mm256_mask_storeu_epi8(void *__P, __mmask32 __U, __m256i __A) {
2614 // CHECK-LABEL: @test_mm256_mask_storeu_epi8
2615 // CHECK: @llvm.masked.store.v32i8.p0v32i8(<32 x i8> %{{.*}}, <32 x i8>* %{{.*}}, i32 1, <32 x i1> %{{.*}})
2616 return _mm256_mask_storeu_epi8(__P, __U, __A);
2617 }
test_mm_test_epi8_mask(__m128i __A,__m128i __B)2618 __mmask16 test_mm_test_epi8_mask(__m128i __A, __m128i __B) {
2619 // CHECK-LABEL: @test_mm_test_epi8_mask
2620 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2621 // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
2622 return _mm_test_epi8_mask(__A, __B);
2623 }
2624
test_mm_mask_test_epi8_mask(__mmask16 __U,__m128i __A,__m128i __B)2625 __mmask16 test_mm_mask_test_epi8_mask(__mmask16 __U, __m128i __A, __m128i __B) {
2626 // CHECK-LABEL: @test_mm_mask_test_epi8_mask
2627 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2628 // CHECK: icmp ne <16 x i8> %{{.*}}, %{{.*}}
2629 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
2630 return _mm_mask_test_epi8_mask(__U, __A, __B);
2631 }
2632
test_mm256_test_epi8_mask(__m256i __A,__m256i __B)2633 __mmask32 test_mm256_test_epi8_mask(__m256i __A, __m256i __B) {
2634 // CHECK-LABEL: @test_mm256_test_epi8_mask
2635 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2636 // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}}
2637 return _mm256_test_epi8_mask(__A, __B);
2638 }
2639
test_mm256_mask_test_epi8_mask(__mmask32 __U,__m256i __A,__m256i __B)2640 __mmask32 test_mm256_mask_test_epi8_mask(__mmask32 __U, __m256i __A, __m256i __B) {
2641 // CHECK-LABEL: @test_mm256_mask_test_epi8_mask
2642 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2643 // CHECK: icmp ne <32 x i8> %{{.*}}, %{{.*}}
2644 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
2645 return _mm256_mask_test_epi8_mask(__U, __A, __B);
2646 }
2647
test_mm_test_epi16_mask(__m128i __A,__m128i __B)2648 __mmask8 test_mm_test_epi16_mask(__m128i __A, __m128i __B) {
2649 // CHECK-LABEL: @test_mm_test_epi16_mask
2650 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2651 // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
2652 return _mm_test_epi16_mask(__A, __B);
2653 }
2654
test_mm_mask_test_epi16_mask(__mmask8 __U,__m128i __A,__m128i __B)2655 __mmask8 test_mm_mask_test_epi16_mask(__mmask8 __U, __m128i __A, __m128i __B) {
2656 // CHECK-LABEL: @test_mm_mask_test_epi16_mask
2657 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2658 // CHECK: icmp ne <8 x i16> %{{.*}}, %{{.*}}
2659 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
2660 return _mm_mask_test_epi16_mask(__U, __A, __B);
2661 }
2662
test_mm256_test_epi16_mask(__m256i __A,__m256i __B)2663 __mmask16 test_mm256_test_epi16_mask(__m256i __A, __m256i __B) {
2664 // CHECK-LABEL: @test_mm256_test_epi16_mask
2665 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2666 // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}}
2667 return _mm256_test_epi16_mask(__A, __B);
2668 }
2669
test_mm256_mask_test_epi16_mask(__mmask16 __U,__m256i __A,__m256i __B)2670 __mmask16 test_mm256_mask_test_epi16_mask(__mmask16 __U, __m256i __A, __m256i __B) {
2671 // CHECK-LABEL: @test_mm256_mask_test_epi16_mask
2672 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2673 // CHECK: icmp ne <16 x i16> %{{.*}}, %{{.*}}
2674 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
2675 return _mm256_mask_test_epi16_mask(__U, __A, __B);
2676 }
2677
test_mm_testn_epi8_mask(__m128i __A,__m128i __B)2678 __mmask16 test_mm_testn_epi8_mask(__m128i __A, __m128i __B) {
2679 // CHECK-LABEL: @test_mm_testn_epi8_mask
2680 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2681 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
2682 return _mm_testn_epi8_mask(__A, __B);
2683 }
2684
test_mm_mask_testn_epi8_mask(__mmask16 __U,__m128i __A,__m128i __B)2685 __mmask16 test_mm_mask_testn_epi8_mask(__mmask16 __U, __m128i __A, __m128i __B) {
2686 // CHECK-LABEL: @test_mm_mask_testn_epi8_mask
2687 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2688 // CHECK: icmp eq <16 x i8> %{{.*}}, %{{.*}}
2689 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
2690 return _mm_mask_testn_epi8_mask(__U, __A, __B);
2691 }
2692
test_mm256_testn_epi8_mask(__m256i __A,__m256i __B)2693 __mmask32 test_mm256_testn_epi8_mask(__m256i __A, __m256i __B) {
2694 // CHECK-LABEL: @test_mm256_testn_epi8_mask
2695 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2696 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
2697 return _mm256_testn_epi8_mask(__A, __B);
2698 }
2699
test_mm256_mask_testn_epi8_mask(__mmask32 __U,__m256i __A,__m256i __B)2700 __mmask32 test_mm256_mask_testn_epi8_mask(__mmask32 __U, __m256i __A, __m256i __B) {
2701 // CHECK-LABEL: @test_mm256_mask_testn_epi8_mask
2702 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2703 // CHECK: icmp eq <32 x i8> %{{.*}}, %{{.*}}
2704 // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
2705 return _mm256_mask_testn_epi8_mask(__U, __A, __B);
2706 }
2707
test_mm_testn_epi16_mask(__m128i __A,__m128i __B)2708 __mmask8 test_mm_testn_epi16_mask(__m128i __A, __m128i __B) {
2709 // CHECK-LABEL: @test_mm_testn_epi16_mask
2710 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2711 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
2712 return _mm_testn_epi16_mask(__A, __B);
2713 }
2714
test_mm_mask_testn_epi16_mask(__mmask8 __U,__m128i __A,__m128i __B)2715 __mmask8 test_mm_mask_testn_epi16_mask(__mmask8 __U, __m128i __A, __m128i __B) {
2716 // CHECK-LABEL: @test_mm_mask_testn_epi16_mask
2717 // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
2718 // CHECK: icmp eq <8 x i16> %{{.*}}, %{{.*}}
2719 // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
2720 return _mm_mask_testn_epi16_mask(__U, __A, __B);
2721 }
2722
test_mm256_testn_epi16_mask(__m256i __A,__m256i __B)2723 __mmask16 test_mm256_testn_epi16_mask(__m256i __A, __m256i __B) {
2724 // CHECK-LABEL: @test_mm256_testn_epi16_mask
2725 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2726 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
2727 return _mm256_testn_epi16_mask(__A, __B);
2728 }
2729
test_mm256_mask_testn_epi16_mask(__mmask16 __U,__m256i __A,__m256i __B)2730 __mmask16 test_mm256_mask_testn_epi16_mask(__mmask16 __U, __m256i __A, __m256i __B) {
2731 // CHECK-LABEL: @test_mm256_mask_testn_epi16_mask
2732 // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
2733 // CHECK: icmp eq <16 x i16> %{{.*}}, %{{.*}}
2734 // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
2735 return _mm256_mask_testn_epi16_mask(__U, __A, __B);
2736 }
2737
test_mm_movepi8_mask(__m128i __A)2738 __mmask16 test_mm_movepi8_mask(__m128i __A) {
2739 // CHECK-LABEL: @test_mm_movepi8_mask
2740 // CHECK: [[CMP:%.*]] = icmp slt <16 x i8> %{{.*}}, zeroinitializer
2741 // CHECK: bitcast <16 x i1> [[CMP]] to i16
2742 return _mm_movepi8_mask(__A);
2743 }
2744
test_mm256_movepi8_mask(__m256i __A)2745 __mmask32 test_mm256_movepi8_mask(__m256i __A) {
2746 // CHECK-LABEL: @test_mm256_movepi8_mask
2747 // CHECK: [[CMP:%.*]] = icmp slt <32 x i8> %{{.*}}, zeroinitializer
2748 // CHECK: bitcast <32 x i1> [[CMP]] to i32
2749 return _mm256_movepi8_mask(__A);
2750 }
2751
test_mm_movm_epi8(__mmask16 __A)2752 __m128i test_mm_movm_epi8(__mmask16 __A) {
2753 // CHECK-LABEL: @test_mm_movm_epi8
2754 // CHECK: %{{.*}} = bitcast i16 %{{.*}} to <16 x i1>
2755 // CHECK: %vpmovm2.i = sext <16 x i1> %{{.*}} to <16 x i8>
2756 return _mm_movm_epi8(__A);
2757 }
2758
test_mm256_movm_epi8(__mmask32 __A)2759 __m256i test_mm256_movm_epi8(__mmask32 __A) {
2760 // CHECK-LABEL: @test_mm256_movm_epi8
2761 // CHECK: %{{.*}} = bitcast i32 %{{.*}} to <32 x i1>
2762 // CHECK: %vpmovm2.i = sext <32 x i1> %{{.*}} to <32 x i8>
2763 return _mm256_movm_epi8(__A);
2764 }
2765
test_mm_movm_epi16(__mmask8 __A)2766 __m128i test_mm_movm_epi16(__mmask8 __A) {
2767 // CHECK-LABEL: @test_mm_movm_epi16
2768 // CHECK: %{{.*}} = bitcast i8 %{{.*}} to <8 x i1>
2769 // CHECK: %vpmovm2.i = sext <8 x i1> %{{.*}} to <8 x i16>
2770 return _mm_movm_epi16(__A);
2771 }
2772
test_mm256_movm_epi16(__mmask16 __A)2773 __m256i test_mm256_movm_epi16(__mmask16 __A) {
2774 // CHECK-LABEL: @test_mm256_movm_epi16
2775 // CHECK: %{{.*}} = bitcast i16 %{{.*}} to <16 x i1>
2776 // CHECK: %vpmovm2.i = sext <16 x i1> %{{.*}} to <16 x i16>
2777 return _mm256_movm_epi16(__A);
2778 }
2779
test_mm_mask_broadcastb_epi8(__m128i __O,__mmask16 __M,__m128i __A)2780 __m128i test_mm_mask_broadcastb_epi8(__m128i __O, __mmask16 __M, __m128i __A) {
2781 // CHECK-LABEL: @test_mm_mask_broadcastb_epi8
2782 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> zeroinitializer
2783 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2784 return _mm_mask_broadcastb_epi8(__O, __M, __A);
2785 }
2786
test_mm_maskz_broadcastb_epi8(__mmask16 __M,__m128i __A)2787 __m128i test_mm_maskz_broadcastb_epi8(__mmask16 __M, __m128i __A) {
2788 // CHECK-LABEL: @test_mm_maskz_broadcastb_epi8
2789 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> zeroinitializer
2790 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2791 return _mm_maskz_broadcastb_epi8(__M, __A);
2792 }
2793
test_mm256_mask_broadcastb_epi8(__m256i __O,__mmask32 __M,__m128i __A)2794 __m256i test_mm256_mask_broadcastb_epi8(__m256i __O, __mmask32 __M, __m128i __A) {
2795 // CHECK-LABEL: @test_mm256_mask_broadcastb_epi8
2796 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <32 x i32> zeroinitializer
2797 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2798 return _mm256_mask_broadcastb_epi8(__O, __M, __A);
2799 }
2800
test_mm256_maskz_broadcastb_epi8(__mmask32 __M,__m128i __A)2801 __m256i test_mm256_maskz_broadcastb_epi8(__mmask32 __M, __m128i __A) {
2802 // CHECK-LABEL: @test_mm256_maskz_broadcastb_epi8
2803 // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <32 x i32> zeroinitializer
2804 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2805 return _mm256_maskz_broadcastb_epi8(__M, __A);
2806 }
2807
test_mm_mask_broadcastw_epi16(__m128i __O,__mmask8 __M,__m128i __A)2808 __m128i test_mm_mask_broadcastw_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
2809 // CHECK-LABEL: @test_mm_mask_broadcastw_epi16
2810 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> zeroinitializer
2811 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2812 return _mm_mask_broadcastw_epi16(__O, __M, __A);
2813 }
2814
test_mm_maskz_broadcastw_epi16(__mmask8 __M,__m128i __A)2815 __m128i test_mm_maskz_broadcastw_epi16(__mmask8 __M, __m128i __A) {
2816 // CHECK-LABEL: @test_mm_maskz_broadcastw_epi16
2817 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> zeroinitializer
2818 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
2819 return _mm_maskz_broadcastw_epi16(__M, __A);
2820 }
2821
test_mm256_mask_broadcastw_epi16(__m256i __O,__mmask16 __M,__m128i __A)2822 __m256i test_mm256_mask_broadcastw_epi16(__m256i __O, __mmask16 __M, __m128i __A) {
2823 // CHECK-LABEL: @test_mm256_mask_broadcastw_epi16
2824 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <16 x i32> zeroinitializer
2825 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2826 return _mm256_mask_broadcastw_epi16(__O, __M, __A);
2827 }
2828
test_mm256_maskz_broadcastw_epi16(__mmask16 __M,__m128i __A)2829 __m256i test_mm256_maskz_broadcastw_epi16(__mmask16 __M, __m128i __A) {
2830 // CHECK-LABEL: @test_mm256_maskz_broadcastw_epi16
2831 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <16 x i32> zeroinitializer
2832 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2833 return _mm256_maskz_broadcastw_epi16(__M, __A);
2834 }
test_mm_mask_set1_epi8(__m128i __O,__mmask16 __M,char __A)2835 __m128i test_mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A){
2836 // CHECK-LABEL: @test_mm_mask_set1_epi8
2837 // CHECK: insertelement <16 x i8> undef, i8 %{{.*}}, i32 0
2838 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 1
2839 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 2
2840 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 3
2841 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 4
2842 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 5
2843 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 6
2844 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 7
2845 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 8
2846 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 9
2847 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 10
2848 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 11
2849 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 12
2850 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 13
2851 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 14
2852 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 15
2853 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2854 return _mm_mask_set1_epi8(__O, __M, __A);
2855 }
test_mm_maskz_set1_epi8(__mmask16 __M,char __A)2856 __m128i test_mm_maskz_set1_epi8 ( __mmask16 __M, char __A){
2857 // CHECK-LABEL: @test_mm_maskz_set1_epi8
2858 // CHECK: insertelement <16 x i8> undef, i8 %{{.*}}, i32 0
2859 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 1
2860 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 2
2861 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 3
2862 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 4
2863 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 5
2864 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 6
2865 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 7
2866 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 8
2867 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 9
2868 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 10
2869 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 11
2870 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 12
2871 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 13
2872 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 14
2873 // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 15
2874 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
2875 return _mm_maskz_set1_epi8( __M, __A);
2876 }
2877
test_mm256_mask_set1_epi8(__m256i __O,__mmask32 __M,char __A)2878 __m256i test_mm256_mask_set1_epi8(__m256i __O, __mmask32 __M, char __A) {
2879 // CHECK-LABEL: @test_mm256_mask_set1_epi8
2880 // CHECK: insertelement <32 x i8> undef, i8 %{{.*}}, i32 0
2881 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 1
2882 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 2
2883 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 3
2884 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 4
2885 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 5
2886 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 6
2887 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 7
2888 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 8
2889 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 9
2890 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 10
2891 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 11
2892 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 12
2893 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 13
2894 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 14
2895 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 15
2896 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 16
2897 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 17
2898 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 18
2899 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 19
2900 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 20
2901 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 21
2902 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 22
2903 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 23
2904 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 24
2905 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 25
2906 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 26
2907 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 27
2908 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 28
2909 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 29
2910 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 30
2911 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 31
2912 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2913 return _mm256_mask_set1_epi8(__O, __M, __A);
2914 }
2915
test_mm256_maskz_set1_epi8(__mmask32 __M,char __A)2916 __m256i test_mm256_maskz_set1_epi8( __mmask32 __M, char __A) {
2917 // CHECK-LABEL: @test_mm256_maskz_set1_epi8
2918 // CHECK: insertelement <32 x i8> undef, i8 %{{.*}}, i32 0
2919 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 1
2920 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 2
2921 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 3
2922 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 4
2923 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 5
2924 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 6
2925 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 7
2926 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 8
2927 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 9
2928 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 10
2929 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 11
2930 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 12
2931 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 13
2932 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 14
2933 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 15
2934 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 16
2935 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 17
2936 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 18
2937 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 19
2938 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 20
2939 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 21
2940 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 22
2941 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 23
2942 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 24
2943 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 25
2944 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 26
2945 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 27
2946 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 28
2947 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 29
2948 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 30
2949 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, i32 31
2950 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
2951 return _mm256_maskz_set1_epi8( __M, __A);
2952 }
2953
2954
test_mm256_mask_set1_epi16(__m256i __O,__mmask16 __M,short __A)2955 __m256i test_mm256_mask_set1_epi16(__m256i __O, __mmask16 __M, short __A) {
2956 // CHECK-LABEL: @test_mm256_mask_set1_epi16
2957 // CHECK: insertelement <16 x i16> undef, i16 %{{.*}}, i32 0
2958 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 1
2959 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 2
2960 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 3
2961 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 4
2962 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 5
2963 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 6
2964 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 7
2965 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 8
2966 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 9
2967 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 10
2968 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 11
2969 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 12
2970 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 13
2971 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 14
2972 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 15
2973 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2974 return _mm256_mask_set1_epi16(__O, __M, __A);
2975 }
2976
test_mm256_maskz_set1_epi16(__mmask16 __M,short __A)2977 __m256i test_mm256_maskz_set1_epi16(__mmask16 __M, short __A) {
2978 // CHECK-LABEL: @test_mm256_maskz_set1_epi16
2979 // CHECK: insertelement <16 x i16> undef, i16 %{{.*}}, i32 0
2980 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 1
2981 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 2
2982 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 3
2983 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 4
2984 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 5
2985 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 6
2986 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 7
2987 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 8
2988 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 9
2989 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 10
2990 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 11
2991 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 12
2992 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 13
2993 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 14
2994 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, i32 15
2995 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
2996 return _mm256_maskz_set1_epi16(__M, __A);
2997 }
2998
test_mm_mask_set1_epi16(__m128i __O,__mmask8 __M,short __A)2999 __m128i test_mm_mask_set1_epi16(__m128i __O, __mmask8 __M, short __A) {
3000 // CHECK-LABEL: @test_mm_mask_set1_epi16
3001 // CHECK: insertelement <8 x i16> undef, i16 %{{.*}}, i32 0
3002 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 1
3003 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 2
3004 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 3
3005 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 4
3006 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 5
3007 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 6
3008 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 7
3009 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3010 return _mm_mask_set1_epi16(__O, __M, __A);
3011 }
3012
test_mm_maskz_set1_epi16(__mmask8 __M,short __A)3013 __m128i test_mm_maskz_set1_epi16(__mmask8 __M, short __A) {
3014 // CHECK-LABEL: @test_mm_maskz_set1_epi16
3015 // CHECK: insertelement <8 x i16> undef, i16 %{{.*}}, i32 0
3016 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 1
3017 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 2
3018 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 3
3019 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 4
3020 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 5
3021 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 6
3022 // CHECK: insertelement <8 x i16> %{{.*}}, i16 %{{.*}}, i32 7
3023 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3024 return _mm_maskz_set1_epi16(__M, __A);
3025 }
test_mm_permutexvar_epi16(__m128i __A,__m128i __B)3026 __m128i test_mm_permutexvar_epi16(__m128i __A, __m128i __B) {
3027 // CHECK-LABEL: @test_mm_permutexvar_epi16
3028 // CHECK: @llvm.x86.avx512.permvar.hi.128
3029 return _mm_permutexvar_epi16(__A, __B);
3030 }
3031
test_mm_maskz_permutexvar_epi16(__mmask8 __M,__m128i __A,__m128i __B)3032 __m128i test_mm_maskz_permutexvar_epi16(__mmask8 __M, __m128i __A, __m128i __B) {
3033 // CHECK-LABEL: @test_mm_maskz_permutexvar_epi16
3034 // CHECK: @llvm.x86.avx512.permvar.hi.128
3035 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3036 return _mm_maskz_permutexvar_epi16(__M, __A, __B);
3037 }
3038
test_mm_mask_permutexvar_epi16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)3039 __m128i test_mm_mask_permutexvar_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3040 // CHECK-LABEL: @test_mm_mask_permutexvar_epi16
3041 // CHECK: @llvm.x86.avx512.permvar.hi.128
3042 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3043 return _mm_mask_permutexvar_epi16(__W, __M, __A, __B);
3044 }
3045
test_mm256_permutexvar_epi16(__m256i __A,__m256i __B)3046 __m256i test_mm256_permutexvar_epi16(__m256i __A, __m256i __B) {
3047 // CHECK-LABEL: @test_mm256_permutexvar_epi16
3048 // CHECK: @llvm.x86.avx512.permvar.hi.256
3049 return _mm256_permutexvar_epi16(__A, __B);
3050 }
3051
test_mm256_maskz_permutexvar_epi16(__mmask16 __M,__m256i __A,__m256i __B)3052 __m256i test_mm256_maskz_permutexvar_epi16(__mmask16 __M, __m256i __A, __m256i __B) {
3053 // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi16
3054 // CHECK: @llvm.x86.avx512.permvar.hi.256
3055 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3056 return _mm256_maskz_permutexvar_epi16(__M, __A, __B);
3057 }
3058
test_mm256_mask_permutexvar_epi16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)3059 __m256i test_mm256_mask_permutexvar_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) {
3060 // CHECK-LABEL: @test_mm256_mask_permutexvar_epi16
3061 // CHECK: @llvm.x86.avx512.permvar.hi.256
3062 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3063 return _mm256_mask_permutexvar_epi16(__W, __M, __A, __B);
3064 }
test_mm_mask_alignr_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)3065 __m128i test_mm_mask_alignr_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
3066 // CHECK-LABEL: @test_mm_mask_alignr_epi8
3067 // 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>
3068 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
3069 return _mm_mask_alignr_epi8(__W, __U, __A, __B, 2);
3070 }
3071
test_mm_maskz_alignr_epi8(__mmask16 __U,__m128i __A,__m128i __B)3072 __m128i test_mm_maskz_alignr_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
3073 // CHECK-LABEL: @test_mm_maskz_alignr_epi8
3074 // 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>
3075 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
3076 return _mm_maskz_alignr_epi8(__U, __A, __B, 2);
3077 }
3078
test_mm256_mask_alignr_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)3079 __m256i test_mm256_mask_alignr_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
3080 // CHECK-LABEL: @test_mm256_mask_alignr_epi8
3081 // 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>
3082 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
3083 return _mm256_mask_alignr_epi8(__W, __U, __A, __B, 2);
3084 }
3085
test_mm256_maskz_alignr_epi8(__mmask32 __U,__m256i __A,__m256i __B)3086 __m256i test_mm256_maskz_alignr_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
3087 // CHECK-LABEL: @test_mm256_maskz_alignr_epi8
3088 // 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>
3089 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
3090 return _mm256_maskz_alignr_epi8(__U, __A, __B, 2);
3091 }
3092
test_mm_dbsad_epu8(__m128i __A,__m128i __B)3093 __m128i test_mm_dbsad_epu8(__m128i __A, __m128i __B) {
3094 // CHECK-LABEL: @test_mm_dbsad_epu8
3095 // CHECK: @llvm.x86.avx512.dbpsadbw.128
3096 return _mm_dbsad_epu8(__A, __B, 170);
3097 }
3098
test_mm_mask_dbsad_epu8(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)3099 __m128i test_mm_mask_dbsad_epu8(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
3100 // CHECK-LABEL: @test_mm_mask_dbsad_epu8
3101 // CHECK: @llvm.x86.avx512.dbpsadbw.128
3102 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3103 return _mm_mask_dbsad_epu8(__W, __U, __A, __B, 170);
3104 }
3105
test_mm_maskz_dbsad_epu8(__mmask8 __U,__m128i __A,__m128i __B)3106 __m128i test_mm_maskz_dbsad_epu8(__mmask8 __U, __m128i __A, __m128i __B) {
3107 // CHECK-LABEL: @test_mm_maskz_dbsad_epu8
3108 // CHECK: @llvm.x86.avx512.dbpsadbw.128
3109 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3110 return _mm_maskz_dbsad_epu8(__U, __A, __B, 170);
3111 }
3112
test_mm256_dbsad_epu8(__m256i __A,__m256i __B)3113 __m256i test_mm256_dbsad_epu8(__m256i __A, __m256i __B) {
3114 // CHECK-LABEL: @test_mm256_dbsad_epu8
3115 // CHECK: @llvm.x86.avx512.dbpsadbw.256
3116 return _mm256_dbsad_epu8(__A, __B, 170);
3117 }
3118
test_mm256_mask_dbsad_epu8(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)3119 __m256i test_mm256_mask_dbsad_epu8(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
3120 // CHECK-LABEL: @test_mm256_mask_dbsad_epu8
3121 // CHECK: @llvm.x86.avx512.dbpsadbw.256
3122 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3123 return _mm256_mask_dbsad_epu8(__W, __U, __A, __B, 170);
3124 }
3125
test_mm256_maskz_dbsad_epu8(__mmask16 __U,__m256i __A,__m256i __B)3126 __m256i test_mm256_maskz_dbsad_epu8(__mmask16 __U, __m256i __A, __m256i __B) {
3127 // CHECK-LABEL: @test_mm256_maskz_dbsad_epu8
3128 // CHECK: @llvm.x86.avx512.dbpsadbw.256
3129 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3130 return _mm256_maskz_dbsad_epu8(__U, __A, __B, 170);
3131 }
test_mm_movepi16_mask(__m128i __A)3132 __mmask8 test_mm_movepi16_mask(__m128i __A) {
3133 // CHECK-LABEL: @test_mm_movepi16_mask
3134 // CHECK: [[CMP:%.*]] = icmp slt <8 x i16> %{{.*}}, zeroinitializer
3135 // CHECK: bitcast <8 x i1> [[CMP]] to i8
3136 return _mm_movepi16_mask(__A);
3137 }
3138
test_mm256_movepi16_mask(__m256i __A)3139 __mmask16 test_mm256_movepi16_mask(__m256i __A) {
3140 // CHECK-LABEL: @test_mm256_movepi16_mask
3141 // CHECK: [[CMP:%.*]] = icmp slt <16 x i16> %{{.*}}, zeroinitializer
3142 // CHECK: bitcast <16 x i1> [[CMP]] to i16
3143 return _mm256_movepi16_mask(__A);
3144 }
3145
test_mm_mask_shufflehi_epi16(__m128i __W,__mmask8 __U,__m128i __A)3146 __m128i test_mm_mask_shufflehi_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
3147 // CHECK-LABEL: @test_mm_mask_shufflehi_epi16
3148 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4>
3149 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3150 return _mm_mask_shufflehi_epi16(__W, __U, __A, 5);
3151 }
3152
test_mm_maskz_shufflehi_epi16(__mmask8 __U,__m128i __A)3153 __m128i test_mm_maskz_shufflehi_epi16(__mmask8 __U, __m128i __A) {
3154 // CHECK-LABEL: @test_mm_maskz_shufflehi_epi16
3155 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4>
3156 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3157 return _mm_maskz_shufflehi_epi16(__U, __A, 5);
3158 }
3159
test_mm_mask_shufflelo_epi16(__m128i __W,__mmask8 __U,__m128i __A)3160 __m128i test_mm_mask_shufflelo_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
3161 // CHECK-LABEL: @test_mm_mask_shufflelo_epi16
3162 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> poison, <8 x i32> <i32 1, i32 1, i32 0, i32 0, i32 4, i32 5, i32 6, i32 7>
3163 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3164 return _mm_mask_shufflelo_epi16(__W, __U, __A, 5);
3165 }
3166
test_mm_maskz_shufflelo_epi16(__mmask8 __U,__m128i __A)3167 __m128i test_mm_maskz_shufflelo_epi16(__mmask8 __U, __m128i __A) {
3168 // CHECK-LABEL: @test_mm_maskz_shufflelo_epi16
3169 // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> poison, <8 x i32> <i32 1, i32 1, i32 0, i32 0, i32 4, i32 5, i32 6, i32 7>
3170 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
3171 return _mm_maskz_shufflelo_epi16(__U, __A, 5);
3172 }
3173
test_mm256_mask_shufflehi_epi16(__m256i __W,__mmask16 __U,__m256i __A)3174 __m256i test_mm256_mask_shufflehi_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
3175 // CHECK-LABEL: @test_mm256_mask_shufflehi_epi16
3176 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> poison, <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>
3177 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3178 return _mm256_mask_shufflehi_epi16(__W, __U, __A, 5);
3179 }
3180
test_mm256_maskz_shufflehi_epi16(__mmask16 __U,__m256i __A)3181 __m256i test_mm256_maskz_shufflehi_epi16(__mmask16 __U, __m256i __A) {
3182 // CHECK-LABEL: @test_mm256_maskz_shufflehi_epi16
3183 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> poison, <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>
3184 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3185 return _mm256_maskz_shufflehi_epi16(__U, __A, 5);
3186 }
3187
test_mm256_mask_shufflelo_epi16(__m256i __W,__mmask16 __U,__m256i __A)3188 __m256i test_mm256_mask_shufflelo_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
3189 // CHECK-LABEL: @test_mm256_mask_shufflelo_epi16
3190 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> poison, <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>
3191 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3192 return _mm256_mask_shufflelo_epi16(__W, __U, __A, 5);
3193 }
3194
test_mm256_maskz_shufflelo_epi16(__mmask16 __U,__m256i __A)3195 __m256i test_mm256_maskz_shufflelo_epi16(__mmask16 __U, __m256i __A) {
3196 // CHECK-LABEL: @test_mm256_maskz_shufflelo_epi16
3197 // CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> poison, <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>
3198 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
3199 return _mm256_maskz_shufflelo_epi16(__U, __A, 5);
3200 }
3201
test_mm_mask_cvtepi16_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)3202 void test_mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
3203 {
3204 // CHECK-LABEL:@test_mm_mask_cvtepi16_storeu_epi8
3205 // CHECK: @llvm.x86.avx512.mask.pmov.wb.mem.128
3206 _mm_mask_cvtepi16_storeu_epi8 (__P, __M, __A);
3207 }
3208
test_mm_mask_cvtsepi16_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)3209 void test_mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
3210 {
3211 // CHECK-LABEL:@test_mm_mask_cvtsepi16_storeu_epi8
3212 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.mem.128
3213 _mm_mask_cvtsepi16_storeu_epi8 ( __P, __M, __A);
3214 }
3215
test_mm_mask_cvtusepi16_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)3216 void test_mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
3217 {
3218 // CHECK-LABEL:@test_mm_mask_cvtusepi16_storeu_epi8
3219 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.mem.128
3220 _mm_mask_cvtusepi16_storeu_epi8 (__P, __M, __A);
3221 }
3222
test_mm256_mask_cvtusepi16_storeu_epi8(void * __P,__mmask16 __M,__m256i __A)3223 void test_mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
3224 {
3225 // CHECK-LABEL:@test_mm256_mask_cvtusepi16_storeu_epi8
3226 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.mem.256
3227 _mm256_mask_cvtusepi16_storeu_epi8 ( __P, __M, __A);
3228 }
3229
test_mm256_mask_cvtepi16_storeu_epi8(void * __P,__mmask16 __M,__m256i __A)3230 void test_mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
3231 {
3232 // CHECK-LABEL:@test_mm256_mask_cvtepi16_storeu_epi8
3233 // CHECK: @llvm.x86.avx512.mask.pmov.wb.mem.256
3234 _mm256_mask_cvtepi16_storeu_epi8 ( __P, __M, __A);
3235 }
3236
test_mm256_mask_cvtsepi16_storeu_epi8(void * __P,__mmask16 __M,__m256i __A)3237 void test_mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
3238 {
3239 // CHECK-LABEL:@test_mm256_mask_cvtsepi16_storeu_epi8
3240 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.mem.256
3241 _mm256_mask_cvtsepi16_storeu_epi8 ( __P, __M, __A);
3242 }
3243