# RUN: not llvm-mc -triple=riscv32 --mattr=+xcvalu %s 2>&1 \
# RUN: | FileCheck %s --check-prefixes=CHECK-ERROR
cv.addrnr t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.addrnr t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.addrnr 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.addrnr t0, t1
# CHECK-ERROR: too few operands for instruction
cv.addrnr t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.addun t0, t1, t2, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.addun t0, t1, t2, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.addun t0, t1, t2, a0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.addun t0, t1, 0, 0
# CHECK-ERROR: invalid operand for instruction
cv.addun t0, 0, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.addun 0, t1, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.addun t0, t1, t2
# CHECK-ERROR: too few operands for instruction
cv.addun t0, t1, t2, 0, a0
# CHECK-ERROR: invalid operand for instruction
cv.extbz t0, 0
# CHECK-ERROR: invalid operand for instruction
cv.extbz 0, t1
# CHECK-ERROR: invalid operand for instruction
cv.extbz t0
# CHECK-ERROR: too few operands for instruction
cv.extbz t0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.addnr t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.addnr t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.addnr 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.addnr t0, t1
# CHECK-ERROR: too few operands for instruction
cv.addnr t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.clipu t0, t1, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.clipu t0, t1, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.clipu t0, t1, a0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.clipu t0, 0, 0
# CHECK-ERROR: invalid operand for instruction
cv.clipu 0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.clipu t0, t1
# CHECK-ERROR: too few operands for instruction
cv.clipu t0, t1, 0, 0
# CHECK-ERROR: invalid operand for instruction
cv.minu t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.minu t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.minu 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.minu t0, t1
# CHECK-ERROR: too few operands for instruction
cv.minu t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.abs t0, 0
# CHECK-ERROR: invalid operand for instruction
cv.abs 0, t1
# CHECK-ERROR: invalid operand for instruction
cv.abs t0
# CHECK-ERROR: too few operands for instruction
cv.abs t0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.addrn t0, t1, t2, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.addrn t0, t1, t2, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.addrn t0, t1, t2, a0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.addrn t0, t1, 0, 0
# CHECK-ERROR: invalid operand for instruction
cv.addrn t0, 0, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.addrn 0, t1, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.addrn t0, t1, t2
# CHECK-ERROR: too few operands for instruction
cv.addrn t0, t1, t2, 0, a0
# CHECK-ERROR: invalid operand for instruction
cv.suburn t0, t1, t2, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.suburn t0, t1, t2, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.suburn t0, t1, t2, a0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.suburn t0, t1, 0, 0
# CHECK-ERROR: invalid operand for instruction
cv.suburn t0, 0, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.suburn 0, t1, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.suburn t0, t1, t2
# CHECK-ERROR: too few operands for instruction
cv.suburn t0, t1, t2, 0, a0
# CHECK-ERROR: invalid operand for instruction
cv.clip t0, t1, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.clip t0, t1, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.clip t0, t1, a0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.clip t0, 0, 0
# CHECK-ERROR: invalid operand for instruction
cv.clip 0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.clip t0, t1
# CHECK-ERROR: too few operands for instruction
cv.clip t0, t1, 0, 0
# CHECK-ERROR: invalid operand for instruction
cv.addunr t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.addunr t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.addunr 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.addunr t0, t1
# CHECK-ERROR: too few operands for instruction
cv.addunr t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.addurn t0, t1, t2, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.addurn t0, t1, t2, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.addurn t0, t1, t2, a0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.addurn t0, t1, 0, 0
# CHECK-ERROR: invalid operand for instruction
cv.addurn t0, 0, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.addurn 0, t1, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.addurn t0, t1, t2
# CHECK-ERROR: too few operands for instruction
cv.addurn t0, t1, t2, 0, a0
# CHECK-ERROR: invalid operand for instruction
cv.subun t0, t1, t2, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.subun t0, t1, t2, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.subun t0, t1, t2, a0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.subun t0, t1, 0, 0
# CHECK-ERROR: invalid operand for instruction
cv.subun t0, 0, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.subun 0, t1, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.subun t0, t1, t2
# CHECK-ERROR: too few operands for instruction
cv.subun t0, t1, t2, 0, a0
# CHECK-ERROR: invalid operand for instruction
cv.subn t0, t1, t2, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.subn t0, t1, t2, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.subn t0, t1, t2, a0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.subn t0, t1, 0, 0
# CHECK-ERROR: invalid operand for instruction
cv.subn t0, 0, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.subn 0, t1, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.subn t0, t1, t2
# CHECK-ERROR: too few operands for instruction
cv.subn t0, t1, t2, 0, a0
# CHECK-ERROR: invalid operand for instruction
cv.subrnr t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.subrnr t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.subrnr 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.subrnr t0, t1
# CHECK-ERROR: too few operands for instruction
cv.subrnr t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.slet t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.slet t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.slet 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.slet t0, t1
# CHECK-ERROR: too few operands for instruction
cv.slet t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.suburnr t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.suburnr t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.suburnr 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.suburnr t0, t1
# CHECK-ERROR: too few operands for instruction
cv.suburnr t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.maxu t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.maxu t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.maxu 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.maxu t0, t1
# CHECK-ERROR: too few operands for instruction
cv.maxu t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.extbs t0, 0
# CHECK-ERROR: invalid operand for instruction
cv.extbs 0, t1
# CHECK-ERROR: invalid operand for instruction
cv.extbs t0
# CHECK-ERROR: too few operands for instruction
cv.extbs t0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.exths t0, 0
# CHECK-ERROR: invalid operand for instruction
cv.exths 0, t1
# CHECK-ERROR: invalid operand for instruction
cv.exths t0
# CHECK-ERROR: too few operands for instruction
cv.exths t0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.max t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.max t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.max 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.max t0, t1
# CHECK-ERROR: too few operands for instruction
cv.max t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.subunr t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.subunr t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.subunr 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.subunr t0, t1
# CHECK-ERROR: too few operands for instruction
cv.subunr t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.exthz t0, 0
# CHECK-ERROR: invalid operand for instruction
cv.exthz 0, t1
# CHECK-ERROR: invalid operand for instruction
cv.exthz t0
# CHECK-ERROR: too few operands for instruction
cv.exthz t0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.clipur t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.clipur t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.clipur 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.clipur t0, t1
# CHECK-ERROR: too few operands for instruction
cv.clipur t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.addurnr t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.addurnr t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.addurnr 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.addurnr t0, t1
# CHECK-ERROR: too few operands for instruction
cv.addurnr t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.addn t0, t1, t2, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.addn t0, t1, t2, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.addn t0, t1, t2, a0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.addn t0, t1, 0, 0
# CHECK-ERROR: invalid operand for instruction
cv.addn t0, 0, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.addn 0, t1, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.addn t0, t1, t2
# CHECK-ERROR: too few operands for instruction
cv.addn t0, t1, t2, 0, a0
# CHECK-ERROR: invalid operand for instruction
cv.subrn t0, t1, t2, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.subrn t0, t1, t2, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.subrn t0, t1, t2, a0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]
cv.subrn t0, t1, 0, 0
# CHECK-ERROR: invalid operand for instruction
cv.subrn t0, 0, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.subrn 0, t1, t2, 0
# CHECK-ERROR: invalid operand for instruction
cv.subrn t0, t1, t2
# CHECK-ERROR: too few operands for instruction
cv.subrn t0, t1, t2, 0, a0
# CHECK-ERROR: invalid operand for instruction
cv.subnr t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.subnr t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.subnr 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.subnr t0, t1
# CHECK-ERROR: too few operands for instruction
cv.subnr t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.clipr t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.clipr t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.clipr 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.clipr t0, t1
# CHECK-ERROR: too few operands for instruction
cv.clipr t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.sletu t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.sletu t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.sletu 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.sletu t0, t1
# CHECK-ERROR: too few operands for instruction
cv.sletu t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction
cv.min t0, t1, 0
# CHECK-ERROR: invalid operand for instruction
cv.min t0, 0, t2
# CHECK-ERROR: invalid operand for instruction
cv.min 0, t1, t2
# CHECK-ERROR: invalid operand for instruction
cv.min t0, t1
# CHECK-ERROR: too few operands for instruction
cv.min t0, t1, t2, a0
# CHECK-ERROR: invalid operand for instruction