@@ -919,6 +919,19 @@ define <8 x i16> @test_masked_z_32xi16_to_8xi16_perm_mem_mask3(<32 x i16>* %vp,
919
919
ret <8 x i16 > %res
920
920
}
921
921
922
+ define <8 x i16 > @test_16xi16_to_8xi16_E84C94EF (<16 x i16 > %vec ) {
923
+ ; CHECK-LABEL: test_16xi16_to_8xi16_E84C94EF:
924
+ ; CHECK: # %bb.0:
925
+ ; CHECK-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[0,1,2,3,8,9,8,9,8,9,8,9,12,13,14,15]
926
+ ; CHECK-NEXT: vextracti128 $1, %ymm0, %xmm0
927
+ ; CHECK-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[12,13,0,1,8,9,8,9,2,3,2,3,12,13,14,15]
928
+ ; CHECK-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3,4],xmm1[5],xmm0[6,7]
929
+ ; CHECK-NEXT: vzeroupper
930
+ ; CHECK-NEXT: retq
931
+ %res = shufflevector <16 x i16 > %vec , <16 x i16 > undef , <8 x i32 > <i32 14 , i32 8 , i32 4 , i32 12 , i32 9 , i32 4 , i32 14 , i32 15 >
932
+ ret <8 x i16 > %res
933
+ }
934
+
922
935
define <4 x i32 > @test_8xi32_to_4xi32_perm_mask0 (<8 x i32 > %vec ) {
923
936
; CHECK-LABEL: test_8xi32_to_4xi32_perm_mask0:
924
937
; CHECK: # %bb.0:
@@ -1807,6 +1820,21 @@ define <4 x i32> @test_masked_z_16xi32_to_4xi32_perm_mem_mask3(<16 x i32>* %vp,
1807
1820
ret <4 x i32 > %res
1808
1821
}
1809
1822
1823
+ define <4 x i32 > @test_16xi32_to_4xi32_perm_mask9 (<16 x i32 > %vec ) {
1824
+ ; CHECK-LABEL: test_16xi32_to_4xi32_perm_mask9:
1825
+ ; CHECK: # %bb.0:
1826
+ ; CHECK-NEXT: vextractf64x4 $1, %zmm0, %ymm1
1827
+ ; CHECK-NEXT: vmovaps {{.*#+}} ymm2 = <4,1,u,2,u,u,u,u>
1828
+ ; CHECK-NEXT: vpermps %ymm1, %ymm2, %ymm1
1829
+ ; CHECK-NEXT: vextractf128 $1, %ymm0, %xmm0
1830
+ ; CHECK-NEXT: vbroadcastss %xmm0, %ymm0
1831
+ ; CHECK-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2],xmm1[3]
1832
+ ; CHECK-NEXT: vzeroupper
1833
+ ; CHECK-NEXT: retq
1834
+ %res = shufflevector <16 x i32 > %vec , <16 x i32 > undef , <4 x i32 > <i32 12 , i32 9 , i32 4 , i32 10 >
1835
+ ret <4 x i32 > %res
1836
+ }
1837
+
1810
1838
define <2 x i64 > @test_4xi64_to_2xi64_perm_mask0 (<4 x i64 > %vec ) {
1811
1839
; CHECK-LABEL: test_4xi64_to_2xi64_perm_mask0:
1812
1840
; CHECK: # %bb.0:
0 commit comments