144 lines · plain
1# REQUIRES: asserts2# RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 \3# RUN: -start-before=prologepilog -debug-only=reginfo --filetype=null \4# RUN: -verify-machineinstrs %s 2>&1 >/dev/null | FileCheck %s --check-prefix=P85# RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr9 \6# RUN: -start-before=prologepilog -debug-only=reginfo --filetype=null \7# RUN: -verify-machineinstrs %s 2>&1 >/dev/null | FileCheck %s --check-prefix=P98# RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr9 \9# RUN: -start-before=prologepilog -debug-only=reginfo \10# RUN: --filetype=null -ppc-enable-pe-vector-spills \11# RUN: -verify-machineinstrs %s 2>&1 >/dev/null | FileCheck %s --check-prefix=P9-REGSPILL12# RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr10 \13# RUN: -start-before=prologepilog -debug-only=reginfo --filetype=null \14# RUN: -verify-machineinstrs %s 2>&1 >/dev/null | FileCheck %s -check-prefix=P1015 16---17name: SpillGPR18alignment: 1619tracksRegLiveness: true20liveins:21body: |22 bb.0.entry:23 $r14 = IMPLICIT_DEF24 $r15 = IMPLICIT_DEF25 $r16 = IMPLICIT_DEF26 $r17 = IMPLICIT_DEF27 $lr8 = IMPLICIT_DEF28 BLR8 implicit undef $lr8, implicit undef $rm29## TODO: Calling requiresFrameIndexScavenging from PEI::runOnMachineFunction30## always returns TRUE because MFI.isCalleeSavedInfoValid() always31## indicates that the callee saved info is invalid at that point. The32## info becomes valid for later calls. Can we do better?33# P8: requiresFrameIndexScavenging for SpillGPR.34# P8: TRUE - Invalid callee saved info.35# P8: requiresFrameIndexScavenging for SpillGPR.36# P8: FALSE - Scavenging is not required.37# P9: requiresFrameIndexScavenging for SpillGPR.38# P9: TRUE - Invalid callee saved info.39# P9: requiresFrameIndexScavenging for SpillGPR.40# P9: FALSE - Scavenging is not required.41# P9-REGSPILL: requiresFrameIndexScavenging for SpillGPR.42# P9-REGSPILL: TRUE - Invalid callee saved info.43# P9-REGSPILL: requiresFrameIndexScavenging for SpillGPR.44# P9-REGSPILL: FALSE - Scavenging is not required.45# P10: requiresFrameIndexScavenging for SpillGPR.46# P10: TRUE - Invalid callee saved info.47# P10: requiresFrameIndexScavenging for SpillGPR.48# P10: FALSE - Scavenging is not required.49...50 51---52name: SpillFPR53alignment: 1654tracksRegLiveness: true55liveins:56body: |57 bb.0.entry:58 $f14 = IMPLICIT_DEF59 $f15 = IMPLICIT_DEF60 $f16 = IMPLICIT_DEF61 $f17 = IMPLICIT_DEF62 $lr8 = IMPLICIT_DEF63 BLR8 implicit undef $lr8, implicit undef $rm64 65# P8: requiresFrameIndexScavenging for SpillFPR.66# P8: TRUE - Invalid callee saved info.67# P8: requiresFrameIndexScavenging for SpillFPR.68# P8: FALSE - Scavenging is not required.69# P9: requiresFrameIndexScavenging for SpillFPR.70# P9: TRUE - Invalid callee saved info.71# P9: requiresFrameIndexScavenging for SpillFPR.72# P9: FALSE - Scavenging is not required.73# P9-REGSPILL: requiresFrameIndexScavenging for SpillFPR.74# P9-REGSPILL: TRUE - Invalid callee saved info.75# P9-REGSPILL: requiresFrameIndexScavenging for SpillFPR.76# P9-REGSPILL: FALSE - Scavenging is not required.77# P10: requiresFrameIndexScavenging for SpillFPR.78# P10: TRUE - Invalid callee saved info.79# P10: requiresFrameIndexScavenging for SpillFPR.80# P10: FALSE - Scavenging is not required.81...82 83---84name: SpillVR85alignment: 1686tracksRegLiveness: true87liveins:88body: |89 bb.0.entry:90 $v20 = IMPLICIT_DEF91 $v21 = IMPLICIT_DEF92 $v22 = IMPLICIT_DEF93 $v23 = IMPLICIT_DEF94 $lr8 = IMPLICIT_DEF95 BLR8 implicit undef $lr8, implicit undef $rm96 97# P8: requiresFrameIndexScavenging for SpillVR.98# P8: TRUE - Invalid callee saved info.99# P8: requiresFrameIndexScavenging for SpillVR.100# P8: Memory Operand: STVX for register $v20.101# P8: TRUE - Memory operand is X-Form.102# P9: requiresFrameIndexScavenging for SpillVR.103# P9: TRUE - Invalid callee saved info.104# P9: requiresFrameIndexScavenging for SpillVR.105# P9: Memory Operand: STVX for register $v20.106# P9: TRUE - Memory operand is X-Form.107# P9-REGSPILL: requiresFrameIndexScavenging for SpillVR.108# P9-REGSPILL: TRUE - Invalid callee saved info.109# P9-REGSPILL: requiresFrameIndexScavenging for SpillVR.110# P9-REGSPILL: Memory Operand: STVX for register $v20.111# P9-REGSPILL: TRUE - Memory operand is X-Form.112# P10: requiresFrameIndexScavenging for SpillVR.113# P10: TRUE - Invalid callee saved info.114# P10: requiresFrameIndexScavenging for SpillVR.115# P10: Memory Operand: STVX for register $v20.116# P10: TRUE - Memory operand is X-Form.117...118 119---120name: SpillMixed121alignment: 16122tracksRegLiveness: true123liveins:124body: |125 bb.0.entry:126 $r14 = IMPLICIT_DEF127 $r15 = IMPLICIT_DEF128 $f16 = IMPLICIT_DEF129 $f17 = IMPLICIT_DEF130 $v20 = IMPLICIT_DEF131 $v21 = IMPLICIT_DEF132 $lr8 = IMPLICIT_DEF133 BLR8 implicit undef $lr8, implicit undef $rm134 135# P8: requiresFrameIndexScavenging for SpillMixed.136# P8: TRUE - Invalid callee saved info.137# P9: requiresFrameIndexScavenging for SpillMixed.138# P9: TRUE - Invalid callee saved info.139# P9-REGSPILL: requiresFrameIndexScavenging for SpillMixed.140# P9-REGSPILL: TRUE - Invalid callee saved info.141# P10: requiresFrameIndexScavenging for SpillMixed.142# P10: TRUE - Invalid callee saved info.143...144