diff options
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp b/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp index c15fd35e47c..80c6595904e 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp @@ -1374,16 +1374,9 @@ Instruction *InstCombiner::visitSelectInst(SelectInst &SI) { auto SPF = SPR.Flavor; if (SelectPatternResult::isMinOrMax(SPF)) { - // Canonicalize so that - // - type casts are outside select patterns. - // - float clamp is transformed to min/max pattern - Value *CmpLHS = cast<CmpInst>(CondVal)->getOperand(0); - Value *CmpRHS = cast<CmpInst>(CondVal)->getOperand(1); - if ((LHS->getType()->getPrimitiveSizeInBits() != - SelType->getPrimitiveSizeInBits()) || - (LHS->getType()->isFPOrFPVectorTy() && - ((CmpLHS != LHS && CmpLHS != RHS) || - (CmpRHS != LHS && CmpRHS != RHS)))) { + // Canonicalize so that type casts are outside select patterns. + if (LHS->getType()->getPrimitiveSizeInBits() != + SelType->getPrimitiveSizeInBits()) { CmpInst::Predicate Pred = getCmpPredicateForMinMax(SPF, SPR.Ordered); Value *Cmp; |