blob: 3d5b3891ddff6d4d1dcf0a61a615f010c03d6d0f [file] [log] [blame] [edit]
# Xqcilb - Qualcomm uC Long Branch Extension
# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-xqcilb -M no-aliases -show-encoding \
# RUN: | FileCheck -check-prefixes=CHECK-ENC,CHECK-INST,CHECK-NOALIAS %s
# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+experimental-xqcilb < %s \
# RUN: | llvm-objdump --mattr=+experimental-xqcilb -M no-aliases --no-print-imm-hex -d - \
# RUN: | FileCheck -check-prefixes=CHECK-OBJ,CHECK-OBJ-NOALIAS %s
# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-xqcilb -show-encoding \
# RUN: | FileCheck -check-prefixes=CHECK-ENC,CHECK-INST,CHECK-ALIAS %s
# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+experimental-xqcilb < %s \
# RUN: | llvm-objdump --mattr=+experimental-xqcilb --no-print-imm-hex -d - \
# RUN: | FileCheck -check-prefixes=CHECK-OBJ,CHECK-OBJ-ALIAS %s
# CHECK-INST: qc.e.j -2147483648
# CHECK-OBJ: qc.e.j 0x80000000
# CHECK-ENC: encoding: [0x1f,0x40,0x00,0x00,0x00,0x80]
qc.e.j -2147483648
# CHECK-INST: qc.e.jal 2147483640
# CHECK-OBJ: qc.e.jal 0x7ffffffe
# CHECK-ENC: encoding: [0x9f,0xcc,0x0e,0xfe,0xff,0x7f]
qc.e.jal 2147483640
# Check that compress patterns work as expected
# CHECK-NOALIAS: c.jal -116
# CHECK-ALIAS: jal -116
# CHECK-OBJ-NOALIAS: c.jal 0xffffff98
# CHECK-OBJ-ALIAS: jal 0xffffff98
# CHECK-ENC: encoding: [0x71,0x37]
qc.e.jal 0xffffff8c
# CHECK-NOALIAS: c.j 1024
# CHECK-ALIAS: j 1024
# CHECK-OBJ-NOALIAS: c.j 0x40e
# CHECK-OBJ-ALIAS: j 0x40e
# CHECK-ENC: encoding: [0x01,0xa1]
qc.e.j 1024
# CHECK-NOALIAS: jal ra, 3000
# CHECK-ALIAS: jal 3000
# CHECK-OBJ-NOALIAS: jal ra, 0xbc8
# CHECK-OBJ-ALIAS: jal 0xbc8
# CHECK-ENC: encoding: [0xef,0x00,0x90,0x3b]
qc.e.jal 3000
# CHECK-NOALIAS: jal zero, -3000
# CHECK-ALIAS: j -3000
# CHECK-OBJ-NOALIAS: jal zero, 0xfffff45c
# CHECK-OBJ-ALIAS: j 0xfffff45c
# CHECK-ENC: encoding: [0x6f,0xf0,0x8f,0xc4]
qc.e.j -3000