blob: 7d8cf0889f664ef092d1af637b484f6abe7e7abd [file] [edit]
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 6
# RUN: llc -mtriple=riscv64 -run-pass=prologepilog -verify-machineinstrs %s -o - | FileCheck %s
---
name: test
alignment: 4
tracksRegLiveness: true
noPhis: true
isSSA: true
noVRegs: true
frameInfo:
maxAlignment: 8
adjustsStack: true
hasCalls: true
maxCallFrameSize: 4808
stack:
- { id: 0, name: '', type: spill-slot, offset: 0, size: 104, alignment: 8,
stack-id: default, callee-saved-register: '', callee-saved-restored: true,
debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
body: |
; CHECK-LABEL: name: test
; CHECK: bb.0:
; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.5(0x40000000)
; CHECK-NEXT: liveins: $x10, $x11, $x12, $x1
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: $x2 = frame-setup ADDI $x2, -2032
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 2032
; CHECK-NEXT: frame-setup SD killed $x1, $x2, 2024 :: (store (s64) into %stack.1)
; CHECK-NEXT: frame-setup SD killed $x8, $x2, 2016 :: (store (s64) into %stack.2)
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -8
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x8, -16
; CHECK-NEXT: $x8 = frame-setup ADDI $x2, 2032
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa $x8, 0
; CHECK-NEXT: $x2 = frame-setup ADDI $x2, -2048
; CHECK-NEXT: $x2 = frame-setup ADDI killed $x2, -864
; CHECK-NEXT: BEQ undef renamable $x10, $x0, %bb.5
; CHECK-NEXT: PseudoBR %bb.1
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.1:
; CHECK-NEXT: successors: %bb.2(0x80000000)
; CHECK-NEXT: liveins: $x10, $x11, $x12
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.2:
; CHECK-NEXT: successors: %bb.3(0x80000000)
; CHECK-NEXT: liveins: $x11, $x30
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.3:
; CHECK-NEXT: successors: %bb.4(0x04000000), %bb.3(0x7c000000)
; CHECK-NEXT: liveins: $x6, $x8, $x9, $x10, $x11, $x17, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x28, $x31, $x30
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: SD undef renamable $x23, $x8, -128
; CHECK-NEXT: BEQ undef renamable $x30, $x0, %bb.3
; CHECK-NEXT: PseudoBR %bb.4
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.4:
; CHECK-NEXT: successors: %bb.2(0x80000000)
; CHECK-NEXT: liveins: $x1, $x5, $x7, $x11, $x12, $x13, $x14, $x15, $x16, $x25, $x26, $x27, $x29, $x30
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: PseudoBR %bb.2
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.5:
; CHECK-NEXT: liveins: $x10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: $x2 = frame-destroy ADDI $x2, 2032
; CHECK-NEXT: $x2 = frame-destroy ADDI killed $x2, 880
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa $x2, 2032
; CHECK-NEXT: $x1 = frame-destroy LD $x2, 2024 :: (load (s64) from %stack.1)
; CHECK-NEXT: $x8 = frame-destroy LD $x2, 2016 :: (load (s64) from %stack.2)
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x1
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x8
; CHECK-NEXT: $x2 = frame-destroy ADDI $x2, 2032
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 0
; CHECK-NEXT: PseudoRET
bb.0:
successors: %bb.1(0x40000000), %bb.5(0x40000000)
liveins: $x10, $x11, $x12
BEQ undef renamable $x10, $x0, %bb.5
PseudoBR %bb.1
bb.1:
successors: %bb.2(0x80000000)
liveins: $x10, $x11, $x12
bb.2:
successors: %bb.3(0x80000000)
liveins: $x11, $x30
bb.3:
successors: %bb.4(0x04000000), %bb.3(0x7c000000)
liveins: $x6, $x8, $x9, $x10, $x11, $x17, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x28, $x31, $x30
SD undef renamable $x23, %stack.0, 0
BEQ undef renamable $x30, $x0, %bb.3
PseudoBR %bb.4
bb.4:
successors: %bb.2(0x80000000)
liveins: $x1, $x5, $x7, $x11, $x12, $x13, $x14, $x15, $x16, $x25, $x26, $x27, $x29, $x30
PseudoBR %bb.2
bb.5:
liveins: $x10
ADJCALLSTACKDOWN 4808, 0, implicit-def dead $x2, implicit $x2
ADJCALLSTACKUP 4808, 0, implicit-def dead $x2, implicit $x2
PseudoRET
...