1 # RUN: not llvm-mc -triple riscv32 -mattr=+zicbom < %s 2>&1 | FileCheck %s
2 # RUN: not llvm-mc -triple riscv64 -mattr=+zicbom < %s 2>&1 | FileCheck %s
4 # Must have a single register argument.
5 cbo.clean
# CHECK: :[[@LINE]]:1: error: too few operands for instruction
6 cbo.flush
# CHECK: :[[@LINE]]:1: error: too few operands for instruction
7 cbo.inval
# CHECK: :[[@LINE]]:1: error: too few operands for instruction
9 cbo.clean
1 # CHECK: :[[@LINE]]:13: error: expected '(' after optional integer offset
10 cbo.flush
2 # CHECK: :[[@LINE]]:13: error: expected '(' after optional integer offset
11 cbo.inval
3 # CHECK: :[[@LINE]]:13: error: expected '(' after optional integer offset
13 cbo.clean t0
, t1
# CHECK: :[[@LINE]]:11: error: expected '(' or optional integer offset
14 cbo.flush t0
, t1
# CHECK: :[[@LINE]]:11: error: expected '(' or optional integer offset
15 cbo.inval t0
, t1
# CHECK: :[[@LINE]]:11: error: expected '(' or optional integer offset
17 # Non-zero offsets are not supported.
18 cbo.clean
1(t0
) # CHECK: :[[@LINE]]:11: error: optional integer offset must be 0
19 cbo.flush
2(t0
) # CHECK: :[[@LINE]]:11: error: optional integer offset must be 0
20 cbo.inval
3(t0
) # CHECK: :[[@LINE]]:11: error: optional integer offset must be 0
22 # Instructions from other zicbo* extensions aren't available without enabling
23 # the appropriate -mattr flag.
24 cbo.zero
(t0
) # CHECK: :[[@LINE]]:1: error: instruction requires the following: 'Zicboz' (Cache-Block Zero Instructions){{$}}
25 prefetch.i
0(t3
) # CHECK: :[[@LINE]]:1: error: instruction requires the following: 'Zicbop' (Cache-Block Prefetch Instructions){{$}}
26 prefetch.r
0(t4
) # CHECK: :[[@LINE]]:1: error: instruction requires the following: 'Zicbop' (Cache-Block Prefetch Instructions){{$}}
27 prefetch.w
0(t5
) # CHECK: :[[@LINE]]:1: error: instruction requires the following: 'Zicbop' (Cache-Block Prefetch Instructions){{$}}