[llvm] r303364 - [InstCombine] move test and use better checks; NFC

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Thu May 18 10:48:07 PDT 2017


Author: spatel
Date: Thu May 18 12:48:07 2017
New Revision: 303364

URL: http://llvm.org/viewvc/llvm-project?rev=303364&view=rev
Log:
[InstCombine] move test and use better checks; NFC

Previously, this test was checking for 'or i1', but that was actually matched by 'xor i1'.

Removed:
    llvm/trunk/test/Transforms/InstCombine/2008-09-29-FoldingOr.ll
Modified:
    llvm/trunk/test/Transforms/InstCombine/set.ll

Removed: llvm/trunk/test/Transforms/InstCombine/2008-09-29-FoldingOr.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2008-09-29-FoldingOr.ll?rev=303363&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2008-09-29-FoldingOr.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/2008-09-29-FoldingOr.ll (removed)
@@ -1,10 +0,0 @@
-; RUN: opt < %s -instcombine -S | grep "or i1"
-; PR2844
-
-define i32 @test(i32 %p_74) {
-	%A = icmp eq i32 %p_74, 0		; <i1> [#uses=1]
-	%B = icmp slt i32 %p_74, -638208501		; <i1> [#uses=1]
-	%or.cond = or i1 %A, %B		; <i1> [#uses=1]
-	%iftmp.10.0 = select i1 %or.cond, i32 0, i32 1		; <i32> [#uses=1]
-	ret i32 %iftmp.10.0
-}

Modified: llvm/trunk/test/Transforms/InstCombine/set.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/set.ll?rev=303364&r1=303363&r2=303364&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/set.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/set.ll Thu May 18 12:48:07 2017
@@ -175,6 +175,23 @@ define i1 @xor_of_icmps(i64 %a) {
   ret i1 %xor
 }
 
+; https://bugs.llvm.org/show_bug.cgi?id=2844
+
+define i32 @PR2844(i32 %x) {
+; CHECK-LABEL: @PR2844(
+; CHECK-NEXT:    [[A:%.*]] = icmp eq i32 %x, 0
+; CHECK-NEXT:    [[B:%.*]] = icmp sgt i32 %x, -638208502
+; CHECK-NEXT:    [[NOT_OR:%.*]] = xor i1 [[A]], [[B]]
+; CHECK-NEXT:    [[SEL:%.*]] = zext i1 [[NOT_OR]] to i32
+; CHECK-NEXT:    ret i32 [[SEL]]
+;
+  %A = icmp eq i32 %x, 0
+  %B = icmp slt i32 %x, -638208501
+  %or = or i1 %A, %B
+  %sel = select i1 %or, i32 0, i32 1
+  ret i32 %sel
+}
+
 define i1 @test16(i32 %A) {
 ; CHECK-LABEL: @test16(
 ; CHECK-NEXT:    ret i1 false




More information about the llvm-commits mailing list