blob: c3aab464b87eda12dacba4de36b0e6f44eca8694 [file] [log] [blame]
Dan Gohman18800922009-09-11 18:01:28 +00001; RUN: opt < %s -instcombine -S | grep load | count 3
Chris Lattnerf3ecd2d2008-06-20 05:12:56 +00002; PR2471
3
4declare i32 @x(i32*)
5define i32 @b(i32* %a, i32* %b) {
6entry:
David Blaikiea79ac142015-02-27 21:17:42 +00007 %tmp1 = load i32, i32* %a
8 %tmp3 = load i32, i32* %b
Chris Lattnerf3ecd2d2008-06-20 05:12:56 +00009 %add = add i32 %tmp1, %tmp3
10 %call = call i32 @x( i32* %a )
11 %tobool = icmp ne i32 %add, 0
12 ; not safe to turn into an uncond load
13 %cond = select i1 %tobool, i32* %b, i32* %a
David Blaikiea79ac142015-02-27 21:17:42 +000014 %tmp8 = load i32, i32* %cond
Chris Lattnerf3ecd2d2008-06-20 05:12:56 +000015 ret i32 %tmp8
16}