xref: /llvm-project/llvm/test/MC/RISCV/rv64zbb-valid.s (revision 4b3d439e7e7b4e794e523caea9863d67ff8cf85f)
1# With Bitmanip base extension:
2# RUN: llvm-mc %s -triple=riscv64 -mattr=+zbb -M no-aliases -show-encoding \
3# RUN:     | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s
4# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+zbb < %s \
5# RUN:     | llvm-objdump --mattr=+zbb -M no-aliases --no-print-imm-hex -d -r - \
6# RUN:     | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s
7
8# CHECK-ASM-AND-OBJ: zext.h t0, t1
9# CHECK-ASM: encoding: [0xbb,0x42,0x03,0x08]
10zext.h t0, t1
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: rev8 t0, t1
15# CHECK-ASM: encoding: [0x93,0x52,0x83,0x6b]
16rev8 t0, t1
17
18# CHECK-ASM-AND-OBJ: clzw t0, t1
19# CHECK-ASM: encoding: [0x9b,0x12,0x03,0x60]
20clzw t0, t1
21# CHECK-ASM-AND-OBJ: ctzw t0, t1
22# CHECK-ASM: encoding: [0x9b,0x12,0x13,0x60]
23ctzw t0, t1
24# CHECK-ASM-AND-OBJ: cpopw t0, t1
25# CHECK-ASM: encoding: [0x9b,0x12,0x23,0x60]
26cpopw t0, t1
27
28# CHECK-ASM-AND-OBJ: addi t0, zero, -18
29# CHECK-ASM-AND-OBJ: rori t0, t0, 21
30li t0, -149533581377537
31# CHECK-ASM-AND-OBJ: addi t0, zero, -86
32# CHECK-ASM-AND-OBJ: rori t0, t0, 4
33li t0, -5764607523034234886
34# CHECK-ASM-AND-OBJ: addi t0, zero, -18
35# CHECK-ASM-AND-OBJ: rori t0, t0, 37
36li t0, -2281701377
37
38# CHECK-ASM-AND-OBJ: rolw t0, t1, t2
39# CHECK-ASM: encoding: [0xbb,0x12,0x73,0x60]
40rolw t0, t1, t2
41# CHECK-ASM-AND-OBJ: rorw t0, t1, t2
42# CHECK-ASM: encoding: [0xbb,0x52,0x73,0x60]
43rorw t0, t1, t2
44# CHECK-ASM-AND-OBJ: roriw t0, t1, 31
45# CHECK-ASM: encoding: [0x9b,0x52,0xf3,0x61]
46roriw t0, t1, 31
47# CHECK-ASM-AND-OBJ: roriw t0, t1, 0
48# CHECK-ASM: encoding: [0x9b,0x52,0x03,0x60]
49roriw t0, t1, 0
50