Add OpSize16 bit, for instructions which need 0x66 prefix in 16-bit mode
[oota-llvm.git] / test / MC / SystemZ / insn-bad-z196.s
index b4dc529531a4e1bd838a7f83f868cea25509ac0b..11b66a0f4b0a37b9f8ff6d2465a1973fc5278550 100644 (file)
        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: 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: 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: 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
        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