760 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -run-pass=arm-ldst-opt %s -o - | FileCheck %s3 4--- |5 target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"6 target triple = "thumbv7m-none-unknown-eabi"7 8 define ptr @STR_pre4(ptr %p, i32 %v) { unreachable }9 define ptr @STR_pre8(ptr %p, i32 %v) { unreachable }10 define ptr @STR_pre255(ptr %p, i32 %v) { unreachable }11 define ptr @STR_pre256(ptr %p, i32 %v) { unreachable }12 13 define ptr @STRD_pre4(ptr %p, i32 %v) { unreachable }14 define ptr @STRD_pre8(ptr %p, i32 %v) { unreachable }15 define ptr @STRD_pre255(ptr %p, i32 %v) { unreachable }16 define ptr @STRD_pre256(ptr %p, i32 %v) { unreachable }17 define ptr @STRD_pre1020(ptr %p, i32 %v) { unreachable }18 define ptr @STRD_pre1024(ptr %p, i32 %v) { unreachable }19 define ptr @STRD_prem4(ptr %p, i32 %v) { unreachable }20 define ptr @STRD_prem8(ptr %p, i32 %v) { unreachable }21 define ptr @STRD_prem255(ptr %p, i32 %v) { unreachable }22 define ptr @STRD_prem256(ptr %p, i32 %v) { unreachable }23 define ptr @STRD_prem1020(ptr %p, i32 %v) { unreachable }24 define ptr @STRD_prem1024(ptr %p, i32 %v) { unreachable }25 26 define ptr @STR_post4(ptr %p, i32 %v) { unreachable }27 define ptr @STR_post8(ptr %p, i32 %v) { unreachable }28 define ptr @STR_post255(ptr %p, i32 %v) { unreachable }29 define ptr @STR_post256(ptr %p, i32 %v) { unreachable }30 31 define ptr @STRD_post4(ptr %p, i32 %v) { unreachable }32 define ptr @STRD_post8(ptr %p, i32 %v) { unreachable }33 define ptr @STRD_post255(ptr %p, i32 %v) { unreachable }34 define ptr @STRD_post256(ptr %p, i32 %v) { unreachable }35 define ptr @STRD_post1020(ptr %p, i32 %v) { unreachable }36 define ptr @STRD_post1024(ptr %p, i32 %v) { unreachable }37 define ptr @STRD_postm4(ptr %p, i32 %v) { unreachable }38 define ptr @STRD_postm8(ptr %p, i32 %v) { unreachable }39 define ptr @STRD_postm255(ptr %p, i32 %v) { unreachable }40 define ptr @STRD_postm256(ptr %p, i32 %v) { unreachable }41 define ptr @STRD_postm1020(ptr %p, i32 %v) { unreachable }42 define ptr @STRD_postm1024(ptr %p, i32 %v) { unreachable }43 44...45---46name: STR_pre447alignment: 248tracksRegLiveness: true49liveins:50 - { reg: '$r0', virtual-reg: '' }51 - { reg: '$r1', virtual-reg: '' }52body: |53 bb.0 (%ir-block.0):54 liveins: $r0, $r155 56 ; CHECK-LABEL: name: STR_pre457 ; CHECK: liveins: $r0, $r158 ; CHECK-NEXT: {{ $}}59 ; CHECK-NEXT: early-clobber $r0 = t2STR_PRE killed $r1, $r0, 4, 14 /* CC::al */, $noreg :: (store (s32))60 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r061 renamable $r0 = nuw t2ADDri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg62 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))63 tBX_RET 14 /* CC::al */, $noreg, implicit $r064 65...66---67name: STR_pre868alignment: 269tracksRegLiveness: true70liveins:71 - { reg: '$r0', virtual-reg: '' }72 - { reg: '$r1', virtual-reg: '' }73body: |74 bb.0 (%ir-block.0):75 liveins: $r0, $r176 77 ; CHECK-LABEL: name: STR_pre878 ; CHECK: liveins: $r0, $r179 ; CHECK-NEXT: {{ $}}80 ; CHECK-NEXT: renamable $r0 = nuw t2ADDri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg81 ; CHECK-NEXT: t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))82 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r083 renamable $r0 = nuw t2ADDri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg84 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))85 tBX_RET 14 /* CC::al */, $noreg, implicit $r086 87...88---89name: STR_pre25590alignment: 291tracksRegLiveness: true92liveins:93 - { reg: '$r0', virtual-reg: '' }94 - { reg: '$r1', virtual-reg: '' }95body: |96 bb.0 (%ir-block.0):97 liveins: $r0, $r198 99 ; CHECK-LABEL: name: STR_pre255100 ; CHECK: liveins: $r0, $r1101 ; CHECK-NEXT: {{ $}}102 ; CHECK-NEXT: renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg103 ; CHECK-NEXT: t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))104 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0105 renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg106 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))107 tBX_RET 14 /* CC::al */, $noreg, implicit $r0108 109...110---111name: STR_pre256112alignment: 2113tracksRegLiveness: true114liveins:115 - { reg: '$r0', virtual-reg: '' }116 - { reg: '$r1', virtual-reg: '' }117body: |118 bb.0 (%ir-block.0):119 liveins: $r0, $r1120 121 ; CHECK-LABEL: name: STR_pre256122 ; CHECK: liveins: $r0, $r1123 ; CHECK-NEXT: {{ $}}124 ; CHECK-NEXT: renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg125 ; CHECK-NEXT: t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))126 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0127 renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg128 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))129 tBX_RET 14 /* CC::al */, $noreg, implicit $r0130 131...132---133name: STRD_pre4134alignment: 2135tracksRegLiveness: true136liveins:137 - { reg: '$r0', virtual-reg: '' }138 - { reg: '$r1', virtual-reg: '' }139 - { reg: '$r2', virtual-reg: '' }140body: |141 bb.0 (%ir-block.0):142 liveins: $r0, $r1, $r2143 144 ; CHECK-LABEL: name: STRD_pre4145 ; CHECK: liveins: $r0, $r1, $r2146 ; CHECK-NEXT: {{ $}}147 ; CHECK-NEXT: renamable $r0 = nuw t2ADDri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg148 ; CHECK-NEXT: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))149 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0150 renamable $r0 = nuw t2ADDri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg151 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))152 tBX_RET 14 /* CC::al */, $noreg, implicit $r0153 154...155---156name: STRD_pre8157alignment: 2158tracksRegLiveness: true159liveins:160 - { reg: '$r0', virtual-reg: '' }161 - { reg: '$r1', virtual-reg: '' }162 - { reg: '$r2', virtual-reg: '' }163body: |164 bb.0 (%ir-block.0):165 liveins: $r0, $r1, $r2166 167 ; CHECK-LABEL: name: STRD_pre8168 ; CHECK: liveins: $r0, $r1, $r2169 ; CHECK-NEXT: {{ $}}170 ; CHECK-NEXT: $r0 = t2STRD_PRE killed renamable $r1, killed renamable $r2, killed $r0, 8, 14 /* CC::al */, $noreg :: (store (s64))171 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0172 renamable $r0 = nuw t2ADDri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg173 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))174 tBX_RET 14 /* CC::al */, $noreg, implicit $r0175 176...177---178name: STRD_pre255179alignment: 2180tracksRegLiveness: true181liveins:182 - { reg: '$r0', virtual-reg: '' }183 - { reg: '$r1', virtual-reg: '' }184 - { reg: '$r2', virtual-reg: '' }185body: |186 bb.0 (%ir-block.0):187 liveins: $r0, $r1, $r2188 189 ; CHECK-LABEL: name: STRD_pre255190 ; CHECK: liveins: $r0, $r1, $r2191 ; CHECK-NEXT: {{ $}}192 ; CHECK-NEXT: renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg193 ; CHECK-NEXT: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))194 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0195 renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg196 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))197 tBX_RET 14 /* CC::al */, $noreg, implicit $r0198 199...200---201name: STRD_pre256202alignment: 2203tracksRegLiveness: true204liveins:205 - { reg: '$r0', virtual-reg: '' }206 - { reg: '$r1', virtual-reg: '' }207 - { reg: '$r2', virtual-reg: '' }208body: |209 bb.0 (%ir-block.0):210 liveins: $r0, $r1, $r2211 212 ; CHECK-LABEL: name: STRD_pre256213 ; CHECK: liveins: $r0, $r1, $r2214 ; CHECK-NEXT: {{ $}}215 ; CHECK-NEXT: renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg216 ; CHECK-NEXT: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))217 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0218 renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg219 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))220 tBX_RET 14 /* CC::al */, $noreg, implicit $r0221 222...223---224name: STRD_pre1020225alignment: 2226tracksRegLiveness: true227liveins:228 - { reg: '$r0', virtual-reg: '' }229 - { reg: '$r1', virtual-reg: '' }230 - { reg: '$r2', virtual-reg: '' }231body: |232 bb.0 (%ir-block.0):233 liveins: $r0, $r1, $r2234 235 ; CHECK-LABEL: name: STRD_pre1020236 ; CHECK: liveins: $r0, $r1, $r2237 ; CHECK-NEXT: {{ $}}238 ; CHECK-NEXT: renamable $r0 = nuw t2ADDri killed renamable $r0, 1020, 14 /* CC::al */, $noreg, $noreg239 ; CHECK-NEXT: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))240 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0241 renamable $r0 = nuw t2ADDri killed renamable $r0, 1020, 14 /* CC::al */, $noreg, $noreg242 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))243 tBX_RET 14 /* CC::al */, $noreg, implicit $r0244 245...246---247name: STRD_pre1024248alignment: 2249tracksRegLiveness: true250liveins:251 - { reg: '$r0', virtual-reg: '' }252 - { reg: '$r1', virtual-reg: '' }253 - { reg: '$r2', virtual-reg: '' }254body: |255 bb.0 (%ir-block.0):256 liveins: $r0, $r1, $r2257 258 ; CHECK-LABEL: name: STRD_pre1024259 ; CHECK: liveins: $r0, $r1, $r2260 ; CHECK-NEXT: {{ $}}261 ; CHECK-NEXT: renamable $r0 = nuw t2ADDri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg262 ; CHECK-NEXT: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))263 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0264 renamable $r0 = nuw t2ADDri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg265 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))266 tBX_RET 14 /* CC::al */, $noreg, implicit $r0267 268...269---270name: STRD_prem4271alignment: 2272tracksRegLiveness: true273liveins:274 - { reg: '$r0', virtual-reg: '' }275 - { reg: '$r1', virtual-reg: '' }276 - { reg: '$r2', virtual-reg: '' }277body: |278 bb.0 (%ir-block.0):279 liveins: $r0, $r1, $r2280 281 ; CHECK-LABEL: name: STRD_prem4282 ; CHECK: liveins: $r0, $r1, $r2283 ; CHECK-NEXT: {{ $}}284 ; CHECK-NEXT: renamable $r0 = nuw t2SUBri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg285 ; CHECK-NEXT: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))286 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0287 renamable $r0 = nuw t2SUBri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg288 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))289 tBX_RET 14 /* CC::al */, $noreg, implicit $r0290 291...292---293name: STRD_prem8294alignment: 2295tracksRegLiveness: true296liveins:297 - { reg: '$r0', virtual-reg: '' }298 - { reg: '$r1', virtual-reg: '' }299 - { reg: '$r2', virtual-reg: '' }300body: |301 bb.0 (%ir-block.0):302 liveins: $r0, $r1, $r2303 304 ; CHECK-LABEL: name: STRD_prem8305 ; CHECK: liveins: $r0, $r1, $r2306 ; CHECK-NEXT: {{ $}}307 ; CHECK-NEXT: $r0 = t2STRD_PRE killed renamable $r1, killed renamable $r2, killed $r0, -8, 14 /* CC::al */, $noreg :: (store (s64))308 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0309 renamable $r0 = nuw t2SUBri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg310 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))311 tBX_RET 14 /* CC::al */, $noreg, implicit $r0312 313...314---315name: STRD_prem255316alignment: 2317tracksRegLiveness: true318liveins:319 - { reg: '$r0', virtual-reg: '' }320 - { reg: '$r1', virtual-reg: '' }321 - { reg: '$r2', virtual-reg: '' }322body: |323 bb.0 (%ir-block.0):324 liveins: $r0, $r1, $r2325 326 ; CHECK-LABEL: name: STRD_prem255327 ; CHECK: liveins: $r0, $r1, $r2328 ; CHECK-NEXT: {{ $}}329 ; CHECK-NEXT: renamable $r0 = nuw t2SUBri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg330 ; CHECK-NEXT: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))331 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0332 renamable $r0 = nuw t2SUBri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg333 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))334 tBX_RET 14 /* CC::al */, $noreg, implicit $r0335 336...337---338name: STRD_prem256339alignment: 2340tracksRegLiveness: true341liveins:342 - { reg: '$r0', virtual-reg: '' }343 - { reg: '$r1', virtual-reg: '' }344 - { reg: '$r2', virtual-reg: '' }345body: |346 bb.0 (%ir-block.0):347 liveins: $r0, $r1, $r2348 349 ; CHECK-LABEL: name: STRD_prem256350 ; CHECK: liveins: $r0, $r1, $r2351 ; CHECK-NEXT: {{ $}}352 ; CHECK-NEXT: renamable $r0 = nuw t2SUBri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg353 ; CHECK-NEXT: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))354 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0355 renamable $r0 = nuw t2SUBri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg356 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))357 tBX_RET 14 /* CC::al */, $noreg, implicit $r0358 359...360---361name: STRD_prem1020362alignment: 2363tracksRegLiveness: true364liveins:365 - { reg: '$r0', virtual-reg: '' }366 - { reg: '$r1', virtual-reg: '' }367 - { reg: '$r2', virtual-reg: '' }368body: |369 bb.0 (%ir-block.0):370 liveins: $r0, $r1, $r2371 372 ; CHECK-LABEL: name: STRD_prem1020373 ; CHECK: liveins: $r0, $r1, $r2374 ; CHECK-NEXT: {{ $}}375 ; CHECK-NEXT: renamable $r0 = nuw t2SUBri killed renamable $r0, 1020, 14 /* CC::al */, $noreg, $noreg376 ; CHECK-NEXT: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))377 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0378 renamable $r0 = nuw t2SUBri killed renamable $r0, 1020, 14 /* CC::al */, $noreg, $noreg379 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))380 tBX_RET 14 /* CC::al */, $noreg, implicit $r0381 382...383---384name: STRD_prem1024385alignment: 2386tracksRegLiveness: true387liveins:388 - { reg: '$r0', virtual-reg: '' }389 - { reg: '$r1', virtual-reg: '' }390 - { reg: '$r2', virtual-reg: '' }391body: |392 bb.0 (%ir-block.0):393 liveins: $r0, $r1, $r2394 395 ; CHECK-LABEL: name: STRD_prem1024396 ; CHECK: liveins: $r0, $r1, $r2397 ; CHECK-NEXT: {{ $}}398 ; CHECK-NEXT: renamable $r0 = nuw t2SUBri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg399 ; CHECK-NEXT: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))400 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0401 renamable $r0 = nuw t2SUBri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg402 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))403 tBX_RET 14 /* CC::al */, $noreg, implicit $r0404 405...406 407---408name: STR_post4409alignment: 2410tracksRegLiveness: true411liveins:412 - { reg: '$r0', virtual-reg: '' }413 - { reg: '$r1', virtual-reg: '' }414body: |415 bb.0 (%ir-block.0):416 liveins: $r0, $r1417 418 ; CHECK-LABEL: name: STR_post4419 ; CHECK: liveins: $r0, $r1420 ; CHECK-NEXT: {{ $}}421 ; CHECK-NEXT: early-clobber $r0 = t2STR_POST killed $r1, $r0, 4, 14 /* CC::al */, $noreg :: (store (s32))422 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0423 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))424 renamable $r0 = nuw t2ADDri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg425 tBX_RET 14 /* CC::al */, $noreg, implicit $r0426 427...428---429name: STR_post8430alignment: 2431tracksRegLiveness: true432liveins:433 - { reg: '$r0', virtual-reg: '' }434 - { reg: '$r1', virtual-reg: '' }435body: |436 bb.0 (%ir-block.0):437 liveins: $r0, $r1438 439 ; CHECK-LABEL: name: STR_post8440 ; CHECK: liveins: $r0, $r1441 ; CHECK-NEXT: {{ $}}442 ; CHECK-NEXT: early-clobber $r0 = t2STR_POST killed $r1, $r0, 8, 14 /* CC::al */, $noreg :: (store (s32))443 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0444 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))445 renamable $r0 = nuw t2ADDri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg446 tBX_RET 14 /* CC::al */, $noreg, implicit $r0447 448...449---450name: STR_post255451alignment: 2452tracksRegLiveness: true453liveins:454 - { reg: '$r0', virtual-reg: '' }455 - { reg: '$r1', virtual-reg: '' }456body: |457 bb.0 (%ir-block.0):458 liveins: $r0, $r1459 460 ; CHECK-LABEL: name: STR_post255461 ; CHECK: liveins: $r0, $r1462 ; CHECK-NEXT: {{ $}}463 ; CHECK-NEXT: early-clobber $r0 = t2STR_POST killed $r1, $r0, 255, 14 /* CC::al */, $noreg :: (store (s32))464 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0465 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))466 renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg467 tBX_RET 14 /* CC::al */, $noreg, implicit $r0468 469...470---471name: STR_post256472alignment: 2473tracksRegLiveness: true474liveins:475 - { reg: '$r0', virtual-reg: '' }476 - { reg: '$r1', virtual-reg: '' }477body: |478 bb.0 (%ir-block.0):479 liveins: $r0, $r1480 481 ; CHECK-LABEL: name: STR_post256482 ; CHECK: liveins: $r0, $r1483 ; CHECK-NEXT: {{ $}}484 ; CHECK-NEXT: t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))485 ; CHECK-NEXT: renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg486 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0487 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))488 renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg489 tBX_RET 14 /* CC::al */, $noreg, implicit $r0490 491...492---493name: STRD_post4494alignment: 2495tracksRegLiveness: true496liveins:497 - { reg: '$r0', virtual-reg: '' }498 - { reg: '$r1', virtual-reg: '' }499 - { reg: '$r2', virtual-reg: '' }500body: |501 bb.0 (%ir-block.0):502 liveins: $r0, $r1, $r2503 504 ; CHECK-LABEL: name: STRD_post4505 ; CHECK: liveins: $r0, $r1, $r2506 ; CHECK-NEXT: {{ $}}507 ; CHECK-NEXT: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, 4, 14 /* CC::al */, $noreg :: (store (s64))508 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0509 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))510 renamable $r0 = nuw t2ADDri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg511 tBX_RET 14 /* CC::al */, $noreg, implicit $r0512 513...514---515name: STRD_post8516alignment: 2517tracksRegLiveness: true518liveins:519 - { reg: '$r0', virtual-reg: '' }520 - { reg: '$r1', virtual-reg: '' }521 - { reg: '$r2', virtual-reg: '' }522body: |523 bb.0 (%ir-block.0):524 liveins: $r0, $r1, $r2525 526 ; CHECK-LABEL: name: STRD_post8527 ; CHECK: liveins: $r0, $r1, $r2528 ; CHECK-NEXT: {{ $}}529 ; CHECK-NEXT: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, 8, 14 /* CC::al */, $noreg :: (store (s64))530 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0531 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))532 renamable $r0 = nuw t2ADDri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg533 tBX_RET 14 /* CC::al */, $noreg, implicit $r0534 535...536---537name: STRD_post255538alignment: 2539tracksRegLiveness: true540liveins:541 - { reg: '$r0', virtual-reg: '' }542 - { reg: '$r1', virtual-reg: '' }543 - { reg: '$r2', virtual-reg: '' }544body: |545 bb.0 (%ir-block.0):546 liveins: $r0, $r1, $r2547 548 ; CHECK-LABEL: name: STRD_post255549 ; CHECK: liveins: $r0, $r1, $r2550 ; CHECK-NEXT: {{ $}}551 ; CHECK-NEXT: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))552 ; CHECK-NEXT: renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg553 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0554 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))555 renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg556 tBX_RET 14 /* CC::al */, $noreg, implicit $r0557 558...559---560name: STRD_post256561alignment: 2562tracksRegLiveness: true563liveins:564 - { reg: '$r0', virtual-reg: '' }565 - { reg: '$r1', virtual-reg: '' }566 - { reg: '$r2', virtual-reg: '' }567body: |568 bb.0 (%ir-block.0):569 liveins: $r0, $r1, $r2570 571 ; CHECK-LABEL: name: STRD_post256572 ; CHECK: liveins: $r0, $r1, $r2573 ; CHECK-NEXT: {{ $}}574 ; CHECK-NEXT: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, 256, 14 /* CC::al */, $noreg :: (store (s64))575 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0576 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))577 renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg578 tBX_RET 14 /* CC::al */, $noreg, implicit $r0579 580...581---582name: STRD_post1020583alignment: 2584tracksRegLiveness: true585liveins:586 - { reg: '$r0', virtual-reg: '' }587 - { reg: '$r1', virtual-reg: '' }588 - { reg: '$r2', virtual-reg: '' }589body: |590 bb.0 (%ir-block.0):591 liveins: $r0, $r1, $r2592 593 ; CHECK-LABEL: name: STRD_post1020594 ; CHECK: liveins: $r0, $r1, $r2595 ; CHECK-NEXT: {{ $}}596 ; CHECK-NEXT: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, 1020, 14 /* CC::al */, $noreg :: (store (s64))597 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0598 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))599 renamable $r0 = nuw t2ADDri killed renamable $r0, 1020, 14 /* CC::al */, $noreg, $noreg600 tBX_RET 14 /* CC::al */, $noreg, implicit $r0601 602...603---604name: STRD_post1024605alignment: 2606tracksRegLiveness: true607liveins:608 - { reg: '$r0', virtual-reg: '' }609 - { reg: '$r1', virtual-reg: '' }610 - { reg: '$r2', virtual-reg: '' }611body: |612 bb.0 (%ir-block.0):613 liveins: $r0, $r1, $r2614 615 ; CHECK-LABEL: name: STRD_post1024616 ; CHECK: liveins: $r0, $r1, $r2617 ; CHECK-NEXT: {{ $}}618 ; CHECK-NEXT: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))619 ; CHECK-NEXT: renamable $r0 = nuw t2ADDri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg620 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0621 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))622 renamable $r0 = nuw t2ADDri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg623 tBX_RET 14 /* CC::al */, $noreg, implicit $r0624 625...626---627name: STRD_postm4628alignment: 2629tracksRegLiveness: true630liveins:631 - { reg: '$r0', virtual-reg: '' }632 - { reg: '$r1', virtual-reg: '' }633 - { reg: '$r2', virtual-reg: '' }634body: |635 bb.0 (%ir-block.0):636 liveins: $r0, $r1, $r2637 638 ; CHECK-LABEL: name: STRD_postm4639 ; CHECK: liveins: $r0, $r1, $r2640 ; CHECK-NEXT: {{ $}}641 ; CHECK-NEXT: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, -4, 14 /* CC::al */, $noreg :: (store (s64))642 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0643 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))644 renamable $r0 = nuw t2SUBri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg645 tBX_RET 14 /* CC::al */, $noreg, implicit $r0646 647...648---649name: STRD_postm8650alignment: 2651tracksRegLiveness: true652liveins:653 - { reg: '$r0', virtual-reg: '' }654 - { reg: '$r1', virtual-reg: '' }655 - { reg: '$r2', virtual-reg: '' }656body: |657 bb.0 (%ir-block.0):658 liveins: $r0, $r1, $r2659 660 ; CHECK-LABEL: name: STRD_postm8661 ; CHECK: liveins: $r0, $r1, $r2662 ; CHECK-NEXT: {{ $}}663 ; CHECK-NEXT: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, -8, 14 /* CC::al */, $noreg :: (store (s64))664 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0665 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))666 renamable $r0 = nuw t2SUBri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg667 tBX_RET 14 /* CC::al */, $noreg, implicit $r0668 669...670---671name: STRD_postm255672alignment: 2673tracksRegLiveness: true674liveins:675 - { reg: '$r0', virtual-reg: '' }676 - { reg: '$r1', virtual-reg: '' }677 - { reg: '$r2', virtual-reg: '' }678body: |679 bb.0 (%ir-block.0):680 liveins: $r0, $r1, $r2681 682 ; CHECK-LABEL: name: STRD_postm255683 ; CHECK: liveins: $r0, $r1, $r2684 ; CHECK-NEXT: {{ $}}685 ; CHECK-NEXT: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))686 ; CHECK-NEXT: renamable $r0 = nuw t2SUBri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg687 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0688 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))689 renamable $r0 = nuw t2SUBri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg690 tBX_RET 14 /* CC::al */, $noreg, implicit $r0691 692...693---694name: STRD_postm256695alignment: 2696tracksRegLiveness: true697liveins:698 - { reg: '$r0', virtual-reg: '' }699 - { reg: '$r1', virtual-reg: '' }700 - { reg: '$r2', virtual-reg: '' }701body: |702 bb.0 (%ir-block.0):703 liveins: $r0, $r1, $r2704 705 ; CHECK-LABEL: name: STRD_postm256706 ; CHECK: liveins: $r0, $r1, $r2707 ; CHECK-NEXT: {{ $}}708 ; CHECK-NEXT: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, 256, 14 /* CC::al */, $noreg :: (store (s64))709 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0710 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))711 renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg712 tBX_RET 14 /* CC::al */, $noreg, implicit $r0713 714...715---716name: STRD_postm1020717alignment: 2718tracksRegLiveness: true719liveins:720 - { reg: '$r0', virtual-reg: '' }721 - { reg: '$r1', virtual-reg: '' }722 - { reg: '$r2', virtual-reg: '' }723body: |724 bb.0 (%ir-block.0):725 liveins: $r0, $r1, $r2726 727 ; CHECK-LABEL: name: STRD_postm1020728 ; CHECK: liveins: $r0, $r1, $r2729 ; CHECK-NEXT: {{ $}}730 ; CHECK-NEXT: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, -1020, 14 /* CC::al */, $noreg :: (store (s64))731 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0732 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))733 renamable $r0 = nuw t2SUBri killed renamable $r0, 1020, 14 /* CC::al */, $noreg, $noreg734 tBX_RET 14 /* CC::al */, $noreg, implicit $r0735 736...737---738name: STRD_postm1024739alignment: 2740tracksRegLiveness: true741liveins:742 - { reg: '$r0', virtual-reg: '' }743 - { reg: '$r1', virtual-reg: '' }744 - { reg: '$r2', virtual-reg: '' }745body: |746 bb.0 (%ir-block.0):747 liveins: $r0, $r1, $r2748 749 ; CHECK-LABEL: name: STRD_postm1024750 ; CHECK: liveins: $r0, $r1, $r2751 ; CHECK-NEXT: {{ $}}752 ; CHECK-NEXT: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))753 ; CHECK-NEXT: renamable $r0 = nuw t2SUBri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg754 ; CHECK-NEXT: tBX_RET 14 /* CC::al */, $noreg, implicit $r0755 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))756 renamable $r0 = nuw t2SUBri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg757 tBX_RET 14 /* CC::al */, $noreg, implicit $r0758 759...760