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