mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
[IndVars] Quick fix LHS/RHS bug
The code relies on fact that LHS is the NarrowDef but never really checks it. Adding the conservative restrictive check, will follow-up with handling of case where RHS is a NarrowDef.
This commit is contained in:
parent
07a687d4c9
commit
da72560ea4
@ -1595,6 +1595,9 @@ bool WidenIV::widenWithVariantUse(WidenIV::NarrowIVDefUse DU) {
|
||||
return false;
|
||||
const SCEV *LHS = SE->getSCEV(OBO->getOperand(0));
|
||||
const SCEV *RHS = SE->getSCEV(OBO->getOperand(1));
|
||||
// TODO: Support case for NarrowDef = NarrowUse->getOperand(1).
|
||||
if (NarrowUse->getOperand(0) != NarrowDef)
|
||||
return false;
|
||||
if (!SE->isKnownNegative(RHS))
|
||||
return false;
|
||||
bool ProvedSubNUW = SE->isKnownPredicateAt(
|
||||
|
Loading…
Reference in New Issue
Block a user