mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-23 14:25:07 +00:00
Fix a DAGCombiner abort on an invalid shift count constant. This fixes PR3250.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61613 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -3277,6 +3277,8 @@ SDValue DAGCombiner::GetDemandedBits(SDValue V, const APInt &Mask) {
|
||||
if (ConstantSDNode *RHSC = dyn_cast<ConstantSDNode>(V.getOperand(1))) {
|
||||
// See if we can recursively simplify the LHS.
|
||||
unsigned Amt = RHSC->getZExtValue();
|
||||
// Watch out for shift count overflow though.
|
||||
if (Amt >= Mask.getBitWidth()) break;
|
||||
APInt NewMask = Mask << Amt;
|
||||
SDValue SimplifyLHS = GetDemandedBits(V.getOperand(0), NewMask);
|
||||
if (SimplifyLHS.getNode()) {
|
||||
|
Reference in New Issue
Block a user