reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
6156 switch (BO->Opcode) { 6166 if (BO->Op) { 6167 if (auto *OpSCEV = getExistingSCEV(BO->Op)) { 6179 const SCEV *RHS = getSCEV(BO->RHS); 6180 SCEV::NoWrapFlags Flags = getNoWrapFlagsFromUB(BO->Op); 6182 const SCEV *LHS = getSCEV(BO->LHS); 6183 if (BO->Opcode == Instruction::Sub) 6191 if (BO->Opcode == Instruction::Sub) 6192 AddOps.push_back(getNegativeSCEV(getSCEV(BO->RHS))); 6194 AddOps.push_back(getSCEV(BO->RHS)); 6196 auto NewBO = MatchBinaryOp(BO->LHS, DT); 6199 AddOps.push_back(getSCEV(BO->LHS)); 6202 BO = NewBO; 6211 if (BO->Op) { 6212 if (auto *OpSCEV = getExistingSCEV(BO->Op)) { 6217 SCEV::NoWrapFlags Flags = getNoWrapFlagsFromUB(BO->Op); 6220 getMulExpr(getSCEV(BO->LHS), getSCEV(BO->RHS), Flags)); 6220 getMulExpr(getSCEV(BO->LHS), getSCEV(BO->RHS), Flags)); 6225 MulOps.push_back(getSCEV(BO->RHS)); 6226 auto NewBO = MatchBinaryOp(BO->LHS, DT); 6228 MulOps.push_back(getSCEV(BO->LHS)); 6231 BO = NewBO; 6237 return getUDivExpr(getSCEV(BO->LHS), getSCEV(BO->RHS)); 6237 return getUDivExpr(getSCEV(BO->LHS), getSCEV(BO->RHS)); 6239 return getURemExpr(getSCEV(BO->LHS), getSCEV(BO->RHS)); 6239 return getURemExpr(getSCEV(BO->LHS), getSCEV(BO->RHS)); 6242 if (BO->Op) 6243 Flags = getNoWrapFlagsFromUB(BO->Op); 6244 return getMinusSCEV(getSCEV(BO->LHS), getSCEV(BO->RHS), Flags); 6244 return getMinusSCEV(getSCEV(BO->LHS), getSCEV(BO->RHS), Flags); 6249 if (ConstantInt *CI = dyn_cast<ConstantInt>(BO->RHS)) { 6251 return getSCEV(BO->RHS); 6253 return getSCEV(BO->LHS); 6264 computeKnownBits(BO->LHS, Known, getDataLayout(), 6271 const SCEV *LHS = getSCEV(BO->LHS); 6292 BO->LHS->getType()), 6305 if (ConstantInt *CI = dyn_cast<ConstantInt>(BO->RHS)) { 6306 const SCEV *LHS = getSCEV(BO->LHS); 6325 if (ConstantInt *CI = dyn_cast<ConstantInt>(BO->RHS)) { 6328 return getNotSCEV(getSCEV(BO->LHS)); 6334 if (auto *LBO = dyn_cast<BinaryOperator>(BO->LHS)) 6339 dyn_cast<SCEVZeroExtendExpr>(getSCEV(BO->LHS))) { 6340 Type *UTy = BO->LHS->getType(); 6365 if (ConstantInt *SA = dyn_cast<ConstantInt>(BO->RHS)) { 6382 if (BO->Op && SA->getValue().ult(BitWidth - 1)) 6383 Flags = getNoWrapFlagsFromUB(BO->Op); 6387 return getMulExpr(getSCEV(BO->LHS), getSCEV(X), Flags); 6393 ConstantInt *CI = dyn_cast<ConstantInt>(BO->RHS); 6397 Type *OuterTy = BO->LHS->getType(); 6407 return getSCEV(BO->LHS); // shift by zero --> noop 6412 Operator *L = dyn_cast<Operator>(BO->LHS); 6419 if (L->getOperand(1) == BO->RHS)