[mips][microMIPS] Implement LH, LHE, LHU and LHUE instructions
[oota-llvm.git] / test / MC / SystemZ / insn-bad.s
index a3218edb9419c3193bf854599f2f85f1b7af152c..0410a411167ebadb8dd61e3493044d9eaf6e2fc3 100644 (file)
        ahy     %r0, -524289
        ahy     %r0, 524288
 
+#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: aih    %r0, 0
+
+       aih     %r0, 0
+
 #CHECK: error: invalid operand
 #CHECK: al     %r0, -1
 #CHECK: error: invalid operand
        ay      %r0, -524289
        ay      %r0, 524288
 
+#CHECK: error: invalid operand
+#CHECK: bcr    -1, %r1
+#CHECK: error: invalid operand
+#CHECK: bcr    16, %r1
+
+       bcr     -1, %r1
+       bcr     16, %r1
+
 #CHECK: error: offset out of range
 #CHECK: bras   %r0, -0x100002
 #CHECK: error: offset out of range
        brcl    -1, bar
        brcl    16, bar
 
+#CHECK: error: offset out of range
+#CHECK: brct   %r0, -0x100002
+#CHECK: error: offset out of range
+#CHECK: brct   %r0, -1
+#CHECK: error: offset out of range
+#CHECK: brct   %r0, 1
+#CHECK: error: offset out of range
+#CHECK: brct   %r0, 0x10000
+
+       brct    %r0, -0x100002
+       brct    %r0, -1
+       brct    %r0, 1
+       brct    %r0, 0x10000
+
+#CHECK: error: offset out of range
+#CHECK: brctg  %r0, -0x100002
+#CHECK: error: offset out of range
+#CHECK: brctg  %r0, -1
+#CHECK: error: offset out of range
+#CHECK: brctg  %r0, 1
+#CHECK: error: offset out of range
+#CHECK: brctg  %r0, 0x10000
+
+       brctg   %r0, -0x100002
+       brctg   %r0, -1
+       brctg   %r0, 1
+       brctg   %r0, 0x10000
+
 #CHECK: error: invalid operand
 #CHECK: c      %r0, -1
 #CHECK: error: invalid operand
        cdb     %f0, -1
        cdb     %f0, 4096
 
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: cdlfbr %f0, 0, %r0, 0
+
+       cdlfbr  %f0, 0, %r0, 0
+
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: cdlgbr %f0, 0, %r0, 0
+
+       cdlgbr  %f0, 0, %r0, 0
+
 #CHECK: error: invalid operand
 #CHECK: ceb    %f0, -1
 #CHECK: error: invalid operand
        ceb     %f0, -1
        ceb     %f0, 4096
 
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: celfbr %f0, 0, %r0, 0
+
+       celfbr  %f0, 0, %r0, 0
+
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: celgbr %f0, 0, %r0, 0
+
+       celgbr  %f0, 0, %r0, 0
+
 #CHECK: error: invalid operand
 #CHECK: cfdbr  %r0, -1, %f0
 #CHECK: error: invalid operand
        ch      %r0, -1
        ch      %r0, 4096
 
+#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: chf    %r0, 0
+
+       chf     %r0, 0
+
 #CHECK: error: invalid operand
 #CHECK: chhsi  -1, 0
 #CHECK: error: invalid operand
        chy     %r0, -524289
        chy     %r0, 524288
 
+#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: cih    %r0, 0
+
+       cih     %r0, 0
+
 #CHECK: error: invalid operand
 #CHECK: cij    %r0, -129, 0, 0
 #CHECK: error: invalid operand
        cl      %r0, -1
        cl      %r0, 4096
 
