1@ 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 2@ 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 3 4foo: 5 6 // Branches 7 .arm 8 b foo 9 ble foo 10@ CHECK: 0: b 0x0 <foo> @ imm = #-8 11@ CHECK: 4: ble 0x0 <foo> @ imm = #-12 12 13 .thumb 14 b foo 15 b.w foo 16 ble foo 17 ble.w foo 18 le foo 19 le lr, foo 20 cbz r0, bar 21 cbnz r0, bar 22@ CHECK: 8: b 0x0 <foo> @ imm = #-12 23@ CHECK: a: b.w 0x0 <foo> @ imm = #-14 24@ CHECK: e: ble 0x0 <foo> @ imm = #-18 25@ CHECK: 10: ble.w 0x0 <foo> @ imm = #-20 26@ CHECK: 14: le 0x0 <foo> @ imm = #-24 27@ CHECK: 18: le lr, 0x0 <foo> @ imm = #-28 28@ CHECK: 1c: cbz r0, 0x48 <bar> @ imm = #40 29@ CHECK: 1e: cbnz r0, 0x48 <bar> @ imm = #38 30 31 // Calls without relocations (these offsets al correspond to label foo). 32 .arm 33 bl #-40 34 blx #-44 35 bleq #-48 36@ CHECK: 20: bl 0x0 <foo> @ imm = #-40 37@ CHECK: 24: blx 0x0 <foo> @ imm = #-44 38@ CHECK: 28: bleq 0x0 <foo> @ imm = #-48 39 40 .thumb 41 bl #-48 42 blx #-52 43@ CHECK: 2c: bl 0x0 <foo> @ imm = #-48 44@ CHECK: 30: blx 0x0 <foo> @ imm = #-52 45 46 // Calls with relocations. These currently emit a reference to their own 47 // location, because we don't take relocations into account when printing 48 // branch targets. 49 .arm 50 bl baz 51 blx baz 52 bleq baz 53@ CHECK: 34: bl {{.+}} @ imm = #-8 54@ CHECK: 00000034: R_ARM_CALL baz 55@ CHECK: 38: blx {{.+}} @ imm = #-8 56@ CHECK: 00000038: R_ARM_CALL baz 57@ CHECK: 3c: bleq {{.+}} @ imm = #-8 58@ CHECK: 0000003c: R_ARM_JUMP24 baz 59 60 .thumb 61 bl baz 62 blx baz 63@ CHECK: 40: bl {{.+}} @ imm = #-4 64@ CHECK: 00000040: R_ARM_THM_CALL baz 65@ CHECK: 44: blx {{.+}} @ imm = #-4 66@ CHECK: 00000044: R_ARM_THM_CALL baz 67 68bar: 69