mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
2501066409
,------. | | | v | t2 = phi ... t1 ... | | | v | t1 = ... | ... = ... t1 ... | | `------' where there is a use in a PHI node that's a predecessor to the defining block. We don't want to mark all predecessors as having the value "alive" in this case. Also, the assert was too restrictive and didn't handle this case. llvm-svn: 52655
26 lines
459 B
LLVM
26 lines
459 B
LLVM
; RUN: llvm-as < %s | llc -march=ppc32
|
|
; <rdar://problem/6020042>
|
|
|
|
define i32 @bork() nounwind {
|
|
entry:
|
|
br i1 true, label %bb1, label %bb3
|
|
|
|
bb1:
|
|
%tmp1 = load i8* null, align 1
|
|
%tmp2 = icmp eq i8 %tmp1, 0
|
|
br label %bb2
|
|
|
|
bb2:
|
|
%val1 = phi i32 [ 0, %bb1 ], [ %val2, %bb2 ]
|
|
%val2 = select i1 %tmp2, i32 -1, i32 %val1
|
|
switch i32 %val2, label %bb2 [
|
|
i32 -1, label %bb3
|
|
i32 0, label %bb1
|
|
i32 1, label %bb3
|
|
i32 2, label %bb1
|
|
]
|
|
|
|
bb3:
|
|
ret i32 -1
|
|
}
|