brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · 2c5a702 Raw
104 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=aarch64 -run-pass machinelicm -verify-machineinstrs -o - %s | FileCheck %s3# RUN: llc -mtriple=aarch64 -passes machinelicm -o - %s | FileCheck %s4 5---6name: unsafe_to_move7tracksRegLiveness: true8body: |9  ; CHECK-LABEL: name: unsafe_to_move10  ; CHECK: bb.0:11  ; CHECK-NEXT:   successors: %bb.1(0x80000000)12  ; CHECK-NEXT:   liveins: $x013  ; CHECK-NEXT: {{  $}}14  ; CHECK-NEXT:   $x16 = COPY killed $x015  ; CHECK-NEXT:   B %bb.116  ; CHECK-NEXT: {{  $}}17  ; CHECK-NEXT: bb.1:18  ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)19  ; CHECK-NEXT:   liveins: $x1620  ; CHECK-NEXT: {{  $}}21  ; CHECK-NEXT:   $x1 = COPY killed $x1622  ; CHECK-NEXT:   $x2 = MOVi64imm 1024, implicit-def dead $x1623  ; CHECK-NEXT:   $x16 = LDRXroX killed $x1, killed $x2, 0, 024  ; CHECK-NEXT:   $xzr = SUBSXri $x16, 0, 0, implicit-def $nzcv25  ; CHECK-NEXT:   Bcc 1, %bb.1, implicit $nzcv26  ; CHECK-NEXT:   B %bb.227  ; CHECK-NEXT: {{  $}}28  ; CHECK-NEXT: bb.2:29  ; CHECK-NEXT:   liveins: $x130  ; CHECK-NEXT: {{  $}}31  ; CHECK-NEXT:   $x0 = COPY killed $x132  ; CHECK-NEXT:   RET_ReallyLR33  bb.0:34    liveins: $x035    $x16 = COPY killed $x036    B %bb.137 38  bb.1:39    liveins: $x1640    $x1 = COPY killed $x1641    /* MOVi64imm below mimics a pseudo instruction that doesn't have any */42    /* unmodelled side effects, but uses x16 as a scratch register.      */43    $x2 = MOVi64imm 1024, implicit-def dead $x1644    $x16 = LDRXroX killed $x1, killed $x2, 0, 045    $xzr = SUBSXri $x16, 0, 0, implicit-def $nzcv46    Bcc 1, %bb.1, implicit $nzcv47    B %bb.248 49  bb.2:50    liveins: $x151    $x0 = COPY killed $x152    RET_ReallyLR53...54 55---56name: dead_implicit_def57tracksRegLiveness: true58body: |59  ; CHECK-LABEL: name: dead_implicit_def60  ; CHECK: bb.0:61  ; CHECK-NEXT:   successors: %bb.1(0x80000000)62  ; CHECK-NEXT:   liveins: $x063  ; CHECK-NEXT: {{  $}}64  ; CHECK-NEXT:   $x12 = COPY killed $x065  ; CHECK-NEXT:   $x2 = MOVi64imm 1024, implicit-def dead $x1666  ; CHECK-NEXT:   B %bb.167  ; CHECK-NEXT: {{  $}}68  ; CHECK-NEXT: bb.1:69  ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)70  ; CHECK-NEXT:   liveins: $x12, $x271  ; CHECK-NEXT: {{  $}}72  ; CHECK-NEXT:   $x1 = COPY killed $x1273  ; CHECK-NEXT:   $x16 = LDRXroX killed $x1, $x2, 0, 074  ; CHECK-NEXT:   $xzr = SUBSXri $x16, 0, 0, implicit-def $nzcv75  ; CHECK-NEXT:   Bcc 1, %bb.1, implicit $nzcv76  ; CHECK-NEXT:   B %bb.277  ; CHECK-NEXT: {{  $}}78  ; CHECK-NEXT: bb.2:79  ; CHECK-NEXT:   liveins: $x180  ; CHECK-NEXT: {{  $}}81  ; CHECK-NEXT:   $x0 = COPY killed $x182  ; CHECK-NEXT:   RET_ReallyLR83  bb.0:84    liveins: $x085    $x12 = COPY killed $x086    B %bb.187 88  bb.1:89    liveins: $x1290    $x1 = COPY killed $x1291    /* MOVi64imm below mimics a pseudo instruction that doesn't have any */92    /* unmodelled side effects, but uses x16 as a scratch register.      */93    $x2 = MOVi64imm 1024, implicit-def dead $x1694    $x16 = LDRXroX killed $x1, killed $x2, 0, 095    $xzr = SUBSXri $x16, 0, 0, implicit-def $nzcv96    Bcc 1, %bb.1, implicit $nzcv97    B %bb.298 99  bb.2:100    liveins: $x1101    $x0 = COPY killed $x1102    RET_ReallyLR103...104