1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -instcombine -S | grep load | count 3 2*9880d681SAndroid Build Coastguard Worker; PR2471 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdeclare i32 @x(i32*) 5*9880d681SAndroid Build Coastguard Workerdefine i32 @b(i32* %a, i32* %b) { 6*9880d681SAndroid Build Coastguard Workerentry: 7*9880d681SAndroid Build Coastguard Worker %tmp1 = load i32, i32* %a 8*9880d681SAndroid Build Coastguard Worker %tmp3 = load i32, i32* %b 9*9880d681SAndroid Build Coastguard Worker %add = add i32 %tmp1, %tmp3 10*9880d681SAndroid Build Coastguard Worker %call = call i32 @x( i32* %a ) 11*9880d681SAndroid Build Coastguard Worker %tobool = icmp ne i32 %add, 0 12*9880d681SAndroid Build Coastguard Worker ; not safe to turn into an uncond load 13*9880d681SAndroid Build Coastguard Worker %cond = select i1 %tobool, i32* %b, i32* %a 14*9880d681SAndroid Build Coastguard Worker %tmp8 = load i32, i32* %cond 15*9880d681SAndroid Build Coastguard Worker ret i32 %tmp8 16*9880d681SAndroid Build Coastguard Worker} 17