443 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 = "thumbv7a-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 define ptr @STR_pre1024(ptr %p, i32 %v) { unreachable }13 define ptr @STR_pre4095(ptr %p, i32 %v) { unreachable }14 define ptr @STR_pre4096(ptr %p, i32 %v) { unreachable }15 define ptr @STR_prem1024(ptr %p, i32 %v) { unreachable }16 define ptr @STR_prem4095(ptr %p, i32 %v) { unreachable }17 define ptr @STR_prem4096(ptr %p, i32 %v) { unreachable }18 19 define ptr @STR_post4(ptr %p, i32 %v) { unreachable }20 define ptr @STR_post8(ptr %p, i32 %v) { unreachable }21 define ptr @STR_post255(ptr %p, i32 %v) { unreachable }22 define ptr @STR_post256(ptr %p, i32 %v) { unreachable }23 define ptr @STR_post1024(ptr %p, i32 %v) { unreachable }24 define ptr @STR_post4095(ptr %p, i32 %v) { unreachable }25 define ptr @STR_post4096(ptr %p, i32 %v) { unreachable }26 define ptr @STR_postm1024(ptr %p, i32 %v) { unreachable }27 define ptr @STR_postm4095(ptr %p, i32 %v) { unreachable }28 define ptr @STR_postm4096(ptr %p, i32 %v) { unreachable }29 30...31---32name: STR_pre433alignment: 434tracksRegLiveness: true35liveins:36 - { reg: '$r0', virtual-reg: '' }37 - { reg: '$r1', virtual-reg: '' }38body: |39 bb.0 (%ir-block.0):40 liveins: $r0, $r141 42 ; CHECK-LABEL: name: STR_pre443 ; CHECK: liveins: $r0, $r144 ; CHECK: early-clobber $r0 = STR_PRE_IMM killed $r1, $r0, 4, 14 /* CC::al */, $noreg :: (store (s32))45 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r046 renamable $r0 = nuw ADDri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg47 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))48 BX_RET 14 /* CC::al */, $noreg, implicit $r049 50...51---52name: STR_pre853alignment: 454tracksRegLiveness: true55liveins:56 - { reg: '$r0', virtual-reg: '' }57 - { reg: '$r1', virtual-reg: '' }58body: |59 bb.0 (%ir-block.0):60 liveins: $r0, $r161 62 ; CHECK-LABEL: name: STR_pre863 ; CHECK: liveins: $r0, $r164 ; CHECK: renamable $r0 = nuw ADDri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg65 ; CHECK: STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))66 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r067 renamable $r0 = nuw ADDri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg68 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))69 BX_RET 14 /* CC::al */, $noreg, implicit $r070 71...72---73name: STR_pre25574alignment: 475tracksRegLiveness: true76liveins:77 - { reg: '$r0', virtual-reg: '' }78 - { reg: '$r1', virtual-reg: '' }79body: |80 bb.0 (%ir-block.0):81 liveins: $r0, $r182 83 ; CHECK-LABEL: name: STR_pre25584 ; CHECK: liveins: $r0, $r185 ; CHECK: renamable $r0 = nuw ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg86 ; CHECK: STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))87 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r088 renamable $r0 = nuw ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg89 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))90 BX_RET 14 /* CC::al */, $noreg, implicit $r091 92...93---94name: STR_pre25695alignment: 496tracksRegLiveness: true97liveins:98 - { reg: '$r0', virtual-reg: '' }99 - { reg: '$r1', virtual-reg: '' }100body: |101 bb.0 (%ir-block.0):102 liveins: $r0, $r1103 104 ; CHECK-LABEL: name: STR_pre256105 ; CHECK: liveins: $r0, $r1106 ; CHECK: renamable $r0 = nuw ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg107 ; CHECK: STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))108 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0109 renamable $r0 = nuw ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg110 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))111 BX_RET 14 /* CC::al */, $noreg, implicit $r0112 113...114---115name: STR_pre1024116alignment: 4117tracksRegLiveness: true118liveins:119 - { reg: '$r0', virtual-reg: '' }120 - { reg: '$r1', virtual-reg: '' }121body: |122 bb.0 (%ir-block.0):123 liveins: $r0, $r1124 125 ; CHECK-LABEL: name: STR_pre1024126 ; CHECK: liveins: $r0, $r1127 ; CHECK: renamable $r0 = nuw ADDri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg128 ; CHECK: STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))129 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0130 renamable $r0 = nuw ADDri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg131 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))132 BX_RET 14 /* CC::al */, $noreg, implicit $r0133 134...135---136name: STR_pre4095137alignment: 4138tracksRegLiveness: true139liveins:140 - { reg: '$r0', virtual-reg: '' }141 - { reg: '$r1', virtual-reg: '' }142body: |143 bb.0 (%ir-block.0):144 liveins: $r0, $r1145 146 ; CHECK-LABEL: name: STR_pre4095147 ; CHECK: liveins: $r0, $r1148 ; CHECK: renamable $r0 = nuw ADDri killed renamable $r0, 4095, 14 /* CC::al */, $noreg, $noreg149 ; CHECK: STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))150 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0151 renamable $r0 = nuw ADDri killed renamable $r0, 4095, 14 /* CC::al */, $noreg, $noreg152 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))153 BX_RET 14 /* CC::al */, $noreg, implicit $r0154 155...156---157name: STR_pre4096158alignment: 4159tracksRegLiveness: true160liveins:161 - { reg: '$r0', virtual-reg: '' }162 - { reg: '$r1', virtual-reg: '' }163body: |164 bb.0 (%ir-block.0):165 liveins: $r0, $r1166 167 ; CHECK-LABEL: name: STR_pre4096168 ; CHECK: liveins: $r0, $r1169 ; CHECK: renamable $r0 = nuw ADDri killed renamable $r0, 4096, 14 /* CC::al */, $noreg, $noreg170 ; CHECK: STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))171 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0172 renamable $r0 = nuw ADDri killed renamable $r0, 4096, 14 /* CC::al */, $noreg, $noreg173 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))174 BX_RET 14 /* CC::al */, $noreg, implicit $r0175 176...177---178name: STR_prem1024179alignment: 4180tracksRegLiveness: true181liveins:182 - { reg: '$r0', virtual-reg: '' }183 - { reg: '$r1', virtual-reg: '' }184body: |185 bb.0 (%ir-block.0):186 liveins: $r0, $r1187 188 ; CHECK-LABEL: name: STR_prem1024189 ; CHECK: liveins: $r0, $r1190 ; CHECK: renamable $r0 = nuw SUBri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg191 ; CHECK: STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))192 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0193 renamable $r0 = nuw SUBri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg194 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))195 BX_RET 14 /* CC::al */, $noreg, implicit $r0196 197...198---199name: STR_prem4095200alignment: 4201tracksRegLiveness: true202liveins:203 - { reg: '$r0', virtual-reg: '' }204 - { reg: '$r1', virtual-reg: '' }205body: |206 bb.0 (%ir-block.0):207 liveins: $r0, $r1208 209 ; CHECK-LABEL: name: STR_prem4095210 ; CHECK: liveins: $r0, $r1211 ; CHECK: renamable $r0 = nuw SUBri killed renamable $r0, 4095, 14 /* CC::al */, $noreg, $noreg212 ; CHECK: STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))213 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0214 renamable $r0 = nuw SUBri killed renamable $r0, 4095, 14 /* CC::al */, $noreg, $noreg215 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))216 BX_RET 14 /* CC::al */, $noreg, implicit $r0217 218...219---220name: STR_prem4096221alignment: 4222tracksRegLiveness: true223liveins:224 - { reg: '$r0', virtual-reg: '' }225 - { reg: '$r1', virtual-reg: '' }226body: |227 bb.0 (%ir-block.0):228 liveins: $r0, $r1229 230 ; CHECK-LABEL: name: STR_prem4096231 ; CHECK: liveins: $r0, $r1232 ; CHECK: renamable $r0 = nuw SUBri killed renamable $r0, 4096, 14 /* CC::al */, $noreg, $noreg233 ; CHECK: STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))234 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0235 renamable $r0 = nuw SUBri killed renamable $r0, 4096, 14 /* CC::al */, $noreg, $noreg236 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))237 BX_RET 14 /* CC::al */, $noreg, implicit $r0238 239...240 241---242name: STR_post4243alignment: 4244tracksRegLiveness: true245liveins:246 - { reg: '$r0', virtual-reg: '' }247 - { reg: '$r1', virtual-reg: '' }248body: |249 bb.0 (%ir-block.0):250 liveins: $r0, $r1251 252 ; CHECK-LABEL: name: STR_post4253 ; CHECK: liveins: $r0, $r1254 ; CHECK: early-clobber $r0 = STR_POST_IMM killed $r1, $r0, $noreg, 4, 14 /* CC::al */, $noreg :: (store (s32))255 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0256 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))257 renamable $r0 = nuw ADDri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg258 BX_RET 14 /* CC::al */, $noreg, implicit $r0259 260...261---262name: STR_post8263alignment: 4264tracksRegLiveness: true265liveins:266 - { reg: '$r0', virtual-reg: '' }267 - { reg: '$r1', virtual-reg: '' }268body: |269 bb.0 (%ir-block.0):270 liveins: $r0, $r1271 272 ; CHECK-LABEL: name: STR_post8273 ; CHECK: liveins: $r0, $r1274 ; CHECK: early-clobber $r0 = STR_POST_IMM killed $r1, $r0, $noreg, 8, 14 /* CC::al */, $noreg :: (store (s32))275 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0276 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))277 renamable $r0 = nuw ADDri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg278 BX_RET 14 /* CC::al */, $noreg, implicit $r0279 280...281---282name: STR_post255283alignment: 4284tracksRegLiveness: true285liveins:286 - { reg: '$r0', virtual-reg: '' }287 - { reg: '$r1', virtual-reg: '' }288body: |289 bb.0 (%ir-block.0):290 liveins: $r0, $r1291 292 ; CHECK-LABEL: name: STR_post255293 ; CHECK: liveins: $r0, $r1294 ; CHECK: early-clobber $r0 = STR_POST_IMM killed $r1, $r0, $noreg, 255, 14 /* CC::al */, $noreg :: (store (s32))295 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0296 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))297 renamable $r0 = nuw ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg298 BX_RET 14 /* CC::al */, $noreg, implicit $r0299 300...301---302name: STR_post256303alignment: 4304tracksRegLiveness: true305liveins:306 - { reg: '$r0', virtual-reg: '' }307 - { reg: '$r1', virtual-reg: '' }308body: |309 bb.0 (%ir-block.0):310 liveins: $r0, $r1311 312 ; CHECK-LABEL: name: STR_post256313 ; CHECK: liveins: $r0, $r1314 ; CHECK: early-clobber $r0 = STR_POST_IMM killed $r1, $r0, $noreg, 256, 14 /* CC::al */, $noreg :: (store (s32))315 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0316 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))317 renamable $r0 = nuw ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg318 BX_RET 14 /* CC::al */, $noreg, implicit $r0319 320...321---322name: STR_post1024323alignment: 4324tracksRegLiveness: true325liveins:326 - { reg: '$r0', virtual-reg: '' }327 - { reg: '$r1', virtual-reg: '' }328body: |329 bb.0 (%ir-block.0):330 liveins: $r0, $r1331 332 ; CHECK-LABEL: name: STR_post1024333 ; CHECK: liveins: $r0, $r1334 ; CHECK: early-clobber $r0 = STR_POST_IMM killed $r1, $r0, $noreg, 1024, 14 /* CC::al */, $noreg :: (store (s32))335 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0336 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))337 renamable $r0 = nuw ADDri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg338 BX_RET 14 /* CC::al */, $noreg, implicit $r0339 340...341---342name: STR_post4095343alignment: 4344tracksRegLiveness: true345liveins:346 - { reg: '$r0', virtual-reg: '' }347 - { reg: '$r1', virtual-reg: '' }348body: |349 bb.0 (%ir-block.0):350 liveins: $r0, $r1351 352 ; CHECK-LABEL: name: STR_post4095353 ; CHECK: liveins: $r0, $r1354 ; CHECK: early-clobber $r0 = STR_POST_IMM killed $r1, $r0, $noreg, 2095, 14 /* CC::al */, $noreg :: (store (s32))355 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0356 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))357 renamable $r0 = nuw ADDri killed renamable $r0, 2095, 14 /* CC::al */, $noreg, $noreg358 BX_RET 14 /* CC::al */, $noreg, implicit $r0359 360...361---362name: STR_post4096363alignment: 4364tracksRegLiveness: true365liveins:366 - { reg: '$r0', virtual-reg: '' }367 - { reg: '$r1', virtual-reg: '' }368body: |369 bb.0 (%ir-block.0):370 liveins: $r0, $r1371 372 ; CHECK-LABEL: name: STR_post4096373 ; CHECK: liveins: $r0, $r1374 ; CHECK: STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))375 ; CHECK: renamable $r0 = nuw ADDri killed renamable $r0, 4096, 14 /* CC::al */, $noreg, $noreg376 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0377 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))378 renamable $r0 = nuw ADDri killed renamable $r0, 4096, 14 /* CC::al */, $noreg, $noreg379 BX_RET 14 /* CC::al */, $noreg, implicit $r0380 381...382---383name: STR_postm1024384alignment: 4385tracksRegLiveness: true386liveins:387 - { reg: '$r0', virtual-reg: '' }388 - { reg: '$r1', virtual-reg: '' }389body: |390 bb.0 (%ir-block.0):391 liveins: $r0, $r1392 393 ; CHECK-LABEL: name: STR_postm1024394 ; CHECK: liveins: $r0, $r1395 ; CHECK: early-clobber $r0 = STR_POST_IMM killed $r1, $r0, $noreg, 5120, 14 /* CC::al */, $noreg :: (store (s32))396 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0397 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))398 renamable $r0 = nuw SUBri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg399 BX_RET 14 /* CC::al */, $noreg, implicit $r0400 401...402---403name: STR_postm4095404alignment: 4405tracksRegLiveness: true406liveins:407 - { reg: '$r0', virtual-reg: '' }408 - { reg: '$r1', virtual-reg: '' }409body: |410 bb.0 (%ir-block.0):411 liveins: $r0, $r1412 413 ; CHECK-LABEL: name: STR_postm4095414 ; CHECK: liveins: $r0, $r1415 ; CHECK: early-clobber $r0 = STR_POST_IMM killed $r1, $r0, $noreg, 6191, 14 /* CC::al */, $noreg :: (store (s32))416 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0417 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))418 renamable $r0 = nuw SUBri killed renamable $r0, 2095, 14 /* CC::al */, $noreg, $noreg419 BX_RET 14 /* CC::al */, $noreg, implicit $r0420 421...422---423name: STR_postm4096424alignment: 4425tracksRegLiveness: true426liveins:427 - { reg: '$r0', virtual-reg: '' }428 - { reg: '$r1', virtual-reg: '' }429body: |430 bb.0 (%ir-block.0):431 liveins: $r0, $r1432 433 ; CHECK-LABEL: name: STR_postm4096434 ; CHECK: liveins: $r0, $r1435 ; CHECK: STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))436 ; CHECK: renamable $r0 = nuw SUBri killed renamable $r0, 4096, 14 /* CC::al */, $noreg, $noreg437 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0438 STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))439 renamable $r0 = nuw SUBri killed renamable $r0, 4096, 14 /* CC::al */, $noreg, $noreg440 BX_RET 14 /* CC::al */, $noreg, implicit $r0441 442...443