llvm/llvm/test/MC/LoongArch/lsx/invalid-imm.s

## Test out of range immediates which are used by lsx instructions.

# RUN: not llvm-mc --triple=loongarch64 %s 2>&1 | FileCheck %s

## uimm1
vstelm.d $vr0, $a0, 8, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 1]

vstelm.d $vr0, $a0, 8, 2
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 1]

vreplvei.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 1]

vreplvei.d $vr0, $vr1, 2
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 1]

vpickve2gr.du $a0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 1]

vpickve2gr.du $a0, $vr1, 2
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 1]

vpickve2gr.d $a0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 1]

vpickve2gr.d $a0, $vr1, 2
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 1]

vinsgr2vr.d $vr0, $a0, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 1]

vinsgr2vr.d $vr0, $a0, 2
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 1]

## uimm2
vstelm.w $vr0, $a0, 4, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3]

vstelm.w $vr0, $a0, 4, 4
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3]

vreplvei.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3]

vreplvei.w $vr0, $vr1, 4
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3]

vpickve2gr.wu $a0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 3]

vpickve2gr.wu $a0, $vr1, 4
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 3]

vpickve2gr.w $a0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 3]

vpickve2gr.w $a0, $vr1, 4
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 3]

vinsgr2vr.w $vr0, $a0, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3]

vinsgr2vr.w $vr0, $a0, 4
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3]

## uimm3
vstelm.h $vr0, $a0, 2, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]

vstelm.h $vr0, $a0, 2, 8
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]

vreplvei.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]

vreplvei.h $vr0, $vr1, 8
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]

vpickve2gr.hu $a0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 7]

vpickve2gr.hu $a0, $vr1, 8
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 7]

vpickve2gr.h $a0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7]

vpickve2gr.h $a0, $vr1, 8
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7]

vinsgr2vr.h $vr0, $a0, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]

vinsgr2vr.h $vr0, $a0, 8
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]

vbitrevi.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]

vbitrevi.b $vr0, $vr1, 8
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]

vbitseti.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]

vbitseti.b $vr0, $vr1, 8
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]

vbitclri.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]

vbitclri.b $vr0, $vr1, 8
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]

vsrari.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7]

vsrari.b $vr0, $vr1, 8
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7]

vsrlri.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7]

vsrlri.b $vr0, $vr1, 8
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7]

vsllwil.hu.bu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 7]

vsllwil.hu.bu $vr0, $vr1, 8
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 7]

vsllwil.h.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7]

vsllwil.h.b $vr0, $vr1, 8
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7]

vrotri.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7]

vrotri.b $vr0, $vr1, 8
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7]

vsrai.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]

vsrai.b $vr0, $vr1, 8
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]

vsrli.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]

vsrli.b $vr0, $vr1, 8
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]

vslli.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]

vslli.b $vr0, $vr1, 8
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]

vsat.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 7]

vsat.b $vr0, $vr1, 8
# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 7]

vsat.bu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]

vsat.bu $vr0, $vr1, 8
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]

## uimm4
vstelm.b $vr0, $a0, 1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vstelm.b $vr0, $a0, 1, 16
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vreplvei.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vreplvei.b $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vpickve2gr.bu $a0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]

vpickve2gr.bu $a0, $vr1, 16
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]

vpickve2gr.b $a0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]

vpickve2gr.b $a0, $vr1, 16
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]

vinsgr2vr.b $vr0, $a0, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vinsgr2vr.b $vr0, $a0, 16
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vbitrevi.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vbitrevi.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vbitseti.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vbitseti.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vbitclri.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vbitclri.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vssrarni.bu.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15]

vssrarni.bu.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15]

vssrlrni.bu.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15]

vssrlrni.bu.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15]

vssrarni.b.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]

vssrarni.b.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]

vssrlrni.b.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]

vssrlrni.b.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]

vssrani.bu.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]

vssrani.bu.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]

vssrlni.bu.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]

vssrlni.bu.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]

vssrani.b.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]

vssrani.b.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]

vssrlni.b.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]

vssrlni.b.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]

vsrarni.b.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]

vsrarni.b.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]

vsrlrni.b.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]

vsrlrni.b.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]

vsrani.b.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vsrani.b.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vsrlni.b.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vsrlni.b.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]

vsrari.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15]

vsrari.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15]

vsrlri.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15]

vsrlri.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15]

vsllwil.wu.hu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15]

vsllwil.wu.hu $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15]

vsllwil.w.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]

vsllwil.w.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]

vrotri.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15]

vrotri.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15]

vsrai.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]

vsrai.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]

vsrli.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]

vsrli.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]

vslli.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]

vslli.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]

vsat.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 15]

vsat.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 15]

vsat.hu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]

vsat.hu $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]

## uimm5
vbsrl.v $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]

vbsrl.v $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]

vbsll.v $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]

vbsll.v $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]

vslti.du $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslti.du $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslti.wu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslti.wu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslti.hu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslti.hu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslti.bu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslti.bu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslei.du $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslei.du $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslei.wu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslei.wu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslei.hu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslei.hu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslei.bu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vslei.bu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vfrstpi.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31]

vfrstpi.h $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31]

vfrstpi.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31]

vfrstpi.b $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31]

vbitrevi.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]

vbitrevi.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]

vbitseti.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]

vbitseti.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]

vbitclri.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]

vbitclri.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]

vssrarni.hu.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31]

vssrarni.hu.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31]

vssrlrni.hu.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31]

vssrlrni.hu.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31]

vssrarni.h.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]

vssrarni.h.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]

vssrlrni.h.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]

vssrlrni.h.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]

vssrani.hu.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]

vssrani.hu.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]

vssrlni.hu.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]

vssrlni.hu.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]

vssrani.h.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]

vssrani.h.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]

vssrlni.h.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]

vssrlni.h.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]

vsrarni.h.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]

vsrarni.h.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]

vsrlrni.h.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]

vsrlrni.h.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]

vsrani.h.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]

vsrani.h.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]

vsrlni.h.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]

vsrlni.h.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]

vsrari.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vsrari.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vsrlri.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vsrlri.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vsllwil.du.wu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31]

vsllwil.du.wu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31]

vsllwil.d.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]

vsllwil.d.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]

vrotri.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vrotri.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vsrai.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]

vsrai.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]

vsrli.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]

vsrli.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]

vslli.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]

vslli.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]

vaddi.bu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vaddi.bu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vaddi.hu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vaddi.hu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vaddi.wu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vaddi.wu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vaddi.du $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vaddi.du $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vsubi.bu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vsubi.bu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vsubi.hu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vsubi.hu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vsubi.wu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vsubi.wu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vsubi.du $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vsubi.du $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmaxi.bu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmaxi.bu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmaxi.hu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmaxi.hu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmaxi.wu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmaxi.wu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmaxi.du $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmaxi.du $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmini.bu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmini.bu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmini.hu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmini.hu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmini.wu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmini.wu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmini.du $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vmini.du $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]

vsat.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 31]

vsat.w $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 31]

vsat.wu $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]

vsat.wu $vr0, $vr1, 32
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]

## simm5
vslti.d $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslti.d $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslti.w $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslti.w $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslti.h $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslti.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslti.b $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslti.b $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslei.d $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslei.d $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslei.w $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslei.w $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslei.h $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslei.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslei.b $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vslei.b $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vseqi.d $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vseqi.d $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vseqi.w $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vseqi.w $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vseqi.h $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vseqi.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vseqi.b $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vseqi.b $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmaxi.b $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmaxi.b $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmaxi.h $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmaxi.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmaxi.w $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmaxi.w $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmaxi.d $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmaxi.d $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmini.b $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmini.b $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmini.h $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmini.h $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmini.w $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmini.w $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmini.d $vr0, $vr1, -17
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

vmini.d $vr0, $vr1, 16
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]

## uimm6
vbitrevi.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]

vbitrevi.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]

vbitseti.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]

vbitseti.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]

vbitclri.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]

vbitclri.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]

vssrarni.wu.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63]

vssrarni.wu.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63]

vssrlrni.wu.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63]

vssrlrni.wu.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63]

vssrarni.w.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]

vssrarni.w.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]

vssrlrni.w.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]

vssrlrni.w.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]

vssrani.wu.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]

vssrani.wu.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]

vssrlni.wu.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]

vssrlni.wu.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]

vssrani.w.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]

vssrani.w.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]

vssrlni.w.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]

vssrlni.w.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]

vsrarni.w.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]

vsrarni.w.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]

vsrlrni.w.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]

vsrlrni.w.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]

vsrani.w.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]

vsrani.w.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]

vsrlni.w.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]

vsrlni.w.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]

vsrari.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63]

vsrari.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63]

vsrlri.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63]

vsrlri.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63]

vrotri.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63]

vrotri.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63]

vsrai.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]

vsrai.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]

vsrli.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]

vsrli.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]

vslli.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]

vslli.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]

vsat.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 63]

vsat.d $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 63]

vsat.du $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]

vsat.du $vr0, $vr1, 64
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]

## uimm7
vssrarni.du.q $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127]

vssrarni.du.q $vr0, $vr1, 128
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127]

vssrlrni.du.q $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127]

vssrlrni.du.q $vr0, $vr1, 128
# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127]

vssrarni.d.q $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]

vssrarni.d.q $vr0, $vr1, 128
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]

vssrlrni.d.q $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]

