diff options
author | Chris Lattner <sabre@nondot.org> | 2009-11-08 08:36:40 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-11-08 08:36:40 +0000 |
commit | 99db7963b47cab962cc51c90f8af470c6f7f658f (patch) | |
tree | 9eb87d0b23b44cc0e55cfe9bb6fe13088d6a1abd | |
parent | 7c8b29ef61dd1315171d2ab887da1c278dbbfef0 (diff) | |
download | bcm5719-llvm-99db7963b47cab962cc51c90f8af470c6f7f658f.tar.gz bcm5719-llvm-99db7963b47cab962cc51c90f8af470c6f7f658f.zip |
another more interesting test.
llvm-svn: 86445
-rw-r--r-- | llvm/test/Transforms/InstCombine/phi.ll | 31 |
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 +} + |