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
2
3 #include <immintrin.h>
4
test_mm_mask_compress_epi16(__m128i __S,__mmask8 __U,__m128i __D)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);
9 }
10
test_mm_maskz_compress_epi16(__mmask8 __U,__m128i __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);
15 }
16
test_mm_mask_compress_epi8(__m128i __S,__mmask16 __U,__m128i __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);
21 }
22
test_mm_maskz_compress_epi8(__mmask16 __U,__m128i __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);
27 }
28
test_mm_mask_compressstoreu_epi16(void * __P,__mmask8 __U,__m128i __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> %{{.*}}, i16* %{{.*}}, <8 x i1> %{{.*}})
32 _mm_mask_compressstoreu_epi16(__P, __U, __D);
33 }
34
test_mm_mask_compressstoreu_epi8(void * __P,__mmask16 __U,__m128i __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> %{{.*}}, i8* %{{.*}}, <16 x i1> %{{.*}})
38 _mm_mask_compressstoreu_epi8(__P, __U, __D);
39 }
40
test_mm_mask_expand_epi16(__m128i __S,__mmask8 __U,__m128i __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);
45 }
46
test_mm_maskz_expand_epi16(__mmask8 __U,__m128i __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);
51 }
52
test_mm_mask_expand_epi8(__m128i __S,__mmask16 __U,__m128i __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);
57 }
58
test_mm_maskz_expand_epi8(__mmask16 __U,__m128i __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);
63 }
64
test_mm_mask_expandloadu_epi16(__m128i __S,__mmask8 __U,void const * __P)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(i16* %{{.*}}, <8 x i1> %{{.*}}, <8 x i16> %{{.*}})
68 return _mm_mask_expandloadu_epi16(__S, __U, __P);
69 }
70
test_mm_maskz_expandloadu_epi16(__mmask8 __U,void const * __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(i16* %{{.*}}, <8 x i1> %{{.*}}, <8 x i16> %{{.*}})
74 return _mm_maskz_expandloadu_epi16(__U, __P);
75 }
76
test_mm_mask_expandloadu_epi8(__m128i __S,__mmask16 __U,void const * __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(i8* %{{.*}}, <16 x i1> %{{.*}}, <16 x i8> %{{.*}})
80 return _mm_mask_expandloadu_epi8(__S, __U, __P);
81 }
82
test_mm_maskz_expandloadu_epi8(__mmask16 __U,void const * __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(i8* %{{.*}}, <16 x i1> %{{.*}}, <16 x i8> %{{.*}})
86 return _mm_maskz_expandloadu_epi8(__U, __P);
87 }
88
test_mm256_mask_compress_epi16(__m256i __S,__mmask16 __U,__m256i __D)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);
93 }
94
test_mm256_maskz_compress_epi16(__mmask16 __U,__m256i __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);
99 }
100
test_mm256_mask_compress_epi8(__m256i __S,__mmask32 __U,__m256i __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);
105 }
106
test_mm256_maskz_compress_epi8(__mmask32 __U,__m256i __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);
111 }
112
test_mm256_mask_compressstoreu_epi16(void * __P,__mmask16 __U,__m256i __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> %{{.*}}, i16* %{{.*}}, <16 x i1> %{{.*}})
116 _mm256_mask_compressstoreu_epi16(__P, __U, __D);
117 }
118
test_mm256_mask_compressstoreu_epi8(void * __P,__mmask32 __U,__m256i __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> %{{.*}}, i8* %{{.*}}, <32 x i1> %{{.*}})
122 _mm256_mask_compressstoreu_epi8(__P, __U, __D);
123 }
124
test_mm256_mask_expand_epi16(__m256i __S,__mmask16 __U,__m256i __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);
129 }
130
test_mm256_maskz_expand_epi16(__mmask16 __U,__m256i __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);
135 }
136
test_mm256_mask_expand_epi8(__m256i __S,__mmask32 __U,__m256i __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);
141 }
142
test_mm256_maskz_expand_epi8(__mmask32 __U,__m256i __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);
147 }
148
test_mm256_mask_expandloadu_epi16(__m256i __S,__mmask16 __U,void const * __P)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(i16* %{{.*}}, <16 x i1> %{{.*}}, <16 x i16> %{{.*}})
152 return _mm256_mask_expandloadu_epi16(__S, __U, __P);
153 }
154
test_mm256_maskz_expandloadu_epi16(__mmask16 __U,void const * __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(i16* %{{.*}}, <16 x i1> %{{.*}}, <16 x i16> %{{.*}})
158 return _mm256_maskz_expandloadu_epi16(__U, __P);
159 }
160
test_mm256_mask_expandloadu_epi8(__m256i __S,__mmask32 __U,void const * __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(i8* %{{.*}}, <32 x i1> %{{.*}}, <32 x i8> %{{.*}})
164 return _mm256_mask_expandloadu_epi8(__S, __U, __P);
165 }
166
test_mm256_maskz_expandloadu_epi8(__mmask32 __U,void const * __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(i8* %{{.*}}, <32 x i1> %{{.*}}, <32 x i8> %{{.*}})
170 return _mm256_maskz_expandloadu_epi8(__U, __P);
171 }
172
test_mm256_mask_shldi_epi64(__m256i __S,__mmask8 __U,__m256i __A,__m256i __B)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);
178 }
179
test_mm256_maskz_shldi_epi64(__mmask8 __U,__m256i __A,__m256i __B)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);
185 }
186
test_mm256_shldi_epi64(__m256i __A,__m256i __B)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);
191 }
192
test_mm_mask_shldi_epi64(__m128i __S,__mmask8 __U,__m128i __A,__m128i __B)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);
198 }
199
test_mm_maskz_shldi_epi64(__mmask8 __U,__m128i __A,__m128i __B)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);
205 }
206
test_mm_shldi_epi64(__m128i __A,__m128i __B)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);
211 }
212
test_mm256_mask_shldi_epi32(__m256i __S,__mmask8 __U,__m256i __A,__m256i __B)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);
218 }
219
test_mm256_maskz_shldi_epi32(__mmask8 __U,__m256i __A,__m256i __B)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);
225 }
226
test_mm256_shldi_epi32(__m256i __A,__m256i __B)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);
231 }
232
test_mm_mask_shldi_epi32(__m128i __S,__mmask8 __U,__m128i __A,__m128i __B)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);
238 }
239
test_mm_maskz_shldi_epi32(__mmask8 __U,__m128i __A,__m128i __B)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);
245 }
246
test_mm_shldi_epi32(__m128i __A,__m128i __B)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);
251 }
252
test_mm256_mask_shldi_epi16(__m256i __S,__mmask16 __U,__m256i __A,__m256i __B)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);
258 }
259
test_mm256_maskz_shldi_epi16(__mmask16 __U,__m256i __A,__m256i __B)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);
265 }
266
test_mm256_shldi_epi16(__m256i __A,__m256i __B)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);
271 }
272
test_mm_mask_shldi_epi16(__m128i __S,__mmask8 __U,__m128i __A,__m128i __B)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);
278 }
279
test_mm_maskz_shldi_epi16(__mmask8 __U,__m128i __A,__m128i __B)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);
285 }
286
test_mm_shldi_epi16(__m128i __A,__m128i __B)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);
291 }
292
test_mm256_mask_shrdi_epi64(__m256i __S,__mmask8 __U,__m256i __A,__m256i __B)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);
298 }
299
test_mm256_maskz_shrdi_epi64(__mmask8 __U,__m256i __A,__m256i __B)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);
305 }
306
test_mm256_shrdi_epi64(__m256i __A,__m256i __B)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);
311 }
312
test_mm_mask_shrdi_epi64(__m128i __S,__mmask8 __U,__m128i __A,__m128i __B)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);
318 }
319
test_mm_maskz_shrdi_epi64(__mmask8 __U,__m128i __A,__m128i __B)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);
325 }
326
test_mm_shrdi_epi64(__m128i __A,__m128i __B)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);
331 }
332
test_mm256_mask_shrdi_epi32(__m256i __S,__mmask8 __U,__m256i __A,__m256i __B)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);
338 }
339
test_mm256_maskz_shrdi_epi32(__mmask8 __U,__m256i __A,__m256i __B)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);
345 }
346
test_mm256_shrdi_epi32(__m256i __A,__m256i __B)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);
351 }
352
test_mm_mask_shrdi_epi32(__m128i __S,__mmask8 __U,__m128i __A,__m128i __B)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);
358 }
359
test_mm_maskz_shrdi_epi32(__mmask8 __U,__m128i __A,__m128i __B)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);
365 }
366
test_mm_shrdi_epi32(__m128i __A,__m128i __B)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);
371 }
372
test_mm256_mask_shrdi_epi16(__m256i __S,__mmask16 __U,__m256i __A,__m256i __B)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);
378 }
379
test_mm256_maskz_shrdi_epi16(__mmask16 __U,__m256i __A,__m256i __B)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);
385 }
386
test_mm256_shrdi_epi16(__m256i __A,__m256i __B)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);
391 }
392
test_mm_mask_shrdi_epi16(__m128i __S,__mmask8 __U,__m128i __A,__m128i __B)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);
398 }
399
test_mm_maskz_shrdi_epi16(__mmask8 __U,__m128i __A,__m128i __B)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);
405 }
406
test_mm_shrdi_epi16(__m128i __A,__m128i __B)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);
411 }
412
test_mm256_mask_shldv_epi64(__m256i __S,__mmask8 __U,__m256i __A,__m256i __B)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);
418 }
419
test_mm256_maskz_shldv_epi64(__mmask8 __U,__m256i __S,__m256i __A,__m256i __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);
425 }
426
test_mm256_shldv_epi64(__m256i __S,__m256i __A,__m256i __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);
431 }
432
test_mm_mask_shldv_epi64(__m128i __S,__mmask8 __U,__m128i __A,__m128i __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);
438 }
439
test_mm_maskz_shldv_epi64(__mmask8 __U,__m128i __S,__m128i __A,__m128i __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);
445 }
446
test_mm_shldv_epi64(__m128i __S,__m128i __A,__m128i __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);
451 }
452
test_mm256_mask_shldv_epi32(__m256i __S,__mmask8 __U,__m256i __A,__m256i __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);
458 }
459
test_mm256_maskz_shldv_epi32(__mmask8 __U,__m256i __S,__m256i __A,__m256i __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);
465 }
466
test_mm256_shldv_epi32(__m256i __S,__m256i __A,__m256i __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);
471 }
472
test_mm_mask_shldv_epi32(__m128i __S,__mmask8 __U,__m128i __A,__m128i __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);
478 }
479
test_mm_maskz_shldv_epi32(__mmask8 __U,__m128i __S,__m128i __A,__m128i __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);
485 }
486
test_mm_shldv_epi32(__m128i __S,__m128i __A,__m128i __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);
491 }
492
test_mm256_mask_shldv_epi16(__m256i __S,__mmask16 __U,__m256i __A,__m256i __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);
498 }
499
test_mm256_maskz_shldv_epi16(__mmask16 __U,__m256i __S,__m256i __A,__m256i __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);
505 }
506
test_mm256_shldv_epi16(__m256i __S,__m256i __A,__m256i __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);
511 }
512
test_mm_mask_shldv_epi16(__m128i __S,__mmask8 __U,__m128i __A,__m128i __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);
518 }
519
test_mm_maskz_shldv_epi16(__mmask8 __U,__m128i __S,__m128i __A,__m128i __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);
525 }
526
test_mm_shldv_epi16(__m128i __S,__m128i __A,__m128i __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);
531 }
532
test_mm256_mask_shrdv_epi64(__m256i __S,__mmask8 __U,__m256i __A,__m256i __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);
538 }
539
test_mm256_maskz_shrdv_epi64(__mmask8 __U,__m256i __S,__m256i __A,__m256i __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);
545 }
546
test_mm256_shrdv_epi64(__m256i __S,__m256i __A,__m256i __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);
551 }
552
test_mm_mask_shrdv_epi64(__m128i __S,__mmask8 __U,__m128i __A,__m128i __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);
558 }
559
test_mm_maskz_shrdv_epi64(__mmask8 __U,__m128i __S,__m128i __A,__m128i __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);
565 }
566
test_mm_shrdv_epi64(__m128i __S,__m128i __A,__m128i __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);
571 }
572
test_mm256_mask_shrdv_epi32(__m256i __S,__mmask8 __U,__m256i __A,__m256i __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);
578 }
579
test_mm256_maskz_shrdv_epi32(__mmask8 __U,__m256i __S,__m256i __A,__m256i __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);
585 }
586
test_mm256_shrdv_epi32(__m256i __S,__m256i __A,__m256i __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);
591 }
592
test_mm_mask_shrdv_epi32(__m128i __S,__mmask8 __U,__m128i __A,__m128i __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);
598 }
599
test_mm_maskz_shrdv_epi32(__mmask8 __U,__m128i __S,__m128i __A,__m128i __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);
605 }
606
test_mm_shrdv_epi32(__m128i __S,__m128i __A,__m128i __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);
611 }
612
test_mm256_mask_shrdv_epi16(__m256i __S,__mmask16 __U,__m256i __A,__m256i __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);
618 }
619
test_mm256_maskz_shrdv_epi16(__mmask16 __U,__m256i __S,__m256i __A,__m256i __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);
625 }
626
test_mm256_shrdv_epi16(__m256i __S,__m256i __A,__m256i __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);
631 }
632
test_mm_mask_shrdv_epi16(__m128i __S,__mmask8 __U,__m128i __A,__m128i __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);
638 }
639
test_mm_maskz_shrdv_epi16(__mmask8 __U,__m128i __S,__m128i __A,__m128i __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);
645 }
646
test_mm_shrdv_epi16(__m128i __S,__m128i __A,__m128i __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);
651 }
652
653