diff options
author | Dan Gohman <gohman@apple.com> | 2009-06-27 05:16:57 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2009-06-27 05:16:57 +0000 |
commit | fe174b69526af9c2ce6215418bb9f8c9e3af9ba6 (patch) | |
tree | 3b6a5699ce7a706840de19e2160bd127b452deb4 /llvm/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll | |
parent | d17366ae72b68930bb961db2067e4d4438fdcf06 (diff) | |
download | bcm5719-llvm-fe174b69526af9c2ce6215418bb9f8c9e3af9ba6.tar.gz bcm5719-llvm-fe174b69526af9c2ce6215418bb9f8c9e3af9ba6.zip |
When a value is used multiple times within a single PHI, instructions
inserted to replace that value must dominate all of of the basic
blocks associated with the uses of the value in the PHI, not just
one of them.
llvm-svn: 74376
Diffstat (limited to 'llvm/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll')
-rw-r--r-- | llvm/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/llvm/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll b/llvm/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll new file mode 100644 index 00000000000..7119cbbc05c --- /dev/null +++ b/llvm/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll @@ -0,0 +1,33 @@ +; RUN: llvm-as < %s | opt -indvars +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" + +@ue = external global i64 + +define i32 @foo() nounwind { +entry: + br label %bb38.i + +bb14.i27: + %t0 = load i64* @ue, align 8 + %t1 = sub i64 %t0, %i.0.i35 + %t2 = add i64 %t1, 1 + br i1 undef, label %bb15.i28, label %bb19.i31 + +bb15.i28: + br label %bb19.i31 + +bb19.i31: + %y.0.i = phi i64 [ %t2, %bb15.i28 ], [ %t2, %bb14.i27 ] + br label %bb35.i + +bb35.i: + br i1 undef, label %bb37.i, label %bb14.i27 + +bb37.i: + %t3 = add i64 %i.0.i35, 1 + br label %bb38.i + +bb38.i: + %i.0.i35 = phi i64 [ 1, %entry ], [ %t3, %bb37.i ] + br label %bb35.i +} |