| # RUN: llc -mcpu=pwr9 -mtriple=powerpc64-unknown-linux-gnu -start-after \ |
| # RUN: ppc-mi-peepholes -ppc-late-peephole %s -o - | FileCheck %s |
| |
| --- |
| name: testLXSSPX |
| alignment: 4 |
| exposesReturnsTwice: false |
| legalized: false |
| regBankSelected: false |
| selected: false |
| tracksRegLiveness: true |
| registers: |
| - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' } |
| - { id: 1, class: g8rc, preferred-register: '' } |
| - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' } |
| - { id: 3, class: gprc, preferred-register: '' } |
| - { id: 4, class: g8rc, preferred-register: '' } |
| - { id: 5, class: g8rc, preferred-register: '' } |
| - { id: 6, class: g8rc, preferred-register: '' } |
| - { id: 7, class: vssrc, preferred-register: '' } |
| - { id: 8, class: gprc, preferred-register: '' } |
| - { id: 9, class: g8rc, preferred-register: '' } |
| - { id: 10, class: g8rc, preferred-register: '' } |
| - { id: 11, class: g8rc, preferred-register: '' } |
| - { id: 12, class: vssrc, preferred-register: '' } |
| - { id: 13, class: vssrc, preferred-register: '' } |
| liveins: |
| - { reg: '$x3', virtual-reg: '%0' } |
| - { reg: '$x4', virtual-reg: '%1' } |
| body: | |
| bb.0.entry: |
| liveins: $x3, $x4 |
| |
| %1 = COPY $x4 |
| %0 = COPY $x3 |
| %2 = COPY %1.sub_32 |
| %3 = ADDI %2, 1 |
| %5 = IMPLICIT_DEF |
| %4 = INSERT_SUBREG %5, killed %3, 1 |
| %6 = LI8 97 |
| %7 = LXSSPX %0, killed %6, implicit $rm |
| ; CHECK: lfs [[REG1:[0-9]+]], 97(3) |
| %8 = ADDI %2, 2 |
| %10 = IMPLICIT_DEF |
| %9 = INSERT_SUBREG %10, killed %8, 1 |
| %11 = LI8 -92 |
| %12 = LXSSPX %0, killed %11, implicit $rm |
| ; CHECK-NEXT: lfs [[REG2:[0-9]+]], -92(3) |
| %13 = XSADDSP killed %7, killed %12 |
| ; CHECK-NEXT: xsaddsp {{[0-9]+}}, [[REG1]], [[REG2]] |
| $f1 = COPY %13 |
| BLR8 implicit $lr8, implicit $rm, implicit $f1 |
| ... |
| |
| |
| --- |
| name: testLXSDX |
| tracksRegLiveness: true |
| registers: |
| - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' } |
| - { id: 1, class: g8rc, preferred-register: '' } |
| - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' } |
| - { id: 3, class: gprc, preferred-register: '' } |
| - { id: 4, class: g8rc, preferred-register: '' } |
| - { id: 5, class: g8rc, preferred-register: '' } |
| - { id: 6, class: g8rc, preferred-register: '' } |
| - { id: 7, class: vsfrc, preferred-register: '' } |
| - { id: 8, class: gprc, preferred-register: '' } |
| - { id: 9, class: g8rc, preferred-register: '' } |
| - { id: 10, class: g8rc, preferred-register: '' } |
| - { id: 11, class: g8rc, preferred-register: '' } |
| - { id: 12, class: vsfrc, preferred-register: '' } |
| - { id: 13, class: vsfrc, preferred-register: '' } |
| liveins: |
| - { reg: '$x3', virtual-reg: '%0' } |
| - { reg: '$x4', virtual-reg: '%1' } |
| body: | |
| bb.0.entry: |
| liveins: $x3, $x4 |
| |
| %1 = COPY $x4 |
| %0 = COPY $x3 |
| %2 = COPY %1.sub_32 |
| %3 = ADDI %2, 1 |
| %5 = IMPLICIT_DEF |
| %4 = INSERT_SUBREG %5, killed %3, 1 |
| %6 = LI8 99 |
| %7 = LXSDX %0, killed %6, implicit $rm |
| ; CHECK: lfd [[REG1:[0-9]+]], 99(3) |
| %8 = ADDI %2, 2 |
| %10 = IMPLICIT_DEF |
| %9 = INSERT_SUBREG %10, killed %8, 1 |
| %11 = LI8 -120 |
| %12 = LXSDX %0, killed %11, implicit $rm |
| ; CHECK-NEXT: lfd [[REG2:[0-9]+]], -120(3) |
| %13 = XSADDDP killed %7, killed %12, implicit $rm |
| ; CHECK-NEXT: xsadddp {{[0-9]+}}, [[REG1]], [[REG2]] |
| $f1 = COPY %13 |
| BLR8 implicit $lr8, implicit $rm, implicit $f1 |
| ... |
| |
| |
| --- |
| name: testSTXSSPX |
| alignment: 4 |
| exposesReturnsTwice: false |
| legalized: false |
| regBankSelected: false |
| selected: false |
| tracksRegLiveness: true |
| registers: |
| - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' } |
| - { id: 1, class: vssrc, preferred-register: '' } |
| - { id: 2, class: g8rc, preferred-register: '' } |
| - { id: 3, class: g8rc, preferred-register: '' } |
| liveins: |
| - { reg: '$x3', virtual-reg: '%0' } |
| - { reg: '$f1', virtual-reg: '%1' } |
| - { reg: '$x5', virtual-reg: '%2' } |
| body: | |
| bb.0.entry: |
| liveins: $x3, $f1, $x5 |
| |
| %2 = COPY $x5 |
| %1 = COPY $f1 |
| %0 = COPY $x3 |
| %3 = LI8 443 |
| STXSSPX %1, %0, killed %3, implicit $rm |
| ; CHECK: stfs {{[0-9]+}}, 443(3) |
| BLR8 implicit $lr8, implicit $rm |
| ... |
| |
| |
| --- |
| name: testSTXSDX |
| alignment: 4 |
| exposesReturnsTwice: false |
| legalized: false |
| regBankSelected: false |
| selected: false |
| tracksRegLiveness: true |
| registers: |
| - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' } |
| - { id: 1, class: vsfrc, preferred-register: '' } |
| - { id: 2, class: g8rc, preferred-register: '' } |
| - { id: 3, class: g8rc, preferred-register: '' } |
| liveins: |
| - { reg: '$x3', virtual-reg: '%0' } |
| - { reg: '$f1', virtual-reg: '%1' } |
| - { reg: '$x5', virtual-reg: '%2' } |
| body: | |
| bb.0.entry: |
| liveins: $x3, $f1, $x5 |
| |
| %2 = COPY $x5 |
| %1 = COPY $f1 |
| %0 = COPY $x3 |
| %3 = LI8 7 |
| STXSDX %1, %0, killed %3, implicit $rm |
| ; CHECK: stfd {{[0-9]+}}, 7(3) |
| BLR8 implicit $lr8, implicit $rm |
| ... |