Add OpSize16 bit, for instructions which need 0x66 prefix in 16-bit mode
[oota-llvm.git] / test / MC / SystemZ / insn-bad.s
index a7affaef2fa74169595ad725f5c25d3029f8c7ea..caff5b2ab3dea939949c38ec42ec3d8f431e1958 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
        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
        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: invalid operand
 #CHECK: clfhsi -1, 0
 #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
        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
        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
        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
        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
        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