xref: /llvm-project/llvm/test/MC/RISCV/rv32zbb-invalid.s (revision 182aa0cbe0cd86dbf91e9d0e647eec736461f0b7)
1# RUN: not llvm-mc -triple riscv32 -mattr=+zbb < %s 2>&1 | FileCheck %s
2
3# Too many operands
4clz t0, t1, t2 # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
5# Too many operands
6ctz t0, t1, t2 # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
7# Too many operands
8cpop t0, t1, t2 # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
9# Too many operands
10sext.b t0, t1, t2 # CHECK: :[[@LINE]]:16: error: invalid operand for instruction
11# Too many operands
12sext.h t0, t1, t2 # CHECK: :[[@LINE]]:16: error: invalid operand for instruction
13# Too few operands
14min t0, t1 # CHECK: :[[@LINE]]:1: error: too few operands for instruction
15# Too few operands
16max t0, t1 # CHECK: :[[@LINE]]:1: error: too few operands for instruction
17# Too few operands
18minu t0, t1 # CHECK: :[[@LINE]]:1: error: too few operands for instruction
19# Too few operands
20maxu t0, t1 # CHECK: :[[@LINE]]:1: error: too few operands for instruction
21clzw t0, t1 # CHECK: :[[@LINE]]:1: error: instruction requires the following: RV64I Base Instruction Set{{$}}
22ctzw t0, t1 # CHECK: :[[@LINE]]:1: error: instruction requires the following: RV64I Base Instruction Set{{$}}
23cpopw t0, t1 # CHECK: :[[@LINE]]:1: error: instruction requires the following: RV64I Base Instruction Set{{$}}
24# Too few operands
25andn t0, t1 # CHECK: :[[@LINE]]:1: error: too few operands for instruction
26# Too few operands
27orn t0, t1 # CHECK: :[[@LINE]]:1: error: too few operands for instruction
28# Too few operands
29xnor t0, t1 # CHECK: :[[@LINE]]:1: error: too few operands for instruction
30# Too few operands
31rol t0, t1 # CHECK: :[[@LINE]]:1: error: too few operands for instruction
32# Too few operands
33ror t0, t1 # CHECK: :[[@LINE]]:1: error: too few operands for instruction
34# Too few operands
35rori t0, t1 # CHECK: :[[@LINE]]:1: error: too few operands for instruction
36# Immediate operand out of range
37rori t0, t1, 32 # CHECK: :[[@LINE]]:14: error: immediate must be an integer in the range [0, 31]
38rori t0, t1, -1 # CHECK: :[[@LINE]]:14: error: immediate must be an integer in the range [0, 31]
39rolw t0, t1, t2 # CHECK: :[[@LINE]]:1: error: instruction requires the following: RV64I Base Instruction Set{{$}}
40rorw t0, t1, t2 # CHECK: :[[@LINE]]:1: error: instruction requires the following: RV64I Base Instruction Set{{$}}
41roriw t0, t1, 31 # CHECK: :[[@LINE]]:1: error: instruction requires the following: RV64I Base Instruction Set{{$}}
42roriw t0, t1, 0 # CHECK: :[[@LINE]]:1: error: instruction requires the following: RV64I Base Instruction Set{{$}}
43