reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

include/llvm/CodeGen/BasicTTIImpl.h
 1140       Cost += ConcreteTTI->getArithmeticInstrCost(BinaryOperator::Sub, RetTy);
 1389                             : BinaryOperator::Sub;
 1415                             : BinaryOperator::Sub;
include/llvm/IR/IRBuilder.h
 1155     return CreateInsertNUWNSWBinOp(Instruction::Sub, LHS, RHS, Name,
include/llvm/IR/InstrTypes.h
  362   DEFINE_HELPERS(Sub, NSW) // CreateNSWSub
  363   DEFINE_HELPERS(Sub, NUW) // CreateNUWSub
include/llvm/IR/Operator.h
  101            I->getOpcode() == Instruction::Sub ||
  107            CE->getOpcode() == Instruction::Sub ||
  425   : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Sub> {
include/llvm/IR/PatternMatch.h
  771 inline BinaryOp_match<LHS, RHS, Instruction::Sub> m_Sub(const LHS &L,
  773   return BinaryOp_match<LHS, RHS, Instruction::Sub>(L, R);
  943 inline OverflowingBinaryOp_match<LHS, RHS, Instruction::Sub,
  946   return OverflowingBinaryOp_match<LHS, RHS, Instruction::Sub,
  976 inline OverflowingBinaryOp_match<LHS, RHS, Instruction::Sub,
  979   return OverflowingBinaryOp_match<LHS, RHS, Instruction::Sub,
 1849 inline BinaryOp_match<cst_pred_ty<is_zero_int>, ValTy, Instruction::Sub>
lib/Analysis/BasicAliasAnalysis.cpp
  330       case Instruction::Sub:
lib/Analysis/CFLGraph.h
  563       case Instruction::Sub:
lib/Analysis/ConstantFolding.cpp
  743   if (Opc == Instruction::Sub) {
  853           if (CE && CE->getOpcode() == Instruction::Sub &&
lib/Analysis/DemandedBits.cpp
  175   case Instruction::Sub:
lib/Analysis/IVDescriptors.cpp
  568   case Instruction::Sub:
lib/Analysis/InstructionSimplify.cpp
  698   if (Constant *C = foldOrCommuteConstant(Instruction::Sub, Op0, Op1, Q))
  737     if (Value *V = SimplifyBinOp(Instruction::Sub, Y, Z, Q, MaxRecurse-1))
  745     if (Value *V = SimplifyBinOp(Instruction::Sub, X, Z, Q, MaxRecurse-1))
  759     if (Value *V = SimplifyBinOp(Instruction::Sub, X, Y, Q, MaxRecurse-1))
  761       if (Value *W = SimplifyBinOp(Instruction::Sub, V, Z, Q, MaxRecurse-1)) {
  767     if (Value *V = SimplifyBinOp(Instruction::Sub, X, Z, Q, MaxRecurse-1))
  769       if (Value *W = SimplifyBinOp(Instruction::Sub, V, Y, Q, MaxRecurse-1)) {
  781     if (Value *V = SimplifyBinOp(Instruction::Sub, Z, X, Q, MaxRecurse-1))
  794       if (Value *V = SimplifyBinOp(Instruction::Sub, X, Y, Q, MaxRecurse-1))
 4774   case Instruction::Sub:
 4910   if (LoadedCE->getOpcode() != Instruction::Sub)
 5264   case Instruction::Sub:
lib/Analysis/LoopInfo.cpp
  355       IndDesc.getInductionOpcode() != Instruction::Sub)
lib/Analysis/ObjCARCInstKind.cpp
  254     case Instruction::Sub:
lib/Analysis/ScalarEvolution.cpp
 4509   case Instruction::Sub:
 6183             if (BO->Opcode == Instruction::Sub)
 6191         if (BO->Opcode == Instruction::Sub)
 6198                        NewBO->Opcode != Instruction::Sub)) {
 6240     case Instruction::Sub: {
 6462       if (BO->Opcode == Instruction::Sub && BO->IsNSW) {
lib/Analysis/ScalarEvolutionExpander.cpp
  742       Sum = InsertBinop(Instruction::Sub, Sum, W, SCEV::FlagAnyWrap,
  825       Prod = InsertBinop(Instruction::Sub, Constant::getNullValue(Ty), Prod,
  945   case Instruction::Sub: {
lib/Analysis/TargetTransformInfo.cpp
 1156   case Instruction::Sub:
lib/Analysis/ValueTracking.cpp
 1221   case Instruction::Sub: {
 1364             Opcode == Instruction::Sub ||
 1408             else if (Opcode == Instruction::Sub && LL == I) {
 2534     case Instruction::Sub:
 4324   case Instruction::Sub:
lib/AsmParser/LLLexer.cpp
  842   INSTKEYWORD(sub,   Sub);  INSTKEYWORD(fsub,   FSub);
lib/AsmParser/LLParser.cpp
 3461     if (Opc == Instruction::Add || Opc == Instruction::Sub ||
 3486     case Instruction::Sub:
lib/Bitcode/Reader/BitcodeReader.cpp
 1083     return IsFP ? Instruction::FSub : Instruction::Sub;
 2543               Opc == Instruction::Sub ||
 3901             Opc == Instruction::Sub ||
lib/Bitcode/Writer/BitcodeWriter.cpp
  532   case Instruction::Sub:
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
 2263   case Instruction::Sub: {
 2304     case Instruction::Sub: return MCBinaryExpr::createSub(LHS, RHS, Ctx);
lib/CodeGen/SelectionDAG/FastISel.cpp
 1797   case Instruction::Sub:
lib/CodeGen/TargetLoweringBase.cpp
 1594   case Sub:            return ISD::SUB;
lib/ExecutionEngine/ExecutionEngine.cpp
  780     case Instruction::Sub:
  800           case Instruction::Sub: GV.IntVal = LHS.IntVal - RHS.IntVal; break;
lib/ExecutionEngine/Interpreter/Execution.cpp
  787     case Instruction::Sub:   INTEGER_VECTOR_OPERATION(-) break;
  824     case Instruction::Sub:   R.IntVal = Src1.IntVal - Src2.IntVal; break;
 2074   case Instruction::Sub:  Dest.IntVal = Op0.IntVal - Op1.IntVal; break;
lib/FuzzMutate/Operations.cpp
   20   Ops.push_back(binOpDescriptor(1, Instruction::Sub));
   98   case Instruction::Sub:
lib/IR/ConstantFold.cpp
 1003     case Instruction::Sub:
 1105     case Instruction::Sub:
 1228       case Instruction::Sub:
 1349     case Instruction::Sub:
lib/IR/ConstantRange.cpp
  255   case Instruction::Sub: {
  783   case Instruction::Sub:
lib/IR/Constants.cpp
  521     if (CE->getOpcode() == Instruction::Sub) {
 1879   case Instruction::Sub:
 2265   return get(Instruction::Sub, C1, C2, Flags);
 2368     case Instruction::Sub:  // X - 0 = X
lib/IR/Globals.cpp
  450     case Instruction::Sub: {
lib/IR/Instruction.cpp
  123   case Instruction::Sub:
  314   case Sub: return "sub";
lib/IR/Instructions.cpp
 2277   case Add: case Sub:
 2357   return new BinaryOperator(Instruction::Sub,
 2365   return new BinaryOperator(Instruction::Sub,
lib/IR/IntrinsicInst.cpp
  237       return Instruction::Sub;
lib/IR/Verifier.cpp
 3166   case Instruction::Sub:
lib/Target/AArch64/AArch64FastISel.cpp
  700   case Instruction::Sub: {
 1937   case Instruction::Sub:
 5154   case Instruction::Sub:
lib/Target/AArch64/AArch64ISelLowering.cpp
 8701   case Instruction::Sub:
lib/Target/AArch64/AArch64TargetTransformInfo.cpp
  106   case Instruction::Sub:
  222   case Instruction::Sub: // USUBL(2), SSUBL(2), USUBW(2), SSUBW(2).
  511       Cost += getArithmeticInstrCost(Instruction::Sub, Ty, Opd1Info, Opd2Info,
lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
  255     return B.CreateBinOp(Instruction::Sub, LHS, RHS);
lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
  250   case Instruction::Sub:
  266   case Instruction::Sub:
lib/Target/ARM/ARMCodeGenPrepare.cpp
  342   if (Opc != Instruction::Add && Opc != Instruction::Sub)
  352   bool IsDecreasing = ((Opc == Instruction::Sub) && !NegImm) ||
  438   case Instruction::Sub:
  866   if (I->getOpcode() != Instruction::Add && I->getOpcode() != Instruction::Sub)
lib/Target/ARM/ARMFastISel.cpp
 2848     case Instruction::Sub:
lib/Target/ARM/ARMISelLowering.cpp
14758     case Instruction::Sub:
14779     case Instruction::Sub:
lib/Target/PowerPC/PPCFastISel.cpp
 1964     case Instruction::Sub:
lib/Target/PowerPC/PPCTargetTransformInfo.cpp
  153   case Instruction::Sub:
lib/Target/RISCV/RISCVTargetTransformInfo.cpp
   59   case Instruction::Sub:
lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
  109   case Instruction::Sub:
  933   if ((UserI->getOpcode() == Instruction::Sub ||
  944   case Instruction::Sub:
lib/Target/WebAssembly/WebAssemblyFastISel.cpp
  355   case Instruction::Sub: {
lib/Target/X86/X86TargetTransformInfo.cpp
  271         Cost += getArithmeticInstrCost(Instruction::Sub, Ty, Op1Info, Op2Info);
 3006   case Instruction::Sub:
lib/Target/XCore/XCoreLowerThreadLocal.cpp
   89     case Instruction::Sub:
lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp
   51   case Instruction::Sub:
  113     case Instruction::Sub:
  344     case Instruction::Sub:
lib/Transforms/InstCombine/InstCombineAddSub.cpp
 1105           I.getOpcode() == Instruction::Sub) &&
 1119   if (I.getOpcode() == Instruction::Sub && I.getOperand(1) != Select)
 1147     if (I.getOpcode() == Instruction::Sub)
 1186   if (I.getOpcode() == Instruction::Sub
 1691       assert(BO->getOpcode() == Instruction::Sub &&
lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
 1715   Value *NewBO = Opc == Instruction::Sub ? Builder.CreateBinOp(Opc, NewC, X)
 1823       case Instruction::Sub:
lib/Transforms/InstCombine/InstCombineCasts.cpp
  177   case Instruction::Sub:
  352   case Instruction::Sub:
  596   case Instruction::Sub:
 1001   case Instruction::Sub:
 1330   case Instruction::Sub:
lib/Transforms/InstCombine/InstCombineCompares.cpp
 2863     case Instruction::Sub:
 2964   case Instruction::Sub:
 3847   if (BO0 && BO0->getOpcode() == Instruction::Sub) {
 3851   if (BO1 && BO1->getOpcode() == Instruction::Sub) {
 3932     case Instruction::Sub:
 4439     case Instruction::Sub:
 4457     case Instruction::Sub:
lib/Transforms/InstCombine/InstCombineInternal.h
  204         BO->getOpcode() == Instruction::Sub)
  275       case Instruction::Sub:  // 0 - X (doesn't simplify, but it is safe)
  590     case Instruction::Sub: return willNotOverflowSub(LHS, RHS, CxtI, IsSigned);
lib/Transforms/InstCombine/InstCombineSelect.cpp
  251   case Instruction::Sub:   // Can only fold on the amount subtracted.
  267   case Instruction::Sub:
 1676   if ((TI->getOpcode() == Instruction::Sub &&
 1682   } else if ((FI->getOpcode() == Instruction::Sub &&
 2066   else if (AddSub->getOpcode() == Instruction::Sub)
lib/Transforms/InstCombine/InstCombineShifts.cpp
  724       case Instruction::Sub: {
  782       if (isLeftShift && Op0BO->getOpcode() == Instruction::Sub &&
lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
  426   case Instruction::Sub: {
lib/Transforms/InstCombine/InstCombineVectorOps.cpp
 1155     case Instruction::Sub:
 1219     case Instruction::Sub:
 1317     case Instruction::Sub:
lib/Transforms/InstCombine/InstructionCombining.cpp
  210   if (Opcode != Instruction::Add && Opcode != Instruction::Sub)
  487     return ROp == Instruction::Add || ROp == Instruction::Sub;
  527   if (TopOpcode == Instruction::Add || TopOpcode == Instruction::Sub) {
 1571   if (BO.getOpcode() == Instruction::Sub)
 1598   if (BO.getOpcode() == Instruction::Sub)
lib/Transforms/Instrumentation/AddressSanitizer.cpp
 1460     if (BO->getOpcode() != Instruction::Sub)
lib/Transforms/Instrumentation/PoisonChecking.cpp
  128   case Instruction::Sub: {
lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
  453   case Instruction::Sub:
  877       case Instruction::Sub:
lib/Transforms/Scalar/Float2Int.cpp
  114   case Instruction::FSub: return Instruction::Sub;
lib/Transforms/Scalar/GVN.cpp
  499     case Instruction::Sub:
lib/Transforms/Scalar/GVNSink.cpp
  447     case Instruction::Sub:
lib/Transforms/Scalar/IndVarSimplify.cpp
 1096   case Instruction::Sub:
 1197     case Instruction::Sub:
 1241   if (OpCode == Instruction::Sub)
 1258   if (OpCode != Instruction::Add && OpCode != Instruction::Sub &&
 1422   if (OpCode != Instruction::Add && OpCode != Instruction::Sub &&
 2027   case Instruction::Sub:
lib/Transforms/Scalar/LoopIdiomRecognize.cpp
 1326         !((SubOneOp->getOpcode() == Instruction::Sub && Dec->isOne()) ||
lib/Transforms/Scalar/LoopRerollPass.cpp
  747     case Instruction::Sub:
lib/Transforms/Scalar/LoopStrengthReduce.cpp
 2146         && Incr->getOpcode() != Instruction::Sub)
lib/Transforms/Scalar/NewGVN.cpp
 2002     case Instruction::Sub:
lib/Transforms/Scalar/Reassociate.cpp
  904     if (TheNeg->getOpcode() == Instruction::Sub) {
  935       isReassociableOp(V0, Instruction::Sub, Instruction::FSub))
  939       isReassociableOp(V1, Instruction::Sub, Instruction::FSub))
  944        isReassociableOp(VB, Instruction::Sub, Instruction::FSub)))
 2114   if (I->getOpcode() == Instruction::Sub) {
 2187       cast<Instruction>(BO->user_back())->getOpcode() == Instruction::Sub)
lib/Transforms/Scalar/SCCP.cpp
 1514       case Instruction::Sub:
lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
  491       BO->getOpcode() != Instruction::Sub &&
  538       BO->getOpcode() == Instruction::Sub) {
  565   if (BO->getOpcode() == Instruction::Sub)
  703     if (CI->isZero() && !(BO->getOpcode() == Instruction::Sub && OpNo == 0))
 1272       if ((opc == Instruction::Add || opc == Instruction::Sub) &&
lib/Transforms/Scalar/SpeculativeExecution.cpp
  221     case Instruction::Sub:
lib/Transforms/Utils/Local.cpp
 1695     case Instruction::Sub:
lib/Transforms/Utils/LoopRotationUtils.cpp
  548     case Instruction::Sub:
lib/Transforms/Utils/SimplifyIndVar.cpp
  415   case Instruction::Sub:
  736       BO->getOpcode() != Instruction::Sub &&
lib/Transforms/Vectorize/LoopVectorize.cpp
 4142   case Instruction::Sub:
 6188   case Instruction::Sub:
 6876     case Instruction::Sub:
lib/Transforms/Vectorize/SLPVectorizer.cpp
 2569     case Instruction::Sub:
 3083     case Instruction::Sub:
 3967     case Instruction::Sub:
 5014   case Instruction::Sub:
tools/clang/lib/CodeGen/CGAtomic.cpp
  583     PostOp = llvm::Instruction::Sub;
 1094       PostOp = llvm::Instruction::Sub;
tools/clang/lib/CodeGen/CGBuiltin.cpp
 2777                                 llvm::Instruction::Sub);
tools/clang/lib/CodeGen/CGExprScalar.cpp
 2387         llvm::Instruction::Sub;
tools/lldb/source/Expression/IRInterpreter.cpp
  588       case Instruction::Sub:
  698     case Instruction::Sub:
  753       case Instruction::Sub:
tools/llvm-stress/llvm-stress.cpp
  396     case 1:{Op = (isFloat?Instruction::FSub : Instruction::Sub); break; }
tools/polly/lib/CodeGen/IslExprBuilder.cpp
  106     case Instruction::Sub:
  122   case Instruction::Sub:
  157   return createBinOp(Instruction::Sub, LHS, RHS, Name);
unittests/IR/ConstantRangeTest.cpp
 1413         Instruction::Sub, C, OBO::NoUnsignedWrap);
 1418         Instruction::Sub, C, OBO::NoSignedWrap);
 1444       Instruction::Sub, ConstantRange(32, /* isFullSet = */ true),
 1456       Instruction::Sub, ConstantRange(32, /* isFullSet = */ true),
 1466       Instruction::Sub, APInt(32, 0), OBO::NoUnsignedWrap).isFullSet());
 1468       Instruction::Sub, APInt(32, 0), OBO::NoSignedWrap).isFullSet());
 1479                 Instruction::Sub, OneToFive, OBO::NoSignedWrap),
 1483                 Instruction::Sub, OneToFive, OBO::NoUnsignedWrap),
 1495                 Instruction::Sub, MinusFiveToMinusTwo, OBO::NoSignedWrap),
 1499                 Instruction::Sub, MinusFiveToMinusTwo, OBO::NoUnsignedWrap),
 1512                 Instruction::Sub, MinusOneToOne, OBO::NoSignedWrap),
 1516                 Instruction::Sub, MinusOneToOne, OBO::NoUnsignedWrap),
 1529                 Instruction::Sub, One, OBO::NoSignedWrap),
 1533                 Instruction::Sub, One, OBO::NoUnsignedWrap),
 1649       Instruction::Sub, OverflowingBinaryOperator::NoUnsignedWrap,
 1656       Instruction::Sub, OverflowingBinaryOperator::NoSignedWrap,
unittests/Transforms/Utils/CloningTest.cpp
   71   BinaryOperator *Sub = BinaryOperator::Create(Instruction::Sub, V, V);
unittests/Transforms/Utils/IntegerDivisionTest.cpp
   49   EXPECT_TRUE(Quotient && Quotient->getOpcode() == Instruction::Sub);
  109   EXPECT_TRUE(Remainder && Remainder->getOpcode() == Instruction::Sub);
  139   EXPECT_TRUE(Remainder && Remainder->getOpcode() == Instruction::Sub);
  170   EXPECT_TRUE(Quotient && Quotient->getOpcode() == Instruction::Sub);
  230   EXPECT_TRUE(Remainder && Remainder->getOpcode() == Instruction::Sub);
  260   EXPECT_TRUE(Remainder && Remainder->getOpcode() == Instruction::Sub);