diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-07-30 20:51:26 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-07-30 20:51:26 +0000 |
| commit | 8bbd3650a6d24e878b03d1a22d78bead005e5ede (patch) | |
| tree | 058effe9ce91ef2f1d92fbead5f6c3d983ebbce4 /llvm | |
| parent | fbe0fcb009b3e633d298408e32cd392542a16a6c (diff) | |
| download | bcm5719-llvm-8bbd3650a6d24e878b03d1a22d78bead005e5ede.tar.gz bcm5719-llvm-8bbd3650a6d24e878b03d1a22d78bead005e5ede.zip | |
[X86] Use peekThroughOneUseBitcasts helper function
llvm-svn: 277279
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index dde5a4f3926..098b9826374 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -25322,8 +25322,7 @@ static bool combineX86ShufflesRecursively(SDValue Op, SDValue Root, return false; // Directly rip through bitcasts to find the underlying operand. - while (Op.getOpcode() == ISD::BITCAST && Op.getOperand(0).hasOneUse()) - Op = Op.getOperand(0); + Op = peekThroughOneUseBitcasts(Op); MVT VT = Op.getSimpleValueType(); if (!VT.isVector()) @@ -25923,9 +25922,7 @@ static SDValue combineTargetShuffle(SDValue N, SelectionDAG &DAG, V.getOpcode() == X86ISD::PSHUFHW) && V.getOpcode() != N.getOpcode() && V.hasOneUse()) { - SDValue D = V.getOperand(0); - while (D.getOpcode() == ISD::BITCAST && D.hasOneUse()) - D = D.getOperand(0); + SDValue D = peekThroughOneUseBitcasts(V.getOperand(0)); if (D.getOpcode() == X86ISD::PSHUFD && D.hasOneUse()) { SmallVector<int, 4> VMask = getPSHUFShuffleMask(V); SmallVector<int, 4> DMask = getPSHUFShuffleMask(D); |