+#CHECK: error: missing length in address
+#CHECK: clc    0, 0
+#CHECK: error: missing length in address
+#CHECK: clc    0(%r1), 0(%r1)
+#CHECK: error: invalid use of length addressing
+#CHECK: clc    0(1,%r1), 0(2,%r1)
+#CHECK: error: invalid operand
+#CHECK: clc    0(0,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: clc    0(257,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: clc    -1(1,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: clc    4096(1,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: clc    0(1,%r1), -1(%r1)
+#CHECK: error: invalid operand
+#CHECK: clc    0(1,%r1), 4096(%r1)
+#CHECK: error: %r0 used in an address
+#CHECK: clc    0(1,%r0), 0(%r1)
+#CHECK: error: %r0 used in an address
+#CHECK: clc    0(1,%r1), 0(%r0)
+#CHECK: error: invalid use of indexed addressing
+#CHECK: clc    0(%r1,%r2), 0(%r1)
+#CHECK: error: invalid use of indexed addressing
+#CHECK: clc    0(1,%r2), 0(%r1,%r2)
+#CHECK: error: unknown token in expression
+#CHECK: clc    0(-), 0
+
+       clc     0, 0
+       clc     0(%r1), 0(%r1)
+       clc     0(1,%r1), 0(2,%r1)
+       clc     0(0,%r1), 0(%r1)
+       clc     0(257,%r1), 0(%r1)
+       clc     -1(1,%r1), 0(%r1)
+       clc     4096(1,%r1), 0(%r1)
+       clc     0(1,%r1), -1(%r1)
+       clc     0(1,%r1), 4096(%r1)
+       clc     0(1,%r0), 0(%r1)
+       clc     0(1,%r1), 0(%r0)
+       clc     0(%r1,%r2), 0(%r1)
+       clc     0(1,%r2), 0(%r1,%r2)
+       clc     0(-), 0
+
+#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: clhf   %r0, 0
+
+       clhf    %r0, 0
+
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: clfdbr %r0, 0, %f0, 0
+
+       clfdbr  %r0, 0, %f0, 0
+
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: clfebr %r0, 0, %f0, 0
+
+       clfebr  %r0, 0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: clfhsi -1, 0
 #CHECK: error: invalid operand
        clfi    %r0, -1
        clfi    %r0, (1 << 32)
 
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: clfxbr %r0, 0, %f0, 0
+
+       clfxbr  %r0, 0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: clg    %r0, -524289
 #CHECK: error: invalid operand
        clg     %r0, -524289
        clg     %r0, 524288
 
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: clgdbr %r0, 0, %f0, 0
+
+       clgdbr  %r0, 0, %f0, 0
+
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: clgebr %r0, 0, %f0, 0
+
+       clgebr  %r0, 0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: clgf   %r0, -524289
 #CHECK: error: invalid operand
        clghsi  0, -1
        clghsi  0, 65536
 
+#CHECK: error: invalid operand
+#CHECK: clgij  %r0, -1, 0, 0
+#CHECK: error: invalid operand
+#CHECK: clgij  %r0, 256, 0, 0
+
+       clgij   %r0, -1, 0, 0
+       clgij   %r0, 256, 0, 0
+
+#CHECK: error: offset out of range
+#CHECK: clgij  %r0, 0, 0, -0x100002
+#CHECK: error: offset out of range
+#CHECK: clgij  %r0, 0, 0, -1
+#CHECK: error: offset out of range
+#CHECK: clgij  %r0, 0, 0, 1
+#CHECK: error: offset out of range
+#CHECK: clgij  %r0, 0, 0, 0x10000
+
+       clgij   %r0, 0, 0, -0x100002
+       clgij   %r0, 0, 0, -1
+       clgij   %r0, 0, 0, 1
+       clgij   %r0, 0, 0, 0x10000
+
+#CHECK: error: invalid instruction
+#CHECK:        clgijo  %r0, 0, 0, 0
+#CHECK: error: invalid instruction
+#CHECK:        clgijno %r0, 0, 0, 0
+
+       clgijo  %r0, 0, 0, 0
+       clgijno %r0, 0, 0, 0
+
+#CHECK: error: offset out of range
+#CHECK: clgrj  %r0, %r0, 0, -0x100002
+#CHECK: error: offset out of range
+#CHECK: clgrj  %r0, %r0, 0, -1
+#CHECK: error: offset out of range
+#CHECK: clgrj  %r0, %r0, 0, 1
+#CHECK: error: offset out of range
+#CHECK: clgrj  %r0, %r0, 0, 0x10000
+
+       clgrj   %r0, %r0, 0, -0x100002
+       clgrj   %r0, %r0, 0, -1
+       clgrj   %r0, %r0, 0, 1
+       clgrj   %r0, %r0, 0, 0x10000
+
 #CHECK: error: offset out of range
 #CHECK: clgrl  %r0, -0x1000000002
 #CHECK: error: offset out of range
        clgrl   %r0, 1
        clgrl   %r0, 0x100000000
 
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: clgxbr %r0, 0, %f0, 0
+
+       clgxbr  %r0, 0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: clhhsi -1, 0
 #CHECK: error: invalid operand
        cli     0, -1
        cli     0, 256
 
