[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / PowerPC / convert-rr-to-ri-instr-add.mir
blob334ab61567cf63489d9c6570cf7b19de49e7049a
1 # RUN: llc -mtriple=powerpc64le--linux-gnu -stop-after ppc-pre-emit-peephole %s -o - -verify-machineinstrs | FileCheck %s
3 ---
4 # ADDI8 + STFSX can be converted to ADDI8 + STFS even ADDI8 can not be erased.
5 name: testFwdOperandKilledAfter
6 # CHECK: name: testFwdOperandKilledAfter
7 tracksRegLiveness: true
8 body: |
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()
20 name: testReadsSubRegADDI
21 # CHECK: name: testReadsSubRegADDI
22 tracksRegLiveness: true
23 body: |
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 ...