1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=thumbv8.1m.main -mattr=+lob,+mve %s -start-before=arm-block-placement --verify-machineinstrs -o - | FileCheck %s
4 # This is a large test for block placement, including reverting WLS to DLS. It
5 # should not crash or leave any VCTP instructions.
10 target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
11 target triple = "thumbv8.1m.main-arm-none-eabi"
13 @var_76 = external dso_local local_unnamed_addr global i64, align 8
14 @var_77 = external dso_local local_unnamed_addr global i8, align 1
15 @arr_163 = external dso_local local_unnamed_addr global [12 x [12 x i8]], align 1
16 @var_81 = external dso_local local_unnamed_addr global i32, align 4
17 @arr_239 = external dso_local local_unnamed_addr global [22 x i8], align 1
19 define i32 @test(i8 zeroext %g, i32 %h, i32 %i, i32 %j, i32 %k, i32 %l, i32 %m, i32 %n, i32 %o, i32 %p, i32 %q) {
21 %tobool7.not = icmp eq i32 %i, 0
22 %cond11 = select i1 %tobool7.not, i32 %l, i32 %i
23 %tobool13 = icmp ne i32 %m, 0
24 %frombool = zext i1 %tobool13 to i8
25 %tobool23.not = icmp eq i8 %g, 0
26 %cond24 = select i1 %tobool23.not, i32 5, i32 0
27 %cmp27 = icmp sgt i32 %cond24, %m
28 %conv29 = zext i1 %cmp27 to i8
29 %conv36 = zext i8 %g to i32
30 %tobool38 = icmp ne i32 %n, 0
31 %tobool39 = icmp ne i32 %o, 0
32 %0 = select i1 %tobool38, i1 true, i1 %tobool39
33 %lor.ext = zext i1 %0 to i32
34 %cmp84 = icmp sgt i32 %k, 0
35 br i1 %cmp84, label %for.body.lr.ph, label %for.cond45.preheader
37 for.body.lr.ph: ; preds = %entry
38 %cmp2 = icmp slt i32 %n, 0
39 %cond = select i1 %cmp2, i32 %o, i32 0
40 %cmp1782.not = icmp eq i32 %i, -1514690832
42 br i1 %cmp1782.not, label %for.body.lr.ph.split, label %for.body.lr.ph.split.us
44 for.body.lr.ph.split.us: ; preds = %for.body.lr.ph
45 %1 = icmp slt i32 %rem, %cond
46 br i1 %1, label %for.body.lr.ph.split.us.split.us, label %for.body.lr.ph.split.us.split
48 for.body.lr.ph.split.us.split.us: ; preds = %for.body.lr.ph.split.us
49 %2 = sext i32 %cond11 to i64
50 %const19 = bitcast i32 1514690832 to i32
51 store i64 %2, ptr @var_76, align 8
52 store i8 %frombool, ptr @var_77, align 1
53 %3 = add i32 %i, %const19
54 %4 = add nsw i32 %k, -1
55 %xtraiter154 = and i32 %k, 3
56 %5 = icmp ult i32 %4, 3
57 br i1 %5, label %for.cond.for.cond45.preheader_crit_edge.loopexit135.unr-lcssa, label %for.body.lr.ph.split.us.split.us.new
59 for.body.lr.ph.split.us.split.us.new: ; preds = %for.body.lr.ph.split.us.split.us
60 %unroll_iter158 = and i32 %k, -4
61 br label %for.body.us.us
63 for.body.us.us: ; preds = %for.body.us.us, %for.body.lr.ph.split.us.split.us.new
64 %lsr.iv = phi ptr [ %6, %for.body.us.us ], [ getelementptr inbounds ([12 x [12 x i8]], ptr @arr_163, i32 0, i32 2, i32 0), %for.body.lr.ph.split.us.split.us.new ]
65 %ac.085.us.us = phi i32 [ 0, %for.body.lr.ph.split.us.split.us.new ], [ %add43.us.us.3, %for.body.us.us ]
66 %lsr.iv3 = bitcast ptr %lsr.iv to ptr
67 %scevgep6 = getelementptr i8, ptr %lsr.iv3, i32 -24
68 call void @llvm.memset.p0.i32(ptr align 1 %scevgep6, i8 %conv29, i32 %3, i1 false)
69 %scevgep5 = getelementptr i8, ptr %lsr.iv3, i32 -12
70 call void @llvm.memset.p0.i32(ptr align 1 %scevgep5, i8 %conv29, i32 %3, i1 false)
71 call void @llvm.memset.p0.i32(ptr align 1 %lsr.iv3, i8 %conv29, i32 %3, i1 false)
72 %scevgep4 = getelementptr i8, ptr %lsr.iv3, i32 12
73 call void @llvm.memset.p0.i32(ptr align 1 %scevgep4, i8 %conv29, i32 %3, i1 false)
74 %add43.us.us.3 = add nuw i32 %ac.085.us.us, 4
75 %scevgep2 = getelementptr [12 x [12 x i8]], ptr %lsr.iv, i32 0, i32 4, i32 0
76 %6 = bitcast ptr %scevgep2 to ptr
77 %niter159.ncmp.3 = icmp eq i32 %unroll_iter158, %add43.us.us.3
78 br i1 %niter159.ncmp.3, label %for.cond.for.cond45.preheader_crit_edge.loopexit135.unr-lcssa, label %for.body.us.us
80 for.body.lr.ph.split.us.split: ; preds = %for.body.lr.ph.split.us
81 %7 = icmp eq i32 %m, 0
82 %const = bitcast i32 1514690832 to i32
83 %8 = add i32 %i, %const
84 %9 = add nsw i32 %k, -1
85 %xtraiter148 = and i32 %k, 3
86 br i1 %7, label %for.body.us.us115.preheader, label %for.body.us.preheader
88 for.body.us.preheader: ; preds = %for.body.lr.ph.split.us.split
89 %10 = icmp ult i32 %9, 3
90 br i1 %10, label %for.cond.for.cond45.preheader_crit_edge.loopexit147.unr-lcssa, label %for.body.us.preheader.new
92 for.body.us.preheader.new: ; preds = %for.body.us.preheader
93 %unroll_iter = and i32 %k, -4
96 for.body.us.us115.preheader: ; preds = %for.body.lr.ph.split.us.split
97 %11 = icmp ult i32 %9, 3
98 br i1 %11, label %for.cond.for.cond45.preheader_crit_edge.loopexit.unr-lcssa, label %for.body.us.us115.preheader.new
100 for.body.us.us115.preheader.new: ; preds = %for.body.us.us115.preheader
101 %unroll_iter152 = and i32 %k, -4
102 br label %for.body.us.us115
104 for.body.us.us115: ; preds = %for.body.us.us115, %for.body.us.us115.preheader.new
105 %lsr.iv7 = phi ptr [ %12, %for.body.us.us115 ], [ getelementptr inbounds ([12 x [12 x i8]], ptr @arr_163, i32 0, i32 2, i32 0), %for.body.us.us115.preheader.new ]
106 %ac.085.us.us116 = phi i32 [ 0, %for.body.us.us115.preheader.new ], [ %add43.us.us120.3, %for.body.us.us115 ]
107 %lsr.iv79 = bitcast ptr %lsr.iv7 to ptr
108 %scevgep12 = getelementptr i8, ptr %lsr.iv79, i32 -24
109 call void @llvm.memset.p0.i32(ptr align 1 %scevgep12, i8 %conv29, i32 %8, i1 false)
110 %scevgep11 = getelementptr i8, ptr %lsr.iv79, i32 -12
111 call void @llvm.memset.p0.i32(ptr align 1 %scevgep11, i8 %conv29, i32 %8, i1 false)
112 call void @llvm.memset.p0.i32(ptr align 1 %lsr.iv79, i8 %conv29, i32 %8, i1 false)
113 %scevgep10 = getelementptr i8, ptr %lsr.iv79, i32 12
114 call void @llvm.memset.p0.i32(ptr align 1 %scevgep10, i8 %conv29, i32 %8, i1 false)
115 %add43.us.us120.3 = add nuw i32 %ac.085.us.us116, 4
116 %scevgep8 = getelementptr [12 x [12 x i8]], ptr %lsr.iv7, i32 0, i32 4, i32 0
117 %12 = bitcast ptr %scevgep8 to ptr
118 %niter153.ncmp.3 = icmp eq i32 %unroll_iter152, %add43.us.us120.3
119 br i1 %niter153.ncmp.3, label %for.cond.for.cond45.preheader_crit_edge.loopexit.unr-lcssa, label %for.body.us.us115
121 for.body.us: ; preds = %for.body.us, %for.body.us.preheader.new
122 %lsr.iv13 = phi ptr [ %13, %for.body.us ], [ getelementptr inbounds ([12 x [12 x i8]], ptr @arr_163, i32 0, i32 2, i32 0), %for.body.us.preheader.new ]
123 %ac.085.us = phi i32 [ 0, %for.body.us.preheader.new ], [ %add43.us.3, %for.body.us ]
124 %lsr.iv1315 = bitcast ptr %lsr.iv13 to ptr
125 %scevgep18 = getelementptr i8, ptr %lsr.iv1315, i32 -24
126 call void @llvm.memset.p0.i32(ptr align 1 %scevgep18, i8 %conv29, i32 %8, i1 false)
127 %scevgep17 = getelementptr i8, ptr %lsr.iv1315, i32 -12
128 call void @llvm.memset.p0.i32(ptr align 1 %scevgep17, i8 %conv29, i32 %8, i1 false)
129 call void @llvm.memset.p0.i32(ptr align 1 %lsr.iv1315, i8 %conv29, i32 %8, i1 false)
130 %scevgep16 = getelementptr i8, ptr %lsr.iv1315, i32 12
131 call void @llvm.memset.p0.i32(ptr align 1 %scevgep16, i8 %conv29, i32 %8, i1 false)
132 %add43.us.3 = add nuw i32 %ac.085.us, 4
133 %scevgep14 = getelementptr [12 x [12 x i8]], ptr %lsr.iv13, i32 0, i32 4, i32 0
134 %13 = bitcast ptr %scevgep14 to ptr
135 %niter.ncmp.3 = icmp eq i32 %unroll_iter, %add43.us.3
136 br i1 %niter.ncmp.3, label %for.cond.for.cond45.preheader_crit_edge.loopexit147.unr-lcssa, label %for.body.us
138 for.body.lr.ph.split: ; preds = %for.body.lr.ph
139 %14 = icmp slt i32 %rem, %cond
140 br i1 %14, label %for.body.lr.ph.split.split.us, label %for.body.lr.ph.split.split
142 for.body.lr.ph.split.split.us: ; preds = %for.body.lr.ph.split
143 %15 = icmp eq i32 %m, 0
144 %16 = sext i32 %cond11 to i64
145 store i64 %16, ptr @var_76, align 8
146 store i8 %frombool, ptr @var_77, align 1
147 %spec.select = select i1 %15, i32 %lor.ext, i32 %conv36
148 br label %for.cond.for.cond45.preheader_crit_edge
150 for.body.lr.ph.split.split: ; preds = %for.body.lr.ph.split
151 %17 = icmp eq i32 %m, 0
152 %spec.select143 = select i1 %17, i32 %lor.ext, i32 %conv36
153 br label %for.cond.for.cond45.preheader_crit_edge
155 for.cond.for.cond45.preheader_crit_edge.loopexit135.unr-lcssa: ; preds = %for.body.us.us, %for.body.lr.ph.split.us.split.us
156 %ac.085.us.us.unr = phi i32 [ 0, %for.body.lr.ph.split.us.split.us ], [ %add43.us.us.3, %for.body.us.us ]
157 %lcmp.mod157.not = icmp eq i32 %xtraiter154, 0
158 br i1 %lcmp.mod157.not, label %for.cond.for.cond45.preheader_crit_edge.loopexit135, label %for.body.us.us.epil
160 for.body.us.us.epil: ; preds = %for.cond.for.cond45.preheader_crit_edge.loopexit135.unr-lcssa
161 %scevgep140.epil = getelementptr [12 x [12 x i8]], ptr @arr_163, i32 0, i32 %ac.085.us.us.unr, i32 0
162 call void @llvm.memset.p0.i32(ptr align 1 %scevgep140.epil, i8 %conv29, i32 %3, i1 false)
163 %epil.iter.cmp156.not = icmp eq i32 %xtraiter154, 1
164 br i1 %epil.iter.cmp156.not, label %for.cond.for.cond45.preheader_crit_edge.loopexit135, label %for.body.us.us.epil.1
166 for.cond.for.cond45.preheader_crit_edge.loopexit135: ; preds = %for.body.us.us.epil.2, %for.body.us.us.epil.1, %for.body.us.us.epil, %for.cond.for.cond45.preheader_crit_edge.loopexit135.unr-lcssa
167 %18 = icmp eq i32 %m, 0
168 %cond41.us.us = select i1 %18, i32 %lor.ext, i32 %conv36
169 br label %for.cond.for.cond45.preheader_crit_edge
171 for.cond.for.cond45.preheader_crit_edge.loopexit.unr-lcssa: ; preds = %for.body.us.us115, %for.body.us.us115.preheader
172 %ac.085.us.us116.unr = phi i32 [ 0, %for.body.us.us115.preheader ], [ %add43.us.us120.3, %for.body.us.us115 ]
173 %lcmp.mod151.not = icmp eq i32 %xtraiter148, 0
174 br i1 %lcmp.mod151.not, label %for.cond.for.cond45.preheader_crit_edge, label %for.body.us.us115.epil
176 for.body.us.us115.epil: ; preds = %for.cond.for.cond45.preheader_crit_edge.loopexit.unr-lcssa
177 %scevgep138.epil = getelementptr [12 x [12 x i8]], ptr @arr_163, i32 0, i32 %ac.085.us.us116.unr, i32 0
178 call void @llvm.memset.p0.i32(ptr align 1 %scevgep138.epil, i8 %conv29, i32 %8, i1 false)
179 %epil.iter.cmp150.not = icmp eq i32 %xtraiter148, 1
180 br i1 %epil.iter.cmp150.not, label %for.cond.for.cond45.preheader_crit_edge, label %for.body.us.us115.epil.1
182 for.cond.for.cond45.preheader_crit_edge.loopexit147.unr-lcssa: ; preds = %for.body.us, %for.body.us.preheader
183 %ac.085.us.unr = phi i32 [ 0, %for.body.us.preheader ], [ %add43.us.3, %for.body.us ]
184 %lcmp.mod.not = icmp eq i32 %xtraiter148, 0
185 br i1 %lcmp.mod.not, label %for.cond.for.cond45.preheader_crit_edge, label %for.body.us.epil
187 for.body.us.epil: ; preds = %for.cond.for.cond45.preheader_crit_edge.loopexit147.unr-lcssa
188 %scevgep.epil = getelementptr [12 x [12 x i8]], ptr @arr_163, i32 0, i32 %ac.085.us.unr, i32 0
189 call void @llvm.memset.p0.i32(ptr align 1 %scevgep.epil, i8 %conv29, i32 %8, i1 false)
190 %epil.iter.cmp.not = icmp eq i32 %xtraiter148, 1
191 br i1 %epil.iter.cmp.not, label %for.cond.for.cond45.preheader_crit_edge, label %for.body.us.epil.1
193 for.cond.for.cond45.preheader_crit_edge: ; preds = %for.body.us.us115.epil.2, %for.body.us.us115.epil.1, %for.body.us.epil.2, %for.body.us.epil.1, %for.body.us.epil, %for.cond.for.cond45.preheader_crit_edge.loopexit147.unr-lcssa, %for.body.us.us115.epil, %for.cond.for.cond45.preheader_crit_edge.loopexit.unr-lcssa, %for.cond.for.cond45.preheader_crit_edge.loopexit135, %for.body.lr.ph.split.split, %for.body.lr.ph.split.split.us
194 %.us-phi = phi i32 [ %cond41.us.us, %for.cond.for.cond45.preheader_crit_edge.loopexit135 ], [ %spec.select, %for.body.lr.ph.split.split.us ], [ %spec.select143, %for.body.lr.ph.split.split ], [ %lor.ext, %for.body.us.us115.epil ], [ %lor.ext, %for.body.us.us115.epil.1 ], [ %lor.ext, %for.body.us.us115.epil.2 ], [ %lor.ext, %for.cond.for.cond45.preheader_crit_edge.loopexit.unr-lcssa ], [ %conv36, %for.body.us.epil ], [ %conv36, %for.body.us.epil.1 ], [ %conv36, %for.body.us.epil.2 ], [ %conv36, %for.cond.for.cond45.preheader_crit_edge.loopexit147.unr-lcssa ]
195 store i32 %.us-phi, ptr @var_81, align 4
196 br label %for.cond45.preheader
198 for.cond45.preheader: ; preds = %for.cond.for.cond45.preheader_crit_edge, %entry
199 %tobool54.not = icmp eq i32 %q, 0
200 %tobool56.not = icmp eq i32 %j, 0
201 %conv58 = select i1 %tobool56.not, i8 22, i8 0
202 br i1 %tobool54.not, label %for.cond45.us.preheader, label %for.cond45.preheader1
204 for.cond45.preheader1: ; preds = %for.cond45.preheader
207 for.cond45.us.preheader: ; preds = %for.cond45.preheader
208 br label %for.cond45.us
210 for.cond45.us: ; preds = %for.cond45.us.preheader, %for.cond45.us
211 br label %for.cond45.us
213 for.cond45: ; preds = %for.cond45.preheader1, %for.cond45
214 %ag.0 = phi i32 [ %cond51.3, %for.cond45 ], [ 0, %for.cond45.preheader1 ]
215 %conv46 = and i32 %ag.0, 255
216 %tobool47.not = icmp eq i32 %conv46, 0
217 %cond51 = select i1 %tobool47.not, i32 %l, i32 %h
218 %idxprom = and i32 %cond51, 255
219 %arrayidx59 = getelementptr inbounds [22 x i8], ptr @arr_239, i32 0, i32 %idxprom
220 store i8 %conv58, ptr %arrayidx59, align 1
221 %conv46.1 = and i32 %cond51, 255
222 %tobool47.not.1 = icmp eq i32 %conv46.1, 0
223 %cond51.1 = select i1 %tobool47.not.1, i32 %l, i32 %h
224 %idxprom.1 = and i32 %cond51.1, 255
225 %arrayidx59.1 = getelementptr inbounds [22 x i8], ptr @arr_239, i32 0, i32 %idxprom.1
226 store i8 %conv58, ptr %arrayidx59.1, align 1
227 %conv46.2 = and i32 %cond51.1, 255
228 %tobool47.not.2 = icmp eq i32 %conv46.2, 0
229 %cond51.2 = select i1 %tobool47.not.2, i32 %l, i32 %h
230 %idxprom.2 = and i32 %cond51.2, 255
231 %arrayidx59.2 = getelementptr inbounds [22 x i8], ptr @arr_239, i32 0, i32 %idxprom.2
232 store i8 %conv58, ptr %arrayidx59.2, align 1
233 %conv46.3 = and i32 %cond51.2, 255
234 %tobool47.not.3 = icmp eq i32 %conv46.3, 0
235 %cond51.3 = select i1 %tobool47.not.3, i32 %l, i32 %h
236 %idxprom.3 = and i32 %cond51.3, 255
237 %arrayidx59.3 = getelementptr inbounds [22 x i8], ptr @arr_239, i32 0, i32 %idxprom.3
238 store i8 %conv58, ptr %arrayidx59.3, align 1
241 for.body.us.epil.1: ; preds = %for.body.us.epil
242 %add43.us.epil = add nuw nsw i32 %ac.085.us.unr, 1
243 %scevgep.epil.1 = getelementptr [12 x [12 x i8]], ptr @arr_163, i32 0, i32 %add43.us.epil, i32 0
244 call void @llvm.memset.p0.i32(ptr align 1 %scevgep.epil.1, i8 %conv29, i32 %8, i1 false)
245 %epil.iter.cmp.1.not = icmp eq i32 %xtraiter148, 2
246 br i1 %epil.iter.cmp.1.not, label %for.cond.for.cond45.preheader_crit_edge, label %for.body.us.epil.2
248 for.body.us.epil.2: ; preds = %for.body.us.epil.1
249 %add43.us.epil.1 = add nuw nsw i32 %ac.085.us.unr, 2
250 %scevgep.epil.2 = getelementptr [12 x [12 x i8]], ptr @arr_163, i32 0, i32 %add43.us.epil.1, i32 0
251 call void @llvm.memset.p0.i32(ptr align 1 %scevgep.epil.2, i8 %conv29, i32 %8, i1 false)
252 br label %for.cond.for.cond45.preheader_crit_edge
254 for.body.us.us115.epil.1: ; preds = %for.body.us.us115.epil
255 %add43.us.us120.epil = add nuw nsw i32 %ac.085.us.us116.unr, 1
256 %scevgep138.epil.1 = getelementptr [12 x [12 x i8]], ptr @arr_163, i32 0, i32 %add43.us.us120.epil, i32 0
257 call void @llvm.memset.p0.i32(ptr align 1 %scevgep138.epil.1, i8 %conv29, i32 %8, i1 false)
258 %epil.iter.cmp150.1.not = icmp eq i32 %xtraiter148, 2
259 br i1 %epil.iter.cmp150.1.not, label %for.cond.for.cond45.preheader_crit_edge, label %for.body.us.us115.epil.2
261 for.body.us.us115.epil.2: ; preds = %for.body.us.us115.epil.1
262 %add43.us.us120.epil.1 = add nuw nsw i32 %ac.085.us.us116.unr, 2
263 %scevgep138.epil.2 = getelementptr [12 x [12 x i8]], ptr @arr_163, i32 0, i32 %add43.us.us120.epil.1, i32 0
264 call void @llvm.memset.p0.i32(ptr align 1 %scevgep138.epil.2, i8 %conv29, i32 %8, i1 false)
265 br label %for.cond.for.cond45.preheader_crit_edge
267 for.body.us.us.epil.1: ; preds = %for.body.us.us.epil
268 %add43.us.us.epil = add nuw nsw i32 %ac.085.us.us.unr, 1
269 %scevgep140.epil.1 = getelementptr [12 x [12 x i8]], ptr @arr_163, i32 0, i32 %add43.us.us.epil, i32 0
270 call void @llvm.memset.p0.i32(ptr align 1 %scevgep140.epil.1, i8 %conv29, i32 %3, i1 false)
271 %epil.iter.cmp156.1.not = icmp eq i32 %xtraiter154, 2
272 br i1 %epil.iter.cmp156.1.not, label %for.cond.for.cond45.preheader_crit_edge.loopexit135, label %for.body.us.us.epil.2
274 for.body.us.us.epil.2: ; preds = %for.body.us.us.epil.1
275 %add43.us.us.epil.1 = add nuw nsw i32 %ac.085.us.us.unr, 2
276 %scevgep140.epil.2 = getelementptr [12 x [12 x i8]], ptr @arr_163, i32 0, i32 %add43.us.us.epil.1, i32 0
277 call void @llvm.memset.p0.i32(ptr align 1 %scevgep140.epil.2, i8 %conv29, i32 %3, i1 false)
278 br label %for.cond.for.cond45.preheader_crit_edge.loopexit135
281 declare void @llvm.memset.p0.i32(ptr nocapture writeonly, i8, i32, i1 immarg)
286 tracksRegLiveness: true
288 - { reg: '$r0', virtual-reg: '' }
289 - { reg: '$r1', virtual-reg: '' }
290 - { reg: '$r2', virtual-reg: '' }
291 - { reg: '$r3', virtual-reg: '' }
293 - { id: 0, type: default, offset: 24, size: 4, alignment: 8, stack-id: default,
294 isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true,
295 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
296 - { id: 1, type: default, offset: 20, size: 4, alignment: 4, stack-id: default,
297 isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true,
298 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
299 - { id: 2, type: default, offset: 16, size: 4, alignment: 8, stack-id: default,
300 isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true,
301 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
302 - { id: 3, type: default, offset: 12, size: 4, alignment: 4, stack-id: default,
303 isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true,
304 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
305 - { id: 4, type: default, offset: 8, size: 4, alignment: 8, stack-id: default,
306 isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true,
307 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
308 - { id: 5, type: default, offset: 4, size: 4, alignment: 4, stack-id: default,
309 isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true,
310 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
311 - { id: 6, type: default, offset: 0, size: 4, alignment: 8, stack-id: default,
312 isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true,
313 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
315 - { id: 0, name: '', type: spill-slot, offset: -40, size: 4, alignment: 4,
316 stack-id: default, callee-saved-register: '', callee-saved-restored: true,
317 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
318 - { id: 1, name: '', type: spill-slot, offset: -44, size: 4, alignment: 4,
319 stack-id: default, callee-saved-register: '', callee-saved-restored: true,
320 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
321 - { id: 2, name: '', type: spill-slot, offset: -48, size: 4, alignment: 4,
322 stack-id: default, callee-saved-register: '', callee-saved-restored: true,
323 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
324 - { id: 3, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
325 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: true,
326 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
327 - { id: 4, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
328 stack-id: default, callee-saved-register: '$r11', callee-saved-restored: true,
329 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
330 - { id: 5, name: '', type: spill-slot, offset: -12, size: 4, alignment: 4,
331 stack-id: default, callee-saved-register: '$r10', callee-saved-restored: true,
332 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
333 - { id: 6, name: '', type: spill-slot, offset: -16, size: 4, alignment: 4,
334 stack-id: default, callee-saved-register: '$r9', callee-saved-restored: true,
335 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
336 - { id: 7, name: '', type: spill-slot, offset: -20, size: 4, alignment: 4,
337 stack-id: default, callee-saved-register: '$r8', callee-saved-restored: true,
338 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
339 - { id: 8, name: '', type: spill-slot, offset: -24, size: 4, alignment: 4,
340 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,
341 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
342 - { id: 9, name: '', type: spill-slot, offset: -28, size: 4, alignment: 4,
343 stack-id: default, callee-saved-register: '$r6', callee-saved-restored: true,
344 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
345 - { id: 10, name: '', type: spill-slot, offset: -32, size: 4, alignment: 4,
346 stack-id: default, callee-saved-register: '$r5', callee-saved-restored: true,
347 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
348 - { id: 11, name: '', type: spill-slot, offset: -36, size: 4, alignment: 4,
349 stack-id: default, callee-saved-register: '$r4', callee-saved-restored: true,
350 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
353 successors: %bb.1(0x50000000), %bb.61(0x30000000)
354 liveins: $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $lr
356 $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $r7, killed $r8, killed $r9, killed $r10, killed $r11, killed $lr
357 frame-setup CFI_INSTRUCTION def_cfa_offset 36
358 frame-setup CFI_INSTRUCTION offset $lr, -4
359 frame-setup CFI_INSTRUCTION offset $r11, -8
360 frame-setup CFI_INSTRUCTION offset $r10, -12
361 frame-setup CFI_INSTRUCTION offset $r9, -16
362 frame-setup CFI_INSTRUCTION offset $r8, -20
363 frame-setup CFI_INSTRUCTION offset $r7, -24
364 frame-setup CFI_INSTRUCTION offset $r6, -28
365 frame-setup CFI_INSTRUCTION offset $r5, -32
366 frame-setup CFI_INSTRUCTION offset $r4, -36
367 $sp = frame-setup tSUBspi $sp, 3, 14 /* CC::al */, $noreg
368 frame-setup CFI_INSTRUCTION def_cfa_offset 48
369 $r9, $r6 = t2LDRDi8 $sp, 56, 14 /* CC::al */, $noreg :: (load (s32) from %fixed-stack.4, align 8), (load (s32) from %fixed-stack.3)
370 $r8, $r12 = t2LDRDi8 $sp, 48, 14 /* CC::al */, $noreg :: (load (s32) from %fixed-stack.6, align 8), (load (s32) from %fixed-stack.5)
371 tCMPi8 renamable $r2, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
372 renamable $r11 = t2CSEL renamable $r12, renamable $r2, 0, implicit killed $cpsr
373 t2CMPri renamable $r9, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
374 renamable $lr = t2CSINC $zr, $zr, 0, implicit killed $cpsr
375 tCMPi8 renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
376 renamable $r4 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
377 renamable $r7 = tLDRspi $sp, 16, 14 /* CC::al */, $noreg :: (load (s32) from %fixed-stack.2, align 8)
378 t2IT 0, 8, implicit-def $itstate
379 $r4 = tMOVi8 $noreg, 5, 0 /* CC::eq */, killed $cpsr, implicit killed renamable $r4, implicit killed $itstate
380 tCMPhir killed renamable $r4, renamable $r9, 14 /* CC::al */, $noreg, implicit-def $cpsr
381 renamable $r4 = t2CSINC $zr, $zr, 13, implicit killed $cpsr
382 renamable $r5 = tLDRspi $sp, 18, 14 /* CC::al */, $noreg :: (load (s32) from %fixed-stack.0, align 8)
383 tSTRspi killed renamable $r4, $sp, 2, 14 /* CC::al */, $noreg :: (store (s32) into %stack.0)
384 dead renamable $r4 = t2ORRrr renamable $r6, renamable $r7, 14 /* CC::al */, $noreg, def $cpsr
385 renamable $r4 = t2CSINC $zr, $zr, 0, implicit killed $cpsr
386 t2CMPri renamable $r8, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
387 renamable $r10 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
388 t2Bcc %bb.61, 11 /* CC::lt */, killed $cpsr
391 successors: %bb.37(0x40000000), %bb.2(0x40000000)
392 liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r6, $r7, $r8, $r9, $r10, $r11, $r12
394 renamable $r5 = tLDRspi $sp, 17, 14 /* CC::al */, $noreg :: (load (s32) from %fixed-stack.1)
395 tSTRspi killed renamable $r4, $sp, 1, 14 /* CC::al */, $noreg :: (store (s32) into %stack.1)
396 renamable $r4, dead $cpsr = tMOVi8 9, 14 /* CC::al */, $noreg
397 renamable $r4 = t2SDIV killed renamable $r4, renamable $r5, 14 /* CC::al */, $noreg
398 renamable $r7 = t2ANDrs killed renamable $r7, killed renamable $r6, 249, 14 /* CC::al */, $noreg, $noreg
399 renamable $r5, dead $cpsr = tMUL killed renamable $r4, killed renamable $r5, 14 /* CC::al */, $noreg
400 $r4 = t2MOVi16 42736, 14 /* CC::al */, $noreg
401 $r4 = t2MOVTi16 killed $r4, 42423, 14 /* CC::al */, $noreg
402 tCMPr renamable $r2, killed renamable $r4, 14 /* CC::al */, $noreg, implicit-def $cpsr
403 renamable $r6 = t2RSBri killed renamable $r5, 9, 14 /* CC::al */, $noreg, $noreg
404 t2Bcc %bb.2, 1 /* CC::ne */, killed $cpsr
406 bb.37.for.body.lr.ph.split:
407 successors: %bb.38(0x40000000), %bb.39(0x40000000)
408 liveins: $lr, $r0, $r1, $r3, $r6, $r7, $r9, $r10, $r11, $r12
410 tCMPr killed renamable $r6, killed renamable $r7, 14 /* CC::al */, $noreg, implicit-def $cpsr
411 t2Bcc %bb.39, 10 /* CC::ge */, killed $cpsr
413 bb.38.for.body.lr.ph.split.split.us:
414 successors: %bb.39(0x80000000)
415 liveins: $lr, $r0, $r1, $r3, $r9, $r10, $r11, $r12
417 $r4 = t2MOVi16 target-flags(arm-lo16) @var_76, 14 /* CC::al */, $noreg
418 renamable $r2 = t2ASRri renamable $r11, 31, 14 /* CC::al */, $noreg, $noreg
419 $r4 = t2MOVTi16 killed $r4, target-flags(arm-hi16) @var_76, 14 /* CC::al */, $noreg
420 t2STRDi8 killed $r11, killed $r2, killed $r4, 0, 14 /* CC::al */, $noreg :: (store (s32) into @var_76, align 8), (store (s32) into @var_76 + 4, basealign 8)
421 $r2 = t2MOVi16 target-flags(arm-lo16) @var_77, 14 /* CC::al */, $noreg
422 $r2 = t2MOVTi16 killed $r2, target-flags(arm-hi16) @var_77, 14 /* CC::al */, $noreg
423 t2STRBi12 killed renamable $lr, killed renamable $r2, 0, 14 /* CC::al */, $noreg :: (store (s8) into @var_77)
425 bb.39.for.body.lr.ph.split.split:
426 successors: %bb.59(0x80000000)
427 liveins: $r1, $r3, $r12, $r10, $r0, $r9
429 renamable $r2 = tLDRspi $sp, 1, 14 /* CC::al */, $noreg :: (load (s32) from %stack.1)
430 t2CMPri killed renamable $r9, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
431 renamable $r0 = t2CSEL killed renamable $r2, killed renamable $r0, 0, implicit killed $cpsr
432 t2B %bb.59, 14 /* CC::al */, $noreg
434 bb.2.for.body.lr.ph.split.us:
435 successors: %bb.3(0x40000000), %bb.14(0x40000000)
436 liveins: $lr, $r0, $r1, $r2, $r3, $r6, $r7, $r8, $r9, $r10, $r11, $r12
438 tCMPr killed renamable $r6, killed renamable $r7, 14 /* CC::al */, $noreg, implicit-def $cpsr
439 tSTRspi killed renamable $r3, $sp, 0, 14 /* CC::al */, $noreg :: (store (s32) into %stack.2)
440 t2Bcc %bb.14, 10 /* CC::ge */, killed $cpsr
442 bb.3.for.body.lr.ph.split.us.split.us:
443 successors: %bb.4(0x40000000), %bb.5(0x40000000)
444 liveins: $lr, $r0, $r1, $r2, $r8, $r9, $r10, $r11, $r12
446 $r4 = t2MOVi16 target-flags(arm-lo16) @var_76, 14 /* CC::al */, $noreg
447 renamable $r3 = t2ASRri renamable $r11, 31, 14 /* CC::al */, $noreg, $noreg
448 $r4 = t2MOVTi16 killed $r4, target-flags(arm-hi16) @var_76, 14 /* CC::al */, $noreg
449 t2STRDi8 killed $r11, killed $r3, killed $r4, 0, 14 /* CC::al */, $noreg :: (store (s32) into @var_76, align 8), (store (s32) into @var_76 + 4, basealign 8)
450 $r3 = t2MOVi16 target-flags(arm-lo16) @var_77, 14 /* CC::al */, $noreg
451 $r3 = t2MOVTi16 killed $r3, target-flags(arm-hi16) @var_77, 14 /* CC::al */, $noreg
452 t2STRBi12 killed renamable $lr, killed renamable $r3, 0, 14 /* CC::al */, $noreg :: (store (s8) into @var_77)
453 $r3 = t2MOVi16 22800, 14 /* CC::al */, $noreg
454 $r3 = t2MOVTi16 killed $r3, 23112, 14 /* CC::al */, $noreg
455 renamable $r11 = t2ADDrr killed renamable $r2, killed renamable $r3, 14 /* CC::al */, $noreg, $noreg
456 renamable $r2 = nsw t2SUBri renamable $r8, 1, 14 /* CC::al */, $noreg, $noreg
457 tCMPi8 killed renamable $r2, 3, 14 /* CC::al */, $noreg, implicit-def $cpsr
458 renamable $r3 = t2ANDri renamable $r8, 3, 14 /* CC::al */, $noreg, $noreg
459 t2Bcc %bb.5, 2 /* CC::hs */, killed $cpsr
462 successors: %bb.41(0x80000000)
463 liveins: $r0, $r1, $r3, $r9, $r10, $r11, $r12
465 renamable $r4, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
467 bb.41.for.cond.for.cond45.preheader_crit_edge.loopexit135.unr-lcssa:
468 successors: %bb.45(0x30000000), %bb.42(0x50000000)
469 liveins: $r0, $r1, $r3, $r4, $r9, $r10, $r11, $r12
471 renamable $r7 = tLDRspi $sp, 2, 14 /* CC::al */, $noreg :: (load (s32) from %stack.0)
472 tCMPi8 renamable $r3, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
473 t2Bcc %bb.45, 0 /* CC::eq */, killed $cpsr
475 bb.42.for.body.us.us.epil:
476 successors: %bb.44(0x40000000), %bb.43(0x40000000)
477 liveins: $r0, $r1, $r3, $r4, $r7, $r9, $r10, $r11, $r12
479 $r8 = t2MOVi16 target-flags(arm-lo16) @arr_163, 14 /* CC::al */, $noreg
480 renamable $r5 = t2ADDrs killed renamable $r4, renamable $r4, 10, 14 /* CC::al */, $noreg, $noreg
481 $r8 = t2MOVTi16 killed $r8, target-flags(arm-hi16) @arr_163, 14 /* CC::al */, $noreg
482 renamable $r2 = t2ADDri renamable $r11, 15, 14 /* CC::al */, $noreg, $noreg
483 renamable $r6 = t2ADDrs renamable $r8, renamable $r5, 18, 14 /* CC::al */, $noreg, $noreg
484 renamable $q0 = MVE_VDUP8 renamable $r7, 0, $noreg, $noreg, undef renamable $q0
485 renamable $r4, dead $cpsr = tLSRri killed renamable $r2, 4, 14 /* CC::al */, $noreg
486 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
487 renamable $lr = t2WhileLoopStartTP renamable $r4, renamable $r11, %bb.44, implicit-def dead $cpsr
488 t2B %bb.43, 14 /* CC::al */, $noreg
491 successors: %bb.43(0x40000000), %bb.44(0x40000000)
492 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12
494 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
495 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
496 MVE_VPST 8, implicit $vpr
497 renamable $r6 = MVE_VSTRBU8_post renamable $q0, killed renamable $r6, 16, 1, killed renamable $vpr, renamable $lr
498 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.43, implicit-def dead $cpsr
499 t2B %bb.44, 14 /* CC::al */, $noreg
501 bb.44.for.body.us.us.epil:
502 successors: %bb.45(0x40000000), %bb.74(0x40000000)
503 liveins: $r0, $r1, $r3, $r4, $r5, $r7, $r8, $r9, $r10, $r11, $r12
505 tCMPi8 renamable $r3, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
506 t2Bcc %bb.45, 0 /* CC::eq */, killed $cpsr
508 bb.74.for.body.us.us.epil.1:
509 successors: %bb.76(0x40000000), %bb.75(0x40000000)
510 liveins: $r0, $r1, $r3, $r4, $r5, $r7, $r8, $r9, $r10, $r11, $r12
512 renamable $r5 = t2ADDrs killed renamable $r8, killed renamable $r5, 18, 14 /* CC::al */, $noreg, $noreg
513 renamable $r6 = t2ADDri renamable $r5, 12, 14 /* CC::al */, $noreg, $noreg
514 renamable $q0 = MVE_VDUP8 renamable $r7, 0, $noreg, $noreg, undef renamable $q0
515 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
516 renamable $lr = t2WhileLoopStartTP renamable $r4, renamable $r11, %bb.76, implicit-def dead $cpsr
517 t2B %bb.75, 14 /* CC::al */, $noreg
520 successors: %bb.75(0x40000000), %bb.76(0x40000000)
521 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r9, $r10, $r11, $r12
523 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
524 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
525 MVE_VPST 8, implicit $vpr
526 renamable $r6 = MVE_VSTRBU8_post renamable $q0, killed renamable $r6, 16, 1, killed renamable $vpr, renamable $lr
527 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.75, implicit-def dead $cpsr
528 t2B %bb.76, 14 /* CC::al */, $noreg
530 bb.76.for.body.us.us.epil.1:
531 successors: %bb.45(0x40000000), %bb.77(0x40000000)
532 liveins: $r0, $r1, $r3, $r4, $r5, $r7, $r9, $r10, $r11, $r12
534 tCMPi8 killed renamable $r3, 2, 14 /* CC::al */, $noreg, implicit-def $cpsr
535 t2Bcc %bb.45, 0 /* CC::eq */, killed $cpsr
537 bb.77.for.body.us.us.epil.2:
538 successors: %bb.45(0x40000000), %bb.78(0x40000000)
539 liveins: $r0, $r1, $r4, $r5, $r7, $r9, $r10, $r11, $r12
541 renamable $r5, dead $cpsr = tADDi8 killed renamable $r5, 24, 14 /* CC::al */, $noreg
542 renamable $q0 = MVE_VDUP8 killed renamable $r7, 0, $noreg, $noreg, undef renamable $q0
543 renamable $lr = t2WhileLoopStartTP killed renamable $r4, renamable $r11, %bb.45, implicit-def dead $cpsr
544 t2B %bb.78, 14 /* CC::al */, $noreg
547 successors: %bb.78(0x40000000), %bb.45(0x40000000)
548 liveins: $lr, $q0, $r0, $r1, $r5, $r9, $r10, $r11, $r12
550 renamable $vpr = MVE_VCTP8 renamable $r11, 0, $noreg, $noreg
551 renamable $r11 = t2SUBri killed renamable $r11, 16, 14 /* CC::al */, $noreg, $noreg
552 MVE_VPST 8, implicit $vpr
553 renamable $r5 = MVE_VSTRBU8_post renamable $q0, killed renamable $r5, 16, 1, killed renamable $vpr, renamable $lr
554 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.78, implicit-def dead $cpsr
555 t2B %bb.45, 14 /* CC::al */, $noreg
557 bb.45.for.cond.for.cond45.preheader_crit_edge.loopexit135:
558 successors: %bb.58(0x80000000)
559 liveins: $r0, $r1, $r9, $r10, $r12
561 renamable $r2 = tLDRspi $sp, 1, 14 /* CC::al */, $noreg :: (load (s32) from %stack.1)
562 t2CMPri killed renamable $r9, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
563 renamable $r0 = t2CSEL killed renamable $r2, killed renamable $r0, 0, implicit killed $cpsr
564 t2B %bb.58, 14 /* CC::al */, $noreg
566 bb.14.for.body.lr.ph.split.us.split:
567 successors: %bb.17(0x30000000), %bb.15(0x50000000)
568 liveins: $r0, $r1, $r2, $r8, $r9, $r10, $r12
570 $r3 = t2MOVi16 22800, 14 /* CC::al */, $noreg
571 $r3 = t2MOVTi16 killed $r3, 23112, 14 /* CC::al */, $noreg
572 renamable $r11 = t2ADDrr killed renamable $r2, killed renamable $r3, 14 /* CC::al */, $noreg, $noreg
573 renamable $r2 = nsw t2SUBri renamable $r8, 1, 14 /* CC::al */, $noreg, $noreg
574 t2CMPri killed renamable $r9, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
575 renamable $r9 = t2ANDri renamable $r8, 3, 14 /* CC::al */, $noreg, $noreg
576 t2Bcc %bb.17, 0 /* CC::eq */, killed $cpsr
578 bb.15.for.body.us.preheader:
579 successors: %bb.16(0x40000000), %bb.28(0x40000000)
580 liveins: $r0, $r1, $r2, $r8, $r9, $r10, $r11, $r12
582 $r3 = t2MOVi16 target-flags(arm-lo16) @arr_163, 14 /* CC::al */, $noreg
583 tCMPi8 killed renamable $r2, 3, 14 /* CC::al */, $noreg, implicit-def $cpsr
584 $r3 = t2MOVTi16 killed $r3, target-flags(arm-hi16) @arr_163, 14 /* CC::al */, $noreg
585 t2Bcc %bb.28, 2 /* CC::hs */, killed $cpsr
588 successors: %bb.54(0x80000000)
589 liveins: $r0, $r1, $r3, $r9, $r10, $r11, $r12
591 renamable $r6, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
593 bb.54.for.cond.for.cond45.preheader_crit_edge.loopexit147.unr-lcssa:
594 successors: %bb.58(0x30000000), %bb.55(0x50000000)
595 liveins: $r0, $r1, $r3, $r6, $r9, $r10, $r11, $r12
597 t2CMPri renamable $r9, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
598 t2Bcc %bb.58, 0 /* CC::eq */, killed $cpsr
600 bb.55.for.body.us.epil:
601 successors: %bb.57(0x40000000), %bb.56(0x40000000)
602 liveins: $r0, $r1, $r3, $r6, $r9, $r10, $r11, $r12
604 renamable $r2 = tLDRspi $sp, 2, 14 /* CC::al */, $noreg :: (load (s32) from %stack.0)
605 renamable $r5 = t2ADDrs killed renamable $r6, renamable $r6, 10, 14 /* CC::al */, $noreg, $noreg
606 renamable $q0 = MVE_VDUP8 killed renamable $r2, 0, $noreg, $noreg, undef renamable $q0
607 renamable $r2 = t2ADDri renamable $r11, 15, 14 /* CC::al */, $noreg, $noreg
608 renamable $r6 = t2ADDrs renamable $r3, renamable $r5, 18, 14 /* CC::al */, $noreg, $noreg
609 renamable $r4, dead $cpsr = tLSRri killed renamable $r2, 4, 14 /* CC::al */, $noreg
610 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
611 renamable $lr = t2WhileLoopStartTP renamable $r4, renamable $r11, %bb.57, implicit-def dead $cpsr
612 t2B %bb.56, 14 /* CC::al */, $noreg
615 successors: %bb.56(0x40000000), %bb.57(0x40000000)
616 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r9, $r10, $r11, $r12
618 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
619 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
620 MVE_VPST 8, implicit $vpr
621 renamable $r6 = MVE_VSTRBU8_post renamable $q0, killed renamable $r6, 16, 1, killed renamable $vpr, renamable $lr
622 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.56, implicit-def dead $cpsr
623 t2B %bb.57, 14 /* CC::al */, $noreg
625 bb.57.for.body.us.epil:
626 successors: %bb.58(0x40000000), %bb.64(0x40000000)
627 liveins: $r0, $r1, $r3, $r4, $r5, $r9, $r10, $r11, $r12
629 t2CMPri renamable $r9, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
630 t2Bcc %bb.58, 0 /* CC::eq */, killed $cpsr
632 bb.64.for.body.us.epil.1:
633 successors: %bb.66(0x40000000), %bb.65(0x40000000)
634 liveins: $r0, $r1, $r3, $r4, $r5, $r9, $r10, $r11, $r12
636 renamable $r5 = t2ADDrs killed renamable $r3, killed renamable $r5, 18, 14 /* CC::al */, $noreg, $noreg
637 renamable $r3 = tLDRspi $sp, 2, 14 /* CC::al */, $noreg :: (load (s32) from %stack.0)
638 renamable $r6 = t2ADDri renamable $r5, 12, 14 /* CC::al */, $noreg, $noreg
639 renamable $q0 = MVE_VDUP8 renamable $r3, 0, $noreg, $noreg, undef renamable $q0
640 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
641 renamable $lr = t2WhileLoopStartTP renamable $r4, renamable $r11, %bb.66, implicit-def dead $cpsr
642 t2B %bb.65, 14 /* CC::al */, $noreg
645 successors: %bb.65(0x40000000), %bb.66(0x40000000)
646 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r9, $r10, $r11, $r12
648 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
649 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
650 MVE_VPST 8, implicit $vpr
651 renamable $r6 = MVE_VSTRBU8_post renamable $q0, killed renamable $r6, 16, 1, killed renamable $vpr, renamable $lr
652 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.65, implicit-def dead $cpsr
653 t2B %bb.66, 14 /* CC::al */, $noreg
655 bb.66.for.body.us.epil.1:
656 successors: %bb.58(0x40000000), %bb.67(0x40000000)
657 liveins: $r0, $r1, $r3, $r4, $r5, $r9, $r10, $r11, $r12
659 t2CMPri killed renamable $r9, 2, 14 /* CC::al */, $noreg, implicit-def $cpsr
660 t2Bcc %bb.58, 0 /* CC::eq */, killed $cpsr
662 bb.67.for.body.us.epil.2:
663 successors: %bb.58(0x40000000), %bb.68(0x40000000)
664 liveins: $r0, $r1, $r3, $r4, $r5, $r10, $r11, $r12
666 renamable $r5, dead $cpsr = tADDi8 killed renamable $r5, 24, 14 /* CC::al */, $noreg
667 renamable $q0 = MVE_VDUP8 killed renamable $r3, 0, $noreg, $noreg, undef renamable $q0
668 renamable $lr = t2WhileLoopStartTP killed renamable $r4, renamable $r11, %bb.58, implicit-def dead $cpsr
669 t2B %bb.68, 14 /* CC::al */, $noreg
672 successors: %bb.68(0x40000000), %bb.58(0x40000000)
673 liveins: $lr, $q0, $r0, $r1, $r5, $r10, $r11, $r12
675 renamable $vpr = MVE_VCTP8 renamable $r11, 0, $noreg, $noreg
676 renamable $r11 = t2SUBri killed renamable $r11, 16, 14 /* CC::al */, $noreg, $noreg
677 MVE_VPST 8, implicit $vpr
678 renamable $r5 = MVE_VSTRBU8_post renamable $q0, killed renamable $r5, 16, 1, killed renamable $vpr, renamable $lr
679 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.68, implicit-def dead $cpsr
680 t2B %bb.58, 14 /* CC::al */, $noreg
682 bb.5.for.body.lr.ph.split.us.split.us.new:
683 successors: %bb.6(0x80000000)
684 liveins: $r0, $r1, $r3, $r8, $r9, $r10, $r11, $r12
686 $r2 = t2MOVi16 target-flags(arm-lo16) @arr_163, 14 /* CC::al */, $noreg
687 $r2 = t2MOVTi16 killed $r2, target-flags(arm-hi16) @arr_163, 14 /* CC::al */, $noreg
688 renamable $r5 = nuw t2ADDri killed renamable $r2, 24, 14 /* CC::al */, $noreg, $noreg
689 renamable $r2 = tLDRspi $sp, 2, 14 /* CC::al */, $noreg :: (load (s32) from %stack.0)
690 renamable $r6 = t2BICri killed renamable $r8, 3, 14 /* CC::al */, $noreg, $noreg
691 renamable $q0 = MVE_VDUP8 killed renamable $r2, 0, $noreg, $noreg, undef renamable $q0
692 renamable $r2 = t2ADDri renamable $r11, 15, 14 /* CC::al */, $noreg, $noreg
693 renamable $r4, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
694 renamable $r8 = t2LSRri killed renamable $r2, 4, 14 /* CC::al */, $noreg, $noreg
695 t2B %bb.6, 14 /* CC::al */, $noreg
697 bb.40.for.body.us.us (align 4):
698 successors: %bb.41(0x04000000), %bb.6(0x7c000000)
699 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
701 renamable $r4, dead $cpsr = nuw tADDi8 killed renamable $r4, 4, 14 /* CC::al */, $noreg
702 tCMPr renamable $r6, renamable $r4, 14 /* CC::al */, $noreg, implicit-def $cpsr
703 renamable $r5 = t2ADDri killed renamable $r5, 48, 14 /* CC::al */, $noreg, $noreg
704 t2Bcc %bb.41, 0 /* CC::eq */, killed $cpsr
707 successors: %bb.8(0x40000000), %bb.7(0x40000000)
708 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
710 renamable $r7 = t2SUBri renamable $r5, 24, 14 /* CC::al */, $noreg, $noreg
711 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
712 renamable $lr = t2WhileLoopStartTP renamable $r8, renamable $r11, %bb.8, implicit-def dead $cpsr
713 t2B %bb.7, 14 /* CC::al */, $noreg
716 successors: %bb.7(0x40000000), %bb.8(0x40000000)
717 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12
719 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
720 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
721 MVE_VPST 8, implicit $vpr
722 renamable $r7 = MVE_VSTRBU8_post renamable $q0, killed renamable $r7, 16, 1, killed renamable $vpr, renamable $lr
723 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.7, implicit-def dead $cpsr
724 t2B %bb.8, 14 /* CC::al */, $noreg
727 successors: %bb.10(0x40000000), %bb.9(0x40000000)
728 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
730 renamable $r7 = t2SUBri renamable $r5, 12, 14 /* CC::al */, $noreg, $noreg
731 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
732 renamable $lr = t2WhileLoopStartTP renamable $r8, renamable $r11, %bb.10, implicit-def dead $cpsr
733 t2B %bb.9, 14 /* CC::al */, $noreg
736 successors: %bb.9(0x40000000), %bb.10(0x40000000)
737 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12
739 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
740 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
741 MVE_VPST 8, implicit $vpr
742 renamable $r7 = MVE_VSTRBU8_post renamable $q0, killed renamable $r7, 16, 1, killed renamable $vpr, renamable $lr
743 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.9, implicit-def dead $cpsr
744 t2B %bb.10, 14 /* CC::al */, $noreg
746 bb.10.for.body.us.us:
747 successors: %bb.12(0x40000000), %bb.11(0x40000000)
748 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
750 $r7 = tMOVr $r5, 14 /* CC::al */, $noreg
751 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
752 renamable $lr = t2WhileLoopStartTP renamable $r8, renamable $r11, %bb.12, implicit-def dead $cpsr
753 t2B %bb.11, 14 /* CC::al */, $noreg
756 successors: %bb.11(0x40000000), %bb.12(0x40000000)
757 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12
759 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
760 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
761 MVE_VPST 8, implicit $vpr
762 renamable $r7 = MVE_VSTRBU8_post renamable $q0, killed renamable $r7, 16, 1, killed renamable $vpr, renamable $lr
763 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.11, implicit-def dead $cpsr
764 t2B %bb.12, 14 /* CC::al */, $noreg
766 bb.12.for.body.us.us:
767 successors: %bb.40(0x40000000), %bb.13(0x40000000)
768 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
770 renamable $r7 = t2ADDri renamable $r5, 12, 14 /* CC::al */, $noreg, $noreg
771 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
772 renamable $lr = t2WhileLoopStartTP renamable $r8, renamable $r11, %bb.40, implicit-def dead $cpsr
773 t2B %bb.13, 14 /* CC::al */, $noreg
776 successors: %bb.13(0x40000000), %bb.40(0x40000000)
777 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12
779 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
780 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
781 MVE_VPST 8, implicit $vpr
782 renamable $r7 = MVE_VSTRBU8_post renamable $q0, killed renamable $r7, 16, 1, killed renamable $vpr, renamable $lr
783 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.13, implicit-def dead $cpsr
784 t2B %bb.40, 14 /* CC::al */, $noreg
786 bb.17.for.body.us.us115.preheader:
787 successors: %bb.18(0x40000000), %bb.19(0x40000000)
788 liveins: $r1, $r2, $r8, $r9, $r10, $r11, $r12
790 tCMPi8 killed renamable $r2, 3, 14 /* CC::al */, $noreg, implicit-def $cpsr
791 t2Bcc %bb.19, 2 /* CC::hs */, killed $cpsr
794 successors: %bb.47(0x80000000)
795 liveins: $r1, $r9, $r10, $r11, $r12
797 renamable $r3 = tLDRspi $sp, 2, 14 /* CC::al */, $noreg :: (load (s32) from %stack.0)
798 renamable $r0, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
800 bb.47.for.cond.for.cond45.preheader_crit_edge.loopexit.unr-lcssa:
801 successors: %bb.48(0x30000000), %bb.49(0x50000000)
802 liveins: $r0, $r1, $r3, $r9, $r10, $r11, $r12
804 t2CMPri renamable $r9, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
805 t2Bcc %bb.48, 0 /* CC::eq */, killed $cpsr
807 bb.49.for.body.us.us115.epil:
808 successors: %bb.51(0x40000000), %bb.50(0x40000000)
809 liveins: $r0, $r1, $r3, $r9, $r10, $r11, $r12
811 $r5 = t2MOVi16 target-flags(arm-lo16) @arr_163, 14 /* CC::al */, $noreg
812 renamable $r4 = t2ADDrs killed renamable $r0, renamable $r0, 10, 14 /* CC::al */, $noreg, $noreg
813 $r5 = t2MOVTi16 killed $r5, target-flags(arm-hi16) @arr_163, 14 /* CC::al */, $noreg
814 renamable $r0 = t2ADDri renamable $r11, 15, 14 /* CC::al */, $noreg, $noreg
815 renamable $r6 = t2ADDrs renamable $r5, renamable $r4, 18, 14 /* CC::al */, $noreg, $noreg
816 renamable $q0 = MVE_VDUP8 renamable $r3, 0, $noreg, $noreg, undef renamable $q0
817 renamable $r0, dead $cpsr = tLSRri killed renamable $r0, 4, 14 /* CC::al */, $noreg
818 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
819 renamable $lr = t2WhileLoopStartTP renamable $r0, renamable $r11, %bb.51, implicit-def dead $cpsr
820 t2B %bb.50, 14 /* CC::al */, $noreg
823 successors: %bb.50(0x40000000), %bb.51(0x40000000)
824 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r9, $r10, $r11, $r12
826 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
827 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
828 MVE_VPST 8, implicit $vpr
829 renamable $r6 = MVE_VSTRBU8_post renamable $q0, killed renamable $r6, 16, 1, killed renamable $vpr, renamable $lr
830 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.50, implicit-def dead $cpsr
831 t2B %bb.51, 14 /* CC::al */, $noreg
833 bb.51.for.body.us.us115.epil:
834 successors: %bb.48(0x40000000), %bb.52(0x40000000)
835 liveins: $r0, $r1, $r3, $r4, $r5, $r9, $r10, $r11, $r12
837 t2CMPri renamable $r9, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
838 t2Bcc %bb.52, 1 /* CC::ne */, killed $cpsr
841 successors: %bb.58(0x80000000)
842 liveins: $r10, $r1, $r12
844 renamable $r0 = tLDRspi $sp, 1, 14 /* CC::al */, $noreg :: (load (s32) from %stack.1)
847 successors: %bb.59(0x80000000)
848 liveins: $r0, $r1, $r12, $r10
850 renamable $r3 = tLDRspi $sp, 0, 14 /* CC::al */, $noreg :: (load (s32) from %stack.2)
852 bb.59.for.cond.for.cond45.preheader_crit_edge:
853 successors: %bb.60(0x80000000)
854 liveins: $r0, $r1, $r3, $r12, $r10
856 renamable $r5 = tLDRspi $sp, 18, 14 /* CC::al */, $noreg :: (load (s32) from %fixed-stack.0, align 8)
858 bb.60.for.cond.for.cond45.preheader_crit_edge:
859 successors: %bb.61(0x80000000)
860 liveins: $r0, $r1, $r3, $r5, $r10, $r12
862 $r2 = t2MOVi16 target-flags(arm-lo16) @var_81, 14 /* CC::al */, $noreg
863 $r2 = t2MOVTi16 killed $r2, target-flags(arm-hi16) @var_81, 14 /* CC::al */, $noreg
864 tSTRi killed renamable $r0, killed renamable $r2, 0, 14 /* CC::al */, $noreg :: (store (s32) into @var_81)
866 bb.61.for.cond45.preheader:
867 successors: %bb.79(0x30000000), %bb.62(0x50000000)
868 liveins: $r1, $r3, $r5, $r10, $r12
870 tCMPi8 killed renamable $r3, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
871 t2IT 0, 8, implicit-def $itstate
872 $r10 = t2MOVi 22, 0 /* CC::eq */, killed $cpsr, $noreg, implicit killed renamable $r10, implicit killed $itstate
873 tCMPi8 killed renamable $r5, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
874 t2Bcc %bb.79, 0 /* CC::eq */, killed $cpsr
876 bb.62.for.cond45.preheader1:
877 successors: %bb.63(0x80000000)
878 liveins: $r1, $r10, $r12
880 $r0 = t2MOVi16 target-flags(arm-lo16) @arr_239, 14 /* CC::al */, $noreg
881 renamable $r2, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
882 $r0 = t2MOVTi16 killed $r0, target-flags(arm-hi16) @arr_239, 14 /* CC::al */, $noreg
884 bb.63.for.cond45 (align 4):
885 successors: %bb.63(0x80000000)
886 liveins: $r0, $r1, $r2, $r10, $r12
888 dead renamable $r2, $cpsr = tLSLri killed renamable $r2, 24, 14 /* CC::al */, $noreg
889 renamable $r2 = t2CSEL renamable $r12, renamable $r1, 0, implicit killed $cpsr
890 renamable $r2 = tUXTB killed renamable $r2, 14 /* CC::al */, $noreg
891 tCMPi8 renamable $r2, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
892 t2STRBs renamable $r10, renamable $r0, killed renamable $r2, 0, 14 /* CC::al */, $noreg :: (store (s8) into %ir.arrayidx59)
893 renamable $r2 = t2CSEL renamable $r12, renamable $r1, 0, implicit killed $cpsr
894 renamable $r2 = tUXTB killed renamable $r2, 14 /* CC::al */, $noreg
895 tCMPi8 renamable $r2, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
896 t2STRBs renamable $r10, renamable $r0, killed renamable $r2, 0, 14 /* CC::al */, $noreg :: (store (s8) into %ir.arrayidx59.1)
897 renamable $r2 = t2CSEL renamable $r12, renamable $r1, 0, implicit killed $cpsr
898 renamable $r2 = tUXTB killed renamable $r2, 14 /* CC::al */, $noreg
899 tCMPi8 renamable $r2, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
900 t2STRBs renamable $r10, renamable $r0, killed renamable $r2, 0, 14 /* CC::al */, $noreg :: (store (s8) into %ir.arrayidx59.2)
901 renamable $r2 = t2CSEL renamable $r12, renamable $r1, 0, implicit killed $cpsr
902 renamable $r3 = tUXTB renamable $r2, 14 /* CC::al */, $noreg
903 t2STRBs renamable $r10, renamable $r0, killed renamable $r3, 0, 14 /* CC::al */, $noreg :: (store (s8) into %ir.arrayidx59.3)
904 t2B %bb.63, 14 /* CC::al */, $noreg
906 bb.79.for.cond45.us (align 4):
907 successors: %bb.79(0x80000000)
909 t2B %bb.79, 14 /* CC::al */, $noreg
911 bb.28.for.body.us.preheader.new:
912 successors: %bb.29(0x80000000)
913 liveins: $r0, $r1, $r3, $r8, $r9, $r10, $r11, $r12
915 renamable $r2 = tLDRspi $sp, 2, 14 /* CC::al */, $noreg :: (load (s32) from %stack.0)
916 renamable $r4 = nuw t2ADDri renamable $r3, 24, 14 /* CC::al */, $noreg, $noreg
917 renamable $q0 = MVE_VDUP8 killed renamable $r2, 0, $noreg, $noreg, undef renamable $q0
918 renamable $r2 = t2ADDri renamable $r11, 15, 14 /* CC::al */, $noreg, $noreg
919 renamable $r8 = t2BICri killed renamable $r8, 3, 14 /* CC::al */, $noreg, $noreg
920 renamable $r6, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
921 renamable $r5, dead $cpsr = tLSRri killed renamable $r2, 4, 14 /* CC::al */, $noreg
922 t2B %bb.29, 14 /* CC::al */, $noreg
924 bb.53.for.body.us (align 4):
925 successors: %bb.54(0x04000000), %bb.29(0x7c000000)
926 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
928 renamable $r6, dead $cpsr = nuw tADDi8 killed renamable $r6, 4, 14 /* CC::al */, $noreg
929 tCMPhir renamable $r8, renamable $r6, 14 /* CC::al */, $noreg, implicit-def $cpsr
930 renamable $r4 = t2ADDri killed renamable $r4, 48, 14 /* CC::al */, $noreg, $noreg
931 t2Bcc %bb.54, 0 /* CC::eq */, killed $cpsr
934 successors: %bb.31(0x40000000), %bb.30(0x40000000)
935 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
937 renamable $r7 = t2SUBri renamable $r4, 24, 14 /* CC::al */, $noreg, $noreg
938 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
939 renamable $lr = t2WhileLoopStartTP renamable $r5, renamable $r11, %bb.31, implicit-def dead $cpsr
940 t2B %bb.30, 14 /* CC::al */, $noreg
943 successors: %bb.30(0x40000000), %bb.31(0x40000000)
944 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12
946 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
947 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
948 MVE_VPST 8, implicit $vpr
949 renamable $r7 = MVE_VSTRBU8_post renamable $q0, killed renamable $r7, 16, 1, killed renamable $vpr, renamable $lr
950 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.30, implicit-def dead $cpsr
951 t2B %bb.31, 14 /* CC::al */, $noreg
954 successors: %bb.33(0x40000000), %bb.32(0x40000000)
955 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
957 renamable $r7 = t2SUBri renamable $r4, 12, 14 /* CC::al */, $noreg, $noreg
958 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
959 renamable $lr = t2WhileLoopStartTP renamable $r5, renamable $r11, %bb.33, implicit-def dead $cpsr
960 t2B %bb.32, 14 /* CC::al */, $noreg
963 successors: %bb.32(0x40000000), %bb.33(0x40000000)
964 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12
966 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
967 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
968 MVE_VPST 8, implicit $vpr
969 renamable $r7 = MVE_VSTRBU8_post renamable $q0, killed renamable $r7, 16, 1, killed renamable $vpr, renamable $lr
970 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.32, implicit-def dead $cpsr
971 t2B %bb.33, 14 /* CC::al */, $noreg
974 successors: %bb.35(0x40000000), %bb.34(0x40000000)
975 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
977 $r7 = tMOVr $r4, 14 /* CC::al */, $noreg
978 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
979 renamable $lr = t2WhileLoopStartTP renamable $r5, renamable $r11, %bb.35, implicit-def dead $cpsr
980 t2B %bb.34, 14 /* CC::al */, $noreg
983 successors: %bb.34(0x40000000), %bb.35(0x40000000)
984 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12
986 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
987 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
988 MVE_VPST 8, implicit $vpr
989 renamable $r7 = MVE_VSTRBU8_post renamable $q0, killed renamable $r7, 16, 1, killed renamable $vpr, renamable $lr
990 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.34, implicit-def dead $cpsr
991 t2B %bb.35, 14 /* CC::al */, $noreg
994 successors: %bb.53(0x40000000), %bb.36(0x40000000)
995 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
997 renamable $r7 = t2ADDri renamable $r4, 12, 14 /* CC::al */, $noreg, $noreg
998 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
999 renamable $lr = t2WhileLoopStartTP renamable $r5, renamable $r11, %bb.53, implicit-def dead $cpsr
1000 t2B %bb.36, 14 /* CC::al */, $noreg
1003 successors: %bb.36(0x40000000), %bb.53(0x40000000)
1004 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12
1006 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
1007 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
1008 MVE_VPST 8, implicit $vpr
1009 renamable $r7 = MVE_VSTRBU8_post renamable $q0, killed renamable $r7, 16, 1, killed renamable $vpr, renamable $lr
1010 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.36, implicit-def dead $cpsr
1011 t2B %bb.53, 14 /* CC::al */, $noreg
1013 bb.19.for.body.us.us115.preheader.new:
1014 successors: %bb.20(0x80000000)
1015 liveins: $r1, $r8, $r9, $r10, $r11, $r12
1017 $r0 = t2MOVi16 target-flags(arm-lo16) @arr_163, 14 /* CC::al */, $noreg
1018 renamable $r3 = tLDRspi $sp, 2, 14 /* CC::al */, $noreg :: (load (s32) from %stack.0)
1019 $r0 = t2MOVTi16 killed $r0, target-flags(arm-hi16) @arr_163, 14 /* CC::al */, $noreg
1020 renamable $r2 = t2ADDri renamable $r11, 15, 14 /* CC::al */, $noreg, $noreg
1021 renamable $r4 = nuw t2ADDri killed renamable $r0, 24, 14 /* CC::al */, $noreg, $noreg
1022 renamable $r5 = t2BICri killed renamable $r8, 3, 14 /* CC::al */, $noreg, $noreg
1023 renamable $r0, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
1024 renamable $q0 = MVE_VDUP8 renamable $r3, 0, $noreg, $noreg, undef renamable $q0
1025 renamable $r6, dead $cpsr = tLSRri killed renamable $r2, 4, 14 /* CC::al */, $noreg
1026 t2B %bb.20, 14 /* CC::al */, $noreg
1028 bb.46.for.body.us.us115 (align 4):
1029 successors: %bb.47(0x04000000), %bb.20(0x7c000000)
1030 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r9, $r10, $r11, $r12
1032 renamable $r0, dead $cpsr = nuw tADDi8 killed renamable $r0, 4, 14 /* CC::al */, $noreg
1033 tCMPr renamable $r5, renamable $r0, 14 /* CC::al */, $noreg, implicit-def $cpsr
1034 renamable $r4 = t2ADDri killed renamable $r4, 48, 14 /* CC::al */, $noreg, $noreg
1035 t2Bcc %bb.47, 0 /* CC::eq */, killed $cpsr
1037 bb.20.for.body.us.us115:
1038 successors: %bb.22(0x40000000), %bb.21(0x40000000)
1039 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r9, $r10, $r11, $r12
1041 renamable $r7 = t2SUBri renamable $r4, 24, 14 /* CC::al */, $noreg, $noreg
1042 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
1043 renamable $lr = t2WhileLoopStartTP renamable $r6, renamable $r11, %bb.22, implicit-def dead $cpsr
1044 t2B %bb.21, 14 /* CC::al */, $noreg
1047 successors: %bb.21(0x40000000), %bb.22(0x40000000)
1048 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r9, $r10, $r11, $r12
1050 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
1051 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
1052 MVE_VPST 8, implicit $vpr
1053 renamable $r7 = MVE_VSTRBU8_post renamable $q0, killed renamable $r7, 16, 1, killed renamable $vpr, renamable $lr
1054 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.21, implicit-def dead $cpsr
1055 t2B %bb.22, 14 /* CC::al */, $noreg
1057 bb.22.for.body.us.us115:
1058 successors: %bb.24(0x40000000), %bb.23(0x40000000)
1059 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r9, $r10, $r11, $r12
1061 renamable $r7 = t2SUBri renamable $r4, 12, 14 /* CC::al */, $noreg, $noreg
1062 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
1063 renamable $lr = t2WhileLoopStartTP renamable $r6, renamable $r11, %bb.24, implicit-def dead $cpsr
1064 t2B %bb.23, 14 /* CC::al */, $noreg
1067 successors: %bb.23(0x40000000), %bb.24(0x40000000)
1068 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r9, $r10, $r11, $r12
1070 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
1071 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
1072 MVE_VPST 8, implicit $vpr
1073 renamable $r7 = MVE_VSTRBU8_post renamable $q0, killed renamable $r7, 16, 1, killed renamable $vpr, renamable $lr
1074 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.23, implicit-def dead $cpsr
1075 t2B %bb.24, 14 /* CC::al */, $noreg
1077 bb.24.for.body.us.us115:
1078 successors: %bb.26(0x40000000), %bb.25(0x40000000)
1079 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r9, $r10, $r11, $r12
1081 $r7 = tMOVr $r4, 14 /* CC::al */, $noreg
1082 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
1083 renamable $lr = t2WhileLoopStartTP renamable $r6, renamable $r11, %bb.26, implicit-def dead $cpsr
1084 t2B %bb.25, 14 /* CC::al */, $noreg
1087 successors: %bb.25(0x40000000), %bb.26(0x40000000)
1088 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r9, $r10, $r11, $r12
1090 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
1091 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
1092 MVE_VPST 8, implicit $vpr
1093 renamable $r7 = MVE_VSTRBU8_post renamable $q0, killed renamable $r7, 16, 1, killed renamable $vpr, renamable $lr
1094 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.25, implicit-def dead $cpsr
1095 t2B %bb.26, 14 /* CC::al */, $noreg
1097 bb.26.for.body.us.us115:
1098 successors: %bb.46(0x40000000), %bb.27(0x40000000)
1099 liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r9, $r10, $r11, $r12
1101 renamable $r7 = t2ADDri renamable $r4, 12, 14 /* CC::al */, $noreg, $noreg
1102 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
1103 renamable $lr = t2WhileLoopStartTP renamable $r6, renamable $r11, %bb.46, implicit-def dead $cpsr
1104 t2B %bb.27, 14 /* CC::al */, $noreg
1107 successors: %bb.27(0x40000000), %bb.46(0x40000000)
1108 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r9, $r10, $r11, $r12
1110 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
1111 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
1112 MVE_VPST 8, implicit $vpr
1113 renamable $r7 = MVE_VSTRBU8_post renamable $q0, killed renamable $r7, 16, 1, killed renamable $vpr, renamable $lr
1114 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.27, implicit-def dead $cpsr
1115 t2B %bb.46, 14 /* CC::al */, $noreg
1117 bb.52.for.body.us.us115.epil.1:
1118 successors: %bb.70(0x40000000), %bb.69(0x40000000)
1119 liveins: $r0, $r1, $r3, $r4, $r5, $r9, $r10, $r11, $r12
1121 renamable $r4 = t2ADDrs killed renamable $r5, killed renamable $r4, 18, 14 /* CC::al */, $noreg, $noreg
1122 renamable $r5 = t2ADDri renamable $r4, 12, 14 /* CC::al */, $noreg, $noreg
1123 renamable $q0 = MVE_VDUP8 renamable $r3, 0, $noreg, $noreg, undef renamable $q0
1124 $r2 = tMOVr $r11, 14 /* CC::al */, $noreg
1125 renamable $lr = t2WhileLoopStartTP renamable $r0, renamable $r11, %bb.70, implicit-def dead $cpsr
1126 t2B %bb.69, 14 /* CC::al */, $noreg
1129 successors: %bb.69(0x40000000), %bb.70(0x40000000)
1130 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r9, $r10, $r11, $r12
1132 renamable $vpr = MVE_VCTP8 renamable $r2, 0, $noreg, $noreg
1133 renamable $r2, dead $cpsr = tSUBi8 killed renamable $r2, 16, 14 /* CC::al */, $noreg
1134 MVE_VPST 8, implicit $vpr
1135 renamable $r5 = MVE_VSTRBU8_post renamable $q0, killed renamable $r5, 16, 1, killed renamable $vpr, renamable $lr
1136 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.69, implicit-def dead $cpsr
1137 t2B %bb.70, 14 /* CC::al */, $noreg
1139 bb.70.for.body.us.us115.epil.1:
1140 successors: %bb.73(0x40000000), %bb.71(0x40000000)
1141 liveins: $r0, $r1, $r3, $r4, $r9, $r10, $r11, $r12
1143 renamable $r5 = tLDRspi $sp, 18, 14 /* CC::al */, $noreg :: (load (s32) from %fixed-stack.0, align 8)
1144 t2CMPri killed renamable $r9, 2, 14 /* CC::al */, $noreg, implicit-def $cpsr
1145 t2Bcc %bb.73, 0 /* CC::eq */, killed $cpsr
1147 bb.71.for.body.us.us115.epil.2:
1148 successors: %bb.73(0x40000000), %bb.72(0x40000000)
1149 liveins: $r0, $r1, $r3, $r4, $r5, $r10, $r11, $r12
1151 renamable $r4, dead $cpsr = tADDi8 killed renamable $r4, 24, 14 /* CC::al */, $noreg
1152 renamable $q0 = MVE_VDUP8 killed renamable $r3, 0, $noreg, $noreg, undef renamable $q0
1153 renamable $lr = t2WhileLoopStartTP killed renamable $r0, renamable $r11, %bb.73, implicit-def dead $cpsr
1154 t2B %bb.72, 14 /* CC::al */, $noreg
1157 successors: %bb.72(0x40000000), %bb.73(0x40000000)
1158 liveins: $lr, $q0, $r1, $r4, $r5, $r10, $r11, $r12
1160 renamable $vpr = MVE_VCTP8 renamable $r11, 0, $noreg, $noreg
1161 renamable $r11 = t2SUBri killed renamable $r11, 16, 14 /* CC::al */, $noreg, $noreg
1162 MVE_VPST 8, implicit $vpr
1163 renamable $r4 = MVE_VSTRBU8_post renamable $q0, killed renamable $r4, 16, 1, killed renamable $vpr, renamable $lr
1164 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.72, implicit-def dead $cpsr
1165 t2B %bb.73, 14 /* CC::al */, $noreg
1167 bb.73.for.body.us.us115.epil.2:
1168 successors: %bb.60(0x80000000)
1169 liveins: $r1, $r12, $r5, $r10
1171 $r3, $r0 = t2LDRDi8 $sp, 0, 14 /* CC::al */, $noreg :: (load (s32) from %stack.2), (load (s32) from %stack.1)
1172 t2B %bb.60, 14 /* CC::al */, $noreg