; RUN: opt < %s -passes='print<phi-values>' -disable-output 2>&1 | FileCheck %s

@X = common global i32 0

; CHECK-LABEL: PHI Values for function: simple
define void @simple(i32* %ptr) {
entry:
  br i1 undef, label %if, label %else

if:
  br label %end

else:
  br label %end

end:
; CHECK: PHI %phi1 has values:
; CHECK-DAG: i32 0
; CHECK-DAG: i32 1
  %phi1 = phi i32 [ 0, %if ], [ 1, %else ]
; CHECK: PHI %phi2 has values:
; CHECK-DAG: @X
; CHECK-DAG: %ptr
  %phi2 = phi i32* [ @X, %if ], [ %ptr, %else ]
  ret void
}

; CHECK-LABEL: PHI Values for function: chain
define void @chain() {
entry:
  br i1 undef, label %if1, label %else1

if1:
  br label %middle

else1:
  br label %middle

middle:
; CHECK: PHI %phi1 has values:
; CHECK-DAG: i32 0
; CHECK-DAG: i32 1
  %phi1 = phi i32 [ 0, %if1 ], [ 1, %else1 ]
  br i1 undef, label %if2, label %else2

if2:
  br label %end

else2:
  br label %end

end:
; CHECK: PHI %phi2 has values:
; CHECK-DAG: i32 0
; CHECK-DAG: i32 1
; CHECK-DAG: i32 2
  %phi2 = phi i32 [ %phi1, %if2 ], [ 2, %else2 ]
  ret void
}

; CHECK-LABEL: PHI Values for function: no_values
define void @no_values() {
entry:
  ret void

unreachable:
; CHECK: PHI %phi has values:
; CHECK-DAG: NONE
  %phi = phi i32 [ %phi, %unreachable ]
  br label %unreachable
}

; CHECK-LABEL: PHI Values for function: simple_loop
define void @simple_loop() {
entry:
  br label %loop

loop:
; CHECK: PHI %phi has values:
; CHECK-DAG: i32 0
  %phi = phi i32 [ 0, %entry ], [ %phi, %loop ]
  br i1 undef, label %loop, label %end

end:
  ret void
}

; CHECK-LABEL: PHI Values for function: complex_loop
define void @complex_loop() {
entry:
  br i1 undef, label %loop, label %end

loop:
; CHECK: PHI %phi1 has values:
; CHECK-DAG: i32 0
; CHECK-DAG: i32 1
  %phi1 = phi i32 [ 0, %entry ], [ %phi2, %then ]
  br i1 undef, label %if, label %else

if:
  br label %then

else:
  br label %then

then:
; CHECK: PHI %phi2 has values:
; CHECK-DAG: i32 0
; CHECK-DAG: i32 1
  %phi2 = phi i32 [ %phi1, %if ], [ 1, %else ]
  br i1 undef, label %loop, label %end

end:
; CHECK: PHI %phi3 has values:
; CHECK-DAG: i32 0
; CHECK-DAG: i32 1
; CHECK-DAG: i32 2
  %phi3 = phi i32 [ 2, %entry ], [ %phi2, %then ]
  ret void
}

; CHECK-LABEL: PHI Values for function: strange_loop
define void @strange_loop() {
entry:
  br i1 undef, label %ifelse, label %inloop

loop:
; CHECK: PHI %phi1 has values:
; CHECK-DAG: i32 0
; CHECK-DAG: i32 1
; CHECK-DAG: i32 2
; CHECK-DAG: i32 3
  %phi1 = phi i32 [ %phi3, %if ], [ 0, %else ], [ %phi2, %inloop ]
  br i1 undef, label %inloop, label %end

inloop:
; CHECK: PHI %phi2 has values:
; CHECK-DAG: i32 0
; CHECK-DAG: i32 1
; CHECK-DAG: i32 2
; CHECK-DAG: i32 3
  %phi2 = phi i32 [ %phi1, %loop ], [ 1, %entry ]
  br i1 undef, label %ifelse, label %loop

ifelse:
; CHECK: PHI %phi3 has values:
; CHECK-DAG: i32 2
; CHECK-DAG: i32 3
  %phi3 = phi i32 [ 2, %entry ], [ 3, %inloop ]
  br i1 undef, label %if, label %else

if:
  br label %loop

else:
  br label %loop

end:
  ret void
}

