Skip to content

Commit

Permalink
Cleanup of Complex Deinterleaving pass (NFCI)
Browse files Browse the repository at this point in the history
Differential Revision: https://reviews.llvm.org/D143177
  • Loading branch information
NickGuy-Arm committed Mar 14, 2023
1 parent 586e497 commit 49384f1
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
Expand Up @@ -271,8 +271,6 @@ class ComplexDeinterleavingGraph {
bool identifyNodes(Instruction *RootI);

/// Perform the actual replacement of the underlying instruction graph.
/// Returns false if the deinterleaving operation should be cancelled for the
/// current graph.
void replaceNodes();
};

Expand Down Expand Up @@ -598,8 +596,16 @@ ComplexDeinterleavingGraph::identifyPartialMul(Instruction *Real,
Rotation == ComplexDeinterleavingRotation::Rotation_270)
? CommonOperand
: nullptr);
NodePtr CNode = identifyNodeWithImplicitAdd(
cast<Instruction>(CR), cast<Instruction>(CI), PartialMatch);

auto *CRInst = dyn_cast<Instruction>(CR);
auto *CIInst = dyn_cast<Instruction>(CI);

if (!CRInst || !CIInst) {
LLVM_DEBUG(dbgs() << " - Common operands are not instructions.\n");
return nullptr;
}

NodePtr CNode = identifyNodeWithImplicitAdd(CRInst, CIInst, PartialMatch);
if (!CNode) {
LLVM_DEBUG(dbgs() << " - No cnode identified\n");
return nullptr;
Expand Down Expand Up @@ -788,8 +794,10 @@ ComplexDeinterleavingGraph::identifyNode(Instruction *Real, Instruction *Imag) {
PlaceholderNode->ReplacementNode = RealShuffle->getOperand(0);
return submitCompositeNode(PlaceholderNode);
}
if (RealShuffle || ImagShuffle)
if (RealShuffle || ImagShuffle) {
LLVM_DEBUG(dbgs() << " - There's a shuffle where there shouldn't be.\n");
return nullptr;
}

auto *VTy = cast<FixedVectorType>(Real->getType());
auto *NewVTy =
Expand Down

0 comments on commit 49384f1

Please sign in to comment.