Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/test/MC/RISCV/rv64-relaxation.s
# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+c < %s \ | # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+c < %s \ | ||||
# RUN: | llvm-objdump -d -riscv-no-aliases - | FileCheck -check-prefix=INSTR %s | # RUN: | llvm-objdump -d -riscv-no-aliases - | FileCheck -check-prefix=INSTR %s | ||||
# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+c,+relax < %s \ | |||||
# RUN: | llvm-objdump -d -riscv-no-aliases - | FileCheck -check-prefix=RELAX-INSTR %s | |||||
# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+c,+relax < %s \ | |||||
# RUN: | llvm-readobj -r | FileCheck -check-prefix=RELAX-RELOC %s | |||||
FAR_JUMP_NEGATIVE: | FAR_JUMP_NEGATIVE: | ||||
c.nop | c.nop | ||||
.space 2000 | .space 2000 | ||||
FAR_BRANCH_NEGATIVE: | FAR_BRANCH_NEGATIVE: | ||||
c.nop | c.nop | ||||
.space 256 | .space 256 | ||||
NEAR_NEGATIVE: | NEAR_NEGATIVE: | ||||
c.nop | c.nop | ||||
start: | start: | ||||
c.bnez a0, NEAR | c.bnez a0, NEAR | ||||
#INSTR: c.bnez a0, 56 | #INSTR: c.bnez a0, 56 | ||||
#RELAX-INSTR: c.bnez a0, 0 | |||||
#RELAX-RELOC: R_RISCV_RVC_BRANCH | |||||
c.bnez a0, NEAR_NEGATIVE | c.bnez a0, NEAR_NEGATIVE | ||||
#INSTR: c.bnez a0, -4 | #INSTR: c.bnez a0, -4 | ||||
#RELAX-INSTR: c.bnez a0, 0 | |||||
#RELAX-RELOC: R_RISCV_RVC_BRANCH | |||||
c.bnez a0, FAR_BRANCH | c.bnez a0, FAR_BRANCH | ||||
#INSTR-NEXT: bne a0, zero, 310 | #INSTR-NEXT: bne a0, zero, 310 | ||||
#RELAX-INSTR-NEXT: bne a0, zero, 0 | |||||
#RELAX-RELOC: R_RISCV_BRANCH | |||||
c.bnez a0, FAR_BRANCH_NEGATIVE | c.bnez a0, FAR_BRANCH_NEGATIVE | ||||
#INSTR-NEXT: bne a0, zero, -268 | #INSTR-NEXT: bne a0, zero, -268 | ||||
#RELAX-INSTR-NEXT: bne a0, zero, 0 | |||||
#RELAX-RELOC: R_RISCV_BRANCH | |||||
c.bnez a0, FAR_JUMP | c.bnez a0, FAR_JUMP | ||||
#INSTR-NEXT: bne a0, zero, 2304 | #INSTR-NEXT: bne a0, zero, 2304 | ||||
#RELAX-INSTR-NEXT: bne a0, zero, 0 | |||||
#RELAX-RELOC: R_RISCV_BRANCH | |||||
c.bnez a0, FAR_JUMP_NEGATIVE | c.bnez a0, FAR_JUMP_NEGATIVE | ||||
#INSTR-NEXT: bne a0, zero, -2278 | #INSTR-NEXT: bne a0, zero, -2278 | ||||
#RELAX-INSTR-NEXT: bne a0, zero, 0 | |||||
#RELAX-RELOC: R_RISCV_BRANCH | |||||
c.beqz a0, NEAR | c.beqz a0, NEAR | ||||
#INSTR-NEXT: c.beqz a0, 36 | #INSTR-NEXT: c.beqz a0, 36 | ||||
#RELAX-INSTR-NEXT: c.beqz a0, 0 | |||||
#RELAX-RELOC: R_RISCV_RVC_BRANCH | |||||
c.beqz a0, NEAR_NEGATIVE | c.beqz a0, NEAR_NEGATIVE | ||||
#INSTR-NEXT: c.beqz a0, -24 | #INSTR-NEXT: c.beqz a0, -24 | ||||
#RELAX-INSTR-NEXT: c.beqz a0, 0 | |||||
#RELAX-RELOC: R_RISCV_RVC_BRANCH | |||||
c.beqz a0, FAR_BRANCH | c.beqz a0, FAR_BRANCH | ||||
#INSTR-NEXT: beq a0, zero, 290 | #INSTR-NEXT: beq a0, zero, 290 | ||||
#RELAX-INSTR-NEXT: beq a0, zero, 0 | |||||
#RELAX-RELOC: R_RISCV_BRANCH | |||||
c.beqz a0, FAR_BRANCH_NEGATIVE | c.beqz a0, FAR_BRANCH_NEGATIVE | ||||
#INSTR-NEXT: beq a0, zero, -288 | #INSTR-NEXT: beq a0, zero, -288 | ||||
#RELAX-INSTR-NEXT: beq a0, zero, 0 | |||||
#RELAX-RELOC: R_RISCV_BRANCH | |||||
c.beqz a0, FAR_JUMP | c.beqz a0, FAR_JUMP | ||||
#INSTR-NEXT: beq a0, zero, 2284 | #INSTR-NEXT: beq a0, zero, 2284 | ||||
#RELAX-INSTR-NEXT: beq a0, zero, 0 | |||||
#RELAX-RELOC: R_RISCV_BRANCH | |||||
c.beqz a0, FAR_JUMP_NEGATIVE | c.beqz a0, FAR_JUMP_NEGATIVE | ||||
#INSTR-NEXT: beq a0, zero, -2298 | #INSTR-NEXT: beq a0, zero, -2298 | ||||
#RELAX-INSTR-NEXT: beq a0, zero, 0 | |||||
#RELAX-RELOC: R_RISCV_BRANCH | |||||
c.j NEAR | c.j NEAR | ||||
#INSTR-NEXT: c.j 16 | #INSTR-NEXT: c.j 16 | ||||
#RELAX-INSTR-NEXT: c.j 0 | |||||
#RELAX-RELOC: R_RISCV_RVC_JUMP | |||||
c.j NEAR_NEGATIVE | c.j NEAR_NEGATIVE | ||||
#INSTR-NEXT: c.j -44 | #INSTR-NEXT: c.j -44 | ||||
#RELAX-INSTR-NEXT: c.j 0 | |||||
#RELAX-RELOC: R_RISCV_RVC_JUMP | |||||
c.j FAR_BRANCH | c.j FAR_BRANCH | ||||
#INSTR-NEXT: c.j 270 | #INSTR-NEXT: c.j 270 | ||||
#RELAX-INSTR-NEXT: c.j 0 | |||||
#RELAX-RELOC: R_RISCV_RVC_JUMP | |||||
c.j FAR_BRANCH_NEGATIVE | c.j FAR_BRANCH_NEGATIVE | ||||
#INSTR-NEXT: c.j -306 | #INSTR-NEXT: c.j -306 | ||||
#RELAX-INSTR-NEXT: c.j 0 | |||||
#RELAX-RELOC: R_RISCV_RVC_JUMP | |||||
c.j FAR_JUMP | c.j FAR_JUMP | ||||
#INSTR-NEXT: jal zero, 2268 | #INSTR-NEXT: jal zero, 2268 | ||||
#RELAX-INSTR-NEXT: jal zero, 0 | |||||
#RELAX-RELOC: R_RISCV_JAL | |||||
c.j FAR_JUMP_NEGATIVE | c.j FAR_JUMP_NEGATIVE | ||||
#INSTR-NEXT: jal zero, -2314 | #INSTR-NEXT: jal zero, -2314 | ||||
#RELAX-INSTR-NEXT: jal zero, 0 | |||||
#RELAX-RELOC: R_RISCV_JAL | |||||
NEAR: | NEAR: | ||||
c.nop | c.nop | ||||
.space 256 | .space 256 | ||||
FAR_BRANCH: | FAR_BRANCH: | ||||
c.nop | c.nop | ||||
.space 2000 | .space 2000 | ||||
FAR_JUMP: | FAR_JUMP: | ||||
c.nop | c.nop |