| # RUN: llc -mtriple=ppc64-- -run-pass scavenger-test -verify-machineinstrs -o - %s | FileCheck %s | 
 | --- | 
 | # CHECK-LABEL: name: noscav0 | 
 | name: noscav0 | 
 | tracksRegLiveness: true | 
 | body: | | 
 |   bb.0: | 
 |     ; CHECK: [[REG0:\$r[0-9]+]] = LI 42 | 
 |     ; CHECK-NEXT: NOP implicit killed [[REG0]] | 
 |     %0 : gprc = LI 42 | 
 |     NOP implicit %0 | 
 |  | 
 |     ; CHECK: [[REG1:\$r[0-9]+]] = LI 42 | 
 |     ; CHECK-NEXT: NOP | 
 |     ; CHECK-NEXT: NOP implicit [[REG1]] | 
 |     ; CHECK-NEXT: NOP | 
 |     ; CHECK-NEXT: NOP implicit killed [[REG1]] | 
 |     %1 : gprc = LI 42 | 
 |     NOP | 
 |     NOP implicit %1 | 
 |     NOP | 
 |     NOP implicit %1 | 
 |  | 
 |     ; CHECK: [[REG2:\$r[0-9]+]] = LI 42 | 
 |     ; CHECK-NEXT: NOP implicit [[REG2]] | 
 |     %2 : gprc = LI 42 | 
 |     NOP implicit %2 | 
 |  | 
 |     $x0 = IMPLICIT_DEF | 
 |     $x1 = IMPLICIT_DEF | 
 |     $x2 = IMPLICIT_DEF | 
 |     $x3 = IMPLICIT_DEF | 
 |     $x4 = IMPLICIT_DEF | 
 |     $x27 = IMPLICIT_DEF | 
 |     $x28 = IMPLICIT_DEF | 
 |     $x29 = IMPLICIT_DEF | 
 |     $x30 = IMPLICIT_DEF | 
 |  | 
 |     ; CHECK-NOT: $x0 = LI 42 | 
 |     ; CHECK-NOT: $x1 = LI 42 | 
 |     ; CHECK-NOT: $x2 = LI 42 | 
 |     ; CHECK-NOT: $x3 = LI 42 | 
 |     ; CHECK-NOT: $x4 = LI 42 | 
 |     ; CHECK-NOT: $x5 = LI 42 | 
 |     ; CHECK-NOT: $x27 = LI 42 | 
 |     ; CHECK-NOT: $x28 = LI 42 | 
 |     ; CHECK-NOT: $x29 = LI 42 | 
 |     ; CHECK-NOT: $x30 = LI 42 | 
 |     ; CHECK: [[REG3:\$r[0-9]+]] = LI 42 | 
 |     ; CHECK-NEXT: $x5 = IMPLICIT_DEF | 
 |     ; CHECK-NEXT: NOP implicit killed [[REG2]] | 
 |     ; CHECK-NEXT: NOP implicit killed [[REG3]] | 
 |     %3 : gprc = LI 42 | 
 |     $x5 = IMPLICIT_DEF | 
 |     NOP implicit %2 | 
 |     NOP implicit %3 | 
 |  | 
 |     NOP implicit $x0 | 
 |     NOP implicit $x1 | 
 |     NOP implicit $x2 | 
 |     NOP implicit $x3 | 
 |     NOP implicit $x4 | 
 |     NOP implicit $x5 | 
 |     NOP implicit $x27 | 
 |     NOP implicit $x28 | 
 |     NOP implicit $x29 | 
 |     NOP implicit $x30 | 
 | ... | 
 | --- | 
 | # CHECK-LABEL: name: scav0 | 
 | name: scav0 | 
 | tracksRegLiveness: true | 
 | stack: | 
 |   # variable-sized object should be a reason to reserve an emergency spillslot | 
 |   # in the RegScavenger | 
 |   - { id: 0, type: variable-sized, offset: -32, alignment: 1 } | 
 | body: | | 
 |   bb.0: | 
 |     $x0 = IMPLICIT_DEF | 
 |     $x1 = IMPLICIT_DEF | 
 |     $x2 = IMPLICIT_DEF | 
 |     $x3 = IMPLICIT_DEF | 
 |     $x4 = IMPLICIT_DEF | 
 |     $x5 = IMPLICIT_DEF | 
 |     $x6 = IMPLICIT_DEF | 
 |     $x7 = IMPLICIT_DEF | 
 |     $x8 = IMPLICIT_DEF | 
 |     $x9 = IMPLICIT_DEF | 
 |     $x10 = IMPLICIT_DEF | 
 |     $x11 = IMPLICIT_DEF | 
 |     $x12 = IMPLICIT_DEF | 
 |     $x13 = IMPLICIT_DEF | 
 |     $x14 = IMPLICIT_DEF | 
 |     $x15 = IMPLICIT_DEF | 
 |     $x16 = IMPLICIT_DEF | 
 |     $x17 = IMPLICIT_DEF | 
 |     $x18 = IMPLICIT_DEF | 
 |     $x19 = IMPLICIT_DEF | 
 |     $x20 = IMPLICIT_DEF | 
 |     $x21 = IMPLICIT_DEF | 
 |     $x22 = IMPLICIT_DEF | 
 |     $x23 = IMPLICIT_DEF | 
 |     $x24 = IMPLICIT_DEF | 
 |     $x25 = IMPLICIT_DEF | 
 |     $x26 = IMPLICIT_DEF | 
 |     $x27 = IMPLICIT_DEF | 
 |     $x28 = IMPLICIT_DEF | 
 |     $x29 = IMPLICIT_DEF | 
 |     $x30 = IMPLICIT_DEF | 
 |  | 
 |     ; CHECK: STD killed [[SPILLEDREG:\$x[0-9]+]] | 
 |     ; CHECK: [[SPILLEDREG]] = LI8 42 | 
 |     ; CHECK: NOP implicit killed [[SPILLEDREG]] | 
 |     ; CHECK: [[SPILLEDREG]] = LD | 
 |     %0 : g8rc = LI8 42 | 
 |     NOP implicit %0 | 
 |  | 
 |     NOP implicit $x0 | 
 |     NOP implicit $x1 | 
 |     NOP implicit $x2 | 
 |     NOP implicit $x3 | 
 |     NOP implicit $x4 | 
 |     NOP implicit $x5 | 
 |     NOP implicit $x6 | 
 |     NOP implicit $x7 | 
 |     NOP implicit $x8 | 
 |     NOP implicit $x9 | 
 |     NOP implicit $x10 | 
 |     NOP implicit $x11 | 
 |     NOP implicit $x12 | 
 |     NOP implicit $x13 | 
 |     NOP implicit $x14 | 
 |     NOP implicit $x15 | 
 |     NOP implicit $x16 | 
 |     NOP implicit $x17 | 
 |     NOP implicit $x18 | 
 |     NOP implicit $x19 | 
 |     NOP implicit $x20 | 
 |     NOP implicit $x21 | 
 |     NOP implicit $x22 | 
 |     NOP implicit $x23 | 
 |     NOP implicit $x24 | 
 |     NOP implicit $x25 | 
 |     NOP implicit $x26 | 
 |     NOP implicit $x27 | 
 |     NOP implicit $x28 | 
 |     NOP implicit $x29 | 
 |     NOP implicit $x30 | 
 | ... | 
 | --- | 
 | # Check for bug where we would refuse to spill before the first instruction in a | 
 | # block. | 
 | # CHECK-LABEL: name: spill_at_begin | 
 | # CHECK: bb.0: | 
 | # CHECK: liveins: | 
 | # CHECK: STD killed [[REG:\$x[0-9]+]]{{.*}}(store 8 into %stack.{{[0-9]+}}) | 
 | # CHECK: [[REG]] = LIS8 0 | 
 | # CHECK: [[REG]] = ORI8 killed [[REG]], 48 | 
 | # CHECK: NOP implicit killed [[REG]] | 
 | # CHEKC: [[REG]] = LD{{.*}}(load 8 from %stack.{{[0-9]+}}) | 
 | name: spill_at_begin | 
 | tracksRegLiveness: true | 
 | stack: | 
 |   # variable-sized object should be a reason to reserve an emergency spillslot | 
 |   # in the RegScavenger | 
 |   - { id: 0, type: variable-sized, offset: -32, alignment: 1 } | 
 | body: | | 
 |   bb.0: | 
 |     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, $x31 | 
 |     %0 : g8rc = LIS8 0 | 
 |     %1 : g8rc = ORI8 %0, 48 | 
 |     NOP implicit %1 | 
 |  | 
 |     NOP implicit $x0 | 
 |     NOP implicit $x1 | 
 |     NOP implicit $x2 | 
 |     NOP implicit $x3 | 
 |     NOP implicit $x4 | 
 |     NOP implicit $x5 | 
 |     NOP implicit $x6 | 
 |     NOP implicit $x7 | 
 |     NOP implicit $x8 | 
 |     NOP implicit $x9 | 
 |     NOP implicit $x10 | 
 |     NOP implicit $x11 | 
 |     NOP implicit $x12 | 
 |     NOP implicit $x13 | 
 |     NOP implicit $x14 | 
 |     NOP implicit $x15 | 
 |     NOP implicit $x16 | 
 |     NOP implicit $x17 | 
 |     NOP implicit $x18 | 
 |     NOP implicit $x19 | 
 |     NOP implicit $x20 | 
 |     NOP implicit $x21 | 
 |     NOP implicit $x22 | 
 |     NOP implicit $x23 | 
 |     NOP implicit $x24 | 
 |     NOP implicit $x25 | 
 |     NOP implicit $x26 | 
 |     NOP implicit $x27 | 
 |     NOP implicit $x28 | 
 |     NOP implicit $x29 | 
 |     NOP implicit $x30 | 
 |     NOP implicit $x31 | 
 | ... |