Lines Matching refs:Sub

949     if (TheNeg->getOpcode() == Instruction::Sub) {  in NegateValue()
1026 for (auto Op : {Instruction::Add, Instruction::Sub, Instruction::Mul, in shouldConvertOrWithNoCommonBitsToAdd()
1062 static bool ShouldBreakUpSubtract(Instruction *Sub) { in ShouldBreakUpSubtract() argument
1064 if (match(Sub, m_Neg(m_Value())) || match(Sub, m_FNeg(m_Value()))) in ShouldBreakUpSubtract()
1068 if (isa<UndefValue>(Sub->getOperand(1))) in ShouldBreakUpSubtract()
1073 Value *V0 = Sub->getOperand(0); in ShouldBreakUpSubtract()
1075 isReassociableOp(V0, Instruction::Sub, Instruction::FSub)) in ShouldBreakUpSubtract()
1077 Value *V1 = Sub->getOperand(1); in ShouldBreakUpSubtract()
1079 isReassociableOp(V1, Instruction::Sub, Instruction::FSub)) in ShouldBreakUpSubtract()
1081 Value *VB = Sub->user_back(); in ShouldBreakUpSubtract()
1082 if (Sub->hasOneUse() && in ShouldBreakUpSubtract()
1084 isReassociableOp(VB, Instruction::Sub, Instruction::FSub))) in ShouldBreakUpSubtract()
1092 static BinaryOperator *BreakUpSubtract(Instruction *Sub, in BreakUpSubtract() argument
1099 Value *NegVal = NegateValue(Sub->getOperand(1), Sub, ToRedo); in BreakUpSubtract()
1100 BinaryOperator *New = CreateAdd(Sub->getOperand(0), NegVal, "", Sub, Sub); in BreakUpSubtract()
1101 Sub->setOperand(0, Constant::getNullValue(Sub->getType())); // Drop use of op. in BreakUpSubtract()
1102 Sub->setOperand(1, Constant::getNullValue(Sub->getType())); // Drop use of op. in BreakUpSubtract()
1103 New->takeName(Sub); in BreakUpSubtract()
1106 Sub->replaceAllUsesWith(New); in BreakUpSubtract()
1107 New->setDebugLoc(Sub->getDebugLoc()); in BreakUpSubtract()
2283 if (I->getOpcode() == Instruction::Sub) { in OptimizeInst()
2356 cast<Instruction>(BO->user_back())->getOpcode() == Instruction::Sub) in OptimizeInst()