summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-11-08 08:36:40 +0000
committerChris Lattner <sabre@nondot.org>2009-11-08 08:36:40 +0000
commit99db7963b47cab962cc51c90f8af470c6f7f658f (patch)
tree9eb87d0b23b44cc0e55cfe9bb6fe13088d6a1abd
parent7c8b29ef61dd1315171d2ab887da1c278dbbfef0 (diff)
downloadbcm5719-llvm-99db7963b47cab962cc51c90f8af470c6f7f658f.tar.gz
bcm5719-llvm-99db7963b47cab962cc51c90f8af470c6f7f658f.zip
another more interesting test.
llvm-svn: 86445
-rw-r--r--llvm/test/Transforms/InstCombine/phi.ll31
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/phi.ll b/llvm/test/Transforms/InstCombine/phi.ll
index 23e41cab025..f4cb6223e74 100644
--- a/llvm/test/Transforms/InstCombine/phi.ll
+++ b/llvm/test/Transforms/InstCombine/phi.ll
@@ -253,3 +253,34 @@ end:
; CHECK: ret i64
}
+declare void @test13f(double, i32)
+
+define void @test13(i1 %cond, i32 %V1, double %Vald) {
+entry:
+ %tmp42 = zext i32 %V1 to i128
+ br i1 %cond, label %end, label %two
+
+two:
+ %Val = bitcast double %Vald to i64
+ %tmp36 = zext i64 %Val to i128 ; <i128> [#uses=1]
+ %tmp37 = shl i128 %tmp36, 64 ; <i128> [#uses=1]
+ %ins39 = or i128 %tmp42, %tmp37 ; <i128> [#uses=1]
+ br label %end
+
+end:
+ %tmp869.0 = phi i128 [ %tmp42, %entry ], [ %ins39, %two ]
+ %tmp32 = trunc i128 %tmp869.0 to i32
+ %tmp29 = lshr i128 %tmp869.0, 64 ; <i128> [#uses=1]
+ %tmp30 = trunc i128 %tmp29 to i64 ; <i64> [#uses=1]
+ %tmp31 = bitcast i64 %tmp30 to double
+
+ call void @test13f(double %tmp31, i32 %tmp32)
+ ret void
+; CHECK: @test13
+; CHECK-NOT: zext
+; CHECK: end:
+; CHECK-NEXT: phi double [ 0.000000e+00, %entry ], [ %Vald, %two ]
+; CHECK-NEXT: call void @test13f(double {{[^,]*}}, i32 %V1)
+; CHECK: ret void
+}
+
OpenPOWER on IntegriCloud