1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-02-01 05:01:59 +01:00
Davide Italiano daa7aa14f8 [Cloner] Re-map simplfied cloned instructions.
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
2017-07-01 03:29:33 +00:00

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
}