@@ -1526,9 +1526,8 @@ define <8 x i32> @shuffle_v8i32_08192a3b(<8 x i32> %a, <8 x i32> %b) {
1526
1526
;
1527
1527
; AVX512VL-LABEL: shuffle_v8i32_08192a3b:
1528
1528
; AVX512VL: # %bb.0:
1529
- ; AVX512VL-NEXT: vpmovzxdq {{.*#+}} ymm2 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero
1530
- ; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm0 = [0,8,2,9,4,10,6,11]
1531
- ; AVX512VL-NEXT: vpermi2d %ymm1, %ymm2, %ymm0
1529
+ ; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm2 = [0,8,1,9,2,10,3,11]
1530
+ ; AVX512VL-NEXT: vpermt2d %ymm1, %ymm2, %ymm0
1532
1531
; AVX512VL-NEXT: retq
1533
1532
%shuffle = shufflevector <8 x i32 > %a , <8 x i32 > %b , <8 x i32 > <i32 0 , i32 8 , i32 1 , i32 9 , i32 2 , i32 10 , i32 3 , i32 11 >
1534
1533
ret <8 x i32 > %shuffle
@@ -1572,11 +1571,23 @@ define <8 x i32> @shuffle_v8i32_091b2d3f(<8 x i32> %a, <8 x i32> %b) {
1572
1571
; AVX1-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2],ymm1[3],ymm0[4],ymm1[5],ymm0[6],ymm1[7]
1573
1572
; AVX1-NEXT: retq
1574
1573
;
1575
- ; AVX2OR512VL-LABEL: shuffle_v8i32_091b2d3f:
1576
- ; AVX2OR512VL: # %bb.0:
1577
- ; AVX2OR512VL-NEXT: vpmovzxdq {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero
1578
- ; AVX2OR512VL-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2],ymm1[3],ymm0[4],ymm1[5],ymm0[6],ymm1[7]
1579
- ; AVX2OR512VL-NEXT: retq
1574
+ ; AVX2-LABEL: shuffle_v8i32_091b2d3f:
1575
+ ; AVX2: # %bb.0:
1576
+ ; AVX2-NEXT: vpmovzxdq {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero
1577
+ ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2],ymm1[3],ymm0[4],ymm1[5],ymm0[6],ymm1[7]
1578
+ ; AVX2-NEXT: retq
1579
+ ;
1580
+ ; AVX512VL-SLOW-LABEL: shuffle_v8i32_091b2d3f:
1581
+ ; AVX512VL-SLOW: # %bb.0:
1582
+ ; AVX512VL-SLOW-NEXT: vpmovzxdq {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero
1583
+ ; AVX512VL-SLOW-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2],ymm1[3],ymm0[4],ymm1[5],ymm0[6],ymm1[7]
1584
+ ; AVX512VL-SLOW-NEXT: retq
1585
+ ;
1586
+ ; AVX512VL-FAST-LABEL: shuffle_v8i32_091b2d3f:
1587
+ ; AVX512VL-FAST: # %bb.0:
1588
+ ; AVX512VL-FAST-NEXT: vmovdqa {{.*#+}} ymm2 = [0,9,1,11,2,13,3,15]
1589
+ ; AVX512VL-FAST-NEXT: vpermt2d %ymm1, %ymm2, %ymm0
1590
+ ; AVX512VL-FAST-NEXT: retq
1580
1591
%shuffle = shufflevector <8 x i32 > %a , <8 x i32 > %b , <8 x i32 > <i32 0 , i32 9 , i32 1 , i32 11 , i32 2 , i32 13 , i32 3 , i32 15 >
1581
1592
ret <8 x i32 > %shuffle
1582
1593
}
0 commit comments