1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll
Dan Gohman 4acfd5098d 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
2009-06-27 05:16:57 +00:00

34 lines
713 B
LLVM

; 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
}