144 lines
5.2 KiB
Text
144 lines
5.2 KiB
Text
|
# REQUIRES: asserts
|
||
|
# RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 \
|
||
|
# RUN: -start-before=prologepilog -debug-only=reginfo --filetype=null \
|
||
|
# RUN: -verify-machineinstrs %s 2>&1 >/dev/null | FileCheck %s --check-prefix=P8
|
||
|
# RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr9 \
|
||
|
# RUN: -start-before=prologepilog -debug-only=reginfo --filetype=null \
|
||
|
# RUN: -verify-machineinstrs %s 2>&1 >/dev/null | FileCheck %s --check-prefix=P9
|
||
|
# RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr9 \
|
||
|
# RUN: -start-before=prologepilog -debug-only=reginfo \
|
||
|
# RUN: --filetype=null -ppc-enable-pe-vector-spills \
|
||
|
# RUN: -verify-machineinstrs %s 2>&1 >/dev/null | FileCheck %s --check-prefix=P9-REGSPILL
|
||
|
# RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr10 \
|
||
|
# RUN: -start-before=prologepilog -debug-only=reginfo --filetype=null \
|
||
|
# RUN: -verify-machineinstrs %s 2>&1 >/dev/null | FileCheck %s -check-prefix=P10
|
||
|
|
||
|
---
|
||
|
name: SpillGPR
|
||
|
alignment: 16
|
||
|
tracksRegLiveness: true
|
||
|
liveins:
|
||
|
body: |
|
||
|
bb.0.entry:
|
||
|
$r14 = IMPLICIT_DEF
|
||
|
$r15 = IMPLICIT_DEF
|
||
|
$r16 = IMPLICIT_DEF
|
||
|
$r17 = IMPLICIT_DEF
|
||
|
$lr8 = IMPLICIT_DEF
|
||
|
BLR8 implicit undef $lr8, implicit undef $rm
|
||
|
## TODO: Calling requiresFrameIndexScavenging from PEI::runOnMachineFunction
|
||
|
## always returns TRUE because MFI.isCalleeSavedInfoValid() always
|
||
|
## indicates that the callee saved info is invalid at that point. The
|
||
|
## info becomes valid for later calls. Can we do better?
|
||
|
# P8: requiresFrameIndexScavenging for SpillGPR.
|
||
|
# P8: TRUE - Invalid callee saved info.
|
||
|
# P8: requiresFrameIndexScavenging for SpillGPR.
|
||
|
# P8: FALSE - Scavenging is not required.
|
||
|
# P9: requiresFrameIndexScavenging for SpillGPR.
|
||
|
# P9: TRUE - Invalid callee saved info.
|
||
|
# P9: requiresFrameIndexScavenging for SpillGPR.
|
||
|
# P9: FALSE - Scavenging is not required.
|
||
|
# P9-REGSPILL: requiresFrameIndexScavenging for SpillGPR.
|
||
|
# P9-REGSPILL: TRUE - Invalid callee saved info.
|
||
|
# P9-REGSPILL: requiresFrameIndexScavenging for SpillGPR.
|
||
|
# P9-REGSPILL: FALSE - Scavenging is not required.
|
||
|
# P10: requiresFrameIndexScavenging for SpillGPR.
|
||
|
# P10: TRUE - Invalid callee saved info.
|
||
|
# P10: requiresFrameIndexScavenging for SpillGPR.
|
||
|
# P10: FALSE - Scavenging is not required.
|
||
|
...
|
||
|
|
||
|
---
|
||
|
name: SpillFPR
|
||
|
alignment: 16
|
||
|
tracksRegLiveness: true
|
||
|
liveins:
|
||
|
body: |
|
||
|
bb.0.entry:
|
||
|
$f14 = IMPLICIT_DEF
|
||
|
$f15 = IMPLICIT_DEF
|
||
|
$f16 = IMPLICIT_DEF
|
||
|
$f17 = IMPLICIT_DEF
|
||
|
$lr8 = IMPLICIT_DEF
|
||
|
BLR8 implicit undef $lr8, implicit undef $rm
|
||
|
|
||
|
# P8: requiresFrameIndexScavenging for SpillFPR.
|
||
|
# P8: TRUE - Invalid callee saved info.
|
||
|
# P8: requiresFrameIndexScavenging for SpillFPR.
|
||
|
# P8: FALSE - Scavenging is not required.
|
||
|
# P9: requiresFrameIndexScavenging for SpillFPR.
|
||
|
# P9: TRUE - Invalid callee saved info.
|
||
|
# P9: requiresFrameIndexScavenging for SpillFPR.
|
||
|
# P9: FALSE - Scavenging is not required.
|
||
|
# P9-REGSPILL: requiresFrameIndexScavenging for SpillFPR.
|
||
|
# P9-REGSPILL: TRUE - Invalid callee saved info.
|
||
|
# P9-REGSPILL: requiresFrameIndexScavenging for SpillFPR.
|
||
|
# P9-REGSPILL: FALSE - Scavenging is not required.
|
||
|
# P10: requiresFrameIndexScavenging for SpillFPR.
|
||
|
# P10: TRUE - Invalid callee saved info.
|
||
|
# P10: requiresFrameIndexScavenging for SpillFPR.
|
||
|
# P10: FALSE - Scavenging is not required.
|
||
|
...
|
||
|
|
||
|
---
|
||
|
name: SpillVR
|
||
|
alignment: 16
|
||
|
tracksRegLiveness: true
|
||
|
liveins:
|
||
|
body: |
|
||
|
bb.0.entry:
|
||
|
$v20 = IMPLICIT_DEF
|
||
|
$v21 = IMPLICIT_DEF
|
||
|
$v22 = IMPLICIT_DEF
|
||
|
$v23 = IMPLICIT_DEF
|
||
|
$lr8 = IMPLICIT_DEF
|
||
|
BLR8 implicit undef $lr8, implicit undef $rm
|
||
|
|
||
|
# P8: requiresFrameIndexScavenging for SpillVR.
|
||
|
# P8: TRUE - Invalid callee saved info.
|
||
|
# P8: requiresFrameIndexScavenging for SpillVR.
|
||
|
# P8: Memory Operand: STVX for register $v20.
|
||
|
# P8: TRUE - Memory operand is X-Form.
|
||
|
# P9: requiresFrameIndexScavenging for SpillVR.
|
||
|
# P9: TRUE - Invalid callee saved info.
|
||
|
# P9: requiresFrameIndexScavenging for SpillVR.
|
||
|
# P9: Memory Operand: STVX for register $v20.
|
||
|
# P9: TRUE - Memory operand is X-Form.
|
||
|
# P9-REGSPILL: requiresFrameIndexScavenging for SpillVR.
|
||
|
# P9-REGSPILL: TRUE - Invalid callee saved info.
|
||
|
# P9-REGSPILL: requiresFrameIndexScavenging for SpillVR.
|
||
|
# P9-REGSPILL: Memory Operand: STVX for register $v20.
|
||
|
# P9-REGSPILL: TRUE - Memory operand is X-Form.
|
||
|
# P10: requiresFrameIndexScavenging for SpillVR.
|
||
|
# P10: TRUE - Invalid callee saved info.
|
||
|
# P10: requiresFrameIndexScavenging for SpillVR.
|
||
|
# P10: Memory Operand: STVX for register $v20.
|
||
|
# P10: TRUE - Memory operand is X-Form.
|
||
|
...
|
||
|
|
||
|
---
|
||
|
name: SpillMixed
|
||
|
alignment: 16
|
||
|
tracksRegLiveness: true
|
||
|
liveins:
|
||
|
body: |
|
||
|
bb.0.entry:
|
||
|
$r14 = IMPLICIT_DEF
|
||
|
$r15 = IMPLICIT_DEF
|
||
|
$f16 = IMPLICIT_DEF
|
||
|
$f17 = IMPLICIT_DEF
|
||
|
$v20 = IMPLICIT_DEF
|
||
|
$v21 = IMPLICIT_DEF
|
||
|
$lr8 = IMPLICIT_DEF
|
||
|
BLR8 implicit undef $lr8, implicit undef $rm
|
||
|
|
||
|
# P8: requiresFrameIndexScavenging for SpillMixed.
|
||
|
# P8: TRUE - Invalid callee saved info.
|
||
|
# P9: requiresFrameIndexScavenging for SpillMixed.
|
||
|
# P9: TRUE - Invalid callee saved info.
|
||
|
# P9-REGSPILL: requiresFrameIndexScavenging for SpillMixed.
|
||
|
# P9-REGSPILL: TRUE - Invalid callee saved info.
|
||
|
# P10: requiresFrameIndexScavenging for SpillMixed.
|
||
|
# P10: TRUE - Invalid callee saved info.
|
||
|
...
|