+#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: clih   %r0, 0
+
+       clih    %r0, 0
+
+#CHECK: error: invalid operand
+#CHECK: clij   %r0, -1, 0, 0
+#CHECK: error: invalid operand
+#CHECK: clij   %r0, 256, 0, 0
+
+       clij    %r0, -1, 0, 0
+       clij    %r0, 256, 0, 0
+
+#CHECK: error: offset out of range
+#CHECK: clij   %r0, 0, 0, -0x100002
+#CHECK: error: offset out of range
+#CHECK: clij   %r0, 0, 0, -1
+#CHECK: error: offset out of range
+#CHECK: clij   %r0, 0, 0, 1
+#CHECK: error: offset out of range
+#CHECK: clij   %r0, 0, 0, 0x10000
+
+       clij    %r0, 0, 0, -0x100002
+       clij    %r0, 0, 0, -1
+       clij    %r0, 0, 0, 1
+       clij    %r0, 0, 0, 0x10000
+
+#CHECK: error: invalid instruction
+#CHECK:        clijo   %r0, 0, 0, 0
+#CHECK: error: invalid instruction
+#CHECK:        clijno  %r0, 0, 0, 0
+
+       clijo   %r0, 0, 0, 0
+       clijno  %r0, 0, 0, 0
+
 #CHECK: error: invalid operand
 #CHECK: cliy   -524289, 0
 #CHECK: error: invalid operand
        cliy    0, -1
        cliy    0, 256
 
+#CHECK: error: offset out of range
+#CHECK: clrj   %r0, %r0, 0, -0x100002
+#CHECK: error: offset out of range
+#CHECK: clrj   %r0, %r0, 0, -1
+#CHECK: error: offset out of range
+#CHECK: clrj   %r0, %r0, 0, 1
+#CHECK: error: offset out of range
+#CHECK: clrj   %r0, %r0, 0, 0x10000
+
+       clrj    %r0, %r0, 0, -0x100002
+       clrj    %r0, %r0, 0, -1
+       clrj    %r0, %r0, 0, 1
+       clrj    %r0, %r0, 0, 0x10000
+
+#CHECK: error: invalid instruction
+#CHECK:        clrjo   %r0, %r0, 0, 0
+#CHECK: error: invalid instruction
+#CHECK:        clrjno  %r0, %r0, 0, 0
+
+       clrjo   %r0, %r0, 0, 0
+       clrjno  %r0, %r0, 0, 0
+
 #CHECK: error: offset out of range
 #CHECK: clrl   %r0, -0x1000000002
 #CHECK: error: offset out of range
 
        cxgbr   %f2, %r0
 
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: cxlfbr %f0, 0, %r0, 0
+
+       cxlfbr  %f0, 0, %r0, 0
+
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: cxlgbr %f0, 0, %r0, 0
+
+       cxlgbr  %f0, 0, %r0, 0
+
 #CHECK: error: invalid operand
 #CHECK: cy     %r0, -524289
 #CHECK: error: invalid operand
        fidbr   %f0, -1, %f0
        fidbr   %f0, 16, %f0
 
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: fidbra %f0, 0, %f0, 0
+
+       fidbra  %f0, 0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: fiebr  %f0, -1, %f0
 #CHECK: error: invalid operand
        fiebr   %f0, -1, %f0
        fiebr   %f0, 16, %f0
 
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: fiebra %f0, 0, %f0, 0
+
+       fiebra  %f0, 0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: fixbr  %f0, -1, %f0
 #CHECK: error: invalid operand
        fixbr   %f0, 0, %f2
        fixbr   %f2, 0, %f0
 
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: fixbra %f0, 0, %f0, 0
+
+       fixbra  %f0, 0, %f0, 0
+
 #CHECK: error: invalid register pair
 #CHECK: flogr  %r1, %r0
 
        la      %r0, -1
        la      %r0, 4096
 
