234 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple riscv64 -mattr=+m,+v -run-pass=prologepilog -o - \3# RUN: -verify-machineinstrs %s | FileCheck %s4--- |5 target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128"6 target triple = "riscv64"7 8 define void @spillslot() {9 ret void10 }11 12...13---14name: spillslot15alignment: 416tracksRegLiveness: true17liveins:18 - { reg: '$x12', virtual-reg: '' }19frameInfo:20 isFrameAddressTaken: false21 isReturnAddressTaken: false22 hasStackMap: false23 hasPatchPoint: false24 stackSize: 025 offsetAdjustment: 026 maxAlignment: 12827 adjustsStack: false28 hasCalls: false29 stackProtector: ''30 maxCallFrameSize: 429496729531 cvBytesOfCalleeSavedRegisters: 032 hasOpaqueSPAdjustment: false33 hasVAStart: false34 hasMustTailInVarArgFunc: false35 hasTailCall: false36 localFrameSize: 037 savePoint: []38 restorePoint: []39fixedStack: []40stack:41 - { id: 0, name: '', type: default, offset: 0, size: 2048, alignment: 128,42 stack-id: default, callee-saved-register: '', callee-saved-restored: true,43 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }44 - { id: 1, name: '', type: spill-slot, offset: 0, size: 8, alignment: 8,45 stack-id: scalable-vector, callee-saved-register: '', callee-saved-restored: true,46 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }47 - { id: 2, name: '', type: spill-slot, offset: 0, size: 400, alignment: 8,48 stack-id: scalable-vector, callee-saved-register: '', callee-saved-restored: true,49 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }50body: |51 ; CHECK-LABEL: name: spillslot52 ; CHECK: bb.0:53 ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)54 ; CHECK-NEXT: liveins: $x12, $x1, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x2755 ; CHECK-NEXT: {{ $}}56 ; CHECK-NEXT: $x2 = frame-setup ADDI $x2, -203257 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 203258 ; CHECK-NEXT: frame-setup SD killed $x1, $x2, 2024 :: (store (s64) into %stack.3)59 ; CHECK-NEXT: frame-setup SD killed $x8, $x2, 2016 :: (store (s64) into %stack.4)60 ; CHECK-NEXT: frame-setup SD killed $x18, $x2, 2008 :: (store (s64) into %stack.5)61 ; CHECK-NEXT: frame-setup SD killed $x19, $x2, 2000 :: (store (s64) into %stack.6)62 ; CHECK-NEXT: frame-setup SD killed $x20, $x2, 1992 :: (store (s64) into %stack.7)63 ; CHECK-NEXT: frame-setup SD killed $x21, $x2, 1984 :: (store (s64) into %stack.8)64 ; CHECK-NEXT: frame-setup SD killed $x22, $x2, 1976 :: (store (s64) into %stack.9)65 ; CHECK-NEXT: frame-setup SD killed $x23, $x2, 1968 :: (store (s64) into %stack.10)66 ; CHECK-NEXT: frame-setup SD killed $x24, $x2, 1960 :: (store (s64) into %stack.11)67 ; CHECK-NEXT: frame-setup SD killed $x25, $x2, 1952 :: (store (s64) into %stack.12)68 ; CHECK-NEXT: frame-setup SD killed $x26, $x2, 1944 :: (store (s64) into %stack.13)69 ; CHECK-NEXT: frame-setup SD killed $x27, $x2, 1936 :: (store (s64) into %stack.14)70 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -871 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x8, -1672 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x18, -2473 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x19, -3274 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x20, -4075 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x21, -4876 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x22, -5677 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x23, -6478 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x24, -7279 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x25, -8080 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x26, -8881 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $x27, -9682 ; CHECK-NEXT: $x8 = frame-setup ADDI $x2, 203283 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa $x8, 084 ; CHECK-NEXT: $x2 = frame-setup ADDI $x2, -27285 ; CHECK-NEXT: $x10 = frame-setup PseudoReadVLENB86 ; CHECK-NEXT: $x11 = frame-setup ADDI $x0, 5187 ; CHECK-NEXT: $x10 = frame-setup MUL killed $x10, killed $x1188 ; CHECK-NEXT: $x2 = frame-setup SUB $x2, killed $x1089 ; CHECK-NEXT: $x2 = frame-setup ANDI $x2, -12890 ; CHECK-NEXT: dead renamable $x15 = PseudoVSETIVLI 1, 72 /* e16, m1, ta, mu */, implicit-def $vl, implicit-def $vtype91 ; CHECK-NEXT: renamable $v25 = PseudoVMV_V_X_M1 undef $v25, killed renamable $x12, $noreg, 4 /* e16 */, 0 /* tu, mu */, implicit $vl, implicit $vtype92 ; CHECK-NEXT: $x10 = PseudoReadVLENB93 ; CHECK-NEXT: $x11 = ADDI $x0, 5094 ; CHECK-NEXT: $x10 = MUL killed $x10, killed $x1195 ; CHECK-NEXT: $x10 = ADD $x2, killed $x1096 ; CHECK-NEXT: $x10 = ADDI killed $x10, 204797 ; CHECK-NEXT: $x10 = ADDI killed $x10, 16198 ; CHECK-NEXT: VS1R_V killed renamable $v25, killed $x10 :: (store unknown-size into %stack.1, align 8)99 ; CHECK-NEXT: renamable $x1 = ADDI $x0, 255100 ; CHECK-NEXT: renamable $x5 = nuw ADDI $x2, 384101 ; CHECK-NEXT: renamable $x6 = ADDI $x2, 512102 ; CHECK-NEXT: renamable $x7 = nuw ADDI $x2, 640103 ; CHECK-NEXT: renamable $x10 = ADDI $x0, 128104 ; CHECK-NEXT: renamable $x12 = nuw ADDI $x2, 256105 ; CHECK-NEXT: renamable $x14 = COPY $x0106 ; CHECK-NEXT: renamable $x17 = nuw ADDI $x2, 256107 ; CHECK-NEXT: renamable $x18 = ADDI $x2, 1280108 ; CHECK-NEXT: renamable $x19 = ADDI $x2, 1408109 ; CHECK-NEXT: renamable $x20 = ADDI $x2, 1536110 ; CHECK-NEXT: renamable $x21 = ADDI $x2, 1664111 ; CHECK-NEXT: renamable $x22 = ADDI $x2, 1792112 ; CHECK-NEXT: renamable $x23 = ADDI $x2, 1920113 ; CHECK-NEXT: $x24 = ADDI $x2, 2047114 ; CHECK-NEXT: $x24 = ADDI killed $x24, 1115 ; CHECK-NEXT: renamable $x25 = ADDI $x2, 128116 ; CHECK-NEXT: renamable $x26 = ADDI $x2, 128117 ; CHECK-NEXT: renamable $x27 = ADDI $x0, 2118 ; CHECK-NEXT: renamable $x28 = ADDI $x2, 768119 ; CHECK-NEXT: renamable $x29 = ADDI $x2, 896120 ; CHECK-NEXT: renamable $x30 = ADDI $x2, 1024121 ; CHECK-NEXT: renamable $x31 = nuw ADDI $x2, 1152122 ; CHECK-NEXT: renamable $x15 = ADDIW renamable $x14, 0123 ; CHECK-NEXT: renamable $x11 = ANDI renamable $x15, 255124 ; CHECK-NEXT: renamable $x13 = SLLI renamable $x11, 3125 ; CHECK-NEXT: renamable $x13 = ADD renamable $x26, killed renamable $x13126 ; CHECK-NEXT: renamable $x13 = LD killed renamable $x13, 0 :: (load (s64))127 ; CHECK-NEXT: renamable $x16 = SUB killed renamable $x13, renamable $x13128 ; CHECK-NEXT: dead renamable $x13 = PseudoVSETIVLI 1, 64 /* e8, m1, ta, mu */, implicit-def $vl, implicit-def $vtype129 ; CHECK-NEXT: renamable $x13 = nsw ADDI renamable $x16, -2130 ; CHECK-NEXT: SD killed $x10, $x2, 8 :: (store (s64) into %stack.15)131 ; CHECK-NEXT: $x10 = PseudoReadVLENB132 ; CHECK-NEXT: SD killed $x12, $x2, 0 :: (store (s64) into %stack.16)133 ; CHECK-NEXT: $x12 = ADDI $x0, 50134 ; CHECK-NEXT: $x10 = MUL killed $x10, killed $x12135 ; CHECK-NEXT: $x12 = LD $x2, 0 :: (load (s64) from %stack.16)136 ; CHECK-NEXT: $x10 = ADD $x2, killed $x10137 ; CHECK-NEXT: $x10 = ADDI killed $x10, 2047138 ; CHECK-NEXT: $x10 = ADDI killed $x10, 161139 ; CHECK-NEXT: renamable $v0 = VL1RE8_V killed $x10 :: (load unknown-size from %stack.1, align 8)140 ; CHECK-NEXT: $x10 = LD $x2, 8 :: (load (s64) from %stack.15)141 ; CHECK-NEXT: renamable $v0 = PseudoVSLIDEDOWN_VX_M1 undef renamable $v0, killed renamable $v0, killed renamable $x13, $noreg, 3 /* e8 */, 1 /* ta, mu */, implicit $vl, implicit $vtype142 ; CHECK-NEXT: renamable $x13 = PseudoVMV_X_S killed renamable $v0, 3 /* e8 */, implicit $vl, implicit $vtype143 ; CHECK-NEXT: BLT killed renamable $x16, renamable $x27, %bb.2144 ; CHECK-NEXT: {{ $}}145 ; CHECK-NEXT: bb.1:146 ; CHECK-NEXT: successors: %bb.2(0x80000000)147 ; CHECK-NEXT: liveins: $x1, $x5, $x6, $x7, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x17, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $x29, $x30, $x31148 ; CHECK-NEXT: {{ $}}149 ; CHECK-NEXT: renamable $x10 = COPY killed renamable $x13150 ; CHECK-NEXT: PseudoBR %bb.2151 ; CHECK-NEXT: {{ $}}152 ; CHECK-NEXT: bb.2:153 ; CHECK-NEXT: $x2 = frame-destroy ADDI $x8, -2032154 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa $x2, 2032155 ; CHECK-NEXT: $x1 = frame-destroy LD $x2, 2024 :: (load (s64) from %stack.3)156 ; CHECK-NEXT: $x8 = frame-destroy LD $x2, 2016 :: (load (s64) from %stack.4)157 ; CHECK-NEXT: $x18 = frame-destroy LD $x2, 2008 :: (load (s64) from %stack.5)158 ; CHECK-NEXT: $x19 = frame-destroy LD $x2, 2000 :: (load (s64) from %stack.6)159 ; CHECK-NEXT: $x20 = frame-destroy LD $x2, 1992 :: (load (s64) from %stack.7)160 ; CHECK-NEXT: $x21 = frame-destroy LD $x2, 1984 :: (load (s64) from %stack.8)161 ; CHECK-NEXT: $x22 = frame-destroy LD $x2, 1976 :: (load (s64) from %stack.9)162 ; CHECK-NEXT: $x23 = frame-destroy LD $x2, 1968 :: (load (s64) from %stack.10)163 ; CHECK-NEXT: $x24 = frame-destroy LD $x2, 1960 :: (load (s64) from %stack.11)164 ; CHECK-NEXT: $x25 = frame-destroy LD $x2, 1952 :: (load (s64) from %stack.12)165 ; CHECK-NEXT: $x26 = frame-destroy LD $x2, 1944 :: (load (s64) from %stack.13)166 ; CHECK-NEXT: $x27 = frame-destroy LD $x2, 1936 :: (load (s64) from %stack.14)167 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x1168 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x8169 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x18170 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x19171 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x20172 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x21173 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x22174 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x23175 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x24176 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x25177 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x26178 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $x27179 ; CHECK-NEXT: $x2 = frame-destroy ADDI $x2, 2032180 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 0181 ; CHECK-NEXT: PseudoRET182 bb.0:183 successors: %bb.1, %bb.2184 liveins: $x12185 186 dead renamable $x15 = PseudoVSETIVLI 1, 72, implicit-def $vl, implicit-def $vtype187 renamable $v25 = PseudoVMV_V_X_M1 undef $v25, killed renamable $x12, $noreg, 4, 0, implicit $vl, implicit $vtype188 VS1R_V killed renamable $v25, %stack.1 :: (store unknown-size into %stack.1, align 8)189 renamable $x1 = ADDI $x0, 255190 renamable $x5 = nuw ADDI %stack.0, 256191 renamable $x6 = ADDI %stack.0, 384192 renamable $x7 = nuw ADDI %stack.0, 512193 renamable $x10 = ADDI $x0, 128194 renamable $x12 = nuw ADDI %stack.0, 128195 renamable $x14 = COPY $x0196 renamable $x17 = nuw ADDI %stack.0, 128197 renamable $x18 = ADDI %stack.0, 1152198 renamable $x19 = ADDI %stack.0, 1280199 renamable $x20 = ADDI %stack.0, 1408200 renamable $x21 = ADDI %stack.0, 1536201 renamable $x22 = ADDI %stack.0, 1664202 renamable $x23 = ADDI %stack.0, 1792203 renamable $x24 = ADDI %stack.0, 1920204 renamable $x25 = ADDI %stack.0, 0205 renamable $x26 = ADDI %stack.0, 0206 renamable $x27 = ADDI $x0, 2207 renamable $x28 = ADDI %stack.0, 640208 renamable $x29 = ADDI %stack.0, 768209 renamable $x30 = ADDI %stack.0, 896210 renamable $x31 = nuw ADDI %stack.0, 1024211 renamable $x15 = ADDIW renamable $x14, 0212 renamable $x11 = ANDI renamable $x15, 255213 renamable $x13 = SLLI renamable $x11, 3214 renamable $x13 = ADD renamable $x26, killed renamable $x13215 renamable $x13 = LD killed renamable $x13, 0 :: (load (s64))216 renamable $x16 = SUB killed renamable $x13, renamable $x13217 dead renamable $x13 = PseudoVSETIVLI 1, 64, implicit-def $vl, implicit-def $vtype218 renamable $x13 = nsw ADDI renamable $x16, -2219 renamable $v0 = VL1RE8_V %stack.1 :: (load unknown-size from %stack.1, align 8)220 renamable $v0 = PseudoVSLIDEDOWN_VX_M1 undef renamable $v0, killed renamable $v0, killed renamable $x13, $noreg, 3, 1, implicit $vl, implicit $vtype221 renamable $x13 = PseudoVMV_X_S killed renamable $v0, 3, implicit $vl, implicit $vtype222 BLT killed renamable $x16, renamable $x27, %bb.2223 224 bb.1:225 successors: %bb.2226 liveins: $x1, $x5, $x6, $x7, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x17, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $x29, $x30, $x31227 228 renamable $x10 = COPY killed renamable $x13229 PseudoBR %bb.2230 231 bb.2:232 PseudoRET233...234