brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.0 KiB · 8394bc3 Raw
402 lines · plain
1# RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass=postra-machine-sink -verify-machineinstrs  -o - %s | FileCheck %s2# RUN: llc -mtriple=aarch64-none-linux-gnu -passes='postra-machine-sink' -o - %s | FileCheck %s3 4---5# Sink w19 to %bb.1.6# CHECK-LABEL: name: sinkcopy17# CHECK-LABEL: bb.0:8# CHECK-NOT: $w19 = COPY killed $w09# CHECK-LABEL: bb.1:10# CHECK: liveins: $w0, $w111# CHECK: renamable $w19 = COPY killed $w012 13name: sinkcopy114tracksRegLiveness: true15body: |16  bb.0:17    liveins: $w0, $w118    $w1 = SUBSWri $w1, 1, 0, implicit-def $nzcv19    renamable  $w19 = COPY killed $w020    Bcc 11, %bb.1, implicit $nzcv21    B %bb.222 23  bb.1:24    liveins: $w1, $w1925    $w0 = ADDWrr $w1, $w1926    RET $x027 28  bb.2:29    $w0 = COPY $wzr30    RET   $x031...32 33---34# Sink w19 to %bb.2.35# CHECK-LABEL: name: sinkcopy236# CHECK-LABEL: bb.0:37# CHECK-NOT: renamable $w19 = COPY killed $w038# CHECK-LABEL: bb.2:39# CHECK: liveins: $w0, $w140# CHECK: renamable $w19 = COPY killed $w041name: sinkcopy242tracksRegLiveness: true43body: |44  bb.0:45    liveins: $w0, $w146    $w1 = SUBSWri $w1, 1, 0, implicit-def $nzcv47    renamable $w19 = COPY killed $w048    Bcc 11, %bb.2, implicit $nzcv49    B %bb.150 51  bb.1:52    $w0 = COPY $wzr53    RET $x054 55  bb.2:56    liveins: $w1, $w1957    $w0 = ADDWrr $w1, $w1958    RET $x059...60 61---62# Sink w19 and w20 to %bb.1.63# CHECK-LABEL: name: sinkcopy364# CHECK-LABEL: bb.0:65# CHECK-NOT: renamable $w19 = COPY killed $w066# CHECK-LABEL: bb.1:67# CHECK: liveins: $w0, $w168# CHECK: renamable $w19 = COPY killed $w069# CHECK: renamable $w20 = COPY killed $w170name: sinkcopy371tracksRegLiveness: true72body: |73  bb.0:74    liveins: $w0, $w175    $w1 = SUBSWri $w1, 1, 0, implicit-def $nzcv76    renamable $w19 = COPY killed $w077    renamable $w20 = COPY killed $w178 79  bb.1:80    liveins: $w19, $w2081    $w0 = COPY $w1982    $w1 = COPY $w2083    RET $x084...85 86 87# Sink w19 to %bb.1 and w20 to %bb.2.88# CHECK-LABEL: name: sinkcopy489# CHECK-LABEL: bb.0:90# CHECK-NOT: renamable $w19 = COPY $w091# CHECK-NOT: renamable $w20 = COPY $w192# CHECK-LABEL: bb.1:93# CHECK: liveins: $w0, $w194# CHECK: renamable $w19 = COPY $w095# CHECK-LABEL: bb.2:96# CHECK: liveins: $w0, $w197# CHECK: renamable $w20 = COPY $w198name: sinkcopy499tracksRegLiveness: true100body: |101  bb.0:102    liveins: $w0, $w1103    $w1 = SUBSWri $w1, 1, 0, implicit-def $nzcv104    renamable $w19 = COPY $w0105    renamable $w20 = COPY $w1106    Bcc 11, %bb.2, implicit $nzcv107    B %bb.1108 109  bb.1:110    liveins: $w1, $w19111    $w0 = ADDWrr $w1, $w19112    RET $x0113 114  bb.2:115    liveins: $w0, $w20116    $w0 = ADDWrr $w0, $w20117    RET $x0118...119 120# Sink w19 to %bb.3 through %bb.2.121# CHECK-LABEL: name: sinkcopy5122# CHECK-LABEL: bb.0:123# CHECK-NOT: renamable $w19 = COPY $w0124# CHECK-LABEL: bb.2:125# CHECK: $w1 = ADDWrr $w1, $w0126# CHECK-LABEL: bb.3:127# CHECK: liveins: $w0, $w1128# CHECK: renamable $w19 = COPY killed $w0129name: sinkcopy5130tracksRegLiveness: true131body: |132  bb.0:133    liveins: $w0, $w1134    $w1 = SUBSWri $w1, 1, 0, implicit-def $nzcv135    renamable $w19 = COPY $w0136    Bcc 11, %bb.2, implicit $nzcv137 138  bb.1:139    liveins: $x0140    $w19 = COPY $wzr141    RET $x0142 143  bb.2:144    liveins: $w0, $w1, $w19145    $w1 = ADDWrr $w1, killed $w0146 147  bb.3:148    liveins: $w1, $w19149    $w0 = ADDWrr $w1, $w19150    RET $x0151...152 153# Sink w19 to %bb.3, but  through %bb.2.154# CHECK-LABEL: name: sinkcopy6155# CHECK-LABEL: bb.0:156# CHECK-NOT: renamable $w19 = COPY $w0157# CHECK-NOT: renamable $w20 = COPY $w0158# CHECK-LABEL: bb.2:159# CHECK: liveins: $w0, $w1160# CHECK: renamable $w19 = COPY $w0161# CHECK: renamable $w20 = COPY $w19162name: sinkcopy6163tracksRegLiveness: true164body: |165  bb.0:166    liveins: $w0, $w1167    $w1 = SUBSWri $w1, 1, 0, implicit-def $nzcv168    renamable $w19 = COPY $w0169    renamable $w20 = COPY $w19170    Bcc 11, %bb.2, implicit $nzcv171 172  bb.1:173    $w0 = COPY $wzr174    RET $x0175 176  bb.2:177    liveins: $w1, $w20178    $w0 = ADDWrr killed $w1, $w20179    RET $x0180...181 182---183# Sink w19 regardless of the def of wzr in bb.0.184# CHECK-LABEL: name: sinkcopy7185# CHECK-LABEL: bb.0:186# CHECK-NOT: renamable $w19 = COPY $w0187# CHECK-LABEL: bb.2:188# CHECK: renamable $w19 = COPY $wzr189name: sinkcopy7190tracksRegLiveness: true191body: |192  bb.0:193    liveins: $w0, $w1194    renamable $w19 = COPY $wzr195    $wzr = SUBSWri $w1, 1, 0, implicit-def $nzcv196    Bcc 11, %bb.2, implicit $nzcv197    B %bb.1198 199  bb.1:200    $x0 = COPY $xzr201    RET $x0202 203  bb.2:204    liveins: $w0, $w19205    $w0 = ADDWrr $w0, $w19206    RET $x0207...208 209---210# Sink w19 to %bb.3 through %bb.2.211# CHECK-LABEL: name: sinkcopy8212# CHECK-LABEL: bb.0:213# CHECK-NOT: renamable $w19 = COPY $w0, implicit-def $x19214# CHECK-LABEL: bb.2:215# CHECK: $w1 = ADDWrr $w1, $w0, implicit $x0216# CHECK-LABEL: bb.3:217# CHECK: liveins: $w0, $x1218# CHECK: renamable $w19 = COPY killed $w0, implicit-def $x19219name: sinkcopy8220tracksRegLiveness: true221body: |222  bb.0:223    liveins: $w0, $x1224    $w1 = SUBSWri $w1, 1, 0, implicit-def $nzcv225    renamable $w19 = COPY $w0, implicit-def $x19226    Bcc 11, %bb.2, implicit $nzcv227 228  bb.1:229    liveins: $x0230    $w19 = COPY $wzr231    RET $x0232 233  bb.2:234    liveins: $w0, $x1, $x19235    $w1 = ADDWrr $w1, $w0, implicit killed $x0236 237  bb.3:238    liveins: $x1, $x19239    $x0 = ADDXrr $x1, $x19240    RET $x0241...242 243---244# Don't sink w19 as w0 is defined in bb.0.245# CHECK-LABEL: name: donotsinkcopy1246# CHECK-LABEL: bb.0:247# CHECK: renamable $w19 = COPY $w0248# CHECK: $w0 = LDRWui $sp, 0249name: donotsinkcopy1250tracksRegLiveness: true251body: |252  bb.0:253    liveins: $w0, $w1254    $w1 = SUBSWri $w1, 1, 0, implicit-def $nzcv255    renamable $w19 = COPY $w0256    $w0 = LDRWui $sp, 0 :: (load (s32))257    Bcc 11, %bb.2, implicit $nzcv258    B %bb.1259 260  bb.1:261    $x0 = COPY $xzr262    RET $x0263 264  bb.2:265    liveins: $w0, $w19266    $w0 = ADDWrr $w0, $w19267    RET $x0268...269 270---271# Don't sink w19 as w19 is used in bb.0.272# CHECK-LABEL: name: donotsinkcopy2273# CHECK-LABEL: bb.0:274# CHECK: renamable $w19 = COPY $w0275# CHECK: STRWui $w1, $x19, 0276name: donotsinkcopy2277tracksRegLiveness: true278body: |279  bb.0:280    liveins: $w0, $w1281    $w1 = SUBSWri $w1, 1, 0, implicit-def $nzcv282    renamable $w19 = COPY $w0283    STRWui $w1, $x19, 0 :: (store (s32))284    Bcc 11, %bb.2, implicit $nzcv285    B %bb.1286 287  bb.1:288    $x0 = COPY $xzr289    RET $x0290 291  bb.2:292    liveins: $w0, $w19293    $w0 = ADDWrr $w0, $w19294    RET $x0295...296 297---298# Don't sink w19 as w19 is used in both %bb.1 and %bb.2.299# CHECK-LABEL: name: donotsinkcopy3300# CHECK-LABEL: bb.0:301# CHECK: renamable $w19 = COPY $w0302name: donotsinkcopy3303tracksRegLiveness: true304body: |305  bb.0:306    liveins: $w0, $w1307    $w1 = SUBSWri $w1, 1, 0, implicit-def $nzcv308    renamable $w19 = COPY $w0309    Bcc 11, %bb.2, implicit $nzcv310    B %bb.1311 312  bb.1:313    liveins: $w19314    $w0 = COPY $w19315    RET $x0316 317  bb.2:318    liveins: $w0, $w19319    $w0 = ADDWrr $w0, $w19320    RET $x0321...322 323---324# Don't sink w19 as %bb.2 has multiple predecessors.325# CHECK-LABEL: name: donotsinkcopy4326# CHECK-LABEL: bb.0:327# CHECK: renamable $w19 = COPY $w0328name: donotsinkcopy4329tracksRegLiveness: true330body: |331  bb.0:332    liveins: $w0, $w1333    $w1 = SUBSWri $w1, 1, 0, implicit-def $nzcv334    renamable $w19 = COPY $w0335    Bcc 11, %bb.2, implicit $nzcv336    B %bb.1337 338  bb.1:339    liveins: $w0340    $w19 = COPY $w0341    B %bb.2342 343  bb.2:344    liveins: $w0, $w19345    $w0 = ADDWrr $w0, $w19346    RET $x0347...348 349 350# Don't sink w19 after sinking w20.351# CHECK-LABEL: name: donotsinkcopy5352# CHECK-LABEL: bb.0:353# CHECK: renamable $w19 = COPY $w0354# CHECK-LABEL: bb.2:355# CHECK: liveins: $w0, $w19356# CHECK: renamable $w20 = COPY $w19357name: donotsinkcopy5358tracksRegLiveness: true359body: |360  bb.0:361    liveins: $w0, $w1362    $w1 = SUBSWri $w1, 1, 0, implicit-def $nzcv363    renamable $w19 = COPY $w0364    renamable $w20 = COPY $w19365    Bcc 11, %bb.2, implicit $nzcv366 367  bb.1:368    liveins: $w19369    $w0 = COPY $w19370    RET $x0371 372  bb.2:373    liveins: $w0, $w20374    $w0 = ADDWrr killed $w0, $w20375    RET $x0376...377 378---379# Don't sink w19 as x19 is live-in in %bb.2.380# CHECK-LABEL: name: donotsinkcopy6381# CHECK-LABEL: bb.0:382name: donotsinkcopy6383tracksRegLiveness: true384body: |385  bb.0:386    liveins: $x0, $w1387    $w1 = SUBSWri $w1, 1, 0, implicit-def $nzcv388    renamable $x19 = COPY $x0389    Bcc 11, %bb.2, implicit $nzcv390    B %bb.1391 392  bb.1:393    liveins: $w19394    $w0 = COPY $w19395    RET $x0396 397  bb.2:398    liveins: $x0, $x19399    $x0 = ADDXrr $x0, $x19400    RET $x0401...402