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 3 4--- | 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) { 7 unreachable 8 } 9 define void @copyin(ptr noalias nocapture %phwTargetBase, i16 signext %iTargetStride, ptr noalias nocapture readonly %ptCopySize, i16 zeroext %hwColour, i32 %chRatio) { 10 unreachable 11 } 12 define void @copyout(ptr noalias nocapture %phwTargetBase, i16 signext %iTargetStride, ptr noalias nocapture readonly %ptCopySize, i16 zeroext %hwColour, i32 %chRatio) { 13 unreachable 14 } 15... 16--- 17name: none 18tracksRegLiveness: true 19registers: [] 20liveins: 21 - { reg: '$r0', virtual-reg: '' } 22 - { reg: '$r1', virtual-reg: '' } 23 - { reg: '$r2', virtual-reg: '' } 24body: | 25 ; CHECK-LABEL: name: none 26 ; CHECK: bb.0: 27 ; CHECK-NEXT: successors: %bb.5(0x5c0b8170), %bb.1(0x23f47e90) 28 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r4, $r5, $r6, $lr 29 ; CHECK-NEXT: {{ $}} 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 42 ; CHECK-NEXT: {{ $}} 43 ; CHECK-NEXT: bb.1: 44 ; CHECK-NEXT: successors: %bb.2(0x80000000) 45 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r12 46 ; CHECK-NEXT: {{ $}} 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 52 ; CHECK-NEXT: {{ $}} 53 ; CHECK-NEXT: bb.2: 54 ; CHECK-NEXT: successors: %bb.3(0x80000000) 55 ; CHECK-NEXT: liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12 56 ; CHECK-NEXT: {{ $}} 57 ; CHECK-NEXT: $r4 = tMOVr $r0, 14 /* CC::al */, $noreg 58 ; CHECK-NEXT: $lr = MVE_DLSTP_16 renamable $r2 59 ; CHECK-NEXT: {{ $}} 60 ; CHECK-NEXT: bb.3: 61 ; CHECK-NEXT: successors: %bb.3(0x7c000000), %bb.4(0x04000000) 62 ; CHECK-NEXT: liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r6, $r12 63 ; CHECK-NEXT: {{ $}} 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 68 ; CHECK-NEXT: {{ $}} 69 ; CHECK-NEXT: bb.4: 70 ; CHECK-NEXT: successors: %bb.5(0x04000000), %bb.2(0x7c000000) 71 ; CHECK-NEXT: liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12 72 ; CHECK-NEXT: {{ $}} 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 77 ; CHECK-NEXT: {{ $}} 78 ; CHECK-NEXT: bb.5: 79 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $pc 80 bb.0: 81 successors: %bb.5(0x80000000), %bb.1(0x32000000) 82 liveins: $r0, $r1, $r2, $r4, $r5, $r6, $lr 83 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 96 97 bb.1: 98 successors: %bb.2(0x80000000) 99 liveins: $r0, $r1, $r2, $r12 100 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 111 112 bb.2: 113 successors: %bb.3(0x80000000) 114 liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12 115 116 $r4 = tMOVr $r0, 14 /* CC::al */, $noreg 117 $r5 = tMOVr $r2, 14 /* CC::al */, $noreg 118 renamable $lr = t2DoLoopStartTP renamable $r6, renamable $r2 119 120 bb.3: 121 successors: %bb.3(0x7c000000), %bb.4(0x04000000) 122 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r12 123 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 133 134 bb.4: 135 successors: %bb.5(0x04000000), %bb.2(0x7c000000) 136 liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12 137 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 142 143 bb.5: 144 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $pc 145 146... 147--- 148name: copyin 149tracksRegLiveness: true 150registers: [] 151liveins: 152 - { reg: '$r0', virtual-reg: '' } 153 - { reg: '$r1', virtual-reg: '' } 154 - { reg: '$r2', virtual-reg: '' } 155body: | 156 ; CHECK-LABEL: name: copyin 157 ; CHECK: bb.0: 158 ; CHECK-NEXT: successors: %bb.5(0x5c0b8170), %bb.1(0x23f47e90) 159 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r4, $r5, $r6, $lr 160 ; CHECK-NEXT: {{ $}} 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 173 ; CHECK-NEXT: {{ $}} 174 ; CHECK-NEXT: bb.1: 175 ; CHECK-NEXT: successors: %bb.2(0x80000000) 176 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r12 177 ; CHECK-NEXT: {{ $}} 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 183 ; CHECK-NEXT: {{ $}} 184 ; CHECK-NEXT: bb.2: 185 ; CHECK-NEXT: successors: %bb.3(0x80000000) 186 ; CHECK-NEXT: liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12 187 ; CHECK-NEXT: {{ $}} 188 ; CHECK-NEXT: $r4 = tMOVr $r0, 14 /* CC::al */, $noreg 189 ; CHECK-NEXT: $lr = MVE_DLSTP_16 renamable $r2 190 ; CHECK-NEXT: {{ $}} 191 ; CHECK-NEXT: bb.3: 192 ; CHECK-NEXT: successors: %bb.3(0x7c000000), %bb.4(0x04000000) 193 ; CHECK-NEXT: liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r6, $r12 194 ; CHECK-NEXT: {{ $}} 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 200 ; CHECK-NEXT: {{ $}} 201 ; CHECK-NEXT: bb.4: 202 ; CHECK-NEXT: successors: %bb.5(0x04000000), %bb.2(0x7c000000) 203 ; CHECK-NEXT: liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12 204 ; CHECK-NEXT: {{ $}} 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 209 ; CHECK-NEXT: {{ $}} 210 ; CHECK-NEXT: bb.5: 211 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $pc 212 bb.0: 213 successors: %bb.5(0x80000000), %bb.1(0x32000000) 214 liveins: $r0, $r1, $r2, $r4, $r5, $r6, $lr 215 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 228 229 bb.1: 230 successors: %bb.2(0x80000000) 231 liveins: $r0, $r1, $r2, $r12 232 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 243 244 bb.2: 245 successors: %bb.3(0x80000000) 246 liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12 247 248 $r4 = tMOVr $r0, 14 /* CC::al */, $noreg 249 $r5 = tMOVr $r2, 14 /* CC::al */, $noreg 250 renamable $lr = t2DoLoopStartTP renamable $r6, renamable $r2 251 252 bb.3: 253 successors: %bb.3(0x7c000000), %bb.4(0x04000000) 254 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r12 255 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 260 $q2 = MQPRCopy $q0 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 266 267 bb.4: 268 successors: %bb.5(0x04000000), %bb.2(0x7c000000) 269 liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12 270 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 275 276 bb.5: 277 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $pc 278 279... 280--- 281name: copyout 282tracksRegLiveness: true 283registers: [] 284liveins: 285 - { reg: '$r0', virtual-reg: '' } 286 - { reg: '$r1', virtual-reg: '' } 287 - { reg: '$r2', virtual-reg: '' } 288body: | 289 ; CHECK-LABEL: name: copyout 290 ; CHECK: bb.0: 291 ; CHECK-NEXT: successors: %bb.5(0x5c0b8170), %bb.1(0x23f47e90) 292 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r4, $r5, $r6, $lr 293 ; CHECK-NEXT: {{ $}} 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 306 ; CHECK-NEXT: {{ $}} 307 ; CHECK-NEXT: bb.1: 308 ; CHECK-NEXT: successors: %bb.2(0x80000000) 309 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r12 310 ; CHECK-NEXT: {{ $}} 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 316 ; CHECK-NEXT: {{ $}} 317 ; CHECK-NEXT: bb.2: 318 ; CHECK-NEXT: successors: %bb.3(0x80000000) 319 ; CHECK-NEXT: liveins: $d0, $d1, $r0, $r1, $r2, $r3, $r6, $r12 320 ; CHECK-NEXT: {{ $}} 321 ; CHECK-NEXT: $r4 = tMOVr $r0, 14 /* CC::al */, $noreg 322 ; CHECK-NEXT: $lr = MVE_DLSTP_16 renamable $r2 323 ; CHECK-NEXT: {{ $}} 324 ; CHECK-NEXT: bb.3: 325 ; CHECK-NEXT: successors: %bb.3(0x7c000000), %bb.4(0x04000000) 326 ; CHECK-NEXT: liveins: $lr, $d0, $d1, $r0, $r1, $r2, $r3, $r4, $r6, $r12 327 ; CHECK-NEXT: {{ $}} 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 336 ; CHECK-NEXT: {{ $}} 337 ; CHECK-NEXT: bb.4: 338 ; CHECK-NEXT: successors: %bb.5(0x04000000), %bb.2(0x7c000000) 339 ; CHECK-NEXT: liveins: $d0, $d1, $r0, $r1, $r2, $r3, $r6, $r12 340 ; CHECK-NEXT: {{ $}} 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 345 ; CHECK-NEXT: {{ $}} 346 ; CHECK-NEXT: bb.5: 347 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $pc 348 bb.0: 349 successors: %bb.5(0x80000000), %bb.1(0x32000000) 350 liveins: $r0, $r1, $r2, $r4, $r5, $r6, $lr 351 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 364 365 bb.1: 366 successors: %bb.2(0x80000000) 367 liveins: $r0, $r1, $r2, $r12 368 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 379 380 bb.2: 381 successors: %bb.3(0x80000000) 382 liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12 383 384 $r4 = tMOVr $r0, 14 /* CC::al */, $noreg 385 $r5 = tMOVr $r2, 14 /* CC::al */, $noreg 386 renamable $lr = t2DoLoopStartTP renamable $r6, renamable $r2 387 388 bb.3: 389 successors: %bb.3(0x7c000000), %bb.4(0x04000000) 390 liveins: $lr, $q0, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r12 391 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 396 $q2 = MQPRCopy $q0 397 renamable $q1 = MVE_VAND killed renamable $q1, renamable $q2, 0, $noreg, renamable $lr, undef renamable $q1 398 $q0 = MQPRCopy $q2 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 403 404 bb.4: 405 successors: %bb.5(0x04000000), %bb.2(0x7c000000) 406 liveins: $q0, $r0, $r1, $r2, $r3, $r6, $r12 407 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 412 413 bb.5: 414 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $pc 415 416... 417 418