Lines Matching refs:AVX512
6 …< %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512bw | FileCheck %s --check-prefix=AVX512
7 …ple=x86_64-unknown-unknown -mattr=+avx512f,+avx512bw,+avx512vl | FileCheck %s --check-prefix=AVX512
41 ; AVX512-LABEL: test_v2f32:
42 ; AVX512: # %bb.0:
43 ; AVX512-NEXT: vmovshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
44 ; AVX512-NEXT: vminss %xmm1, %xmm0, %xmm0
45 ; AVX512-NEXT: retq
80 ; AVX512-LABEL: test_v3f32:
81 ; AVX512: # %bb.0:
82 ; AVX512-NEXT: vmovshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
83 ; AVX512-NEXT: vminss %xmm1, %xmm0, %xmm1
84 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm0 = xmm0[1,0]
85 ; AVX512-NEXT: vminss %xmm0, %xmm1, %xmm0
86 ; AVX512-NEXT: retq
127 ; AVX512-LABEL: test_v4f32:
128 ; AVX512: # %bb.0:
129 ; AVX512-NEXT: vpermilps {{.*#+}} xmm1 = xmm0[3,3,3,3]
130 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm2 = xmm0[1,0]
131 ; AVX512-NEXT: vmovshdup {{.*#+}} xmm3 = xmm0[1,1,3,3]
132 ; AVX512-NEXT: vminss %xmm3, %xmm0, %xmm0
133 ; AVX512-NEXT: vminss %xmm2, %xmm0, %xmm0
134 ; AVX512-NEXT: vminss %xmm1, %xmm0, %xmm0
135 ; AVX512-NEXT: retq
189 ; AVX512-LABEL: test_v8f32:
190 ; AVX512: # %bb.0:
191 ; AVX512-NEXT: vextractf128 $1, %ymm0, %xmm1
192 ; AVX512-NEXT: vpermilps {{.*#+}} xmm2 = xmm1[3,3,3,3]
193 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm3 = xmm1[1,0]
194 ; AVX512-NEXT: vmovshdup {{.*#+}} xmm4 = xmm1[1,1,3,3]
195 ; AVX512-NEXT: vpermilps {{.*#+}} xmm5 = xmm0[3,3,3,3]
196 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm6 = xmm0[1,0]
197 ; AVX512-NEXT: vmovshdup {{.*#+}} xmm7 = xmm0[1,1,3,3]
198 ; AVX512-NEXT: vminss %xmm7, %xmm0, %xmm0
199 ; AVX512-NEXT: vminss %xmm6, %xmm0, %xmm0
200 ; AVX512-NEXT: vminss %xmm5, %xmm0, %xmm0
201 ; AVX512-NEXT: vminss %xmm1, %xmm0, %xmm0
202 ; AVX512-NEXT: vminss %xmm4, %xmm0, %xmm0
203 ; AVX512-NEXT: vminss %xmm3, %xmm0, %xmm0
204 ; AVX512-NEXT: vminss %xmm2, %xmm0, %xmm0
205 ; AVX512-NEXT: vzeroupper
206 ; AVX512-NEXT: retq
265 ; AVX512-LABEL: test_v16f32:
266 ; AVX512: # %bb.0:
267 ; AVX512-NEXT: vextractf32x4 $3, %zmm0, %xmm1
268 ; AVX512-NEXT: vpermilps {{.*#+}} xmm8 = xmm1[3,3,3,3]
269 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm9 = xmm1[1,0]
270 ; AVX512-NEXT: vmovshdup {{.*#+}} xmm10 = xmm1[1,1,3,3]
271 ; AVX512-NEXT: vextractf32x4 $2, %zmm0, %xmm5
272 ; AVX512-NEXT: vpermilps {{.*#+}} xmm11 = xmm5[3,3,3,3]
273 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm12 = xmm5[1,0]
274 ; AVX512-NEXT: vmovshdup {{.*#+}} xmm13 = xmm5[1,1,3,3]
275 ; AVX512-NEXT: vextractf128 $1, %ymm0, %xmm3
276 ; AVX512-NEXT: vpermilps {{.*#+}} xmm14 = xmm3[3,3,3,3]
277 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm15 = xmm3[1,0]
278 ; AVX512-NEXT: vmovshdup {{.*#+}} xmm7 = xmm3[1,1,3,3]
279 ; AVX512-NEXT: vpermilps {{.*#+}} xmm2 = xmm0[3,3,3,3]
280 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm4 = xmm0[1,0]
281 ; AVX512-NEXT: vmovshdup {{.*#+}} xmm6 = xmm0[1,1,3,3]
282 ; AVX512-NEXT: vminss %xmm6, %xmm0, %xmm0
283 ; AVX512-NEXT: vminss %xmm4, %xmm0, %xmm0
284 ; AVX512-NEXT: vminss %xmm2, %xmm0, %xmm0
285 ; AVX512-NEXT: vminss %xmm3, %xmm0, %xmm0
286 ; AVX512-NEXT: vminss %xmm7, %xmm0, %xmm0
287 ; AVX512-NEXT: vminss %xmm15, %xmm0, %xmm0
288 ; AVX512-NEXT: vminss %xmm14, %xmm0, %xmm0
289 ; AVX512-NEXT: vminss %xmm5, %xmm0, %xmm0
290 ; AVX512-NEXT: vminss %xmm13, %xmm0, %xmm0
291 ; AVX512-NEXT: vminss %xmm12, %xmm0, %xmm0
292 ; AVX512-NEXT: vminss %xmm11, %xmm0, %xmm0
293 ; AVX512-NEXT: vminss %xmm1, %xmm0, %xmm0
294 ; AVX512-NEXT: vminss %xmm10, %xmm0, %xmm0
295 ; AVX512-NEXT: vminss %xmm9, %xmm0, %xmm0
296 ; AVX512-NEXT: vminss %xmm8, %xmm0, %xmm0
297 ; AVX512-NEXT: vzeroupper
298 ; AVX512-NEXT: retq
321 ; AVX512-LABEL: test_v2f64:
322 ; AVX512: # %bb.0:
323 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm1 = xmm0[1,0]
324 ; AVX512-NEXT: vminsd %xmm1, %xmm0, %xmm0
325 ; AVX512-NEXT: retq
350 ; AVX512-LABEL: test_v4f64:
351 ; AVX512: # %bb.0:
352 ; AVX512-NEXT: vextractf128 $1, %ymm0, %xmm1
353 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm2 = xmm1[1,0]
354 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm3 = xmm0[1,0]
355 ; AVX512-NEXT: vminsd %xmm3, %xmm0, %xmm0
356 ; AVX512-NEXT: vminsd %xmm1, %xmm0, %xmm0
357 ; AVX512-NEXT: vminsd %xmm2, %xmm0, %xmm0
358 ; AVX512-NEXT: vzeroupper
359 ; AVX512-NEXT: retq
387 ; AVX512-LABEL: test_v8f64:
388 ; AVX512: # %bb.0:
389 ; AVX512-NEXT: vextractf32x4 $3, %zmm0, %xmm1
390 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm2 = xmm1[1,0]
391 ; AVX512-NEXT: vextractf32x4 $2, %zmm0, %xmm3
392 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm4 = xmm3[1,0]
393 ; AVX512-NEXT: vextractf128 $1, %ymm0, %xmm5
394 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm6 = xmm5[1,0]
395 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm7 = xmm0[1,0]
396 ; AVX512-NEXT: vminsd %xmm7, %xmm0, %xmm0
397 ; AVX512-NEXT: vminsd %xmm5, %xmm0, %xmm0
398 ; AVX512-NEXT: vminsd %xmm6, %xmm0, %xmm0
399 ; AVX512-NEXT: vminsd %xmm3, %xmm0, %xmm0
400 ; AVX512-NEXT: vminsd %xmm4, %xmm0, %xmm0
401 ; AVX512-NEXT: vminsd %xmm1, %xmm0, %xmm0
402 ; AVX512-NEXT: vminsd %xmm2, %xmm0, %xmm0
403 ; AVX512-NEXT: vzeroupper
404 ; AVX512-NEXT: retq
438 ; AVX512-LABEL: test_v16f64:
439 ; AVX512: # %bb.0:
440 ; AVX512-NEXT: vminpd %zmm1, %zmm0, %zmm0
441 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm1 = xmm0[1,0]
442 ; AVX512-NEXT: vminsd %xmm1, %xmm0, %xmm1
443 ; AVX512-NEXT: vextractf128 $1, %ymm0, %xmm2
444 ; AVX512-NEXT: vminsd %xmm2, %xmm1, %xmm1
445 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm2 = xmm2[1,0]
446 ; AVX512-NEXT: vminsd %xmm2, %xmm1, %xmm1
447 ; AVX512-NEXT: vextractf32x4 $2, %zmm0, %xmm2
448 ; AVX512-NEXT: vminsd %xmm2, %xmm1, %xmm1
449 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm2 = xmm2[1,0]
450 ; AVX512-NEXT: vminsd %xmm2, %xmm1, %xmm1
451 ; AVX512-NEXT: vextractf32x4 $3, %zmm0, %xmm0
452 ; AVX512-NEXT: vminsd %xmm0, %xmm1, %xmm1
453 ; AVX512-NEXT: vpermilpd {{.*#+}} xmm0 = xmm0[1,0]
454 ; AVX512-NEXT: vminsd %xmm0, %xmm1, %xmm0
455 ; AVX512-NEXT: vzeroupper
456 ; AVX512-NEXT: retq
506 ; AVX512-LABEL: test_v2f16:
507 ; AVX512: # %bb.0:
508 ; AVX512-NEXT: movzwl %di, %eax
509 ; AVX512-NEXT: vmovd %eax, %xmm0
510 ; AVX512-NEXT: vcvtph2ps %xmm0, %xmm0
511 ; AVX512-NEXT: movzwl %si, %eax
512 ; AVX512-NEXT: vmovd %eax, %xmm1
513 ; AVX512-NEXT: vcvtph2ps %xmm1, %xmm1
514 ; AVX512-NEXT: vminss %xmm0, %xmm1, %xmm2
515 ; AVX512-NEXT: vcmpunordss %xmm0, %xmm0, %k1
516 ; AVX512-NEXT: vmovss %xmm1, %xmm2, %xmm2 {%k1}
517 ; AVX512-NEXT: vcvtps2ph $4, %xmm2, %xmm0
518 ; AVX512-NEXT: vmovd %xmm0, %eax
519 ; AVX512-NEXT: # kill: def $ax killed $ax killed $eax
520 ; AVX512-NEXT: retq