llvm/test/MC/SystemZ/insn-bad-z196.s
Richard Sandiford 6b6889d87b [SystemZ] Add support for z196 float<->unsigned conversions
These complement the older float<->signed instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204451 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-21 10:56:30 +00:00

634 lines
15 KiB
ArmAsm

# For z196 only.
# RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=z196 < %s 2> %t
# RUN: FileCheck < %t %s
#CHECK: error: invalid operand
#CHECK: aghik %r0, %r1, -32769
#CHECK: error: invalid operand
#CHECK: aghik %r0, %r1, 32768
#CHECK: error: invalid operand
#CHECK: aghik %r0, %r1, foo
aghik %r0, %r1, -32769
aghik %r0, %r1, 32768
aghik %r0, %r1, foo
#CHECK: error: invalid operand
#CHECK: ahik %r0, %r1, -32769
#CHECK: error: invalid operand
#CHECK: ahik %r0, %r1, 32768
#CHECK: error: invalid operand
#CHECK: ahik %r0, %r1, foo
ahik %r0, %r1, -32769
ahik %r0, %r1, 32768
ahik %r0, %r1, foo
#CHECK: error: invalid operand
#CHECK: aih %r0, (-1 << 31) - 1
#CHECK: error: invalid operand
#CHECK: aih %r0, (1 << 31)
aih %r0, (-1 << 31) - 1
aih %r0, (1 << 31)
#CHECK: error: invalid operand
#CHECK: cdlfbr %f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cdlfbr %f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cdlfbr %f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cdlfbr %f0, 16, %r0, 0
cdlfbr %f0, 0, %r0, -1
cdlfbr %f0, 0, %r0, 16
cdlfbr %f0, -1, %r0, 0
cdlfbr %f0, 16, %r0, 0
#CHECK: error: invalid operand
#CHECK: cdlgbr %f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cdlgbr %f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cdlgbr %f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cdlgbr %f0, 16, %r0, 0
cdlgbr %f0, 0, %r0, -1
cdlgbr %f0, 0, %r0, 16
cdlgbr %f0, -1, %r0, 0
cdlgbr %f0, 16, %r0, 0
#CHECK: error: invalid operand
#CHECK: celfbr %f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: celfbr %f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: celfbr %f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: celfbr %f0, 16, %r0, 0
celfbr %f0, 0, %r0, -1
celfbr %f0, 0, %r0, 16
celfbr %f0, -1, %r0, 0
celfbr %f0, 16, %r0, 0
#CHECK: error: invalid operand
#CHECK: celgbr %f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: celgbr %f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: celgbr %f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: celgbr %f0, 16, %r0, 0
celgbr %f0, 0, %r0, -1
celgbr %f0, 0, %r0, 16
celgbr %f0, -1, %r0, 0
celgbr %f0, 16, %r0, 0
#CHECK: error: invalid operand
#CHECK: chf %r0, -524289
#CHECK: error: invalid operand
#CHECK: chf %r0, 524288
chf %r0, -524289
chf %r0, 524288
#CHECK: error: invalid operand
#CHECK: cih %r0, (-1 << 31) - 1
#CHECK: error: invalid operand
#CHECK: cih %r0, (1 << 31)
cih %r0, (-1 << 31) - 1
cih %r0, (1 << 31)
#CHECK: error: invalid operand
#CHECK: clfdbr %r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clfdbr %r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clfdbr %r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clfdbr %r0, 16, %f0, 0
clfdbr %r0, 0, %f0, -1
clfdbr %r0, 0, %f0, 16
clfdbr %r0, -1, %f0, 0
clfdbr %r0, 16, %f0, 0
#CHECK: error: invalid operand
#CHECK: clfebr %r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clfebr %r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clfebr %r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clfebr %r0, 16, %f0, 0
clfebr %r0, 0, %f0, -1
clfebr %r0, 0, %f0, 16
clfebr %r0, -1, %f0, 0
clfebr %r0, 16, %f0, 0
#CHECK: error: invalid operand
#CHECK: clfxbr %r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clfxbr %r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clfxbr %r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clfxbr %r0, 16, %f0, 0
#CHECK: error: invalid register pair
#CHECK: clfxbr %r0, 0, %f14, 0
clfxbr %r0, 0, %f0, -1
clfxbr %r0, 0, %f0, 16
clfxbr %r0, -1, %f0, 0
clfxbr %r0, 16, %f0, 0
clfxbr %r0, 0, %f14, 0
#CHECK: error: invalid operand
#CHECK: clgdbr %r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clgdbr %r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clgdbr %r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clgdbr %r0, 16, %f0, 0
clgdbr %r0, 0, %f0, -1
clgdbr %r0, 0, %f0, 16
clgdbr %r0, -1, %f0, 0
clgdbr %r0, 16, %f0, 0
#CHECK: error: invalid operand
#CHECK: clgebr %r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clgebr %r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clgebr %r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clgebr %r0, 16, %f0, 0
clgebr %r0, 0, %f0, -1
clgebr %r0, 0, %f0, 16
clgebr %r0, -1, %f0, 0
clgebr %r0, 16, %f0, 0
#CHECK: error: invalid operand
#CHECK: clgxbr %r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clgxbr %r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clgxbr %r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clgxbr %r0, 16, %f0, 0
#CHECK: error: invalid register pair
#CHECK: clgxbr %r0, 0, %f14, 0
clgxbr %r0, 0, %f0, -1
clgxbr %r0, 0, %f0, 16
clgxbr %r0, -1, %f0, 0
clgxbr %r0, 16, %f0, 0
clgxbr %r0, 0, %f14, 0
#CHECK: error: invalid operand
#CHECK: clhf %r0, -524289
#CHECK: error: invalid operand
#CHECK: clhf %r0, 524288
clhf %r0, -524289
clhf %r0, 524288
#CHECK: error: invalid operand
#CHECK: clih %r0, -1
#CHECK: error: invalid operand
#CHECK: clih %r0, (1 << 32)
clih %r0, -1
clih %r0, (1 << 32)
#CHECK: error: invalid operand
#CHECK: cxlfbr %f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cxlfbr %f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cxlfbr %f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cxlfbr %f0, 16, %r0, 0
#CHECK: error: invalid register pair
#CHECK: cxlfbr %f2, 0, %r0, 0
cxlfbr %f0, 0, %r0, -1
cxlfbr %f0, 0, %r0, 16
cxlfbr %f0, -1, %r0, 0
cxlfbr %f0, 16, %r0, 0
cxlfbr %f2, 0, %r0, 0
#CHECK: error: invalid operand
#CHECK: cxlgbr %f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cxlgbr %f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cxlgbr %f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cxlgbr %f0, 16, %r0, 0
#CHECK: error: invalid register pair
#CHECK: cxlgbr %f2, 0, %r0, 0
cxlgbr %f0, 0, %r0, -1
cxlgbr %f0, 0, %r0, 16
cxlgbr %f0, -1, %r0, 0
cxlgbr %f0, 16, %r0, 0
cxlgbr %f2, 0, %r0, 0
#CHECK: error: invalid operand
#CHECK: fidbra %f0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: fidbra %f0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: fidbra %f0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: fidbra %f0, 16, %f0, 0
fidbra %f0, 0, %f0, -1
fidbra %f0, 0, %f0, 16
fidbra %f0, -1, %f0, 0
fidbra %f0, 16, %f0, 0
#CHECK: error: invalid operand
#CHECK: fiebra %f0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: fiebra %f0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: fiebra %f0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: fiebra %f0, 16, %f0, 0
fiebra %f0, 0, %f0, -1
fiebra %f0, 0, %f0, 16
fiebra %f0, -1, %f0, 0
fiebra %f0, 16, %f0, 0
#CHECK: error: invalid operand
#CHECK: fixbra %f0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: fixbra %f0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: fixbra %f0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: fixbra %f0, 16, %f0, 0
#CHECK: error: invalid register pair
#CHECK: fixbra %f0, 0, %f2, 0
#CHECK: error: invalid register pair
#CHECK: fixbra %f2, 0, %f0, 0
fixbra %f0, 0, %f0, -1
fixbra %f0, 0, %f0, 16
fixbra %f0, -1, %f0, 0
fixbra %f0, 16, %f0, 0
fixbra %f0, 0, %f2, 0
fixbra %f2, 0, %f0, 0
#CHECK: error: invalid operand
#CHECK: laa %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: laa %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: laa %r0, %r0, 0(%r1,%r2)
laa %r0, %r0, -524289
laa %r0, %r0, 524288
laa %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: laag %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: laag %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: laag %r0, %r0, 0(%r1,%r2)
laag %r0, %r0, -524289
laag %r0, %r0, 524288
laag %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: laal %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: laal %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: laal %r0, %r0, 0(%r1,%r2)
laal %r0, %r0, -524289
laal %r0, %r0, 524288
laal %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: laalg %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: laalg %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: laalg %r0, %r0, 0(%r1,%r2)
laalg %r0, %r0, -524289
laalg %r0, %r0, 524288
laalg %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: lan %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: lan %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: lan %r0, %r0, 0(%r1,%r2)
lan %r0, %r0, -524289
lan %r0, %r0, 524288
lan %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: lang %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: lang %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: lang %r0, %r0, 0(%r1,%r2)
lang %r0, %r0, -524289
lang %r0, %r0, 524288
lang %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: lao %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: lao %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: lao %r0, %r0, 0(%r1,%r2)
lao %r0, %r0, -524289
lao %r0, %r0, 524288
lao %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: laog %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: laog %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: laog %r0, %r0, 0(%r1,%r2)
laog %r0, %r0, -524289
laog %r0, %r0, 524288
laog %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: lax %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: lax %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: lax %r0, %r0, 0(%r1,%r2)
lax %r0, %r0, -524289
lax %r0, %r0, 524288
lax %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: laxg %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: laxg %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: laxg %r0, %r0, 0(%r1,%r2)
laxg %r0, %r0, -524289
laxg %r0, %r0, 524288
laxg %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: lbh %r0, -524289
#CHECK: error: invalid operand
#CHECK: lbh %r0, 524288
lbh %r0, -524289
lbh %r0, 524288
#CHECK: error: invalid operand
#CHECK: lfh %r0, -524289
#CHECK: error: invalid operand
#CHECK: lfh %r0, 524288
lfh %r0, -524289
lfh %r0, 524288
#CHECK: error: invalid operand
#CHECK: lhh %r0, -524289
#CHECK: error: invalid operand
#CHECK: lhh %r0, 524288
lhh %r0, -524289
lhh %r0, 524288
#CHECK: error: invalid operand
#CHECK: llch %r0, -524289
#CHECK: error: invalid operand
#CHECK: llch %r0, 524288
llch %r0, -524289
llch %r0, 524288
#CHECK: error: invalid operand
#CHECK: llhh %r0, -524289
#CHECK: error: invalid operand
#CHECK: llhh %r0, 524288
llhh %r0, -524289
llhh %r0, 524288
#CHECK: error: invalid operand
#CHECK: loc %r0,0,-1
#CHECK: error: invalid operand
#CHECK: loc %r0,0,16
#CHECK: error: invalid operand
#CHECK: loc %r0,-524289,1
#CHECK: error: invalid operand
#CHECK: loc %r0,524288,1
#CHECK: error: invalid use of indexed addressing
#CHECK: loc %r0,0(%r1,%r2),1
loc %r0,0,-1
loc %r0,0,16
loc %r0,-524289,1
loc %r0,524288,1
loc %r0,0(%r1,%r2),1
#CHECK: error: invalid operand
#CHECK: locg %r0,0,-1
#CHECK: error: invalid operand
#CHECK: locg %r0,0,16
#CHECK: error: invalid operand
#CHECK: locg %r0,-524289,1
#CHECK: error: invalid operand
#CHECK: locg %r0,524288,1
#CHECK: error: invalid use of indexed addressing
#CHECK: locg %r0,0(%r1,%r2),1
locg %r0,0,-1
locg %r0,0,16
locg %r0,-524289,1
locg %r0,524288,1
locg %r0,0(%r1,%r2),1
#CHECK: error: invalid operand
#CHECK: locgr %r0,%r0,-1
#CHECK: error: invalid operand
#CHECK: locgr %r0,%r0,16
locgr %r0,%r0,-1
locgr %r0,%r0,16
#CHECK: error: invalid operand
#CHECK: locr %r0,%r0,-1
#CHECK: error: invalid operand
#CHECK: locr %r0,%r0,16
locr %r0,%r0,-1
locr %r0,%r0,16
#CHECK: error: invalid operand
#CHECK: risbhg %r0,%r0,0,0,-1
#CHECK: error: invalid operand
#CHECK: risbhg %r0,%r0,0,0,64
#CHECK: error: invalid operand
#CHECK: risbhg %r0,%r0,0,-1,0
#CHECK: error: invalid operand
#CHECK: risbhg %r0,%r0,0,256,0
#CHECK: error: invalid operand
#CHECK: risbhg %r0,%r0,-1,0,0
#CHECK: error: invalid operand
#CHECK: risbhg %r0,%r0,256,0,0
risbhg %r0,%r0,0,0,-1
risbhg %r0,%r0,0,0,64
risbhg %r0,%r0,0,-1,0
risbhg %r0,%r0,0,256,0
risbhg %r0,%r0,-1,0,0
risbhg %r0,%r0,256,0,0
#CHECK: error: invalid operand
#CHECK: risblg %r0,%r0,0,0,-1
#CHECK: error: invalid operand
#CHECK: risblg %r0,%r0,0,0,64
#CHECK: error: invalid operand
#CHECK: risblg %r0,%r0,0,-1,0
#CHECK: error: invalid operand
#CHECK: risblg %r0,%r0,0,256,0
#CHECK: error: invalid operand
#CHECK: risblg %r0,%r0,-1,0,0
#CHECK: error: invalid operand
#CHECK: risblg %r0,%r0,256,0,0
risblg %r0,%r0,0,0,-1
risblg %r0,%r0,0,0,64
risblg %r0,%r0,0,-1,0
risblg %r0,%r0,0,256,0
risblg %r0,%r0,-1,0,0
risblg %r0,%r0,256,0,0
#CHECK: error: invalid operand
#CHECK: sllk %r0,%r0,-524289
#CHECK: error: invalid operand
#CHECK: sllk %r0,%r0,524288
#CHECK: error: %r0 used in an address
#CHECK: sllk %r0,%r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: sllk %r0,%r0,0(%r1,%r2)
sllk %r0,%r0,-524289
sllk %r0,%r0,524288
sllk %r0,%r0,0(%r0)
sllk %r0,%r0,0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: srak %r0,%r0,-524289
#CHECK: error: invalid operand
#CHECK: srak %r0,%r0,524288
#CHECK: error: %r0 used in an address
#CHECK: srak %r0,%r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: srak %r0,%r0,0(%r1,%r2)
srak %r0,%r0,-524289
srak %r0,%r0,524288
srak %r0,%r0,0(%r0)
srak %r0,%r0,0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: srlk %r0,%r0,-524289
#CHECK: error: invalid operand
#CHECK: srlk %r0,%r0,524288
#CHECK: error: %r0 used in an address
#CHECK: srlk %r0,%r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: srlk %r0,%r0,0(%r1,%r2)
srlk %r0,%r0,-524289
srlk %r0,%r0,524288
srlk %r0,%r0,0(%r0)
srlk %r0,%r0,0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: stch %r0, -524289
#CHECK: error: invalid operand
#CHECK: stch %r0, 524288
stch %r0, -524289
stch %r0, 524288
#CHECK: error: invalid operand
#CHECK: sthh %r0, -524289
#CHECK: error: invalid operand
#CHECK: sthh %r0, 524288
sthh %r0, -524289
sthh %r0, 524288
#CHECK: error: invalid operand
#CHECK: stfh %r0, -524289
#CHECK: error: invalid operand
#CHECK: stfh %r0, 524288
stfh %r0, -524289
stfh %r0, 524288
#CHECK: error: invalid operand
#CHECK: stoc %r0,0,-1
#CHECK: error: invalid operand
#CHECK: stoc %r0,0,16
#CHECK: error: invalid operand
#CHECK: stoc %r0,-524289,1
#CHECK: error: invalid operand
#CHECK: stoc %r0,524288,1
#CHECK: error: invalid use of indexed addressing
#CHECK: stoc %r0,0(%r1,%r2),1
stoc %r0,0,-1
stoc %r0,0,16
stoc %r0,-524289,1
stoc %r0,524288,1
stoc %r0,0(%r1,%r2),1
#CHECK: error: invalid operand
#CHECK: stocg %r0,0,-1
#CHECK: error: invalid operand
#CHECK: stocg %r0,0,16
#CHECK: error: invalid operand
#CHECK: stocg %r0,-524289,1
#CHECK: error: invalid operand
#CHECK: stocg %r0,524288,1
#CHECK: error: invalid use of indexed addressing
#CHECK: stocg %r0,0(%r1,%r2),1
stocg %r0,0,-1
stocg %r0,0,16
stocg %r0,-524289,1
stocg %r0,524288,1
stocg %r0,0(%r1,%r2),1