From 393f7eb60a8114717012c50571500dae2696daaa Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 24 May 2008 04:06:28 +0000 Subject: [PATCH] Fix a serious brain-o. Obviously no-one reviewed my patch :( This fixes PR2359 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51536 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/InstructionCombining.cpp | 6 ++++-- test/Transforms/InstCombine/2008-05-23-CompareFold.ll | 11 +++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 test/Transforms/InstCombine/2008-05-23-CompareFold.ll diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index d7c6c797710..a6cbc201637 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -5571,7 +5571,8 @@ Instruction *InstCombiner::FoldFCmp_IntToFP_Cst(FCmpInst &I, SMax.convertFromAPInt(APInt::getSignedMaxValue(IntWidth), true, APFloat::rmNearestTiesToEven); if (SMax.compare(RHS) == APFloat::cmpLessThan) { // smax < 13123.0 - if (ICmpInst::ICMP_NE || ICmpInst::ICMP_SLT || Pred == ICmpInst::ICMP_SLE) + if (Pred == ICmpInst::ICMP_NE || Pred == ICmpInst::ICMP_SLT || + Pred == ICmpInst::ICMP_SLE) return ReplaceInstUsesWith(I, ConstantInt::get(Type::Int1Ty, 1)); return ReplaceInstUsesWith(I, ConstantInt::get(Type::Int1Ty, 0)); } @@ -5581,7 +5582,8 @@ Instruction *InstCombiner::FoldFCmp_IntToFP_Cst(FCmpInst &I, SMin.convertFromAPInt(APInt::getSignedMinValue(IntWidth), true, APFloat::rmNearestTiesToEven); if (SMin.compare(RHS) == APFloat::cmpGreaterThan) { // smin > 12312.0 - if (ICmpInst::ICMP_NE || ICmpInst::ICMP_SGT || Pred == ICmpInst::ICMP_SGE) + if (Pred == ICmpInst::ICMP_NE || Pred == ICmpInst::ICMP_SGT || + Pred == ICmpInst::ICMP_SGE) return ReplaceInstUsesWith(I, ConstantInt::get(Type::Int1Ty, 1)); return ReplaceInstUsesWith(I, ConstantInt::get(Type::Int1Ty, 0)); } diff --git a/test/Transforms/InstCombine/2008-05-23-CompareFold.ll b/test/Transforms/InstCombine/2008-05-23-CompareFold.ll new file mode 100644 index 00000000000..c0f34e68a9d --- /dev/null +++ b/test/Transforms/InstCombine/2008-05-23-CompareFold.ll @@ -0,0 +1,11 @@ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i1 false} +; PR2359 +define i1 @f(i8* %x) { +entry: + %tmp462 = load i8* %x, align 1 ; [#uses=1] + %tmp462463 = sitofp i8 %tmp462 to float ; [#uses=1] + %tmp464 = fcmp ugt float %tmp462463, 0x47EFFFFFE0000000 ; + ret i1 %tmp464 +} + +