llvm-6502/test/MC/SystemZ/insn-bad.s
Richard Sandiford f386961da3 [SystemZ] Improve AsmParser register parsing
The idea is to make sure that:

(1) "register expected" is restricted to cases where ParseRegister()
    is called and the token obviously isn't a register.

(2) "invalid register" is restricted to cases where a register-like "%..."
    sequence is found, but the "..." makes no sense.

(3) the generic "invalid operand for instruction" is used in cases where
    the wrong register type is used (GPR instead of FPR, etc.).

(4) the new "invalid register pair" is used if the register has the right type,
    but is not a valid register pair.

Testing of (1)-(3) is now restricted to regs-bad.s.  It uses a representative
instruction for each register class to make sure that only registers from
that class are accepted.

(4) is tested by both regs-bad.s (which checks all invalid register pairs)
and insn-bad.s (which tests one invalid pair for each instruction that
requires a pair).

While there, I changed "Number" to "Num" for consistency with the
operand class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182643 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-24 14:14:38 +00:00

2472 lines
48 KiB
ArmAsm

# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t
# RUN: FileCheck < %t %s
#CHECK: error: invalid operand
#CHECK: a %r0, -1
#CHECK: error: invalid operand
#CHECK: a %r0, 4096
a %r0, -1
a %r0, 4096
#CHECK: error: invalid operand
#CHECK: adb %f0, -1
#CHECK: error: invalid operand
#CHECK: adb %f0, 4096
adb %f0, -1
adb %f0, 4096
#CHECK: error: invalid operand
#CHECK: aeb %f0, -1
#CHECK: error: invalid operand
#CHECK: aeb %f0, 4096
aeb %f0, -1
aeb %f0, 4096
#CHECK: error: invalid operand
#CHECK: afi %r0, (-1 << 31) - 1
#CHECK: error: invalid operand
#CHECK: afi %r0, (1 << 31)
afi %r0, (-1 << 31) - 1
afi %r0, (1 << 31)
#CHECK: error: invalid operand
#CHECK: ag %r0, -524289
#CHECK: error: invalid operand
#CHECK: ag %r0, 524288
ag %r0, -524289
ag %r0, 524288
#CHECK: error: invalid operand
#CHECK: agf %r0, -524289
#CHECK: error: invalid operand
#CHECK: agf %r0, 524288
agf %r0, -524289
agf %r0, 524288
#CHECK: error: invalid operand
#CHECK: agfi %r0, (-1 << 31) - 1
#CHECK: error: invalid operand
#CHECK: agfi %r0, (1 << 31)
agfi %r0, (-1 << 31) - 1
agfi %r0, (1 << 31)
#CHECK: error: invalid operand
#CHECK: aghi %r0, -32769
#CHECK: error: invalid operand
#CHECK: aghi %r0, 32768
#CHECK: error: invalid operand
#CHECK: aghi %r0, foo
aghi %r0, -32769
aghi %r0, 32768
aghi %r0, foo
#CHECK: error: invalid operand
#CHECK: agsi -524289, 0
#CHECK: error: invalid operand
#CHECK: agsi 524288, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: agsi 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: agsi 0, -129
#CHECK: error: invalid operand
#CHECK: agsi 0, 128
agsi -524289, 0
agsi 524288, 0
agsi 0(%r1,%r2), 0
agsi 0, -129
agsi 0, 128
#CHECK: error: invalid operand
#CHECK: ah %r0, -1
#CHECK: error: invalid operand
#CHECK: ah %r0, 4096
ah %r0, -1
ah %r0, 4096
#CHECK: error: invalid operand
#CHECK: ahi %r0, -32769
#CHECK: error: invalid operand
#CHECK: ahi %r0, 32768
#CHECK: error: invalid operand
#CHECK: ahi %r0, foo
ahi %r0, -32769
ahi %r0, 32768
ahi %r0, foo
#CHECK: error: invalid operand
#CHECK: ahy %r0, -524289
#CHECK: error: invalid operand
#CHECK: ahy %r0, 524288
ahy %r0, -524289
ahy %r0, 524288
#CHECK: error: invalid operand
#CHECK: al %r0, -1
#CHECK: error: invalid operand
#CHECK: al %r0, 4096
al %r0, -1
al %r0, 4096
#CHECK: error: invalid operand
#CHECK: alc %r0, -524289
#CHECK: error: invalid operand
#CHECK: alc %r0, 524288
alc %r0, -524289
alc %r0, 524288
#CHECK: error: invalid operand
#CHECK: alcg %r0, -524289
#CHECK: error: invalid operand
#CHECK: alcg %r0, 524288
alcg %r0, -524289
alcg %r0, 524288
#CHECK: error: invalid operand
#CHECK: alfi %r0, -1
#CHECK: error: invalid operand
#CHECK: alfi %r0, (1 << 32)
alfi %r0, -1
alfi %r0, (1 << 32)
#CHECK: error: invalid operand
#CHECK: alg %r0, -524289
#CHECK: error: invalid operand
#CHECK: alg %r0, 524288
alg %r0, -524289
alg %r0, 524288
#CHECK: error: invalid operand
#CHECK: algf %r0, -524289
#CHECK: error: invalid operand
#CHECK: algf %r0, 524288
algf %r0, -524289
algf %r0, 524288
#CHECK: error: invalid operand
#CHECK: algfi %r0, -1
#CHECK: error: invalid operand
#CHECK: algfi %r0, (1 << 32)
algfi %r0, -1
algfi %r0, (1 << 32)
#CHECK: error: invalid operand
#CHECK: aly %r0, -524289
#CHECK: error: invalid operand
#CHECK: aly %r0, 524288
aly %r0, -524289
aly %r0, 524288
#CHECK: error: invalid operand
#CHECK: asi -524289, 0
#CHECK: error: invalid operand
#CHECK: asi 524288, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: asi 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: asi 0, -129
#CHECK: error: invalid operand
#CHECK: asi 0, 128
asi -524289, 0
asi 524288, 0
asi 0(%r1,%r2), 0
asi 0, -129
asi 0, 128
#CHECK: error: invalid register pair
#CHECK: axbr %f0, %f2
#CHECK: error: invalid register pair
#CHECK: axbr %f2, %f0
axbr %f0, %f2
axbr %f2, %f0
#CHECK: error: invalid operand
#CHECK: ay %r0, -524289
#CHECK: error: invalid operand
#CHECK: ay %r0, 524288
ay %r0, -524289
ay %r0, 524288
#CHECK: error: offset out of range
#CHECK: bras %r0, -0x100002
#CHECK: error: offset out of range
#CHECK: bras %r0, -1
#CHECK: error: offset out of range
#CHECK: bras %r0, 1
#CHECK: error: offset out of range
#CHECK: bras %r0, 0x10000
bras %r0, -0x100002
bras %r0, -1
bras %r0, 1
bras %r0, 0x10000
#CHECK: error: offset out of range
#CHECK: brasl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: brasl %r0, -1
#CHECK: error: offset out of range
#CHECK: brasl %r0, 1
#CHECK: error: offset out of range
#CHECK: brasl %r0, 0x100000000
brasl %r0, -0x1000000002
brasl %r0, -1
brasl %r0, 1
brasl %r0, 0x100000000
#CHECK: error: offset out of range
#CHECK: brc 0, -0x100002
#CHECK: error: offset out of range
#CHECK: brc 0, -1
#CHECK: error: offset out of range
#CHECK: brc 0, 1
#CHECK: error: offset out of range
#CHECK: brc 0, 0x10000
brc 0, -0x100002
brc 0, -1
brc 0, 1
brc 0, 0x10000
#CHECK: error: invalid operand
#CHECK: brc foo, bar
#CHECK: error: invalid operand
#CHECK: brc -1, bar
#CHECK: error: invalid operand
#CHECK: brc 16, bar
brc foo, bar
brc -1, bar
brc 16, bar
#CHECK: error: offset out of range
#CHECK: brcl 0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: brcl 0, -1
#CHECK: error: offset out of range
#CHECK: brcl 0, 1
#CHECK: error: offset out of range
#CHECK: brcl 0, 0x100000000
brcl 0, -0x1000000002
brcl 0, -1
brcl 0, 1
brcl 0, 0x100000000
#CHECK: error: invalid operand
#CHECK: brcl foo, bar
#CHECK: error: invalid operand
#CHECK: brcl -1, bar
#CHECK: error: invalid operand
#CHECK: brcl 16, bar
brcl foo, bar
brcl -1, bar
brcl 16, bar
#CHECK: error: invalid operand
#CHECK: c %r0, -1
#CHECK: error: invalid operand
#CHECK: c %r0, 4096
c %r0, -1
c %r0, 4096
#CHECK: error: invalid operand
#CHECK: cdb %f0, -1
#CHECK: error: invalid operand
#CHECK: cdb %f0, 4096
cdb %f0, -1
cdb %f0, 4096
#CHECK: error: invalid operand
#CHECK: ceb %f0, -1
#CHECK: error: invalid operand
#CHECK: ceb %f0, 4096
ceb %f0, -1
ceb %f0, 4096
#CHECK: error: invalid operand
#CHECK: cfdbr %r0, -1, %f0
#CHECK: error: invalid operand
#CHECK: cfdbr %r0, 16, %f0
cfdbr %r0, -1, %f0
cfdbr %r0, 16, %f0
#CHECK: error: invalid operand
#CHECK: cfebr %r0, -1, %f0
#CHECK: error: invalid operand
#CHECK: cfebr %r0, 16, %f0
cfebr %r0, -1, %f0
cfebr %r0, 16, %f0
#CHECK: error: invalid operand
#CHECK: cfi %r0, (-1 << 31) - 1
#CHECK: error: invalid operand
#CHECK: cfi %r0, (1 << 31)
cfi %r0, (-1 << 31) - 1
cfi %r0, (1 << 31)
#CHECK: error: invalid operand
#CHECK: cfxbr %r0, -1, %f0
#CHECK: error: invalid operand
#CHECK: cfxbr %r0, 16, %f0
#CHECK: error: invalid register pair
#CHECK: cfxbr %r0, 0, %f2
cfxbr %r0, -1, %f0
cfxbr %r0, 16, %f0
cfxbr %r0, 0, %f2
#CHECK: error: invalid operand
#CHECK: cg %r0, -524289
#CHECK: error: invalid operand
#CHECK: cg %r0, 524288
cg %r0, -524289
cg %r0, 524288
#CHECK: error: invalid operand
#CHECK: cgdbr %r0, -1, %f0
#CHECK: error: invalid operand
#CHECK: cgdbr %r0, 16, %f0
cgdbr %r0, -1, %f0
cgdbr %r0, 16, %f0
#CHECK: error: invalid operand
#CHECK: cgebr %r0, -1, %f0
#CHECK: error: invalid operand
#CHECK: cgebr %r0, 16, %f0
cgebr %r0, -1, %f0
cgebr %r0, 16, %f0
#CHECK: error: invalid operand
#CHECK: cgf %r0, -524289
#CHECK: error: invalid operand
#CHECK: cgf %r0, 524288
cgf %r0, -524289
cgf %r0, 524288
#CHECK: error: invalid operand
#CHECK: cgfi %r0, (-1 << 31) - 1
#CHECK: error: invalid operand
#CHECK: cgfi %r0, (1 << 31)
cgfi %r0, (-1 << 31) - 1
cgfi %r0, (1 << 31)
#CHECK: error: offset out of range
#CHECK: cgfrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: cgfrl %r0, -1
#CHECK: error: offset out of range
#CHECK: cgfrl %r0, 1
#CHECK: error: offset out of range
#CHECK: cgfrl %r0, 0x100000000
cgfrl %r0, -0x1000000002
cgfrl %r0, -1
cgfrl %r0, 1
cgfrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: cgh %r0, -524289
#CHECK: error: invalid operand
#CHECK: cgh %r0, 524288
cgh %r0, -524289
cgh %r0, 524288
#CHECK: error: invalid operand
#CHECK: cghi %r0, -32769
#CHECK: error: invalid operand
#CHECK: cghi %r0, 32768
#CHECK: error: invalid operand
#CHECK: cghi %r0, foo
cghi %r0, -32769
cghi %r0, 32768
cghi %r0, foo
#CHECK: error: offset out of range
#CHECK: cghrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: cghrl %r0, -1
#CHECK: error: offset out of range
#CHECK: cghrl %r0, 1
#CHECK: error: offset out of range
#CHECK: cghrl %r0, 0x100000000
cghrl %r0, -0x1000000002
cghrl %r0, -1
cghrl %r0, 1
cghrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: cghsi -1, 0
#CHECK: error: invalid operand
#CHECK: cghsi 4096, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: cghsi 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: cghsi 0, -32769
#CHECK: error: invalid operand
#CHECK: cghsi 0, 32768
cghsi -1, 0
cghsi 4096, 0
cghsi 0(%r1,%r2), 0
cghsi 0, -32769
cghsi 0, 32768
#CHECK: error: offset out of range
#CHECK: cgrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: cgrl %r0, -1
#CHECK: error: offset out of range
#CHECK: cgrl %r0, 1
#CHECK: error: offset out of range
#CHECK: cgrl %r0, 0x100000000
cgrl %r0, -0x1000000002
cgrl %r0, -1
cgrl %r0, 1
cgrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: cgxbr %r0, -1, %f0
#CHECK: error: invalid operand
#CHECK: cgxbr %r0, 16, %f0
#CHECK: error: invalid register pair
#CHECK: cgxbr %r0, 0, %f2
cgxbr %r0, -1, %f0
cgxbr %r0, 16, %f0
cgxbr %r0, 0, %f2
#CHECK: error: invalid operand
#CHECK: ch %r0, -1
#CHECK: error: invalid operand
#CHECK: ch %r0, 4096
ch %r0, -1
ch %r0, 4096
#CHECK: error: invalid operand
#CHECK: chhsi -1, 0
#CHECK: error: invalid operand
#CHECK: chhsi 4096, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: chhsi 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: chhsi 0, -32769
#CHECK: error: invalid operand
#CHECK: chhsi 0, 32768
chhsi -1, 0
chhsi 4096, 0
chhsi 0(%r1,%r2), 0
chhsi 0, -32769
chhsi 0, 32768
#CHECK: error: invalid operand
#CHECK: chi %r0, -32769
#CHECK: error: invalid operand
#CHECK: chi %r0, 32768
#CHECK: error: invalid operand
#CHECK: chi %r0, foo
chi %r0, -32769
chi %r0, 32768
chi %r0, foo
#CHECK: error: offset out of range
#CHECK: chrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: chrl %r0, -1
#CHECK: error: offset out of range
#CHECK: chrl %r0, 1
#CHECK: error: offset out of range
#CHECK: chrl %r0, 0x100000000
chrl %r0, -0x1000000002
chrl %r0, -1
chrl %r0, 1
chrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: chsi -1, 0
#CHECK: error: invalid operand
#CHECK: chsi 4096, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: chsi 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: chsi 0, -32769
#CHECK: error: invalid operand
#CHECK: chsi 0, 32768
chsi -1, 0
chsi 4096, 0
chsi 0(%r1,%r2), 0
chsi 0, -32769
chsi 0, 32768
#CHECK: error: invalid operand
#CHECK: chy %r0, -524289
#CHECK: error: invalid operand
#CHECK: chy %r0, 524288
chy %r0, -524289
chy %r0, 524288
#CHECK: error: invalid operand
#CHECK: cl %r0, -1
#CHECK: error: invalid operand
#CHECK: cl %r0, 4096
cl %r0, -1
cl %r0, 4096
#CHECK: error: invalid operand
#CHECK: clfhsi -1, 0
#CHECK: error: invalid operand
#CHECK: clfhsi 4096, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: clfhsi 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: clfhsi 0, -1
#CHECK: error: invalid operand
#CHECK: clfhsi 0, 65536
clfhsi -1, 0
clfhsi 4096, 0
clfhsi 0(%r1,%r2), 0
clfhsi 0, -1
clfhsi 0, 65536
#CHECK: error: invalid operand
#CHECK: clfi %r0, -1
#CHECK: error: invalid operand
#CHECK: clfi %r0, (1 << 32)
clfi %r0, -1
clfi %r0, (1 << 32)
#CHECK: error: invalid operand
#CHECK: clg %r0, -524289
#CHECK: error: invalid operand
#CHECK: clg %r0, 524288
clg %r0, -524289
clg %r0, 524288
#CHECK: error: invalid operand
#CHECK: clgf %r0, -524289
#CHECK: error: invalid operand
#CHECK: clgf %r0, 524288
clgf %r0, -524289
clgf %r0, 524288
#CHECK: error: invalid operand
#CHECK: clgfi %r0, -1
#CHECK: error: invalid operand
#CHECK: clgfi %r0, (1 << 32)
clgfi %r0, -1
clgfi %r0, (1 << 32)
#CHECK: error: offset out of range
#CHECK: clgfrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: clgfrl %r0, -1
#CHECK: error: offset out of range
#CHECK: clgfrl %r0, 1
#CHECK: error: offset out of range
#CHECK: clgfrl %r0, 0x100000000
clgfrl %r0, -0x1000000002
clgfrl %r0, -1
clgfrl %r0, 1
clgfrl %r0, 0x100000000
#CHECK: error: offset out of range
#CHECK: clghrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: clghrl %r0, -1
#CHECK: error: offset out of range
#CHECK: clghrl %r0, 1
#CHECK: error: offset out of range
#CHECK: clghrl %r0, 0x100000000
clghrl %r0, -0x1000000002
clghrl %r0, -1
clghrl %r0, 1
clghrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: clghsi -1, 0
#CHECK: error: invalid operand
#CHECK: clghsi 4096, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: clghsi 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: clghsi 0, -1
#CHECK: error: invalid operand
#CHECK: clghsi 0, 65536
clghsi -1, 0
clghsi 4096, 0
clghsi 0(%r1,%r2), 0
clghsi 0, -1
clghsi 0, 65536
#CHECK: error: offset out of range
#CHECK: clgrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: clgrl %r0, -1
#CHECK: error: offset out of range
#CHECK: clgrl %r0, 1
#CHECK: error: offset out of range
#CHECK: clgrl %r0, 0x100000000
clgrl %r0, -0x1000000002
clgrl %r0, -1
clgrl %r0, 1
clgrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: clhhsi -1, 0
#CHECK: error: invalid operand
#CHECK: clhhsi 4096, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: clhhsi 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: clhhsi 0, -1
#CHECK: error: invalid operand
#CHECK: clhhsi 0, 65536
clhhsi -1, 0
clhhsi 4096, 0
clhhsi 0(%r1,%r2), 0
clhhsi 0, -1
clhhsi 0, 65536
#CHECK: error: offset out of range
#CHECK: clhrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: clhrl %r0, -1
#CHECK: error: offset out of range
#CHECK: clhrl %r0, 1
#CHECK: error: offset out of range
#CHECK: clhrl %r0, 0x100000000
clhrl %r0, -0x1000000002
clhrl %r0, -1
clhrl %r0, 1
clhrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: cli -1, 0
#CHECK: error: invalid operand
#CHECK: cli 4096, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: cli 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: cli 0, -1
#CHECK: error: invalid operand
#CHECK: cli 0, 256
cli -1, 0
cli 4096, 0
cli 0(%r1,%r2), 0
cli 0, -1
cli 0, 256
#CHECK: error: invalid operand
#CHECK: cliy -524289, 0
#CHECK: error: invalid operand
#CHECK: cliy 524288, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: cliy 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: cliy 0, -1
#CHECK: error: invalid operand
#CHECK: cliy 0, 256
cliy -524289, 0
cliy 524288, 0
cliy 0(%r1,%r2), 0
cliy 0, -1
cliy 0, 256
#CHECK: error: offset out of range
#CHECK: clrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: clrl %r0, -1
#CHECK: error: offset out of range
#CHECK: clrl %r0, 1
#CHECK: error: offset out of range
#CHECK: clrl %r0, 0x100000000
clrl %r0, -0x1000000002
clrl %r0, -1
clrl %r0, 1
clrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: cly %r0, -524289
#CHECK: error: invalid operand
#CHECK: cly %r0, 524288
cly %r0, -524289
cly %r0, 524288
#CHECK: error: offset out of range
#CHECK: crl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: crl %r0, -1
#CHECK: error: offset out of range
#CHECK: crl %r0, 1
#CHECK: error: offset out of range
#CHECK: crl %r0, 0x100000000
crl %r0, -0x1000000002
crl %r0, -1
crl %r0, 1
crl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: cs %r0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cs %r0, %r0, 4096
#CHECK: error: invalid use of indexed addressing
#CHECK: cs %r0, %r0, 0(%r1,%r2)
cs %r0, %r0, -1
cs %r0, %r0, 4096
cs %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: csg %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: csg %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: csg %r0, %r0, 0(%r1,%r2)
csg %r0, %r0, -524289
csg %r0, %r0, 524288
csg %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: csy %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: csy %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: csy %r0, %r0, 0(%r1,%r2)
csy %r0, %r0, -524289
csy %r0, %r0, 524288
csy %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid register pair
#CHECK: cxbr %f0, %f2
#CHECK: error: invalid register pair
#CHECK: cxbr %f2, %f0
cxbr %f0, %f2
cxbr %f2, %f0
#CHECK: error: invalid register pair
#CHECK: cxfbr %f2, %r0
cxfbr %f2, %r0
#CHECK: error: invalid register pair
#CHECK: cxgbr %f2, %r0
cxgbr %f2, %r0
#CHECK: error: invalid operand
#CHECK: cy %r0, -524289
#CHECK: error: invalid operand
#CHECK: cy %r0, 524288
cy %r0, -524289
cy %r0, 524288
#CHECK: error: invalid operand
#CHECK: ddb %f0, -1
#CHECK: error: invalid operand
#CHECK: ddb %f0, 4096
ddb %f0, -1
ddb %f0, 4096
#CHECK: error: invalid operand
#CHECK: deb %f0, -1
#CHECK: error: invalid operand
#CHECK: deb %f0, 4096
deb %f0, -1
deb %f0, 4096
#CHECK: error: invalid operand
#CHECK: dl %r0, -524289
#CHECK: error: invalid operand
#CHECK: dl %r0, 524288
#CHECK: error: invalid register pair
#CHECK: dl %r1, 0
dl %r0, -524289
dl %r0, 524288
dl %r1, 0
#CHECK: error: invalid operand
#CHECK: dlg %r0, -524289
#CHECK: error: invalid operand
#CHECK: dlg %r0, 524288
#CHECK: error: invalid register pair
#CHECK: dlg %r1, 0
dlg %r0, -524289
dlg %r0, 524288
dlg %r1, 0
#CHECK: error: invalid register pair
#CHECK: dlgr %r1, %r0
dlgr %r1, %r0
#CHECK: error: invalid register pair
#CHECK: dlr %r1, %r0
dlr %r1, %r0
#CHECK: error: invalid operand
#CHECK: dsg %r0, -524289
#CHECK: error: invalid operand
#CHECK: dsg %r0, 524288
#CHECK: error: invalid register pair
#CHECK: dsg %r1, 0
dsg %r0, -524289
dsg %r0, 524288
dsg %r1, 0
#CHECK: error: invalid operand
#CHECK: dsgf %r0, -524289
#CHECK: error: invalid operand
#CHECK: dsgf %r0, 524288
#CHECK: error: invalid register pair
#CHECK: dsgf %r1, 0
dsgf %r0, -524289
dsgf %r0, 524288
dsgf %r1, 0
#CHECK: error: invalid register pair
#CHECK: dsgfr %r1, %r0
dsgfr %r1, %r0
#CHECK: error: invalid register pair
#CHECK: dsgr %r1, %r0
dsgr %r1, %r0
#CHECK: error: invalid register pair
#CHECK: dxbr %f0, %f2
#CHECK: error: invalid register pair
#CHECK: dxbr %f2, %f0
dxbr %f0, %f2
dxbr %f2, %f0
#CHECK: error: invalid operand
#CHECK: fidbr %f0, -1, %f0
#CHECK: error: invalid operand
#CHECK: fidbr %f0, 16, %f0
fidbr %f0, -1, %f0
fidbr %f0, 16, %f0
#CHECK: error: invalid operand
#CHECK: fiebr %f0, -1, %f0
#CHECK: error: invalid operand
#CHECK: fiebr %f0, 16, %f0
fiebr %f0, -1, %f0
fiebr %f0, 16, %f0
#CHECK: error: invalid operand
#CHECK: fixbr %f0, -1, %f0
#CHECK: error: invalid operand
#CHECK: fixbr %f0, 16, %f0
#CHECK: error: invalid register pair
#CHECK: fixbr %f0, 0, %f2
#CHECK: error: invalid register pair
#CHECK: fixbr %f2, 0, %f0
fixbr %f0, -1, %f0
fixbr %f0, 16, %f0
fixbr %f0, 0, %f2
fixbr %f2, 0, %f0
#CHECK: error: invalid register pair
#CHECK: flogr %r1, %r0
flogr %r1, %r0
#CHECK: error: invalid operand
#CHECK: ic %r0, -1
#CHECK: error: invalid operand
#CHECK: ic %r0, 4096
ic %r0, -1
ic %r0, 4096
#CHECK: error: invalid operand
#CHECK: icy %r0, -524289
#CHECK: error: invalid operand
#CHECK: icy %r0, 524288
icy %r0, -524289
icy %r0, 524288
#CHECK: error: invalid operand
#CHECK: iihf %r0, -1
#CHECK: error: invalid operand
#CHECK: iihf %r0, 1 << 32
iihf %r0, -1
iihf %r0, 1 << 32
#CHECK: error: invalid operand
#CHECK: iihh %r0, -1
#CHECK: error: invalid operand
#CHECK: iihh %r0, 0x10000
iihh %r0, -1
iihh %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: iihl %r0, -1
#CHECK: error: invalid operand
#CHECK: iihl %r0, 0x10000
iihl %r0, -1
iihl %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: iilf %r0, -1
#CHECK: error: invalid operand
#CHECK: iilf %r0, 1 << 32
iilf %r0, -1
iilf %r0, 1 << 32
#CHECK: error: invalid operand
#CHECK: iilh %r0, -1
#CHECK: error: invalid operand
#CHECK: iilh %r0, 0x10000
iilh %r0, -1
iilh %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: iill %r0, -1
#CHECK: error: invalid operand
#CHECK: iill %r0, 0x10000
iill %r0, -1
iill %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: l %r0, -1
#CHECK: error: invalid operand
#CHECK: l %r0, 4096
l %r0, -1
l %r0, 4096
#CHECK: error: invalid operand
#CHECK: la %r0, -1
#CHECK: error: invalid operand
#CHECK: la %r0, 4096
la %r0, -1
la %r0, 4096
#CHECK: error: offset out of range
#CHECK: larl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: larl %r0, -1
#CHECK: error: offset out of range
#CHECK: larl %r0, 1
#CHECK: error: offset out of range
#CHECK: larl %r0, 0x100000000
larl %r0, -0x1000000002
larl %r0, -1
larl %r0, 1
larl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: lay %r0, -524289
#CHECK: error: invalid operand
#CHECK: lay %r0, 524288
lay %r0, -524289
lay %r0, 524288
#CHECK: error: invalid operand
#CHECK: lb %r0, -524289
#CHECK: error: invalid operand
#CHECK: lb %r0, 524288
lb %r0, -524289
lb %r0, 524288
#CHECK: error: invalid register pair
#CHECK: lcxbr %f0, %f2
#CHECK: error: invalid register pair
#CHECK: lcxbr %f2, %f0
lcxbr %f0, %f2
lcxbr %f2, %f0
#CHECK: error: invalid operand
#CHECK: ld %f0, -1
#CHECK: error: invalid operand
#CHECK: ld %f0, 4096
ld %f0, -1
ld %f0, 4096
#CHECK: error: invalid operand
#CHECK: ldeb %f0, -1
#CHECK: error: invalid operand
#CHECK: ldeb %f0, 4096
ldeb %f0, -1
ldeb %f0, 4096
#CHECK: error: invalid register pair
#CHECK: ldxbr %f0, %f2
#CHECK: error: invalid register pair
#CHECK: ldxbr %f2, %f0
ldxbr %f0, %f2
ldxbr %f2, %f0
#CHECK: error: invalid operand
#CHECK: ldy %f0, -524289
#CHECK: error: invalid operand
#CHECK: ldy %f0, 524288
ldy %f0, -524289
ldy %f0, 524288
#CHECK: error: invalid operand
#CHECK: le %f0, -1
#CHECK: error: invalid operand
#CHECK: le %f0, 4096
le %f0, -1
le %f0, 4096
#CHECK: error: invalid register pair
#CHECK: lexbr %f0, %f2
#CHECK: error: invalid register pair
#CHECK: lexbr %f2, %f0
lexbr %f0, %f2
lexbr %f2, %f0
#CHECK: error: invalid operand
#CHECK: ley %f0, -524289
#CHECK: error: invalid operand
#CHECK: ley %f0, 524288
ley %f0, -524289
ley %f0, 524288
#CHECK: error: invalid operand
#CHECK: lg %r0, -524289
#CHECK: error: invalid operand
#CHECK: lg %r0, 524288
lg %r0, -524289
lg %r0, 524288
#CHECK: error: invalid operand
#CHECK: lgb %r0, -524289
#CHECK: error: invalid operand
#CHECK: lgb %r0, 524288
lgb %r0, -524289
lgb %r0, 524288
#CHECK: error: invalid operand
#CHECK: lgf %r0, -524289
#CHECK: error: invalid operand
#CHECK: lgf %r0, 524288
lgf %r0, -524289
lgf %r0, 524288
#CHECK: error: invalid operand
#CHECK: lgfi %r0, (-1 << 31) - 1
#CHECK: error: invalid operand
#CHECK: lgfi %r0, (1 << 31)
lgfi %r0, (-1 << 31) - 1
lgfi %r0, (1 << 31)
#CHECK: error: offset out of range
#CHECK: lgfrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: lgfrl %r0, -1
#CHECK: error: offset out of range
#CHECK: lgfrl %r0, 1
#CHECK: error: offset out of range
#CHECK: lgfrl %r0, 0x100000000
lgfrl %r0, -0x1000000002
lgfrl %r0, -1
lgfrl %r0, 1
lgfrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: lgh %r0, -524289
#CHECK: error: invalid operand
#CHECK: lgh %r0, 524288
lgh %r0, -524289
lgh %r0, 524288
#CHECK: error: invalid operand
#CHECK: lghi %r0, -32769
#CHECK: error: invalid operand
#CHECK: lghi %r0, 32768
#CHECK: error: invalid operand
#CHECK: lghi %r0, foo
lghi %r0, -32769
lghi %r0, 32768
lghi %r0, foo
#CHECK: error: offset out of range
#CHECK: lghrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: lghrl %r0, -1
#CHECK: error: offset out of range
#CHECK: lghrl %r0, 1
#CHECK: error: offset out of range
#CHECK: lghrl %r0, 0x100000000
lghrl %r0, -0x1000000002
lghrl %r0, -1
lghrl %r0, 1
lghrl %r0, 0x100000000
#CHECK: error: offset out of range
#CHECK: lgrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: lgrl %r0, -1
#CHECK: error: offset out of range
#CHECK: lgrl %r0, 1
#CHECK: error: offset out of range
#CHECK: lgrl %r0, 0x100000000
lgrl %r0, -0x1000000002
lgrl %r0, -1
lgrl %r0, 1
lgrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: lh %r0, -1
#CHECK: error: invalid operand
#CHECK: lh %r0, 4096
lh %r0, -1
lh %r0, 4096
#CHECK: error: invalid operand
#CHECK: lhi %r0, -32769
#CHECK: error: invalid operand
#CHECK: lhi %r0, 32768
#CHECK: error: invalid operand
#CHECK: lhi %r0, foo
lhi %r0, -32769
lhi %r0, 32768
lhi %r0, foo
#CHECK: error: offset out of range
#CHECK: lhrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: lhrl %r0, -1
#CHECK: error: offset out of range
#CHECK: lhrl %r0, 1
#CHECK: error: offset out of range
#CHECK: lhrl %r0, 0x100000000
lhrl %r0, -0x1000000002
lhrl %r0, -1
lhrl %r0, 1
lhrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: lhy %r0, -524289
#CHECK: error: invalid operand
#CHECK: lhy %r0, 524288
lhy %r0, -524289
lhy %r0, 524288
#CHECK: error: invalid operand
#CHECK: llc %r0, -524289
#CHECK: error: invalid operand
#CHECK: llc %r0, 524288
llc %r0, -524289
llc %r0, 524288
#CHECK: error: invalid operand
#CHECK: llgc %r0, -524289
#CHECK: error: invalid operand
#CHECK: llgc %r0, 524288
llgc %r0, -524289
llgc %r0, 524288
#CHECK: error: invalid operand
#CHECK: llgf %r0, -524289
#CHECK: error: invalid operand
#CHECK: llgf %r0, 524288
llgf %r0, -524289
llgf %r0, 524288
#CHECK: error: offset out of range
#CHECK: llgfrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: llgfrl %r0, -1
#CHECK: error: offset out of range
#CHECK: llgfrl %r0, 1
#CHECK: error: offset out of range
#CHECK: llgfrl %r0, 0x100000000
llgfrl %r0, -0x1000000002
llgfrl %r0, -1
llgfrl %r0, 1
llgfrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: llgh %r0, -524289
#CHECK: error: invalid operand
#CHECK: llgh %r0, 524288
llgh %r0, -524289
llgh %r0, 524288
#CHECK: error: offset out of range
#CHECK: llghrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: llghrl %r0, -1
#CHECK: error: offset out of range
#CHECK: llghrl %r0, 1
#CHECK: error: offset out of range
#CHECK: llghrl %r0, 0x100000000
llghrl %r0, -0x1000000002
llghrl %r0, -1
llghrl %r0, 1
llghrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: llh %r0, -524289
#CHECK: error: invalid operand
#CHECK: llh %r0, 524288
llh %r0, -524289
llh %r0, 524288
#CHECK: error: offset out of range
#CHECK: llhrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: llhrl %r0, -1
#CHECK: error: offset out of range
#CHECK: llhrl %r0, 1
#CHECK: error: offset out of range
#CHECK: llhrl %r0, 0x100000000
llhrl %r0, -0x1000000002
llhrl %r0, -1
llhrl %r0, 1
llhrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: llihf %r0, -1
#CHECK: error: invalid operand
#CHECK: llihf %r0, 1 << 32
llihf %r0, -1
llihf %r0, 1 << 32
#CHECK: error: invalid operand
#CHECK: llihh %r0, -1
#CHECK: error: invalid operand
#CHECK: llihh %r0, 0x10000
llihh %r0, -1
llihh %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: llihl %r0, -1
#CHECK: error: invalid operand
#CHECK: llihl %r0, 0x10000
llihl %r0, -1
llihl %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: llilf %r0, -1
#CHECK: error: invalid operand
#CHECK: llilf %r0, 1 << 32
llilf %r0, -1
llilf %r0, 1 << 32
#CHECK: error: invalid operand
#CHECK: llilh %r0, -1
#CHECK: error: invalid operand
#CHECK: llilh %r0, 0x10000
llilh %r0, -1
llilh %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: llill %r0, -1
#CHECK: error: invalid operand
#CHECK: llill %r0, 0x10000
llill %r0, -1
llill %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: lmg %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: lmg %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: lmg %r0, %r0, 0(%r1,%r2)
lmg %r0, %r0, -524289
lmg %r0, %r0, 524288
lmg %r0, %r0, 0(%r1,%r2)
#CHECK: error: invalid register pair
#CHECK: lnxbr %f0, %f2
#CHECK: error: invalid register pair
#CHECK: lnxbr %f2, %f0
lnxbr %f0, %f2
lnxbr %f2, %f0
#CHECK: error: invalid register pair
#CHECK: lpxbr %f0, %f2
#CHECK: error: invalid register pair
#CHECK: lpxbr %f2, %f0
lpxbr %f0, %f2
lpxbr %f2, %f0
#CHECK: error: offset out of range
#CHECK: lrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: lrl %r0, -1
#CHECK: error: offset out of range
#CHECK: lrl %r0, 1
#CHECK: error: offset out of range
#CHECK: lrl %r0, 0x100000000
lrl %r0, -0x1000000002
lrl %r0, -1
lrl %r0, 1
lrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: lrv %r0, -524289
#CHECK: error: invalid operand
#CHECK: lrv %r0, 524288
lrv %r0, -524289
lrv %r0, 524288
#CHECK: error: invalid operand
#CHECK: lrvg %r0, -524289
#CHECK: error: invalid operand
#CHECK: lrvg %r0, 524288
lrvg %r0, -524289
lrvg %r0, 524288
#CHECK: error: invalid register pair
#CHECK: lxr %f0, %f2
#CHECK: error: invalid register pair
#CHECK: lxr %f2, %f0
lxr %f0, %f2
lxr %f2, %f0
#CHECK: error: invalid operand
#CHECK: ly %r0, -524289
#CHECK: error: invalid operand
#CHECK: ly %r0, 524288
ly %r0, -524289
ly %r0, 524288
#CHECK: error: invalid register pair
#CHECK: lzxr %f2
lzxr %f2
#CHECK: error: invalid operand
#CHECK: madb %f0, %f0, -1
#CHECK: error: invalid operand
#CHECK: madb %f0, %f0, 4096
madb %f0, %f0, -1
madb %f0, %f0, 4096
#CHECK: error: invalid operand
#CHECK: maeb %f0, %f0, -1
#CHECK: error: invalid operand
#CHECK: maeb %f0, %f0, 4096
maeb %f0, %f0, -1
maeb %f0, %f0, 4096
#CHECK: error: invalid operand
#CHECK: mdb %f0, -1
#CHECK: error: invalid operand
#CHECK: mdb %f0, 4096
mdb %f0, -1
mdb %f0, 4096
#CHECK: error: invalid operand
#CHECK: mdeb %f0, -1
#CHECK: error: invalid operand
#CHECK: mdeb %f0, 4096
mdeb %f0, -1
mdeb %f0, 4096
#CHECK: error: invalid operand
#CHECK: meeb %f0, -1
#CHECK: error: invalid operand
#CHECK: meeb %f0, 4096
meeb %f0, -1
meeb %f0, 4096
#CHECK: error: invalid operand
#CHECK: mghi %r0, -32769
#CHECK: error: invalid operand
#CHECK: mghi %r0, 32768
#CHECK: error: invalid operand
#CHECK: mghi %r0, foo
mghi %r0, -32769
mghi %r0, 32768
mghi %r0, foo
#CHECK: error: invalid operand
#CHECK: mh %r0, -1
#CHECK: error: invalid operand
#CHECK: mh %r0, 4096
mh %r0, -1
mh %r0, 4096
#CHECK: error: invalid operand
#CHECK: mhi %r0, -32769
#CHECK: error: invalid operand
#CHECK: mhi %r0, 32768
#CHECK: error: invalid operand
#CHECK: mhi %r0, foo
mhi %r0, -32769
mhi %r0, 32768
mhi %r0, foo
#CHECK: error: invalid operand
#CHECK: mhy %r0, -524289
#CHECK: error: invalid operand
#CHECK: mhy %r0, 524288
mhy %r0, -524289
mhy %r0, 524288
#CHECK: error: invalid operand
#CHECK: mlg %r0, -524289
#CHECK: error: invalid operand
#CHECK: mlg %r0, 524288
#CHECK: error: invalid register pair
#CHECK: mlg %r1, 0
mlg %r0, -524289
mlg %r0, 524288
mlg %r1, 0
#CHECK: error: invalid register pair
#CHECK: mlgr %r1, %r0
mlgr %r1, %r0
#CHECK: error: invalid operand
#CHECK: ms %r0, -1
#CHECK: error: invalid operand
#CHECK: ms %r0, 4096
ms %r0, -1
ms %r0, 4096
#CHECK: error: invalid operand
#CHECK: msdb %f0, %f0, -1
#CHECK: error: invalid operand
#CHECK: msdb %f0, %f0, 4096
msdb %f0, %f0, -1
msdb %f0, %f0, 4096
#CHECK: error: invalid operand
#CHECK: mseb %f0, %f0, -1
#CHECK: error: invalid operand
#CHECK: mseb %f0, %f0, 4096
mseb %f0, %f0, -1
mseb %f0, %f0, 4096
#CHECK: error: invalid operand
#CHECK: msfi %r0, (-1 << 31) - 1
#CHECK: error: invalid operand
#CHECK: msfi %r0, (1 << 31)
msfi %r0, (-1 << 31) - 1
msfi %r0, (1 << 31)
#CHECK: error: invalid operand
#CHECK: msg %r0, -524289
#CHECK: error: invalid operand
#CHECK: msg %r0, 524288
msg %r0, -524289
msg %r0, 524288
#CHECK: error: invalid operand
#CHECK: msgf %r0, -524289
#CHECK: error: invalid operand
#CHECK: msgf %r0, 524288
msgf %r0, -524289
msgf %r0, 524288
#CHECK: error: invalid operand
#CHECK: msgfi %r0, (-1 << 31) - 1
#CHECK: error: invalid operand
#CHECK: msgfi %r0, (1 << 31)
msgfi %r0, (-1 << 31) - 1
msgfi %r0, (1 << 31)
#CHECK: error: invalid operand
#CHECK: msy %r0, -524289
#CHECK: error: invalid operand
#CHECK: msy %r0, 524288
msy %r0, -524289
msy %r0, 524288
#CHECK: error: invalid operand
#CHECK: mvghi -1, 0
#CHECK: error: invalid operand
#CHECK: mvghi 4096, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: mvghi 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: mvghi 0, -32769
#CHECK: error: invalid operand
#CHECK: mvghi 0, 32768
mvghi -1, 0
mvghi 4096, 0
mvghi 0(%r1,%r2), 0
mvghi 0, -32769
mvghi 0, 32768
#CHECK: error: invalid operand
#CHECK: mvhhi -1, 0
#CHECK: error: invalid operand
#CHECK: mvhhi 4096, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: mvhhi 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: mvhhi 0, -32769
#CHECK: error: invalid operand
#CHECK: mvhhi 0, 32768
mvhhi -1, 0
mvhhi 4096, 0
mvhhi 0(%r1,%r2), 0
mvhhi 0, -32769
mvhhi 0, 32768
#CHECK: error: invalid operand
#CHECK: mvhi -1, 0
#CHECK: error: invalid operand
#CHECK: mvhi 4096, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: mvhi 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: mvhi 0, -32769
#CHECK: error: invalid operand
#CHECK: mvhi 0, 32768
mvhi -1, 0
mvhi 4096, 0
mvhi 0(%r1,%r2), 0
mvhi 0, -32769
mvhi 0, 32768
#CHECK: error: invalid operand
#CHECK: mvi -1, 0
#CHECK: error: invalid operand
#CHECK: mvi 4096, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: mvi 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: mvi 0, -1
#CHECK: error: invalid operand
#CHECK: mvi 0, 256
mvi -1, 0
mvi 4096, 0
mvi 0(%r1,%r2), 0
mvi 0, -1
mvi 0, 256
#CHECK: error: invalid operand
#CHECK: mviy -524289, 0
#CHECK: error: invalid operand
#CHECK: mviy 524288, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: mviy 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: mviy 0, -1
#CHECK: error: invalid operand
#CHECK: mviy 0, 256
mviy -524289, 0
mviy 524288, 0
mviy 0(%r1,%r2), 0
mviy 0, -1
mviy 0, 256
#CHECK: error: invalid register pair
#CHECK: mxbr %f0, %f2
#CHECK: error: invalid register pair
#CHECK: mxbr %f2, %f0
mxbr %f0, %f2
mxbr %f2, %f0
#CHECK: error: invalid register pair
#CHECK: mxdb %f2, 0
#CHECK: error: invalid operand
#CHECK: mxdb %f0, -1
#CHECK: error: invalid operand
#CHECK: mxdb %f0, 4096
mxdb %f2, 0
mxdb %f0, -1
mxdb %f0, 4096
#CHECK: error: invalid register pair
#CHECK: mxdbr %f2, %f0
mxdbr %f2, %f0
#CHECK: error: invalid operand
#CHECK: n %r0, -1
#CHECK: error: invalid operand
#CHECK: n %r0, 4096
n %r0, -1
n %r0, 4096
#CHECK: error: invalid operand
#CHECK: ng %r0, -524289
#CHECK: error: invalid operand
#CHECK: ng %r0, 524288
ng %r0, -524289
ng %r0, 524288
#CHECK: error: invalid operand
#CHECK: ni -1, 0
#CHECK: error: invalid operand
#CHECK: ni 4096, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: ni 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: ni 0, -1
#CHECK: error: invalid operand
#CHECK: ni 0, 256
ni -1, 0
ni 4096, 0
ni 0(%r1,%r2), 0
ni 0, -1
ni 0, 256
#CHECK: error: invalid operand
#CHECK: nihf %r0, -1
#CHECK: error: invalid operand
#CHECK: nihf %r0, 1 << 32
nihf %r0, -1
nihf %r0, 1 << 32
#CHECK: error: invalid operand
#CHECK: nihh %r0, -1
#CHECK: error: invalid operand
#CHECK: nihh %r0, 0x10000
nihh %r0, -1
nihh %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: nihl %r0, -1
#CHECK: error: invalid operand
#CHECK: nihl %r0, 0x10000
nihl %r0, -1
nihl %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: nilf %r0, -1
#CHECK: error: invalid operand
#CHECK: nilf %r0, 1 << 32
nilf %r0, -1
nilf %r0, 1 << 32
#CHECK: error: invalid operand
#CHECK: nilh %r0, -1
#CHECK: error: invalid operand
#CHECK: nilh %r0, 0x10000
nilh %r0, -1
nilh %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: nill %r0, -1
#CHECK: error: invalid operand
#CHECK: nill %r0, 0x10000
nill %r0, -1
nill %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: niy -524289, 0
#CHECK: error: invalid operand
#CHECK: niy 524288, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: niy 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: niy 0, -1
#CHECK: error: invalid operand
#CHECK: niy 0, 256
niy -524289, 0
niy 524288, 0
niy 0(%r1,%r2), 0
niy 0, -1
niy 0, 256
#CHECK: error: invalid operand
#CHECK: ny %r0, -524289
#CHECK: error: invalid operand
#CHECK: ny %r0, 524288
ny %r0, -524289
ny %r0, 524288
#CHECK: error: invalid operand
#CHECK: o %r0, -1
#CHECK: error: invalid operand
#CHECK: o %r0, 4096
o %r0, -1
o %r0, 4096
#CHECK: error: invalid operand
#CHECK: og %r0, -524289
#CHECK: error: invalid operand
#CHECK: og %r0, 524288
og %r0, -524289
og %r0, 524288
#CHECK: error: invalid operand
#CHECK: oi -1, 0
#CHECK: error: invalid operand
#CHECK: oi 4096, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: oi 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: oi 0, -1
#CHECK: error: invalid operand
#CHECK: oi 0, 256
oi -1, 0
oi 4096, 0
oi 0(%r1,%r2), 0
oi 0, -1
oi 0, 256
#CHECK: error: invalid operand
#CHECK: oihf %r0, -1
#CHECK: error: invalid operand
#CHECK: oihf %r0, 1 << 32
oihf %r0, -1
oihf %r0, 1 << 32
#CHECK: error: invalid operand
#CHECK: oihh %r0, -1
#CHECK: error: invalid operand
#CHECK: oihh %r0, 0x10000
oihh %r0, -1
oihh %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: oihl %r0, -1
#CHECK: error: invalid operand
#CHECK: oihl %r0, 0x10000
oihl %r0, -1
oihl %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: oilf %r0, -1
#CHECK: error: invalid operand
#CHECK: oilf %r0, 1 << 32
oilf %r0, -1
oilf %r0, 1 << 32
#CHECK: error: invalid operand
#CHECK: oilh %r0, -1
#CHECK: error: invalid operand
#CHECK: oilh %r0, 0x10000
oilh %r0, -1
oilh %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: oill %r0, -1
#CHECK: error: invalid operand
#CHECK: oill %r0, 0x10000
oill %r0, -1
oill %r0, 0x10000
#CHECK: error: invalid operand
#CHECK: oiy -524289, 0
#CHECK: error: invalid operand
#CHECK: oiy 524288, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: oiy 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: oiy 0, -1
#CHECK: error: invalid operand
#CHECK: oiy 0, 256
oiy -524289, 0
oiy 524288, 0
oiy 0(%r1,%r2), 0
oiy 0, -1
oiy 0, 256
#CHECK: error: invalid operand
#CHECK: oy %r0, -524289
#CHECK: error: invalid operand
#CHECK: oy %r0, 524288
oy %r0, -524289
oy %r0, 524288
#CHECK: error: invalid operand
#CHECK: risbg %r0,%r0,0,0,-1
#CHECK: error: invalid operand
#CHECK: risbg %r0,%r0,0,0,64
#CHECK: error: invalid operand
#CHECK: risbg %r0,%r0,0,-1,0
#CHECK: error: invalid operand
#CHECK: risbg %r0,%r0,0,64,0
#CHECK: error: invalid operand
#CHECK: risbg %r0,%r0,-1,0,0
#CHECK: error: invalid operand
#CHECK: risbg %r0,%r0,64,0,0
risbg %r0,%r0,0,0,-1
risbg %r0,%r0,0,0,64
risbg %r0,%r0,0,-1,0
risbg %r0,%r0,0,64,0
risbg %r0,%r0,-1,0,0
risbg %r0,%r0,64,0,0
#CHECK: error: invalid operand
#CHECK: rll %r0,%r0,-524289
#CHECK: error: invalid operand
#CHECK: rll %r0,%r0,524288
#CHECK: error: %r0 used in an address
#CHECK: rll %r0,%r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: rll %r0,%r0,0(%r1,%r2)
rll %r0,%r0,-524289
rll %r0,%r0,524288
rll %r0,%r0,0(%r0)
rll %r0,%r0,0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: rllg %r0,%r0,-524289
#CHECK: error: invalid operand
#CHECK: rllg %r0,%r0,524288
#CHECK: error: %r0 used in an address
#CHECK: rllg %r0,%r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: rllg %r0,%r0,0(%r1,%r2)
rllg %r0,%r0,-524289
rllg %r0,%r0,524288
rllg %r0,%r0,0(%r0)
rllg %r0,%r0,0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: s %r0, -1
#CHECK: error: invalid operand
#CHECK: s %r0, 4096
s %r0, -1
s %r0, 4096
#CHECK: error: invalid operand
#CHECK: sdb %f0, -1
#CHECK: error: invalid operand
#CHECK: sdb %f0, 4096
sdb %f0, -1
sdb %f0, 4096
#CHECK: error: invalid operand
#CHECK: seb %f0, -1
#CHECK: error: invalid operand
#CHECK: seb %f0, 4096
seb %f0, -1
seb %f0, 4096
#CHECK: error: invalid operand
#CHECK: sg %r0, -524289
#CHECK: error: invalid operand
#CHECK: sg %r0, 524288
sg %r0, -524289
sg %r0, 524288
#CHECK: error: invalid operand
#CHECK: sgf %r0, -524289
#CHECK: error: invalid operand
#CHECK: sgf %r0, 524288
sgf %r0, -524289
sgf %r0, 524288
#CHECK: error: invalid operand
#CHECK: sh %r0, -1
#CHECK: error: invalid operand
#CHECK: sh %r0, 4096
sh %r0, -1
sh %r0, 4096
#CHECK: error: invalid operand
#CHECK: shy %r0, -524289
#CHECK: error: invalid operand
#CHECK: shy %r0, 524288
shy %r0, -524289
shy %r0, 524288
#CHECK: error: invalid operand
#CHECK: sl %r0, -1
#CHECK: error: invalid operand
#CHECK: sl %r0, 4096
sl %r0, -1
sl %r0, 4096
#CHECK: error: invalid operand
#CHECK: slb %r0, -524289
#CHECK: error: invalid operand
#CHECK: slb %r0, 524288
slb %r0, -524289
slb %r0, 524288
#CHECK: error: invalid operand
#CHECK: slbg %r0, -524289
#CHECK: error: invalid operand
#CHECK: slbg %r0, 524288
slbg %r0, -524289
slbg %r0, 524288
#CHECK: error: invalid operand
#CHECK: slfi %r0, -1
#CHECK: error: invalid operand
#CHECK: slfi %r0, (1 << 32)
slfi %r0, -1
slfi %r0, (1 << 32)
#CHECK: error: invalid operand
#CHECK: slg %r0, -524289
#CHECK: error: invalid operand
#CHECK: slg %r0, 524288
slg %r0, -524289
slg %r0, 524288
#CHECK: error: invalid operand
#CHECK: slgf %r0, -524289
#CHECK: error: invalid operand
#CHECK: slgf %r0, 524288
slgf %r0, -524289
slgf %r0, 524288
#CHECK: error: invalid operand
#CHECK: slgfi %r0, -1
#CHECK: error: invalid operand
#CHECK: slgfi %r0, (1 << 32)
slgfi %r0, -1
slgfi %r0, (1 << 32)
#CHECK: error: invalid operand
#CHECK: sll %r0,-1
#CHECK: error: invalid operand
#CHECK: sll %r0,4096
#CHECK: error: %r0 used in an address
#CHECK: sll %r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: sll %r0,0(%r1,%r2)
sll %r0,-1
sll %r0,4096
sll %r0,0(%r0)
sll %r0,0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: sllg %r0,%r0,-524289
#CHECK: error: invalid operand
#CHECK: sllg %r0,%r0,524288
#CHECK: error: %r0 used in an address
#CHECK: sllg %r0,%r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: sllg %r0,%r0,0(%r1,%r2)
sllg %r0,%r0,-524289
sllg %r0,%r0,524288
sllg %r0,%r0,0(%r0)
sllg %r0,%r0,0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: sly %r0, -524289
#CHECK: error: invalid operand
#CHECK: sly %r0, 524288
sly %r0, -524289
sly %r0, 524288
#CHECK: error: invalid operand
#CHECK: sqdb %f0, -1
#CHECK: error: invalid operand
#CHECK: sqdb %f0, 4096
sqdb %f0, -1
sqdb %f0, 4096
#CHECK: error: invalid operand
#CHECK: sqeb %f0, -1
#CHECK: error: invalid operand
#CHECK: sqeb %f0, 4096
sqeb %f0, -1
sqeb %f0, 4096
#CHECK: error: invalid register pair
#CHECK: sqxbr %f0, %f2
#CHECK: error: invalid register pair
#CHECK: sqxbr %f2, %f0
sqxbr %f0, %f2
sqxbr %f2, %f0
#CHECK: error: invalid operand
#CHECK: sra %r0,-1
#CHECK: error: invalid operand
#CHECK: sra %r0,4096
#CHECK: error: %r0 used in an address
#CHECK: sra %r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: sra %r0,0(%r1,%r2)
sra %r0,-1
sra %r0,4096
sra %r0,0(%r0)
sra %r0,0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: srag %r0,%r0,-524289
#CHECK: error: invalid operand
#CHECK: srag %r0,%r0,524288
#CHECK: error: %r0 used in an address
#CHECK: srag %r0,%r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: srag %r0,%r0,0(%r1,%r2)
srag %r0,%r0,-524289
srag %r0,%r0,524288
srag %r0,%r0,0(%r0)
srag %r0,%r0,0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: srl %r0,-1
#CHECK: error: invalid operand
#CHECK: srl %r0,4096
#CHECK: error: %r0 used in an address
#CHECK: srl %r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: srl %r0,0(%r1,%r2)
srl %r0,-1
srl %r0,4096
srl %r0,0(%r0)
srl %r0,0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: srlg %r0,%r0,-524289
#CHECK: error: invalid operand
#CHECK: srlg %r0,%r0,524288
#CHECK: error: %r0 used in an address
#CHECK: srlg %r0,%r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: srlg %r0,%r0,0(%r1,%r2)
srlg %r0,%r0,-524289
srlg %r0,%r0,524288
srlg %r0,%r0,0(%r0)
srlg %r0,%r0,0(%r1,%r2)
#CHECK: error: invalid operand
#CHECK: st %r0, -1
#CHECK: error: invalid operand
#CHECK: st %r0, 4096
st %r0, -1
st %r0, 4096
#CHECK: error: invalid operand
#CHECK: stc %r0, -1
#CHECK: error: invalid operand
#CHECK: stc %r0, 4096
stc %r0, -1
stc %r0, 4096
#CHECK: error: invalid operand
#CHECK: stcy %r0, -524289
#CHECK: error: invalid operand
#CHECK: stcy %r0, 524288
stcy %r0, -524289
stcy %r0, 524288
#CHECK: error: invalid operand
#CHECK: std %f0, -1
#CHECK: error: invalid operand
#CHECK: std %f0, 4096
std %f0, -1
std %f0, 4096
#CHECK: error: invalid operand
#CHECK: stdy %f0, -524289
#CHECK: error: invalid operand
#CHECK: stdy %f0, 524288
stdy %f0, -524289
stdy %f0, 524288
#CHECK: error: invalid operand
#CHECK: ste %f0, -1
#CHECK: error: invalid operand
#CHECK: ste %f0, 4096
ste %f0, -1
ste %f0, 4096
#CHECK: error: invalid operand
#CHECK: stey %f0, -524289
#CHECK: error: invalid operand
#CHECK: stey %f0, 524288
stey %f0, -524289
stey %f0, 524288
#CHECK: error: invalid operand
#CHECK: stg %r0, -524289
#CHECK: error: invalid operand
#CHECK: stg %r0, 524288
stg %r0, -524289
stg %r0, 524288
#CHECK: error: offset out of range
#CHECK: stgrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: stgrl %r0, -1
#CHECK: error: offset out of range
#CHECK: stgrl %r0, 1
#CHECK: error: offset out of range
#CHECK: stgrl %r0, 0x100000000
stgrl %r0, -0x1000000002
stgrl %r0, -1
stgrl %r0, 1
stgrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: sth %r0, -1
#CHECK: error: invalid operand
#CHECK: sth %r0, 4096
sth %r0, -1
sth %r0, 4096
#CHECK: error: offset out of range
#CHECK: sthrl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: sthrl %r0, -1
#CHECK: error: offset out of range
#CHECK: sthrl %r0, 1
#CHECK: error: offset out of range
#CHECK: sthrl %r0, 0x100000000
sthrl %r0, -0x1000000002
sthrl %r0, -1
sthrl %r0, 1
sthrl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: sthy %r0, -524289
#CHECK: error: invalid operand
#CHECK: sthy %r0, 524288
sthy %r0, -524289
sthy %r0, 524288
#CHECK: error: invalid operand
#CHECK: stmg %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: stmg %r0, %r0, 524288
#CHECK: error: invalid use of indexed addressing
#CHECK: stmg %r0, %r0, 0(%r1,%r2)
stmg %r0, %r0, -524289
stmg %r0, %r0, 524288
stmg %r0, %r0, 0(%r1,%r2)
#CHECK: error: offset out of range
#CHECK: strl %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: strl %r0, -1
#CHECK: error: offset out of range
#CHECK: strl %r0, 1
#CHECK: error: offset out of range
#CHECK: strl %r0, 0x100000000
strl %r0, -0x1000000002
strl %r0, -1
strl %r0, 1
strl %r0, 0x100000000
#CHECK: error: invalid operand
#CHECK: strv %r0, -524289
#CHECK: error: invalid operand
#CHECK: strv %r0, 524288
strv %r0, -524289
strv %r0, 524288
#CHECK: error: invalid operand
#CHECK: strvg %r0, -524289
#CHECK: error: invalid operand
#CHECK: strvg %r0, 524288
strvg %r0, -524289
strvg %r0, 524288
#CHECK: error: invalid operand
#CHECK: sty %r0, -524289
#CHECK: error: invalid operand
#CHECK: sty %r0, 524288
sty %r0, -524289
sty %r0, 524288
#CHECK: error: invalid register pair
#CHECK: sxbr %f0, %f2
#CHECK: error: invalid register pair
#CHECK: sxbr %f2, %f0
sxbr %f0, %f2
sxbr %f2, %f0
#CHECK: error: invalid operand
#CHECK: sy %r0, -524289
#CHECK: error: invalid operand
#CHECK: sy %r0, 524288
sy %r0, -524289
sy %r0, 524288
#CHECK: error: invalid operand
#CHECK: x %r0, -1
#CHECK: error: invalid operand
#CHECK: x %r0, 4096
x %r0, -1
x %r0, 4096
#CHECK: error: invalid operand
#CHECK: xg %r0, -524289
#CHECK: error: invalid operand
#CHECK: xg %r0, 524288
xg %r0, -524289
xg %r0, 524288
#CHECK: error: invalid operand
#CHECK: xi -1, 0
#CHECK: error: invalid operand
#CHECK: xi 4096, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: xi 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: xi 0, -1
#CHECK: error: invalid operand
#CHECK: xi 0, 256
xi -1, 0
xi 4096, 0
xi 0(%r1,%r2), 0
xi 0, -1
xi 0, 256
#CHECK: error: invalid operand
#CHECK: xihf %r0, -1
#CHECK: error: invalid operand
#CHECK: xihf %r0, 1 << 32
xihf %r0, -1
xihf %r0, 1 << 32
#CHECK: error: invalid operand
#CHECK: xilf %r0, -1
#CHECK: error: invalid operand
#CHECK: xilf %r0, 1 << 32
xilf %r0, -1
xilf %r0, 1 << 32
#CHECK: error: invalid operand
#CHECK: xiy -524289, 0
#CHECK: error: invalid operand
#CHECK: xiy 524288, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: xiy 0(%r1,%r2), 0
#CHECK: error: invalid operand
#CHECK: xiy 0, -1
#CHECK: error: invalid operand
#CHECK: xiy 0, 256
xiy -524289, 0
xiy 524288, 0
xiy 0(%r1,%r2), 0
xiy 0, -1
xiy 0, 256
#CHECK: error: invalid operand
#CHECK: xy %r0, -524289
#CHECK: error: invalid operand
#CHECK: xy %r0, 524288
xy %r0, -524289
xy %r0, 524288