summaryrefslogtreecommitdiff
path: root/test/MC/SystemZ/insn-bad-z14.s
diff options
context:
space:
mode:
Diffstat (limited to 'test/MC/SystemZ/insn-bad-z14.s')
-rw-r--r--test/MC/SystemZ/insn-bad-z14.s752
1 files changed, 752 insertions, 0 deletions
diff --git a/test/MC/SystemZ/insn-bad-z14.s b/test/MC/SystemZ/insn-bad-z14.s
new file mode 100644
index 000000000000..8bc736a7a1a4
--- /dev/null
+++ b/test/MC/SystemZ/insn-bad-z14.s
@@ -0,0 +1,752 @@
+# For z14 only.
+# RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=z14 < %s 2> %t
+# RUN: FileCheck < %t %s
+# RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=arch12 < %s 2> %t
+# RUN: FileCheck < %t %s
+
+#CHECK: error: invalid operand
+#CHECK: bi -524289
+#CHECK: error: invalid operand
+#CHECK: bi 524288
+
+ bi -524289
+ bi 524288
+
+#CHECK: error: invalid operand
+#CHECK: bic -1, 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: bic 16, 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: bic 0, -524289
+#CHECK: error: invalid operand
+#CHECK: bic 0, 524288
+
+ bic -1, 0(%r1)
+ bic 16, 0(%r1)
+ bic 0, -524289
+ bic 0, 524288
+
+#CHECK: error: invalid operand
+#CHECK: agh %r0, -524289
+#CHECK: error: invalid operand
+#CHECK: agh %r0, 524288
+
+ agh %r0, -524289
+ agh %r0, 524288
+
+#CHECK: error: invalid register pair
+#CHECK: kma %r1, %r2, %r4
+#CHECK: error: invalid register pair
+#CHECK: kma %r2, %r1, %r4
+#CHECK: error: invalid register pair
+#CHECK: kma %r2, %r4, %r1
+
+ kma %r1, %r2, %r4
+ kma %r2, %r1, %r4
+ kma %r2, %r4, %r1
+
+#CHECK: error: invalid operand
+#CHECK: lgg %r0, -524289
+#CHECK: error: invalid operand
+#CHECK: lgg %r0, 524288
+
+ lgg %r0, -524289
+ lgg %r0, 524288
+
+#CHECK: error: invalid operand
+#CHECK: lgsc %r0, -524289
+#CHECK: error: invalid operand
+#CHECK: lgsc %r0, 524288
+
+ lgsc %r0, -524289
+ lgsc %r0, 524288
+
+#CHECK: error: invalid operand
+#CHECK: llgfsg %r0, -524289
+#CHECK: error: invalid operand
+#CHECK: llgfsg %r0, 524288
+
+ llgfsg %r0, -524289
+ llgfsg %r0, 524288
+
+#CHECK: error: invalid operand
+#CHECK: mg %r0, -524289
+#CHECK: error: invalid operand
+#CHECK: mg %r0, 524288
+#CHECK: error: invalid register pair
+#CHECK: mg %r1, 0
+
+ mg %r0, -524289
+ mg %r0, 524288
+ mg %r1, 0
+
+#CHECK: error: invalid operand
+#CHECK: mgh %r0, -524289
+#CHECK: error: invalid operand
+#CHECK: mgh %r0, 524288
+
+ mgh %r0, -524289
+ mgh %r0, 524288
+
+#CHECK: error: invalid register pair
+#CHECK: mgrk %r1, %r0, %r0
+
+ mgrk %r1, %r0, %r0
+
+#CHECK: error: invalid operand
+#CHECK: msc %r0, -524289
+#CHECK: error: invalid operand
+#CHECK: msc %r0, 524288
+
+ msc %r0, -524289
+ msc %r0, 524288
+
+#CHECK: error: invalid operand
+#CHECK: msgc %r0, -524289
+#CHECK: error: invalid operand
+#CHECK: msgc %r0, 524288
+
+ msgc %r0, -524289
+ msgc %r0, 524288
+
+#CHECK: error: invalid register pair
+#CHECK: prno %r1, %r2
+#CHECK: error: invalid register pair
+#CHECK: prno %r2, %r1
+
+ prno %r1, %r2
+ prno %r2, %r1
+
+#CHECK: error: invalid operand
+#CHECK: sgh %r0, -524289
+#CHECK: error: invalid operand
+#CHECK: sgh %r0, 524288
+
+ sgh %r0, -524289
+ sgh %r0, 524288
+
+#CHECK: error: invalid operand
+#CHECK: stgsc %r0, -524289
+#CHECK: error: invalid operand
+#CHECK: stgsc %r0, 524288
+
+ stgsc %r0, -524289
+ stgsc %r0, 524288
+
+#CHECK: error: invalid operand
+#CHECK: vap %v0, %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vap %v0, %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vap %v0, %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vap %v0, %v0, %v0, 256, 0
+
+ vap %v0, %v0, %v0, 0, -1
+ vap %v0, %v0, %v0, 0, 16
+ vap %v0, %v0, %v0, -1, 0
+ vap %v0, %v0, %v0, 256, 0
+
+#CHECK: error: invalid operand
+#CHECK: vcp %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: vcp %v0, %v0, 16
+
+ vcp %v0, %v0, -1
+ vcp %v0, %v0, 16
+
+#CHECK: error: invalid operand
+#CHECK: vcvb %r0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: vcvb %r0, %v0, 16
+
+ vcvb %r0, %v0, -1
+ vcvb %r0, %v0, 16
+
+#CHECK: error: invalid operand
+#CHECK: vcvbg %r0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: vcvbg %r0, %v0, 16
+
+ vcvbg %r0, %v0, -1
+ vcvbg %r0, %v0, 16
+
+#CHECK: error: invalid operand
+#CHECK: vcvd %r0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vcvd %r0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vcvd %r0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vcvd %r0, %v0, 256, 0
+
+ vcvd %r0, %v0, 0, -1
+ vcvd %r0, %v0, 0, 16
+ vcvd %r0, %v0, -1, 0
+ vcvd %r0, %v0, 256, 0
+
+#CHECK: error: invalid operand
+#CHECK: vcvdg %r0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vcvdg %r0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vcvdg %r0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vcvdg %r0, %v0, 256, 0
+
+ vcvdg %r0, %v0, 0, -1
+ vcvdg %r0, %v0, 0, 16
+ vcvdg %r0, %v0, -1, 0
+ vcvdg %r0, %v0, 256, 0
+
+#CHECK: error: invalid operand
+#CHECK: vdp %v0, %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vdp %v0, %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vdp %v0, %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vdp %v0, %v0, %v0, 256, 0
+
+ vdp %v0, %v0, %v0, 0, -1
+ vdp %v0, %v0, %v0, 0, 16
+ vdp %v0, %v0, %v0, -1, 0
+ vdp %v0, %v0, %v0, 256, 0
+
+#CHECK: error: invalid operand
+#CHECK: vfisb %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vfisb %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vfisb %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vfisb %v0, %v0, 16, 0
+
+ vfisb %v0, %v0, 0, -1
+ vfisb %v0, %v0, 0, 16
+ vfisb %v0, %v0, -1, 0
+ vfisb %v0, %v0, 16, 0
+
+#CHECK: error: invalid operand
+#CHECK: vfll %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vfll %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vfll %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vfll %v0, %v0, 16, 0
+
+ vfll %v0, %v0, 0, -1
+ vfll %v0, %v0, 0, 16
+ vfll %v0, %v0, -1, 0
+ vfll %v0, %v0, 16, 0
+
+#CHECK: error: invalid operand
+#CHECK: vflr %v0, %v0, 0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vflr %v0, %v0, 0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vflr %v0, %v0, 0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vflr %v0, %v0, 0, 16, 0
+#CHECK: error: invalid operand
+#CHECK: vflr %v0, %v0, -1, 0, 0
+#CHECK: error: invalid operand
+#CHECK: vflr %v0, %v0, 16, 0, 0
+
+ vflr %v0, %v0, 0, 0, -1
+ vflr %v0, %v0, 0, 0, 16
+ vflr %v0, %v0, 0, -1, 0
+ vflr %v0, %v0, 0, 16, 0
+ vflr %v0, %v0, -1, 0, 0
+ vflr %v0, %v0, 16, 0, 0
+
+#CHECK: error: invalid operand
+#CHECK: vflrd %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vflrd %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vflrd %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vflrd %v0, %v0, 16, 0
+
+ vflrd %v0, %v0, 0, -1
+ vflrd %v0, %v0, 0, 16
+ vflrd %v0, %v0, -1, 0
+ vflrd %v0, %v0, 16, 0
+
+#CHECK: error: invalid operand
+#CHECK: vfmax %v0, %v0, %v0, 0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vfmax %v0, %v0, %v0, 0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vfmax %v0, %v0, %v0, 0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vfmax %v0, %v0, %v0, 0, 16, 0
+#CHECK: error: invalid operand
+#CHECK: vfmax %v0, %v0, %v0, -1, 0, 0
+#CHECK: error: invalid operand
+#CHECK: vfmax %v0, %v0, %v0, 16, 0, 0
+
+ vfmax %v0, %v0, %v0, 0, 0, -1
+ vfmax %v0, %v0, %v0, 0, 0, 16
+ vfmax %v0, %v0, %v0, 0, -1, 0
+ vfmax %v0, %v0, %v0, 0, 16, 0
+ vfmax %v0, %v0, %v0, -1, 0, 0
+ vfmax %v0, %v0, %v0, 16, 0, 0
+
+#CHECK: error: invalid operand
+#CHECK: vfmaxdb %v0, %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: vfmaxdb %v0, %v0, %v0, 16
+
+ vfmaxdb %v0, %v0, %v0, -1
+ vfmaxdb %v0, %v0, %v0, 16
+
+#CHECK: error: invalid operand
+#CHECK: vfmaxsb %v0, %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: vfmaxsb %v0, %v0, %v0, 16
+
+ vfmaxsb %v0, %v0, %v0, -1
+ vfmaxsb %v0, %v0, %v0, 16
+
+#CHECK: error: invalid operand
+#CHECK: vfmin %v0, %v0, %v0, 0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vfmin %v0, %v0, %v0, 0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vfmin %v0, %v0, %v0, 0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vfmin %v0, %v0, %v0, 0, 16, 0
+#CHECK: error: invalid operand
+#CHECK: vfmin %v0, %v0, %v0, -1, 0, 0
+#CHECK: error: invalid operand
+#CHECK: vfmin %v0, %v0, %v0, 16, 0, 0
+
+ vfmin %v0, %v0, %v0, 0, 0, -1
+ vfmin %v0, %v0, %v0, 0, 0, 16
+ vfmin %v0, %v0, %v0, 0, -1, 0
+ vfmin %v0, %v0, %v0, 0, 16, 0
+ vfmin %v0, %v0, %v0, -1, 0, 0
+ vfmin %v0, %v0, %v0, 16, 0, 0
+
+#CHECK: error: invalid operand
+#CHECK: vfmindb %v0, %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: vfmindb %v0, %v0, %v0, 16
+
+ vfmindb %v0, %v0, %v0, -1
+ vfmindb %v0, %v0, %v0, 16
+
+#CHECK: error: invalid operand
+#CHECK: vfminsb %v0, %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: vfminsb %v0, %v0, %v0, 16
+
+ vfminsb %v0, %v0, %v0, -1
+ vfminsb %v0, %v0, %v0, 16
+
+#CHECK: error: invalid operand
+#CHECK: vfnma %v0, %v0, %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vfnma %v0, %v0, %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vfnma %v0, %v0, %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vfnma %v0, %v0, %v0, %v0, 16, 0
+
+ vfnma %v0, %v0, %v0, %v0, 0, -1
+ vfnma %v0, %v0, %v0, %v0, 0, 16
+ vfnma %v0, %v0, %v0, %v0, -1, 0
+ vfnma %v0, %v0, %v0, %v0, 16, 0
+
+#CHECK: error: invalid operand
+#CHECK: vfnms %v0, %v0, %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vfnms %v0, %v0, %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vfnms %v0, %v0, %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vfnms %v0, %v0, %v0, %v0, 16, 0
+
+ vfnms %v0, %v0, %v0, %v0, 0, -1
+ vfnms %v0, %v0, %v0, %v0, 0, 16
+ vfnms %v0, %v0, %v0, %v0, -1, 0
+ vfnms %v0, %v0, %v0, %v0, 16, 0
+
+#CHECK: error: invalid operand
+#CHECK: vftcisb %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: vftcisb %v0, %v0, 4096
+
+ vftcisb %v0, %v0, -1
+ vftcisb %v0, %v0, 4096
+
+#CHECK: error: invalid operand
+#CHECK: vlip %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vlip %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vlip %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vlip %v0, 65536, 0
+
+ vlip %v0, 0, -1
+ vlip %v0, 0, 16
+ vlip %v0, -1, 0
+ vlip %v0, 65536, 0
+
+#CHECK: error: invalid operand
+#CHECK: vllezlf %v0, -1
+#CHECK: error: invalid operand
+#CHECK: vllezlf %v0, 4096
+#CHECK: error: invalid use of vector addressing
+#CHECK: vllezlf %v0, 0(%v1,%r2)
+
+ vllezlf %v0, -1
+ vllezlf %v0, 4096
+ vllezlf %v0, 0(%v1,%r2)
+
+#CHECK: error: invalid operand
+#CHECK: vlrl %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vlrl %v0, 0, 256
+#CHECK: error: invalid operand
+#CHECK: vlrl %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vlrl %v0, 4096, 0
+#CHECK: error: %r0 used in an address
+#CHECK: vlrl %v0, 0(%r0), 0
+
+ vlrl %v0, 0, -1
+ vlrl %v0, 0, 256
+ vlrl %v0, -1, 0
+ vlrl %v0, 4096, 0
+ vlrl %v0, 0(%r0), 0
+
+#CHECK: error: invalid operand
+#CHECK: vlrlr %v0, %r0, -1
+#CHECK: error: invalid operand
+#CHECK: vlrlr %v0, %r0, 4096
+#CHECK: error: %r0 used in an address
+#CHECK: vlrlr %v0, %r0, 0(%r0)
+
+ vlrlr %v0, %r0, -1
+ vlrlr %v0, %r0, 4096
+ vlrlr %v0, %r0, 0(%r0)
+
+#CHECK: error: invalid operand
+#CHECK: vmp %v0, %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vmp %v0, %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vmp %v0, %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vmp %v0, %v0, %v0, 256, 0
+
+ vmp %v0, %v0, %v0, 0, -1
+ vmp %v0, %v0, %v0, 0, 16
+ vmp %v0, %v0, %v0, -1, 0
+ vmp %v0, %v0, %v0, 256, 0
+
+#CHECK: error: invalid operand
+#CHECK: vmsp %v0, %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vmsp %v0, %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vmsp %v0, %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vmsp %v0, %v0, %v0, 256, 0
+
+ vmsp %v0, %v0, %v0, 0, -1
+ vmsp %v0, %v0, %v0, 0, 16
+ vmsp %v0, %v0, %v0, -1, 0
+ vmsp %v0, %v0, %v0, 256, 0
+
+#CHECK: error: invalid operand
+#CHECK: vmsl %v0, %v0, %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vmsl %v0, %v0, %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vmsl %v0, %v0, %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vmsl %v0, %v0, %v0, %v0, 16, 0
+
+ vmsl %v0, %v0, %v0, %v0, 0, -1
+ vmsl %v0, %v0, %v0, %v0, 0, 16
+ vmsl %v0, %v0, %v0, %v0, -1, 0
+ vmsl %v0, %v0, %v0, %v0, 16, 0
+
+#CHECK: error: invalid operand
+#CHECK: vmslg %v0, %v0, %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: vmslg %v0, %v0, %v0, %v0, 16
+
+ vmslg %v0, %v0, %v0, %v0, -1
+ vmslg %v0, %v0, %v0, %v0, 16
+
+#CHECK: error: invalid operand
+#CHECK: vpkz %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vpkz %v0, 0, 256
+#CHECK: error: invalid operand
+#CHECK: vpkz %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vpkz %v0, 4096, 0
+#CHECK: error: %r0 used in an address
+#CHECK: vpkz %v0, 0(%r0), 0
+
+ vpkz %v0, 0, -1
+ vpkz %v0, 0, 256
+ vpkz %v0, -1, 0
+ vpkz %v0, 4096, 0
+ vpkz %v0, 0(%r0), 0
+
+#CHECK: error: invalid operand
+#CHECK: vpsop %v0, %v0, 0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vpsop %v0, %v0, 0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vpsop %v0, %v0, 0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vpsop %v0, %v0, 0, 256, 0
+#CHECK: error: invalid operand
+#CHECK: vpsop %v0, %v0, -1, 0, 0
+#CHECK: error: invalid operand
+#CHECK: vpsop %v0, %v0, 256, 0, 0
+
+ vpsop %v0, %v0, 0, 0, -1
+ vpsop %v0, %v0, 0, 0, 16
+ vpsop %v0, %v0, 0, -1, 0
+ vpsop %v0, %v0, 0, 256, 0
+ vpsop %v0, %v0, -1, 0, 0
+ vpsop %v0, %v0, 256, 0, 0
+
+#CHECK: error: invalid operand
+#CHECK: vrp %v0, %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vrp %v0, %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vrp %v0, %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vrp %v0, %v0, %v0, 256, 0
+
+ vrp %v0, %v0, %v0, 0, -1
+ vrp %v0, %v0, %v0, 0, 16
+ vrp %v0, %v0, %v0, -1, 0
+ vrp %v0, %v0, %v0, 256, 0
+
+#CHECK: error: invalid operand
+#CHECK: vsdp %v0, %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vsdp %v0, %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vsdp %v0, %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vsdp %v0, %v0, %v0, 256, 0
+
+ vsdp %v0, %v0, %v0, 0, -1
+ vsdp %v0, %v0, %v0, 0, 16
+ vsdp %v0, %v0, %v0, -1, 0
+ vsdp %v0, %v0, %v0, 256, 0
+
+#CHECK: error: invalid operand
+#CHECK: vsp %v0, %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vsp %v0, %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vsp %v0, %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vsp %v0, %v0, %v0, 256, 0
+
+ vsp %v0, %v0, %v0, 0, -1
+ vsp %v0, %v0, %v0, 0, 16
+ vsp %v0, %v0, %v0, -1, 0
+ vsp %v0, %v0, %v0, 256, 0
+
+#CHECK: error: invalid operand
+#CHECK: vsrp %v0, %v0, 0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vsrp %v0, %v0, 0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: vsrp %v0, %v0, 0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vsrp %v0, %v0, 0, 256, 0
+#CHECK: error: invalid operand
+#CHECK: vsrp %v0, %v0, -1, 0, 0
+#CHECK: error: invalid operand
+#CHECK: vsrp %v0, %v0, 256, 0, 0
+
+ vsrp %v0, %v0, 0, 0, -1
+ vsrp %v0, %v0, 0, 0, 16
+ vsrp %v0, %v0, 0, -1, 0
+ vsrp %v0, %v0, 0, 256, 0
+ vsrp %v0, %v0, -1, 0, 0
+ vsrp %v0, %v0, 256, 0, 0
+
+#CHECK: error: invalid operand
+#CHECK: vstrl %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vstrl %v0, 0, 256
+#CHECK: error: invalid operand
+#CHECK: vstrl %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vstrl %v0, 4096, 0
+#CHECK: error: %r0 used in an address
+#CHECK: vstrl %v0, 0(%r0), 0
+
+ vstrl %v0, 0, -1
+ vstrl %v0, 0, 256
+ vstrl %v0, -1, 0
+ vstrl %v0, 4096, 0
+ vstrl %v0, 0(%r0), 0
+
+#CHECK: error: invalid operand
+#CHECK: vstrlr %v0, %r0, -1
+#CHECK: error: invalid operand
+#CHECK: vstrlr %v0, %r0, 4096
+#CHECK: error: %r0 used in an address
+#CHECK: vstrlr %v0, %r0, 0(%r0)
+
+ vstrlr %v0, %r0, -1
+ vstrlr %v0, %r0, 4096
+ vstrlr %v0, %r0, 0(%r0)
+
+#CHECK: error: invalid operand
+#CHECK: vupkz %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: vupkz %v0, 0, 256
+#CHECK: error: invalid operand
+#CHECK: vupkz %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: vupkz %v0, 4096, 0
+#CHECK: error: %r0 used in an address
+#CHECK: vupkz %v0, 0(%r0), 0
+
+ vupkz %v0, 0, -1
+ vupkz %v0, 0, 256
+ vupkz %v0, -1, 0
+ vupkz %v0, 4096, 0
+ vupkz %v0, 0(%r0), 0
+
+#CHECK: error: invalid operand
+#CHECK: wfisb %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: wfisb %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: wfisb %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: wfisb %v0, %v0, 16, 0
+
+ wfisb %v0, %v0, 0, -1
+ wfisb %v0, %v0, 0, 16
+ wfisb %v0, %v0, -1, 0
+ wfisb %v0, %v0, 16, 0
+
+#CHECK: error: invalid operand
+#CHECK: wfixb %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: wfixb %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: wfixb %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: wfixb %v0, %v0, 16, 0
+
+ wfixb %v0, %v0, 0, -1
+ wfixb %v0, %v0, 0, 16
+ wfixb %v0, %v0, -1, 0
+ wfixb %v0, %v0, 16, 0
+
+#CHECK: error: invalid operand
+#CHECK: wflrd %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: wflrd %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: wflrd %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: wflrd %v0, %v0, 16, 0
+
+ wflrd %v0, %v0, 0, -1
+ wflrd %v0, %v0, 0, 16
+ wflrd %v0, %v0, -1, 0
+ wflrd %v0, %v0, 16, 0
+
+#CHECK: error: invalid operand
+#CHECK: wflrx %v0, %v0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: wflrx %v0, %v0, 0, 16
+#CHECK: error: invalid operand
+#CHECK: wflrx %v0, %v0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: wflrx %v0, %v0, 16, 0
+
+ wflrx %v0, %v0, 0, -1
+ wflrx %v0, %v0, 0, 16
+ wflrx %v0, %v0, -1, 0
+ wflrx %v0, %v0, 16, 0
+
+#CHECK: error: invalid operand
+#CHECK: wfmaxdb %v0, %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: wfmaxdb %v0, %v0, %v0, 16
+
+ wfmaxdb %v0, %v0, %v0, -1
+ wfmaxdb %v0, %v0, %v0, 16
+
+#CHECK: error: invalid operand
+#CHECK: wfmaxsb %v0, %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: wfmaxsb %v0, %v0, %v0, 16
+
+ wfmaxsb %v0, %v0, %v0, -1
+ wfmaxsb %v0, %v0, %v0, 16
+
+#CHECK: error: invalid operand
+#CHECK: wfmaxxb %v0, %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: wfmaxxb %v0, %v0, %v0, 16
+
+ wfmaxxb %v0, %v0, %v0, -1
+ wfmaxxb %v0, %v0, %v0, 16
+
+#CHECK: error: invalid operand
+#CHECK: wfmindb %v0, %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: wfmindb %v0, %v0, %v0, 16
+
+ wfmindb %v0, %v0, %v0, -1
+ wfmindb %v0, %v0, %v0, 16
+
+#CHECK: error: invalid operand
+#CHECK: wfminsb %v0, %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: wfminsb %v0, %v0, %v0, 16
+
+ wfminsb %v0, %v0, %v0, -1
+ wfminsb %v0, %v0, %v0, 16
+
+#CHECK: error: invalid operand
+#CHECK: wfminxb %v0, %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: wfminxb %v0, %v0, %v0, 16
+
+ wfminxb %v0, %v0, %v0, -1
+ wfminxb %v0, %v0, %v0, 16
+
+#CHECK: error: invalid operand
+#CHECK: wftcisb %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: wftcisb %v0, %v0, 4096
+
+ wftcisb %v0, %v0, -1
+ wftcisb %v0, %v0, 4096
+
+#CHECK: error: invalid operand
+#CHECK: wftcixb %v0, %v0, -1
+#CHECK: error: invalid operand
+#CHECK: wftcixb %v0, %v0, 4096
+
+ wftcixb %v0, %v0, -1
+ wftcixb %v0, %v0, 4096
+