163 lines · plain
1# RUN: llc -mcpu=pwr9 -mtriple=powerpc64-unknown-linux-gnu -start-after \ 2# RUN: ppc-mi-peepholes -ppc-late-peephole %s -o - | FileCheck %s 3 4---5name: testLXSSPX6alignment: 167exposesReturnsTwice: false8legalized: false9regBankSelected: false10selected: false11tracksRegLiveness: true12registers:13 - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }14 - { id: 1, class: g8rc, preferred-register: '' }15 - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }16 - { id: 3, class: gprc, preferred-register: '' }17 - { id: 4, class: g8rc, preferred-register: '' }18 - { id: 5, class: g8rc, preferred-register: '' }19 - { id: 6, class: g8rc, preferred-register: '' }20 - { id: 7, class: vssrc, preferred-register: '' }21 - { id: 8, class: gprc, preferred-register: '' }22 - { id: 9, class: g8rc, preferred-register: '' }23 - { id: 10, class: g8rc, preferred-register: '' }24 - { id: 11, class: g8rc, preferred-register: '' }25 - { id: 12, class: vssrc, preferred-register: '' }26 - { id: 13, class: vssrc, preferred-register: '' }27liveins:28 - { reg: '$x3', virtual-reg: '%0' }29 - { reg: '$x4', virtual-reg: '%1' }30body: |31 bb.0.entry:32 liveins: $x3, $x433 34 %1 = COPY $x435 %0 = COPY $x336 %2 = COPY %1.sub_3237 %3 = ADDI %2, 138 %5 = IMPLICIT_DEF39 %4 = INSERT_SUBREG %5, killed %3, 140 %6 = LI8 9741 %7 = LXSSPX %0, killed %6, implicit $rm42 ; CHECK: lfs [[REG1:[0-9]+]], 97(3)43 %8 = ADDI %2, 244 %10 = IMPLICIT_DEF45 %9 = INSERT_SUBREG %10, killed %8, 146 %11 = LI8 -9247 %12 = LXSSPX %0, killed %11, implicit $rm48 ; CHECK-NEXT: lfs [[REG2:[0-9]+]], -92(3)49 %13 = XSADDSP killed %7, killed %1250 ; CHECK-NEXT: xsaddsp {{[0-9]+}}, [[REG1]], [[REG2]]51 $f1 = COPY %1352 BLR8 implicit $lr8, implicit $rm, implicit $f153...54 55 56---57name: testLXSDX58tracksRegLiveness: true59registers: 60 - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }61 - { id: 1, class: g8rc, preferred-register: '' }62 - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }63 - { id: 3, class: gprc, preferred-register: '' }64 - { id: 4, class: g8rc, preferred-register: '' }65 - { id: 5, class: g8rc, preferred-register: '' }66 - { id: 6, class: g8rc, preferred-register: '' }67 - { id: 7, class: vsfrc, preferred-register: '' }68 - { id: 8, class: gprc, preferred-register: '' }69 - { id: 9, class: g8rc, preferred-register: '' }70 - { id: 10, class: g8rc, preferred-register: '' }71 - { id: 11, class: g8rc, preferred-register: '' }72 - { id: 12, class: vsfrc, preferred-register: '' }73 - { id: 13, class: vsfrc, preferred-register: '' }74liveins: 75 - { reg: '$x3', virtual-reg: '%0' }76 - { reg: '$x4', virtual-reg: '%1' }77body: |78 bb.0.entry:79 liveins: $x3, $x480 81 %1 = COPY $x482 %0 = COPY $x383 %2 = COPY %1.sub_3284 %3 = ADDI %2, 185 %5 = IMPLICIT_DEF86 %4 = INSERT_SUBREG %5, killed %3, 187 %6 = LI8 9988 %7 = LXSDX %0, killed %6, implicit $rm89 ; CHECK: lfd [[REG1:[0-9]+]], 99(3)90 %8 = ADDI %2, 291 %10 = IMPLICIT_DEF92 %9 = INSERT_SUBREG %10, killed %8, 193 %11 = LI8 -12094 %12 = LXSDX %0, killed %11, implicit $rm95 ; CHECK-NEXT: lfd [[REG2:[0-9]+]], -120(3)96 %13 = XSADDDP killed %7, killed %12, implicit $rm97 ; CHECK-NEXT: xsadddp {{[0-9]+}}, [[REG1]], [[REG2]]98 $f1 = COPY %1399 BLR8 implicit $lr8, implicit $rm, implicit $f1100...101 102 103---104name: testSTXSSPX105alignment: 16106exposesReturnsTwice: false107legalized: false108regBankSelected: false109selected: false110tracksRegLiveness: true111registers:112 - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }113 - { id: 1, class: vssrc, preferred-register: '' }114 - { id: 2, class: g8rc, preferred-register: '' }115 - { id: 3, class: g8rc, preferred-register: '' }116liveins:117 - { reg: '$x3', virtual-reg: '%0' }118 - { reg: '$f1', virtual-reg: '%1' }119 - { reg: '$x5', virtual-reg: '%2' }120body: |121 bb.0.entry:122 liveins: $x3, $f1, $x5123 124 %2 = COPY $x5125 %1 = COPY $f1126 %0 = COPY $x3127 %3 = LI8 443128 STXSSPX %1, %0, killed %3, implicit $rm129 ; CHECK: stfs {{[0-9]+}}, 443(3)130 BLR8 implicit $lr8, implicit $rm131...132 133 134---135name: testSTXSDX136alignment: 16137exposesReturnsTwice: false138legalized: false139regBankSelected: false140selected: false141tracksRegLiveness: true142registers:143 - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }144 - { id: 1, class: vsfrc, preferred-register: '' }145 - { id: 2, class: g8rc, preferred-register: '' }146 - { id: 3, class: g8rc, preferred-register: '' }147liveins:148 - { reg: '$x3', virtual-reg: '%0' }149 - { reg: '$f1', virtual-reg: '%1' }150 - { reg: '$x5', virtual-reg: '%2' }151body: |152 bb.0.entry:153 liveins: $x3, $f1, $x5154 155 %2 = COPY $x5156 %1 = COPY $f1157 %0 = COPY $x3158 %3 = LI8 7159 STXSDX %1, %0, killed %3, implicit $rm160 ; CHECK: stfd {{[0-9]+}}, 7(3)161 BLR8 implicit $lr8, implicit $rm162...163