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.
85 lines
2.6 KiB
YAML
85 lines
2.6 KiB
YAML
# RUN: llc -mcpu=future -mtriple=powerpc64le-unknown-unknown %s \
|
|
# RUN: -start-before=ppc-branch-select -verify-machineinstrs \
|
|
# RUN: -filetype=obj -o - | llvm-objdump --mcpu=future -d -r - | \
|
|
# RUN: FileCheck --check-prefix=CHECK-LE %s
|
|
# RUN: llc -mcpu=future -mtriple=powerpc64-unknown-unknown %s \
|
|
# RUN: -start-before=ppc-branch-select -verify-machineinstrs \
|
|
# RUN: -filetype=obj -o - | llvm-objdump --mcpu=future -d -r - | \
|
|
# RUN: FileCheck --check-prefix=CHECK-BE %s
|
|
|
|
# The purpose of this test is to check that long branches are selected correctly
|
|
# when we have prefixed instructions that may require alignment. Prefixed
|
|
# instructions may require alignment and so an additional 4 bytes may be added.
|
|
# If those 4 bytes put the target of the branch past the range of a short branch
|
|
# then we should use a long branch like in this test.
|
|
|
|
---
|
|
name: longbranchtest
|
|
alignment: 16
|
|
exposesReturnsTwice: false
|
|
legalized: false
|
|
regBankSelected: false
|
|
selected: false
|
|
failedISel: false
|
|
tracksRegLiveness: true
|
|
hasWinCFI: false
|
|
registers: []
|
|
liveins:
|
|
- { reg: '$x3', virtual-reg: '' }
|
|
frameInfo:
|
|
isFrameAddressTaken: false
|
|
isReturnAddressTaken: false
|
|
hasStackMap: false
|
|
hasPatchPoint: false
|
|
stackSize: 0
|
|
offsetAdjustment: 0
|
|
maxAlignment: 1
|
|
adjustsStack: false
|
|
hasCalls: false
|
|
stackProtector: ''
|
|
maxCallFrameSize: 0
|
|
cvBytesOfCalleeSavedRegisters: 0
|
|
hasOpaqueSPAdjustment: false
|
|
hasVAStart: false
|
|
hasMustTailInVarArgFunc: false
|
|
localFrameSize: 0
|
|
savePoint: []
|
|
restorePoint: []
|
|
fixedStack: []
|
|
stack: []
|
|
callSites: []
|
|
constants: []
|
|
machineFunctionInfo: {}
|
|
body: |
|
|
bb.0.entry:
|
|
successors: %bb.1(0x30000000), %bb.2(0x50000000)
|
|
liveins: $x3
|
|
renamable $cr0 = CMPLWI killed renamable $r3, 0, implicit $x3
|
|
BCC 76, killed renamable $cr0, %bb.1
|
|
bb.2:
|
|
renamable $x3 = LI8 2
|
|
INLINEASM &".space 32744", 1
|
|
renamable $x3 = PADDI8 $x3, 13
|
|
BLR8 implicit $lr8, implicit $rm, implicit killed $x3
|
|
bb.1:
|
|
renamable $x3 = LI8 1
|
|
INLINEASM &".space 32744", 1
|
|
renamable $x3 = PADDI8 $x3, 21
|
|
BLR8 implicit $lr8, implicit $rm, implicit killed $x3
|
|
|
|
...
|
|
|
|
# Check for the long branch.
|
|
# CHECK-LE: 08 00 82 4{{[01]}} b{{[tf]}} 2, 0xc
|
|
# CHECK-LE-NEXT: fc 7f 00 48 b 0x8004
|
|
# CHECK-LE-DAG: paddi 3, 3, 13, 0
|
|
# CHECK-LE-DAG: paddi 3, 3, 21, 0
|
|
# CHECK-LE: blr
|
|
# CHECK-BE: 4{{[01]}} 82 00 08 b{{[tf]}} 2, 0xc
|
|
# CHECK-BE-NEXT: 48 00 7f fc b 0x8004
|
|
# CHECK-BE-DAG: paddi 3, 3, 13, 0
|
|
# CHECK-BE-DAG: paddi 3, 3, 21, 0
|
|
# CHECK-BE: blr
|
|
|
|
|