blob: c3668c6d08a4d8e437e580bc0f27d9ee86e4c659 [file] [edit]
# For z16 only.
# RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=z16 < %s 2> %t
# RUN: FileCheck < %t %s
#CHECK: error: instruction requires: miscellaneous-extensions-4
#CHECK: bdepg %r0, %r0, %r0
bdepg %r0, %r0, %r0
#CHECK: error: instruction requires: miscellaneous-extensions-4
#CHECK: bextg %r0, %r0, %r0
bextg %r0, %r0, %r0
#CHECK: error: instruction requires: concurrent-functions
#CHECK: cal %r0, 0, 0
cal %r0, 0, 0
#CHECK: error: instruction requires: concurrent-functions
#CHECK: calg %r0, 0, 0
calg %r0, 0, 0
#CHECK: error: instruction requires: concurrent-functions
#CHECK: calgf %r0, 0, 0
calgf %r0, 0, 0
#CHECK: error: instruction requires: miscellaneous-extensions-4
#CHECK: clzg %r0, %r0
clzg %r0, %r0
#CHECK: error: instruction requires: miscellaneous-extensions-4
#CHECK: ctzg %r0, %r0
ctzg %r0, %r0
#CHECK: error: instruction requires: message-security-assist-extension12
#CHECK: kimd %r0, %r0, 0
kimd %r0, %r0, 0
#CHECK: error: instruction requires: message-security-assist-extension12
#CHECK: klmd %r0, %r0, 0
klmd %r0, %r0, 0
#CHECK: error: invalid operand
#CHECK: lbear -1
#CHECK: error: invalid operand
#CHECK: lbear 4096
#CHECK: error: invalid use of indexed addressing
#CHECK: lbear 0(%r1,%r2)
lbear -1
lbear 4096
lbear 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: lpswey -524289
#CHECK: error: invalid operand
#CHECK: lpswey 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: lpswey 0(%r1,%r2)
lpswey -524289
lpswey 524288
lpswey 0(%r1,%r2)
#CHECK: error: instruction requires: miscellaneous-extensions-4
#CHECK: lxab %r0, 0
lxab %r0, 0
#CHECK: error: instruction requires: miscellaneous-extensions-4
#CHECK: lxah %r0, 0
lxah %r0, 0
#CHECK: error: instruction requires: miscellaneous-extensions-4
#CHECK: lxaf %r0, 0
lxaf %r0, 0
#CHECK: error: instruction requires: miscellaneous-extensions-4
#CHECK: lxag %r0, 0
lxag %r0, 0
#CHECK: error: instruction requires: miscellaneous-extensions-4
#CHECK: lxaq %r0, 0
lxaq %r0, 0
#CHECK: error: instruction requires: miscellaneous-extensions-4
#CHECK: llxab %r0, 0
llxab %r0, 0
#CHECK: error: instruction requires: miscellaneous-extensions-4
#CHECK: llxah %r0, 0
llxah %r0, 0
#CHECK: error: instruction requires: miscellaneous-extensions-4
#CHECK: llxaf %r0, 0
llxaf %r0, 0
#CHECK: error: instruction requires: miscellaneous-extensions-4
#CHECK: llxag %r0, 0
llxag %r0, 0
#CHECK: error: instruction requires: miscellaneous-extensions-4
#CHECK: llxaq %r0, 0
llxaq %r0, 0
#CHECK: error: instruction requires: concurrent-functions
#CHECK: pfcr %r0, %r0, 0
pfcr %r0, %r0, 0
#CHECK: error: invalid operand
#CHECK: qpaci -1
#CHECK: error: invalid operand
#CHECK: qpaci 4096
#CHECK: error: invalid use of indexed addressing
#CHECK: qpaci 0(%r1,%r2)
qpaci -1
qpaci 4096
qpaci 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: rdp %r0, %r0, %r0, -1
#CHECK: error: invalid operand
#CHECK: rdp %r0, %r0, %r0, 16
rdp %r0, %r0, %r0, -1
rdp %r0, %r0, %r0, 16
#CHECK: error: invalid operand
#CHECK: stbear -1
#CHECK: error: invalid operand
#CHECK: stbear 4096
#CHECK: error: invalid use of indexed addressing
#CHECK: stbear 0(%r1,%r2)
stbear -1
stbear 4096
stbear 0(%r1,%r2)
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vavgq %v0, %v0, %v0
vavgq %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vavglq %v0, %v0, %v0
vavglq %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vblend %v0, %v0, %v0, %v0, 0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vblendb %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vblendh %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vblendf %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vblendg %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vblendq %v0, %v0, %v0, %v0
vblend %v0, %v0, %v0, %v0, 0
vblendb %v0, %v0, %v0, %v0
vblendh %v0, %v0, %v0, %v0
vblendf %v0, %v0, %v0, %v0
vblendg %v0, %v0, %v0, %v0
vblendq %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vceqq %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vceqqs %v0, %v0, %v0
vceqq %v0, %v0, %v0
vceqqs %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vchq %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vchqs %v0, %v0, %v0
vchq %v0, %v0, %v0
vchqs %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vchlq %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vchlqs %v0, %v0, %v0
vchlq %v0, %v0, %v0
vchlqs %v0, %v0, %v0
#CHECK: error: invalid operand
#CHECK: vcfn %v0, %v0, 0, -1
#CHECK: error: invalid operand
#CHECK: vcfn %v0, %v0, 0, 16
#CHECK: error: invalid operand
#CHECK: vcfn %v0, %v0, -1, 0
#CHECK: error: invalid operand
#CHECK: vcfn %v0, %v0, 16, 0
vcfn %v0, %v0, 0, -1
vcfn %v0, %v0, 0, 16
vcfn %v0, %v0, -1, 0
vcfn %v0, %v0, 16, 0
#CHECK: error: invalid operand
#CHECK: vclfnl %v0, %v0, 0, -1
#CHECK: error: invalid operand
#CHECK: vclfnl %v0, %v0, 0, 16
#CHECK: error: invalid operand
#CHECK: vclfnl %v0, %v0, -1, 0
#CHECK: error: invalid operand
#CHECK: vclfnl %v0, %v0, 16, 0
vclfnl %v0, %v0, 0, -1
vclfnl %v0, %v0, 0, 16
vclfnl %v0, %v0, -1, 0
vclfnl %v0, %v0, 16, 0
#CHECK: error: invalid operand
#CHECK: vclfnh %v0, %v0, 0, -1
#CHECK: error: invalid operand
#CHECK: vclfnh %v0, %v0, 0, 16
#CHECK: error: invalid operand
#CHECK: vclfnh %v0, %v0, -1, 0
#CHECK: error: invalid operand
#CHECK: vclfnh %v0, %v0, 16, 0
vclfnh %v0, %v0, 0, -1
vclfnh %v0, %v0, 0, 16
vclfnh %v0, %v0, -1, 0
vclfnh %v0, %v0, 16, 0
#CHECK: error: invalid operand
#CHECK: vcnf %v0, %v0, 0, -1
#CHECK: error: invalid operand
#CHECK: vcnf %v0, %v0, 0, 16
#CHECK: error: invalid operand
#CHECK: vcnf %v0, %v0, -1, 0
#CHECK: error: invalid operand
#CHECK: vcnf %v0, %v0, 16, 0
vcnf %v0, %v0, 0, -1
vcnf %v0, %v0, 0, 16
vcnf %v0, %v0, -1, 0
vcnf %v0, %v0, 16, 0
#CHECK: error: invalid operand
#CHECK: vcrnf %v0, %v0, %v0, 0, -1
#CHECK: error: invalid operand
#CHECK: vcrnf %v0, %v0, %v0, 0, 16
#CHECK: error: invalid operand
#CHECK: vcrnf %v0, %v0, %v0, -1, 0
#CHECK: error: invalid operand
#CHECK: vcrnf %v0, %v0, %v0, 16, 0
vcrnf %v0, %v0, %v0, 0, -1
vcrnf %v0, %v0, %v0, 0, 16
vcrnf %v0, %v0, %v0, -1, 0
vcrnf %v0, %v0, %v0, 16, 0
#CHECK: error: invalid operand
#CHECK: vclzdp %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vclzdp %v0, %v0, 16
vclzdp %v0, %v0, -1
vclzdp %v0, %v0, 16
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vclzq %v0, %v0
vclzq %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vctzq %v0, %v0
vctzq %v0, %v0
#CHECK: error: invalid operand
#CHECK: vcsph %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vcsph %v0, %v0, %v0, 16
vcsph %v0, %v0, %v0, -1
vcsph %v0, %v0, %v0, 16
#CHECK: error: instruction requires: vector-packed-decimal-enhancement-3
#CHECK: vcvbq %v0, %v0, 0
vcvbq %v0, %v0, 0
#CHECK: error: instruction requires: vector-packed-decimal-enhancement-3
#CHECK: vcvdq %v0, %v0, 0, 0
vcvdq %v0, %v0, 0, 0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vd %v0, %v0, %v0, 0, 0
#CHECK: vdf %v0, %v0, %v0, 0
#CHECK: vdg %v0, %v0, %v0, 0
#CHECK: vdq %v0, %v0, %v0, 0
vd %v0, %v0, %v0, 0, 0
vdf %v0, %v0, %v0, 0
vdg %v0, %v0, %v0, 0
vdq %v0, %v0, %v0, 0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vdl %v0, %v0, %v0, 0, 0
#CHECK: vdlf %v0, %v0, %v0, 0
#CHECK: vdlg %v0, %v0, %v0, 0
#CHECK: vdlq %v0, %v0, %v0, 0
vdl %v0, %v0, %v0, 0, 0
vdlf %v0, %v0, %v0, 0
vdlg %v0, %v0, %v0, 0
vdlq %v0, %v0, %v0, 0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: veval %v0, %v0, %v0, %v0, 0
veval %v0, %v0, %v0, %v0, 0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vecq %v0, %v0
vecq %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: veclq %v0, %v0
veclq %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vgem %v0, %v0, 0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vgemb %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vgemh %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vgemf %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vgemg %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vgemq %v0, %v0
vgem %v0, %v0, 0
vgemb %v0, %v0
vgemh %v0, %v0
vgemf %v0, %v0
vgemg %v0, %v0
vgemq %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vlcq %v0, %v0
vlcq %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vlpq %v0, %v0
vlpq %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmalg %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmalq %v0, %v0, %v0, %v0
vmalg %v0, %v0, %v0, %v0
vmalq %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmahg %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmahq %v0, %v0, %v0, %v0
vmahg %v0, %v0, %v0, %v0
vmahq %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmalhg %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmalhq %v0, %v0, %v0, %v0
vmalhg %v0, %v0, %v0, %v0
vmalhq %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmaeg %v0, %v0, %v0, %v0
vmaeg %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmaleg %v0, %v0, %v0, %v0
vmaleg %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmaog %v0, %v0, %v0, %v0
vmaog %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmalog %v0, %v0, %v0, %v0
vmalog %v0, %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmlg %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmlq %v0, %v0, %v0
vmlg %v0, %v0, %v0
vmlq %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmhg %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmhq %v0, %v0, %v0
vmhg %v0, %v0, %v0
vmhq %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmlhg %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmlhq %v0, %v0, %v0
vmlhg %v0, %v0, %v0
vmlhq %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmeg %v0, %v0, %v0
vmeg %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmleg %v0, %v0, %v0
vmleg %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmog %v0, %v0, %v0
vmog %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmlog %v0, %v0, %v0
vmlog %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmnq %v0, %v0, %v0
vmnq %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmnlq %v0, %v0, %v0
vmnlq %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmxq %v0, %v0, %v0
vmxq %v0, %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vmxlq %v0, %v0, %v0
vmxlq %v0, %v0, %v0
#CHECK: error: invalid operand
#CHECK: vpkzr %v0, %v0, %v0, 0, -1
#CHECK: error: invalid operand
#CHECK: vpkzr %v0, %v0, %v0, 0, 16
#CHECK: error: invalid operand
#CHECK: vpkzr %v0, %v0, %v0, -1, 0
#CHECK: error: invalid operand
#CHECK: vpkzr %v0, %v0, %v0, 256, 0
vpkzr %v0, %v0, %v0, 0, -1
vpkzr %v0, %v0, %v0, 0, 16
vpkzr %v0, %v0, %v0, -1, 0
vpkzr %v0, %v0, %v0, 256, 0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vr %v0, %v0, %v0, 0, 0
#CHECK: vrf %v0, %v0, %v0, 0
#CHECK: vrg %v0, %v0, %v0, 0
#CHECK: vrq %v0, %v0, %v0, 0
vr %v0, %v0, %v0, 0, 0
vrf %v0, %v0, %v0, 0
vrg %v0, %v0, %v0, 0
vrq %v0, %v0, %v0, 0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vrl %v0, %v0, %v0, 0, 0
#CHECK: vrlf %v0, %v0, %v0, 0
#CHECK: vrlg %v0, %v0, %v0, 0
#CHECK: vrlq %v0, %v0, %v0, 0
vrl %v0, %v0, %v0, 0, 0
vrlf %v0, %v0, %v0, 0
vrlg %v0, %v0, %v0, 0
vrlq %v0, %v0, %v0, 0
#CHECK: error: invalid operand
#CHECK: vschp %v0, %v0, %v0, 0, -1
#CHECK: error: invalid operand
#CHECK: vschp %v0, %v0, %v0, 0, 16
#CHECK: error: invalid operand
#CHECK: vschp %v0, %v0, %v0, -1, 0
#CHECK: error: invalid operand
#CHECK: vschp %v0, %v0, %v0, 16, 0
vschp %v0, %v0, %v0, 0, -1
vschp %v0, %v0, %v0, 0, 16
vschp %v0, %v0, %v0, -1, 0
vschp %v0, %v0, %v0, 16, 0
#CHECK: error: invalid operand
#CHECK: vschsp %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vschsp %v0, %v0, %v0, 16
vschsp %v0, %v0, %v0, -1
vschsp %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vschdp %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vschdp %v0, %v0, %v0, 16
vschdp %v0, %v0, %v0, -1
vschdp %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vschxp %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vschxp %v0, %v0, %v0, 16
vschxp %v0, %v0, %v0, -1
vschxp %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vsrpr %v0, %v0, %v0, 0, -1
#CHECK: error: invalid operand
#CHECK: vsrpr %v0, %v0, %v0, 0, 16
#CHECK: error: invalid operand
#CHECK: vsrpr %v0, %v0, %v0, -1, 0
#CHECK: error: invalid operand
#CHECK: vsrpr %v0, %v0, %v0, 256, 0
vsrpr %v0, %v0, %v0, 0, -1
vsrpr %v0, %v0, %v0, 0, 16
vsrpr %v0, %v0, %v0, -1, 0
vsrpr %v0, %v0, %v0, 256, 0
#CHECK: error: instruction requires: vector-packed-decimal-enhancement-3
#CHECK: vtp %v0, 0
vtp %v0, 0
#CHECK: error: instruction requires: vector-packed-decimal-enhancement-3
#CHECK: vtz %v0, %v0, 0
vtz %v0, %v0, 0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vuphg %v0, %v0
vuphg %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vuplg %v0, %v0
vuplg %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vuplhg %v0, %v0
vuplhg %v0, %v0
#CHECK: error: instruction requires: vector-enhancements-3
#CHECK: vupllg %v0, %v0
vupllg %v0, %v0
#CHECK: error: invalid operand
#CHECK: vupkzh %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vupkzh %v0, %v0, 16
vupkzh %v0, %v0, -1
vupkzh %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vupkzl %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vupkzl %v0, %v0, 16
vupkzl %v0, %v0, -1
vupkzl %v0, %v0, 16