Home | History | Annotate | Download | only in Scalar

Lines Matching defs:LHS

162   // Given I = LHS + RHS, factors RHS into i * S and makes (LHS + i * S) a
164 void allocateCandidatesAndFindBasisForAdd(Value *LHS, Value *RHS,
168 // Splits LHS into Base + Index and, if succeeds, calls
170 void allocateCandidatesAndFindBasisForMul(Value *LHS, Value *RHS,
387 Value *LHS = I->getOperand(0), *RHS = I->getOperand(1);
388 allocateCandidatesAndFindBasisForAdd(LHS, RHS, I);
389 if (LHS != RHS)
390 allocateCandidatesAndFindBasisForAdd(RHS, LHS, I);
394 Value *LHS, Value *RHS, Instruction *I) {
398 // I = LHS + RHS = LHS + Idx * S
399 allocateCandidatesAndFindBasis(Candidate::Add, SE->getSCEV(LHS), Idx, S, I);
401 // I = LHS + RHS = LHS + (S << Idx) = LHS + S * (1 << Idx)
404 allocateCandidatesAndFindBasis(Candidate::Add, SE->getSCEV(LHS), Idx, S, I);
406 // At least, I = LHS + 1 * RHS
408 allocateCandidatesAndFindBasis(Candidate::Add, SE->getSCEV(LHS), One, RHS,
426 Value *LHS, Value *RHS, Instruction *I) {
429 if (matchesAdd(LHS, B, Idx)) {
430 // If LHS is in the form of "Base + Index", then I is in the form of
433 } else if (matchesOr(LHS, B, Idx) && haveNoCommonBitsSet(B, Idx, *DL)) {
434 // If LHS is in the form of "Base | Index" and Base and Index have no common
440 // Otherwise, at least try the form (LHS + 0) * RHS.
442 allocateCandidatesAndFindBasis(Candidate::Mul, SE->getSCEV(LHS), Zero, RHS,
455 Value *LHS = I->getOperand(0), *RHS = I->getOperand(1);
456 allocateCandidatesAndFindBasisForMul(LHS, RHS, I);
457 if (LHS != RHS) {
459 allocateCandidatesAndFindBasisForMul(RHS, LHS, I);
484 Value *LHS = nullptr;
492 // is difficult when LHS is further evaluated to a composite SCEV.
497 if (match(ArrayIdx, m_NSWMul(m_Value(LHS), m_ConstantInt(RHS)))) {
499 // GEP = Base + sext(LHS *nsw RHS) * ElementSize
500 allocateCandidatesAndFindBasisForGEP(Base, RHS, LHS, ElementSize, GEP);
501 } else if (match(ArrayIdx, m_NSWShl(m_Value(LHS), m_ConstantInt(RHS)))) {
502 // GEP = Base + sext(LHS <<nsw RHS) * ElementSize
503 // = Base + sext(LHS *nsw (1 << RHS)) * ElementSize
507 allocateCandidatesAndFindBasisForGEP(Base, PowerOf2, LHS, ElementSize, GEP);