diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-02-19 21:40:51 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-02-19 21:40:51 +0000 |
| commit | 14a7eee0b4510c2e15495f49351598f2e2915397 (patch) | |
| tree | f7485edea4ff1e0471de444a771b326564b9ae28 /llvm/lib | |
| parent | 16b476ffcc030ac6e2b4f2d7f7c10afe3feadadf (diff) | |
| download | bcm5719-llvm-14a7eee0b4510c2e15495f49351598f2e2915397.tar.gz bcm5719-llvm-14a7eee0b4510c2e15495f49351598f2e2915397.zip | |
[X86] Use peekThroughOneUseBitcasts helper. NFCI.
llvm-svn: 295618
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 44e3f18c401..7d16dd9b623 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -28433,18 +28433,13 @@ static SDValue XFormVExtractWithShuffleIntoLoad(SDNode *N, SelectionDAG &DAG, EVT OriginalVT = InVec.getValueType(); - if (InVec.getOpcode() == ISD::BITCAST) { - // Don't duplicate a load with other uses. - if (!InVec.hasOneUse()) - return SDValue(); - EVT BCVT = InVec.getOperand(0).getValueType(); - if (!BCVT.isVector() || - BCVT.getVectorNumElements() != OriginalVT.getVectorNumElements()) - return SDValue(); - InVec = InVec.getOperand(0); - } + // Peek through bitcasts, don't duplicate a load with other uses. + InVec = peekThroughOneUseBitcasts(InVec); EVT CurrentVT = InVec.getValueType(); + if (!CurrentVT.isVector() || + CurrentVT.getVectorNumElements() != OriginalVT.getVectorNumElements()) + return SDValue(); if (!isTargetShuffle(InVec.getOpcode())) return SDValue(); |

