1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=thumbv8.1m.main-none-unknown-eabi -mattr=+mve -run-pass=arm-low-overhead-loops -enable-subreg-liveness %s -o - --verify-machineinstrs | FileCheck %s
5 %struct.arm_2d_size_t = type { i16, i16 }
6 define void @none(ptr noalias nocapture %phwTargetBase, i16 signext %iTargetStride, ptr noalias nocapture readonly %ptCopySize, i16 zeroext %hwColour, i32 %chRatio) {
9 define void @copyin(ptr noalias nocapture %phwTargetBase, i16 signext %iTargetStride, ptr noalias nocapture readonly %ptCopySize, i16 zeroext %hwColour, i32 %chRatio) {
12 define void @copyout(ptr noalias nocapture %phwTargetBase, i16 signext %iTargetStride, ptr noalias nocapture readonly %ptCopySize, i16 zeroext %hwColour, i32 %chRatio) {
18 tracksRegLiveness: true
21 - { reg: '$r0', virtual-reg: '' }
22 - { reg: '$r1', virtual-reg: '' }
23 - { reg: '$r2', virtual-reg: '' }
25 ; CHECK-LABEL: name: none
27 ; CHECK-NEXT: successors: %bb.5(0x5c0b8170), %bb.1(0x23f47e90)
28 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r4, $r5, $r6, $lr
30 ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $lr, implicit-def $sp, implicit $sp
31 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16
32 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4
33 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r6, -8
34 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r5, -12
35 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -16
36 ; CHECK-NEXT: renamable $r12 = t2LDRSHi12 renamable $r2, 2, 14 /* CC::al */, $noreg
37 ; CHECK-NEXT: t2CMPri renamable $r12, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
38 ; CHECK-NEXT: t2IT 10, 4, implicit-def $itstate
39 ; CHECK-NEXT: renamable $r2 = t2LDRSHi12 killed renamable $r2, 0, 10 /* CC::ge */, $cpsr, implicit $r2, implicit $itstate
40 ; CHECK-NEXT: tCMPi8 renamable $r2, 1, 10 /* CC::ge */, killed $cpsr, implicit-def $cpsr, implicit killed $itstate
41 ; CHECK-NEXT: tBcc %bb.5, 11 /* CC::lt */, killed $cpsr
44 ; CHECK-NEXT: successors: %bb.2(0x80000000)
45 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r12
47 ; CHECK-NEXT: renamable $r3 = t2LDRHi12 $sp, 16, 14 /* CC::al */, $noreg
48 ; CHECK-NEXT: renamable $r1, dead $cpsr = nsw tLSLri killed renamable $r1, 1, 14 /* CC::al */, $noreg
49 ; CHECK-NEXT: renamable $r3 = t2RSBri killed renamable $r3, 256, 14 /* CC::al */, $noreg, $noreg
50 ; CHECK-NEXT: renamable $q0 = MVE_VDUP16 killed renamable $r3, 0, $noreg, $noreg, undef renamable $q0
51 ; CHECK-NEXT: renamable $r3, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
54 ; CHECK-NEXT: successors: %bb.3(0x80000000)
55 ; CHECK-NEXT: liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12
57 ; CHECK-NEXT: $r4 = tMOVr $r0, 14 /* CC::al */, $noreg
58 ; CHECK-NEXT: $lr = MVE_DLSTP_16 renamable $r2
61 ; CHECK-NEXT: successors: %bb.3(0x7c000000), %bb.4(0x04000000)
62 ; CHECK-NEXT: liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r6, $r12
64 ; CHECK-NEXT: renamable $q1 = MVE_VLDRHU16 renamable $r4, 0, 0, $noreg, renamable $lr
65 ; CHECK-NEXT: renamable $q1 = MVE_VAND killed renamable $q1, renamable $q0, 0, $noreg, renamable $lr, undef renamable $q1
66 ; CHECK-NEXT: renamable $r4 = MVE_VSTRHU16_post killed renamable $q1, killed renamable $r4, 16, 0, killed $noreg, renamable $lr
67 ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.3
70 ; CHECK-NEXT: successors: %bb.5(0x04000000), %bb.2(0x7c000000)
71 ; CHECK-NEXT: liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12
73 ; CHECK-NEXT: renamable $r3, dead $cpsr = nuw nsw tADDi8 killed renamable $r3, 1, 14 /* CC::al */, $noreg
74 ; CHECK-NEXT: renamable $r0 = tADDhirr killed renamable $r0, renamable $r1, 14 /* CC::al */, $noreg
75 ; CHECK-NEXT: tCMPhir renamable $r3, renamable $r12, 14 /* CC::al */, $noreg, implicit-def $cpsr
76 ; CHECK-NEXT: tBcc %bb.2, 1 /* CC::ne */, killed $cpsr
79 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $pc
81 successors: %bb.5(0x80000000), %bb.1(0x32000000)
82 liveins: $r0, $r1, $r2, $r4, $r5, $r6, $lr
84 frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $lr, implicit-def $sp, implicit $sp
85 frame-setup CFI_INSTRUCTION def_cfa_offset 16
86 frame-setup CFI_INSTRUCTION offset $lr, -4
87 frame-setup CFI_INSTRUCTION offset $r6, -8
88 frame-setup CFI_INSTRUCTION offset $r5, -12
89 frame-setup CFI_INSTRUCTION offset $r4, -16
90 renamable $r12 = t2LDRSHi12 renamable $r2, 2, 14 /* CC::al */, $noreg
91 t2CMPri renamable $r12, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
92 t2IT 10, 4, implicit-def $itstate
93 renamable $r2 = t2LDRSHi12 killed renamable $r2, 0, 10 /* CC::ge */, $cpsr, implicit $r2, implicit $itstate
94 tCMPi8 renamable $r2, 1, 10 /* CC::ge */, killed $cpsr, implicit-def $cpsr, implicit killed $itstate
95 tBcc %bb.5, 11 /* CC::lt */, killed $cpsr
98 successors: %bb.2(0x80000000)
99 liveins: $r0, $r1, $r2, $r12
101 renamable $r3 = t2LDRHi12 $sp, 16, 14 /* CC::al */, $noreg
102 renamable $r6, dead $cpsr = nsw tADDi3 renamable $r2, 7, 14 /* CC::al */, $noreg
103 renamable $r5, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg
104 renamable $r1, dead $cpsr = nsw tLSLri killed renamable $r1, 1, 14 /* CC::al */, $noreg
105 renamable $r3 = t2RSBri killed renamable $r3, 256, 14 /* CC::al */, $noreg, $noreg
106 renamable $q0 = MVE_VDUP16 killed renamable $r3, 0, $noreg, $noreg, undef renamable $q0
107 renamable $r3 = t2BICri killed renamable $r6, 7, 14 /* CC::al */, $noreg, $noreg
108 renamable $r3, dead $cpsr = tSUBi8 killed renamable $r3, 8, 14 /* CC::al */, $noreg
109 renamable $r6 = nuw nsw t2ADDrs killed renamable $r5, killed renamable $r3, 27, 14 /* CC::al */, $noreg, $noreg
110 renamable $r3, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
113 successors: %bb.3(0x80000000)
114 liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12
116 $r4 = tMOVr $r0, 14 /* CC::al */, $noreg
117 $r5 = tMOVr $r2, 14 /* CC::al */, $noreg
118 renamable $lr = t2DoLoopStartTP renamable $r6, renamable $r2
121 successors: %bb.3(0x7c000000), %bb.4(0x04000000)
122 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r12
124 renamable $vpr = MVE_VCTP16 renamable $r5, 0, $noreg, $noreg
125 renamable $r5, dead $cpsr = tSUBi8 killed renamable $r5, 8, 14 /* CC::al */, $noreg
126 MVE_VPST 8, implicit $vpr
127 renamable $q1 = MVE_VLDRHU16 renamable $r4, 0, 1, renamable $vpr, renamable $lr
128 renamable $q1 = MVE_VAND killed renamable $q1, renamable $q0, 0, $noreg, renamable $lr, undef renamable $q1
129 MVE_VPST 8, implicit $vpr
130 renamable $r4 = MVE_VSTRHU16_post killed renamable $q1, killed renamable $r4, 16, 1, killed renamable $vpr, renamable $lr
131 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.3, implicit-def dead $cpsr
132 tB %bb.4, 14 /* CC::al */, $noreg
135 successors: %bb.5(0x04000000), %bb.2(0x7c000000)
136 liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12
138 renamable $r3, dead $cpsr = nuw nsw tADDi8 killed renamable $r3, 1, 14 /* CC::al */, $noreg
139 renamable $r0 = tADDhirr killed renamable $r0, renamable $r1, 14 /* CC::al */, $noreg
140 tCMPhir renamable $r3, renamable $r12, 14 /* CC::al */, $noreg, implicit-def $cpsr
141 tBcc %bb.2, 1 /* CC::ne */, killed $cpsr
144 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $pc
149 tracksRegLiveness: true
152 - { reg: '$r0', virtual-reg: '' }
153 - { reg: '$r1', virtual-reg: '' }
154 - { reg: '$r2', virtual-reg: '' }
156 ; CHECK-LABEL: name: copyin
158 ; CHECK-NEXT: successors: %bb.5(0x5c0b8170), %bb.1(0x23f47e90)
159 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r4, $r5, $r6, $lr
161 ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $lr, implicit-def $sp, implicit $sp
162 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16
163 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4
164 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r6, -8
165 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r5, -12
166 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -16
167 ; CHECK-NEXT: renamable $r12 = t2LDRSHi12 renamable $r2, 2, 14 /* CC::al */, $noreg
168 ; CHECK-NEXT: t2CMPri renamable $r12, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
169 ; CHECK-NEXT: t2IT 10, 4, implicit-def $itstate
170 ; CHECK-NEXT: renamable $r2 = t2LDRSHi12 killed renamable $r2, 0, 10 /* CC::ge */, $cpsr, implicit $r2, implicit $itstate
171 ; CHECK-NEXT: tCMPi8 renamable $r2, 1, 10 /* CC::ge */, killed $cpsr, implicit-def $cpsr, implicit killed $itstate
172 ; CHECK-NEXT: tBcc %bb.5, 11 /* CC::lt */, killed $cpsr
175 ; CHECK-NEXT: successors: %bb.2(0x80000000)
176 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r12
178 ; CHECK-NEXT: renamable $r3 = t2LDRHi12 $sp, 16, 14 /* CC::al */, $noreg
179 ; CHECK-NEXT: renamable $r1, dead $cpsr = nsw tLSLri killed renamable $r1, 1, 14 /* CC::al */, $noreg
180 ; CHECK-NEXT: renamable $r3 = t2RSBri killed renamable $r3, 256, 14 /* CC::al */, $noreg, $noreg
181 ; CHECK-NEXT: renamable $q0 = MVE_VDUP16 killed renamable $r3, 0, $noreg, $noreg, undef renamable $q0
182 ; CHECK-NEXT: renamable $r3, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
185 ; CHECK-NEXT: successors: %bb.3(0x80000000)
186 ; CHECK-NEXT: liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12
188 ; CHECK-NEXT: $r4 = tMOVr $r0, 14 /* CC::al */, $noreg
189 ; CHECK-NEXT: $lr = MVE_DLSTP_16 renamable $r2
192 ; CHECK-NEXT: successors: %bb.3(0x7c000000), %bb.4(0x04000000)
193 ; CHECK-NEXT: liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r6, $r12
195 ; CHECK-NEXT: renamable $q1 = MVE_VLDRHU16 renamable $r4, 0, 0, $noreg, renamable $lr
196 ; CHECK-NEXT: $q2 = MVE_VORR $q0, $q0, 0, $noreg, $noreg, undef $q2
197 ; CHECK-NEXT: renamable $q1 = MVE_VAND killed renamable $q1, killed renamable $q2, 0, $noreg, renamable $lr, undef renamable $q1
198 ; CHECK-NEXT: renamable $r4 = MVE_VSTRHU16_post killed renamable $q1, killed renamable $r4, 16, 0, killed $noreg, renamable $lr
199 ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.3
202 ; CHECK-NEXT: successors: %bb.5(0x04000000), %bb.2(0x7c000000)
203 ; CHECK-NEXT: liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12
205 ; CHECK-NEXT: renamable $r3, dead $cpsr = nuw nsw tADDi8 killed renamable $r3, 1, 14 /* CC::al */, $noreg
206 ; CHECK-NEXT: renamable $r0 = tADDhirr killed renamable $r0, renamable $r1, 14 /* CC::al */, $noreg
207 ; CHECK-NEXT: tCMPhir renamable $r3, renamable $r12, 14 /* CC::al */, $noreg, implicit-def $cpsr
208 ; CHECK-NEXT: tBcc %bb.2, 1 /* CC::ne */, killed $cpsr
211 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $pc
213 successors: %bb.5(0x80000000), %bb.1(0x32000000)
214 liveins: $r0, $r1, $r2, $r4, $r5, $r6, $lr
216 frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $lr, implicit-def $sp, implicit $sp
217 frame-setup CFI_INSTRUCTION def_cfa_offset 16
218 frame-setup CFI_INSTRUCTION offset $lr, -4
219 frame-setup CFI_INSTRUCTION offset $r6, -8
220 frame-setup CFI_INSTRUCTION offset $r5, -12
221 frame-setup CFI_INSTRUCTION offset $r4, -16
222 renamable $r12 = t2LDRSHi12 renamable $r2, 2, 14 /* CC::al */, $noreg
223 t2CMPri renamable $r12, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
224 t2IT 10, 4, implicit-def $itstate
225 renamable $r2 = t2LDRSHi12 killed renamable $r2, 0, 10 /* CC::ge */, $cpsr, implicit $r2, implicit $itstate
226 tCMPi8 renamable $r2, 1, 10 /* CC::ge */, killed $cpsr, implicit-def $cpsr, implicit killed $itstate
227 tBcc %bb.5, 11 /* CC::lt */, killed $cpsr
230 successors: %bb.2(0x80000000)
231 liveins: $r0, $r1, $r2, $r12
233 renamable $r3 = t2LDRHi12 $sp, 16, 14 /* CC::al */, $noreg
234 renamable $r6, dead $cpsr = nsw tADDi3 renamable $r2, 7, 14 /* CC::al */, $noreg
235 renamable $r5, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg
236 renamable $r1, dead $cpsr = nsw tLSLri killed renamable $r1, 1, 14 /* CC::al */, $noreg
237 renamable $r3 = t2RSBri killed renamable $r3, 256, 14 /* CC::al */, $noreg, $noreg
238 renamable $q0 = MVE_VDUP16 killed renamable $r3, 0, $noreg, $noreg, undef renamable $q0
239 renamable $r3 = t2BICri killed renamable $r6, 7, 14 /* CC::al */, $noreg, $noreg
240 renamable $r3, dead $cpsr = tSUBi8 killed renamable $r3, 8, 14 /* CC::al */, $noreg
241 renamable $r6 = nuw nsw t2ADDrs killed renamable $r5, killed renamable $r3, 27, 14 /* CC::al */, $noreg, $noreg
242 renamable $r3, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
245 successors: %bb.3(0x80000000)
246 liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12
248 $r4 = tMOVr $r0, 14 /* CC::al */, $noreg
249 $r5 = tMOVr $r2, 14 /* CC::al */, $noreg
250 renamable $lr = t2DoLoopStartTP renamable $r6, renamable $r2
253 successors: %bb.3(0x7c000000), %bb.4(0x04000000)
254 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r12
256 renamable $vpr = MVE_VCTP16 renamable $r5, 0, $noreg, $noreg
257 renamable $r5, dead $cpsr = tSUBi8 killed renamable $r5, 8, 14 /* CC::al */, $noreg
258 MVE_VPST 8, implicit $vpr
259 renamable $q1 = MVE_VLDRHU16 renamable $r4, 0, 1, renamable $vpr, renamable $lr
261 renamable $q1 = MVE_VAND killed renamable $q1, renamable $q2, 0, $noreg, renamable $lr, undef renamable $q1
262 MVE_VPST 8, implicit $vpr
263 renamable $r4 = MVE_VSTRHU16_post killed renamable $q1, killed renamable $r4, 16, 1, killed renamable $vpr, renamable $lr
264 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.3, implicit-def dead $cpsr
265 tB %bb.4, 14 /* CC::al */, $noreg
268 successors: %bb.5(0x04000000), %bb.2(0x7c000000)
269 liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12
271 renamable $r3, dead $cpsr = nuw nsw tADDi8 killed renamable $r3, 1, 14 /* CC::al */, $noreg
272 renamable $r0 = tADDhirr killed renamable $r0, renamable $r1, 14 /* CC::al */, $noreg
273 tCMPhir renamable $r3, renamable $r12, 14 /* CC::al */, $noreg, implicit-def $cpsr
274 tBcc %bb.2, 1 /* CC::ne */, killed $cpsr
277 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $pc
282 tracksRegLiveness: true
285 - { reg: '$r0', virtual-reg: '' }
286 - { reg: '$r1', virtual-reg: '' }
287 - { reg: '$r2', virtual-reg: '' }
289 ; CHECK-LABEL: name: copyout
291 ; CHECK-NEXT: successors: %bb.5(0x5c0b8170), %bb.1(0x23f47e90)
292 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r4, $r5, $r6, $lr
294 ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $lr, implicit-def $sp, implicit $sp
295 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16
296 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4
297 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r6, -8
298 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r5, -12
299 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -16
300 ; CHECK-NEXT: renamable $r12 = t2LDRSHi12 renamable $r2, 2, 14 /* CC::al */, $noreg
301 ; CHECK-NEXT: t2CMPri renamable $r12, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
302 ; CHECK-NEXT: t2IT 10, 4, implicit-def $itstate
303 ; CHECK-NEXT: renamable $r2 = t2LDRSHi12 killed renamable $r2, 0, 10 /* CC::ge */, $cpsr, implicit $r2, implicit $itstate
304 ; CHECK-NEXT: tCMPi8 renamable $r2, 1, 10 /* CC::ge */, killed $cpsr, implicit-def $cpsr, implicit killed $itstate
305 ; CHECK-NEXT: tBcc %bb.5, 11 /* CC::lt */, killed $cpsr
308 ; CHECK-NEXT: successors: %bb.2(0x80000000)
309 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r12
311 ; CHECK-NEXT: renamable $r3 = t2LDRHi12 $sp, 16, 14 /* CC::al */, $noreg
312 ; CHECK-NEXT: renamable $r1, dead $cpsr = nsw tLSLri killed renamable $r1, 1, 14 /* CC::al */, $noreg
313 ; CHECK-NEXT: renamable $r3 = t2RSBri killed renamable $r3, 256, 14 /* CC::al */, $noreg, $noreg
314 ; CHECK-NEXT: renamable $q0 = MVE_VDUP16 killed renamable $r3, 0, $noreg, $noreg, undef renamable $q0
315 ; CHECK-NEXT: renamable $r3, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
318 ; CHECK-NEXT: successors: %bb.3(0x80000000)
319 ; CHECK-NEXT: liveins: $d0, $d1, $r0, $r1, $r2, $r3, $r6, $r12
321 ; CHECK-NEXT: $r4 = tMOVr $r0, 14 /* CC::al */, $noreg
322 ; CHECK-NEXT: $lr = MVE_DLSTP_16 renamable $r2
325 ; CHECK-NEXT: successors: %bb.3(0x7c000000), %bb.4(0x04000000)
326 ; CHECK-NEXT: liveins: $lr, $d0, $d1, $r0, $r1, $r2, $r3, $r4, $r6, $r12
328 ; CHECK-NEXT: renamable $q1 = MVE_VLDRHU16 renamable $r4, 0, 0, $noreg, renamable $lr
329 ; CHECK-NEXT: $d4 = VMOVD killed $d0, 14 /* CC::al */, $noreg
330 ; CHECK-NEXT: $d5 = VMOVD killed $d1, 14 /* CC::al */, $noreg
331 ; CHECK-NEXT: renamable $q1 = MVE_VAND killed renamable $q1, renamable $q2, 0, $noreg, renamable $lr, undef renamable $q1
332 ; CHECK-NEXT: $d0 = VMOVD killed $d4, 14 /* CC::al */, $noreg
333 ; CHECK-NEXT: $d1 = VMOVD killed $d5, 14 /* CC::al */, $noreg
334 ; CHECK-NEXT: renamable $r4 = MVE_VSTRHU16_post killed renamable $q1, killed renamable $r4, 16, 0, killed $noreg, renamable $lr
335 ; CHECK-NEXT: $lr = MVE_LETP killed renamable $lr, %bb.3
338 ; CHECK-NEXT: successors: %bb.5(0x04000000), %bb.2(0x7c000000)
339 ; CHECK-NEXT: liveins: $d0, $d1, $r0, $r1, $r2, $r3, $r6, $r12
341 ; CHECK-NEXT: renamable $r3, dead $cpsr = nuw nsw tADDi8 killed renamable $r3, 1, 14 /* CC::al */, $noreg
342 ; CHECK-NEXT: renamable $r0 = tADDhirr killed renamable $r0, renamable $r1, 14 /* CC::al */, $noreg
343 ; CHECK-NEXT: tCMPhir renamable $r3, renamable $r12, 14 /* CC::al */, $noreg, implicit-def $cpsr
344 ; CHECK-NEXT: tBcc %bb.2, 1 /* CC::ne */, killed $cpsr
347 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $pc
349 successors: %bb.5(0x80000000), %bb.1(0x32000000)
350 liveins: $r0, $r1, $r2, $r4, $r5, $r6, $lr
352 frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $lr, implicit-def $sp, implicit $sp
353 frame-setup CFI_INSTRUCTION def_cfa_offset 16
354 frame-setup CFI_INSTRUCTION offset $lr, -4
355 frame-setup CFI_INSTRUCTION offset $r6, -8
356 frame-setup CFI_INSTRUCTION offset $r5, -12
357 frame-setup CFI_INSTRUCTION offset $r4, -16
358 renamable $r12 = t2LDRSHi12 renamable $r2, 2, 14 /* CC::al */, $noreg
359 t2CMPri renamable $r12, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
360 t2IT 10, 4, implicit-def $itstate
361 renamable $r2 = t2LDRSHi12 killed renamable $r2, 0, 10 /* CC::ge */, $cpsr, implicit $r2, implicit $itstate
362 tCMPi8 renamable $r2, 1, 10 /* CC::ge */, killed $cpsr, implicit-def $cpsr, implicit killed $itstate
363 tBcc %bb.5, 11 /* CC::lt */, killed $cpsr
366 successors: %bb.2(0x80000000)
367 liveins: $r0, $r1, $r2, $r12
369 renamable $r3 = t2LDRHi12 $sp, 16, 14 /* CC::al */, $noreg
370 renamable $r6, dead $cpsr = nsw tADDi3 renamable $r2, 7, 14 /* CC::al */, $noreg
371 renamable $r5, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg
372 renamable $r1, dead $cpsr = nsw tLSLri killed renamable $r1, 1, 14 /* CC::al */, $noreg
373 renamable $r3 = t2RSBri killed renamable $r3, 256, 14 /* CC::al */, $noreg, $noreg
374 renamable $q0 = MVE_VDUP16 killed renamable $r3, 0, $noreg, $noreg, undef renamable $q0
375 renamable $r3 = t2BICri killed renamable $r6, 7, 14 /* CC::al */, $noreg, $noreg
376 renamable $r3, dead $cpsr = tSUBi8 killed renamable $r3, 8, 14 /* CC::al */, $noreg
377 renamable $r6 = nuw nsw t2ADDrs killed renamable $r5, killed renamable $r3, 27, 14 /* CC::al */, $noreg, $noreg
378 renamable $r3, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg
381 successors: %bb.3(0x80000000)
382 liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12
384 $r4 = tMOVr $r0, 14 /* CC::al */, $noreg
385 $r5 = tMOVr $r2, 14 /* CC::al */, $noreg
386 renamable $lr = t2DoLoopStartTP renamable $r6, renamable $r2
389 successors: %bb.3(0x7c000000), %bb.4(0x04000000)
390 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r12
392 renamable $vpr = MVE_VCTP16 renamable $r5, 0, $noreg, $noreg
393 renamable $r5, dead $cpsr = tSUBi8 killed renamable $r5, 8, 14 /* CC::al */, $noreg
394 MVE_VPST 8, implicit $vpr
395 renamable $q1 = MVE_VLDRHU16 renamable $r4, 0, 1, renamable $vpr, renamable $lr
397 renamable $q1 = MVE_VAND killed renamable $q1, renamable $q2, 0, $noreg, renamable $lr, undef renamable $q1
399 MVE_VPST 8, implicit $vpr
400 renamable $r4 = MVE_VSTRHU16_post killed renamable $q1, killed renamable $r4, 16, 1, killed renamable $vpr, renamable $lr
401 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.3, implicit-def dead $cpsr
402 tB %bb.4, 14 /* CC::al */, $noreg
405 successors: %bb.5(0x04000000), %bb.2(0x7c000000)
406 liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12
408 renamable $r3, dead $cpsr = nuw nsw tADDi8 killed renamable $r3, 1, 14 /* CC::al */, $noreg
409 renamable $r0 = tADDhirr killed renamable $r0, renamable $r1, 14 /* CC::al */, $noreg
410 tCMPhir renamable $r3, renamable $r12, 14 /* CC::al */, $noreg, implicit-def $cpsr
411 tBcc %bb.2, 1 /* CC::ne */, killed $cpsr
414 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $pc