Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / Thumb2 / LowOverheadLoops / wls-revert-placement.mir
blobf1a40dd9f94cf724ed118934d0473100946ab155
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.
6 # CHECK-LABEL: test
7 # CHECK-NOT: vctp
9 --- |
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"
12   
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
18   
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) {
20   entry:
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
36   
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
41     %rem = srem i32 9, %p
42     br i1 %cmp1782.not, label %for.body.lr.ph.split, label %for.body.lr.ph.split.us
43   
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
47   
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
58   
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
62   
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
79   
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
87   
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
91   
92   for.body.us.preheader.new:                        ; preds = %for.body.us.preheader
93     %unroll_iter = and i32 %k, -4
94     br label %for.body.us
95   
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
99   
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
103   
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
120   
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
137   
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
141   
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
149   
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
154   
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
159   
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
165   
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
170   
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
175   
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
181   
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
186   
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
192   
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
197   
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
203   
204   for.cond45.preheader1:                            ; preds = %for.cond45.preheader
205     br label %for.cond45
206   
207   for.cond45.us.preheader:                          ; preds = %for.cond45.preheader
208     br label %for.cond45.us
209   
210   for.cond45.us:                                    ; preds = %for.cond45.us.preheader, %for.cond45.us
211     br label %for.cond45.us
212   
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
239     br label %for.cond45
240   
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
247   
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
253   
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
260   
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
266   
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
273   
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
279   }
281   declare void @llvm.memset.p0.i32(ptr nocapture writeonly, i8, i32, i1 immarg)
285 name:            test
286 tracksRegLiveness: true
287 liveins:
288   - { reg: '$r0', virtual-reg: '' }
289   - { reg: '$r1', virtual-reg: '' }
290   - { reg: '$r2', virtual-reg: '' }
291   - { reg: '$r3', virtual-reg: '' }
292 fixedStack:
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: '' }
314 stack:
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: '' }
351 body:             |
352   bb.0.entry:
353     successors: %bb.1(0x50000000), %bb.61(0x30000000)
354     liveins: $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $lr
355   
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
389   
390   bb.1.for.body.lr.ph:
391     successors: %bb.37(0x40000000), %bb.2(0x40000000)
392     liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r6, $r7, $r8, $r9, $r10, $r11, $r12
393   
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
405   
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
409   
410     tCMPr killed renamable $r6, killed renamable $r7, 14 /* CC::al */, $noreg, implicit-def $cpsr
411     t2Bcc %bb.39, 10 /* CC::ge */, killed $cpsr
412   
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
416   
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)
424   
425   bb.39.for.body.lr.ph.split.split:
426     successors: %bb.59(0x80000000)
427     liveins: $r1, $r3, $r12, $r10, $r0, $r9
428   
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
433   
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
437   
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
441   
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
445   
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
460   
461   bb.4:
462     successors: %bb.41(0x80000000)
463     liveins: $r0, $r1, $r3, $r9, $r10, $r11, $r12
464   
465     renamable $r4, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
466   
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
470   
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
474   
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
478   
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
489   
490   bb.43:
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
493   
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
500   
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
504   
505     tCMPi8 renamable $r3, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
506     t2Bcc %bb.45, 0 /* CC::eq */, killed $cpsr
507   
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
511   
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
518   
519   bb.75:
520     successors: %bb.75(0x40000000), %bb.76(0x40000000)
521     liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r9, $r10, $r11, $r12
522   
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
529   
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
533   
534     tCMPi8 killed renamable $r3, 2, 14 /* CC::al */, $noreg, implicit-def $cpsr
535     t2Bcc %bb.45, 0 /* CC::eq */, killed $cpsr
536   
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
540   
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
545   
546   bb.78:
547     successors: %bb.78(0x40000000), %bb.45(0x40000000)
548     liveins: $lr, $q0, $r0, $r1, $r5, $r9, $r10, $r11, $r12
549   
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
556   
557   bb.45.for.cond.for.cond45.preheader_crit_edge.loopexit135:
558     successors: %bb.58(0x80000000)
559     liveins: $r0, $r1, $r9, $r10, $r12
560   
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
565   
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
569   
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
577   
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
581   
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
586   
587   bb.16:
588     successors: %bb.54(0x80000000)
589     liveins: $r0, $r1, $r3, $r9, $r10, $r11, $r12
590   
591     renamable $r6, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
592   
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
596   
597     t2CMPri renamable $r9, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
598     t2Bcc %bb.58, 0 /* CC::eq */, killed $cpsr
599   
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
603   
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
613   
614   bb.56:
615     successors: %bb.56(0x40000000), %bb.57(0x40000000)
616     liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r9, $r10, $r11, $r12
617   
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
624   
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
628   
629     t2CMPri renamable $r9, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
630     t2Bcc %bb.58, 0 /* CC::eq */, killed $cpsr
631   
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
635   
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
643   
644   bb.65:
645     successors: %bb.65(0x40000000), %bb.66(0x40000000)
646     liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r9, $r10, $r11, $r12
647   
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
654   
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
658   
659     t2CMPri killed renamable $r9, 2, 14 /* CC::al */, $noreg, implicit-def $cpsr
660     t2Bcc %bb.58, 0 /* CC::eq */, killed $cpsr
661   
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
665   
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
670   
671   bb.68:
672     successors: %bb.68(0x40000000), %bb.58(0x40000000)
673     liveins: $lr, $q0, $r0, $r1, $r5, $r10, $r11, $r12
674   
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
681   
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
685   
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
696   
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
700   
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
705   
706   bb.6.for.body.us.us:
707     successors: %bb.8(0x40000000), %bb.7(0x40000000)
708     liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
709   
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
714   
715   bb.7:
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
718   
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
725   
726   bb.8.for.body.us.us:
727     successors: %bb.10(0x40000000), %bb.9(0x40000000)
728     liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
729   
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
734   
735   bb.9:
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
738   
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
745   
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
749   
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
754   
755   bb.11:
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
758   
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
765   
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
769   
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
774   
775   bb.13:
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
778   
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
785   
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
789   
790     tCMPi8 killed renamable $r2, 3, 14 /* CC::al */, $noreg, implicit-def $cpsr
791     t2Bcc %bb.19, 2 /* CC::hs */, killed $cpsr
792   
793   bb.18:
794     successors: %bb.47(0x80000000)
795     liveins: $r1, $r9, $r10, $r11, $r12
796   
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
799   
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
803   
804     t2CMPri renamable $r9, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
805     t2Bcc %bb.48, 0 /* CC::eq */, killed $cpsr
806   
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
810   
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
821   
822   bb.50:
823     successors: %bb.50(0x40000000), %bb.51(0x40000000)
824     liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r9, $r10, $r11, $r12
825   
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
832   
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
836   
837     t2CMPri renamable $r9, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
838     t2Bcc %bb.52, 1 /* CC::ne */, killed $cpsr
839   
840   bb.48:
841     successors: %bb.58(0x80000000)
842     liveins: $r10, $r1, $r12
843   
844     renamable $r0 = tLDRspi $sp, 1, 14 /* CC::al */, $noreg :: (load (s32) from %stack.1)
845   
846   bb.58:
847     successors: %bb.59(0x80000000)
848     liveins: $r0, $r1, $r12, $r10
849   
850     renamable $r3 = tLDRspi $sp, 0, 14 /* CC::al */, $noreg :: (load (s32) from %stack.2)
851   
852   bb.59.for.cond.for.cond45.preheader_crit_edge:
853     successors: %bb.60(0x80000000)
854     liveins: $r0, $r1, $r3, $r12, $r10
855   
856     renamable $r5 = tLDRspi $sp, 18, 14 /* CC::al */, $noreg :: (load (s32) from %fixed-stack.0, align 8)
857   
858   bb.60.for.cond.for.cond45.preheader_crit_edge:
859     successors: %bb.61(0x80000000)
860     liveins: $r0, $r1, $r3, $r5, $r10, $r12
861   
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)
865   
866   bb.61.for.cond45.preheader:
867     successors: %bb.79(0x30000000), %bb.62(0x50000000)
868     liveins: $r1, $r3, $r5, $r10, $r12
869   
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
875   
876   bb.62.for.cond45.preheader1:
877     successors: %bb.63(0x80000000)
878     liveins: $r1, $r10, $r12
879   
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
883   
884   bb.63.for.cond45 (align 4):
885     successors: %bb.63(0x80000000)
886     liveins: $r0, $r1, $r2, $r10, $r12
887   
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
905   
906   bb.79.for.cond45.us (align 4):
907     successors: %bb.79(0x80000000)
908   
909     t2B %bb.79, 14 /* CC::al */, $noreg
910   
911   bb.28.for.body.us.preheader.new:
912     successors: %bb.29(0x80000000)
913     liveins: $r0, $r1, $r3, $r8, $r9, $r10, $r11, $r12
914   
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
923   
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
927   
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
932   
933   bb.29.for.body.us:
934     successors: %bb.31(0x40000000), %bb.30(0x40000000)
935     liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
936   
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
941   
942   bb.30:
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
945   
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
952   
953   bb.31.for.body.us:
954     successors: %bb.33(0x40000000), %bb.32(0x40000000)
955     liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
956   
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
961   
962   bb.32:
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
965   
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
972   
973   bb.33.for.body.us:
974     successors: %bb.35(0x40000000), %bb.34(0x40000000)
975     liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
976   
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
981   
982   bb.34:
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
985   
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
992   
993   bb.35.for.body.us:
994     successors: %bb.53(0x40000000), %bb.36(0x40000000)
995     liveins: $q0, $r0, $r1, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r11, $r12
996   
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
1001   
1002   bb.36:
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
1005   
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
1012   
1013   bb.19.for.body.us.us115.preheader.new:
1014     successors: %bb.20(0x80000000)
1015     liveins: $r1, $r8, $r9, $r10, $r11, $r12
1016   
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
1027   
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
1031   
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
1036   
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
1040   
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
1045   
1046   bb.21:
1047     successors: %bb.21(0x40000000), %bb.22(0x40000000)
1048     liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r9, $r10, $r11, $r12
1049   
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
1056   
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
1060   
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
1065   
1066   bb.23:
1067     successors: %bb.23(0x40000000), %bb.24(0x40000000)
1068     liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r9, $r10, $r11, $r12
1069   
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
1076   
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
1080   
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
1085   
1086   bb.25:
1087     successors: %bb.25(0x40000000), %bb.26(0x40000000)
1088     liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r9, $r10, $r11, $r12
1089   
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
1096   
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
1100   
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
1105   
1106   bb.27:
1107     successors: %bb.27(0x40000000), %bb.46(0x40000000)
1108     liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r9, $r10, $r11, $r12
1109   
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
1116   
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
1120   
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
1127   
1128   bb.69:
1129     successors: %bb.69(0x40000000), %bb.70(0x40000000)
1130     liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r9, $r10, $r11, $r12
1131   
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
1138   
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
1142   
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
1146   
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
1150   
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
1155   
1156   bb.72:
1157     successors: %bb.72(0x40000000), %bb.73(0x40000000)
1158     liveins: $lr, $q0, $r1, $r4, $r5, $r10, $r11, $r12
1159   
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
1166   
1167   bb.73.for.body.us.us115.epil.2:
1168     successors: %bb.60(0x80000000)
1169     liveins: $r1, $r12, $r5, $r10
1170   
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