mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
daa7aa14f8
This commit pretty much rolls back the logic added in r306495 as in the testcase provided we simplify an `icmp` looking through a PHI that hasn't been mapped yet. I think instsimplify shouldn't do threading over select/phis or just looking through phis in general, but this is what we have now. Also, add a test to prevent this from happening in case somebody wants to modify this code again. Briefly discussed with Kyle Butt (thanks Kyle!). llvm-svn: 306938
26 lines
428 B
LLVM
26 lines
428 B
LLVM
; RUN: opt -inline < %s
|
|
|
|
define void @patatino() {
|
|
for.cond:
|
|
br label %for.body
|
|
|
|
for.body:
|
|
%tobool = icmp eq i32 5, 0
|
|
%sel = select i1 %tobool, i32 0, i32 2
|
|
br i1 undef, label %cleanup1.thread, label %cleanup1
|
|
|
|
cleanup1.thread:
|
|
ret void
|
|
|
|
cleanup1:
|
|
%cleanup.dest2 = phi i32 [ %sel, %for.body ]
|
|
%switch = icmp ult i32 %cleanup.dest2, 1
|
|
ret void
|
|
}
|
|
|
|
define void @main() {
|
|
entry:
|
|
call void @patatino()
|
|
ret void
|
|
}
|