1*9880d681SAndroid Build Coastguard Worker; RUN: opt %s -instcombine 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine i32 @f(i32 %theNumber) { 4*9880d681SAndroid Build Coastguard Workerentry: 5*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt i32 %theNumber, -1 6*9880d681SAndroid Build Coastguard Worker call void @llvm.assume(i1 %cmp) 7*9880d681SAndroid Build Coastguard Worker br i1 true, label %if.then, label %if.end 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Workerif.then: ; preds = %entry 10*9880d681SAndroid Build Coastguard Worker %shl = shl nuw i32 %theNumber, 1 11*9880d681SAndroid Build Coastguard Worker br label %if.end 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerif.end: ; preds = %if.then, %entry 14*9880d681SAndroid Build Coastguard Worker %phi = phi i32 [ %shl, %if.then ], [ undef, %entry ] 15*9880d681SAndroid Build Coastguard Worker ret i32 %phi 16*9880d681SAndroid Build Coastguard Worker} 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.assume(i1) 19