1# RUN: llc -o - %s -mtriple=aarch64-windows -start-before=prologepilog \
2# RUN:   -stop-after=prologepilog | FileCheck %s
3# Check save_freg_x, save_freg
4
5# CHECK:       early-clobber $sp = frame-setup STRDpre killed $d10, $sp, -16
6# CHECK-NEXT:  frame-setup SEH_SaveFReg_X 10, -16
7# CHECK-NEXT:  frame-setup STRDui killed $d8, $sp, 1 :: (store 8 into %stack.0)
8# CHECK-NEXT:  frame-setup SEH_SaveFReg 8, 8
9# CHECK-NEXT:  frame-setup SEH_PrologEnd
10# CHECK:       frame-destroy SEH_EpilogStart
11# CHECK-NEXT:  $d8 = frame-destroy LDRDui $sp, 1 :: (load 8 from %stack.0)
12# CHECK-NEXT:  frame-destroy SEH_SaveFReg 8, 8
13# CHECK-NEXT:  early-clobber $sp, $d10 = frame-destroy LDRDpost $sp, 16 :: (load 8 from %stack.1)
14# CHECK-NEXT:  frame-destroy SEH_SaveFReg_X 10, -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: $d0, $d1
55    $d8 = FADDDrr $d0, killed $d1
56    $d10 = FADDDrr killed $d8, $d0
57    $x0 = COPY killed $d10
58    RET_ReallyLR implicit $x0
59...
60