1# RUN: llc -o - %s -mtriple=aarch64-windows -start-before=prologepilog \
2# RUN:   -stop-after=prologepilog | FileCheck %s
3# Check save_reg_x, save_reg
4
5# CHECK:      early-clobber $sp = frame-setup STRXpre killed $x22, $sp, -16
6# CHECK-NEXT: frame-setup SEH_SaveReg_X 22, -16
7# CHECK-NEXT: frame-setup STRXui killed $x19, $sp, 1
8# CHECK-NEXT: frame-setup SEH_SaveReg 19, 8
9# CHECK-NEXT: frame-setup SEH_PrologEnd
10# CHECK:      frame-destroy SEH_EpilogStart
11# CHECK-NEXT: $x19 = frame-destroy LDRXui $sp, 1
12# CHECK-NEXT: frame-destroy SEH_SaveReg 19, 8
13# CHECK-NEXT: early-clobber $sp, $x22 = frame-destroy LDRXpost $sp, 16
14# CHECK-NEXT: frame-destroy SEH_SaveReg_X 22, -16
15# CHECK-NEXT: frame-destroy SEH_EpilogEnd
16# CHECK-NEXT: RET_ReallyLR implicit $x0
17...
18---
19name:            test
20alignment:       4
21exposesReturnsTwice: false
22legalized:       false
23regBankSelected: false
24selected:        false
25failedISel:      false
26tracksRegLiveness: true
27hasWinCFI:       true
28registers:
29liveins:
30  - { reg: '$w0', virtual-reg: '' }
31frameInfo:
32  isFrameAddressTaken: false
33  isReturnAddressTaken: false
34  hasStackMap:     false
35  hasPatchPoint:   false
36  stackSize:       112
37  offsetAdjustment: 0
38  maxAlignment:    8
39  adjustsStack:    false
40  hasCalls:        false
41  stackProtector:  ''
42  maxCallFrameSize: 0
43  hasOpaqueSPAdjustment: true
44  hasVAStart:      false
45  hasMustTailInVarArgFunc: false
46  localFrameSize:  0
47  savePoint:       ''
48  restorePoint:    ''
49fixedStack:
50stack:
51constants:
52body:             |
53  bb.0.entry:
54    liveins: $x0, $x1
55    $x19 = ADDXrr $x0, killed $x1
56    $x22 = ADDXrr killed $x19, $x0
57    $x0 = COPY killed $x22
58    RET_ReallyLR implicit $x0
59...
60