Move PHI tests to phi.ll, out of select.ll.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119153 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan Sands 2010-11-15 16:43:28 +00:00
parent 94ed5fca3f
commit 503dcc9822
2 changed files with 48 additions and 49 deletions

View File

@ -423,3 +423,49 @@ bb2: ; preds = %bb1, %entry
ret i32 %res
}
define i1 @test18(i1 %cond) {
%zero = alloca i32
%one = alloca i32
br i1 %cond, label %true, label %false
true:
br label %ret
false:
br label %ret
ret:
%ptr = phi i32* [ %zero, %true ] , [ %one, %false ]
%isnull = icmp eq i32* %ptr, null
ret i1 %isnull
; CHECK: @test18
; CHECK: ret i1 false
}
define i1 @test19(i1 %cond, double %x) {
br i1 %cond, label %true, label %false
true:
br label %ret
false:
br label %ret
ret:
%p = phi double [ %x, %true ], [ 0x7FF0000000000000, %false ]; RHS = +infty
%cmp = fcmp ule double %x, %p
ret i1 %cmp
; CHECK: @test19
; CHECK: ret i1 true
}
define i1 @test20(i1 %cond) {
%a = alloca i32
%b = alloca i32
%c = alloca i32
br i1 %cond, label %true, label %false
true:
br label %ret
false:
br label %ret
ret:
%p = phi i32* [ %a, %true ], [ %b, %false ]
%r = icmp eq i32* %p, %c
ret i1 %r
; CHECK: @test20
; CHECK: ret i1 false
}

View File

@ -500,59 +500,12 @@ define i1 @test40(i1 %cond) {
; CHECK: ret i1 false
}
define i1 @test41(i1 %cond) {
%zero = alloca i32
%one = alloca i32
br i1 %cond, label %true, label %false
true:
br label %ret
false:
br label %ret
ret:
%ptr = phi i32* [ %zero, %true ] , [ %one, %false ]
%isnull = icmp eq i32* %ptr, null
ret i1 %isnull
; CHECK: @test41
; CHECK: ret i1 false
}
define i1 @test42(i1 %cond, double %x) {
br i1 %cond, label %true, label %false
true:
br label %ret
false:
br label %ret
ret:
%p = phi double [ %x, %true ], [ 0x7FF0000000000000, %false ]; RHS = +infty
%cmp = fcmp ule double %x, %p
ret i1 %cmp
; CHECK: @test42
; CHECK: ret i1 true
}
define i1 @test43(i1 %cond) {
%a = alloca i32
%b = alloca i32
%c = alloca i32
br i1 %cond, label %true, label %false
true:
br label %ret
false:
br label %ret
ret:
%p = phi i32* [ %a, %true ], [ %b, %false ]
%r = icmp eq i32* %p, %c
ret i1 %r
; CHECK: @test43
; CHECK: ret i1 false
}
define i32 @test44(i1 %cond, i32 %x, i32 %y) {
define i32 @test41(i1 %cond, i32 %x, i32 %y) {
%z = and i32 %x, %y
%s = select i1 %cond, i32 %y, i32 %z
%r = and i32 %x, %s
ret i32 %r
; CHECK: @test44
; CHECK: @test41
; CHECK: %r = and i32 %x, %y
; CHECK: ret i32 %r
}