1 /* PR target/79299 */
2 /* { dg-do assemble { target avx512vl } } */
3 /* { dg-require-effective-target masm_intel } */
4 /* { dg-options "-Ofast -mavx512vl -masm=intel" } */
5 
6 #include <immintrin.h>
7 
8 __m512
f1(__m512i x,void const * y)9 f1 (__m512i x, void const *y)
10 {
11   return _mm512_i32gather_ps (x, y, 1);
12 }
13 
14 __m512
f2(__m512 x,__mmask16 y,__m512i z,void const * w)15 f2 (__m512 x, __mmask16 y, __m512i z, void const *w)
16 {
17   return _mm512_mask_i32gather_ps (x, y, z, w, 1);
18 }
19 
20 __m512d
f3(__m256i x,void const * y)21 f3 (__m256i x, void const *y)
22 {
23   return _mm512_i32gather_pd (x, y, 1);
24 }
25 
26 __m512d
f4(__m512d x,__mmask8 y,__m256i z,void const * w)27 f4 (__m512d x, __mmask8 y, __m256i z, void const *w)
28 {
29   return _mm512_mask_i32gather_pd (x, y, z, w, 1);
30 }
31 
32 __m256
f5(__m512i x,void const * y)33 f5 (__m512i x, void const *y)
34 {
35   return _mm512_i64gather_ps (x, y, 1);
36 }
37 
38 __m256
f6(__m256 x,__mmask16 y,__m512i z,void const * w)39 f6 (__m256 x, __mmask16 y, __m512i z, void const *w)
40 {
41   return _mm512_mask_i64gather_ps (x, y, z, w, 1);
42 }
43 
44 __m512d
f7(__m512i x,void const * y)45 f7 (__m512i x, void const *y)
46 {
47   return _mm512_i64gather_pd (x, y, 1);
48 }
49 
50 __m512d
f8(__m512d x,__mmask8 y,__m512i z,void const * w)51 f8 (__m512d x, __mmask8 y, __m512i z, void const *w)
52 {
53   return _mm512_mask_i64gather_pd (x, y, z, w, 1);
54 }
55 
56 __m512i
f9(__m512i x,void const * y)57 f9 (__m512i x, void const *y)
58 {
59   return _mm512_i32gather_epi32 (x, y, 1);
60 }
61 
62 __m512i
f10(__m512i x,__mmask16 y,__m512i z,void const * w)63 f10 (__m512i x, __mmask16 y, __m512i z, void const *w)
64 {
65   return _mm512_mask_i32gather_epi32 (x, y, z, w, 1);
66 }
67 
68 __m512i
f11(__m256i x,void const * y)69 f11 (__m256i x, void const *y)
70 {
71   return _mm512_i32gather_epi64 (x, y, 1);
72 }
73 
74 __m512i
f12(__m512i x,__mmask8 y,__m256i z,void const * w)75 f12 (__m512i x, __mmask8 y, __m256i z, void const *w)
76 {
77   return _mm512_mask_i32gather_epi64 (x, y, z, w, 1);
78 }
79 
80 __m256i
f13(__m512i x,void const * y)81 f13 (__m512i x, void const *y)
82 {
83   return _mm512_i64gather_epi32 (x, y, 1);
84 }
85 
86 __m256i
f14(__m256i x,__mmask16 y,__m512i z,void const * w)87 f14 (__m256i x, __mmask16 y, __m512i z, void const *w)
88 {
89   return _mm512_mask_i64gather_epi32 (x, y, z, w, 1);
90 }
91 
92 __m512i
f15(__m512i x,void const * y)93 f15 (__m512i x, void const *y)
94 {
95   return _mm512_i64gather_epi64 (x, y, 1);
96 }
97 
98 __m512i
f16(__m512i x,__mmask8 y,__m512i z,void const * w)99 f16 (__m512i x, __mmask8 y, __m512i z, void const *w)
100 {
101   return _mm512_mask_i64gather_epi64 (x, y, z, w, 1);
102 }
103 
104 __m256
f17(__m256 x,__mmask8 y,__m256i z,void const * w)105 f17 (__m256 x, __mmask8 y, __m256i z, void const *w)
106 {
107   return _mm256_mmask_i32gather_ps (x, y, z, w, 1);
108 }
109 
110 __m128
f18(__m128 x,__mmask8 y,__m128i z,void const * w)111 f18 (__m128 x, __mmask8 y, __m128i z, void const *w)
112 {
113   return _mm_mmask_i32gather_ps (x, y, z, w, 1);
114 }
115 
116 __m256d
f19(__m256d x,__mmask8 y,__m128i z,void const * w)117 f19 (__m256d x, __mmask8 y, __m128i z, void const *w)
118 {
119   return _mm256_mmask_i32gather_pd (x, y, z, w, 1);
120 }
121 
122 __m128d
f20(__m128d x,__mmask8 y,__m128i z,void const * w)123 f20 (__m128d x, __mmask8 y, __m128i z, void const *w)
124 {
125   return _mm_mmask_i32gather_pd (x, y, z, w, 1);
126 }
127 
128 __m128
f21(__m128 x,__mmask8 y,__m256i z,void const * w)129 f21 (__m128 x, __mmask8 y, __m256i z, void const *w)
130 {
131   return _mm256_mmask_i64gather_ps (x, y, z, w, 1);
132 }
133 
134 __m128
f22(__m128 x,__mmask8 y,__m128i z,void const * w)135 f22 (__m128 x, __mmask8 y, __m128i z, void const *w)
136 {
137   return _mm_mmask_i64gather_ps (x, y, z, w, 1);
138 }
139 
140 __m256d
f23(__m256d x,__mmask8 y,__m256i z,void const * w)141 f23 (__m256d x, __mmask8 y, __m256i z, void const *w)
142 {
143   return _mm256_mmask_i64gather_pd (x, y, z, w, 1);
144 }
145 
146 __m128d
f24(__m128d x,__mmask8 y,__m128i z,void const * w)147 f24 (__m128d x, __mmask8 y, __m128i z, void const *w)
148 {
149   return _mm_mmask_i64gather_pd (x, y, z, w, 1);
150 }
151 
152 __m256i
f25(__m256i x,__mmask8 y,__m256i z,void const * w)153 f25 (__m256i x, __mmask8 y, __m256i z, void const *w)
154 {
155   return _mm256_mmask_i32gather_epi32 (x, y, z, w, 1);
156 }
157 
158 __m128i
f26(__m128i x,__mmask8 y,__m128i z,void const * w)159 f26 (__m128i x, __mmask8 y, __m128i z, void const *w)
160 {
161   return _mm_mmask_i32gather_epi32 (x, y, z, w, 1);
162 }
163 
164 __m256i
f27(__m256i x,__mmask8 y,__m128i z,void const * w)165 f27 (__m256i x, __mmask8 y, __m128i z, void const *w)
166 {
167   return _mm256_mmask_i32gather_epi64 (x, y, z, w, 1);
168 }
169 
170 __m128i
f28(__m128i x,__mmask8 y,__m128i z,void const * w)171 f28 (__m128i x, __mmask8 y, __m128i z, void const *w)
172 {
173   return _mm_mmask_i32gather_epi64 (x, y, z, w, 1);
174 }
175 
176 __m128i
f29(__m128i x,__mmask8 y,__m256i z,void const * w)177 f29 (__m128i x, __mmask8 y, __m256i z, void const *w)
178 {
179   return _mm256_mmask_i64gather_epi32 (x, y, z, w, 1);
180 }
181 
182 __m128i
f30(__m128i x,__mmask8 y,__m128i z,void const * w)183 f30 (__m128i x, __mmask8 y, __m128i z, void const *w)
184 {
185   return _mm_mmask_i64gather_epi32 (x, y, z, w, 1);
186 }
187 
188 __m256i
f31(__m256i x,__mmask8 y,__m256i z,void const * w)189 f31 (__m256i x, __mmask8 y, __m256i z, void const *w)
190 {
191   return _mm256_mmask_i64gather_epi64 (x, y, z, w, 1);
192 }
193 
194 __m128i
f32(__m128i x,__mmask8 y,__m128i z,void const * w)195 f32 (__m128i x, __mmask8 y, __m128i z, void const *w)
196 {
197   return _mm_mmask_i64gather_epi64 (x, y, z, w, 1);
198 }
199 
200 __m256
f33(__m256 x,__m256i z,void const * w)201 f33 (__m256 x, __m256i z, void const *w)
202 {
203   return _mm256_mmask_i32gather_ps (x, -1, z, w, 1);
204 }
205 
206 __m128
f34(__m128 x,__m128i z,void const * w)207 f34 (__m128 x, __m128i z, void const *w)
208 {
209   return _mm_mmask_i32gather_ps (x, -1, z, w, 1);
210 }
211 
212 __m256d
f35(__m256d x,__m128i z,void const * w)213 f35 (__m256d x, __m128i z, void const *w)
214 {
215   return _mm256_mmask_i32gather_pd (x, -1, z, w, 1);
216 }
217 
218 __m128d
f36(__m128d x,__m128i z,void const * w)219 f36 (__m128d x, __m128i z, void const *w)
220 {
221   return _mm_mmask_i32gather_pd (x, -1, z, w, 1);
222 }
223 
224 __m128
f37(__m128 x,__m256i z,void const * w)225 f37 (__m128 x, __m256i z, void const *w)
226 {
227   return _mm256_mmask_i64gather_ps (x, -1, z, w, 1);
228 }
229 
230 __m128
f38(__m128 x,__m128i z,void const * w)231 f38 (__m128 x, __m128i z, void const *w)
232 {
233   return _mm_mmask_i64gather_ps (x, -1, z, w, 1);
234 }
235 
236 __m256d
f39(__m256d x,__m256i z,void const * w)237 f39 (__m256d x, __m256i z, void const *w)
238 {
239   return _mm256_mmask_i64gather_pd (x, -1, z, w, 1);
240 }
241 
242 __m128d
f40(__m128d x,__m128i z,void const * w)243 f40 (__m128d x, __m128i z, void const *w)
244 {
245   return _mm_mmask_i64gather_pd (x, -1, z, w, 1);
246 }
247 
248 __m256i
f41(__m256i x,__m256i z,void const * w)249 f41 (__m256i x, __m256i z, void const *w)
250 {
251   return _mm256_mmask_i32gather_epi32 (x, -1, z, w, 1);
252 }
253 
254 __m128i
f42(__m128i x,__m128i z,void const * w)255 f42 (__m128i x, __m128i z, void const *w)
256 {
257   return _mm_mmask_i32gather_epi32 (x, -1, z, w, 1);
258 }
259 
260 __m256i
f43(__m256i x,__m128i z,void const * w)261 f43 (__m256i x, __m128i z, void const *w)
262 {
263   return _mm256_mmask_i32gather_epi64 (x, -1, z, w, 1);
264 }
265 
266 __m128i
f44(__m128i x,__m128i z,void const * w)267 f44 (__m128i x, __m128i z, void const *w)
268 {
269   return _mm_mmask_i32gather_epi64 (x, -1, z, w, 1);
270 }
271 
272 __m128i
f45(__m128i x,__m256i z,void const * w)273 f45 (__m128i x, __m256i z, void const *w)
274 {
275   return _mm256_mmask_i64gather_epi32 (x, -1, z, w, 1);
276 }
277 
278 __m128i
f46(__m128i x,__m128i z,void const * w)279 f46 (__m128i x, __m128i z, void const *w)
280 {
281   return _mm_mmask_i64gather_epi32 (x, -1, z, w, 1);
282 }
283 
284 __m256i
f47(__m256i x,__m256i z,void const * w)285 f47 (__m256i x, __m256i z, void const *w)
286 {
287   return _mm256_mmask_i64gather_epi64 (x, -1, z, w, 1);
288 }
289 
290 __m128i
f48(__m128i x,__m128i z,void const * w)291 f48 (__m128i x, __m128i z, void const *w)
292 {
293   return _mm_mmask_i64gather_epi64 (x, -1, z, w, 1);
294 }
295