llvm-project/bolt/test/RISCV/reloc-bb-split.s
Amir Ayupov ab14eb23b6
[BOLT][test] Replace /dev/null with temp file (#73485)
NFC processing time script identifies tests by output filename.
When `/dev/null` is used as output filename, we're unable to tell the
source test, and the reports are unhelpful.
Replace `/dev/null/` with `%t.null` which resolves the issue.
2023-11-27 10:53:18 -08:00

43 lines
990 B
ArmAsm

// RUN: %clang %cflags -o %t %s
// RUN: llvm-bolt --print-cfg --print-only=_start -o %t.null %t \
// RUN: | FileCheck %s
.data
.globl d
.p2align 3
d:
.dword 0
.text
.globl _start
.p2align 1
// CHECK-LABEL: Binary Function "_start" after building cfg {
_start:
/// The local label is used for %pcrel_lo as well as a jump target so a new
/// basic block should start there.
// CHECK-LABEL: {{^}}.LBB00
// CHECK: nop
// CHECK-LABEL: {{^}}.Ltmp0
// CHECK: auipc t0, %pcrel_hi(d) # Label: .Ltmp1
// CHECK-NEXT: ld t0, %pcrel_lo(.Ltmp1)(t0)
// CHECK-NEXT: j .Ltmp0
nop
1:
auipc t0, %pcrel_hi(d)
ld t0, %pcrel_lo(1b)(t0)
j 1b
/// The local label is used only for %pcrel_lo so no new basic block should
/// start there.
// CHECK-LABEL: {{^}}.LFT0
// CHECK: nop
// CHECK-NEXT: auipc t0, %pcrel_hi(d) # Label: .Ltmp2
// CHECK-NEXT: ld t0, %pcrel_lo(.Ltmp2)(t0)
// CHECK-NEXT: ret
nop
1:
auipc t0, %pcrel_hi(d)
ld t0, %pcrel_lo(1b)(t0)
ret
.size _start, .-_start