@@ -739,15 +739,15 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %amt)
739739; XOPAVX2-NEXT: vpbroadcastb {{.*#+}} xmm6 = [249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249]
740740; XOPAVX2-NEXT: vpaddb %xmm6, %xmm5, %xmm7
741741; XOPAVX2-NEXT: vpshlb %xmm7, %xmm3, %xmm3
742+ ; XOPAVX2-NEXT: vextracti128 $1, %ymm0, %xmm7
743+ ; XOPAVX2-NEXT: vpshlb %xmm5, %xmm7, %xmm5
744+ ; XOPAVX2-NEXT: vpor %xmm3, %xmm5, %xmm3
742745; XOPAVX2-NEXT: vpshlb %xmm4, %xmm1, %xmm1
743746; XOPAVX2-NEXT: vpaddb %xmm6, %xmm2, %xmm4
744747; XOPAVX2-NEXT: vpshlb %xmm4, %xmm1, %xmm1
745- ; XOPAVX2-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
746- ; XOPAVX2-NEXT: vextracti128 $1, %ymm0, %xmm3
747- ; XOPAVX2-NEXT: vpshlb %xmm5, %xmm3, %xmm3
748748; XOPAVX2-NEXT: vpshlb %xmm2, %xmm0, %xmm0
749+ ; XOPAVX2-NEXT: vpor %xmm1, %xmm0, %xmm0
749750; XOPAVX2-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm0
750- ; XOPAVX2-NEXT: vpor %ymm1, %ymm0, %ymm0
751751; XOPAVX2-NEXT: retq
752752 %res = call <32 x i8 > @llvm.fshl.v32i8 (<32 x i8 > %x , <32 x i8 > %y , <32 x i8 > %amt )
753753 ret <32 x i8 > %res
@@ -1992,17 +1992,17 @@ define <32 x i8> @constant_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y) nounwind {
19921992; XOPAVX2-NEXT: vextracti128 $1, %ymm0, %xmm2
19931993; XOPAVX2-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,2,3,4,5,6,7,0,7,6,5,4,3,2,1]
19941994; XOPAVX2-NEXT: vpshlb %xmm3, %xmm2, %xmm2
1995+ ; XOPAVX2-NEXT: vextracti128 $1, %ymm1, %xmm4
1996+ ; XOPAVX2-NEXT: vpcmpeqd %xmm5, %xmm5, %xmm5
1997+ ; XOPAVX2-NEXT: vpshlb %xmm5, %xmm4, %xmm4
1998+ ; XOPAVX2-NEXT: vmovdqa {{.*#+}} xmm6 = [249,250,251,252,253,254,255,0,249,0,255,254,253,252,251,250]
1999+ ; XOPAVX2-NEXT: vpshlb %xmm6, %xmm4, %xmm4
2000+ ; XOPAVX2-NEXT: vpor %xmm4, %xmm2, %xmm2
19952001; XOPAVX2-NEXT: vpshlb %xmm3, %xmm0, %xmm0
2002+ ; XOPAVX2-NEXT: vpshlb %xmm5, %xmm1, %xmm1
2003+ ; XOPAVX2-NEXT: vpshlb %xmm6, %xmm1, %xmm1
2004+ ; XOPAVX2-NEXT: vpor %xmm1, %xmm0, %xmm0
19962005; XOPAVX2-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm0
1997- ; XOPAVX2-NEXT: vextracti128 $1, %ymm1, %xmm2
1998- ; XOPAVX2-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3
1999- ; XOPAVX2-NEXT: vpshlb %xmm3, %xmm2, %xmm2
2000- ; XOPAVX2-NEXT: vmovdqa {{.*#+}} xmm4 = [249,250,251,252,253,254,255,0,249,0,255,254,253,252,251,250]
2001- ; XOPAVX2-NEXT: vpshlb %xmm4, %xmm2, %xmm2
2002- ; XOPAVX2-NEXT: vpshlb %xmm3, %xmm1, %xmm1
2003- ; XOPAVX2-NEXT: vpshlb %xmm4, %xmm1, %xmm1
2004- ; XOPAVX2-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
2005- ; XOPAVX2-NEXT: vpor %ymm1, %ymm0, %ymm0
20062006; XOPAVX2-NEXT: retq
20072007 %res = call <32 x i8 > @llvm.fshl.v32i8 (<32 x i8 > %x , <32 x i8 > %y , <32 x i8 > <i8 0 , i8 1 , i8 2 , i8 3 , i8 4 , i8 5 , i8 6 , i8 7 , i8 8 , i8 7 , i8 6 , i8 5 , i8 4 , i8 3 , i8 2 , i8 1 , i8 0 , i8 1 , i8 2 , i8 3 , i8 4 , i8 5 , i8 6 , i8 7 , i8 8 , i8 7 , i8 6 , i8 5 , i8 4 , i8 3 , i8 2 , i8 1 >)
20082008 ret <32 x i8 > %res
0 commit comments