• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Analysis/

Lines Matching refs:Add

2043         const SCEVAddExpr *Add = cast<SCEVAddExpr>(Mul->getOperand(1));
2046 Add->op_begin(), Add->getNumOperands(),
2119 return Instruction::Add;
2300 while (const SCEVAddExpr *Add = dyn_cast<SCEVAddExpr>(Ops[Idx])) {
2302 Add->getNumOperands() > AddOpsInlineThreshold)
2307 Ops.append(Add->op_begin(), Add->op_end());
2696 if (const SCEVAddExpr *Add = dyn_cast<SCEVAddExpr>(Ops[1]))
2697 // If any of Add's ops are Adds or Muls with a constant, apply this
2701 // profitable; for example, Add = (C0 + X) * Y + Z. Maybe the scope of
2703 if (Add->getNumOperands() == 2 && containsConstantInAddMulChain(Add))
2704 return getAddExpr(getMulExpr(LHSC, Add->getOperand(0),
2706 getMulExpr(LHSC, Add->getOperand(1),
2732 if (const SCEVAddExpr *Add = dyn_cast<SCEVAddExpr>(Ops[1])) {
2735 for (const SCEV *AddOp : Add->operands()) {
3291 // Add the field offset to the running total offset.
3314 // Add the element offset to the running total offset.
3319 // Add the total offset from all the GEP indices to the base.
3618 const auto *Add = dyn_cast<SCEVAddExpr>(S);
3619 if (!Add)
3622 if (Add->getNumOperands() != 2)
3625 auto *ConstOp = dyn_cast<SCEVConstant>(Add->getOperand(0));
3629 return {Add->getOperand(1), ConstOp->getValue()};
3753 const SCEVAddExpr *Add = dyn_cast<SCEVAddExpr>(Expr);
3754 if (!Add || Add->getNumOperands() != 2 ||
3755 !Add->getOperand(0)->isAllOnesValue())
3758 const SCEVMulExpr *AddRHS = dyn_cast<SCEVMulExpr>(Add->getOperand(1));
4242 Instruction::Add, IncRange, OBO::NoSignedWrap);
4252 Instruction::Add, IncRange, OBO::NoUnsignedWrap);
4303 case Instruction::Add:
4319 return BinaryOp(Instruction::Add, Op->getOperand(0), Op->getOperand(1));
4523 const auto *Add = dyn_cast<SCEVAddExpr>(BEValue);
4524 if (!Add)
4529 unsigned FoundIndex = Add->getNumOperands();
4532 for (unsigned i = 0, e = Add->getNumOperands(); i != e; ++i)
4534 isSimpleCastedPHI(Add->getOperand(i), SymbolicPHI, Signed, *this)))
4540 if (FoundIndex == Add->getNumOperands())
4545 for (unsigned i = 0, e = Add->getNumOperands(); i != e; ++i)
4547 Ops.push_back(Add->getOperand(i));
4771 if (BO->Opcode != Instruction::Add)
4853 if (const SCEVAddExpr *Add = dyn_cast<SCEVAddExpr>(BEValue)) {
4856 unsigned FoundIndex = Add->getNumOperands();
4857 for (unsigned i = 0, e = Add->getNumOperands(); i != e; ++i)
4858 if (Add->getOperand(i) == SymbolicName)
4864 if (FoundIndex != Add->getNumOperands()) {
4867 for (unsigned i = 0, e = Add->getNumOperands(); i != e; ++i)
4869 Ops.push_back(SCEVBackedgeConditionFolder::rewrite(Add->getOperand(i),
4881 if (BO->Opcode == Instruction::Add && BO->LHS == PN) {
5373 if (const SCEVAddExpr *Add = dyn_cast<SCEVAddExpr>(S)) {
5374 ConstantRange X = getRangeRef(Add->getOperand(0), SignHint);
5376 if (Add->hasNoSignedWrap())
5378 if (Add->hasNoUnsignedWrap())
5380 for (unsigned i = 1, e = Add->getNumOperands(); i != e; ++i)
5381 X = X.addWithNoWrap(getRangeRef(Add->getOperand(i), SignHint),
5383 return setRange(Add, SignHint,
5986 case Instruction::Add: {
6026 if (!NewBO || (NewBO->Opcode != Instruction::Add &&
6129 // X*4+1 which got turned into X*4|1. Handle this as an Add so loop
11594 // Add recurrences are never invariant in the function-body (null loop).
12057 // flag. Add the nusw flag as an assumption that we could make.
12073 // flag. Add the nssw flag as an assumption that we could make.
12437 const auto *Add = dyn_cast<SCEVAddExpr>(Expr);
12438 if (Add == nullptr || Add->getNumOperands() != 2)
12441 const SCEV *A = Add->getOperand(1);
12442 const auto *Mul = dyn_cast<SCEVMulExpr>(Add->getOperand(0));