1 # RUN: not llvm-mc -triple riscv32 -mattr=+zfbfmin,+d < %s 2>&1 | \
3 # RUN: not llvm-mc -triple riscv64 -mattr=+zfbfmin,+d < %s 2>&1 | \
6 # Out of range immediates
8 flh ft1
, -2049(a0
) # CHECK: :[[@LINE]]:10: error: operand must be a symbol with %lo/%pcrel_lo/%tprel_lo modifier or an integer in the range [-2048, 2047]
9 fsh ft2
, 2048(a1
) # CHECK: :[[@LINE]]:10: error: operand must be a symbol with %lo/%pcrel_lo/%tprel_lo modifier or an integer in the range [-2048, 2047]
11 # Memory operand not formatted correctly
12 flh ft1
, a0
, -200 # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
14 # Invalid register names
15 flh ft15
, 100(a0
) # CHECK: :[[@LINE]]:5: error: invalid operand for instruction
16 flh ft1
, 100(a10
) # CHECK: :[[@LINE]]:14: error: expected register
18 # Integer registers where FP regs are expected
19 fmv.x.h fs7
, a2
# CHECK: :[[@LINE]]:9: error: invalid operand for instruction
21 # FP registers where integer regs are expected
22 fmv.h.x a8
, ft2
# CHECK: :[[@LINE]]:9: error: invalid operand for instruction
24 # Attempting to use fcvt instructions from zfhmin
25 fcvt.s.h fa0
, ft0
# CHECK: [[@LINE]]:1: error: instruction requires the following: 'Zfh' (Half-Precision Floating-Point) or 'Zfhmin' (Half-Precision Floating-Point Minimal)
26 fcvt.h.s ft2
, fa2
# CHECK: [[@LINE]]:1: error: instruction requires the following: 'Zfh' (Half-Precision Floating-Point) or 'Zfhmin' (Half-Precision Floating-Point Minimal)
27 fcvt.d.h fa0
, ft0
# CHECK: [[@LINE]]:1: error: instruction requires the following: 'Zfh' (Half-Precision Floating-Point) or 'Zfhmin' (Half-Precision Floating-Point Minimal)
28 fcvt.h.d ft2
, fa2
# CHECK: [[@LINE]]:1: error: instruction requires the following: 'Zfh' (Half-Precision Floating-Point) or 'Zfhmin' (Half-Precision Floating-Point Minimal)