+#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: laa    %r1, %r2, 100(%r3)
+       laa     %r1, %r2, 100(%r3)
+
+#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: laag   %r1, %r2, 100(%r3)
+       laag    %r1, %r2, 100(%r3)
+
+#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: laal   %r1, %r2, 100(%r3)
+       laal    %r1, %r2, 100(%r3)
+
+#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: laalg  %r1, %r2, 100(%r3)
+       laalg   %r1, %r2, 100(%r3)
+
+#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: lan    %r1, %r2, 100(%r3)
+       lan     %r1, %r2, 100(%r3)
+
+#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: lang   %r1, %r2, 100(%r3)
+       lang    %r1, %r2, 100(%r3)
+
+#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: lao    %r1, %r2, 100(%r3)
+       lao     %r1, %r2, 100(%r3)
+
+#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: laog   %r1, %r2, 100(%r3)
+       laog    %r1, %r2, 100(%r3)
+
+#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: lax    %r1, %r2, 100(%r3)
+       lax     %r1, %r2, 100(%r3)
+
+#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: laxg   %r1, %r2, 100(%r3)
+       laxg    %r1, %r2, 100(%r3)
+
 #CHECK: error: offset out of range
 #CHECK: larl   %r0, -0x1000000002
 #CHECK: error: offset out of range
        lb      %r0, -524289
        lb      %r0, 524288
 
+#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: lbh    %r0, 0
+
+       lbh     %r0, 0
+
 #CHECK: error: invalid register pair
 #CHECK: lcxbr  %f0, %f2
 #CHECK: error: invalid register pair
        ldxbr   %f0, %f2
        ldxbr   %f2, %f0
 
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: ldxbra %f0, 0, %f0, 0
+
+       ldxbra  %f0, 0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: ldy    %f0, -524289
 #CHECK: error: invalid operand
        le      %f0, -1
        le      %f0, 4096
 
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: ledbra %f0, 0, %f0, 0
+
+       ledbra  %f0, 0, %f0, 0
+
 #CHECK: error: invalid register pair
 #CHECK: lexbr  %f0, %f2
 #CHECK: error: invalid register pair
        lexbr   %f0, %f2
        lexbr   %f2, %f0
 
+#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: lexbra %f0, 0, %f0, 0
+
+       lexbra  %f0, 0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: ley    %f0, -524289
 #CHECK: error: invalid operand
        ley     %f0, -524289
        ley     %f0, 524288
 
+#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: lfh    %r0, 0
+
+       lfh     %r0, 0
+
 #CHECK: error: invalid operand
 #CHECK: lg     %r0, -524289
 #CHECK: error: invalid operand
        lh      %r0, -1
        lh      %r0, 4096
 
+#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: lhh    %r0, 0
+
+       lhh     %r0, 0
+
 #CHECK: error: invalid operand
 #CHECK: lhi    %r0, -32769
 #CHECK: error: invalid operand
        llc     %r0, -524289
        llc     %r0, 524288
 
+#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: llch   %r0, 0
+
+       llch    %r0, 0
+
 #CHECK: error: invalid operand
 #CHECK: llgc   %r0, -524289
 #CHECK: error: invalid operand
        llh     %r0, -524289
        llh     %r0, 524288
 
