1# RUN: not llvm-mc -triple=riscv32 -mattr=+c < %s 2>&1 \
2# RUN:     | FileCheck -check-prefixes=CHECK,CHECK-RV32 %s
3# RUN: not llvm-mc -triple=riscv64 -mattr=+c < %s 2>&1 \
4# RUN:     | FileCheck -check-prefixes=CHECK,CHECK-RV64 %s
5
6c.nop 0 # CHECK: :[[@LINE]]:7: error: immediate must be non-zero in the range [-32, 31]
7
8c.addi x0, 33 # CHECK: :[[@LINE]]:12: error: immediate must be non-zero in the range [-32, 31]
9
10c.li x0, 42 # CHECK: :[[@LINE]]:10: error: immediate must be an integer in the range [-32, 31]
11
12c.lui x0, 0 # CHECK: :[[@LINE]]:11: error: immediate must be in [0xfffe0, 0xfffff] or [1, 31]
13
14c.mv x0, x0 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
15
16c.add x0, x0 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
17
18c.slli x0, 0 # CHECK-RV32: :[[@LINE]]:12: error: immediate must be an integer in the range [1, 31]
19c.slli x0, 32 # CHECK-RV32: :[[@LINE]]:12: error: immediate must be an integer in the range [1, 31]
20
21c.slli x0, 0 # CHECK-RV64: :[[@LINE]]:12: error: immediate must be an integer in the range [1, 63]
22
23c.srli64 x30 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
24
25c.srai64 x31 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
26