[llvm-commits] [llvm] r85739 - in /llvm/trunk/test/Transforms/InstCombine: phi-merge.ll phi.ll

Chris Lattner sabre at nondot.org
Sun Nov 1 12:10:12 PST 2009


Author: lattner
Date: Sun Nov  1 14:10:11 2009
New Revision: 85739

URL: http://llvm.org/viewvc/llvm-project?rev=85739&view=rev
Log:
merge phi-merge.ll into phi.ll

I don't know what Dan wants to do with phi-merge-gep.ll, I'll let
him deal with it because instcombine may end up sinking these.

Removed:
    llvm/trunk/test/Transforms/InstCombine/phi-merge.ll
Modified:
    llvm/trunk/test/Transforms/InstCombine/phi.ll

Removed: llvm/trunk/test/Transforms/InstCombine/phi-merge.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/phi-merge.ll?rev=85738&view=auto

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/phi-merge.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/phi-merge.ll (removed)
@@ -1,31 +0,0 @@
-; RUN: opt < %s -instcombine -S | not grep {phi i32}
-; PR1777
-
-declare i1 @rrr()
-
-define i1 @zxcv() {
-entry:
-%a = alloca i32
-%i = ptrtoint i32* %a to i32
-%b = call i1 @rrr()
-br i1 %b, label %one, label %two
-
-one:
-%x = phi i32 [%i, %entry], [%y, %two]
-%c = call i1 @rrr()
-br i1 %c, label %two, label %end
-
-two:
-%y = phi i32 [%i, %entry], [%x, %one]
-%d = call i1 @rrr()
-br i1 %d, label %one, label %end
-
-end:
-%f = phi i32 [ %x, %one], [%y, %two]
-; Change the %f to %i, and the optimizer suddenly becomes a lot smarter
-; even though %f must equal %i at this point
-%g = inttoptr i32 %f to i32*
-store i32 10, i32* %g
-%z = call i1 @rrr()
-ret i1 %z
-}

Modified: llvm/trunk/test/Transforms/InstCombine/phi.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/phi.ll?rev=85739&r1=85738&r2=85739&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/phi.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/phi.ll Sun Nov  1 14:10:11 2009
@@ -186,6 +186,39 @@
 ; CHECK-NEXT:        phi i32* [ %B, %bb ], [ %A, %bb1 ]
 ; CHECK-NEXT:   %E = load i32* %{{[^,]*}}, align 16
 ; CHECK-NEXT:   ret i32 %E
+}
+
+
+; PR1777
+declare i1 @test11a()
+
+define i1 @test11() {
+entry:
+  %a = alloca i32
+  %i = ptrtoint i32* %a to i32
+  %b = call i1 @test11a()
+  br i1 %b, label %one, label %two
+
+one:
+  %x = phi i32 [%i, %entry], [%y, %two]
+  %c = call i1 @test11a()
+  br i1 %c, label %two, label %end
+
+two:
+  %y = phi i32 [%i, %entry], [%x, %one]
+  %d = call i1 @test11a()
+  br i1 %d, label %one, label %end
 
+end:
+  %f = phi i32 [ %x, %one], [%y, %two]
+  ; Change the %f to %i, and the optimizer suddenly becomes a lot smarter
+  ; even though %f must equal %i at this point
+  %g = inttoptr i32 %f to i32*
+  store i32 10, i32* %g
+  %z = call i1 @test11a()
+  ret i1 %z
+; CHECK: @test11
+; CHECK-NOT: phi i32
+; CHECK: ret i1 %z
 }
 





More information about the llvm-commits mailing list