207 lines · plain
1# RUN: llc -mtriple=ppc64-- -run-pass scavenger-test -verify-machineinstrs -o - %s | FileCheck %s2---3# CHECK-LABEL: name: noscav04name: noscav05tracksRegLiveness: true6body: |7 bb.0:8 ; CHECK: [[REG0:\$r[0-9]+]] = LI 429 ; CHECK-NEXT: NOP implicit killed [[REG0]]10 %0 : gprc = LI 4211 NOP implicit %012 13 ; CHECK: [[REG1:\$r[0-9]+]] = LI 4214 ; CHECK-NEXT: NOP15 ; CHECK-NEXT: NOP implicit [[REG1]]16 ; CHECK-NEXT: NOP17 ; CHECK-NEXT: NOP implicit killed [[REG1]]18 %1 : gprc = LI 4219 NOP20 NOP implicit %121 NOP22 NOP implicit %123 24 ; CHECK: [[REG2:\$r[0-9]+]] = LI 4225 ; CHECK-NEXT: NOP implicit [[REG2]]26 %2 : gprc = LI 4227 NOP implicit %228 29 $x0 = IMPLICIT_DEF30 $x1 = IMPLICIT_DEF31 $x2 = IMPLICIT_DEF32 $x3 = IMPLICIT_DEF33 $x4 = IMPLICIT_DEF34 $x27 = IMPLICIT_DEF35 $x28 = IMPLICIT_DEF36 $x29 = IMPLICIT_DEF37 $x30 = IMPLICIT_DEF38 39 ; CHECK-NOT: $x0 = LI 4240 ; CHECK-NOT: $x1 = LI 4241 ; CHECK-NOT: $x2 = LI 4242 ; CHECK-NOT: $x3 = LI 4243 ; CHECK-NOT: $x4 = LI 4244 ; CHECK-NOT: $x5 = LI 4245 ; CHECK-NOT: $x27 = LI 4246 ; CHECK-NOT: $x28 = LI 4247 ; CHECK-NOT: $x29 = LI 4248 ; CHECK-NOT: $x30 = LI 4249 ; CHECK: [[REG3:\$r[0-9]+]] = LI 4250 ; CHECK-NEXT: $x5 = IMPLICIT_DEF51 ; CHECK-NEXT: NOP implicit killed [[REG2]]52 ; CHECK-NEXT: NOP implicit killed [[REG3]]53 %3 : gprc = LI 4254 $x5 = IMPLICIT_DEF55 NOP implicit %256 NOP implicit %357 58 NOP implicit $x059 NOP implicit $x160 NOP implicit $x261 NOP implicit $x362 NOP implicit $x463 NOP implicit $x564 NOP implicit $x2765 NOP implicit $x2866 NOP implicit $x2967 NOP implicit $x3068...69---70# CHECK-LABEL: name: scav071name: scav072tracksRegLiveness: true73stack:74 # variable-sized object should be a reason to reserve an emergency spillslot75 # in the RegScavenger76 - { id: 0, type: variable-sized, offset: -32, alignment: 1 }77body: |78 bb.0:79 $x0 = IMPLICIT_DEF80 $x1 = IMPLICIT_DEF81 $x2 = IMPLICIT_DEF82 $x3 = IMPLICIT_DEF83 $x4 = IMPLICIT_DEF84 $x5 = IMPLICIT_DEF85 $x6 = IMPLICIT_DEF86 $x7 = IMPLICIT_DEF87 $x8 = IMPLICIT_DEF88 $x9 = IMPLICIT_DEF89 $x10 = IMPLICIT_DEF90 $x11 = IMPLICIT_DEF91 $x12 = IMPLICIT_DEF92 $x13 = IMPLICIT_DEF93 $x14 = IMPLICIT_DEF94 $x15 = IMPLICIT_DEF95 $x16 = IMPLICIT_DEF96 $x17 = IMPLICIT_DEF97 $x18 = IMPLICIT_DEF98 $x19 = IMPLICIT_DEF99 $x20 = IMPLICIT_DEF100 $x21 = IMPLICIT_DEF101 $x22 = IMPLICIT_DEF102 $x23 = IMPLICIT_DEF103 $x24 = IMPLICIT_DEF104 $x25 = IMPLICIT_DEF105 $x26 = IMPLICIT_DEF106 $x27 = IMPLICIT_DEF107 $x28 = IMPLICIT_DEF108 $x29 = IMPLICIT_DEF109 $x30 = IMPLICIT_DEF110 111 ; CHECK: STD killed [[SPILLEDREG:\$x[0-9]+]]112 ; CHECK: [[SPILLEDREG]] = LI8 42113 ; CHECK: NOP implicit killed [[SPILLEDREG]]114 ; CHECK: [[SPILLEDREG]] = LD115 %0 : g8rc = LI8 42116 NOP implicit %0117 118 NOP implicit $x0119 NOP implicit $x1120 NOP implicit $x2121 NOP implicit $x3122 NOP implicit $x4123 NOP implicit $x5124 NOP implicit $x6125 NOP implicit $x7126 NOP implicit $x8127 NOP implicit $x9128 NOP implicit $x10129 NOP implicit $x11130 NOP implicit $x12131 NOP implicit $x13132 NOP implicit $x14133 NOP implicit $x15134 NOP implicit $x16135 NOP implicit $x17136 NOP implicit $x18137 NOP implicit $x19138 NOP implicit $x20139 NOP implicit $x21140 NOP implicit $x22141 NOP implicit $x23142 NOP implicit $x24143 NOP implicit $x25144 NOP implicit $x26145 NOP implicit $x27146 NOP implicit $x28147 NOP implicit $x29148 NOP implicit $x30149...150---151# Check for bug where we would refuse to spill before the first instruction in a152# block.153# CHECK-LABEL: name: spill_at_begin154# CHECK: bb.0:155# CHECK: liveins:156# CHECK: STD killed [[REG:\$x[0-9]+]]{{.*}}(store (s64) into %stack.{{[0-9]+}})157# CHECK: [[REG]] = LIS8 0158# CHECK: [[REG]] = ORI8 killed [[REG]], 48159# CHECK: NOP implicit killed [[REG]]160# CHECK: [[REG]] = LD{{.*}}(load (s64) from %stack.{{[0-9]+}})161name: spill_at_begin162tracksRegLiveness: true163stack:164 # variable-sized object should be a reason to reserve an emergency spillslot165 # in the RegScavenger166 - { id: 0, type: variable-sized, offset: -32, alignment: 1 }167body: |168 bb.0:169 liveins: $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x16, $x17, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $x29, $x30, $x31170 %0 : g8rc = LIS8 0171 %1 : g8rc = ORI8 %0, 48172 NOP implicit %1173 174 NOP implicit $x0175 NOP implicit $x1176 NOP implicit $x2177 NOP implicit $x3178 NOP implicit $x4179 NOP implicit $x5180 NOP implicit $x6181 NOP implicit $x7182 NOP implicit $x8183 NOP implicit $x9184 NOP implicit $x10185 NOP implicit $x11186 NOP implicit $x12187 NOP implicit $x13188 NOP implicit $x14189 NOP implicit $x15190 NOP implicit $x16191 NOP implicit $x17192 NOP implicit $x18193 NOP implicit $x19194 NOP implicit $x20195 NOP implicit $x21196 NOP implicit $x22197 NOP implicit $x23198 NOP implicit $x24199 NOP implicit $x25200 NOP implicit $x26201 NOP implicit $x27202 NOP implicit $x28203 NOP implicit $x29204 NOP implicit $x30205 NOP implicit $x31206...207