75 lines · plain
1# RUN: llc -o - %s -mtriple=aarch64-windows -start-before=prologepilog \2# RUN: -stop-after=prologepilog | FileCheck %s3# RUN: llc -o - %s -mtriple=aarch64-windows -start-before=prologepilog \4# RUN: | FileCheck --check-prefix=ASM %s5 6# Check that an odd callee-saved GPR is paired with lr7 8# CHECK: early-clobber $sp = frame-setup STPXpre killed $x19, killed $x20, $sp, -49# CHECK-NEXT: frame-setup SEH_SaveRegP_X 19, 20, -3210# CHECK-NEXT: frame-setup STPXi killed $x21, killed $lr, $sp, 211# CHECK-NEXT: frame-setup SEH_SaveRegP 21, 30, 1612# CHECK-NEXT: frame-setup SEH_PrologEnd13 14# ASM: stp x19, x20, [sp, #-32]!15# ASM-NEXT: .seh_save_regp_x x19, 3216# ASM-NEXT: stp x21, x30, [sp, #16]17# ASM-NEXT: .seh_save_lrpair x21, 1618# ASM-NEXT: .seh_endprologue19 20--- |21 22 define dso_local i32 @func(i32 %a) { ret i32 %a }23 declare dso_local i32 @other()24 25...26---27name: func28alignment: 429exposesReturnsTwice: false30legalized: false31regBankSelected: false32selected: false33failedISel: false34tracksRegLiveness: true35hasWinCFI: false36registers: []37liveins: []38frameInfo:39 isFrameAddressTaken: false40 isReturnAddressTaken: false41 hasStackMap: false42 hasPatchPoint: false43 stackSize: 044 offsetAdjustment: 045 maxAlignment: 446 adjustsStack: false47 hasCalls: false48 stackProtector: ''49 maxCallFrameSize: 050 cvBytesOfCalleeSavedRegisters: 051 hasOpaqueSPAdjustment: false52 hasVAStart: false53 hasMustTailInVarArgFunc: false54 localFrameSize: 455 savePoint: []56 restorePoint: []57fixedStack: []58stack: []59callSites: []60constants: []61machineFunctionInfo: {}62body: |63 bb.0:64 liveins: $x0, $x21, $x19, $x2065 66 BL @other, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit $w0, implicit-def $sp, implicit-def $w067 $x19 = ADDXrr $x0, $x068 $x20 = ADDXrr $x19, $x069 $x21 = ADDXrr $x20, killed $x1970 $x0 = ADDXrr $x0, killed $x2171 72 RET_ReallyLR73 74...75