| # 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 |
| ... |