| #RUN: llc -mtriple=aarch64-- -run-pass prologepilog %s -o - | FileCheck %s | 
 | # Check that we use the frame pointer to address the emergency spill slot. | 
 | # Using the base pointer will result in an assert with "Emergency spill slot is | 
 | # out of reach". | 
 | --- | 
 | name: hugeStack | 
 | # CHECK-LABEL: name: hugeStack | 
 | tracksRegLiveness: true | 
 | frameInfo: | 
 |   localFrameSize:  256 | 
 | stack: | 
 |   - { id: 0, type: variable-sized,  alignment: 1 } | 
 |   - { id: 1, name: '', size: 32761, alignment: 8 } | 
 | body: | | 
 |   bb.0: | 
 |     STRXui undef $x8, %stack.0, 0 | 
 |     ; CHECK: STURXi undef $x8, $fp, -24 | 
 |     B %bb.1 | 
 |   bb.1: | 
 |     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, $fp, $lr | 
 |     RET_ReallyLR implicit $x21, implicit $x22, implicit $x23, implicit $x24, implicit $x25, implicit $x26, implicit $x27, implicit $x28 | 
 | ... | 
 | --- | 
 | name: fpDoesNotFit | 
 | # CHECK-LABEL: name: fpDoesNotFit | 
 | tracksRegLiveness: true | 
 | frameInfo: | 
 |   hasStackMap: true | 
 | # set to true to force hasFP to true. | 
 | stack: | 
 |   - { id: 0, name: '', size: 4096, alignment: 8 } | 
 |   - { id: 1, name: '', size: 32761, alignment: 8 } | 
 | body: | | 
 |   bb.0: | 
 |     STRXui undef $x8, %stack.0, -34 | 
 |     ; Pick SP here. Picking FP will require scavenging a register. | 
 |     ; CHECK: STRXui undef $x8, $sp, 4062 | 
 |     RET_ReallyLR |