43 lines · plain
1// RUN: %clang %cflags -o %t %s2// RUN: llvm-bolt --print-cfg --print-only=_start -o %t.null %t \3// RUN: | FileCheck %s4 5 .data6 .globl d7 .p2align 38d:9 .dword 010 11 .text12 .globl _start13 .p2align 114// CHECK-LABEL: Binary Function "_start" after building cfg {15_start:16/// The local label is used for %pcrel_lo as well as a jump target so a new17/// basic block should start there.18// CHECK-LABEL: {{^}}.LBB0019// CHECK: nop20// CHECK-LABEL: {{^}}.Ltmp021// CHECK: auipc t0, %pcrel_hi(d) # Label: .Ltmp122// CHECK-NEXT: ld t0, %pcrel_lo(.Ltmp1)(t0)23// CHECK-NEXT: j .Ltmp024 nop251:26 auipc t0, %pcrel_hi(d)27 ld t0, %pcrel_lo(1b)(t0)28 j 1b29 30/// The local label is used only for %pcrel_lo so no new basic block should31/// start there.32// CHECK-LABEL: {{^}}.LFT033// CHECK: nop34// CHECK-NEXT: auipc t0, %pcrel_hi(d) # Label: .Ltmp235// CHECK-NEXT: ld t0, %pcrel_lo(.Ltmp2)(t0)36// CHECK-NEXT: ret37 nop381:39 auipc t0, %pcrel_hi(d)40 ld t0, %pcrel_lo(1b)(t0)41 ret42 .size _start, .-_start43