| # 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 |