blob: 02e26220490f40d3a2fb40384c7edccda823c42a [file] [log] [blame]
# For z17 only.
# RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=z17 < %s 2> %t
# RUN: FileCheck < %t %s
#CHECK: error: invalid use of indexed addressing
#CHECK: cal %r2, 160(%r1,%r15), 160(%r15)
#CHECK: error: invalid operand
#CHECK: cal %r2, -1(%r1), 160(%r15)
#CHECK: error: invalid operand
#CHECK: cal %r2, 4096(%r1), 160(%r15)
#CHECK: error: invalid operand
#CHECK: cal %r2, 0(%r1), -1(%r15)
#CHECK: error: invalid operand
#CHECK: cal %r2, 0(%r1), 4096(%r15)
cal %r2, 160(%r1,%r15), 160(%r15)
cal %r2, -1(%r1), 160(%r15)
cal %r2, 4096(%r1), 160(%r15)
cal %r2, 0(%r1), -1(%r15)
cal %r2, 0(%r1), 4096(%r15)
#CHECK: error: invalid use of indexed addressing
#CHECK: calg %r2, 160(%r1,%r15), 160(%r15)
#CHECK: error: invalid operand
#CHECK: calg %r2, -1(%r1), 160(%r15)
#CHECK: error: invalid operand
#CHECK: calg %r2, 4096(%r1), 160(%r15)
#CHECK: error: invalid operand
#CHECK: calg %r2, 0(%r1), -1(%r15)
#CHECK: error: invalid operand
#CHECK: calg %r2, 0(%r1), 4096(%r15)
calg %r2, 160(%r1,%r15), 160(%r15)
calg %r2, -1(%r1), 160(%r15)
calg %r2, 4096(%r1), 160(%r15)
calg %r2, 0(%r1), -1(%r15)
calg %r2, 0(%r1), 4096(%r15)
#CHECK: error: invalid use of indexed addressing
#CHECK: calgf %r2, 160(%r1,%r15), 160(%r15)
#CHECK: error: invalid operand
#CHECK: calgf %r2, -1(%r1), 160(%r15)
#CHECK: error: invalid operand
#CHECK: calgf %r2, 4096(%r1), 160(%r15)
#CHECK: error: invalid operand
#CHECK: calgf %r2, 0(%r1), -1(%r15)
#CHECK: error: invalid operand
#CHECK: calgf %r2, 0(%r1), 4096(%r15)
calgf %r2, 160(%r1,%r15), 160(%r15)
calgf %r2, -1(%r1), 160(%r15)
calgf %r2, 4096(%r1), 160(%r15)
calgf %r2, 0(%r1), -1(%r15)
calgf %r2, 0(%r1), 4096(%r15)
#CHECK: error: invalid operand
#CHECK: kimd %r0, %r0, -1
#CHECK: error: invalid operand
#CHECK: kimd %r0, %r0, 16
kimd %r0, %r0, -1
kimd %r0, %r0, 16
#CHECK: error: invalid operand
#CHECK: klmd %r0, %r0, -1
#CHECK: error: invalid operand
#CHECK: klmd %r0, %r0, 16
klmd %r0, %r0, -1
klmd %r0, %r0, 16
#CHECK: error: invalid operand
#CHECK: lxab %r0, -524289
#CHECK: error: invalid operand
#CHECK: lxab %r0, 524288
lxab %r0, -524289
lxab %r0, 524288
#CHECK: error: invalid operand
#CHECK: lxah %r0, -524289
#CHECK: error: invalid operand
#CHECK: lxah %r0, 524288
lxah %r0, -524289
lxah %r0, 524288
#CHECK: error: invalid operand
#CHECK: lxaf %r0, -524289
#CHECK: error: invalid operand
#CHECK: lxaf %r0, 524288
lxaf %r0, -524289
lxaf %r0, 524288
#CHECK: error: invalid operand
#CHECK: lxag %r0, -524289
#CHECK: error: invalid operand
#CHECK: lxag %r0, 524288
lxag %r0, -524289
lxag %r0, 524288
#CHECK: error: invalid operand
#CHECK: lxaq %r0, -524289
#CHECK: error: invalid operand
#CHECK: lxaq %r0, 524288
lxaq %r0, -524289
lxaq %r0, 524288
#CHECK: error: invalid operand
#CHECK: llxab %r0, -524289
#CHECK: error: invalid operand
#CHECK: llxab %r0, 524288
llxab %r0, -524289
llxab %r0, 524288
#CHECK: error: invalid operand
#CHECK: llxah %r0, -524289
#CHECK: error: invalid operand
#CHECK: llxah %r0, 524288
llxah %r0, -524289
llxah %r0, 524288
#CHECK: error: invalid operand
#CHECK: llxaf %r0, -524289
#CHECK: error: invalid operand
#CHECK: llxaf %r0, 524288
llxaf %r0, -524289
llxaf %r0, 524288
#CHECK: error: invalid operand
#CHECK: llxag %r0, -524289
#CHECK: error: invalid operand
#CHECK: llxag %r0, 524288
llxag %r0, -524289
llxag %r0, 524288
#CHECK: error: invalid operand
#CHECK: llxaq %r0, -524289
#CHECK: error: invalid operand
#CHECK: llxaq %r0, 524288
llxaq %r0, -524289
llxaq %r0, 524288
#CHECK: error: invalid operand
#CHECK: pfcr %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: pfcr %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: pfcr %r0, %r0, 0(%r1,%r2)
pfcr %r0, %r0, -524289
pfcr %r0, %r0, 524288
pfcr %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: vcvbq %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vcvbq %v0, %v0, 16
vcvbq %v0, %v0, -1
vcvbq %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vcvdq %v0, %v0, 0, -1
#CHECK: error: invalid operand
#CHECK: vcvdq %v0, %v0, 0, 16
#CHECK: error: invalid operand
#CHECK: vcvdq %v0, %v0, -1, 0
#CHECK: error: invalid operand
#CHECK: vcvdq %v0, %v0, 256, 0
vcvdq %v0, %v0, 0, -1
vcvdq %v0, %v0, 0, 16
vcvdq %v0, %v0, -1, 0
vcvdq %v0, %v0, 256, 0
#CHECK: error: invalid operand
#CHECK: vd %v0, %v0, %v0, 0, -1
#CHECK: error: invalid operand
#CHECK: vd %v0, %v0, %v0, 0, 16
#CHECK: error: invalid operand
#CHECK: vd %v0, %v0, %v0, -1, 0
#CHECK: error: invalid operand
#CHECK: vd %v0, %v0, %v0, 16, 0
vd %v0, %v0, %v0, 0, -1
vd %v0, %v0, %v0, 0, 16
vd %v0, %v0, %v0, -1, 0
vd %v0, %v0, %v0, 16, 0
#CHECK: error: invalid operand
#CHECK: vdf %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vdf %v0, %v0, %v0, 16
vdf %v0, %v0, %v0, -1
vdf %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vdg %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vdg %v0, %v0, %v0, 16
vdg %v0, %v0, %v0, -1
vdg %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vdq %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vdq %v0, %v0, %v0, 16
vdq %v0, %v0, %v0, -1
vdq %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vdl %v0, %v0, %v0, 0, -1
#CHECK: error: invalid operand
#CHECK: vdl %v0, %v0, %v0, 0, 16
#CHECK: error: invalid operand
#CHECK: vdl %v0, %v0, %v0, -1, 0
#CHECK: error: invalid operand
#CHECK: vdl %v0, %v0, %v0, 16, 0
vdl %v0, %v0, %v0, 0, -1
vdl %v0, %v0, %v0, 0, 16
vdl %v0, %v0, %v0, -1, 0
vdl %v0, %v0, %v0, 16, 0
#CHECK: error: invalid operand
#CHECK: vdlf %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vdlf %v0, %v0, %v0, 16
vdlf %v0, %v0, %v0, -1
vdlf %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vdlg %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vdlg %v0, %v0, %v0, 16
vdlg %v0, %v0, %v0, -1
vdlg %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vdlq %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vdlq %v0, %v0, %v0, 16
vdlq %v0, %v0, %v0, -1
vdlq %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: veval %v0, %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: veval %v0, %v0, %v0, %v0, 256
veval %v0, %v0, %v0, %v0, -1
veval %v0, %v0, %v0, %v0, 256
#CHECK: error: invalid operand
#CHECK: vr %v0, %v0, %v0, 0, -1
#CHECK: error: invalid operand
#CHECK: vr %v0, %v0, %v0, 0, 16
#CHECK: error: invalid operand
#CHECK: vr %v0, %v0, %v0, -1, 0
#CHECK: error: invalid operand
#CHECK: vr %v0, %v0, %v0, 16, 0
vr %v0, %v0, %v0, 0, -1
vr %v0, %v0, %v0, 0, 16
vr %v0, %v0, %v0, -1, 0
vr %v0, %v0, %v0, 16, 0
#CHECK: error: invalid operand
#CHECK: vrf %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vrf %v0, %v0, %v0, 16
vrf %v0, %v0, %v0, -1
vrf %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vrg %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vrg %v0, %v0, %v0, 16
vrg %v0, %v0, %v0, -1
vrg %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vrq %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vrq %v0, %v0, %v0, 16
vrq %v0, %v0, %v0, -1
vrq %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vrl %v0, %v0, %v0, 0, -1
#CHECK: error: invalid operand
#CHECK: vrl %v0, %v0, %v0, 0, 16
#CHECK: error: invalid operand
#CHECK: vrl %v0, %v0, %v0, -1, 0
#CHECK: error: invalid operand
#CHECK: vrl %v0, %v0, %v0, 16, 0
vrl %v0, %v0, %v0, 0, -1
vrl %v0, %v0, %v0, 0, 16
vrl %v0, %v0, %v0, -1, 0
vrl %v0, %v0, %v0, 16, 0
#CHECK: error: invalid operand
#CHECK: vrlf %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vrlf %v0, %v0, %v0, 16
vrlf %v0, %v0, %v0, -1
vrlf %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vrlg %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vrlg %v0, %v0, %v0, 16
vrlg %v0, %v0, %v0, -1
vrlg %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vrlq %v0, %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vrlq %v0, %v0, %v0, 16
vrlq %v0, %v0, %v0, -1
vrlq %v0, %v0, %v0, 16
#CHECK: error: invalid operand
#CHECK: vtp %v0, -1
#CHECK: error: invalid operand
#CHECK: vtp %v0, 65536
vtp %v0, -1
vtp %v0, 65536
#CHECK: error: invalid operand
#CHECK: vtz %v0, %v0, -1
#CHECK: error: invalid operand
#CHECK: vtz %v0, %v0, 65536
vtz %v0, %v0, -1
vtz %v0, %v0, 65536