brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.1 KiB · 37a7eb0 Raw
568 lines · plain
1# RUN: llc -mtriple=aarch64--linux-gnu -run-pass=aarch64-copyelim %s -verify-machineinstrs -o - | FileCheck %s2---3# CHECK-LABEL: name: test14# CHECK: ANDSWri $w0, 1, implicit-def $nzcv5# CHECK: bb.1:6# CHECK-NOT: COPY $wzr7name:            test18tracksRegLiveness: true9body:             |10  bb.0.entry:11    liveins: $w0, $x1, $x212 13    $w0 = ANDSWri $w0, 1, implicit-def $nzcv14    STRWui killed $w0, killed $x1, 015    Bcc 1, %bb.2, implicit killed $nzcv16    B %bb.117 18  bb.1:19    liveins: $x220 21    $w0 = COPY $wzr22    STRWui killed $w0, killed $x2, 023 24  bb.2:25    RET_ReallyLR26...27# CHECK-LABEL: name: test228# CHECK: ANDSXri $x0, 1, implicit-def $nzcv29# CHECK: bb.1:30# CHECK-NOT: COPY $xzr31name:            test232tracksRegLiveness: true33body:             |34  bb.0.entry:35    liveins: $x0, $x1, $x236 37    $x0 = ANDSXri $x0, 1, implicit-def $nzcv38    STRXui killed $x0, killed $x1, 039    Bcc 1, %bb.2, implicit killed $nzcv40    B %bb.141 42  bb.1:43    liveins: $x244 45    $x0 = COPY $xzr46    STRXui killed $x0, killed $x2, 047 48  bb.2:49    RET_ReallyLR50...51# CHECK-LABEL: name: test352# CHECK: ADDSWri $w0, 1, 0, implicit-def $nzcv53# CHECK: bb.1:54# CHECK-NOT: COPY $wzr55name:            test356tracksRegLiveness: true57body:             |58  bb.0.entry:59    liveins: $w0, $x1, $x260 61    $w0 = ADDSWri $w0, 1, 0, implicit-def $nzcv62    STRWui killed $w0, killed $x1, 063    Bcc 1, %bb.2, implicit killed $nzcv64    B %bb.165 66  bb.1:67    liveins: $x268 69    $w0 = COPY $wzr70    STRWui killed $w0, killed $x2, 071 72  bb.2:73    RET_ReallyLR74...75# CHECK-LABEL: name: test476# CHECK: ADDSXri $x0, 1, 0, implicit-def $nzcv77# CHECK: bb.1:78# CHECK-NOT: COPY $xzr79name:            test480tracksRegLiveness: true81body:             |82  bb.0.entry:83    liveins: $x0, $x1, $x284 85    $x0 = ADDSXri $x0, 1, 0, implicit-def $nzcv86    STRXui killed $x0, killed $x1, 087    Bcc 1, %bb.2, implicit killed $nzcv88    B %bb.189 90  bb.1:91    liveins: $x292 93    $x0 = COPY $xzr94    STRXui killed $x0, killed $x2, 095 96  bb.2:97    RET_ReallyLR98...99# CHECK-LABEL: name: test5100# CHECK: SUBSWri $w0, 1, 0, implicit-def $nzcv101# CHECK: bb.1:102# CHECK-NOT: COPY $wzr103name:            test5104tracksRegLiveness: true105body:             |106  bb.0.entry:107    liveins: $w0, $x1, $x2108 109    $w0 = SUBSWri $w0, 1, 0, implicit-def $nzcv110    STRWui killed $w0, killed $x1, 0111    Bcc 1, %bb.2, implicit killed $nzcv112    B %bb.1113 114  bb.1:115    liveins: $x2116 117    $w0 = COPY $wzr118    STRWui killed $w0, killed $x2, 0119 120  bb.2:121    RET_ReallyLR122...123# CHECK-LABEL: name: test6124# CHECK: SUBSXri $x0, 1, 0, implicit-def $nzcv125# CHECK: bb.1:126# CHECK-NOT: COPY $xzr127name:            test6128tracksRegLiveness: true129body:             |130  bb.0.entry:131    liveins: $x0, $x1, $x2132 133    $x0 = SUBSXri $x0, 1, 0, implicit-def $nzcv134    STRXui killed $x0, killed $x1, 0135    Bcc 1, %bb.2, implicit killed $nzcv136    B %bb.1137 138  bb.1:139    liveins: $x2140 141    $x0 = COPY $xzr142    STRXui killed $x0, killed $x2, 0143 144  bb.2:145    RET_ReallyLR146...147# CHECK-LABEL: name: test7148# CHECK: ADDSWrr $w0, $w1, implicit-def $nzcv149# CHECK: bb.1:150# CHECK-NOT: COPY $wzr151name:            test7152tracksRegLiveness: true153body:             |154  bb.0.entry:155    liveins: $w0, $w1, $x2, $x3156 157    $w0 = ADDSWrr $w0, $w1, implicit-def $nzcv158    STRWui killed $w0, killed $x2, 0159    Bcc 1, %bb.2, implicit killed $nzcv160    B %bb.1161 162  bb.1:163    liveins: $x3164 165    $w0 = COPY $wzr166    STRWui killed $w0, killed $x3, 0167 168  bb.2:169    RET_ReallyLR170...171# CHECK-LABEL: name: test8172# CHECK: ADDSXrr $x0, $x1, implicit-def $nzcv173# CHECK: bb.1:174# CHECK-NOT: COPY $xzr175name:            test8176tracksRegLiveness: true177body:             |178  bb.0.entry:179    liveins: $x0, $x1, $x2, $x3180 181    $x0 = ADDSXrr $x0, $x1, implicit-def $nzcv182    STRXui killed $x0, killed $x2, 0183    Bcc 1, %bb.2, implicit killed $nzcv184    B %bb.1185 186  bb.1:187    liveins: $x3188 189    $x0 = COPY $xzr190    STRXui killed $x0, killed $x3, 0191 192  bb.2:193    RET_ReallyLR194...195# CHECK-LABEL: name: test9196# CHECK: ANDSWrr $w0, $w1, implicit-def $nzcv197# CHECK: bb.1:198# CHECK-NOT: COPY $wzr199name:            test9200tracksRegLiveness: true201body:             |202  bb.0.entry:203    liveins: $w0, $w1, $x2, $x3204 205    $w0 = ANDSWrr $w0, $w1, implicit-def $nzcv206    STRWui killed $w0, killed $x2, 0207    Bcc 1, %bb.2, implicit killed $nzcv208    B %bb.1209 210  bb.1:211    liveins: $x3212 213    $w0 = COPY $wzr214    STRWui killed $w0, killed $x3, 0215 216  bb.2:217    RET_ReallyLR218...219# CHECK-LABEL: name: test10220# CHECK: ANDSXrr $x0, $x1, implicit-def $nzcv221# CHECK: bb.1:222# CHECK-NOT: COPY $xzr223name:            test10224tracksRegLiveness: true225body:             |226  bb.0.entry:227    liveins: $x0, $x1, $x2, $x3228 229    $x0 = ANDSXrr $x0, $x1, implicit-def $nzcv230    STRXui killed $x0, killed $x2, 0231    Bcc 1, %bb.2, implicit killed $nzcv232    B %bb.1233 234  bb.1:235    liveins: $x3236 237    $x0 = COPY $xzr238    STRXui killed $x0, killed $x3, 0239 240  bb.2:241    RET_ReallyLR242...243# CHECK-LABEL: name: test11244# CHECK: BICSWrr $w0, $w1, implicit-def $nzcv245# CHECK: bb.1:246# CHECK-NOT: COPY $wzr247name:            test11248tracksRegLiveness: true249body:             |250  bb.0.entry:251    liveins: $w0, $w1, $x2, $x3252 253    $w0 = BICSWrr $w0, $w1, implicit-def $nzcv254    STRWui killed $w0, killed $x2, 0255    Bcc 1, %bb.2, implicit killed $nzcv256    B %bb.1257 258  bb.1:259    liveins: $x3260 261    $w0 = COPY $wzr262    STRWui killed $w0, killed $x3, 0263 264  bb.2:265    RET_ReallyLR266...267# CHECK-LABEL: name: test12268# CHECK: BICSXrr $x0, $x1, implicit-def $nzcv269# CHECK: bb.1:270# CHECK-NOT: COPY $xzr271name:            test12272tracksRegLiveness: true273body:             |274  bb.0.entry:275    liveins: $x0, $x1, $x2, $x3276 277    $x0 = BICSXrr $x0, $x1, implicit-def $nzcv278    STRXui killed $x0, killed $x2, 0279    Bcc 1, %bb.2, implicit killed $nzcv280    B %bb.1281 282  bb.1:283    liveins: $x3284 285    $x0 = COPY $xzr286    STRXui killed $x0, killed $x3, 0287 288  bb.2:289    RET_ReallyLR290...291# CHECK-LABEL: name: test13292# CHECK: SUBSWrr $w0, $w1, implicit-def $nzcv293# CHECK: bb.1:294# CHECK-NOT: COPY $wzr295name:            test13296tracksRegLiveness: true297body:             |298  bb.0.entry:299    liveins: $w0, $w1, $x2, $x3300 301    $w0 = SUBSWrr $w0, $w1, implicit-def $nzcv302    STRWui killed $w0, killed $x2, 0303    Bcc 1, %bb.2, implicit killed $nzcv304    B %bb.1305 306  bb.1:307    liveins: $x3308 309    $w0 = COPY $wzr310    STRWui killed $w0, killed $x3, 0311 312  bb.2:313    RET_ReallyLR314...315# CHECK-LABEL: name: test14316# CHECK: SUBSXrr $x0, $x1, implicit-def $nzcv317# CHECK: bb.1:318# CHECK-NOT: COPY $xzr319name:            test14320tracksRegLiveness: true321body:             |322  bb.0.entry:323    liveins: $x0, $x1, $x2, $x3324 325    $x0 = SUBSXrr $x0, $x1, implicit-def $nzcv326    STRXui killed $x0, killed $x2, 0327    Bcc 1, %bb.2, implicit killed $nzcv328    B %bb.1329 330  bb.1:331    liveins: $x3332 333    $x0 = COPY $xzr334    STRXui killed $x0, killed $x3, 0335 336  bb.2:337    RET_ReallyLR338...339# CHECK-LABEL: name: test15340# CHECK: ADDSWrs $w0, $w1, 0, implicit-def $nzcv341# CHECK: bb.1:342# CHECK-NOT: COPY $wzr343name:            test15344tracksRegLiveness: true345body:             |346  bb.0.entry:347    liveins: $w0, $w1, $x2, $x3348 349    $w0 = ADDSWrs $w0, $w1, 0, implicit-def $nzcv350    STRWui killed $w0, killed $x2, 0351    Bcc 1, %bb.2, implicit killed $nzcv352    B %bb.1353 354  bb.1:355    liveins: $x3356 357    $w0 = COPY $wzr358    STRWui killed $w0, killed $x3, 0359 360  bb.2:361    RET_ReallyLR362...363# CHECK-LABEL: name: test16364# CHECK: ADDSXrs $x0, $x1, 0, implicit-def $nzcv365# CHECK: bb.1:366# CHECK-NOT: COPY $xzr367name:            test16368tracksRegLiveness: true369body:             |370  bb.0.entry:371    liveins: $x0, $x1, $x2, $x3372 373    $x0 = ADDSXrs $x0, $x1, 0, implicit-def $nzcv374    STRXui killed $x0, killed $x2, 0375    Bcc 1, %bb.2, implicit killed $nzcv376    B %bb.1377 378  bb.1:379    liveins: $x3380 381    $x0 = COPY $xzr382    STRXui killed $x0, killed $x3, 0383 384  bb.2:385    RET_ReallyLR386...387# CHECK-LABEL: name: test17388# CHECK: ANDSWrs $w0, $w1, 0, implicit-def $nzcv389# CHECK: bb.1:390# CHECK-NOT: COPY $wzr391name:            test17392tracksRegLiveness: true393body:             |394  bb.0.entry:395    liveins: $w0, $w1, $x2, $x3396 397    $w0 = ANDSWrs $w0, $w1, 0, implicit-def $nzcv398    STRWui killed $w0, killed $x2, 0399    Bcc 1, %bb.2, implicit killed $nzcv400    B %bb.1401 402  bb.1:403    liveins: $x3404 405    $w0 = COPY $wzr406    STRWui killed $w0, killed $x3, 0407 408  bb.2:409    RET_ReallyLR410...411# CHECK-LABEL: name: test18412# CHECK: ANDSXrs $x0, $x1, 0, implicit-def $nzcv413# CHECK: bb.1:414# CHECK-NOT: COPY $xzr415name:            test18416tracksRegLiveness: true417body:             |418  bb.0.entry:419    liveins: $x0, $x1, $x2, $x3420 421    $x0 = ANDSXrs $x0, $x1, 0, implicit-def $nzcv422    STRXui killed $x0, killed $x2, 0423    Bcc 1, %bb.2, implicit killed $nzcv424    B %bb.1425 426  bb.1:427    liveins: $x3428 429    $x0 = COPY $xzr430    STRXui killed $x0, killed $x3, 0431 432  bb.2:433    RET_ReallyLR434...435# CHECK-LABEL: name: test19436# CHECK: BICSWrs $w0, $w1, 0, implicit-def $nzcv437# CHECK: bb.1:438# CHECK-NOT: COPY $wzr439name:            test19440tracksRegLiveness: true441body:             |442  bb.0.entry:443    liveins: $w0, $w1, $x2, $x3444 445    $w0 = BICSWrs $w0, $w1, 0, implicit-def $nzcv446    STRWui killed $w0, killed $x2, 0447    Bcc 1, %bb.2, implicit killed $nzcv448    B %bb.1449 450  bb.1:451    liveins: $x3452 453    $w0 = COPY $wzr454    STRWui killed $w0, killed $x3, 0455 456  bb.2:457    RET_ReallyLR458...459# Unicorn test - we can remove a redundant copy and a redundant mov460# CHECK-LABEL: name: test20461# CHECK: SUBSWri $w1, 1, 0, implicit-def $nzcv462# CHECK: bb.1:463# CHECK-NOT: $w0 = COPY $wzr464# CHECK-NOT: $w1 = MOVi32imm 1465name:            test20466tracksRegLiveness: true467body:             |468  bb.0.entry:469    liveins: $w1, $x2470 471    $w0 = SUBSWri $w1, 1, 0, implicit-def $nzcv472    Bcc 1, %bb.2, implicit killed $nzcv473    B %bb.1474 475  bb.1:476    liveins: $x2477 478    $w0 = COPY $wzr479    $w1 = MOVi32imm 1480    STRWui killed $w0, $x2, 0481    STRWui killed $w1, killed $x2, 1482 483  bb.2:484    RET_ReallyLR485 486...487# Negative test - MOVi32imm clobbers $w0488# CHECK-LABEL: name: test21489# CHECK: ANDSWri $w0, 1, implicit-def $nzcv490# CHECK: bb.1:491# CHECK: $w0 = COPY $wzr492name:            test21493tracksRegLiveness: true494body:             |495  bb.0.entry:496    liveins: $w0, $x1, $x2497 498    $w0 = ANDSWri $w0, 1, implicit-def $nzcv499    STRWui killed $w0, $x1, 0500    $w0 = MOVi32imm -1501    STRWui killed $w0, killed $x1, 1502    Bcc 1, %bb.2, implicit killed $nzcv503    B %bb.1504 505  bb.1:506    liveins: $x2507 508    $w0 = COPY $wzr509    STRWui killed $w0, killed $x2, 0510 511  bb.2:512    RET_ReallyLR513...514# Negative test - SUBSXri self-clobbers x0, so MOVi64imm can't be removed515# CHECK-LABEL: name: test22516# CHECK: SUBSXri $x0, 1, 0, implicit-def $nzcv517# CHECK: bb.1:518# CHECK: $x0 = MOVi64imm 1519name:            test22520tracksRegLiveness: true521body:             |522  bb.0.entry:523    liveins: $x0, $x1, $x2524 525    $x0 = SUBSXri $x0, 1, 0, implicit-def $nzcv526    STRXui killed $x0, killed $x1, 0527    Bcc 1, %bb.2, implicit killed $nzcv528    B %bb.1529 530  bb.1:531    liveins: $x2532 533    $x0 = MOVi64imm 1534    STRXui killed $x0, killed $x2, 0535 536  bb.2:537    RET_ReallyLR538...539# Negative test - bb.1 has multiple preds540# CHECK-LABEL: name: test23541# CHECK: ADDSWri $w0, 1, 0, implicit-def $nzcv542# CHECK: bb.1:543# CHECK: COPY $wzr544name:            test23545tracksRegLiveness: true546body:             |547  bb.0.entry:548    liveins: $w0, $x1, $x2549 550    $w0 = ADDSWri $w0, 1, 0, implicit-def $nzcv551    STRWui killed $w0, killed $x1, 0552    Bcc 1, %bb.2, implicit killed $nzcv553    B %bb.1554 555  bb.3:556    liveins: $x2557 558    B %bb.1559 560  bb.1:561    liveins: $x2562 563    $w0 = COPY $wzr564    STRWui killed $w0, killed $x2, 0565 566  bb.2:567    RET_ReallyLR568