diff options
author | Craig Topper <craig.topper@intel.com> | 2018-12-31 05:40:46 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2018-12-31 05:40:46 +0000 |
commit | 802c4979ae107292fd1b792b9204a38e36d31094 (patch) | |
tree | ec02c439936beb61054b6df6617d7e2a4c4d7d87 /llvm/lib/CodeGen | |
parent | fde9e0975fa222a536464e40dd26859e1fe584c2 (diff) | |
download | bcm5719-llvm-802c4979ae107292fd1b792b9204a38e36d31094.tar.gz bcm5719-llvm-802c4979ae107292fd1b792b9204a38e36d31094.zip |
[DAGCombiner] Add missing one use check on the shuffle in the bitcast(shuffle(bitcast(s0),bitcast(s1))) -> shuffle(s0,s1) transform.
Found while trying out some other changes so I don't really have a test case.
llvm-svn: 350172
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp index dda4f0176b1..d6d1591ef03 100644 --- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp @@ -10156,7 +10156,7 @@ SDValue DAGCombiner::visitBITCAST(SDNode *N) { // float vectors bitcast to integer vectors) into shuffles. // bitcast(shuffle(bitcast(s0),bitcast(s1))) -> shuffle(s0,s1) if (Level < AfterLegalizeDAG && TLI.isTypeLegal(VT) && VT.isVector() && - N0->getOpcode() == ISD::VECTOR_SHUFFLE && + N0->getOpcode() == ISD::VECTOR_SHUFFLE && N0.hasOneUse() && VT.getVectorNumElements() >= N0.getValueType().getVectorNumElements() && !(VT.getVectorNumElements() % N0.getValueType().getVectorNumElements())) { ShuffleVectorSDNode *SVN = cast<ShuffleVectorSDNode>(N0); |