blob: 88f7813d50915a0859acc5ca8571bd886fe99e8c [file] [log] [blame]
# Xqcibi - Qualcomm uC Branch Immediate Extension
# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-xqcibi -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-xqcibi < %s \
# RUN: | llvm-objdump --mattr=+experimental-xqcibi -M no-aliases -d - \
# RUN: | FileCheck -check-prefixes=CHECK-OBJ %s
# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-xqcibi -show-encoding \
# RUN: | FileCheck -check-prefixes=CHECK-ENC,CHECK-INST,CHECK-ALIAS %s
# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+experimental-xqcibi < %s \
# RUN: | llvm-objdump --mattr=+experimental-xqcibi -d - \
# RUN: | FileCheck -check-prefix=CHECK-OBJ %s
# CHECK-INST: qc.beqi s0, 12, 346
# CHECK-OBJ: qc.beqi s0, 0xc, 0x15a
# CHECK-ENC: encoding: [0x7b,0x0d,0xc4,0x14]
qc.beqi x8, 12, 346
# CHECK-INST: qc.bnei tp, 15, 4094
# CHECK-OBJ: qc.bnei tp, 0xf, 0x1002
# CHECK-ENC: encoding: [0xfb,0x1f,0xf2,0x7e]
qc.bnei x4, 15, 4094
# CHECK-INST: qc.bgei a0, 1, -4096
# CHECK-OBJ: qc.bgei a0, 0x1, 0xfffff008
# CHECK-ENC: encoding: [0x7b,0x50,0x15,0x80]
qc.bgei x10, 1, -4096
# CHECK-INST: qc.blti ra, 6, 2000
# CHECK-OBJ: qc.blti ra, 0x6, 0x7dc
# CHECK-ENC: encoding: [0x7b,0xc8,0x60,0x7c]
qc.blti x1, 6, 2000
# CHECK-INST: qc.bgeui a2, 11, 128
# CHECK-OBJ: qc.bgeui a2, 0xb, 0x90
# CHECK-ENC: encoding: [0x7b,0x70,0xb6,0x08]
qc.bgeui x12, 11, 128
# CHECK-INST: qc.bltui sp, 7, 666
# CHECK-OBJ: qc.bltui sp, 0x7, 0x2ae
# CHECK-ENC: encoding: [0x7b,0x6d,0x71,0x28]
qc.bltui x2, 7, 666
# CHECK-INST: qc.e.beqi ra, 111, 2
# CHECK-OBJ: qc.e.beqi ra, 0x6f, 0x1a
# CHECK-ENC: encoding: [0x1f,0xc1,0x80,0x01,0x6f,0x00]
qc.e.beqi x1, 111, 2
# CHECK-INST: qc.e.bnei tp, 115, 4094
# CHECK-OBJ: qc.e.bnei tp, 0x73, 0x101c
# CHECK-ENC: encoding: [0x9f,0x4f,0x92,0x7f,0x73,0x00]
qc.e.bnei x4, 115, 4094
# CHECK-INST: qc.e.bgei a0, -32768, -4096
# CHECK-OBJ: qc.e.bgei a0, -0x8000, 0xfffff024
# CHECK-ENC: encoding: [0x1f,0x40,0xd5,0x81,0x00,0x80]
qc.e.bgei x10, -32768, -4096
# CHECK-INST: qc.e.blti ra, 32767, 2000
# CHECK-OBJ: qc.e.blti ra, 0x7fff, 0x7fa
# CHECK-ENC: encoding: [0x1f,0xc8,0xc0,0x7d,0xff,0x7f]
qc.e.blti x1, 32767, 2000
# CHECK-INST: qc.e.bgeui a2, 711, 128
# CHECK-OBJ: qc.e.bgeui a2, 0x2c7, 0xb0
# CHECK-ENC: encoding: [0x1f,0x40,0xf6,0x09,0xc7,0x02]
qc.e.bgeui x12, 711, 128
# CHECK-INST: qc.e.bltui sp, 77, 666
# CHECK-OBJ: qc.e.bltui sp, 0x4d, 0x2d0
# CHECK-ENC: encoding: [0x1f,0x4d,0xe1,0x29,0x4d,0x00]
qc.e.bltui x2, 77, 666
# Check that compress patterns work as expected
# CHECK-NOALIAS: beqi ra, 11, 2
# CHECK-ALIAS: qc.beqi ra, 11, 2
# CHECK-OBJ: qc.beqi ra, 0xb, 0x3e
# CHECK-ENC: encoding: [0x7b,0x81,0xb0,0x00]
qc.e.beqi x1, 11, 2
# CHECK-NOALIAS: bnei ra, 11, 2
# CHECK-ALIAS: qc.bnei ra, 11, 2
# CHECK-OBJ: qc.bnei ra, 0xb, 0x42
# CHECK-ENC: encoding: [0x7b,0x91,0xb0,0x00]
qc.e.bnei x1, 11, 2
# CHECK-NOALIAS: bgei ra, 11, 2
# CHECK-ALIAS: qc.bgei ra, 11, 2
# CHECK-OBJ: qc.bgei ra, 0xb, 0x46
# CHECK-ENC: encoding: [0x7b,0xd1,0xb0,0x00]
qc.e.bgei x1, 11, 2
# CHECK-NOALIAS: blti ra, 11, 2
# CHECK-ALIAS: qc.blti ra, 11, 2
# CHECK-OBJ: qc.blti ra, 0xb, 0x4a
# CHECK-ENC: encoding: [0x7b,0xc1,0xb0,0x00]
qc.e.blti x1, 11, 2
# CHECK-NOALIAS: bgeui ra, 11, 2
# CHECK-ALIAS: qc.bgeui ra, 11, 2
# CHECK-OBJ: qc.bgeui ra, 0xb, 0x4e
# CHECK-ENC: encoding: [0x7b,0xf1,0xb0,0x00]
qc.e.bgeui x1, 11, 2
# CHECK-NOALIAS: bltui ra, 11, 2
# CHECK-ALIAS: qc.bltui ra, 11, 2
# CHECK-OBJ: qc.bltui ra, 0xb, 0x52
# CHECK-ENC: encoding: [0x7b,0xe1,0xb0,0x00]
qc.e.bltui x1, 11, 2