[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / wineh-save-lrpair2.mir
blob2ec296f7b9e7e2bc13ed4b1e6f30eb27e1ca1952
1 # RUN: llc -o - %s -mtriple=aarch64-windows -start-before=prologepilog \
2 # RUN:   -stop-after=prologepilog | FileCheck %s
4 # Check that lr isn't paired with a GPR if it's the first pair, as
5 # that can't be described as a SEH opcode if combined with predecrement.
7 # CHECK: early-clobber $sp = frame-setup STRXpre killed $x19, $sp, -16
8 # CHECK-NEXT: frame-setup SEH_SaveReg_X 19, -16
9 # CHECK-NEXT: frame-setup STRXui killed $lr, $sp, 1
10 # CHECK-NEXT: frame-setup SEH_SaveReg 30, 8
11 # CHECK-NEXT: frame-setup SEH_PrologEnd
13 --- |
15   define dso_local i32 @func(i32 %a) { ret i32 %a }
16   declare dso_local i32 @other()
18 ...
19 ---
20 name:            func
21 alignment:       4
22 exposesReturnsTwice: false
23 legalized:       false
24 regBankSelected: false
25 selected:        false
26 failedISel:      false
27 tracksRegLiveness: true
28 hasWinCFI:       false
29 registers:       []
30 liveins:         []
31 frameInfo:
32   isFrameAddressTaken: false
33   isReturnAddressTaken: false
34   hasStackMap:     false
35   hasPatchPoint:   false
36   stackSize:       0
37   offsetAdjustment: 0
38   maxAlignment:    4
39   adjustsStack:    false
40   hasCalls:        false
41   stackProtector:  ''
42   maxCallFrameSize: 0
43   cvBytesOfCalleeSavedRegisters: 0
44   hasOpaqueSPAdjustment: false
45   hasVAStart:      false
46   hasMustTailInVarArgFunc: false
47   localFrameSize:  4
48   savePoint:       ''
49   restorePoint:    ''
50 fixedStack:      []
51 stack:           []
52 callSites:       []
53 constants:       []
54 machineFunctionInfo: {}
55 body:             |
56   bb.0:
57     liveins: $x0, $x19
59     BL @other, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit $w0, implicit-def $sp, implicit-def $w0
60     $x19 = ADDXrr $x0, $x0
61     $x0 = ADDXrr $x0, killed $x19
63     RET_ReallyLR
65 ...