[ARM] Adjust how NEON shifts are lowered
[llvm-core.git] / test / CodeGen / X86 / all-ones-vector.ll
blobd64b3d7e29b0f3cb85729f286f2313ac53de3cad
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=i386-unknown -mattr=+sse2 | FileCheck %s --check-prefix=X32-SSE
3 ; RUN: llc < %s -mtriple=i386-unknown -mattr=+avx  | FileCheck %s --check-prefix=X32-AVX --check-prefix=X32-AVX1
4 ; RUN: llc < %s -mtriple=i386-unknown -mattr=+avx2 | FileCheck %s --check-prefix=X32-AVX --check-prefix=X32-AVX256 --check-prefix=X32-AVX2
5 ; RUN: llc < %s -mtriple=i386-unknown -mcpu=knl | FileCheck %s --check-prefix=X32-AVX --check-prefix=X32-AVX256 --check-prefix=X32-AVX512 --check-prefix=X32-KNL
6 ; RUN: llc < %s -mtriple=i386-unknown -mcpu=skx | FileCheck %s --check-prefix=X32-AVX --check-prefix=X32-AVX256 --check-prefix=X32-AVX512 --check-prefix=X32-SKX
7 ; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+sse2 | FileCheck %s --check-prefix=X64-SSE
8 ; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+avx  | FileCheck %s --check-prefix=X64-AVX --check-prefix=X64-AVX1
9 ; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+avx2 | FileCheck %s --check-prefix=X64-AVX --check-prefix=X64-AVX256 --check-prefix=X64-AVX2
10 ; RUN: llc < %s -mtriple=x86_64-unknown -mcpu=knl | FileCheck %s --check-prefix=X64-AVX --check-prefix=X64-AVX256 --check-prefix=X64-AVX512 --check-prefix=X64-KNL
11 ; RUN: llc < %s -mtriple=x86_64-unknown -mcpu=skx | FileCheck %s --check-prefix=X64-AVX --check-prefix=X64-AVX256 --check-prefix=X64-AVX512 --check-prefix=X64-SKX
13 define <16 x i8> @allones_v16i8() nounwind {
14 ; X32-SSE-LABEL: allones_v16i8:
15 ; X32-SSE:       # %bb.0:
16 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
17 ; X32-SSE-NEXT:    retl
19 ; X32-AVX-LABEL: allones_v16i8:
20 ; X32-AVX:       # %bb.0:
21 ; X32-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
22 ; X32-AVX-NEXT:    retl
24 ; X64-SSE-LABEL: allones_v16i8:
25 ; X64-SSE:       # %bb.0:
26 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
27 ; X64-SSE-NEXT:    retq
29 ; X64-AVX-LABEL: allones_v16i8:
30 ; X64-AVX:       # %bb.0:
31 ; X64-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
32 ; X64-AVX-NEXT:    retq
33   ret <16 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>
36 define <8 x i16> @allones_v8i16() nounwind {
37 ; X32-SSE-LABEL: allones_v8i16:
38 ; X32-SSE:       # %bb.0:
39 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
40 ; X32-SSE-NEXT:    retl
42 ; X32-AVX-LABEL: allones_v8i16:
43 ; X32-AVX:       # %bb.0:
44 ; X32-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
45 ; X32-AVX-NEXT:    retl
47 ; X64-SSE-LABEL: allones_v8i16:
48 ; X64-SSE:       # %bb.0:
49 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
50 ; X64-SSE-NEXT:    retq
52 ; X64-AVX-LABEL: allones_v8i16:
53 ; X64-AVX:       # %bb.0:
54 ; X64-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
55 ; X64-AVX-NEXT:    retq
56   ret <8 x i16> <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1>
59 define <4 x i32> @allones_v4i32() nounwind {
60 ; X32-SSE-LABEL: allones_v4i32:
61 ; X32-SSE:       # %bb.0:
62 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
63 ; X32-SSE-NEXT:    retl
65 ; X32-AVX-LABEL: allones_v4i32:
66 ; X32-AVX:       # %bb.0:
67 ; X32-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
68 ; X32-AVX-NEXT:    retl
70 ; X64-SSE-LABEL: allones_v4i32:
71 ; X64-SSE:       # %bb.0:
72 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
73 ; X64-SSE-NEXT:    retq
75 ; X64-AVX-LABEL: allones_v4i32:
76 ; X64-AVX:       # %bb.0:
77 ; X64-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
78 ; X64-AVX-NEXT:    retq
79   ret <4 x i32> <i32 -1, i32 -1, i32 -1, i32 -1>
82 define <2 x i64> @allones_v2i64() nounwind {
83 ; X32-SSE-LABEL: allones_v2i64:
84 ; X32-SSE:       # %bb.0:
85 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
86 ; X32-SSE-NEXT:    retl
88 ; X32-AVX-LABEL: allones_v2i64:
89 ; X32-AVX:       # %bb.0:
90 ; X32-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
91 ; X32-AVX-NEXT:    retl
93 ; X64-SSE-LABEL: allones_v2i64:
94 ; X64-SSE:       # %bb.0:
95 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
96 ; X64-SSE-NEXT:    retq
98 ; X64-AVX-LABEL: allones_v2i64:
99 ; X64-AVX:       # %bb.0:
100 ; X64-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
101 ; X64-AVX-NEXT:    retq
102   ret <2 x i64> <i64 -1, i64 -1>
105 define <2 x double> @allones_v2f64() nounwind {
106 ; X32-SSE-LABEL: allones_v2f64:
107 ; X32-SSE:       # %bb.0:
108 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
109 ; X32-SSE-NEXT:    retl
111 ; X32-AVX-LABEL: allones_v2f64:
112 ; X32-AVX:       # %bb.0:
113 ; X32-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
114 ; X32-AVX-NEXT:    retl
116 ; X64-SSE-LABEL: allones_v2f64:
117 ; X64-SSE:       # %bb.0:
118 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
119 ; X64-SSE-NEXT:    retq
121 ; X64-AVX-LABEL: allones_v2f64:
122 ; X64-AVX:       # %bb.0:
123 ; X64-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
124 ; X64-AVX-NEXT:    retq
125   ret <2 x double> <double 0xffffffffffffffff, double 0xffffffffffffffff>
128 define <4 x float> @allones_v4f32() nounwind {
129 ; X32-SSE-LABEL: allones_v4f32:
130 ; X32-SSE:       # %bb.0:
131 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
132 ; X32-SSE-NEXT:    retl
134 ; X32-AVX-LABEL: allones_v4f32:
135 ; X32-AVX:       # %bb.0:
136 ; X32-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
137 ; X32-AVX-NEXT:    retl
139 ; X64-SSE-LABEL: allones_v4f32:
140 ; X64-SSE:       # %bb.0:
141 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
142 ; X64-SSE-NEXT:    retq
144 ; X64-AVX-LABEL: allones_v4f32:
145 ; X64-AVX:       # %bb.0:
146 ; X64-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
147 ; X64-AVX-NEXT:    retq
148   ret <4 x float> <float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000>
151 define <32 x i8> @allones_v32i8() nounwind {
152 ; X32-SSE-LABEL: allones_v32i8:
153 ; X32-SSE:       # %bb.0:
154 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
155 ; X32-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
156 ; X32-SSE-NEXT:    retl
158 ; X32-AVX1-LABEL: allones_v32i8:
159 ; X32-AVX1:       # %bb.0:
160 ; X32-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
161 ; X32-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
162 ; X32-AVX1-NEXT:    retl
164 ; X32-AVX256-LABEL: allones_v32i8:
165 ; X32-AVX256:       # %bb.0:
166 ; X32-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
167 ; X32-AVX256-NEXT:    retl
169 ; X64-SSE-LABEL: allones_v32i8:
170 ; X64-SSE:       # %bb.0:
171 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
172 ; X64-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
173 ; X64-SSE-NEXT:    retq
175 ; X64-AVX1-LABEL: allones_v32i8:
176 ; X64-AVX1:       # %bb.0:
177 ; X64-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
178 ; X64-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
179 ; X64-AVX1-NEXT:    retq
181 ; X64-AVX256-LABEL: allones_v32i8:
182 ; X64-AVX256:       # %bb.0:
183 ; X64-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
184 ; X64-AVX256-NEXT:    retq
185   ret <32 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>
188 define <16 x i16> @allones_v16i16() nounwind {
189 ; X32-SSE-LABEL: allones_v16i16:
190 ; X32-SSE:       # %bb.0:
191 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
192 ; X32-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
193 ; X32-SSE-NEXT:    retl
195 ; X32-AVX1-LABEL: allones_v16i16:
196 ; X32-AVX1:       # %bb.0:
197 ; X32-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
198 ; X32-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
199 ; X32-AVX1-NEXT:    retl
201 ; X32-AVX256-LABEL: allones_v16i16:
202 ; X32-AVX256:       # %bb.0:
203 ; X32-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
204 ; X32-AVX256-NEXT:    retl
206 ; X64-SSE-LABEL: allones_v16i16:
207 ; X64-SSE:       # %bb.0:
208 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
209 ; X64-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
210 ; X64-SSE-NEXT:    retq
212 ; X64-AVX1-LABEL: allones_v16i16:
213 ; X64-AVX1:       # %bb.0:
214 ; X64-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
215 ; X64-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
216 ; X64-AVX1-NEXT:    retq
218 ; X64-AVX256-LABEL: allones_v16i16:
219 ; X64-AVX256:       # %bb.0:
220 ; X64-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
221 ; X64-AVX256-NEXT:    retq
222   ret <16 x i16> <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1>
225 define <8 x i32> @allones_v8i32() nounwind {
226 ; X32-SSE-LABEL: allones_v8i32:
227 ; X32-SSE:       # %bb.0:
228 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
229 ; X32-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
230 ; X32-SSE-NEXT:    retl
232 ; X32-AVX1-LABEL: allones_v8i32:
233 ; X32-AVX1:       # %bb.0:
234 ; X32-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
235 ; X32-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
236 ; X32-AVX1-NEXT:    retl
238 ; X32-AVX256-LABEL: allones_v8i32:
239 ; X32-AVX256:       # %bb.0:
240 ; X32-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
241 ; X32-AVX256-NEXT:    retl
243 ; X64-SSE-LABEL: allones_v8i32:
244 ; X64-SSE:       # %bb.0:
245 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
246 ; X64-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
247 ; X64-SSE-NEXT:    retq
249 ; X64-AVX1-LABEL: allones_v8i32:
250 ; X64-AVX1:       # %bb.0:
251 ; X64-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
252 ; X64-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
253 ; X64-AVX1-NEXT:    retq
255 ; X64-AVX256-LABEL: allones_v8i32:
256 ; X64-AVX256:       # %bb.0:
257 ; X64-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
258 ; X64-AVX256-NEXT:    retq
259   ret <8 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
262 define <4 x i64> @allones_v4i64() nounwind {
263 ; X32-SSE-LABEL: allones_v4i64:
264 ; X32-SSE:       # %bb.0:
265 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
266 ; X32-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
267 ; X32-SSE-NEXT:    retl
269 ; X32-AVX1-LABEL: allones_v4i64:
270 ; X32-AVX1:       # %bb.0:
271 ; X32-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
272 ; X32-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
273 ; X32-AVX1-NEXT:    retl
275 ; X32-AVX256-LABEL: allones_v4i64:
276 ; X32-AVX256:       # %bb.0:
277 ; X32-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
278 ; X32-AVX256-NEXT:    retl
280 ; X64-SSE-LABEL: allones_v4i64:
281 ; X64-SSE:       # %bb.0:
282 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
283 ; X64-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
284 ; X64-SSE-NEXT:    retq
286 ; X64-AVX1-LABEL: allones_v4i64:
287 ; X64-AVX1:       # %bb.0:
288 ; X64-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
289 ; X64-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
290 ; X64-AVX1-NEXT:    retq
292 ; X64-AVX256-LABEL: allones_v4i64:
293 ; X64-AVX256:       # %bb.0:
294 ; X64-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
295 ; X64-AVX256-NEXT:    retq
296   ret <4 x i64> <i64 -1, i64 -1, i64 -1, i64 -1>
299 define <4 x double> @allones_v4f64() nounwind {
300 ; X32-SSE-LABEL: allones_v4f64:
301 ; X32-SSE:       # %bb.0:
302 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
303 ; X32-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
304 ; X32-SSE-NEXT:    retl
306 ; X32-AVX1-LABEL: allones_v4f64:
307 ; X32-AVX1:       # %bb.0:
308 ; X32-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
309 ; X32-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
310 ; X32-AVX1-NEXT:    retl
312 ; X32-AVX256-LABEL: allones_v4f64:
313 ; X32-AVX256:       # %bb.0:
314 ; X32-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
315 ; X32-AVX256-NEXT:    retl
317 ; X64-SSE-LABEL: allones_v4f64:
318 ; X64-SSE:       # %bb.0:
319 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
320 ; X64-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
321 ; X64-SSE-NEXT:    retq
323 ; X64-AVX1-LABEL: allones_v4f64:
324 ; X64-AVX1:       # %bb.0:
325 ; X64-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
326 ; X64-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
327 ; X64-AVX1-NEXT:    retq
329 ; X64-AVX256-LABEL: allones_v4f64:
330 ; X64-AVX256:       # %bb.0:
331 ; X64-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
332 ; X64-AVX256-NEXT:    retq
333   ret <4 x double> <double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff>
336 define <4 x double> @allones_v4f64_optsize() nounwind optsize {
337 ; X32-SSE-LABEL: allones_v4f64_optsize:
338 ; X32-SSE:       # %bb.0:
339 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
340 ; X32-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
341 ; X32-SSE-NEXT:    retl
343 ; X32-AVX1-LABEL: allones_v4f64_optsize:
344 ; X32-AVX1:       # %bb.0:
345 ; X32-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
346 ; X32-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
347 ; X32-AVX1-NEXT:    retl
349 ; X32-AVX256-LABEL: allones_v4f64_optsize:
350 ; X32-AVX256:       # %bb.0:
351 ; X32-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
352 ; X32-AVX256-NEXT:    retl
354 ; X64-SSE-LABEL: allones_v4f64_optsize:
355 ; X64-SSE:       # %bb.0:
356 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
357 ; X64-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
358 ; X64-SSE-NEXT:    retq
360 ; X64-AVX1-LABEL: allones_v4f64_optsize:
361 ; X64-AVX1:       # %bb.0:
362 ; X64-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
363 ; X64-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
364 ; X64-AVX1-NEXT:    retq
366 ; X64-AVX256-LABEL: allones_v4f64_optsize:
367 ; X64-AVX256:       # %bb.0:
368 ; X64-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
369 ; X64-AVX256-NEXT:    retq
370   ret <4 x double> <double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff>
373 define <8 x float> @allones_v8f32() nounwind {
374 ; X32-SSE-LABEL: allones_v8f32:
375 ; X32-SSE:       # %bb.0:
376 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
377 ; X32-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
378 ; X32-SSE-NEXT:    retl
380 ; X32-AVX1-LABEL: allones_v8f32:
381 ; X32-AVX1:       # %bb.0:
382 ; X32-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
383 ; X32-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
384 ; X32-AVX1-NEXT:    retl
386 ; X32-AVX256-LABEL: allones_v8f32:
387 ; X32-AVX256:       # %bb.0:
388 ; X32-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
389 ; X32-AVX256-NEXT:    retl
391 ; X64-SSE-LABEL: allones_v8f32:
392 ; X64-SSE:       # %bb.0:
393 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
394 ; X64-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
395 ; X64-SSE-NEXT:    retq
397 ; X64-AVX1-LABEL: allones_v8f32:
398 ; X64-AVX1:       # %bb.0:
399 ; X64-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
400 ; X64-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
401 ; X64-AVX1-NEXT:    retq
403 ; X64-AVX256-LABEL: allones_v8f32:
404 ; X64-AVX256:       # %bb.0:
405 ; X64-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
406 ; X64-AVX256-NEXT:    retq
407   ret <8 x float> <float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000>
410 define <8 x float> @allones_v8f32_optsize() nounwind optsize {
411 ; X32-SSE-LABEL: allones_v8f32_optsize:
412 ; X32-SSE:       # %bb.0:
413 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
414 ; X32-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
415 ; X32-SSE-NEXT:    retl
417 ; X32-AVX1-LABEL: allones_v8f32_optsize:
418 ; X32-AVX1:       # %bb.0:
419 ; X32-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
420 ; X32-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
421 ; X32-AVX1-NEXT:    retl
423 ; X32-AVX256-LABEL: allones_v8f32_optsize:
424 ; X32-AVX256:       # %bb.0:
425 ; X32-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
426 ; X32-AVX256-NEXT:    retl
428 ; X64-SSE-LABEL: allones_v8f32_optsize:
429 ; X64-SSE:       # %bb.0:
430 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
431 ; X64-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
432 ; X64-SSE-NEXT:    retq
434 ; X64-AVX1-LABEL: allones_v8f32_optsize:
435 ; X64-AVX1:       # %bb.0:
436 ; X64-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
437 ; X64-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
438 ; X64-AVX1-NEXT:    retq
440 ; X64-AVX256-LABEL: allones_v8f32_optsize:
441 ; X64-AVX256:       # %bb.0:
442 ; X64-AVX256-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
443 ; X64-AVX256-NEXT:    retq
444   ret <8 x float> <float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000>
447 define <64 x i8> @allones_v64i8() nounwind {
448 ; X32-SSE-LABEL: allones_v64i8:
449 ; X32-SSE:       # %bb.0:
450 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
451 ; X32-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
452 ; X32-SSE-NEXT:    pcmpeqd %xmm2, %xmm2
453 ; X32-SSE-NEXT:    pcmpeqd %xmm3, %xmm3
454 ; X32-SSE-NEXT:    retl
456 ; X32-AVX1-LABEL: allones_v64i8:
457 ; X32-AVX1:       # %bb.0:
458 ; X32-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
459 ; X32-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
460 ; X32-AVX1-NEXT:    vmovaps %ymm0, %ymm1
461 ; X32-AVX1-NEXT:    retl
463 ; X32-AVX2-LABEL: allones_v64i8:
464 ; X32-AVX2:       # %bb.0:
465 ; X32-AVX2-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
466 ; X32-AVX2-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
467 ; X32-AVX2-NEXT:    retl
469 ; X32-KNL-LABEL: allones_v64i8:
470 ; X32-KNL:       # %bb.0:
471 ; X32-KNL-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
472 ; X32-KNL-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
473 ; X32-KNL-NEXT:    retl
475 ; X32-SKX-LABEL: allones_v64i8:
476 ; X32-SKX:       # %bb.0:
477 ; X32-SKX-NEXT:    vpternlogd $255, %zmm0, %zmm0, %zmm0
478 ; X32-SKX-NEXT:    retl
480 ; X64-SSE-LABEL: allones_v64i8:
481 ; X64-SSE:       # %bb.0:
482 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
483 ; X64-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
484 ; X64-SSE-NEXT:    pcmpeqd %xmm2, %xmm2
485 ; X64-SSE-NEXT:    pcmpeqd %xmm3, %xmm3
486 ; X64-SSE-NEXT:    retq
488 ; X64-AVX1-LABEL: allones_v64i8:
489 ; X64-AVX1:       # %bb.0:
490 ; X64-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
491 ; X64-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
492 ; X64-AVX1-NEXT:    vmovaps %ymm0, %ymm1
493 ; X64-AVX1-NEXT:    retq
495 ; X64-AVX2-LABEL: allones_v64i8:
496 ; X64-AVX2:       # %bb.0:
497 ; X64-AVX2-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
498 ; X64-AVX2-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
499 ; X64-AVX2-NEXT:    retq
501 ; X64-KNL-LABEL: allones_v64i8:
502 ; X64-KNL:       # %bb.0:
503 ; X64-KNL-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
504 ; X64-KNL-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
505 ; X64-KNL-NEXT:    retq
507 ; X64-SKX-LABEL: allones_v64i8:
508 ; X64-SKX:       # %bb.0:
509 ; X64-SKX-NEXT:    vpternlogd $255, %zmm0, %zmm0, %zmm0
510 ; X64-SKX-NEXT:    retq
511   ret <64 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>
514 define <32 x i16> @allones_v32i16() nounwind {
515 ; X32-SSE-LABEL: allones_v32i16:
516 ; X32-SSE:       # %bb.0:
517 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
518 ; X32-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
519 ; X32-SSE-NEXT:    pcmpeqd %xmm2, %xmm2
520 ; X32-SSE-NEXT:    pcmpeqd %xmm3, %xmm3
521 ; X32-SSE-NEXT:    retl
523 ; X32-AVX1-LABEL: allones_v32i16:
524 ; X32-AVX1:       # %bb.0:
525 ; X32-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
526 ; X32-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
527 ; X32-AVX1-NEXT:    vmovaps %ymm0, %ymm1
528 ; X32-AVX1-NEXT:    retl
530 ; X32-AVX2-LABEL: allones_v32i16:
531 ; X32-AVX2:       # %bb.0:
532 ; X32-AVX2-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
533 ; X32-AVX2-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
534 ; X32-AVX2-NEXT:    retl
536 ; X32-KNL-LABEL: allones_v32i16:
537 ; X32-KNL:       # %bb.0:
538 ; X32-KNL-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
539 ; X32-KNL-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
540 ; X32-KNL-NEXT:    retl
542 ; X32-SKX-LABEL: allones_v32i16:
543 ; X32-SKX:       # %bb.0:
544 ; X32-SKX-NEXT:    vpternlogd $255, %zmm0, %zmm0, %zmm0
545 ; X32-SKX-NEXT:    retl
547 ; X64-SSE-LABEL: allones_v32i16:
548 ; X64-SSE:       # %bb.0:
549 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
550 ; X64-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
551 ; X64-SSE-NEXT:    pcmpeqd %xmm2, %xmm2
552 ; X64-SSE-NEXT:    pcmpeqd %xmm3, %xmm3
553 ; X64-SSE-NEXT:    retq
555 ; X64-AVX1-LABEL: allones_v32i16:
556 ; X64-AVX1:       # %bb.0:
557 ; X64-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
558 ; X64-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
559 ; X64-AVX1-NEXT:    vmovaps %ymm0, %ymm1
560 ; X64-AVX1-NEXT:    retq
562 ; X64-AVX2-LABEL: allones_v32i16:
563 ; X64-AVX2:       # %bb.0:
564 ; X64-AVX2-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
565 ; X64-AVX2-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
566 ; X64-AVX2-NEXT:    retq
568 ; X64-KNL-LABEL: allones_v32i16:
569 ; X64-KNL:       # %bb.0:
570 ; X64-KNL-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
571 ; X64-KNL-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
572 ; X64-KNL-NEXT:    retq
574 ; X64-SKX-LABEL: allones_v32i16:
575 ; X64-SKX:       # %bb.0:
576 ; X64-SKX-NEXT:    vpternlogd $255, %zmm0, %zmm0, %zmm0
577 ; X64-SKX-NEXT:    retq
578   ret <32 x i16> <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1>
581 define <16 x i32> @allones_v16i32() nounwind {
582 ; X32-SSE-LABEL: allones_v16i32:
583 ; X32-SSE:       # %bb.0:
584 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
585 ; X32-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
586 ; X32-SSE-NEXT:    pcmpeqd %xmm2, %xmm2
587 ; X32-SSE-NEXT:    pcmpeqd %xmm3, %xmm3
588 ; X32-SSE-NEXT:    retl
590 ; X32-AVX1-LABEL: allones_v16i32:
591 ; X32-AVX1:       # %bb.0:
592 ; X32-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
593 ; X32-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
594 ; X32-AVX1-NEXT:    vmovaps %ymm0, %ymm1
595 ; X32-AVX1-NEXT:    retl
597 ; X32-AVX2-LABEL: allones_v16i32:
598 ; X32-AVX2:       # %bb.0:
599 ; X32-AVX2-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
600 ; X32-AVX2-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
601 ; X32-AVX2-NEXT:    retl
603 ; X32-AVX512-LABEL: allones_v16i32:
604 ; X32-AVX512:       # %bb.0:
605 ; X32-AVX512-NEXT:    vpternlogd $255, %zmm0, %zmm0, %zmm0
606 ; X32-AVX512-NEXT:    retl
608 ; X64-SSE-LABEL: allones_v16i32:
609 ; X64-SSE:       # %bb.0:
610 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
611 ; X64-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
612 ; X64-SSE-NEXT:    pcmpeqd %xmm2, %xmm2
613 ; X64-SSE-NEXT:    pcmpeqd %xmm3, %xmm3
614 ; X64-SSE-NEXT:    retq
616 ; X64-AVX1-LABEL: allones_v16i32:
617 ; X64-AVX1:       # %bb.0:
618 ; X64-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
619 ; X64-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
620 ; X64-AVX1-NEXT:    vmovaps %ymm0, %ymm1
621 ; X64-AVX1-NEXT:    retq
623 ; X64-AVX2-LABEL: allones_v16i32:
624 ; X64-AVX2:       # %bb.0:
625 ; X64-AVX2-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
626 ; X64-AVX2-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
627 ; X64-AVX2-NEXT:    retq
629 ; X64-AVX512-LABEL: allones_v16i32:
630 ; X64-AVX512:       # %bb.0:
631 ; X64-AVX512-NEXT:    vpternlogd $255, %zmm0, %zmm0, %zmm0
632 ; X64-AVX512-NEXT:    retq
633   ret <16 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
636 define <8 x i64> @allones_v8i64() nounwind {
637 ; X32-SSE-LABEL: allones_v8i64:
638 ; X32-SSE:       # %bb.0:
639 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
640 ; X32-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
641 ; X32-SSE-NEXT:    pcmpeqd %xmm2, %xmm2
642 ; X32-SSE-NEXT:    pcmpeqd %xmm3, %xmm3
643 ; X32-SSE-NEXT:    retl
645 ; X32-AVX1-LABEL: allones_v8i64:
646 ; X32-AVX1:       # %bb.0:
647 ; X32-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
648 ; X32-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
649 ; X32-AVX1-NEXT:    vmovaps %ymm0, %ymm1
650 ; X32-AVX1-NEXT:    retl
652 ; X32-AVX2-LABEL: allones_v8i64:
653 ; X32-AVX2:       # %bb.0:
654 ; X32-AVX2-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
655 ; X32-AVX2-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
656 ; X32-AVX2-NEXT:    retl
658 ; X32-AVX512-LABEL: allones_v8i64:
659 ; X32-AVX512:       # %bb.0:
660 ; X32-AVX512-NEXT:    vpternlogd $255, %zmm0, %zmm0, %zmm0
661 ; X32-AVX512-NEXT:    retl
663 ; X64-SSE-LABEL: allones_v8i64:
664 ; X64-SSE:       # %bb.0:
665 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
666 ; X64-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
667 ; X64-SSE-NEXT:    pcmpeqd %xmm2, %xmm2
668 ; X64-SSE-NEXT:    pcmpeqd %xmm3, %xmm3
669 ; X64-SSE-NEXT:    retq
671 ; X64-AVX1-LABEL: allones_v8i64:
672 ; X64-AVX1:       # %bb.0:
673 ; X64-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
674 ; X64-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
675 ; X64-AVX1-NEXT:    vmovaps %ymm0, %ymm1
676 ; X64-AVX1-NEXT:    retq
678 ; X64-AVX2-LABEL: allones_v8i64:
679 ; X64-AVX2:       # %bb.0:
680 ; X64-AVX2-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
681 ; X64-AVX2-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
682 ; X64-AVX2-NEXT:    retq
684 ; X64-AVX512-LABEL: allones_v8i64:
685 ; X64-AVX512:       # %bb.0:
686 ; X64-AVX512-NEXT:    vpternlogd $255, %zmm0, %zmm0, %zmm0
687 ; X64-AVX512-NEXT:    retq
688   ret <8 x i64> <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
691 define <8 x double> @allones_v8f64() nounwind {
692 ; X32-SSE-LABEL: allones_v8f64:
693 ; X32-SSE:       # %bb.0:
694 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
695 ; X32-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
696 ; X32-SSE-NEXT:    pcmpeqd %xmm2, %xmm2
697 ; X32-SSE-NEXT:    pcmpeqd %xmm3, %xmm3
698 ; X32-SSE-NEXT:    retl
700 ; X32-AVX1-LABEL: allones_v8f64:
701 ; X32-AVX1:       # %bb.0:
702 ; X32-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
703 ; X32-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
704 ; X32-AVX1-NEXT:    vmovaps %ymm0, %ymm1
705 ; X32-AVX1-NEXT:    retl
707 ; X32-AVX2-LABEL: allones_v8f64:
708 ; X32-AVX2:       # %bb.0:
709 ; X32-AVX2-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
710 ; X32-AVX2-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
711 ; X32-AVX2-NEXT:    retl
713 ; X32-AVX512-LABEL: allones_v8f64:
714 ; X32-AVX512:       # %bb.0:
715 ; X32-AVX512-NEXT:    vpternlogd $255, %zmm0, %zmm0, %zmm0
716 ; X32-AVX512-NEXT:    retl
718 ; X64-SSE-LABEL: allones_v8f64:
719 ; X64-SSE:       # %bb.0:
720 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
721 ; X64-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
722 ; X64-SSE-NEXT:    pcmpeqd %xmm2, %xmm2
723 ; X64-SSE-NEXT:    pcmpeqd %xmm3, %xmm3
724 ; X64-SSE-NEXT:    retq
726 ; X64-AVX1-LABEL: allones_v8f64:
727 ; X64-AVX1:       # %bb.0:
728 ; X64-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
729 ; X64-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
730 ; X64-AVX1-NEXT:    vmovaps %ymm0, %ymm1
731 ; X64-AVX1-NEXT:    retq
733 ; X64-AVX2-LABEL: allones_v8f64:
734 ; X64-AVX2:       # %bb.0:
735 ; X64-AVX2-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
736 ; X64-AVX2-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
737 ; X64-AVX2-NEXT:    retq
739 ; X64-AVX512-LABEL: allones_v8f64:
740 ; X64-AVX512:       # %bb.0:
741 ; X64-AVX512-NEXT:    vpternlogd $255, %zmm0, %zmm0, %zmm0
742 ; X64-AVX512-NEXT:    retq
743   ret <8 x double> <double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff>
746 define <16 x float> @allones_v16f32() nounwind {
747 ; X32-SSE-LABEL: allones_v16f32:
748 ; X32-SSE:       # %bb.0:
749 ; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
750 ; X32-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
751 ; X32-SSE-NEXT:    pcmpeqd %xmm2, %xmm2
752 ; X32-SSE-NEXT:    pcmpeqd %xmm3, %xmm3
753 ; X32-SSE-NEXT:    retl
755 ; X32-AVX1-LABEL: allones_v16f32:
756 ; X32-AVX1:       # %bb.0:
757 ; X32-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
758 ; X32-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
759 ; X32-AVX1-NEXT:    vmovaps %ymm0, %ymm1
760 ; X32-AVX1-NEXT:    retl
762 ; X32-AVX2-LABEL: allones_v16f32:
763 ; X32-AVX2:       # %bb.0:
764 ; X32-AVX2-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
765 ; X32-AVX2-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
766 ; X32-AVX2-NEXT:    retl
768 ; X32-AVX512-LABEL: allones_v16f32:
769 ; X32-AVX512:       # %bb.0:
770 ; X32-AVX512-NEXT:    vpternlogd $255, %zmm0, %zmm0, %zmm0
771 ; X32-AVX512-NEXT:    retl
773 ; X64-SSE-LABEL: allones_v16f32:
774 ; X64-SSE:       # %bb.0:
775 ; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
776 ; X64-SSE-NEXT:    pcmpeqd %xmm1, %xmm1
777 ; X64-SSE-NEXT:    pcmpeqd %xmm2, %xmm2
778 ; X64-SSE-NEXT:    pcmpeqd %xmm3, %xmm3
779 ; X64-SSE-NEXT:    retq
781 ; X64-AVX1-LABEL: allones_v16f32:
782 ; X64-AVX1:       # %bb.0:
783 ; X64-AVX1-NEXT:    vxorps %xmm0, %xmm0, %xmm0
784 ; X64-AVX1-NEXT:    vcmptrueps %ymm0, %ymm0, %ymm0
785 ; X64-AVX1-NEXT:    vmovaps %ymm0, %ymm1
786 ; X64-AVX1-NEXT:    retq
788 ; X64-AVX2-LABEL: allones_v16f32:
789 ; X64-AVX2:       # %bb.0:
790 ; X64-AVX2-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0
791 ; X64-AVX2-NEXT:    vpcmpeqd %ymm1, %ymm1, %ymm1
792 ; X64-AVX2-NEXT:    retq
794 ; X64-AVX512-LABEL: allones_v16f32:
795 ; X64-AVX512:       # %bb.0:
796 ; X64-AVX512-NEXT:    vpternlogd $255, %zmm0, %zmm0, %zmm0
797 ; X64-AVX512-NEXT:    retq
798   ret <16 x float> <float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000>