+#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: llhh   %r0, 0
+
+       llhh    %r0, 0
+
 #CHECK: error: offset out of range
 #CHECK: llhrl  %r0, -0x1000000002
 #CHECK: error: offset out of range
        ltgf    %r0, -524289
        ltgf    %r0, 524288
 
+#CHECK: error: invalid register pair
+#CHECK: ltxbr  %f0, %f14
+#CHECK: error: invalid register pair
+#CHECK: ltxbr  %f14, %f0
+
+       ltxbr   %f0, %f14
+       ltxbr   %f14, %f0
+
 #CHECK: error: invalid register pair
 #CHECK: lxr    %f0, %f2
 #CHECK: error: invalid register pair
        n       %r0, -1
        n       %r0, 4096
 
+#CHECK: error: missing length in address
+#CHECK: nc     0, 0
+#CHECK: error: missing length in address
+#CHECK: nc     0(%r1), 0(%r1)
+#CHECK: error: invalid use of length addressing
+#CHECK: nc     0(1,%r1), 0(2,%r1)
+#CHECK: error: invalid operand
+#CHECK: nc     0(0,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: nc     0(257,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: nc     -1(1,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: nc     4096(1,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: nc     0(1,%r1), -1(%r1)
+#CHECK: error: invalid operand
+#CHECK: nc     0(1,%r1), 4096(%r1)
+#CHECK: error: %r0 used in an address
+#CHECK: nc     0(1,%r0), 0(%r1)
+#CHECK: error: %r0 used in an address
+#CHECK: nc     0(1,%r1), 0(%r0)
+#CHECK: error: invalid use of indexed addressing
+#CHECK: nc     0(%r1,%r2), 0(%r1)
+#CHECK: error: invalid use of indexed addressing
+#CHECK: nc     0(1,%r2), 0(%r1,%r2)
+#CHECK: error: unknown token in expression
+#CHECK: nc     0(-), 0
+
+       nc      0, 0
+       nc      0(%r1), 0(%r1)
+       nc      0(1,%r1), 0(2,%r1)
+       nc      0(0,%r1), 0(%r1)
+       nc      0(257,%r1), 0(%r1)
+       nc      -1(1,%r1), 0(%r1)
+       nc      4096(1,%r1), 0(%r1)
+       nc      0(1,%r1), -1(%r1)
+       nc      0(1,%r1), 4096(%r1)
+       nc      0(1,%r0), 0(%r1)
+       nc      0(1,%r1), 0(%r0)
+       nc      0(%r1,%r2), 0(%r1)
+       nc      0(1,%r2), 0(%r1,%r2)
+       nc      0(-), 0
+
 #CHECK: error: invalid operand
 #CHECK: ng     %r0, -524289
 #CHECK: error: invalid operand
        o       %r0, -1
        o       %r0, 4096
 
+#CHECK: error: missing length in address
+#CHECK: oc     0, 0
+#CHECK: error: missing length in address
+#CHECK: oc     0(%r1), 0(%r1)
+#CHECK: error: invalid use of length addressing
+#CHECK: oc     0(1,%r1), 0(2,%r1)
+#CHECK: error: invalid operand
+#CHECK: oc     0(0,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: oc     0(257,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: oc     -1(1,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: oc     4096(1,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: oc     0(1,%r1), -1(%r1)
+#CHECK: error: invalid operand
+#CHECK: oc     0(1,%r1), 4096(%r1)
+#CHECK: error: %r0 used in an address
+#CHECK: oc     0(1,%r0), 0(%r1)
+#CHECK: error: %r0 used in an address
+#CHECK: oc     0(1,%r1), 0(%r0)
+#CHECK: error: invalid use of indexed addressing
+#CHECK: oc     0(%r1,%r2), 0(%r1)
+#CHECK: error: invalid use of indexed addressing
+#CHECK: oc     0(1,%r2), 0(%r1,%r2)
+#CHECK: error: unknown token in expression
+#CHECK: oc     0(-), 0
+
+       oc      0, 0
+       oc      0(%r1), 0(%r1)
+       oc      0(1,%r1), 0(2,%r1)
+       oc      0(0,%r1), 0(%r1)
+       oc      0(257,%r1), 0(%r1)
+       oc      -1(1,%r1), 0(%r1)
+       oc      4096(1,%r1), 0(%r1)
+       oc      0(1,%r1), -1(%r1)
+       oc      0(1,%r1), 4096(%r1)
+       oc      0(1,%r0), 0(%r1)
+       oc      0(1,%r1), 0(%r0)
+       oc      0(%r1,%r2), 0(%r1)
+       oc      0(1,%r2), 0(%r1,%r2)
+       oc      0(-), 0
+
 #CHECK: error: invalid operand
 #CHECK: og     %r0, -524289
 #CHECK: error: invalid operand
        oy      %r0, -524289
        oy      %r0, 524288
 
