brintos

brintos / llvm-project-archived public Read only

0
0
Text · 31.6 KiB · 8a5e0f6 Raw
855 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 32# RUN: llc -o - %s -mtriple=aarch64 -mcpu=cortex-a55 -lsr-preferred-addressing-mode=preindexed -stop-after=aarch64-ldst-opt | FileCheck %s3 4---5name:            1-ldrwpre-ldrwui-merge6tracksRegLiveness: true7liveins:8  - { reg: '$x1' }9  - { reg: '$w0' }10  - { reg: '$w1' }11machineFunctionInfo:12  hasRedZone:      false13body:             |14  bb.0:15    liveins: $w0, $w1, $x116    ; CHECK-LABEL: name: 1-ldrwpre-ldrwui-merge17    ; CHECK: liveins: $w0, $w1, $x118    ; CHECK-NEXT: {{  $}}19    ; CHECK-NEXT: early-clobber $x1, renamable $w0, renamable $w2 = LDPWpre renamable $x1, 5 :: (load (s32))20    ; CHECK-NEXT: STPWi renamable $w0, killed renamable $w2, renamable $x1, 0 :: (store (s32))21    ; CHECK-NEXT: RET undef $lr22    early-clobber renamable $x1, renamable $w0 = LDRWpre killed renamable $x1, 20 :: (load (s32))23    renamable $w2 = LDRWui renamable $x1, 1 :: (load (s32))24    STRWui killed renamable $w0, renamable $x1, 0 :: (store (s32))25    STRWui killed renamable $w2, renamable $x1, 1 :: (store (s32))26    RET undef $lr27...28 29 30---31name:            2-ldrxpre-ldrxui-merge32tracksRegLiveness: true33liveins:34  - { reg: '$x1' }35  - { reg: '$x2' }36  - { reg: '$x3' }37machineFunctionInfo:38  hasRedZone:      false39body:             |40  bb.0:41    liveins: $x2, $x3, $x142    ; CHECK-LABEL: name: 2-ldrxpre-ldrxui-merge43    ; CHECK: liveins: $x1, $x2, $x344    ; CHECK-NEXT: {{  $}}45    ; CHECK-NEXT: early-clobber $x1, renamable $x2, renamable $x3 = LDPXpre renamable $x1, 3 :: (load (s64))46    ; CHECK-NEXT: STPXi renamable $x2, renamable $x3, renamable $x1, 0 :: (store (s64))47    ; CHECK-NEXT: RET undef $lr48    early-clobber renamable $x1, renamable $x2 = LDRXpre killed renamable $x1, 24 :: (load (s64))49    renamable $x3 = LDRXui renamable $x1, 1 :: (load (s64))50    STRXui killed renamable $x2, renamable $x1, 0 :: (store (s64))51    STRXui killed renamable $x3, renamable $x1, 1 :: (store (s64))52    RET undef $lr53...54 55 56---57name:            3-ldrspre-ldrsui-merge58tracksRegLiveness: true59liveins:60  - { reg: '$x1' }61  - { reg: '$s0' }62  - { reg: '$s1' }63machineFunctionInfo:64  hasRedZone:      false65body:             |66  bb.0:67    liveins: $s0, $s1, $x168    ; CHECK-LABEL: name: 3-ldrspre-ldrsui-merge69    ; CHECK: liveins: $s0, $s1, $x170    ; CHECK-NEXT: {{  $}}71    ; CHECK-NEXT: early-clobber $x1, renamable $s0, renamable $s1 = LDPSpre renamable $x1, 3 :: (load (s32))72    ; CHECK-NEXT: STPSi renamable $s0, renamable $s1, renamable $x1, 0 :: (store (s32))73    ; CHECK-NEXT: RET undef $lr74    early-clobber renamable $x1, renamable $s0 = LDRSpre killed renamable $x1, 12 :: (load (s32))75    renamable $s1 = LDRSui renamable $x1, 1 :: (load (s32))76    STRSui killed renamable $s0, renamable $x1, 0 :: (store (s32))77    STRSui killed renamable $s1, renamable $x1, 1 :: (store (s32))78    RET undef $lr79...80 81 82---83name:            4-ldrqdre-ldrdui-merge84tracksRegLiveness: true85liveins:86  - { reg: '$x1' }87  - { reg: '$d0' }88  - { reg: '$d1' }89machineFunctionInfo:90  hasRedZone:      false91body:             |92  bb.0:93    liveins: $d0, $d1, $x194    ; CHECK-LABEL: name: 4-ldrqdre-ldrdui-merge95    ; CHECK: liveins: $d0, $d1, $x196    ; CHECK-NEXT: {{  $}}97    ; CHECK-NEXT: early-clobber $x1, renamable $d0, renamable $d1 = LDPDpre renamable $x1, 16 :: (load (s64))98    ; CHECK-NEXT: STPDi renamable $d0, renamable $d1, renamable $x1, 0 :: (store (s64))99    ; CHECK-NEXT: RET undef $lr100    early-clobber renamable $x1, renamable $d0 = LDRDpre killed renamable $x1, 128 :: (load (s64))101    renamable $d1 = LDRDui renamable $x1, 1 :: (load (s64))102    STRDui killed renamable $d0, renamable $x1, 0 :: (store (s64))103    STRDui killed renamable $d1, renamable $x1, 1 :: (store (s64))104    RET undef $lr105...106 107 108---109name:            5-ldrqpre-ldrqui-merge110alignment:       4111tracksRegLiveness: true112liveins:113  - { reg: '$x1' }114  - { reg: '$q0' }115  - { reg: '$q1' }116frameInfo:117  maxAlignment:    1118  maxCallFrameSize: 0119machineFunctionInfo:120  hasRedZone:      false121body:             |122  bb.0:123    liveins: $q0, $q1, $x1124    ; CHECK-LABEL: name: 5-ldrqpre-ldrqui-merge125    ; CHECK: liveins: $q0, $q1, $x1126    ; CHECK-NEXT: {{  $}}127    ; CHECK-NEXT: early-clobber $x1, renamable $q0, renamable $q1 = LDPQpre renamable $x1, 3 :: (load (s128))128    ; CHECK-NEXT: STPQi renamable $q0, renamable $q1, renamable $x1, 0 :: (store (s128))129    ; CHECK-NEXT: RET undef $lr130    early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, 48 :: (load (s128))131    renamable $q1 = LDRQui renamable $x1, 1 :: (load (s128))132    STRQui killed renamable $q0, renamable $x1, 0 :: (store (s128))133    STRQui killed renamable $q1, renamable $x1, 1 :: (store (s128))134    RET undef $lr135...136 137 138---139name:            6-ldrqui-ldrqpre-no-merge140alignment:       4141tracksRegLiveness: true142liveins:143  - { reg: '$x1' }144  - { reg: '$q0' }145  - { reg: '$q1' }146frameInfo:147  maxAlignment:    1148  maxCallFrameSize: 0149machineFunctionInfo:150  hasRedZone:      false151body:             |152  bb.0:153    liveins: $q0, $q1, $x1154    ; CHECK-LABEL: name: 6-ldrqui-ldrqpre-no-merge155    ; CHECK: liveins: $q0, $q1, $x1156    ; CHECK-NEXT: {{  $}}157    ; CHECK-NEXT: renamable $q1 = LDRQui renamable $x1, 1 :: (load (s128))158    ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 48, implicit $w1, implicit $w1_hi :: (load (s128))159    ; CHECK-NEXT: STPQi renamable $q0, renamable $q1, renamable $x1, 0 :: (store (s128))160    ; CHECK-NEXT: RET undef $lr161    renamable $q1 = LDRQui renamable $x1, 1 :: (load (s128))162    early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, 48 :: (load (s128))163    STRQui killed renamable $q0, renamable $x1, 0 :: (store (s128))164    STRQui killed renamable $q1, renamable $x1, 1 :: (store (s128))165    RET undef $lr166...167 168 169---170name:            7-ldrqpre-ldrqui-max-offset-merge171alignment:       4172tracksRegLiveness: true173liveins:174  - { reg: '$x1' }175  - { reg: '$q0' }176  - { reg: '$q1' }177frameInfo:178  maxAlignment:    1179  maxCallFrameSize: 0180machineFunctionInfo:181  hasRedZone:      false182body:             |183  bb.0:184    liveins: $q0, $q1, $x1185    ; CHECK-LABEL: name: 7-ldrqpre-ldrqui-max-offset-merge186    ; CHECK: liveins: $q0, $q1, $x1187    ; CHECK-NEXT: {{  $}}188    ; CHECK-NEXT: early-clobber $x1, renamable $q0, renamable $q1 = LDPQpre renamable $x1, 15 :: (load (s128))189    ; CHECK-NEXT: STPQi renamable $q0, renamable $q1, renamable $x1, 0 :: (store (s128))190    ; CHECK-NEXT: RET undef $lr191    early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, 240 :: (load (s128))192    renamable $q1 = LDRQui renamable $x1, 1 :: (load (s128))193    STRQui killed renamable $q0, renamable $x1, 0 :: (store (s128))194    STRQui killed renamable $q1, renamable $x1, 1 :: (store (s128))195    RET undef $lr196...197 198 199---200name:            8-ldrqpre-ldrqui-min-offset-merge201alignment:       4202tracksRegLiveness: true203liveins:204  - { reg: '$x1' }205  - { reg: '$q0' }206  - { reg: '$q1' }207frameInfo:208  maxAlignment:    1209  maxCallFrameSize: 0210machineFunctionInfo:211  hasRedZone:      false212body:             |213  bb.0:214    liveins: $q0, $q1, $x1215    ; CHECK-LABEL: name: 8-ldrqpre-ldrqui-min-offset-merge216    ; CHECK: liveins: $q0, $q1, $x1217    ; CHECK-NEXT: {{  $}}218    ; CHECK-NEXT: early-clobber $x1, renamable $q0, renamable $q1 = LDPQpre renamable $x1, -16 :: (load (s128))219    ; CHECK-NEXT: STPQi renamable $q0, renamable $q1, renamable $x1, 0 :: (store (s128))220    ; CHECK-NEXT: RET undef $lr221    early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, -256 :: (load (s128))222    renamable $q1 = LDRQui renamable $x1, 1 :: (load (s128))223    STRQui killed renamable $q0, renamable $x1, 0 :: (store (s128))224    STRQui killed renamable $q1, renamable $x1, 1 :: (store (s128))225    RET undef $lr226...227 228 229---230name:            9-ldrspre-ldrsui-mod-base-reg-no-merge231alignment:       4232tracksRegLiveness: true233liveins:234  - { reg: '$x0' }235  - { reg: '$x1' }236  - { reg: '$s0' }237  - { reg: '$s1' }238frameInfo:239  maxAlignment:    1240  maxCallFrameSize: 0241machineFunctionInfo:242  hasRedZone:      false243body:             |244  bb.0:245    liveins: $s0, $s1, $x0, $x1246    ; CHECK-LABEL: name: 9-ldrspre-ldrsui-mod-base-reg-no-merge247    ; CHECK: liveins: $s0, $s1, $x0, $x1248    ; CHECK-NEXT: {{  $}}249    ; CHECK-NEXT: dead early-clobber renamable $x1, renamable $s0 = LDRSpre renamable $x1, 12, implicit $w1, implicit $w1_hi :: (load (s32))250    ; CHECK-NEXT: renamable $x1 = LDRXui renamable $x0, 1 :: (load (s64))251    ; CHECK-NEXT: renamable $s1 = LDRSui renamable $x1, 1 :: (load (s32))252    ; CHECK-NEXT: STPSi renamable $s0, renamable $s1, renamable $x1, 0 :: (store (s32))253    ; CHECK-NEXT: RET undef $lr254    early-clobber renamable $x1, renamable $s0 = LDRSpre killed renamable $x1, 12 :: (load (s32))255    renamable $x1 = LDRXui renamable $x0, 1 :: (load (s64))256    renamable $s1 = LDRSui renamable $x1, 1 :: (load (s32))257    STRSui killed renamable $s0, renamable $x1, 0 :: (store (s32))258    STRSui killed renamable $s1, renamable $x1, 1 :: (store (s32))259    RET undef $lr260...261 262 263---264name:            10-ldrspre-ldrsui-used-base-reg-no-merge265alignment:       4266tracksRegLiveness: true267liveins:268  - { reg: '$x0' }269  - { reg: '$x1' }270  - { reg: '$s0' }271  - { reg: '$s1' }272frameInfo:273  maxAlignment:    1274  maxCallFrameSize: 0275machineFunctionInfo:276  hasRedZone:      false277body:             |278  bb.0:279    liveins: $s0, $s1, $x0, $x1280    ; CHECK-LABEL: name: 10-ldrspre-ldrsui-used-base-reg-no-merge281    ; CHECK: liveins: $s0, $s1, $x0, $x1282    ; CHECK-NEXT: {{  $}}283    ; CHECK-NEXT: early-clobber renamable $x1, renamable $s0 = LDRSpre renamable $x1, 12, implicit $w1, implicit $w1_hi :: (load (s32))284    ; CHECK-NEXT: renamable $x0 = LDRXui renamable $x1, 1 :: (load (s64))285    ; CHECK-NEXT: STRXui renamable $x0, renamable $x0, 1 :: (store (s64))286    ; CHECK-NEXT: renamable $s1 = LDRSui renamable $x1, 1 :: (load (s32))287    ; CHECK-NEXT: STPSi renamable $s0, renamable $s1, renamable $x1, 0 :: (store (s32))288    ; CHECK-NEXT: RET undef $lr289    early-clobber renamable $x1, renamable $s0 = LDRSpre killed renamable $x1, 12 :: (load (s32))290    renamable $x0 = LDRXui renamable $x1, 1 :: (load (s64))291    STRXui killed renamable $x0, renamable $x0, 1 :: (store (s64))292    renamable $s1 = LDRSui renamable $x1, 1 :: (load (s32))293    STRSui killed renamable $s0, renamable $x1, 0 :: (store (s32))294    STRSui killed renamable $s1, renamable $x1, 1 :: (store (s32))295    RET undef $lr296...297 298 299---300name:            11-ldrqpre-ldrqpre-no-merge301alignment:       4302tracksRegLiveness: true303liveins:304  - { reg: '$x1' }305  - { reg: '$q0' }306  - { reg: '$q1' }307frameInfo:308  maxAlignment:    1309  maxCallFrameSize: 0310machineFunctionInfo:311  hasRedZone:      false312body:             |313  bb.0:314    liveins: $q0, $q1, $x1315    ; CHECK-LABEL: name: 11-ldrqpre-ldrqpre-no-merge316    ; CHECK: liveins: $q0, $q1, $x1317    ; CHECK-NEXT: {{  $}}318    ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $q0 = LDRQpre renamable $x1, 48, implicit $w1, implicit $w1_hi :: (load (s128))319    ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $q1 = LDRQpre renamable $x1, 1, implicit $w1, implicit $w1_hi :: (load (s128))320    ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $q0 = LDRQpre renamable $x1, 16, implicit $w1, implicit $w1_hi :: (load (s128))321    ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $q1 = LDRQpre renamable $x1, 12, implicit $w1, implicit $w1_hi :: (load (s128))322    ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 16, implicit $w1, implicit $w1_hi :: (load (s128))323    ; CHECK-NEXT: early-clobber renamable $x1, renamable $q1 = LDRQpre renamable $x1, 16, implicit $w1, implicit $w1_hi :: (load (s128))324    ; CHECK-NEXT: STPQi renamable $q0, renamable $q1, renamable $x1, 0 :: (store (s128))325    ; CHECK-NEXT: RET undef $lr326    early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, 48 :: (load (s128))327    early-clobber renamable $x1, renamable $q1 = LDRQpre killed renamable $x1, 1  :: (load (s128))328    early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, 16 :: (load (s128))329    early-clobber renamable $x1, renamable $q1 = LDRQpre killed renamable $x1, 12  :: (load (s128))330    early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, 16 :: (load (s128))331    early-clobber renamable $x1, renamable $q1 = LDRQpre killed renamable $x1, 16  :: (load (s128))332    STRQui killed renamable $q0, renamable $x1, 0 :: (store (s128))333    STRQui killed renamable $q1, renamable $x1, 1 :: (store (s128))334    RET undef $lr335...336 337 338---339name:            12-ldrspre-ldrsui-no-merge340tracksRegLiveness: true341liveins:342  - { reg: '$x1' }343  - { reg: '$s0' }344  - { reg: '$s1' }345machineFunctionInfo:346  hasRedZone:      false347body:             |348  bb.0:349    liveins: $s0, $s1, $x1350 351 352    ; CHECK-LABEL: name: 12-ldrspre-ldrsui-no-merge353    ; CHECK: liveins: $s0, $s1, $x1354    ; CHECK-NEXT: {{  $}}355    ; CHECK-NEXT: early-clobber renamable $x1, renamable $s0 = LDRSpre renamable $x1, 12, implicit $w1, implicit $w1_hi :: (load (s32))356    ; CHECK-NEXT: renamable $s1 = LDRSui renamable $x1, 2 :: (load (s32))357    ; CHECK-NEXT: STPSi renamable $s0, renamable $s1, renamable $x1, 0 :: (store (s32))358    ; CHECK-NEXT: RET undef $lr359    early-clobber renamable $x1, renamable $s0 = LDRSpre killed renamable $x1, 12 :: (load (s32))360    renamable $s1 = LDRSui renamable $x1, 2 :: (load (s32))361    STRSui killed renamable $s0, renamable $x1, 0 :: (store (s32))362    STRSui killed renamable $s1, renamable $x1, 1 :: (store (s32))363    RET undef $lr364...365 366 367---368name:            13-ldrqpre-ldrdui-no-merge369alignment:       4370tracksRegLiveness: true371liveins:372  - { reg: '$x1' }373  - { reg: '$q0' }374  - { reg: '$d1' }375frameInfo:376  maxAlignment:    1377  maxCallFrameSize: 0378machineFunctionInfo:379  hasRedZone:      false380body:             |381  bb.0:382    liveins: $q0, $d1, $x1383    ; CHECK-LABEL: name: 13-ldrqpre-ldrdui-no-merge384    ; CHECK: liveins: $d1, $q0, $x1385    ; CHECK-NEXT: {{  $}}386    ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 32, implicit $w1, implicit $w1_hi :: (load (s128))387    ; CHECK-NEXT: renamable $d1 = LDRDui renamable $x1, 1 :: (load (s64))388    ; CHECK-NEXT: STRQui renamable $q0, renamable $x1, 0 :: (store (s128))389    ; CHECK-NEXT: STRDui renamable $d1, renamable $x1, 1 :: (store (s64))390    ; CHECK-NEXT: RET undef $lr391    early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, 32 :: (load (s128))392    renamable $d1 = LDRDui renamable $x1, 1 :: (load (s64))393    STRQui killed renamable $q0, renamable $x1, 0 :: (store (s128))394    STRDui killed renamable $d1, renamable $x1, 1 :: (store (s64))395    RET undef $lr396...397 398 399---400name:            14-ldrqpre-strqui-no-merge401alignment:       4402tracksRegLiveness: true403liveins:404  - { reg: '$x1' }405  - { reg: '$q0' }406  - { reg: '$q1' }407frameInfo:408  maxAlignment:    1409  maxCallFrameSize: 0410machineFunctionInfo:411  hasRedZone:      false412body:             |413  bb.0:414    liveins: $q0, $q1, $x1415    ; CHECK-LABEL: name: 14-ldrqpre-strqui-no-merge416    ; CHECK: liveins: $q0, $q1, $x1417    ; CHECK-NEXT: {{  $}}418    ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 32, implicit $w1, implicit $w1_hi :: (load (s128))419    ; CHECK-NEXT: STRQui renamable $q0, renamable $x1, 0 :: (store (s128))420    ; CHECK-NEXT: RET undef $lr421    early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, 32 :: (load (s128))422    STRQui killed renamable $q0, renamable $x1, 0 :: (store (s128))423    RET undef $lr424...425 426 427---428name:            15-ldrqpre-ldrqui-same-dst-reg-no-merge429alignment:       4430tracksRegLiveness: true431liveins:432  - { reg: '$x1' }433  - { reg: '$q0' }434  - { reg: '$q1' }435frameInfo:436  maxAlignment:    1437  maxCallFrameSize: 0438machineFunctionInfo:439  hasRedZone:      false440body:             |441  bb.0:442    liveins: $q0, $x1443    ; CHECK-LABEL: name: 15-ldrqpre-ldrqui-same-dst-reg-no-merge444    ; CHECK: liveins: $q0, $q1, $x1445    ; CHECK-NEXT: {{  $}}446    ; CHECK-NEXT: early-clobber $x1, dead $q2, renamable $q0 = LDPQpre renamable $x1, 2 :: (load (s128))447    ; CHECK-NEXT: STRQui renamable $q0, renamable $x1, 0 :: (store (s128))448    ; CHECK-NEXT: RET undef $lr449    early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, 32 :: (load (s128))450    renamable $q0 = LDRQui renamable $x1, 1 :: (load (s128))451    STRQui killed renamable $q0, renamable $x1, 0 :: (store (s128))452    RET undef $lr453...454 455 456---457name:            16-ldrqpre-ldrqui-diff-base-reg-no-merge458alignment:       4459tracksRegLiveness: true460liveins:461  - { reg: '$x1' }462  - { reg: '$x2' }463  - { reg: '$q0' }464  - { reg: '$q1' }465frameInfo:466  maxAlignment:    1467  maxCallFrameSize: 0468machineFunctionInfo:469  hasRedZone:      false470body:             |471  bb.0:472    liveins: $q0, $q1, $x1, $x2473    ; CHECK-LABEL: name: 16-ldrqpre-ldrqui-diff-base-reg-no-merge474    ; CHECK: liveins: $q0, $q1, $x1, $x2475    ; CHECK-NEXT: {{  $}}476    ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 32, implicit $w1, implicit $w1_hi :: (load (s128))477    ; CHECK-NEXT: renamable $q1 = LDRQui renamable $x2, 1 :: (load (s128))478    ; CHECK-NEXT: STPQi renamable $q0, renamable $q1, renamable $x1, 0 :: (store (s128))479    ; CHECK-NEXT: RET undef $lr480    early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, 32 :: (load (s128))481    renamable $q1 = LDRQui renamable $x2, 1 :: (load (s128))482    STRQui killed renamable $q0, renamable $x1, 0 :: (store (s128))483    STRQui killed renamable $q1, renamable $x1, 1 :: (store (s128))484    RET undef $lr485...486 487 488---489name:            17-ldrqpre-ldurqi-merge490alignment:       4491tracksRegLiveness: true492liveins:493  - { reg: '$x1' }494  - { reg: '$q0' }495  - { reg: '$q1' }496frameInfo:497  maxAlignment:    1498  maxCallFrameSize: 0499machineFunctionInfo:500  hasRedZone:      false501body:             |502  bb.0:503    liveins: $q0, $q1, $x1504    ; CHECK-LABEL: name: 17-ldrqpre-ldurqi-merge505    ; CHECK: liveins: $q0, $q1, $x1506    ; CHECK-NEXT: {{  $}}507    ; CHECK-NEXT: early-clobber $x1, renamable $q0, renamable $q1 = LDPQpre renamable $x1, 2 :: (load (s128))508    ; CHECK-NEXT: STPQi renamable $q0, renamable $q1, renamable $x1, 0 :: (store (s128))509    ; CHECK-NEXT: RET undef $lr510    early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, 32 :: (load (s128))511    renamable $q1 = LDURQi renamable $x1, 16 :: (load (s128))512    STRQui killed renamable $q0, renamable $x1, 0 :: (store (s128))513    STRQui killed renamable $q1, renamable $x1, 1 :: (store (s128))514    RET undef $lr515...516 517 518---519name:            18-ldrqpre-ldurqi-no-merge520alignment:       4521tracksRegLiveness: true522liveins:523  - { reg: '$x1' }524  - { reg: '$q0' }525  - { reg: '$q1' }526frameInfo:527  maxAlignment:    1528  maxCallFrameSize: 0529machineFunctionInfo:530  hasRedZone:      false531body:             |532  bb.0:533    liveins: $q0, $q1, $x1534    ; CHECK-LABEL: name: 18-ldrqpre-ldurqi-no-merge535    ; CHECK: liveins: $q0, $q1, $x1536    ; CHECK-NEXT: {{  $}}537    ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 32, implicit $w1, implicit $w1_hi :: (load (s128))538    ; CHECK-NEXT: renamable $q1 = LDURQi renamable $x1, 1 :: (load (s128))539    ; CHECK-NEXT: STPQi renamable $q0, renamable $q1, renamable $x1, 0 :: (store (s128))540    ; CHECK-NEXT: RET undef $lr541    early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, 32 :: (load (s128))542    renamable $q1 = LDURQi renamable $x1, 1 :: (load (s128))543    STRQui killed renamable $q0, renamable $x1, 0 :: (store (s128))544    STRQui killed renamable $q1, renamable $x1, 1 :: (store (s128))545    RET undef $lr546...547 548 549---550name:            19-ldrspre-ldrsui-max-merge551tracksRegLiveness: true552liveins:553  - { reg: '$x1' }554  - { reg: '$s0' }555  - { reg: '$s1' }556machineFunctionInfo:557  hasRedZone:      false558body:             |559  bb.0:560    liveins: $s0, $s1, $x1561    ; CHECK-LABEL: name: 19-ldrspre-ldrsui-max-merge562    ; CHECK: liveins: $s0, $s1, $x1563    ; CHECK-NEXT: {{  $}}564    ; CHECK-NEXT: early-clobber $x1, renamable $s0, renamable $s1 = LDPSpre renamable $x1, 63 :: (load (s32))565    ; CHECK-NEXT: STPSi renamable $s0, renamable $s1, renamable $x1, 0 :: (store (s32))566    ; CHECK-NEXT: RET undef $lr567    early-clobber renamable $x1, renamable $s0 = LDRSpre killed renamable $x1, 252 :: (load (s32))568    renamable $s1 = LDRSui renamable $x1, 1 :: (load (s32))569    STRSui killed renamable $s0, renamable $x1, 0 :: (store (s32))570    STRSui killed renamable $s1, renamable $x1, 1 :: (store (s32))571    RET undef $lr572...573 574 575---576name:            20-ldrspre-ldrsui-unaligned-no-merge577tracksRegLiveness: true578liveins:579  - { reg: '$x1' }580  - { reg: '$s0' }581  - { reg: '$s1' }582machineFunctionInfo:583  hasRedZone:      false584body:             |585  bb.0:586    liveins: $s0, $s1, $x1587    ; CHECK-LABEL: name: 20-ldrspre-ldrsui-unaligned-no-merge588    ; CHECK: liveins: $s0, $s1, $x1589    ; CHECK-NEXT: {{  $}}590    ; CHECK-NEXT: early-clobber renamable $x1, renamable $s0 = LDRSpre renamable $x1, 251, implicit $w1, implicit $w1_hi :: (load (s32))591    ; CHECK-NEXT: renamable $s1 = LDRSui renamable $x1, 1 :: (load (s32))592    ; CHECK-NEXT: STPSi renamable $s0, renamable $s1, renamable $x1, 0 :: (store (s32))593    ; CHECK-NEXT: RET undef $lr594    early-clobber renamable $x1, renamable $s0 = LDRSpre killed renamable $x1, 251 :: (load (s32))595    renamable $s1 = LDRSui renamable $x1, 1 :: (load (s32))596    STRSui killed renamable $s0, renamable $x1, 0 :: (store (s32))597    STRSui killed renamable $s1, renamable $x1, 1 :: (store (s32))598    RET undef $lr599...600 601 602---603name:            21-ldrswpre-ldrswui-merge604tracksRegLiveness: true605liveins:606  - { reg: '$x0' }607  - { reg: '$x1' }608  - { reg: '$x2' }609machineFunctionInfo:610  hasRedZone:      false611body:             |612  bb.0:613    liveins: $x0, $x1, $x2614    ; CHECK-LABEL: name: 21-ldrswpre-ldrswui-merge615    ; CHECK: liveins: $x0, $x1, $x2616    ; CHECK-NEXT: {{  $}}617    ; CHECK-NEXT: early-clobber $x1, renamable $x0, renamable $x2 = LDPSWpre renamable $x1, 10 :: (load (s32))618    ; CHECK-NEXT: STPXi renamable $x0, renamable $x2, renamable $x1, 0 :: (store (s64))619    ; CHECK-NEXT: RET undef $lr620    early-clobber renamable $x1, renamable $x0 = LDRSWpre killed renamable $x1, 40 :: (load (s32))621    renamable $x2 = LDRSWui renamable $x1, 1 :: (load (s32))622    STRXui killed renamable $x0, renamable $x1, 0 :: (store (s64))623    STRXui killed renamable $x2, renamable $x1, 1 :: (store (s64))624    RET undef $lr625...626 627 628---629name:            22-ldrswpre-ldurswi-merge630tracksRegLiveness: true631liveins:632  - { reg: '$x0' }633  - { reg: '$x1' }634  - { reg: '$x2' }635machineFunctionInfo:636  hasRedZone:      false637body:             |638  bb.0:639    liveins: $x0, $x1, $x2640    ; CHECK-LABEL: name: 22-ldrswpre-ldurswi-merge641    ; CHECK: liveins: $x0, $x1, $x2642    ; CHECK-NEXT: {{  $}}643    ; CHECK-NEXT: early-clobber $x1, renamable $x0, renamable $x2 = LDPSWpre renamable $x1, 10 :: (load (s32))644    ; CHECK-NEXT: STPXi renamable $x0, renamable $x2, renamable $x1, 0 :: (store (s64))645    ; CHECK-NEXT: RET undef $lr646    early-clobber renamable $x1, renamable $x0 = LDRSWpre killed renamable $x1, 40 :: (load (s32))647    renamable $x2 = LDURSWi renamable $x1, 4 :: (load (s32))648    STRXui killed renamable $x0, renamable $x1, 0 :: (store (s64))649    STRXui killed renamable $x2, renamable $x1, 1 :: (store (s64))650    RET undef $lr651...652 653 654---655name:            23-ldrswui-ldrswpre-no-merge656tracksRegLiveness: true657liveins:658  - { reg: '$x0' }659  - { reg: '$x1' }660  - { reg: '$x2' }661machineFunctionInfo:662  hasRedZone:      false663body:             |664  bb.0:665    liveins: $x0, $x1, $x2666    ; CHECK-LABEL: name: 23-ldrswui-ldrswpre-no-merge667    ; CHECK: liveins: $x0, $x1, $x2668    ; CHECK-NEXT: {{  $}}669    ; CHECK-NEXT: renamable $x2 = LDRSWui renamable $x1, 1 :: (load (s32))670    ; CHECK-NEXT: early-clobber renamable $x1, renamable $x0 = LDRSWpre renamable $x1, 40, implicit $w1, implicit $w1_hi :: (load (s32))671    ; CHECK-NEXT: STPXi renamable $x0, renamable $x2, renamable $x1, 0 :: (store (s64))672    ; CHECK-NEXT: RET undef $lr673    renamable $x2 = LDRSWui renamable $x1, 1 :: (load (s32))674    early-clobber renamable $x1, renamable $x0 = LDRSWpre killed renamable $x1, 40 :: (load (s32))675    STRXui killed renamable $x0, renamable $x1, 0 :: (store (s64))676    STRXui killed renamable $x2, renamable $x1, 1 :: (store (s64))677    RET undef $lr678...679 680 681---682name:            24-ldurswi-ldrswpre-no-merge683tracksRegLiveness: true684liveins:685  - { reg: '$x0' }686  - { reg: '$x1' }687  - { reg: '$x2' }688machineFunctionInfo:689  hasRedZone:      false690body:             |691  bb.0:692    liveins: $x0, $x1, $x2693    ; CHECK-LABEL: name: 24-ldurswi-ldrswpre-no-merge694    ; CHECK: liveins: $x0, $x1, $x2695    ; CHECK-NEXT: {{  $}}696    ; CHECK-NEXT: renamable $x2 = LDURSWi renamable $x1, 4 :: (load (s32))697    ; CHECK-NEXT: early-clobber renamable $x1, renamable $x0 = LDRSWpre renamable $x1, 40, implicit $w1, implicit $w1_hi :: (load (s32))698    ; CHECK-NEXT: STPXi renamable $x0, renamable $x2, renamable $x1, 0 :: (store (s64))699    ; CHECK-NEXT: RET undef $lr700    renamable $x2 = LDURSWi renamable $x1, 4 :: (load (s32))701    early-clobber renamable $x1, renamable $x0 = LDRSWpre killed renamable $x1, 40 :: (load (s32))702    STRXui killed renamable $x0, renamable $x1, 0 :: (store (s64))703    STRXui killed renamable $x2, renamable $x1, 1 :: (store (s64))704    RET undef $lr705...706 707 708---709name:            25-ldrswpre-ldrswpre-no-merge710tracksRegLiveness: true711liveins:712  - { reg: '$x0' }713  - { reg: '$x1' }714  - { reg: '$x2' }715machineFunctionInfo:716  hasRedZone:      false717body:             |718  bb.0:719    liveins: $x0, $x1, $x2720    ; CHECK-LABEL: name: 25-ldrswpre-ldrswpre-no-merge721    ; CHECK: liveins: $x0, $x1, $x2722    ; CHECK-NEXT: {{  $}}723    ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $x0 = LDRSWpre renamable $x1, 48, implicit $w1, implicit $w1_hi :: (load (s32))724    ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $x2 = LDRSWpre renamable $x1, 1, implicit $w1, implicit $w1_hi :: (load (s32))725    ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $x0 = LDRSWpre renamable $x1, 16, implicit $w1, implicit $w1_hi :: (load (s32))726    ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $x2 = LDRSWpre renamable $x1, 12, implicit $w1, implicit $w1_hi :: (load (s32))727    ; CHECK-NEXT: early-clobber renamable $x1, renamable $x0 = LDRSWpre renamable $x1, 16, implicit $w1, implicit $w1_hi :: (load (s32))728    ; CHECK-NEXT: early-clobber renamable $x1, renamable $x2 = LDRSWpre renamable $x1, 16, implicit $w1, implicit $w1_hi :: (load (s32))729    ; CHECK-NEXT: STPXi renamable $x0, renamable $x2, renamable $x1, 0 :: (store (s64))730    ; CHECK-NEXT: RET undef $lr731    early-clobber renamable $x1, renamable $x0 = LDRSWpre killed renamable $x1, 48 :: (load (s32))732    early-clobber renamable $x1, renamable $x2 = LDRSWpre killed renamable $x1, 1 :: (load (s32))733    early-clobber renamable $x1, renamable $x0 = LDRSWpre killed renamable $x1, 16 :: (load (s32))734    early-clobber renamable $x1, renamable $x2 = LDRSWpre killed renamable $x1, 12 :: (load (s32))735    early-clobber renamable $x1, renamable $x0 = LDRSWpre killed renamable $x1, 16 :: (load (s32))736    early-clobber renamable $x1, renamable $x2 = LDRSWpre killed renamable $x1, 16 :: (load (s32))737    STRXui killed renamable $x0, renamable $x1, 0 :: (store (s64))738    STRXui killed renamable $x2, renamable $x1, 1 :: (store (s64))739    RET undef $lr740...741 742 743---744name:            26-ldrswpre-ldrwui-no-merge745tracksRegLiveness: true746liveins:747  - { reg: '$x0' }748  - { reg: '$x1' }749  - { reg: '$x2' }750machineFunctionInfo:751  hasRedZone:      false752body:             |753  bb.0:754    liveins: $x0, $x1, $x2755    ; CHECK-LABEL: name: 26-ldrswpre-ldrwui-no-merge756    ; CHECK: liveins: $x0, $x1, $x2757    ; CHECK-NEXT: {{  $}}758    ; CHECK-NEXT: early-clobber renamable $x1, renamable $x0 = LDRSWpre renamable $x1, 40, implicit $w1, implicit $w1_hi :: (load (s32))759    ; CHECK-NEXT: renamable $w2 = LDRWui renamable $x1, 1, implicit-def $x2 :: (load (s32))760    ; CHECK-NEXT: STPXi renamable $x0, renamable $x2, renamable $x1, 0 :: (store (s64))761    ; CHECK-NEXT: RET undef $lr762    early-clobber renamable $x1, renamable $x0 = LDRSWpre killed renamable $x1, 40 :: (load (s32))763    renamable $w2 = LDRWui renamable $x1, 1 :: (load (s32))764    STRXui killed renamable $x0, renamable $x1, 0 :: (store (s64))765    STRXui killed renamable $x2, renamable $x1, 1 :: (store (s64))766    RET undef $lr767...768 769 770---771name:            27-ldrwpre-ldrswui-no-merge772tracksRegLiveness: true773liveins:774  - { reg: '$x0' }775  - { reg: '$x1' }776  - { reg: '$x2' }777machineFunctionInfo:778  hasRedZone:      false779body:             |780  bb.0:781    liveins: $x0, $x1, $x2782    ; CHECK-LABEL: name: 27-ldrwpre-ldrswui-no-merge783    ; CHECK: liveins: $x0, $x1, $x2784    ; CHECK-NEXT: {{  $}}785    ; CHECK-NEXT: early-clobber renamable $x1, renamable $w0 = LDRWpre renamable $x1, 40, implicit $w1, implicit $w1_hi :: (load (s32))786    ; CHECK-NEXT: renamable $x2 = LDRSWui renamable $x1, 1 :: (load (s32))787    ; CHECK-NEXT: STPXi renamable $x0, renamable $x2, renamable $x1, 0 :: (store (s64))788    ; CHECK-NEXT: RET undef $lr789    early-clobber renamable $x1, renamable $w0 = LDRWpre killed renamable $x1, 40 :: (load (s32))790    renamable $x2 = LDRSWui renamable $x1, 1 :: (load (s32))791    STRXui killed renamable $x0, renamable $x1, 0 :: (store (s64))792    STRXui killed renamable $x2, renamable $x1, 1 :: (store (s64))793    RET undef $lr794...795 796 797---798name:            28-ldrswpre-ldrwpre-no-merge799tracksRegLiveness: true800liveins:801  - { reg: '$x11' }802  - { reg: '$x13' }803machineFunctionInfo:804  hasRedZone:      false805body:             |806  bb.0:807    liveins: $x11, $x13808    ; CHECK-LABEL: name: 28-ldrswpre-ldrwpre-no-merge809    ; CHECK: liveins: $x11, $x13810    ; CHECK-NEXT: {{  $}}811    ; CHECK-NEXT: early-clobber renamable $x11, dead renamable $x10 = LDRSWpre renamable $x11, 8, implicit $w11, implicit $w11_hi :: (load (s32), align 8)812    ; CHECK-NEXT: $x14 = EORXrs renamable $x11, renamable $x13, 0813    ; CHECK-NEXT: early-clobber renamable $x11, dead renamable $w12 = LDRWpre renamable $x11, 4, implicit $w11, implicit $w11_hi :: (load (s32))814    ; CHECK-NEXT: $x13 = EORXrs renamable $x11, renamable $x13, 0815    ; CHECK-NEXT: STPXi renamable $x13, renamable $x14, renamable $x11, 0 :: (store (s64))816    ; CHECK-NEXT: RET undef $lr817    early-clobber renamable $x11, renamable $x10 = LDRSWpre killed renamable $x11, 8 :: (load (s32), align 8)818    $x14 = EORXrs renamable $x11, renamable $x13, 0819    early-clobber renamable $x11, renamable $w12 = LDRWpre killed renamable $x11, 4 :: (load (s32))820    $x13 = EORXrs renamable $x11, killed renamable $x13, 0821    STRXui killed renamable $x13, renamable $x11, 0 :: (store (s64))822    STRXui killed renamable $x14, renamable $x11, 1 :: (store (s64))823    RET undef $lr824...825 826 827---828name:            29-ldrwpre-ldrswpre-no-merge829tracksRegLiveness: true830liveins:831  - { reg: '$x11' }832  - { reg: '$x13' }833machineFunctionInfo:834  hasRedZone:      false835body:             |836  bb.0:837    liveins: $x11, $x13838    ; CHECK-LABEL: name: 29-ldrwpre-ldrswpre-no-merge839    ; CHECK: liveins: $x11, $x13840    ; CHECK-NEXT: {{  $}}841    ; CHECK-NEXT: early-clobber renamable $x11, dead renamable $w12 = LDRWpre renamable $x11, 8, implicit $w11, implicit $w11_hi :: (load (s32))842    ; CHECK-NEXT: $x14 = EORXrs renamable $x11, renamable $x13, 0843    ; CHECK-NEXT: early-clobber renamable $x11, dead renamable $x10 = LDRSWpre renamable $x11, 4, implicit $w11, implicit $w11_hi :: (load (s32), align 8)844    ; CHECK-NEXT: $x13 = EORXrs renamable $x11, renamable $x13, 0845    ; CHECK-NEXT: STPXi renamable $x13, renamable $x14, renamable $x11, 0 :: (store (s64))846    ; CHECK-NEXT: RET undef $lr847    early-clobber renamable $x11, renamable $w12 = LDRWpre killed renamable $x11, 8 :: (load (s32))848    $x14 = EORXrs renamable $x11, renamable $x13, 0849    early-clobber renamable $x11, renamable $x10 = LDRSWpre killed renamable $x11, 4 :: (load (s32), align 8)850    $x13 = EORXrs renamable $x11, killed renamable $x13, 0851    STRXui killed renamable $x13, renamable $x11, 0 :: (store (s64))852    STRXui killed renamable $x14, renamable $x11, 1 :: (store (s64))853    RET undef $lr854...855