add some tests for memdep phi translation + PRE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89996 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2009-11-27 06:42:42 +00:00
parent 852dfbdf02
commit d280d85791

View File

@ -11,8 +11,7 @@ block2:
; CHECK-NEXT: load i32* %p
block3:
%b = bitcast i32 0 to i32
store i32 %b, i32* %p
store i32 0, i32* %p
br label %block4
block4:
@ -22,3 +21,55 @@ block4:
; CHECK-NEXT: phi i32
; CHECK-NEXT: ret i32
}
define i32 @test2(i32* %p, i32* %q, i1 %C) {
; CHECK: @test2
block1:
br i1 %C, label %block2, label %block3
block2:
br label %block4
; CHECK: block2:
; CHECK-NEXT: load i32* %q
block3:
store i32 0, i32* %p
br label %block4
block4:
%P2 = phi i32* [%p, %block3], [%q, %block2]
%PRE = load i32* %P2
ret i32 %PRE
; CHECK: block4:
; CHECK-NEXT: phi i32 [
; CHECK-NOT: load
; CHECK: ret i32
}
define i32 @test3(i32* %p, i32* %q, i32** %Hack, i1 %C) {
; CHECK: @test3
block1:
%B = getelementptr i32* %q, i32 1
store i32* %B, i32** %Hack
br i1 %C, label %block2, label %block3
block2:
br label %block4
; CHECK: block2:
; CHECK-NEXT: load i32* %B
block3:
%A = getelementptr i32* %p, i32 1
store i32 0, i32* %A
br label %block4
block4:
%P2 = phi i32* [%p, %block3], [%q, %block2]
%P3 = getelementptr i32* %P2, i32 1
%PRE = load i32* %P3
ret i32 %PRE
; CHECK: block4:
; CHECK-NEXT: phi i32 [
; CHECK-NOT: load
; CHECK: ret i32
}