llvm/llvm/test/MC/RISCV/corev/XCVbitmanip-invalid.s

# RUN: not llvm-mc -triple=riscv32 --mattr=+xcvbitmanip %s 2>&1 \
# RUN:        | FileCheck %s --check-prefixes=CHECK-ERROR

cv.extract t0, t1
# CHECK-ERROR: too few operands for instruction

cv.extract t0, t1, 0
# CHECK-ERROR: too few operands for instruction

cv.extract t0, t1, t2
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.extract t0, t1, t2, t3
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.extract t0, t1, 0, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.extract t0, t1, 0, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.extract t0, t1, 32, 0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.extract t0, t1, -1, 0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.extractu t0, t1
# CHECK-ERROR: too few operands for instruction

cv.extractu t0, t1, 0
# CHECK-ERROR: too few operands for instruction

cv.extractu t0, t1, t2
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.extractu t0, t1, t2, t3
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.extractu t0, t1, 0, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.extractu t0, t1, 0, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.extractu t0, t1, 32, 0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.extractu t0, t1, -1, 0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.insert t0, t1
# CHECK-ERROR: too few operands for instruction

cv.insert t0, t1, 0
# CHECK-ERROR: too few operands for instruction

cv.insert t0, t1, t2
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.insert t0, t1, t2, t3
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.insert t0, t1, 0, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.insert t0, t1, 0, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.insert t0, t1, 32, 0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.insert t0, t1, -1, 0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bclr t0, t1
# CHECK-ERROR: too few operands for instruction

cv.bclr t0, t1, 0
# CHECK-ERROR: too few operands for instruction

cv.bclr t0, t1, t2
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bclr t0, t1, t2, t3
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bclr t0, t1, 0, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bclr t0, t1, 0, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bclr t0, t1, 32, 0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bclr t0, t1, -1, 0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bset t0, t1
# CHECK-ERROR: too few operands for instruction

cv.bset t0, t1, 0
# CHECK-ERROR: too few operands for instruction

cv.bset t0, t1, t2
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bset t0, t1, t2, t3
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bset t0, t1, 0, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bset t0, t1, 0, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bset t0, t1, 32, 0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bset t0, t1, -1, 0
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bitrev t0, t1
# CHECK-ERROR: too few operands for instruction

cv.bitrev t0, t1, 0
# CHECK-ERROR: too few operands for instruction

cv.bitrev t0, t1, t2
# CHECK-ERROR: immediate must be an integer in the range [0, 3]

cv.bitrev t0, t1, t2, t3
# CHECK-ERROR: immediate must be an integer in the range [0, 3]

cv.bitrev t0, t1, 0, 32
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bitrev t0, t1, 0, -1
# CHECK-ERROR: immediate must be an integer in the range [0, 31]

cv.bitrev t0, t1, 32, 0
# CHECK-ERROR: immediate must be an integer in the range [0, 3]

cv.bitrev t0, t1, -1, 0
# CHECK-ERROR: immediate must be an integer in the range [0, 3]

cv.extractr t0
# CHECK-ERROR: too few operands for instruction

cv.extractr t0, 0
# CHECK-ERROR: invalid operand for instruction

cv.extractr t0, t1, 0
# CHECK-ERROR: invalid operand for instruction

cv.extractr t0, t1
# CHECK-ERROR: too few operands for instruction

cv.extractur t0
# CHECK-ERROR: too few operands for instruction

cv.extractur t0, 0
# CHECK-ERROR: invalid operand for instruction

cv.extractur t0, t1, 0
# CHECK-ERROR: invalid operand for instruction

cv.extractur t0, t1
# CHECK-ERROR: too few operands for instruction

cv.insertr t0
# CHECK-ERROR: too few operands for instruction

cv.insertr t0, 0
# CHECK-ERROR: invalid operand for instruction

cv.insertr t0, t1, 0
# CHECK-ERROR: invalid operand for instruction

cv.insertr t0, t1
# CHECK-ERROR: too few operands for instruction

cv.bclrr t0
# CHECK-ERROR: too few operands for instruction

cv.bclrr t0, 0
# CHECK-ERROR: invalid operand for instruction

cv.bclrr t0, t1, 0
# CHECK-ERROR: invalid operand for instruction

cv.bclrr t0, t1
# CHECK-ERROR: too few operands for instruction

cv.bsetr t0
# CHECK-ERROR: too few operands for instruction

cv.bsetr t0, 0
# CHECK-ERROR: invalid operand for instruction

cv.bsetr t0, t1, 0
# CHECK-ERROR: invalid operand for instruction

cv.bsetr t0, t1
# CHECK-ERROR: too few operands for instruction

cv.ror t0
# CHECK-ERROR: too few operands for instruction

cv.ror t0, 0
# CHECK-ERROR: invalid operand for instruction

cv.ror t0, t1, 0
# CHECK-ERROR: invalid operand for instruction

cv.ror t0, t1
# CHECK-ERROR: too few operands for instruction

cv.ff1 t0
# CHECK-ERROR: too few operands for instruction

cv.ff1 t0, 0
# CHECK-ERROR: invalid operand for instruction

cv.ff1 t0, t1, 0
# CHECK-ERROR: invalid operand for instruction

cv.ff1 t0, t1, t2
# CHECK-ERROR: invalid operand for instruction 

cv.fl1 t0
# CHECK-ERROR: too few operands for instruction

cv.fl1 t0, 0
# CHECK-ERROR: invalid operand for instruction

cv.fl1 t0, t1, 0
# CHECK-ERROR: invalid operand for instruction

cv.fl1 t0, t1, t2
# CHECK-ERROR: invalid operand for instruction 

cv.clb t0
# CHECK-ERROR: too few operands for instruction

cv.clb t0, 0
# CHECK-ERROR: invalid operand for instruction

cv.clb t0, t1, 0
# CHECK-ERROR: invalid operand for instruction

cv.clb t0, t1, t2
# CHECK-ERROR: invalid operand for instruction 

cv.cnt t0
# CHECK-ERROR: too few operands for instruction

cv.cnt t0, 0
# CHECK-ERROR: invalid operand for instruction

cv.cnt t0, t1, 0
# CHECK-ERROR: invalid operand for instruction

cv.cnt t0, t1, t2
# CHECK-ERROR: invalid operand for instruction