llvm/llvm/test/tools/llvm-objdump/ELF/ARM/branch-symbols.s

@ RUN: llvm-mc < %s --triple=armv8a   -mattr=+mve,+lob -filetype=obj | llvm-objdump --no-print-imm-hex -dr - --triple armv8a --mattr=+mve,+lob --no-show-raw-insn | FileCheck %s
@ RUN: llvm-mc < %s --triple=thumbv8a -mattr=+mve,+lob -filetype=obj | llvm-objdump --no-print-imm-hex -dr - --triple armv8a --mattr=+mve,+lob --no-show-raw-insn | FileCheck %s

foo:

  // Branches
  .arm
  b foo
  ble foo
@ CHECK:       0: b       0x0 <foo>                 @ imm = #-8
@ CHECK:       4: ble     0x0 <foo>                 @ imm = #-12

  .thumb
  b foo
  b.w foo
  ble foo
  ble.w foo
  le foo
  le lr, foo
  cbz r0, bar
  cbnz r0, bar
@ CHECK:       8: b       0x0 <foo>                 @ imm = #-12
@ CHECK:       a: b.w     0x0 <foo>                 @ imm = #-14
@ CHECK:       e: ble     0x0 <foo>                 @ imm = #-18
@ CHECK:      10: ble.w   0x0 <foo>                 @ imm = #-20
@ CHECK:      14: le      0x0 <foo>                 @ imm = #-24
@ CHECK:      18: le      lr, 0x0 <foo>             @ imm = #-28
@ CHECK:      1c: cbz     r0, 0x48 <bar>            @ imm = #40
@ CHECK:      1e: cbnz    r0, 0x48 <bar>            @ imm = #38

  // Calls without relocations (these offsets al correspond to label foo).
  .arm
  bl #-40
  blx #-44
  bleq #-48
@ CHECK:      20:   bl      0x0 <foo>               @ imm = #-40
@ CHECK:      24:   blx     0x0 <foo>               @ imm = #-44
@ CHECK:      28:   bleq    0x0 <foo>               @ imm = #-48

  .thumb
  bl #-48
  blx #-52
@ CHECK:      2c:   bl      0x0 <foo>               @ imm = #-48
@ CHECK:      30:   blx     0x0 <foo>               @ imm = #-52

  // Calls with relocations. These currently emit a reference to their own
  // location, because we don't take relocations into account when printing
  // branch targets.
  .arm
  bl baz
  blx baz
  bleq baz
@ CHECK:      34:   bl      {{.+}}                  @ imm = #-8
@ CHECK:            00000034:  R_ARM_CALL   baz
@ CHECK:      38:   blx     {{.+}}                  @ imm = #-8
@ CHECK:            00000038:  R_ARM_CALL   baz
@ CHECK:      3c:   bleq    {{.+}}                  @ imm = #-8
@ CHECK:            0000003c:  R_ARM_JUMP24 baz

  .thumb
  bl baz
  blx baz
@ CHECK:      40:   bl      {{.+}}                  @ imm = #-4
@ CHECK:            00000040:  R_ARM_THM_CALL baz
@ CHECK:      44:   blx     {{.+}}                  @ imm = #-4
@ CHECK:            00000044:  R_ARM_THM_CALL baz

bar: