brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · 3e9e3bf Raw
126 lines · plain
1# RUN: llc -mtriple aarch64 -run-pass=early-tailduplication -verify-machineinstrs %s -o - 2>&1 | FileCheck %s2---3name:            pluto4tracksRegLiveness: true5body:             |6  ; This test checks that the COPY3 and COPY4 copies are correctly placed in the bb.5 block,7  ; instead of crashing.8 9  ; CHECK-LABEL: name: pluto10  ; CHECK: bb.0:11  ; CHECK:   successors: %bb.1(0x40000000), %bb.2(0x40000000)12  ; CHECK:   liveins: $x013  ; CHECK:   [[DEF:%[0-9]+]]:gpr32 = IMPLICIT_DEF14  ; CHECK:   [[DEF1:%[0-9]+]]:gpr32common = IMPLICIT_DEF15  ; CHECK:   [[DEF2:%[0-9]+]]:gpr64 = IMPLICIT_DEF16  ; CHECK:   [[DEF3:%[0-9]+]]:gpr64common = IMPLICIT_DEF17  ; CHECK:   [[MOVi32imm:%[0-9]+]]:gpr32 = MOVi32imm 118  ; CHECK:   [[FMOVD0_:%[0-9]+]]:fpr64 = FMOVD019  ; CHECK:   TBNZW [[DEF]], 0, %bb.120  ; CHECK:   B %bb.221  ; CHECK: bb.1:22  ; CHECK:   successors: %bb.9(0x80000000)23  ; CHECK:   [[LDRXui:%[0-9]+]]:gpr64 = LDRXui [[DEF3]], 0 :: (load (s64) from `ptr undef`)24  ; CHECK:   B %bb.925  ; CHECK: bb.2:26  ; CHECK:   successors: %bb.3(0x40000000), %bb.4(0x40000000)27  ; CHECK:   $wzr = SUBSWri [[DEF1]], 19, 0, implicit-def $nzcv28  ; CHECK:   [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr $wzr, $wzr, 1, implicit $nzcv29  ; CHECK:   TBNZW [[CSINCWr]], 0, %bb.330  ; CHECK:   B %bb.431  ; CHECK: bb.3:32  ; CHECK:   successors: %bb.9(0x80000000)33  ; CHECK:   [[SCVTFUXDri:%[0-9]+]]:fpr64 = SCVTFUXDri [[DEF2]], implicit $fpcr34  ; CHECK:   [[COPY:%[0-9]+]]:gpr64 = COPY [[SCVTFUXDri]]35  ; CHECK:   [[COPY1:%[0-9]+]]:fpr64 = COPY [[SCVTFUXDri]]36  ; CHECK:   B %bb.937  ; CHECK: bb.4:38  ; CHECK:   successors: %bb.5(0x40000000), %bb.8(0x40000000)39  ; CHECK:   TBNZW [[DEF]], 0, %bb.540  ; CHECK:   B %bb.841  ; CHECK: bb.5:42  ; CHECK:   successors: %bb.9(0x80000000)43  ; CHECK:   [[COPY2:%[0-9]+]]:fpr64 = COPY [[DEF2]]44  ; CHECK:   [[COPY3:%[0-9]+]]:gpr64 = COPY [[COPY2]]45  ; CHECK:   [[COPY4:%[0-9]+]]:fpr64 = COPY [[DEF2]]46  ; CHECK:   B %bb.947  ; CHECK: bb.8:48  ; CHECK:   successors: %bb.9(0x80000000)49  ; CHECK: bb.9:50  ; CHECK:   [[PHI:%[0-9]+]]:gpr64 = PHI [[LDRXui]], %bb.1, [[FMOVD0_]], %bb.8, [[COPY]], %bb.3, [[COPY3]], %bb.551  ; CHECK:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp52  ; CHECK:   $d0 = COPY [[PHI]]53  ; CHECK:   BL @pluto, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $d0, implicit-def $d054  ; CHECK:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp55  ; CHECK:   $w0 = COPY [[MOVi32imm]]56  ; CHECK:   RET_ReallyLR implicit $w057 58  bb.1:59    successors: %bb.2(0x40000000), %bb.3(0x40000000)60    liveins: $x061 62    %1:gpr32 = IMPLICIT_DEF63    %2:gpr32common = IMPLICIT_DEF64    %5:gpr64 = IMPLICIT_DEF65    %9:gpr64common = IMPLICIT_DEF66    %13:gpr32 = MOVi32imm 167    %14:fpr64 = FMOVD068    TBNZW %1, 0, %bb.269    B %bb.370 71  bb.2:72    successors: %bb.8(0x80000000)73 74    %8:gpr64 = LDRXui %9, 0 :: (load (s64) from `ptr undef`)75    B %bb.876 77  bb.3:78    successors: %bb.4(0x40000000), %bb.5(0x40000000)79 80    $wzr = SUBSWri %2, 19, 0, implicit-def $nzcv81    %15:gpr32 = CSINCWr $wzr, $wzr, 1, implicit $nzcv82    TBNZW %15, 0, %bb.483    B %bb.584 85  bb.4:86    successors: %bb.7(0x80000000)87 88    %6:fpr64 = SCVTFUXDri %5, implicit $fpcr89    B %bb.790 91  bb.5:92    successors: %bb.6(0x40000000), %bb.9(0x40000000)93 94    TBNZW %1, 0, %bb.695    B %bb.996 97  bb.6:98    successors: %bb.7(0x80000000)99 100 101  bb.7:102    successors: %bb.8(0x80000000)103 104    %7:fpr64 = PHI %6, %bb.4, %5, %bb.6105 106  bb.8:107    successors: %bb.10(0x80000000)108 109    %10:gpr64 = PHI %8, %bb.2, %7, %bb.7110    B %bb.10111 112  bb.9:113    successors: %bb.10(0x80000000)114 115 116  bb.10:117    %11:gpr64 = PHI %10, %bb.8, %14, %bb.9118    ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp119    $d0 = COPY %11120    BL @pluto, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $d0, implicit-def $d0121    ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp122    $w0 = COPY %13123    RET_ReallyLR implicit $w0124 125...126