1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/test/CodeGen/PowerPC/stack_pointer_vec_spills.mir
Stefan Pintilie 8ededaf80d [PowerPC][Bug] Fix Bug in Stack Frame Update Code
The stack frame update code does not take into consideration spilling
to registers for callee saved registers. The option -ppc-enable-pe-vector-spills
turns on spilling to registers for callee saved registers and may expose a bug
in the code that moves a stack frame pointer update instruction.

Reviewed By: nemanjai, #powerpc

Differential Revision: https://reviews.llvm.org/D101366
2021-05-11 05:54:07 -05:00

42 lines
1019 B
YAML

# RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr9 \
# RUN: -start-before=prologepilog -ppc-enable-pe-vector-spills \
# RUN: -ppc-asm-full-reg-names -verify-machineinstrs %s -o - | FileCheck %s
---
name: MixedSpill
alignment: 16
tracksRegLiveness: true
liveins:
body: |
bb.0.entry:
$r14 = IMPLICIT_DEF
$f14 = IMPLICIT_DEF
$lr8 = IMPLICIT_DEF
BLR8 implicit undef $lr8, implicit undef $rm
# CHECK-LABEL: MixedSpill
# CHECK: stdu r1, -176(r1)
# CHECK: stfd f14, 32(r1)
# CHECK: mtvsrd vs32, r14
# CHECK: lfd f14, 32(r1)
# CHECK: addi r1, r1, 176
# CHECK: blr
...
---
name: NoStackUpdate
alignment: 16
tracksRegLiveness: true
liveins:
body: |
bb.0.entry:
$r14 = IMPLICIT_DEF
$f14 = IMPLICIT_DEF
BLR8 implicit undef $lr8, implicit undef $rm
# CHECK-LABEL: NoStackUpdate
# CHECK-NOT: stdu
# CHECK: mtvsrd vs32, r14
# CHECK: mfvsrd r14, vs32
# CHECK: blr
...