1# RUN: llvm-mc %s -triple=riscv64 -mattr=+zbkb -show-encoding \ 2# RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s 3# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+zbkb < %s \ 4# RUN: | llvm-objdump --mattr=+zbkb --no-print-imm-hex -d -r - \ 5# RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s 6 7# CHECK-ASM-AND-OBJ: rev8 t0, t1 8# CHECK-ASM: encoding: [0x93,0x52,0x83,0x6b] 9rev8 t0, t1 10 11# CHECK-ASM-AND-OBJ: rori t0, t1, 63 12# CHECK-ASM: encoding: [0x93,0x52,0xf3,0x63] 13rori t0, t1, 63 14# CHECK-ASM-AND-OBJ: rorw t0, t1, t2 15# CHECK-ASM: encoding: [0xbb,0x52,0x73,0x60] 16rorw t0, t1, t2 17# CHECK-ASM-AND-OBJ: rolw t0, t1, t2 18# CHECK-ASM: encoding: [0xbb,0x12,0x73,0x60] 19rolw t0, t1, t2 20# CHECK-ASM-AND-OBJ: roriw t0, t1, 31 21# CHECK-ASM: encoding: [0x9b,0x52,0xf3,0x61] 22roriw t0, t1, 31 23# CHECK-ASM-AND-OBJ: roriw t0, t1, 0 24# CHECK-ASM: encoding: [0x9b,0x52,0x03,0x60] 25roriw t0, t1, 0 26 27# CHECK-ASM-AND-OBJ: packw t0, t1, t2 28# CHECK-ASM: encoding: [0xbb,0x42,0x73,0x08] 29packw t0, t1, t2 30 31# Test the encoding used for zext.h on RV64 32# CHECK-ASM-AND-OBJ: zext.h t0, t1 33# CHECK-ASM: encoding: [0xbb,0x42,0x03,0x08] 34packw t0, t1, zero 35 36# Test the encoding used for zext.h on RV32 37# CHECK-ASM-AND-OBJ: pack t0, t1, zero 38# CHECK-ASM: encoding: [0xb3,0x42,0x03,0x08] 39pack t0, t1, zero 40 41# CHECK-ASM-AND-OBJ: zext.h t0, t1 42# CHECK-ASM: encoding: [0xbb,0x42,0x03,0x08] 43zext.h t0, t1 44