1 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512vl -target-feature +avx512vbmi2 -emit-llvm -o - -Wall -Werror | FileCheck %s
5 __m128i
test_mm_mask_compress_epi16(__m128i __S
, __mmask8 __U
, __m128i __D
) {
6 // CHECK-LABEL: @test_mm_mask_compress_epi16
7 // CHECK: @llvm.x86.avx512.mask.compress
8 return _mm_mask_compress_epi16(__S
, __U
, __D
);
11 __m128i
test_mm_maskz_compress_epi16(__mmask8 __U
, __m128i __D
) {
12 // CHECK-LABEL: @test_mm_maskz_compress_epi16
13 // CHECK: @llvm.x86.avx512.mask.compress
14 return _mm_maskz_compress_epi16(__U
, __D
);
17 __m128i
test_mm_mask_compress_epi8(__m128i __S
, __mmask16 __U
, __m128i __D
) {
18 // CHECK-LABEL: @test_mm_mask_compress_epi8
19 // CHECK: @llvm.x86.avx512.mask.compress
20 return _mm_mask_compress_epi8(__S
, __U
, __D
);
23 __m128i
test_mm_maskz_compress_epi8(__mmask16 __U
, __m128i __D
) {
24 // CHECK-LABEL: @test_mm_maskz_compress_epi8
25 // CHECK: @llvm.x86.avx512.mask.compress
26 return _mm_maskz_compress_epi8(__U
, __D
);
29 void test_mm_mask_compressstoreu_epi16(void *__P
, __mmask8 __U
, __m128i __D
) {
30 // CHECK-LABEL: @test_mm_mask_compressstoreu_epi16
31 // CHECK: @llvm.masked.compressstore.v8i16(<8 x i16> %{{.*}}, ptr %{{.*}}, <8 x i1> %{{.*}})
32 _mm_mask_compressstoreu_epi16(__P
, __U
, __D
);
35 void test_mm_mask_compressstoreu_epi8(void *__P
, __mmask16 __U
, __m128i __D
) {
36 // CHECK-LABEL: @test_mm_mask_compressstoreu_epi8
37 // CHECK: @llvm.masked.compressstore.v16i8(<16 x i8> %{{.*}}, ptr %{{.*}}, <16 x i1> %{{.*}})
38 _mm_mask_compressstoreu_epi8(__P
, __U
, __D
);
41 __m128i
test_mm_mask_expand_epi16(__m128i __S
, __mmask8 __U
, __m128i __D
) {
42 // CHECK-LABEL: @test_mm_mask_expand_epi16
43 // CHECK: @llvm.x86.avx512.mask.expand
44 return _mm_mask_expand_epi16(__S
, __U
, __D
);
47 __m128i
test_mm_maskz_expand_epi16(__mmask8 __U
, __m128i __D
) {
48 // CHECK-LABEL: @test_mm_maskz_expand_epi16
49 // CHECK: @llvm.x86.avx512.mask.expand
50 return _mm_maskz_expand_epi16(__U
, __D
);
53 __m128i
test_mm_mask_expand_epi8(__m128i __S
, __mmask16 __U
, __m128i __D
) {
54 // CHECK-LABEL: @test_mm_mask_expand_epi8
55 // CHECK: @llvm.x86.avx512.mask.expand
56 return _mm_mask_expand_epi8(__S
, __U
, __D
);
59 __m128i
test_mm_maskz_expand_epi8(__mmask16 __U
, __m128i __D
) {
60 // CHECK-LABEL: @test_mm_maskz_expand_epi8
61 // CHECK: @llvm.x86.avx512.mask.expand
62 return _mm_maskz_expand_epi8(__U
, __D
);
65 __m128i
test_mm_mask_expandloadu_epi16(__m128i __S
, __mmask8 __U
, void const* __P
) {
66 // CHECK-LABEL: @test_mm_mask_expandloadu_epi16
67 // CHECK: @llvm.masked.expandload.v8i16(ptr %{{.*}}, <8 x i1> %{{.*}}, <8 x i16> %{{.*}})
68 return _mm_mask_expandloadu_epi16(__S
, __U
, __P
);
71 __m128i
test_mm_maskz_expandloadu_epi16(__mmask8 __U
, void const* __P
) {
72 // CHECK-LABEL: @test_mm_maskz_expandloadu_epi16
73 // CHECK: @llvm.masked.expandload.v8i16(ptr %{{.*}}, <8 x i1> %{{.*}}, <8 x i16> %{{.*}})
74 return _mm_maskz_expandloadu_epi16(__U
, __P
);
77 __m128i
test_mm_mask_expandloadu_epi8(__m128i __S
, __mmask16 __U
, void const* __P
) {
78 // CHECK-LABEL: @test_mm_mask_expandloadu_epi8
79 // CHECK: @llvm.masked.expandload.v16i8(ptr %{{.*}}, <16 x i1> %{{.*}}, <16 x i8> %{{.*}})
80 return _mm_mask_expandloadu_epi8(__S
, __U
, __P
);
83 __m128i
test_mm_maskz_expandloadu_epi8(__mmask16 __U
, void const* __P
) {
84 // CHECK-LABEL: @test_mm_maskz_expandloadu_epi8
85 // CHECK: @llvm.masked.expandload.v16i8(ptr %{{.*}}, <16 x i1> %{{.*}}, <16 x i8> %{{.*}})
86 return _mm_maskz_expandloadu_epi8(__U
, __P
);
89 __m256i
test_mm256_mask_compress_epi16(__m256i __S
, __mmask16 __U
, __m256i __D
) {
90 // CHECK-LABEL: @test_mm256_mask_compress_epi16
91 // CHECK: @llvm.x86.avx512.mask.compress
92 return _mm256_mask_compress_epi16(__S
, __U
, __D
);
95 __m256i
test_mm256_maskz_compress_epi16(__mmask16 __U
, __m256i __D
) {
96 // CHECK-LABEL: @test_mm256_maskz_compress_epi16
97 // CHECK: @llvm.x86.avx512.mask.compress
98 return _mm256_maskz_compress_epi16(__U
, __D
);
101 __m256i
test_mm256_mask_compress_epi8(__m256i __S
, __mmask32 __U
, __m256i __D
) {
102 // CHECK-LABEL: @test_mm256_mask_compress_epi8
103 // CHECK: @llvm.x86.avx512.mask.compress
104 return _mm256_mask_compress_epi8(__S
, __U
, __D
);
107 __m256i
test_mm256_maskz_compress_epi8(__mmask32 __U
, __m256i __D
) {
108 // CHECK-LABEL: @test_mm256_maskz_compress_epi8
109 // CHECK: @llvm.x86.avx512.mask.compress
110 return _mm256_maskz_compress_epi8(__U
, __D
);
113 void test_mm256_mask_compressstoreu_epi16(void *__P
, __mmask16 __U
, __m256i __D
) {
114 // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi16
115 // CHECK: @llvm.masked.compressstore.v16i16(<16 x i16> %{{.*}}, ptr %{{.*}}, <16 x i1> %{{.*}})
116 _mm256_mask_compressstoreu_epi16(__P
, __U
, __D
);
119 void test_mm256_mask_compressstoreu_epi8(void *__P
, __mmask32 __U
, __m256i __D
) {
120 // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi8
121 // CHECK: @llvm.masked.compressstore.v32i8(<32 x i8> %{{.*}}, ptr %{{.*}}, <32 x i1> %{{.*}})
122 _mm256_mask_compressstoreu_epi8(__P
, __U
, __D
);
125 __m256i
test_mm256_mask_expand_epi16(__m256i __S
, __mmask16 __U
, __m256i __D
) {
126 // CHECK-LABEL: @test_mm256_mask_expand_epi16
127 // CHECK: @llvm.x86.avx512.mask.expand
128 return _mm256_mask_expand_epi16(__S
, __U
, __D
);
131 __m256i
test_mm256_maskz_expand_epi16(__mmask16 __U
, __m256i __D
) {
132 // CHECK-LABEL: @test_mm256_maskz_expand_epi16
133 // CHECK: @llvm.x86.avx512.mask.expand
134 return _mm256_maskz_expand_epi16(__U
, __D
);
137 __m256i
test_mm256_mask_expand_epi8(__m256i __S
, __mmask32 __U
, __m256i __D
) {
138 // CHECK-LABEL: @test_mm256_mask_expand_epi8
139 // CHECK: @llvm.x86.avx512.mask.expand
140 return _mm256_mask_expand_epi8(__S
, __U
, __D
);
143 __m256i
test_mm256_maskz_expand_epi8(__mmask32 __U
, __m256i __D
) {
144 // CHECK-LABEL: @test_mm256_maskz_expand_epi8
145 // CHECK: @llvm.x86.avx512.mask.expand
146 return _mm256_maskz_expand_epi8(__U
, __D
);
149 __m256i
test_mm256_mask_expandloadu_epi16(__m256i __S
, __mmask16 __U
, void const* __P
) {
150 // CHECK-LABEL: @test_mm256_mask_expandloadu_epi16
151 // CHECK: @llvm.masked.expandload.v16i16(ptr %{{.*}}, <16 x i1> %{{.*}}, <16 x i16> %{{.*}})
152 return _mm256_mask_expandloadu_epi16(__S
, __U
, __P
);
155 __m256i
test_mm256_maskz_expandloadu_epi16(__mmask16 __U
, void const* __P
) {
156 // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi16
157 // CHECK: @llvm.masked.expandload.v16i16(ptr %{{.*}}, <16 x i1> %{{.*}}, <16 x i16> %{{.*}})
158 return _mm256_maskz_expandloadu_epi16(__U
, __P
);
161 __m256i
test_mm256_mask_expandloadu_epi8(__m256i __S
, __mmask32 __U
, void const* __P
) {
162 // CHECK-LABEL: @test_mm256_mask_expandloadu_epi8
163 // CHECK: @llvm.masked.expandload.v32i8(ptr %{{.*}}, <32 x i1> %{{.*}}, <32 x i8> %{{.*}})
164 return _mm256_mask_expandloadu_epi8(__S
, __U
, __P
);
167 __m256i
test_mm256_maskz_expandloadu_epi8(__mmask32 __U
, void const* __P
) {
168 // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi8
169 // CHECK: @llvm.masked.expandload.v32i8(ptr %{{.*}}, <32 x i1> %{{.*}}, <32 x i8> %{{.*}})
170 return _mm256_maskz_expandloadu_epi8(__U
, __P
);
173 __m256i
test_mm256_mask_shldi_epi64(__m256i __S
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
174 // CHECK-LABEL: @test_mm256_mask_shldi_epi64
175 // CHECK: @llvm.fshl.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> <i64 47, i64 47, i64 47, i64 47>)
176 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
177 return _mm256_mask_shldi_epi64(__S
, __U
, __A
, __B
, 47);
180 __m256i
test_mm256_maskz_shldi_epi64(__mmask8 __U
, __m256i __A
, __m256i __B
) {
181 // CHECK-LABEL: @test_mm256_maskz_shldi_epi64
182 // CHECK: @llvm.fshl.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> <i64 63, i64 63, i64 63, i64 63>)
183 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
184 return _mm256_maskz_shldi_epi64(__U
, __A
, __B
, 63);
187 __m256i
test_mm256_shldi_epi64(__m256i __A
, __m256i __B
) {
188 // CHECK-LABEL: @test_mm256_shldi_epi64
189 // CHECK: @llvm.fshl.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> <i64 31, i64 31, i64 31, i64 31>)
190 return _mm256_shldi_epi64(__A
, __B
, 31);
193 __m128i
test_mm_mask_shldi_epi64(__m128i __S
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
194 // CHECK-LABEL: @test_mm_mask_shldi_epi64
195 // CHECK: @llvm.fshl.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> <i64 47, i64 47>)
196 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
197 return _mm_mask_shldi_epi64(__S
, __U
, __A
, __B
, 47);
200 __m128i
test_mm_maskz_shldi_epi64(__mmask8 __U
, __m128i __A
, __m128i __B
) {
201 // CHECK-LABEL: @test_mm_maskz_shldi_epi64
202 // CHECK: @llvm.fshl.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> <i64 63, i64 63>)
203 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
204 return _mm_maskz_shldi_epi64(__U
, __A
, __B
, 63);
207 __m128i
test_mm_shldi_epi64(__m128i __A
, __m128i __B
) {
208 // CHECK-LABEL: @test_mm_shldi_epi64
209 // CHECK: @llvm.fshl.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> <i64 31, i64 31>)
210 return _mm_shldi_epi64(__A
, __B
, 31);
213 __m256i
test_mm256_mask_shldi_epi32(__m256i __S
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
214 // CHECK-LABEL: @test_mm256_mask_shldi_epi32
215 // CHECK: @llvm.fshl.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7>)
216 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
217 return _mm256_mask_shldi_epi32(__S
, __U
, __A
, __B
, 7);
220 __m256i
test_mm256_maskz_shldi_epi32(__mmask8 __U
, __m256i __A
, __m256i __B
) {
221 // CHECK-LABEL: @test_mm256_maskz_shldi_epi32
222 // CHECK: @llvm.fshl.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15>)
223 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
224 return _mm256_maskz_shldi_epi32(__U
, __A
, __B
, 15);
227 __m256i
test_mm256_shldi_epi32(__m256i __A
, __m256i __B
) {
228 // CHECK-LABEL: @test_mm256_shldi_epi32
229 // CHECK: @llvm.fshl.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31>)
230 return _mm256_shldi_epi32(__A
, __B
, 31);
233 __m128i
test_mm_mask_shldi_epi32(__m128i __S
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
234 // CHECK-LABEL: @test_mm_mask_shldi_epi32
235 // CHECK: @llvm.fshl.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 7, i32 7, i32 7, i32 7>)
236 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
237 return _mm_mask_shldi_epi32(__S
, __U
, __A
, __B
, 7);
240 __m128i
test_mm_maskz_shldi_epi32(__mmask8 __U
, __m128i __A
, __m128i __B
) {
241 // CHECK-LABEL: @test_mm_maskz_shldi_epi32
242 // CHECK: @llvm.fshl.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 15, i32 15, i32 15, i32 15>)
243 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
244 return _mm_maskz_shldi_epi32(__U
, __A
, __B
, 15);
247 __m128i
test_mm_shldi_epi32(__m128i __A
, __m128i __B
) {
248 // CHECK-LABEL: @test_mm_shldi_epi32
249 // CHECK: @llvm.fshl.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 31, i32 31, i32 31, i32 31>)
250 return _mm_shldi_epi32(__A
, __B
, 31);
253 __m256i
test_mm256_mask_shldi_epi16(__m256i __S
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
254 // CHECK-LABEL: @test_mm256_mask_shldi_epi16
255 // CHECK: @llvm.fshl.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> <i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3>)
256 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
257 return _mm256_mask_shldi_epi16(__S
, __U
, __A
, __B
, 3);
260 __m256i
test_mm256_maskz_shldi_epi16(__mmask16 __U
, __m256i __A
, __m256i __B
) {
261 // CHECK-LABEL: @test_mm256_maskz_shldi_epi16
262 // CHECK: @llvm.fshl.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> <i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7>)
263 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
264 return _mm256_maskz_shldi_epi16(__U
, __A
, __B
, 7);
267 __m256i
test_mm256_shldi_epi16(__m256i __A
, __m256i __B
) {
268 // CHECK-LABEL: @test_mm256_shldi_epi16
269 // CHECK: @llvm.fshl.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> <i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31>)
270 return _mm256_shldi_epi16(__A
, __B
, 31);
273 __m128i
test_mm_mask_shldi_epi16(__m128i __S
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
274 // CHECK-LABEL: @test_mm_mask_shldi_epi16
275 // CHECK: @llvm.fshl.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> <i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3>)
276 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
277 return _mm_mask_shldi_epi16(__S
, __U
, __A
, __B
, 3);
280 __m128i
test_mm_maskz_shldi_epi16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
281 // CHECK-LABEL: @test_mm_maskz_shldi_epi16
282 // CHECK: @llvm.fshl.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> <i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7>)
283 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
284 return _mm_maskz_shldi_epi16(__U
, __A
, __B
, 7);
287 __m128i
test_mm_shldi_epi16(__m128i __A
, __m128i __B
) {
288 // CHECK-LABEL: @test_mm_shldi_epi16
289 // CHECK: @llvm.fshl.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> <i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31>)
290 return _mm_shldi_epi16(__A
, __B
, 31);
293 __m256i
test_mm256_mask_shrdi_epi64(__m256i __S
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
294 // CHECK-LABEL: @test_mm256_mask_shrdi_epi64
295 // CHECK: @llvm.fshr.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> <i64 47, i64 47, i64 47, i64 47>)
296 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
297 return _mm256_mask_shrdi_epi64(__S
, __U
, __A
, __B
, 47);
300 __m256i
test_mm256_maskz_shrdi_epi64(__mmask8 __U
, __m256i __A
, __m256i __B
) {
301 // CHECK-LABEL: @test_mm256_maskz_shrdi_epi64
302 // CHECK: @llvm.fshr.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> <i64 63, i64 63, i64 63, i64 63>)
303 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
304 return _mm256_maskz_shrdi_epi64(__U
, __A
, __B
, 63);
307 __m256i
test_mm256_shrdi_epi64(__m256i __A
, __m256i __B
) {
308 // CHECK-LABEL: @test_mm256_shrdi_epi64
309 // CHECK: @llvm.fshr.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> <i64 31, i64 31, i64 31, i64 31>)
310 return _mm256_shrdi_epi64(__A
, __B
, 31);
313 __m128i
test_mm_mask_shrdi_epi64(__m128i __S
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
314 // CHECK-LABEL: @test_mm_mask_shrdi_epi64
315 // CHECK: @llvm.fshr.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> <i64 47, i64 47>)
316 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
317 return _mm_mask_shrdi_epi64(__S
, __U
, __A
, __B
, 47);
320 __m128i
test_mm_maskz_shrdi_epi64(__mmask8 __U
, __m128i __A
, __m128i __B
) {
321 // CHECK-LABEL: @test_mm_maskz_shrdi_epi64
322 // CHECK: @llvm.fshr.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> <i64 63, i64 63>)
323 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
324 return _mm_maskz_shrdi_epi64(__U
, __A
, __B
, 63);
327 __m128i
test_mm_shrdi_epi64(__m128i __A
, __m128i __B
) {
328 // CHECK-LABEL: @test_mm_shrdi_epi64
329 // CHECK: @llvm.fshr.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> <i64 31, i64 31>)
330 return _mm_shrdi_epi64(__A
, __B
, 31);
333 __m256i
test_mm256_mask_shrdi_epi32(__m256i __S
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
334 // CHECK-LABEL: @test_mm256_mask_shrdi_epi32
335 // CHECK: @llvm.fshr.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7>)
336 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
337 return _mm256_mask_shrdi_epi32(__S
, __U
, __A
, __B
, 7);
340 __m256i
test_mm256_maskz_shrdi_epi32(__mmask8 __U
, __m256i __A
, __m256i __B
) {
341 // CHECK-LABEL: @test_mm256_maskz_shrdi_epi32
342 // CHECK: @llvm.fshr.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15>)
343 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
344 return _mm256_maskz_shrdi_epi32(__U
, __A
, __B
, 15);
347 __m256i
test_mm256_shrdi_epi32(__m256i __A
, __m256i __B
) {
348 // CHECK-LABEL: @test_mm256_shrdi_epi32
349 // CHECK: @llvm.fshr.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31>)
350 return _mm256_shrdi_epi32(__A
, __B
, 31);
353 __m128i
test_mm_mask_shrdi_epi32(__m128i __S
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
354 // CHECK-LABEL: @test_mm_mask_shrdi_epi32
355 // CHECK: @llvm.fshr.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 7, i32 7, i32 7, i32 7>)
356 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
357 return _mm_mask_shrdi_epi32(__S
, __U
, __A
, __B
, 7);
360 __m128i
test_mm_maskz_shrdi_epi32(__mmask8 __U
, __m128i __A
, __m128i __B
) {
361 // CHECK-LABEL: @test_mm_maskz_shrdi_epi32
362 // CHECK: @llvm.fshr.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 15, i32 15, i32 15, i32 15>)
363 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
364 return _mm_maskz_shrdi_epi32(__U
, __A
, __B
, 15);
367 __m128i
test_mm_shrdi_epi32(__m128i __A
, __m128i __B
) {
368 // CHECK-LABEL: @test_mm_shrdi_epi32
369 // CHECK: @llvm.fshr.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 31, i32 31, i32 31, i32 31>)
370 return _mm_shrdi_epi32(__A
, __B
, 31);
373 __m256i
test_mm256_mask_shrdi_epi16(__m256i __S
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
374 // CHECK-LABEL: @test_mm256_mask_shrdi_epi16
375 // CHECK: @llvm.fshr.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> <i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3>)
376 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
377 return _mm256_mask_shrdi_epi16(__S
, __U
, __A
, __B
, 3);
380 __m256i
test_mm256_maskz_shrdi_epi16(__mmask16 __U
, __m256i __A
, __m256i __B
) {
381 // CHECK-LABEL: @test_mm256_maskz_shrdi_epi16
382 // CHECK: @llvm.fshr.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> <i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7>)
383 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
384 return _mm256_maskz_shrdi_epi16(__U
, __A
, __B
, 7);
387 __m256i
test_mm256_shrdi_epi16(__m256i __A
, __m256i __B
) {
388 // CHECK-LABEL: @test_mm256_shrdi_epi16
389 // CHECK: @llvm.fshr.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> <i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31>
390 return _mm256_shrdi_epi16(__A
, __B
, 31);
393 __m128i
test_mm_mask_shrdi_epi16(__m128i __S
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
394 // CHECK-LABEL: @test_mm_mask_shrdi_epi16
395 // CHECK: @llvm.fshr.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> <i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3>)
396 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
397 return _mm_mask_shrdi_epi16(__S
, __U
, __A
, __B
, 3);
400 __m128i
test_mm_maskz_shrdi_epi16(__mmask8 __U
, __m128i __A
, __m128i __B
) {
401 // CHECK-LABEL: @test_mm_maskz_shrdi_epi16
402 // CHECK: @llvm.fshr.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> <i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7>)
403 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
404 return _mm_maskz_shrdi_epi16(__U
, __A
, __B
, 7);
407 __m128i
test_mm_shrdi_epi16(__m128i __A
, __m128i __B
) {
408 // CHECK-LABEL: @test_mm_shrdi_epi16
409 // CHECK: @llvm.fshr.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> <i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31, i16 31>)
410 return _mm_shrdi_epi16(__A
, __B
, 31);
413 __m256i
test_mm256_mask_shldv_epi64(__m256i __S
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
414 // CHECK-LABEL: @test_mm256_mask_shldv_epi64
415 // CHECK: @llvm.fshl.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
416 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
417 return _mm256_mask_shldv_epi64(__S
, __U
, __A
, __B
);
420 __m256i
test_mm256_maskz_shldv_epi64(__mmask8 __U
, __m256i __S
, __m256i __A
, __m256i __B
) {
421 // CHECK-LABEL: @test_mm256_maskz_shldv_epi64
422 // CHECK: @llvm.fshl.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
423 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
424 return _mm256_maskz_shldv_epi64(__U
, __S
, __A
, __B
);
427 __m256i
test_mm256_shldv_epi64(__m256i __S
, __m256i __A
, __m256i __B
) {
428 // CHECK-LABEL: @test_mm256_shldv_epi64
429 // CHECK: @llvm.fshl.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
430 return _mm256_shldv_epi64(__S
, __A
, __B
);
433 __m128i
test_mm_mask_shldv_epi64(__m128i __S
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
434 // CHECK-LABEL: @test_mm_mask_shldv_epi64
435 // CHECK: @llvm.fshl.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
436 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
437 return _mm_mask_shldv_epi64(__S
, __U
, __A
, __B
);
440 __m128i
test_mm_maskz_shldv_epi64(__mmask8 __U
, __m128i __S
, __m128i __A
, __m128i __B
) {
441 // CHECK-LABEL: @test_mm_maskz_shldv_epi64
442 // CHECK: @llvm.fshl.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
443 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
444 return _mm_maskz_shldv_epi64(__U
, __S
, __A
, __B
);
447 __m128i
test_mm_shldv_epi64(__m128i __S
, __m128i __A
, __m128i __B
) {
448 // CHECK-LABEL: @test_mm_shldv_epi64
449 // CHECK: @llvm.fshl.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
450 return _mm_shldv_epi64(__S
, __A
, __B
);
453 __m256i
test_mm256_mask_shldv_epi32(__m256i __S
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
454 // CHECK-LABEL: @test_mm256_mask_shldv_epi32
455 // CHECK: @llvm.fshl.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
456 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
457 return _mm256_mask_shldv_epi32(__S
, __U
, __A
, __B
);
460 __m256i
test_mm256_maskz_shldv_epi32(__mmask8 __U
, __m256i __S
, __m256i __A
, __m256i __B
) {
461 // CHECK-LABEL: @test_mm256_maskz_shldv_epi32
462 // CHECK: @llvm.fshl.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
463 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
464 return _mm256_maskz_shldv_epi32(__U
, __S
, __A
, __B
);
467 __m256i
test_mm256_shldv_epi32(__m256i __S
, __m256i __A
, __m256i __B
) {
468 // CHECK-LABEL: @test_mm256_shldv_epi32
469 // CHECK: @llvm.fshl.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
470 return _mm256_shldv_epi32(__S
, __A
, __B
);
473 __m128i
test_mm_mask_shldv_epi32(__m128i __S
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
474 // CHECK-LABEL: @test_mm_mask_shldv_epi32
475 // CHECK: @llvm.fshl.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
476 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
477 return _mm_mask_shldv_epi32(__S
, __U
, __A
, __B
);
480 __m128i
test_mm_maskz_shldv_epi32(__mmask8 __U
, __m128i __S
, __m128i __A
, __m128i __B
) {
481 // CHECK-LABEL: @test_mm_maskz_shldv_epi32
482 // CHECK: @llvm.fshl.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
483 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
484 return _mm_maskz_shldv_epi32(__U
, __S
, __A
, __B
);
487 __m128i
test_mm_shldv_epi32(__m128i __S
, __m128i __A
, __m128i __B
) {
488 // CHECK-LABEL: @test_mm_shldv_epi32
489 // CHECK: @llvm.fshl.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
490 return _mm_shldv_epi32(__S
, __A
, __B
);
493 __m256i
test_mm256_mask_shldv_epi16(__m256i __S
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
494 // CHECK-LABEL: @test_mm256_mask_shldv_epi16
495 // CHECK: @llvm.fshl.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}})
496 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
497 return _mm256_mask_shldv_epi16(__S
, __U
, __A
, __B
);
500 __m256i
test_mm256_maskz_shldv_epi16(__mmask16 __U
, __m256i __S
, __m256i __A
, __m256i __B
) {
501 // CHECK-LABEL: @test_mm256_maskz_shldv_epi16
502 // CHECK: @llvm.fshl.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}})
503 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
504 return _mm256_maskz_shldv_epi16(__U
, __S
, __A
, __B
);
507 __m256i
test_mm256_shldv_epi16(__m256i __S
, __m256i __A
, __m256i __B
) {
508 // CHECK-LABEL: @test_mm256_shldv_epi16
509 // CHECK: @llvm.fshl.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}})
510 return _mm256_shldv_epi16(__S
, __A
, __B
);
513 __m128i
test_mm_mask_shldv_epi16(__m128i __S
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
514 // CHECK-LABEL: @test_mm_mask_shldv_epi16
515 // CHECK: @llvm.fshl.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}})
516 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
517 return _mm_mask_shldv_epi16(__S
, __U
, __A
, __B
);
520 __m128i
test_mm_maskz_shldv_epi16(__mmask8 __U
, __m128i __S
, __m128i __A
, __m128i __B
) {
521 // CHECK-LABEL: @test_mm_maskz_shldv_epi16
522 // CHECK: @llvm.fshl.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}})
523 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
524 return _mm_maskz_shldv_epi16(__U
, __S
, __A
, __B
);
527 __m128i
test_mm_shldv_epi16(__m128i __S
, __m128i __A
, __m128i __B
) {
528 // CHECK-LABEL: @test_mm_shldv_epi16
529 // CHECK: @llvm.fshl.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}})
530 return _mm_shldv_epi16(__S
, __A
, __B
);
533 __m256i
test_mm256_mask_shrdv_epi64(__m256i __S
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
534 // CHECK-LABEL: @test_mm256_mask_shrdv_epi64
535 // CHECK: @llvm.fshr.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
536 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
537 return _mm256_mask_shrdv_epi64(__S
, __U
, __A
, __B
);
540 __m256i
test_mm256_maskz_shrdv_epi64(__mmask8 __U
, __m256i __S
, __m256i __A
, __m256i __B
) {
541 // CHECK-LABEL: @test_mm256_maskz_shrdv_epi64
542 // CHECK: @llvm.fshr.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
543 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
544 return _mm256_maskz_shrdv_epi64(__U
, __S
, __A
, __B
);
547 __m256i
test_mm256_shrdv_epi64(__m256i __S
, __m256i __A
, __m256i __B
) {
548 // CHECK-LABEL: @test_mm256_shrdv_epi64
549 // CHECK: @llvm.fshr.v4i64(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
550 return _mm256_shrdv_epi64(__S
, __A
, __B
);
553 __m128i
test_mm_mask_shrdv_epi64(__m128i __S
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
554 // CHECK-LABEL: @test_mm_mask_shrdv_epi64
555 // CHECK: @llvm.fshr.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
556 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
557 return _mm_mask_shrdv_epi64(__S
, __U
, __A
, __B
);
560 __m128i
test_mm_maskz_shrdv_epi64(__mmask8 __U
, __m128i __S
, __m128i __A
, __m128i __B
) {
561 // CHECK-LABEL: @test_mm_maskz_shrdv_epi64
562 // CHECK: @llvm.fshr.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
563 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
564 return _mm_maskz_shrdv_epi64(__U
, __S
, __A
, __B
);
567 __m128i
test_mm_shrdv_epi64(__m128i __S
, __m128i __A
, __m128i __B
) {
568 // CHECK-LABEL: @test_mm_shrdv_epi64
569 // CHECK: @llvm.fshr.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
570 return _mm_shrdv_epi64(__S
, __A
, __B
);
573 __m256i
test_mm256_mask_shrdv_epi32(__m256i __S
, __mmask8 __U
, __m256i __A
, __m256i __B
) {
574 // CHECK-LABEL: @test_mm256_mask_shrdv_epi32
575 // CHECK: @llvm.fshr.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
576 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
577 return _mm256_mask_shrdv_epi32(__S
, __U
, __A
, __B
);
580 __m256i
test_mm256_maskz_shrdv_epi32(__mmask8 __U
, __m256i __S
, __m256i __A
, __m256i __B
) {
581 // CHECK-LABEL: @test_mm256_maskz_shrdv_epi32
582 // CHECK: @llvm.fshr.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
583 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
584 return _mm256_maskz_shrdv_epi32(__U
, __S
, __A
, __B
);
587 __m256i
test_mm256_shrdv_epi32(__m256i __S
, __m256i __A
, __m256i __B
) {
588 // CHECK-LABEL: @test_mm256_shrdv_epi32
589 // CHECK: @llvm.fshr.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
590 return _mm256_shrdv_epi32(__S
, __A
, __B
);
593 __m128i
test_mm_mask_shrdv_epi32(__m128i __S
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
594 // CHECK-LABEL: @test_mm_mask_shrdv_epi32
595 // CHECK: @llvm.fshr.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
596 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
597 return _mm_mask_shrdv_epi32(__S
, __U
, __A
, __B
);
600 __m128i
test_mm_maskz_shrdv_epi32(__mmask8 __U
, __m128i __S
, __m128i __A
, __m128i __B
) {
601 // CHECK-LABEL: @test_mm_maskz_shrdv_epi32
602 // CHECK: @llvm.fshr.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
603 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
604 return _mm_maskz_shrdv_epi32(__U
, __S
, __A
, __B
);
607 __m128i
test_mm_shrdv_epi32(__m128i __S
, __m128i __A
, __m128i __B
) {
608 // CHECK-LABEL: @test_mm_shrdv_epi32
609 // CHECK: @llvm.fshr.v4i32(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
610 return _mm_shrdv_epi32(__S
, __A
, __B
);
613 __m256i
test_mm256_mask_shrdv_epi16(__m256i __S
, __mmask16 __U
, __m256i __A
, __m256i __B
) {
614 // CHECK-LABEL: @test_mm256_mask_shrdv_epi16
615 // CHECK: @llvm.fshr.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}})
616 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
617 return _mm256_mask_shrdv_epi16(__S
, __U
, __A
, __B
);
620 __m256i
test_mm256_maskz_shrdv_epi16(__mmask16 __U
, __m256i __S
, __m256i __A
, __m256i __B
) {
621 // CHECK-LABEL: @test_mm256_maskz_shrdv_epi16
622 // CHECK: @llvm.fshr.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}})
623 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
624 return _mm256_maskz_shrdv_epi16(__U
, __S
, __A
, __B
);
627 __m256i
test_mm256_shrdv_epi16(__m256i __S
, __m256i __A
, __m256i __B
) {
628 // CHECK-LABEL: @test_mm256_shrdv_epi16
629 // CHECK: @llvm.fshr.v16i16(<16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}})
630 return _mm256_shrdv_epi16(__S
, __A
, __B
);
633 __m128i
test_mm_mask_shrdv_epi16(__m128i __S
, __mmask8 __U
, __m128i __A
, __m128i __B
) {
634 // CHECK-LABEL: @test_mm_mask_shrdv_epi16
635 // CHECK: @llvm.fshr.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}})
636 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
637 return _mm_mask_shrdv_epi16(__S
, __U
, __A
, __B
);
640 __m128i
test_mm_maskz_shrdv_epi16(__mmask8 __U
, __m128i __S
, __m128i __A
, __m128i __B
) {
641 // CHECK-LABEL: @test_mm_maskz_shrdv_epi16
642 // CHECK: @llvm.fshr.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}})
643 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
644 return _mm_maskz_shrdv_epi16(__U
, __S
, __A
, __B
);
647 __m128i
test_mm_shrdv_epi16(__m128i __S
, __m128i __A
, __m128i __B
) {
648 // CHECK-LABEL: @test_mm_shrdv_epi16
649 // CHECK: @llvm.fshr.v8i16(<8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}})
650 return _mm_shrdv_epi16(__S
, __A
, __B
);