[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / wineh-save-lrpair1.mir
blob7959ad611ed4085df66b6f35b7d9da989e490b26
1 # RUN: llc -o - %s -mtriple=aarch64-windows -start-before=prologepilog \
2 # RUN:   -stop-after=prologepilog | FileCheck %s
3 # RUN: llc -o - %s -mtriple=aarch64-windows -start-before=prologepilog \
4 # RUN:   | FileCheck --check-prefix=ASM %s
6 # Check that an odd callee-saved GPR is paired with lr
8 # CHECK: early-clobber $sp = frame-setup STPXpre killed $x19, killed $x20, $sp, -4
9 # CHECK-NEXT: frame-setup SEH_SaveRegP_X 19, 20, -32
10 # CHECK-NEXT: frame-setup STPXi killed $x21, killed $lr, $sp, 2
11 # CHECK-NEXT: frame-setup SEH_SaveRegP 21, 30, 16
12 # CHECK-NEXT: frame-setup SEH_PrologEnd
14 # ASM:      stp x19, x20, [sp, #-32]!
15 # ASM-NEXT: .seh_save_regp_x x19, 32
16 # ASM-NEXT: stp x21, x30, [sp, #16]
17 # ASM-NEXT: .seh_save_lrpair x21, 16
18 # ASM-NEXT: .seh_endprologue
20 --- |
22   define dso_local i32 @func(i32 %a) { ret i32 %a }
23   declare dso_local i32 @other()
25 ...
26 ---
27 name:            func
28 alignment:       4
29 exposesReturnsTwice: false
30 legalized:       false
31 regBankSelected: false
32 selected:        false
33 failedISel:      false
34 tracksRegLiveness: true
35 hasWinCFI:       false
36 registers:       []
37 liveins:         []
38 frameInfo:
39   isFrameAddressTaken: false
40   isReturnAddressTaken: false
41   hasStackMap:     false
42   hasPatchPoint:   false
43   stackSize:       0
44   offsetAdjustment: 0
45   maxAlignment:    4
46   adjustsStack:    false
47   hasCalls:        false
48   stackProtector:  ''
49   maxCallFrameSize: 0
50   cvBytesOfCalleeSavedRegisters: 0
51   hasOpaqueSPAdjustment: false
52   hasVAStart:      false
53   hasMustTailInVarArgFunc: false
54   localFrameSize:  4
55   savePoint:       ''
56   restorePoint:    ''
57 fixedStack:      []
58 stack:           []
59 callSites:       []
60 constants:       []
61 machineFunctionInfo: {}
62 body:             |
63   bb.0:
64     liveins: $x0, $x21, $x19, $x20
66     BL @other, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit $w0, implicit-def $sp, implicit-def $w0
67     $x19 = ADDXrr $x0, $x0
68     $x20 = ADDXrr $x19, $x0
69     $x21 = ADDXrr $x20, killed $x19
70     $x0 = ADDXrr $x0, killed $x21
72     RET_ReallyLR
74 ...