diff --git a/src/mapleall/maple_me/src/ssa_pre.cpp b/src/mapleall/maple_me/src/ssa_pre.cpp index 781294ac7fb35b8d4a65b165577a54e3bf920d65..aaec18c1e4e2e702436e9166e16d5ebedb837949 100644 --- a/src/mapleall/maple_me/src/ssa_pre.cpp +++ b/src/mapleall/maple_me/src/ssa_pre.cpp @@ -1407,6 +1407,9 @@ void SSAPre::CreateRealOcc(MeStmt &meStmt, int seqStmt, MeExpr &meExpr, bool ins } else { wkCand->AddRealOccAsLast(*newOcc, GetPUIdx()); } + if (strengthReduction && !wkCand->isSRCand && meExpr.StrengthReducible() && meStmt.GetBB()->GetAttributes(kBBAttrIsInLoop)) { + wkCand->isSRCand = true; + } return; } // workcand not yet created; create a new one and add to worklist