xref: /llvm-project/llvm/test/Transforms/InstCombine/2008-06-19-UncondLoad.ll (revision 4ab40eca080965c65802710e39adbb78c4ce7bde)
1; RUN: opt < %s -passes=instcombine -S | grep load | count 3
2; PR2471
3
4declare i32 @x(ptr)
5define i32 @b(ptr %a, ptr %b) {
6entry:
7        %tmp1 = load i32, ptr %a
8        %tmp3 = load i32, ptr %b
9        %add = add i32 %tmp1, %tmp3
10        %call = call i32 @x( ptr %a )
11        %tobool = icmp ne i32 %add, 0
12	; not safe to turn into an uncond load
13        %cond = select i1 %tobool, ptr %b, ptr %a
14        %tmp8 = load i32, ptr %cond
15        ret i32 %tmp8
16}
17