@ 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 @ imm = #-8 @ CHECK: 4: ble 0x0 @ 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 @ imm = #-12 @ CHECK: a: b.w 0x0 @ imm = #-14 @ CHECK: e: ble 0x0 @ imm = #-18 @ CHECK: 10: ble.w 0x0 @ imm = #-20 @ CHECK: 14: le 0x0 @ imm = #-24 @ CHECK: 18: le lr, 0x0 @ imm = #-28 @ CHECK: 1c: cbz r0, 0x48 @ imm = #40 @ CHECK: 1e: cbnz r0, 0x48 @ imm = #38 // Calls without relocations (these offsets al correspond to label foo). .arm bl #-40 blx #-44 bleq #-48 @ CHECK: 20: bl 0x0 @ imm = #-40 @ CHECK: 24: blx 0x0 @ imm = #-44 @ CHECK: 28: bleq 0x0 @ imm = #-48 .thumb bl #-48 blx #-52 @ CHECK: 2c: bl 0x0 @ imm = #-48 @ CHECK: 30: blx 0x0 @ 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: