xref: /aosp_15_r20/external/llvm/test/Transforms/LoopDeletion/2011-06-21-phioperands.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt -loop-deletion -disable-output < %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker%0 = type { %"class.llvm::SmallVectorImpl", [1 x %"union.llvm::SmallVectorBase::U"] }
6*9880d681SAndroid Build Coastguard Worker%"class.clang::SourceLocation" = type { i32 }
7*9880d681SAndroid Build Coastguard Worker%"class.clang::driver::Arg" = type { %"class.clang::driver::Option"*, %"class.clang::driver::Arg"*, i32, i8, %0 }
8*9880d681SAndroid Build Coastguard Worker%"class.clang::driver::Option" = type { i32 (...)**, i32, %"class.clang::SourceLocation", i8*, %"class.clang::driver::OptionGroup"*, %"class.clang::driver::Option"*, i8 }
9*9880d681SAndroid Build Coastguard Worker%"class.clang::driver::OptionGroup" = type { %"class.clang::driver::Option" }
10*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorBase" = type { i8*, i8*, i8*, %"union.llvm::SmallVectorBase::U" }
11*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorImpl" = type { %"class.llvm::SmallVectorTemplateBase" }
12*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateBase" = type { %"class.llvm::SmallVectorTemplateCommon" }
13*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateCommon" = type { %"class.llvm::SmallVectorBase" }
14*9880d681SAndroid Build Coastguard Worker%"union.llvm::SmallVectorBase::U" = type { x86_fp80 }
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Workerdefine void @_ZNK5clang6driver7ArgList20AddAllArgsTranslatedERN4llvm11SmallVectorIPKcLj16EEENS0_12OptSpecifierES5_b(i1 zeroext %Joined) nounwind align 2 {
17*9880d681SAndroid Build Coastguard Workerentry:
18*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %entry.split.us, label %entry.entry.split_crit_edge
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Workerentry.entry.split_crit_edge:                      ; preds = %entry
21*9880d681SAndroid Build Coastguard Worker  br label %entry.split
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Workerentry.split.us:                                   ; preds = %entry
24*9880d681SAndroid Build Coastguard Worker  br label %for.cond.i14.us
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Workerfor.cond.i14.us:                                  ; preds = %for.inc.i38.us, %entry.split.us
27*9880d681SAndroid Build Coastguard Worker  br i1 true, label %for.cond.i50.us-lcssa.us, label %if.end.i23.us
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Workerfor.inc.i38.us:                                   ; preds = %if.end.i23.us
30*9880d681SAndroid Build Coastguard Worker  br label %for.cond.i14.us
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Workerif.end.i23.us:                                    ; preds = %for.cond.i14.us
33*9880d681SAndroid Build Coastguard Worker  br i1 true, label %for.cond.i50.us-lcssa.us, label %for.inc.i38.us
34*9880d681SAndroid Build Coastguard Worker
35*9880d681SAndroid Build Coastguard Workerfor.cond.i50.us-lcssa.us:                         ; preds = %if.end.i23.us, %for.cond.i14.us
36*9880d681SAndroid Build Coastguard Worker  br label %for.cond.i50
37*9880d681SAndroid Build Coastguard Worker
38*9880d681SAndroid Build Coastguard Workerentry.split:                                      ; preds = %entry.entry.split_crit_edge
39*9880d681SAndroid Build Coastguard Worker  br label %for.cond.i14
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Workerfor.cond.i14:                                     ; preds = %for.inc.i38, %entry.split
42*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %for.cond.i50.us-lcssa, label %if.end.i23
43*9880d681SAndroid Build Coastguard Worker
44*9880d681SAndroid Build Coastguard Workerif.end.i23:                                       ; preds = %for.cond.i14
45*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %for.cond.i50.us-lcssa, label %for.inc.i38
46*9880d681SAndroid Build Coastguard Worker
47*9880d681SAndroid Build Coastguard Workerfor.inc.i38:                                      ; preds = %if.end.i23
48*9880d681SAndroid Build Coastguard Worker  br label %for.cond.i14
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Workerfor.cond.i50.us-lcssa:                            ; preds = %if.end.i23, %for.cond.i14
51*9880d681SAndroid Build Coastguard Worker  br label %for.cond.i50
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Workerfor.cond.i50:                                     ; preds = %for.cond.i50.us-lcssa, %for.cond.i50.us-lcssa.us
54*9880d681SAndroid Build Coastguard Worker  br label %for.cond
55*9880d681SAndroid Build Coastguard Worker
56*9880d681SAndroid Build Coastguard Workerfor.cond.loopexit.us-lcssa:                       ; preds = %if.end.i, %for.cond.i
57*9880d681SAndroid Build Coastguard Worker  br label %for.cond.loopexit
58*9880d681SAndroid Build Coastguard Worker
59*9880d681SAndroid Build Coastguard Workerfor.cond.loopexit:                                ; preds = %for.cond.loopexit.us-lcssa.us, %for.cond.loopexit.us-lcssa
60*9880d681SAndroid Build Coastguard Worker  br label %for.cond
61*9880d681SAndroid Build Coastguard Worker
62*9880d681SAndroid Build Coastguard Workerfor.cond:                                         ; preds = %for.cond.loopexit, %for.cond.i50
63*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %for.end, label %for.body
64*9880d681SAndroid Build Coastguard Worker
65*9880d681SAndroid Build Coastguard Workerfor.body:                                         ; preds = %for.cond
66*9880d681SAndroid Build Coastguard Worker  br i1 %Joined, label %if.then, label %if.else
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Workerif.then:                                          ; preds = %for.body
69*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %cond.false.i.i, label %_ZN4llvm9StringRefC1EPKc.exit
70*9880d681SAndroid Build Coastguard Worker
71*9880d681SAndroid Build Coastguard Workercond.false.i.i:                                   ; preds = %if.then
72*9880d681SAndroid Build Coastguard Worker  unreachable
73*9880d681SAndroid Build Coastguard Worker
74*9880d681SAndroid Build Coastguard Worker_ZN4llvm9StringRefC1EPKc.exit:                    ; preds = %if.then
75*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit, label %cond.false.i.i91
76*9880d681SAndroid Build Coastguard Worker
77*9880d681SAndroid Build Coastguard Workercond.false.i.i91:                                 ; preds = %_ZN4llvm9StringRefC1EPKc.exit
78*9880d681SAndroid Build Coastguard Worker  unreachable
79*9880d681SAndroid Build Coastguard Worker
80*9880d681SAndroid Build Coastguard Worker_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit: ; preds = %_ZN4llvm9StringRefC1EPKc.exit
81*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %cond.false.i.i.i, label %if.end13.i.i.i.i
82*9880d681SAndroid Build Coastguard Worker
83*9880d681SAndroid Build Coastguard Workerif.end13.i.i.i.i:                                 ; preds = %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit
84*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %land.lhs.true16.i.i.i.i, label %if.end19.i.i.i.i
85*9880d681SAndroid Build Coastguard Worker
86*9880d681SAndroid Build Coastguard Workerland.lhs.true16.i.i.i.i:                          ; preds = %if.end13.i.i.i.i
87*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %cond.false.i.i.i, label %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i
88*9880d681SAndroid Build Coastguard Worker
89*9880d681SAndroid Build Coastguard Worker_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i:         ; preds = %land.lhs.true16.i.i.i.i
90*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %cond.false.i.i.i, label %if.end19.i.i.i.i
91*9880d681SAndroid Build Coastguard Worker
92*9880d681SAndroid Build Coastguard Workerif.end19.i.i.i.i:                                 ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i, %if.end13.i.i.i.i
93*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %land.lhs.true22.i.i.i.i, label %_ZN4llvmplERKNS_9StringRefEPKc.exit
94*9880d681SAndroid Build Coastguard Worker
95*9880d681SAndroid Build Coastguard Workerland.lhs.true22.i.i.i.i:                          ; preds = %if.end19.i.i.i.i
96*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %cond.false.i.i.i, label %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i
97*9880d681SAndroid Build Coastguard Worker
98*9880d681SAndroid Build Coastguard Worker_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i:          ; preds = %land.lhs.true22.i.i.i.i
99*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %cond.false.i.i.i, label %_ZN4llvmplERKNS_9StringRefEPKc.exit
100*9880d681SAndroid Build Coastguard Worker
101*9880d681SAndroid Build Coastguard Workercond.false.i.i.i:                                 ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i, %land.lhs.true22.i.i.i.i, %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i, %land.lhs.true16.i.i.i.i, %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit
102*9880d681SAndroid Build Coastguard Worker  unreachable
103*9880d681SAndroid Build Coastguard Worker
104*9880d681SAndroid Build Coastguard Worker_ZN4llvmplERKNS_9StringRefEPKc.exit:              ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i, %if.end19.i.i.i.i
105*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %Retry.i, label %if.end.i99
106*9880d681SAndroid Build Coastguard Worker
107*9880d681SAndroid Build Coastguard WorkerRetry.i:                                          ; preds = %if.end.i99, %_ZN4llvmplERKNS_9StringRefEPKc.exit
108*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit, label %new.notnull.i
109*9880d681SAndroid Build Coastguard Worker
110*9880d681SAndroid Build Coastguard Workernew.notnull.i:                                    ; preds = %Retry.i
111*9880d681SAndroid Build Coastguard Worker  br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit
112*9880d681SAndroid Build Coastguard Worker
113*9880d681SAndroid Build Coastguard Workerif.end.i99:                                       ; preds = %_ZN4llvmplERKNS_9StringRefEPKc.exit
114*9880d681SAndroid Build Coastguard Worker  br label %Retry.i
115*9880d681SAndroid Build Coastguard Worker
116*9880d681SAndroid Build Coastguard Worker_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit: ; preds = %new.notnull.i, %Retry.i
117*9880d681SAndroid Build Coastguard Worker  br label %for.cond.i.preheader
118*9880d681SAndroid Build Coastguard Worker
119*9880d681SAndroid Build Coastguard Workerif.else:                                          ; preds = %for.body
120*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %Retry.i108, label %if.end.i113
121*9880d681SAndroid Build Coastguard Worker
122*9880d681SAndroid Build Coastguard WorkerRetry.i108:                                       ; preds = %if.end.i113, %if.else
123*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114, label %new.notnull.i110
124*9880d681SAndroid Build Coastguard Worker
125*9880d681SAndroid Build Coastguard Workernew.notnull.i110:                                 ; preds = %Retry.i108
126*9880d681SAndroid Build Coastguard Worker  br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114
127*9880d681SAndroid Build Coastguard Worker
128*9880d681SAndroid Build Coastguard Workerif.end.i113:                                      ; preds = %if.else
129*9880d681SAndroid Build Coastguard Worker  br label %Retry.i108
130*9880d681SAndroid Build Coastguard Worker
131*9880d681SAndroid Build Coastguard Worker_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114: ; preds = %new.notnull.i110, %Retry.i108
132*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125, label %cond.false.i.i123
133*9880d681SAndroid Build Coastguard Worker
134*9880d681SAndroid Build Coastguard Workercond.false.i.i123:                                ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114
135*9880d681SAndroid Build Coastguard Worker  unreachable
136*9880d681SAndroid Build Coastguard Worker
137*9880d681SAndroid Build Coastguard Worker_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125: ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114
138*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %Retry.i134, label %if.end.i139
139*9880d681SAndroid Build Coastguard Worker
140*9880d681SAndroid Build Coastguard WorkerRetry.i134:                                       ; preds = %if.end.i139, %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125
141*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140, label %new.notnull.i136
142*9880d681SAndroid Build Coastguard Worker
143*9880d681SAndroid Build Coastguard Workernew.notnull.i136:                                 ; preds = %Retry.i134
144*9880d681SAndroid Build Coastguard Worker  br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140
145*9880d681SAndroid Build Coastguard Worker
146*9880d681SAndroid Build Coastguard Workerif.end.i139:                                      ; preds = %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125
147*9880d681SAndroid Build Coastguard Worker  br label %Retry.i134
148*9880d681SAndroid Build Coastguard Worker
149*9880d681SAndroid Build Coastguard Worker_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140: ; preds = %new.notnull.i136, %Retry.i134
150*9880d681SAndroid Build Coastguard Worker  br label %for.cond.i.preheader
151*9880d681SAndroid Build Coastguard Worker
152*9880d681SAndroid Build Coastguard Workerfor.cond.i.preheader:                             ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140, %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit
153*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %for.cond.i.preheader.split.us, label %for.cond.i.preheader.for.cond.i.preheader.split_crit_edge
154*9880d681SAndroid Build Coastguard Worker
155*9880d681SAndroid Build Coastguard Workerfor.cond.i.preheader.for.cond.i.preheader.split_crit_edge: ; preds = %for.cond.i.preheader
156*9880d681SAndroid Build Coastguard Worker  br label %for.cond.i.preheader.split
157*9880d681SAndroid Build Coastguard Worker
158*9880d681SAndroid Build Coastguard Workerfor.cond.i.preheader.split.us:                    ; preds = %for.cond.i.preheader
159*9880d681SAndroid Build Coastguard Worker  br label %for.cond.i.us
160*9880d681SAndroid Build Coastguard Worker
161*9880d681SAndroid Build Coastguard Workerfor.cond.i.us:                                    ; preds = %if.end.i.us, %for.cond.i.preheader.split.us
162*9880d681SAndroid Build Coastguard Worker  br i1 true, label %for.cond.loopexit.us-lcssa.us, label %if.end.i.us
163*9880d681SAndroid Build Coastguard Worker
164*9880d681SAndroid Build Coastguard Workerif.end.i.us:                                      ; preds = %for.cond.i.us
165*9880d681SAndroid Build Coastguard Worker  br i1 true, label %for.cond.loopexit.us-lcssa.us, label %for.cond.i.us
166*9880d681SAndroid Build Coastguard Worker
167*9880d681SAndroid Build Coastguard Workerfor.cond.loopexit.us-lcssa.us:                    ; preds = %if.end.i.us, %for.cond.i.us
168*9880d681SAndroid Build Coastguard Worker  %tmp178218.us.lcssa = phi %"class.clang::driver::Arg"** [ undef, %if.end.i.us ], [ undef, %for.cond.i.us ]
169*9880d681SAndroid Build Coastguard Worker  br label %for.cond.loopexit
170*9880d681SAndroid Build Coastguard Worker
171*9880d681SAndroid Build Coastguard Workerfor.cond.i.preheader.split:                       ; preds = %for.cond.i.preheader.for.cond.i.preheader.split_crit_edge
172*9880d681SAndroid Build Coastguard Worker  br label %for.cond.i
173*9880d681SAndroid Build Coastguard Worker
174*9880d681SAndroid Build Coastguard Workerfor.cond.i:                                       ; preds = %if.end.i, %for.cond.i.preheader.split
175*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %for.cond.loopexit.us-lcssa, label %if.end.i
176*9880d681SAndroid Build Coastguard Worker
177*9880d681SAndroid Build Coastguard Workerif.end.i:                                         ; preds = %for.cond.i
178*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %for.cond.loopexit.us-lcssa, label %for.cond.i
179*9880d681SAndroid Build Coastguard Worker
180*9880d681SAndroid Build Coastguard Workerfor.end:                                          ; preds = %for.cond
181*9880d681SAndroid Build Coastguard Worker  ret void
182*9880d681SAndroid Build Coastguard Worker}
183