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