xref: /llvm-project/llvm/test/MC/RISCV/rvc-hints-valid.s (revision 4b3d439e7e7b4e794e523caea9863d67ff8cf85f)
1# RUN: llvm-mc %s -triple=riscv32 -mattr=+c -M no-aliases -show-encoding \
2# RUN:     | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s
3# RUN: llvm-mc %s -triple riscv64 -mattr=+c -M no-aliases -show-encoding \
4# RUN:     | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s
5# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+c < %s \
6# RUN:     | llvm-objdump -M no-aliases --no-print-imm-hex -d -r - \
7# RUN:     | FileCheck -check-prefixes=CHECK-ASM-AND-OBJ %s
8# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+c < %s \
9# RUN:     | llvm-objdump -M no-aliases --no-print-imm-hex -d -r - \
10# RUN:     | FileCheck -check-prefixes=CHECK-ASM-AND-OBJ %s
11# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+c < %s \
12# RUN:     | llvm-objdump --no-print-imm-hex -d -r - \
13# RUN:     | FileCheck -check-prefixes=CHECK-ASM-AND-OBJ %s
14
15# CHECK-ASM-AND-OBJ: c.nop 8
16# CHECK-ASM: encoding: [0x21,0x00]
17c.nop 8
18
19# CHECK-ASM-AND-OBJ: c.nop 7
20# CHECK-ASM: encoding: [0x1d,0x00]
21c.addi x0, 7
22
23# CHECK-ASM-AND-OBJ: c.addi a0, 0
24# CHECK-ASM: encoding: [0x01,0x05]
25c.addi a0, 0
26
27# CHECK-ASM-AND-OBJ: c.li zero, 0
28# CHECK-ASM: encoding: [0x01,0x40]
29c.li x0, 0
30
31# CHECK-ASM-AND-OBJ: c.li zero, 1
32# CHECK-ASM: encoding: [0x05,0x40]
33c.li x0, 1
34
35# CHECK-ASM-AND-OBJ: c.lui zero, 1
36# CHECK-ASM: encoding: [0x05,0x60]
37c.lui x0, 1
38
39# CHECK-ASM-AND-OBJ: c.mv zero, a0
40# CHECK-ASM: encoding: [0x2a,0x80]
41c.mv x0, a0
42
43# CHECK-ASM-AND-OBJ: c.add zero, a0
44# CHECK-ASM: encoding: [0x2a,0x90]
45c.add x0, a0
46
47# CHECK-ASM-AND-OBJ: c.slli zero, 1
48# CHECK-ASM: encoding: [0x06,0x00]
49c.slli x0, 1
50
51# CHECK-ASM-AND-OBJ: c.slli64 zero
52# CHECK-ASM: encoding: [0x02,0x00]
53c.slli64 x0
54
55# CHECK-ASM-AND-OBJ: c.slli64 a0
56# CHECK-ASM: encoding: [0x02,0x05]
57c.slli64 a0
58
59# CHECK-ASM-AND-OBJ: c.srli64 a1
60# CHECK-ASM: encoding: [0x81,0x81]
61c.srli64 a1
62
63# CHECK-ASM-AND-OBJ: c.srai64 a0
64# CHECK-ASM: encoding: [0x01,0x85]
65c.srai64 a0
66