mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
FIX PR7158. SimplifyVBinOp was asserting when it fails to constant fold (op (build_vector), (build_vector)).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104004 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -6344,13 +6344,14 @@ SDValue DAGCombiner::SimplifyVBinOp(SDNode *N) {
|
||||
break;
|
||||
}
|
||||
|
||||
Ops.push_back(DAG.getNode(N->getOpcode(), LHS.getDebugLoc(),
|
||||
EltType, LHSOp, RHSOp));
|
||||
AddToWorkList(Ops.back().getNode());
|
||||
assert((Ops.back().getOpcode() == ISD::UNDEF ||
|
||||
Ops.back().getOpcode() == ISD::Constant ||
|
||||
Ops.back().getOpcode() == ISD::ConstantFP) &&
|
||||
"Scalar binop didn't fold!");
|
||||
SDValue FoldOp = DAG.getNode(N->getOpcode(), LHS.getDebugLoc(), EltType,
|
||||
LHSOp, RHSOp);
|
||||
if (FoldOp.getOpcode() != ISD::UNDEF &&
|
||||
FoldOp.getOpcode() != ISD::Constant &&
|
||||
FoldOp.getOpcode() != ISD::ConstantFP)
|
||||
break;
|
||||
Ops.push_back(FoldOp);
|
||||
AddToWorkList(FoldOp.getNode());
|
||||
}
|
||||
|
||||
if (Ops.size() == LHS.getNumOperands()) {
|
||||
|
Reference in New Issue
Block a user