1# RUN: llc -mtriple=powerpc64le--linux-gnu -stop-after ppc-pre-emit-peephole %s -o - -verify-machineinstrs | FileCheck %s
2
3---
4# ADDI8 + STFSX can be converted to ADDI8 + STFS even ADDI8 can not be erased.
5name: testFwdOperandKilledAfter
6# CHECK: name: testFwdOperandKilledAfter
7tracksRegLiveness: true
8body: |
9  bb.0.entry:
10    liveins: $x3, $f1, $x5
11    $x3 = ADDI8 $x5, 100
12    STFSX killed $f1, $zero8, $x3
13    ; CHECK: STFS killed $f1, 100, $x5
14    STD killed $x3, killed $x5, 100
15    ; CHECK: STD killed $x3, killed $x5, 100
16    BLR8 implicit $lr8, implicit $rm
17...
18---
19# No workaround needed for 64-bit register when calling readsRegister()
20name: testReadsSubRegADDI
21# CHECK: name: testReadsSubRegADDI
22tracksRegLiveness: true
23body: |
24  bb.0.entry:
25    liveins: $x3, $f1, $x5
26    $x3 = ADDI8 $x5, 100
27    ; Following instruction $r3 also reads $x3, ADDI8 can not be erased
28    ; CHECK: $x3 = ADDI8 $x5, 100, implicit-def $r3
29    STW $r3, $x5, 100
30    ; CHECK: STW killed $r3, $x5, 100
31    STFSX killed $f1, $zero8, $x3
32    ; CHECK: STFS killed $f1, 100, $x5
33    STD $x5, $x5, 100
34    BLR8 implicit $lr8, implicit $rm
35...
36