; CHECK-LABEL: PHI Values for function: mutual_loops
define void @mutual_loops() {
entry:
  br i1 undef, label %loop1, label %loop2

loop1:
; CHECK: PHI %phi1 has values:
; CHECK-DAG: 0
; CHECK-DAG: 1
; CHECK-DAG: 2
; CHECK-DAG: 3
; CHECK-DAG: 4
  %phi1 = phi i32 [ 0, %entry ], [ %phi2, %loop1.then ], [ %phi3, %loop2.if ]
  br i1 undef, label %loop1.if, label %loop1.else

loop1.if:
  br i1 undef, label %loop1.then, label %loop2

loop1.else:
  br label %loop1.then

loop1.then:
; CHECK: PHI %phi2 has values:
; CHECK-DAG: 0
; CHECK-DAG: 1
; CHECK-DAG: 2
; CHECK-DAG: 3
; CHECK-DAG: 4
  %phi2 = phi i32 [ 1, %loop1.if ], [ %phi1, %loop1.else ]
  br i1 undef, label %loop1, label %end

loop2:
; CHECK: PHI %phi3 has values:
; CHECK-DAG: 2
; CHECK-DAG: 3
; CHECK-DAG: 4
  %phi3 = phi i32 [ 2, %entry ], [ %phi4, %loop2.then ], [ 3, %loop1.if ]
  br i1 undef, label %loop2.if, label %loop2.else

loop2.if:
  br i1 undef, label %loop2.then, label %loop1

loop2.else:
  br label %loop2.then

loop2.then:
; CHECK: PHI %phi4 has values:
; CHECK-DAG: 2
; CHECK-DAG: 3
; CHECK-DAG: 4
  %phi4 = phi i32 [ 4, %loop2.if ], [ %phi3, %loop2.else ]
  br i1 undef, label %loop2, label %end

end:
; CHECK: PHI %phi5 has values:
; CHECK-DAG: 0
; CHECK-DAG: 1
; CHECK-DAG: 2
; CHECK-DAG: 3
; CHECK-DAG: 4
  %phi5 = phi i32 [ %phi2, %loop1.then ], [ %phi4, %loop2.then ]
  ret void
}

; CHECK-LABEL: PHI Values for function: nested_loops_several_values
define void @nested_loops_several_values() {
entry:
  br label %loop1

loop1:
; CHECK: PHI %phi1 has values:
; CHECK-DAG: i32 0
; CHECK-DAG: %add
  %phi1 = phi i32 [ 0, %entry ], [ %phi2, %loop2 ]
  br i1 undef, label %loop2, label %end

loop2:
; CHECK: PHI %phi2 has values:
; CHECK-DAG: i32 0
; CHECK-DAG: %add
  %phi2 = phi i32 [ %phi1, %loop1 ], [ %phi3, %loop3 ]
  br i1 undef, label %loop3, label %loop1

loop3:
; CHECK: PHI %phi3 has values:
; CHECK-DAG: i32 0
; CHECK-DAG: %add
  %phi3 = phi i32 [ %add, %loop3 ], [ %phi2, %loop2 ]
  %add = add i32 %phi3, 1
  br i1 undef, label %loop3, label %loop2

end:
  ret void
}

; CHECK-LABEL: PHI Values for function: nested_loops_one_value
define void @nested_loops_one_value() {
entry:
  br label %loop1

loop1:
; CHECK: PHI %phi1 has values:
; CHECK-DAG: i32 0
  %phi1 = phi i32 [ 0, %entry ], [ %phi2, %loop2 ]
  br i1 undef, label %loop2, label %end

loop2:
; CHECK: PHI %phi2 has values:
; CHECK-DAG: i32 0
  %phi2 = phi i32 [ %phi1, %loop1 ], [ %phi3, %loop3 ]
  br i1 undef, label %loop3, label %loop1

loop3:
; CHECK: PHI %phi3 has values:
; CHECK-DAG: i32 0
  %phi3 = phi i32 [ 0, %loop3 ], [ %phi2, %loop2 ]
  br i1 undef, label %loop3, label %loop2

end:
  ret void
}