vssrlrni.d.q $vr0, $vr1, 128
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]

vssrani.du.q $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]

vssrani.du.q $vr0, $vr1, 128
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]

vssrlni.du.q $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]

vssrlni.du.q $vr0, $vr1, 128
# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]

vssrani.d.q $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]

vssrani.d.q $vr0, $vr1, 128
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]

vssrlni.d.q $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]

vssrlni.d.q $vr0, $vr1, 128
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]

vsrarni.d.q $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]

vsrarni.d.q $vr0, $vr1, 128
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]

vsrlrni.d.q $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]

vsrlrni.d.q $vr0, $vr1, 128
# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]

vsrani.d.q $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 127]

vsrani.d.q $vr0, $vr1, 128
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 127]

vsrlni.d.q $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 127]

vsrlni.d.q $vr0, $vr1, 128
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 127]

## uimm8
vextrins.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]

vextrins.d $vr0, $vr1, 256
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]

vextrins.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]

vextrins.w $vr0, $vr1, 256
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]

vextrins.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]

vextrins.h $vr0, $vr1, 256
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]

vextrins.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]

vextrins.b $vr0, $vr1, 256
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]

vpermi.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 255]

vpermi.w $vr0, $vr1, 256
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 255]

vshuf4i.d $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]

vshuf4i.d $vr0, $vr1, 256
# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]

vshuf4i.w $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]

vshuf4i.w $vr0, $vr1, 256
# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]

vshuf4i.h $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]

vshuf4i.h $vr0, $vr1, 256
# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]

vshuf4i.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]

vshuf4i.b $vr0, $vr1, 256
# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]

vbitseli.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]

vbitseli.b $vr0, $vr1, 256
# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]

vandi.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 255]

vandi.b $vr0, $vr1, 256
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 255]

vori.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 255]

vori.b $vr0, $vr1, 256
# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 255]

vxori.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 255]

vxori.b $vr0, $vr1, 256
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 255]

vnori.b $vr0, $vr1, -1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 255]

vnori.b $vr0, $vr1, 256
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 255]

## simm8
vstelm.b $vr0, $a0, -129, 1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-128, 127]

vstelm.b $vr0, $a0, 128, 1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-128, 127]

## simm8_lsl1
vstelm.h $vr0, $a0, -258, 1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be a multiple of 2 in the range [-256, 254]

vstelm.h $vr0, $a0, 256, 1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be a multiple of 2 in the range [-256, 254]

## simm8_lsl2
vstelm.w $vr0, $a0, -516, 1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be a multiple of 4 in the range [-512, 508]

vstelm.w $vr0, $a0, 512, 1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be a multiple of 4 in the range [-512, 508]

## simm8_lsl3
vstelm.d $vr0, $a0, -1032, 1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be a multiple of 8 in the range [-1024, 1016]

vstelm.d $vr0, $a0, 1024, 1
# CHECK: :[[#@LINE-1]]:21: error: immediate must be a multiple of 8 in the range [-1024, 1016]

## simm9_lsl3
vldrepl.d $vr0, $a0, -2056
# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 8 in the range [-2048, 2040]

vldrepl.d $vr0, $a0, 2048
# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 8 in the range [-2048, 2040]

## simm10_lsl2
vldrepl.w $vr0, $a0, -2052
# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 4 in the range [-2048, 2044]

vldrepl.w $vr0, $a0, 2048
# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 4 in the range [-2048, 2044]

## simm10
vrepli.b $vr0, -513
# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]

vrepli.b $vr0, 512
# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]

vrepli.h $vr0, -513
# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]

vrepli.h $vr0, 512
# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]

vrepli.w $vr0, -513
# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]

vrepli.w $vr0, 512
# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]

vrepli.d $vr0, -513
# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]

vrepli.d $vr0, 512
# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]

## simm11_lsl1
vldrepl.h $vr0, $a0, -2050
# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 2 in the range [-2048, 2046]

vldrepl.h $vr0, $a0, 2048
# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 2 in the range [-2048, 2046]

## simm12
vldrepl.b $vr0, $a0, -2049
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-2048, 2047]

vldrepl.b $vr0, $a0, 2048
# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-2048, 2047]

vst $vr0, $a0, -2049
# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-2048, 2047]

vst $vr0, $a0, 2048
# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-2048, 2047]

vld $vr0, $a0, -2049
# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-2048, 2047]

vld $vr0, $a0, 2048
# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-2048, 2047]

## simm13
vldi $vr0, -4097
# CHECK: :[[#@LINE-1]]:12: error: immediate must be an integer in the range [-4096, 4095]

vldi $vr0, 4096
# CHECK: :[[#@LINE-1]]:12: error: immediate must be an integer in the range [-4096, 4095]