blob: 568717a85c0e1ddc79c291ddd083eb1302215980 [file] [log] [blame]
# 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: instruction requires: deflate-conversion
#CHECK: dfltcc %r2, %r4, %r6
dfltcc %r2, %r4, %r6
#CHECK: error: instruction requires: message-security-assist-extension9
#CHECK: kdsa %r0, %r2
kdsa %r0, %r2
#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: instruction requires: miscellaneous-extensions-3
#CHECK: mvcrl 0, 0
mvcrl 0, 0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: ncgrk %r0, %r0, %r0
ncgrk %r0, %r0, %r0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: ncrk %r0, %r0, %r0
ncrk %r0, %r0, %r0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: nngrk %r0, %r0, %r0
nngrk %r0, %r0, %r0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: nnrk %r0, %r0, %r0
nnrk %r0, %r0, %r0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: nogrk %r0, %r0, %r0
nogrk %r0, %r0, %r0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: nork %r0, %r0, %r0
nork %r0, %r0, %r0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: nxgrk %r0, %r0, %r0
nxgrk %r0, %r0, %r0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: nxrk %r0, %r0, %r0
nxrk %r0, %r0, %r0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: ocgrk %r0, %r0, %r0
ocgrk %r0, %r0, %r0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: ocrk %r0, %r0, %r0
ocrk %r0, %r0, %r0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: popcnt %r2, %r4, 1
popcnt %r2, %r4, 1
#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: instruction requires: miscellaneous-extensions-3
#CHECK: selgr %r0, %r0, %r0, 0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: selgre %r0, %r0, %r0
selgr %r0, %r0, %r0, 0
selgre %r0, %r0, %r0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: selfhr %r0, %r0, %r0, 0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: selfhre %r0, %r0, %r0
selfhr %r0, %r0, %r0, 0
selfhre %r0, %r0, %r0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: selr %r0, %r0, %r0, 0
#CHECK: error: instruction requires: miscellaneous-extensions-3
#CHECK: selre %r0, %r0, %r0
selr %r0, %r0, %r0, 0
selre %r0, %r0, %r0
#CHECK: error: invalid operand
#CHECK: sgh %r0, -524289
#CHECK: error: invalid operand
#CHECK: sgh %r0, 524288
sgh %r0, -524289
sgh %r0, 524288
#CHECK: error: instruction requires: enhanced-sort
#CHECK: sortl %r2, %r4
sortl %r2, %r4
#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: instruction requires: vector-enhancements-2
#CHECK: vcefb %v0, %v0, 0, 0
vcefb %v0, %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vcelfb %v0, %v0, 0, 0
vcelfb %v0, %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vcfeb %v0, %v0, 0, 0
vcfeb %v0, %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vcfpl %v0, %v0, 0, 0, 0
vcfpl %v0, %v0, 0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vcfps %v0, %v0, 0, 0, 0
vcfps %v0, %v0, 0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vclfeb %v0, %v0, 0, 0
vclfeb %v0, %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vclfp %v0, %v0, 0, 0, 0
vclfp %v0, %v0, 0, 0, 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: instruction requires: vector-enhancements-2
#CHECK: vcsfp %v0, %v0, 0, 0, 0
vcsfp %v0, %v0, 0, 0, 0
#CHECK: error: invalid operand
#CHECK: vcvb %r0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vcvb %r0, %v0, 16
#CHECK: error: instruction requires: vector-packed-decimal-enhancement
#CHECK: vcvb %r0, %v0, 0, 1
vcvb %r0, %v0, -1
vcvb %r0, %v0, 16
vcvb %r0, %v0, 0, 1
#CHECK: error: invalid operand
#CHECK: vcvbg %r0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vcvbg %r0, %v0, 16
#CHECK: error: instruction requires: vector-packed-decimal-enhancement
#CHECK: vcvbg %r0, %v0, 0, 1
vcvbg %r0, %v0, -1
vcvbg %r0, %v0, 16
vcvbg %r0, %v0, 0, 1
#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: instruction requires: vector-enhancements-2
#CHECK: vlbr %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vlbrf %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vlbrg %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vlbrh %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vlbrq %v0, 0
vlbr %v0, 0, 0
vlbrf %v0, 0
vlbrg %v0, 0
vlbrh %v0, 0
vlbrq %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vlbrrep %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vlbrrepf %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vlbrrepg %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vlbrreph %v0, 0
vlbrrep %v0, 0, 0
vlbrrepf %v0, 0
vlbrrepg %v0, 0
vlbrreph %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vlebrf %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vlebrg %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vlebrh %v0, 0, 0
vlebrf %v0, 0, 0
vlebrg %v0, 0, 0
vlebrh %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vler %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vlerf %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vlerg %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vlerh %v0, 0
vler %v0, 0, 0
vlerf %v0, 0
vlerg %v0, 0
vlerh %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vllebrz %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vllebrze %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vllebrzf %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vllebrzg %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vllebrzh %v0, 0
vllebrz %v0, 0, 0
vllebrze %v0, 0
vllebrzf %v0, 0
vllebrzg %v0, 0
vllebrzh %v0, 0
#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
vlrl %v0, 0, -1
vlrl %v0, 0, 256
vlrl %v0, -1, 0
vlrl %v0, 4096, 0
#CHECK: error: invalid operand
#CHECK: vlrlr %v0, %r0, -1
#CHECK: error: invalid operand
#CHECK: vlrlr %v0, %r0, 4096
vlrlr %v0, %r0, -1
vlrlr %v0, %r0, 4096
#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
vpkz %v0, 0, -1
vpkz %v0, 0, 256
vpkz %v0, -1, 0
vpkz %v0, 4096, 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: instruction requires: vector-enhancements-2
#CHECK: vsld %v0, %v0, %v0, 0
vsld %v0, %v0, %v0, 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: instruction requires: vector-enhancements-2
#CHECK: vsrd %v0, %v0, %v0, 0
vsrd %v0, %v0, %v0, 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: instruction requires: vector-enhancements-2
#CHECK: vstbr %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vstbrf %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vstbrg %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vstbrh %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vstbrq %v0, 0
vstbr %v0, 0, 0
vstbrf %v0, 0
vstbrg %v0, 0
vstbrh %v0, 0
vstbrq %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vstebrf %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vstebrg %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vstebrh %v0, 0, 0
vstebrf %v0, 0, 0
vstebrg %v0, 0, 0
vstebrh %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vster %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vsterf %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vsterg %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vsterh %v0, 0
vster %v0, 0, 0
vsterf %v0, 0
vsterg %v0, 0
vsterh %v0, 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
vstrl %v0, 0, -1
vstrl %v0, 0, 256
vstrl %v0, -1, 0
vstrl %v0, 4096, 0
#CHECK: error: invalid operand
#CHECK: vstrlr %v0, %r0, -1
#CHECK: error: invalid operand
#CHECK: vstrlr %v0, %r0, 4096
vstrlr %v0, %r0, -1
vstrlr %v0, %r0, 4096
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vstrs %v0, %v0, %v0, %v0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vstrsb %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vstrsf %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vstrsh %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vstrszb %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vstrszf %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: vstrszh %v0, %v0, %v0, %v0
vstrs %v0, %v0, %v0, %v0, 0
vstrsb %v0, %v0, %v0, %v0
vstrsf %v0, %v0, %v0, %v0
vstrsh %v0, %v0, %v0, %v0
vstrszb %v0, %v0, %v0, %v0
vstrszf %v0, %v0, %v0, %v0
vstrszh %v0, %v0, %v0, %v0
#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
vupkz %v0, 0, -1
vupkz %v0, 0, 256
vupkz %v0, -1, 0
vupkz %v0, 4096, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: wcefb %v0, %v0, 0, 0
wcefb %v0, %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: wcelfb %v0, %v0, 0, 0
wcelfb %v0, %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: wcfeb %v0, %v0, 0, 0
wcfeb %v0, %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-2
#CHECK: wclfeb %v0, %v0, 0, 0
wclfeb %v0, %v0, 0, 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