blob: 56190994683034c5fc489c85f1ef0d3226e40be6 [file] [edit]
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 6
# RUN: llc -mtriple=riscv32 -run-pass=prologepilog -verify-machineinstrs %s -o - | FileCheck %s
---
name: main
alignment: 2
tracksRegLiveness: true
frameInfo:
maxAlignment: 4
adjustsStack: true
hasCalls: true
maxCallFrameSize: 2276
stack:
- { id: 0, name: '', type: default, offset: 0, size: 2304, alignment: 4,
stack-id: default, callee-saved-register: '', callee-saved-restored: true,
local-offset: -2304, debug-info-variable: '', debug-info-expression: '',
debug-info-location: '' }
- { id: 1, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4,
stack-id: default, callee-saved-register: '', callee-saved-restored: true,
debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
- { id: 2, name: '', type: spill-slot, offset: 0, size: 2204, alignment: 4,
stack-id: default, callee-saved-register: '', callee-saved-restored: true,
debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
- { id: 3, name: '', type: spill-slot, offset: 0, size: 2204, alignment: 4,
stack-id: default, callee-saved-register: '', callee-saved-restored: true,
debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
body: |
bb.0:
; CHECK-LABEL: name: main
; CHECK: liveins: $x1, $x9, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: $x2 = frame-setup ADDI $x2, -2032
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 2032
; CHECK-NEXT: frame-setup SW killed $x1, $x2, 2028 :: (store (s32) into %stack.4)
; CHECK-NEXT: frame-setup SW killed $x8, $x2, 2024 :: (store (s32) into %stack.5)
; CHECK-NEXT: frame-setup SW killed $x9, $x2, 2020 :: (store (s32) into %stack.6)
; CHECK-NEXT: frame-setup SW killed $x18, $x2, 2016 :: (store (s32) into %stack.7)
; CHECK-NEXT: frame-setup SW killed $x19, $x2, 2012 :: (store (s32) into %stack.8)
; CHECK-NEXT: frame-setup SW killed $x20, $x2, 2008 :: (store (s32) into %stack.9)
; CHECK-NEXT: frame-setup SW killed $x21, $x2, 2004 :: (store (s32) into %stack.10)
; CHECK-NEXT: frame-setup SW killed $x22, $x2, 2000 :: (store (s32) into %stack.11)
; CHECK-NEXT: frame-setup SW killed $x23, $x2, 1996 :: (store (s32) into %stack.12)
; CHECK-NEXT: frame-setup SW killed $x24, $x2, 1992 :: (store (s32) into %stack.13)
; CHECK-NEXT: frame-setup SW killed $x25, $x2, 1988 :: (store (s32) into %stack.14)
; CHECK-NEXT: frame-setup SW killed $x26, $x2, 1984 :: (store (s32) into %stack.15)
; CHECK-NEXT: frame-setup SW killed $x27, $x2, 1980 :: (store (s32) into %stack.16)
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -4
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x8, -8
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x9, -12
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x18, -16
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x19, -20
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x20, -24
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x21, -28
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x22, -32
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x23, -36
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x24, -40
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x25, -44
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x26, -48
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x27, -52
; CHECK-NEXT: $x8 = frame-setup ADDI $x2, 2032
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa $x8, 0
; CHECK-NEXT: $x10 = frame-setup LUI 2
; CHECK-NEXT: $x10 = frame-setup ADDI killed $x10, -1168
; CHECK-NEXT: $x2 = frame-setup SUB $x2, killed $x10
; CHECK-NEXT: renamable $x10 = ADDI $x8, -440
; CHECK-NEXT: $x11 = LUI 2
; CHECK-NEXT: $x11 = SUB $x8, killed $x11
; CHECK-NEXT: $x11 = LW killed $x11, 1420
; CHECK-NEXT: renamable $x12 = LW undef renamable $x10, 1
; CHECK-NEXT: renamable $x13 = LW undef renamable $x10, 9
; CHECK-NEXT: renamable $x14 = LW undef renamable $x10, 13
; CHECK-NEXT: renamable $x15 = LW undef renamable $x10, 17
; CHECK-NEXT: renamable $x16 = LW undef renamable $x10, 21
; CHECK-NEXT: renamable $x17 = LW undef renamable $x10, 25
; CHECK-NEXT: renamable $x5 = LW undef renamable $x10, 29
; CHECK-NEXT: renamable $x6 = LW undef renamable $x10, 33
; CHECK-NEXT: renamable $x7 = LW undef renamable $x10, 37
; CHECK-NEXT: renamable $x28 = LW undef renamable $x10, 41
; CHECK-NEXT: renamable $x29 = LW undef renamable $x10, 45
; CHECK-NEXT: renamable $x30 = LW undef renamable $x10, 49
; CHECK-NEXT: renamable $x31 = LW undef renamable $x10, 53
; CHECK-NEXT: renamable $x9 = LW undef renamable $x10, 61
; CHECK-NEXT: renamable $x18 = LW undef renamable $x10, 65
; CHECK-NEXT: renamable $x19 = LW undef renamable $x10, 69
; CHECK-NEXT: renamable $x20 = LW undef renamable $x10, 73
; CHECK-NEXT: renamable $x21 = LW undef renamable $x10, 77
; CHECK-NEXT: renamable $x22 = LW undef renamable $x10, 81
; CHECK-NEXT: renamable $x23 = LW undef renamable $x10, 85
; CHECK-NEXT: renamable $x24 = LW undef renamable $x10, 89
; CHECK-NEXT: renamable $x25 = LW undef renamable $x10, 93
; CHECK-NEXT: renamable $x26 = LW undef renamable $x10, 97
; CHECK-NEXT: renamable $x27 = LW undef renamable $x10, 101
; CHECK-NEXT: renamable $x1 = LW undef renamable $x10, 105
; CHECK-NEXT: SW killed $x11, $x8, -56 :: (store (s32) into %stack.17)
; CHECK-NEXT: $x11 = LUI 1
; CHECK-NEXT: $x11 = SUB $x8, killed $x11
; CHECK-NEXT: SW $x10, killed $x11, -472
; CHECK-NEXT: $x11 = LW $x8, -56 :: (load (s32) from %stack.17)
; CHECK-NEXT: SW killed renamable $x1, undef renamable $x11, 105
; CHECK-NEXT: SW killed renamable $x27, undef renamable $x11, 101
; CHECK-NEXT: SW killed renamable $x26, renamable $x11, 97
; CHECK-NEXT: SW killed renamable $x25, undef renamable $x11, 93
; CHECK-NEXT: SW killed renamable $x24, undef renamable $x11, 89
; CHECK-NEXT: SW killed renamable $x23, undef renamable $x11, 85
; CHECK-NEXT: SW killed renamable $x22, undef renamable $x11, 81
; CHECK-NEXT: SW killed renamable $x21, undef renamable $x11, 77
; CHECK-NEXT: SW killed renamable $x20, undef renamable $x11, 73
; CHECK-NEXT: SW killed renamable $x19, undef renamable $x11, 69
; CHECK-NEXT: SW killed renamable $x18, undef renamable $x11, 65
; CHECK-NEXT: SW killed renamable $x9, undef renamable $x11, 61
; CHECK-NEXT: SW killed renamable $x31, undef renamable $x11, 53
; CHECK-NEXT: SW killed renamable $x30, undef renamable $x11, 49
; CHECK-NEXT: SW killed renamable $x29, undef renamable $x11, 45
; CHECK-NEXT: SW killed renamable $x28, undef renamable $x11, 41
; CHECK-NEXT: SW killed renamable $x7, undef renamable $x11, 37
; CHECK-NEXT: SW killed renamable $x6, undef renamable $x11, 33
; CHECK-NEXT: SW killed renamable $x5, undef renamable $x11, 29
; CHECK-NEXT: SW killed renamable $x17, undef renamable $x11, 25
; CHECK-NEXT: SW killed renamable $x16, undef renamable $x11, 21
; CHECK-NEXT: SW killed renamable $x15, undef renamable $x11, 17
; CHECK-NEXT: SW killed renamable $x14, undef renamable $x11, 13
; CHECK-NEXT: SW killed renamable $x13, undef renamable $x11, 9
; CHECK-NEXT: SW killed renamable $x12, undef renamable $x11, 5
; CHECK-NEXT: $x10 = frame-destroy LUI 2
; CHECK-NEXT: $x10 = frame-destroy ADDI killed $x10, -1168
; CHECK-NEXT: $x2 = frame-destroy ADD $x2, killed $x10
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa $x2, 2032
; CHECK-NEXT: $x1 = frame-destroy LW $x2, 2028 :: (load (s32) from %stack.4)
; CHECK-NEXT: $x8 = frame-destroy LW $x2, 2024 :: (load (s32) from %stack.5)
; CHECK-NEXT: $x9 = frame-destroy LW $x2, 2020 :: (load (s32) from %stack.6)
; CHECK-NEXT: $x18 = frame-destroy LW $x2, 2016 :: (load (s32) from %stack.7)
; CHECK-NEXT: $x19 = frame-destroy LW $x2, 2012 :: (load (s32) from %stack.8)
; CHECK-NEXT: $x20 = frame-destroy LW $x2, 2008 :: (load (s32) from %stack.9)
; CHECK-NEXT: $x21 = frame-destroy LW $x2, 2004 :: (load (s32) from %stack.10)
; CHECK-NEXT: $x22 = frame-destroy LW $x2, 2000 :: (load (s32) from %stack.11)
; CHECK-NEXT: $x23 = frame-destroy LW $x2, 1996 :: (load (s32) from %stack.12)
; CHECK-NEXT: $x24 = frame-destroy LW $x2, 1992 :: (load (s32) from %stack.13)
; CHECK-NEXT: $x25 = frame-destroy LW $x2, 1988 :: (load (s32) from %stack.14)
; CHECK-NEXT: $x26 = frame-destroy LW $x2, 1984 :: (load (s32) from %stack.15)
; CHECK-NEXT: $x27 = frame-destroy LW $x2, 1980 :: (load (s32) from %stack.16)
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x1
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x8
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x9
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x18
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x19
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x20
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x21
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x22
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x23
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x24
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x25
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x26
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x27
; CHECK-NEXT: $x2 = frame-destroy ADDI $x2, 2032
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 0
; CHECK-NEXT: PseudoRET
renamable $x10 = ADDI %stack.0, 1920
ADJCALLSTACKDOWN 2276, 0, implicit-def dead $x2, implicit $x2
$x11 = LW %stack.3, 0
ADJCALLSTACKUP 2276, 0, implicit-def dead $x2, implicit $x2
renamable $x12 = LW undef renamable $x10, 1
renamable $x13 = LW undef renamable $x10, 9
renamable $x14 = LW undef renamable $x10, 13
renamable $x15 = LW undef renamable $x10, 17
renamable $x16 = LW undef renamable $x10, 21
renamable $x17 = LW undef renamable $x10, 25
renamable $x5 = LW undef renamable $x10, 29
renamable $x6 = LW undef renamable $x10, 33
renamable $x7 = LW undef renamable $x10, 37
renamable $x28 = LW undef renamable $x10, 41
renamable $x29 = LW undef renamable $x10, 45
renamable $x30 = LW undef renamable $x10, 49
renamable $x31 = LW undef renamable $x10, 53
renamable $x9 = LW undef renamable $x10, 61
renamable $x18 = LW undef renamable $x10, 65
renamable $x19 = LW undef renamable $x10, 69
renamable $x20 = LW undef renamable $x10, 73
renamable $x21 = LW undef renamable $x10, 77
renamable $x22 = LW undef renamable $x10, 81
renamable $x23 = LW undef renamable $x10, 85
renamable $x24 = LW undef renamable $x10, 89
renamable $x25 = LW undef renamable $x10, 93
renamable $x26 = LW undef renamable $x10, 97
renamable $x27 = LW undef renamable $x10, 101
renamable $x1 = LW undef renamable $x10, 105
SW $x10, %stack.2, 0
SW killed renamable $x1, undef renamable $x11, 105
SW killed renamable $x27, undef renamable $x11, 101
SW killed renamable $x26, renamable $x11, 97
SW killed renamable $x25, undef renamable $x11, 93
SW killed renamable $x24, undef renamable $x11, 89
SW killed renamable $x23, undef renamable $x11, 85
SW killed renamable $x22, undef renamable $x11, 81
SW killed renamable $x21, undef renamable $x11, 77
SW killed renamable $x20, undef renamable $x11, 73
SW killed renamable $x19, undef renamable $x11, 69
SW killed renamable $x18, undef renamable $x11, 65
SW killed renamable $x9, undef renamable $x11, 61
SW killed renamable $x31, undef renamable $x11, 53
SW killed renamable $x30, undef renamable $x11, 49
SW killed renamable $x29, undef renamable $x11, 45
SW killed renamable $x28, undef renamable $x11, 41
SW killed renamable $x7, undef renamable $x11, 37
SW killed renamable $x6, undef renamable $x11, 33
SW killed renamable $x5, undef renamable $x11, 29
SW killed renamable $x17, undef renamable $x11, 25
SW killed renamable $x16, undef renamable $x11, 21
SW killed renamable $x15, undef renamable $x11, 17
SW killed renamable $x14, undef renamable $x11, 13
SW killed renamable $x13, undef renamable $x11, 9
SW killed renamable $x12, undef renamable $x11, 5
PseudoRET
...