xref: /aosp_15_r20/external/llvm/test/Transforms/InstCombine/pr12338.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -instcombine -S | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine void @entry() nounwind {
4*9880d681SAndroid Build Coastguard Workerentry:
5*9880d681SAndroid Build Coastguard Worker  br label %for.cond
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker; CHECK: br label %for.cond
8*9880d681SAndroid Build Coastguard Workerfor.cond:
9*9880d681SAndroid Build Coastguard Worker  %local = phi <1 x i32> [ <i32 0>, %entry ], [ %phi2, %cond.end47 ]
10*9880d681SAndroid Build Coastguard Worker  %phi3 = sub <1 x i32> zeroinitializer, %local
11*9880d681SAndroid Build Coastguard Worker  br label %cond.end
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Workercond.false:
14*9880d681SAndroid Build Coastguard Worker  br label %cond.end
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Workercond.end:
17*9880d681SAndroid Build Coastguard Worker  %cond = phi <1 x i32> [ %phi3, %for.cond ], [ undef, %cond.false ]
18*9880d681SAndroid Build Coastguard Worker  br label %cond.end47
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Workercond.end47:
21*9880d681SAndroid Build Coastguard Worker  %sum = add <1 x i32> %cond, <i32 92>
22*9880d681SAndroid Build Coastguard Worker  %phi2 = sub <1 x i32> zeroinitializer, %sum
23*9880d681SAndroid Build Coastguard Worker  br label %for.cond
24*9880d681SAndroid Build Coastguard Worker}
25