xref: /aosp_15_r20/external/llvm/test/Transforms/InstCombine/pr21891.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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