130 lines · plain
1# RUN: llc -mtriple=aarch64 -o /dev/null -run-pass=register-coalescer -aarch64-enable-subreg-liveness-tracking -debug-only=regalloc %s 2>&1 | FileCheck %s --check-prefix=CHECK-DBG2# RUN: llc -mtriple=aarch64 -verify-machineinstrs -o - -run-pass=register-coalescer -aarch64-enable-subreg-liveness-tracking %s | FileCheck %s --check-prefix=CHECK3# REQUIRES: asserts4 5# CHECK-DBG: ********** REGISTER COALESCER **********6# CHECK-DBG: ********** Function: test7# CHECK-DBG: ********** JOINING INTERVALS ***********8# CHECK-DBG: ********** INTERVALS **********9# CHECK-DBG: %0 [16r,32r:0) 0@16r weight:0.000000e+0010# CHECK-DBG: %3 [48r,112r:0) 0@48r L0000000000000040 [48r,112r:0) 0@48r weight:0.000000e+0011# CHECK-DBG: %4 [80r,112e:1)[112e,112d:0) 0@112e 1@80r L0000000000000080 [112e,112d:0) 0@112e L0000000000000040 [80r,112e:1)[112e,112d:0) 0@112e 1@80r weight:0.000000e+0012# CHECK-DBG: %5 [32r,112r:1)[112r,112d:0) 0@112r 1@32r weight:0.000000e+0013---14name: test15tracksRegLiveness: true16fixedStack: []17stack:18 - { id: 0, name: '', type: default, offset: 0, size: 65, alignment: 16,19 stack-id: default }20body: |21 bb.0.entry:22 ; CHECK-LABEL: name: test23 ; CHECK: [[ADDXri:%[0-9]+]]:gpr64sp = ADDXri %stack.0, 0, 024 ; CHECK-NEXT: [[ADDXri1:%[0-9]+]]:gpr64common = nuw ADDXri [[ADDXri]], 64, 025 ; CHECK-NEXT: undef [[MOVi32imm:%[0-9]+]].sub_32:gpr64 = MOVi32imm 6426 ; CHECK-NEXT: undef [[MOVi32imm1:%[0-9]+]].sub_32:gpr64 = MOVi32imm 6427 ; CHECK-NEXT: dead [[ADDXri1]]:gpr64common, dead early-clobber [[MOVi32imm1]]:gpr64 = MOPSMemorySetPseudo [[ADDXri1]], [[MOVi32imm1]], [[MOVi32imm]], implicit-def dead $nzcv28 ; CHECK-NEXT: RET_ReallyLR29 %1:gpr64sp = ADDXri %stack.0, 0, 030 %2:gpr64common = nuw ADDXri killed %1, 64, 031 %3:gpr32 = MOVi32imm 6432 %4:gpr64 = SUBREG_TO_REG 0, killed %3, %subreg.sub_3233 %6:gpr64 = COPY %434 %5:gpr64common = COPY killed %235 dead %5:gpr64common, dead early-clobber %6:gpr64 = MOPSMemorySetPseudo %5, %6, %4, implicit-def dead $nzcv36 RET_ReallyLR37 38...39# CHECK-DBG: ********** REGISTER COALESCER **********40# CHECK-DBG: ********** Function: reproducer41# CHECK-DBG: ********** JOINING INTERVALS ***********42# CHECK-DBG: ********** INTERVALS **********43# CHECK-DBG: %1 [32r,48B:2)[48B,320r:0)[320r,368B:1) 0@48B-phi 1@320r 2@32r44# CHECK-DBG-SAME: weight:0.000000e+0045# CHECK-DBG: %3 [80r,160B:2)[240r,272B:1)[288r,304B:0)[304B,320r:3) 0@288r 1@240r 2@80r 3@304B-phi46# CHECK-DBG-SAME: L0000000000000080 [288r,304B:0)[304B,320r:3) 0@288r 1@x 2@x 3@304B-phi47# CHECK-DBG-SAME: L0000000000000040 [80r,160B:2)[240r,272B:1)[288r,304B:0)[304B,320r:3) 0@288r 1@240r 2@80r 3@304B-phi48# CHECK-DBG-SAME: weight:0.000000e+0049---50name: reproducer51tracksRegLiveness: true52body: |53 bb.0:54 %0:gpr32 = MOVi32imm 155 %1:gpr64 = IMPLICIT_DEF56 57 bb.1:58 59 bb.2:60 %3:gpr64all = SUBREG_TO_REG 0, %0, %subreg.sub_3261 62 bb.3:63 $nzcv = IMPLICIT_DEF64 %4:gpr64 = COPY killed %365 Bcc 1, %bb.7, implicit killed $nzcv66 67 bb.4:68 $nzcv = IMPLICIT_DEF69 Bcc 1, %bb.6, implicit killed $nzcv70 71 bb.5:72 %5:gpr64all = SUBREG_TO_REG 0, %0, %subreg.sub_3273 %4:gpr64 = COPY killed %574 B %bb.775 76 bb.6:77 %4:gpr64 = COPY $xzr78 79 bb.7:80 %7:gpr64 = ADDXrs killed %1, killed %4, 181 %1:gpr64 = COPY killed %782 B %bb.183 84...85# CHECK-DBG: ********** REGISTER COALESCER **********86# CHECK-DBG: ********** Function: reproducer287# CHECK-DBG: ********** JOINING INTERVALS ***********88# CHECK-DBG: ********** INTERVALS **********89# CHECK-DBG: %1 [32r,48B:2)[48B,304r:0)[304r,352B:1) 0@48B-phi 1@304r 2@32r90# CHECK-DBG-SAME: weight:0.000000e+0091# CHECK-DBG: %3 [80r,160B:2)[224r,256B:1)[272r,288B:0)[288B,304r:3) 0@272r 1@224r 2@80r 3@288B-phi92# CHECK-DBG-SAME: L0000000000000080 [224r,256B:1)[272r,288B:0)[288B,304r:3) 0@272r 1@224r 2@x 3@288B-phi93# CHECK-DBG-SAME: L0000000000000040 [80r,160B:2)[224r,256B:1)[272r,288B:0)[288B,304r:3) 0@272r 1@224r 2@80r 3@288B-phi94# CHECK-DBG-SAME: weight:0.000000e+0095---96name: reproducer297tracksRegLiveness: true98body: |99 bb.0:100 %0:gpr32 = MOVi32imm 1101 %1:gpr64 = IMPLICIT_DEF102 103 bb.1:104 105 bb.2:106 %3:gpr64all = SUBREG_TO_REG 0, %0, %subreg.sub_32107 108 bb.3:109 $nzcv = IMPLICIT_DEF110 %4:gpr64 = COPY killed %3111 Bcc 1, %bb.7, implicit killed $nzcv112 113 bb.4:114 $nzcv = IMPLICIT_DEF115 Bcc 1, %bb.6, implicit killed $nzcv116 117 bb.5:118 %4:gpr64 = IMPLICIT_DEF119 B %bb.7120 121 bb.6:122 %4:gpr64 = COPY $xzr123 124 bb.7:125 %5:gpr64 = ADDXrs killed %1, killed %4, 1126 %1:gpr64 = COPY killed %5127 B %bb.1128 129...130