[llvm-commits] [llvm] r51536 - in /llvm/trunk: lib/Transforms/Scalar/InstructionCombining.cpp test/Transforms/InstCombine/2008-05-23-CompareFold.ll

Chris Lattner sabre at nondot.org
Fri May 23 21:06:29 PDT 2008


Author: lattner
Date: Fri May 23 23:06:28 2008
New Revision: 51536

URL: http://llvm.org/viewvc/llvm-project?rev=51536&view=rev
Log:
Fix a serious brain-o.  Obviously no-one reviewed my patch :(

This fixes PR2359

Added:
    llvm/trunk/test/Transforms/InstCombine/2008-05-23-CompareFold.ll
Modified:
    llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp

Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=51536&r1=51535&r2=51536&view=diff

==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Fri May 23 23:06:28 2008
@@ -5571,7 +5571,8 @@
   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 @@
   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));
   }

Added: llvm/trunk/test/Transforms/InstCombine/2008-05-23-CompareFold.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2008-05-23-CompareFold.ll?rev=51536&view=auto

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2008-05-23-CompareFold.ll (added)
+++ llvm/trunk/test/Transforms/InstCombine/2008-05-23-CompareFold.ll Fri May 23 23:06:28 2008
@@ -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          ; <i8> [#uses=1]
+       %tmp462463 = sitofp i8 %tmp462 to float         ; <float> [#uses=1]
+       %tmp464 = fcmp ugt float %tmp462463, 0x47EFFFFFE0000000         ; <i1>
+       ret i1 %tmp464
+}
+
+





More information about the llvm-commits mailing list