diff --git a/llvm/test/tools/llvm-objdump/ELF/RISCV/branches.s b/llvm/test/tools/llvm-objdump/ELF/RISCV/branches.s new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-objdump/ELF/RISCV/branches.s @@ -0,0 +1,80 @@ +# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+c < %s | \ +# RUN: llvm-objdump -d -M no-aliases --no-show-raw-insn - | \ +# RUN: FileCheck %s + +# CHECK-LABEL: : +foo: +# CHECK: beq t0, t1, 0x58 +beq t0, t1, .Llocal +# CHECK: bne t0, t1, 0x58 +bne t0, t1, .Llocal +# CHECK: blt t0, t1, 0x58 +blt t0, t1, .Llocal +# CHECK: bge t0, t1, 0x58 +bge t0, t1, .Llocal +# CHECK: bltu t0, t1, 0x58 +bltu t0, t1, .Llocal +# CHECK: bgeu t0, t1, 0x58 +bgeu t0, t1, .Llocal + +# CHECK: c.beqz a0, 0x58 +beq a0, zero, .Llocal +# CHECK: c.bnez a0, 0x58 +bne a0, zero, .Llocal + +# CHECK: beq t0, t1, 0x60 +beq t0, t1, bar +# CHECK: bne t0, t1, 0x60 +bne t0, t1, bar +# CHECK: blt t0, t1, 0x60 +blt t0, t1, bar +# CHECK: bge t0, t1, 0x60 +bge t0, t1, bar +# CHECK: bltu t0, t1, 0x60 +bltu t0, t1, bar +# CHECK: bgeu t0, t1, 0x60 +bgeu t0, t1, bar + +# CHECK: c.beqz a0, 0x60 +beq a0, zero, bar +# CHECK: c.bnez a0, 0x60 +bne a0, zero, bar + +# CHECK: jal t0, 0x58 +jal t0, .Llocal +# CHECK: c.jal 0x58 +c.jal .Llocal + +# CHECK: c.j 0x58 +c.j .Llocal + +# CHECK: jal t0, 0x60 +jal t0, bar +# CHECK: c.jal 0x60 +c.jal bar + +# CHECK: c.j 0x60 +c.j bar + +# CHECK: auipc ra, 0 +# CHECK: jalr ra, 16(ra){{$}} +call .Llocal + +# CHECK: auipc ra, 0 +# CHECK: jalr ra, 16(ra){{$}} +call bar + +.Llocal: +# CHECK: 58: c.nop +# CHECK: c.nop +# CHECK: c.nop +# CHECK: c.nop +nop +nop +nop +nop + +# CHECK-LABEL: : +bar: +# CHECK: 60: c.nop +nop