xref: /aosp_15_r20/external/llvm/test/Transforms/IndVarSimplify/pr25060.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt -S -indvars < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine i16 @fn1() {
4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @fn1(
5*9880d681SAndroid Build Coastguard Workerentry:
6*9880d681SAndroid Build Coastguard Worker  br label %bb1
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Workerbb1:
9*9880d681SAndroid Build Coastguard Worker  %i = phi i16 [ 0, %entry ], [ 1, %bb1 ]
10*9880d681SAndroid Build Coastguard Worker  %storemerge = phi i16 [ %storemerge2, %bb1 ], [ 0, %entry ]
11*9880d681SAndroid Build Coastguard Worker  %storemerge2 = phi i16 [ 10, %entry ], [ 200, %bb1 ]
12*9880d681SAndroid Build Coastguard Worker  %tmp10 = icmp eq i16 %i, 1
13*9880d681SAndroid Build Coastguard Worker  br i1 %tmp10, label %bb5, label %bb1
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerbb5:
16*9880d681SAndroid Build Coastguard Worker  %storemerge.lcssa = phi i16 [ %storemerge, %bb1 ]
17*9880d681SAndroid Build Coastguard Worker; CHECK: ret i16 10
18*9880d681SAndroid Build Coastguard Worker  ret i16 %storemerge.lcssa
19*9880d681SAndroid Build Coastguard Worker}
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workerdefine i16 @fn2() {
22*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @fn2(
23*9880d681SAndroid Build Coastguard Workerentry:
24*9880d681SAndroid Build Coastguard Worker  br label %bb1
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Workerbb1:
27*9880d681SAndroid Build Coastguard Worker  %canary = phi i16 [ 0, %entry ], [ %canary.inc, %bb1 ]
28*9880d681SAndroid Build Coastguard Worker  %i = phi i16 [ 0, %entry ], [ %storemerge, %bb1 ]
29*9880d681SAndroid Build Coastguard Worker  %storemerge = phi i16 [ 0, %bb1 ], [ 10, %entry ]
30*9880d681SAndroid Build Coastguard Worker  %canary.inc = add i16 %canary, 1
31*9880d681SAndroid Build Coastguard Worker  %_tmp10 = icmp eq i16 %i, 10
32*9880d681SAndroid Build Coastguard Worker  br i1 %_tmp10, label %bb5, label %bb1
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Workerbb5:
35*9880d681SAndroid Build Coastguard Worker; CHECK: ret i16 1
36*9880d681SAndroid Build Coastguard Worker  ret i16 %canary
37*9880d681SAndroid Build Coastguard Worker}
38