mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
65fe71d3b0
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
54 lines
1.4 KiB
YAML
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
|
|
...
|