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