+#CHECK: error: invalid operand
+#CHECK: pfd    -1, 0
+#CHECK: error: invalid operand
+#CHECK: pfd    16, 0
+#CHECK: error: invalid operand
+#CHECK: pfd    1, -524289
+#CHECK: error: invalid operand
+#CHECK: pfd    1, 524288
+
+       pfd     -1, 0
+       pfd     16, 0
+       pfd     1, -524289
+       pfd     1, 524288
+
+#CHECK: error: invalid operand
+#CHECK: pfdrl  -1, 0
+#CHECK: error: invalid operand
+#CHECK: pfdrl  16, 0
+#CHECK: error: offset out of range
+#CHECK: pfdrl  1, -0x1000000002
+#CHECK: error: offset out of range
+#CHECK: pfdrl  1, -1
+#CHECK: error: offset out of range
+#CHECK: pfdrl  1, 1
+#CHECK: error: offset out of range
+#CHECK: pfdrl  1, 0x100000000
+
+       pfdrl   -1, 0
+       pfdrl   16, 0
+       pfdrl   1, -0x1000000002
+       pfdrl   1, -1
+       pfdrl   1, 1
+       pfdrl   1, 0x100000000
+
+#CHECK: error: {{(instruction requires: population-count)?}}
+#CHECK: popcnt %r0, %r0
+
+       popcnt  %r0, %r0
+
 #CHECK: error: invalid operand
 #CHECK: risbg  %r0,%r0,0,0,-1
 #CHECK: error: invalid operand
        stc     %r0, -1
        stc     %r0, 4096
 
+#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: stch   %r0, 0
+
+       stch    %r0, 0
+
 #CHECK: error: invalid operand
 #CHECK: stcy   %r0, -524289
 #CHECK: error: invalid operand
        sth     %r0, -1
        sth     %r0, 4096
 
+#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: sthh   %r0, 0
+
+       sthh    %r0, 0
+
 #CHECK: error: offset out of range
 #CHECK: sthrl  %r0, -0x1000000002
 #CHECK: error: offset out of range
        sthy    %r0, -524289
        sthy    %r0, 524288
 
+#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: stfh   %r0, 0
+
+       stfh    %r0, 0
+
 #CHECK: error: invalid operand
 #CHECK: stmg   %r0, %r0, -524289
 #CHECK: error: invalid operand
        sy      %r0, -524289
        sy      %r0, 524288
 
