Index: lib/Transforms/InstCombine/InstCombineMulDivRem.cpp |
diff --git a/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp b/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp |
index ecc9fc3e456066c80bc0dce119a6dcca93fa34d8..0ac0ca27acf60e548474d6663c4c895b9335fa61 100644 |
--- a/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp |
+++ b/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp |
@@ -525,32 +525,31 @@ Instruction *InstCombiner::visitFMul(BinaryOperator &I) { |
} |
// B * (uitofp i1 C) -> select C, B, 0 |
- if (I.hasNoNaNs() && I.hasNoInfs() && I.hasNoSignedZeros()) { |
- Value *LHS = Op0, *RHS = Op1; |
- Value *B, *C; |
- if (!match(RHS, m_UIToFp(m_Value(C)))) |
- std::swap(LHS, RHS); |
- |
- if (match(RHS, m_UIToFp(m_Value(C))) && C->getType()->isIntegerTy(1)) { |
- B = LHS; |
- Value *Zero = ConstantFP::getNegativeZero(B->getType()); |
- return SelectInst::Create(C, B, Zero); |
- } |
+ if(I.hasNoNaNs() && I.hasNoInfs() && I.hasNoSignedZeros()) { |
+ Value *LHS=Op0, *RHS=Op1; |
+ Value *B, *C; |
+ if (!match(RHS, m_UIToFp(m_Value(C)))) |
+ std::swap(LHS, RHS); |
+ |
+ if (match(RHS, m_UIToFp(m_Value(C)))) { |
+ B=LHS; |
+ Value *Zero = ConstantFP::getNegativeZero(B->getType()); |
+ return SelectInst::Create(C, B, Zero); |
+ } |
} |
// A * (1 - uitofp i1 C) -> select C, 0, A |
- if (I.hasNoNaNs() && I.hasNoInfs() && I.hasNoSignedZeros()) { |
- Value *LHS = Op0, *RHS = Op1; |
- Value *A, *C; |
- if (!match(RHS, m_FSub(m_FPOne(), m_UIToFp(m_Value(C))))) |
- std::swap(LHS, RHS); |
- |
- if (match(RHS, m_FSub(m_FPOne(), m_UIToFp(m_Value(C)))) && |
- C->getType()->isIntegerTy(1)) { |
- A = LHS; |
- Value *Zero = ConstantFP::getNegativeZero(A->getType()); |
- return SelectInst::Create(C, Zero, A); |
- } |
+ if(I.hasNoNaNs() && I.hasNoInfs() && I.hasNoSignedZeros()) { |
+ Value *LHS=Op0, *RHS=Op1; |
+ Value *A, *C; |
+ if (!match(RHS, m_FSub(m_FPOne(), m_UIToFp(m_Value(C))))) |
+ std::swap(LHS, RHS); |
+ |
+ if (match(RHS, m_FSub(m_FPOne(), m_UIToFp(m_Value(C))))) { |
+ A=LHS; |
+ Value *Zero = ConstantFP::getNegativeZero(A->getType()); |
+ return SelectInst::Create(C, Zero, A); |
+ } |
} |
if (!isa<Constant>(Op1)) |