[mlir][scf]: Add value bound between scf for loop yield and result (#123200)
[llvm-project.git] / llvm / test / Transforms / InstCombine / 2008-06-19-UncondLoad.ll
blobe03371d00f6a3989f45b4050e666c95d0ca64467
1 ; RUN: opt < %s -passes=instcombine -S | grep load | count 3
2 ; PR2471
4 declare i32 @x(ptr)
5 define i32 @b(ptr %a, ptr %b) {
6 entry:
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