+#CHECK: error: invalid operand
+#CHECK: tm     -1, 0
+#CHECK: error: invalid operand
+#CHECK: tm     4096, 0
+#CHECK: error: invalid use of indexed addressing
+#CHECK: tm     0(%r1,%r2), 0
+#CHECK: error: invalid operand
+#CHECK: tm     0, -1
+#CHECK: error: invalid operand
+#CHECK: tm     0, 256
+
+       tm      -1, 0
+       tm      4096, 0
+       tm      0(%r1,%r2), 0
+       tm      0, -1
+       tm      0, 256
+
+#CHECK: error: invalid operand
+#CHECK: tmhh   %r0, -1
+#CHECK: error: invalid operand
+#CHECK: tmhh   %r0, 0x10000
+
+       tmhh    %r0, -1
+       tmhh    %r0, 0x10000
+
+#CHECK: error: invalid operand
+#CHECK: tmhl   %r0, -1
+#CHECK: error: invalid operand
+#CHECK: tmhl   %r0, 0x10000
+
+       tmhl    %r0, -1
+       tmhl    %r0, 0x10000
+
+#CHECK: error: invalid operand
+#CHECK: tmlh   %r0, -1
+#CHECK: error: invalid operand
+#CHECK: tmlh   %r0, 0x10000
+
+       tmlh    %r0, -1
+       tmlh    %r0, 0x10000
+
+#CHECK: error: invalid operand
+#CHECK: tmll   %r0, -1
+#CHECK: error: invalid operand
+#CHECK: tmll   %r0, 0x10000
+
+       tmll    %r0, -1
+       tmll    %r0, 0x10000
+
+#CHECK: error: invalid operand
+#CHECK: tmy    -524289, 0
+#CHECK: error: invalid operand
+#CHECK: tmy    524288, 0
+#CHECK: error: invalid use of indexed addressing
+#CHECK: tmy    0(%r1,%r2), 0
+#CHECK: error: invalid operand
+#CHECK: tmy    0, -1
+#CHECK: error: invalid operand
+#CHECK: tmy    0, 256
+
+       tmy     -524289, 0
+       tmy     524288, 0
+       tmy     0(%r1,%r2), 0
+       tmy     0, -1
+       tmy     0, 256
+
 #CHECK: error: invalid operand
 #CHECK: x      %r0, -1
 #CHECK: error: invalid operand
        x       %r0, -1
        x       %r0, 4096
 
+#CHECK: error: missing length in address
+#CHECK: xc     0, 0
+#CHECK: error: missing length in address
+#CHECK: xc     0(%r1), 0(%r1)
+#CHECK: error: invalid use of length addressing
+#CHECK: xc     0(1,%r1), 0(2,%r1)
+#CHECK: error: invalid operand
+#CHECK: xc     0(0,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: xc     0(257,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: xc     -1(1,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: xc     4096(1,%r1), 0(%r1)
+#CHECK: error: invalid operand
+#CHECK: xc     0(1,%r1), -1(%r1)
+#CHECK: error: invalid operand
+#CHECK: xc     0(1,%r1), 4096(%r1)
+#CHECK: error: %r0 used in an address
+#CHECK: xc     0(1,%r0), 0(%r1)
+#CHECK: error: %r0 used in an address
+#CHECK: xc     0(1,%r1), 0(%r0)
+#CHECK: error: invalid use of indexed addressing
+#CHECK: xc     0(%r1,%r2), 0(%r1)
+#CHECK: error: invalid use of indexed addressing
+#CHECK: xc     0(1,%r2), 0(%r1,%r2)
+#CHECK: error: unknown token in expression
+#CHECK: xc     0(-), 0
+
+       xc      0, 0
+       xc      0(%r1), 0(%r1)
+       xc      0(1,%r1), 0(2,%r1)
+       xc      0(0,%r1), 0(%r1)
+       xc      0(257,%r1), 0(%r1)
+       xc      -1(1,%r1), 0(%r1)
+       xc      4096(1,%r1), 0(%r1)
+       xc      0(1,%r1), -1(%r1)
+       xc      0(1,%r1), 4096(%r1)
+       xc      0(1,%r0), 0(%r1)
+       xc      0(1,%r1), 0(%r0)
+       xc      0(%r1,%r2), 0(%r1)
+       xc      0(1,%r2), 0(%r1,%r2)
+       xc      0(-), 0
+
 #CHECK: error: invalid operand
 #CHECK: xg     %r0, -524289
 #CHECK: error: invalid operand