summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2017-02-19 21:40:51 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2017-02-19 21:40:51 +0000
commit14a7eee0b4510c2e15495f49351598f2e2915397 (patch)
treef7485edea4ff1e0471de444a771b326564b9ae28 /llvm/lib
parent16b476ffcc030ac6e2b4f2d7f7c10afe3feadadf (diff)
downloadbcm5719-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.cpp15
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();
OpenPOWER on IntegriCloud