1 # RUN: llc -march=mips -mcpu=mips32r2 -mattr=+micromips %s -o - \
2 # RUN: -start-after=block-placement | FileCheck %s
4 # Test that the micromips jal instruction is correctly handled by the delay slot
5 # filler by converting it to a short delay slot for the li instruction.
7 # CHECK-LABEL: caller13
12 declare i32 @callee13(i32, i32)
14 define i32 @caller13() {
16 %call = tail call i32 (i32, i32) @callee13(i32 1, i32 2)
24 exposesReturnsTwice: false
26 regBankSelected: false
28 tracksRegLiveness: true
32 isFrameAddressTaken: false
33 isReturnAddressTaken: false
43 hasOpaqueSPAdjustment: false
45 hasMustTailInVarArgFunc: false
50 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
51 stack-id: default, callee-saved-register: '$ra', callee-saved-restored: true,
52 debug-info-variable: '', debug-info-expression: '',
53 debug-info-location: '' }
60 CFI_INSTRUCTION def_cfa_offset 24
61 SW killed $ra, $sp, 20 :: (store (s32) into %stack.0)
62 CFI_INSTRUCTION offset $ra_64, -4
65 JAL_MM @callee13, csr_o32, implicit-def dead $ra, implicit killed $a0, implicit killed $a1, implicit-def $sp, implicit-def $v0
66 $ra = LW $sp, 20 :: (load (s32) from %stack.0)
68 PseudoReturn undef $ra, implicit $v0