Skip to content

Commit 55029f0

Browse files
committed
[X86] canonicalizeShuffleWithBinOps - add X86ISD::PSHUFHW/PSHUFLW handling
1 parent 59994c2 commit 55029f0

File tree

4 files changed

+5
-3
lines changed

4 files changed

+5
-3
lines changed

llvm/lib/Target/X86/X86ISelLowering.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38776,6 +38776,8 @@ static SDValue canonicalizeShuffleWithBinOps(SDValue N, SelectionDAG &DAG,
3877638776
case X86ISD::VBROADCAST:
3877738777
case X86ISD::MOVDDUP:
3877838778
case X86ISD::PSHUFD:
38779+
case X86ISD::PSHUFHW:
38780+
case X86ISD::PSHUFLW:
3877938781
case X86ISD::VPERMI:
3878038782
case X86ISD::VPERMILPI: {
3878138783
if (N.getOperand(0).getValueType() == ShuffleVT &&

llvm/test/CodeGen/X86/vector-fshr-rot-128.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1066,9 +1066,9 @@ define <8 x i16> @splatvar_funnnel_v8i16(<8 x i16> %x, <8 x i16> %amt) nounwind
10661066
;
10671067
; XOPAVX1-LABEL: splatvar_funnnel_v8i16:
10681068
; XOPAVX1: # %bb.0:
1069+
; XOPAVX1-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,0,0,0,4,5,6,7]
10691070
; XOPAVX1-NEXT: vpxor %xmm2, %xmm2, %xmm2
10701071
; XOPAVX1-NEXT: vpsubw %xmm1, %xmm2, %xmm1
1071-
; XOPAVX1-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,0,0,0,4,5,6,7]
10721072
; XOPAVX1-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,0,0,0]
10731073
; XOPAVX1-NEXT: vprotw %xmm1, %xmm0, %xmm0
10741074
; XOPAVX1-NEXT: retq

llvm/test/CodeGen/X86/vector-fshr-rot-256.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -881,9 +881,9 @@ define <16 x i16> @splatvar_funnnel_v16i16(<16 x i16> %x, <16 x i16> %amt) nounw
881881
;
882882
; XOPAVX1-LABEL: splatvar_funnnel_v16i16:
883883
; XOPAVX1: # %bb.0:
884+
; XOPAVX1-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,0,0,0,4,5,6,7]
884885
; XOPAVX1-NEXT: vpxor %xmm2, %xmm2, %xmm2
885886
; XOPAVX1-NEXT: vpsubw %xmm1, %xmm2, %xmm1
886-
; XOPAVX1-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,0,0,0,4,5,6,7]
887887
; XOPAVX1-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,0,0,0]
888888
; XOPAVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
889889
; XOPAVX1-NEXT: vprotw %xmm1, %xmm2, %xmm2

llvm/test/CodeGen/X86/vector-shuffle-sse4a.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,8 +364,8 @@ define <16 x i8> @shuffle_8_18_uuuuuuuuuuuuuu(<16 x i8> %a, <16 x i8> %b) {
364364
; AMD10H: # %bb.0:
365365
; AMD10H-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
366366
; AMD10H-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2,2,3]
367-
; AMD10H-NEXT: andps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
368367
; AMD10H-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[2,1,2,3,4,5,6,7]
368+
; AMD10H-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
369369
; AMD10H-NEXT: packuswb %xmm0, %xmm0
370370
; AMD10H-NEXT: retq
371371
;

0 commit comments

Comments
 (0)