
In review of bbde6b, I had originally proposed that we support the legacy text format. As review evolved, it bacame clear this had been a bad idea (too much complexity), but in order to let that patch finally move forward, I approved the change with the variant. This change undoes the variant, and updates all the tests to just use the array form.
129 lines
3.8 KiB
YAML
129 lines
3.8 KiB
YAML
# RUN: llc -mtriple=powerpc64le-unknown-unknown -start-before ppc-pre-emit-peephole \
|
|
# RUN: -verify-machineinstrs -ppc-asm-full-reg-names %s -o - | FileCheck %s
|
|
--- |
|
|
; ModuleID = 't.ll'
|
|
source_filename = "t.ll"
|
|
target datalayout = "e-m:e-i64:64-n32:64"
|
|
|
|
define signext i32 @test(i32 signext %a, i32 signext %b, i32 signext %c) {
|
|
entry:
|
|
%cmp = icmp slt i32 %a, %b
|
|
br i1 %cmp, label %return, label %if.end
|
|
|
|
if.end: ; preds = %entry
|
|
%cmp1 = icmp slt i32 %b, %a
|
|
br i1 %cmp1, label %return, label %if.end3
|
|
|
|
if.end3: ; preds = %if.end
|
|
%cmp4 = icmp eq i32 %a, %c
|
|
br i1 %cmp4, label %if.then5, label %if.end6
|
|
|
|
if.then5: ; preds = %if.end3
|
|
%add = shl nsw i32 %a, 1
|
|
br label %return
|
|
|
|
if.end6: ; preds = %if.end3
|
|
%cmp7 = icmp sgt i32 %c, %b
|
|
%add11 = add i32 %c, %b
|
|
%add12 = select i1 %cmp7, i32 %a, i32 0
|
|
%spec.select = add i32 %add11, %add12
|
|
ret i32 %spec.select
|
|
|
|
return: ; preds = %if.then5, %if.end, %entry
|
|
%retval.0 = phi i32 [ %add, %if.then5 ], [ %c, %entry ], [ %b, %if.end ]
|
|
ret i32 %retval.0
|
|
}
|
|
|
|
...
|
|
---
|
|
name: test
|
|
alignment: 16
|
|
exposesReturnsTwice: false
|
|
legalized: false
|
|
regBankSelected: false
|
|
selected: false
|
|
failedISel: false
|
|
tracksRegLiveness: true
|
|
registers:
|
|
liveins:
|
|
- { reg: '$x3', virtual-reg: '' }
|
|
- { reg: '$x4', virtual-reg: '' }
|
|
- { reg: '$x5', virtual-reg: '' }
|
|
frameInfo:
|
|
isFrameAddressTaken: false
|
|
isReturnAddressTaken: false
|
|
hasStackMap: false
|
|
hasPatchPoint: false
|
|
stackSize: 0
|
|
offsetAdjustment: 0
|
|
maxAlignment: 0
|
|
adjustsStack: false
|
|
hasCalls: false
|
|
stackProtector: ''
|
|
maxCallFrameSize: 0
|
|
hasOpaqueSPAdjustment: false
|
|
hasVAStart: false
|
|
hasMustTailInVarArgFunc: false
|
|
localFrameSize: 0
|
|
savePoint: []
|
|
restorePoint: []
|
|
fixedStack:
|
|
stack:
|
|
constants:
|
|
body: |
|
|
bb.0.entry:
|
|
successors: %bb.4(0x40000000), %bb.1(0x40000000)
|
|
liveins: $x3, $x4, $x5
|
|
|
|
renamable $cr0 = CMPW renamable $r3, renamable $r4
|
|
BCC 12, renamable $cr0, %bb.4
|
|
|
|
bb.1.if.end:
|
|
successors: %bb.6(0x40000000), %bb.2(0x40000000)
|
|
liveins: $cr0, $x3, $x4, $x5
|
|
|
|
BCC 36, killed renamable $cr0, %bb.2
|
|
|
|
bb.6:
|
|
liveins: $x4
|
|
|
|
; CHECK: mr r5, r4
|
|
; CHECK-NOT: mr r5, r5
|
|
; CHECK: extsw r3, r5
|
|
$r5 = OR killed $r4, $r4, implicit $x4, implicit-def $x5
|
|
$r5 = OR $r5, $r5, implicit-def $x5
|
|
renamable $x3 = EXTSW_32_64 killed renamable $r5, implicit $x5
|
|
BLR8 implicit $lr8, implicit $rm, implicit killed $x3
|
|
|
|
bb.2.if.end3:
|
|
successors: %bb.3(0x40000000), %bb.5(0x40000000)
|
|
liveins: $x3, $x4, $x5
|
|
|
|
renamable $cr0 = CMPLW renamable $r3, renamable $r5
|
|
BCC 68, killed renamable $cr0, %bb.5
|
|
|
|
bb.3.if.then5:
|
|
successors: %bb.4(0x80000000)
|
|
liveins: $x3
|
|
|
|
renamable $r5 = RLWINM killed renamable $r3, 1, 0, 30, implicit $x3, implicit-def $x5
|
|
|
|
bb.4.return:
|
|
liveins: $x5
|
|
|
|
renamable $x3 = EXTSW_32_64 killed renamable $r5, implicit $x5
|
|
BLR8 implicit $lr8, implicit $rm, implicit killed $x3
|
|
|
|
bb.5.if.end6:
|
|
liveins: $x3, $x4, $x5
|
|
|
|
renamable $cr0 = CMPW renamable $r5, renamable $r4
|
|
renamable $r6 = LI 0
|
|
renamable $r4 = ADD4 killed renamable $r5, killed renamable $r4, implicit $x4, implicit $x5
|
|
renamable $r3 = ISEL killed renamable $r3, killed renamable $r6, killed renamable $cr0gt, implicit $cr0, implicit $x3
|
|
renamable $r3 = ADD4 killed renamable $r4, killed renamable $r3
|
|
renamable $x3 = EXTSW_32_64 killed renamable $r3
|
|
BLR8 implicit $lr8, implicit $rm, implicit killed $x3
|
|
|
|
...
|