1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/test/CodeGen/PowerPC/ifcvt.mir
Kang Zhang 65fe71d3b0 [PowerPC] Fix the implicit operands in PredicateInstruction()
Summary:
In the function `PPCInstrInfo::PredicateInstruction()`, we will replace
non-Predicate Instructions to Predicate Instruction. But we forget add
the new implicit operands the new Predicate Instruction needed. This
patch is to fix this.

Reviewed By: jsji, efriedma

Differential Revision: https://reviews.llvm.org/D82390
2020-07-22 05:51:03 +00:00

54 lines
1.4 KiB
YAML

# RUN: llc -mtriple=ppc32-- -run-pass=if-converter -o - -verify-machineinstrs \
# RUN: %s | FileCheck %s
---
name: testBDZLR
body: |
bb.0.entry:
successors: %bb.5(0x40000000), %bb.1(0x40000000)
liveins: $r3
renamable $r4 = LI 0
renamable $cr0 = CMPLWI killed renamable $r4, 0
BCC 68, renamable $cr0, %bb.5
bb.1:
successors: %bb.2(0x40000000), %bb.5(0x40000000)
liveins: $cr0, $r3
BCC 68, killed renamable $cr0, %bb.5
bb.2:
successors: %bb.3(0x80000000)
liveins: $r3
MTCTRloop killed renamable $r3, implicit-def dead $ctr
renamable $r3 = LI 0
renamable $r5 = IMPLICIT_DEF
renamable $r4 = LI 0
bb.3:
successors: %bb.4(0x7c000000), %bb.5(0x04000000)
liveins: $r3, $r4, $r5
renamable $r6 = RLWINM renamable $r4, 3, 0, 28
renamable $r4 = ADDIC killed renamable $r4, 1, implicit-def $carry
renamable $r5 = ADD4 killed renamable $r5, killed renamable $r6
renamable $r6 = ADD4 killed renamable $r6, renamable $r6
renamable $r3 = ADDZE killed renamable $r3, implicit-def dead $carry, implicit $carry
BDZ %bb.5, implicit-def $ctr, implicit $ctr
bb.4:
successors: %bb.3(0x80000000)
liveins: $r3, $r4
B %bb.3
bb.5:
BLR implicit $lr, implicit $rm
; CHECK-LABEL: name: testBDZLR
; CHECK: BDZLR implicit $lr, implicit $rm, implicit $ctr, implicit-def $ctr
...