Lines Matching refs:Sub

877     if (TheNeg->getOpcode() == Instruction::Sub) {  in NegateValue()
895 static bool ShouldBreakUpSubtract(Instruction *Sub) { in ShouldBreakUpSubtract() argument
897 if (match(Sub, m_Neg(m_Value())) || match(Sub, m_FNeg(m_Value()))) in ShouldBreakUpSubtract()
901 if (isa<UndefValue>(Sub->getOperand(1))) in ShouldBreakUpSubtract()
906 Value *V0 = Sub->getOperand(0); in ShouldBreakUpSubtract()
908 isReassociableOp(V0, Instruction::Sub, Instruction::FSub)) in ShouldBreakUpSubtract()
910 Value *V1 = Sub->getOperand(1); in ShouldBreakUpSubtract()
912 isReassociableOp(V1, Instruction::Sub, Instruction::FSub)) in ShouldBreakUpSubtract()
914 Value *VB = Sub->user_back(); in ShouldBreakUpSubtract()
915 if (Sub->hasOneUse() && in ShouldBreakUpSubtract()
917 isReassociableOp(VB, Instruction::Sub, Instruction::FSub))) in ShouldBreakUpSubtract()
925 static BinaryOperator *BreakUpSubtract(Instruction *Sub, in BreakUpSubtract() argument
932 Value *NegVal = NegateValue(Sub->getOperand(1), Sub, ToRedo); in BreakUpSubtract()
933 BinaryOperator *New = CreateAdd(Sub->getOperand(0), NegVal, "", Sub, Sub); in BreakUpSubtract()
934 Sub->setOperand(0, Constant::getNullValue(Sub->getType())); // Drop use of op. in BreakUpSubtract()
935 Sub->setOperand(1, Constant::getNullValue(Sub->getType())); // Drop use of op. in BreakUpSubtract()
936 New->takeName(Sub); in BreakUpSubtract()
939 Sub->replaceAllUsesWith(New); in BreakUpSubtract()
940 New->setDebugLoc(Sub->getDebugLoc()); in BreakUpSubtract()
2045 if (I->getOpcode() == Instruction::Sub) { in OptimizeInst()
2115 cast<Instruction>(BO->user_back())->getOpcode() == Instruction::Sub) in OptimizeInst()