# For z196 only.
# RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=z196 < %s 2> %t
# RUN: FileCheck < %t %s
# RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=arch9 < %s 2> %t
# RUN: FileCheck < %t %s

#CHECK: error: invalid operand
#CHECK: adtra	%f0, %f0, %f0, -1
#CHECK: error: invalid operand
#CHECK: adtra	%f0, %f0, %f0, 16

	adtra	%f0, %f0, %f0, -1
	adtra	%f0, %f0, %f0, 16

#CHECK: error: invalid operand
#CHECK: aghik	%r0, %r1, -32769
#CHECK: error: invalid operand
#CHECK: aghik	%r0, %r1, 32768
#CHECK: error: invalid operand
#CHECK: aghik	%r0, %r1, foo

	aghik	%r0, %r1, -32769
	aghik	%r0, %r1, 32768
	aghik	%r0, %r1, foo

#CHECK: error: invalid operand
#CHECK: ahik	%r0, %r1, -32769
#CHECK: error: invalid operand
#CHECK: ahik	%r0, %r1, 32768
#CHECK: error: invalid operand
#CHECK: ahik	%r0, %r1, foo

	ahik	%r0, %r1, -32769
	ahik	%r0, %r1, 32768
	ahik	%r0, %r1, foo

#CHECK: error: invalid operand
#CHECK: aih	%r0, (-1 << 31) - 1
#CHECK: error: invalid operand
#CHECK: aih	%r0, (1 << 31)

	aih	%r0, (-1 << 31) - 1
	aih	%r0, (1 << 31)

#CHECK: error: invalid operand
#CHECK: alsih	%r0, (-1 << 31) - 1
#CHECK: error: invalid operand
#CHECK: alsih	%r0, (1 << 31)

	alsih	%r0, (-1 << 31) - 1
	alsih	%r0, (1 << 31)

#CHECK: error: invalid operand
#CHECK: alsihn	%r0, (-1 << 31) - 1
#CHECK: error: invalid operand
#CHECK: alsihn	%r0, (1 << 31)

	alsihn	%r0, (-1 << 31) - 1
	alsihn	%r0, (1 << 31)

#CHECK: error: invalid operand
#CHECK: axtra	%f0, %f0, %f0, -1
#CHECK: error: invalid operand
#CHECK: axtra	%f0, %f0, %f0, 16
#CHECK: error: invalid register pair
#CHECK: axtra	%f0, %f0, %f2, 0
#CHECK: error: invalid register pair
#CHECK: axtra	%f0, %f2, %f0, 0
#CHECK: error: invalid register pair
#CHECK: axtra	%f2, %f0, %f0, 0

	axtra	%f0, %f0, %f0, -1
	axtra	%f0, %f0, %f0, 16
	axtra	%f0, %f0, %f2, 0
	axtra	%f0, %f2, %f0, 0
	axtra	%f2, %f0, %f0, 0

#CHECK: error: instruction requires: execution-hint
#CHECK: bpp	0, 0, 0

	bpp	0, 0, 0

#CHECK: error: instruction requires: execution-hint
#CHECK: bprp	0, 0, 0

	bprp	0, 0, 0

#CHECK: error: offset out of range
#CHECK: brcth   %r0, -0x1000000002
#CHECK: error: offset out of range
#CHECK: brcth   %r0, -1
#CHECK: error: offset out of range
#CHECK: brcth   %r0, 1
#CHECK: error: offset out of range
#CHECK: brcth   %r0, 0x100000000

        brcth   %r0, -0x1000000002
        brcth   %r0, -1
        brcth   %r0, 1
        brcth   %r0, 0x100000000

#CHECK: error: invalid operand
#CHECK: cdfbra	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cdfbra	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cdfbra	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cdfbra	%f0, 16, %r0, 0

	cdfbra	%f0, 0, %r0, -1
	cdfbra	%f0, 0, %r0, 16
	cdfbra	%f0, -1, %r0, 0
	cdfbra	%f0, 16, %r0, 0

#CHECK: error: invalid operand
#CHECK: cdftr	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cdftr	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cdftr	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cdftr	%f0, 16, %r0, 0

	cdftr	%f0, 0, %r0, -1
	cdftr	%f0, 0, %r0, 16
	cdftr	%f0, -1, %r0, 0
	cdftr	%f0, 16, %r0, 0

#CHECK: error: invalid operand
#CHECK: cdgbra	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cdgbra	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cdgbra	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cdgbra	%f0, 16, %r0, 0

	cdgbra	%f0, 0, %r0, -1
	cdgbra	%f0, 0, %r0, 16
	cdgbra	%f0, -1, %r0, 0
	cdgbra	%f0, 16, %r0, 0

#CHECK: error: invalid operand
#CHECK: cdgtra	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cdgtra	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cdgtra	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cdgtra	%f0, 16, %r0, 0

	cdgtra	%f0, 0, %r0, -1
	cdgtra	%f0, 0, %r0, 16
	cdgtra	%f0, -1, %r0, 0
	cdgtra	%f0, 16, %r0, 0

#CHECK: error: invalid operand
#CHECK: cdlfbr	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cdlfbr	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cdlfbr	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cdlfbr	%f0, 16, %r0, 0

	cdlfbr	%f0, 0, %r0, -1
	cdlfbr	%f0, 0, %r0, 16
	cdlfbr	%f0, -1, %r0, 0
	cdlfbr	%f0, 16, %r0, 0

#CHECK: error: invalid operand
#CHECK: cdlftr	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cdlftr	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cdlftr	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cdlftr	%f0, 16, %r0, 0

	cdlftr	%f0, 0, %r0, -1
	cdlftr	%f0, 0, %r0, 16
	cdlftr	%f0, -1, %r0, 0
	cdlftr	%f0, 16, %r0, 0

#CHECK: error: instruction requires: dfp-zoned-conversion
#CHECK: cdzt	%f0, 0(1), 0

	cdzt	%f0, 0(1), 0

#CHECK: error: invalid operand
#CHECK: cdlgbr	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cdlgbr	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cdlgbr	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cdlgbr	%f0, 16, %r0, 0

	cdlgbr	%f0, 0, %r0, -1
	cdlgbr	%f0, 0, %r0, 16
	cdlgbr	%f0, -1, %r0, 0
	cdlgbr	%f0, 16, %r0, 0

#CHECK: error: invalid operand
#CHECK: cdlgtr	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cdlgtr	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cdlgtr	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cdlgtr	%f0, 16, %r0, 0

	cdlgtr	%f0, 0, %r0, -1
	cdlgtr	%f0, 0, %r0, 16
	cdlgtr	%f0, -1, %r0, 0
	cdlgtr	%f0, 16, %r0, 0

#CHECK: error: invalid operand
#CHECK: cefbra	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cefbra	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cefbra	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cefbra	%f0, 16, %r0, 0

	cefbra	%f0, 0, %r0, -1
	cefbra	%f0, 0, %r0, 16
	cefbra	%f0, -1, %r0, 0
	cefbra	%f0, 16, %r0, 0

#CHECK: error: invalid operand
#CHECK: cegbra	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cegbra	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cegbra	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cegbra	%f0, 16, %r0, 0

	cegbra	%f0, 0, %r0, -1
	cegbra	%f0, 0, %r0, 16
	cegbra	%f0, -1, %r0, 0
	cegbra	%f0, 16, %r0, 0

#CHECK: error: invalid operand
#CHECK: celfbr	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: celfbr	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: celfbr	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: celfbr	%f0, 16, %r0, 0

	celfbr	%f0, 0, %r0, -1
	celfbr	%f0, 0, %r0, 16
	celfbr	%f0, -1, %r0, 0
	celfbr	%f0, 16, %r0, 0

#CHECK: error: invalid operand
#CHECK: celgbr	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: celgbr	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: celgbr	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: celgbr	%f0, 16, %r0, 0

	celgbr	%f0, 0, %r0, -1
	celgbr	%f0, 0, %r0, 16
	celgbr	%f0, -1, %r0, 0
	celgbr	%f0, 16, %r0, 0

#CHECK: error: invalid operand
#CHECK: cfdbra	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: cfdbra	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: cfdbra	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: cfdbra	%r0, 16, %f0, 0

	cfdbra	%r0, 0, %f0, -1
	cfdbra	%r0, 0, %f0, 16
	cfdbra	%r0, -1, %f0, 0
	cfdbra	%r0, 16, %f0, 0

#CHECK: error: invalid operand
#CHECK: cfdtr	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: cfdtr	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: cfdtr	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: cfdtr	%r0, 16, %f0, 0

	cfdtr	%r0, 0, %f0, -1
	cfdtr	%r0, 0, %f0, 16
	cfdtr	%r0, -1, %f0, 0
	cfdtr	%r0, 16, %f0, 0

#CHECK: error: invalid operand
#CHECK: cfebra	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: cfebra	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: cfebra	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: cfebra	%r0, 16, %f0, 0

	cfebra	%r0, 0, %f0, -1
	cfebra	%r0, 0, %f0, 16
	cfebra	%r0, -1, %f0, 0
	cfebra	%r0, 16, %f0, 0

#CHECK: error: invalid operand
#CHECK: cfxbra	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: cfxbra	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: cfxbra	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: cfxbra	%r0, 16, %f0, 0
#CHECK: error: invalid register pair
#CHECK: cfxbra	%r0, 0, %f14, 0

	cfxbra	%r0, 0, %f0, -1
	cfxbra	%r0, 0, %f0, 16
	cfxbra	%r0, -1, %f0, 0
	cfxbra	%r0, 16, %f0, 0
	cfxbra	%r0, 0, %f14, 0

#CHECK: error: invalid operand
#CHECK: cfxtr	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: cfxtr	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: cfxtr	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: cfxtr	%r0, 16, %f0, 0
#CHECK: error: invalid register pair
#CHECK: cfxtr	%r0, 0, %f14, 0

	cfxtr	%r0, 0, %f0, -1
	cfxtr	%r0, 0, %f0, 16
	cfxtr	%r0, -1, %f0, 0
	cfxtr	%r0, 16, %f0, 0
	cfxtr	%r0, 0, %f14, 0

#CHECK: error: invalid operand
#CHECK: cgdbra	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: cgdbra	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: cgdbra	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: cgdbra	%r0, 16, %f0, 0

	cgdbra	%r0, 0, %f0, -1
	cgdbra	%r0, 0, %f0, 16
	cgdbra	%r0, -1, %f0, 0
	cgdbra	%r0, 16, %f0, 0

#CHECK: error: invalid operand
#CHECK: cgdtra	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: cgdtra	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: cgdtra	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: cgdtra	%r0, 16, %f0, 0

	cgdtra	%r0, 0, %f0, -1
	cgdtra	%r0, 0, %f0, 16
	cgdtra	%r0, -1, %f0, 0
	cgdtra	%r0, 16, %f0, 0

#CHECK: error: invalid operand
#CHECK: cgebra	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: cgebra	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: cgebra	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: cgebra	%r0, 16, %f0, 0

	cgebra	%r0, 0, %f0, -1
	cgebra	%r0, 0, %f0, 16
	cgebra	%r0, -1, %f0, 0
	cgebra	%r0, 16, %f0, 0

#CHECK: error: invalid operand
#CHECK: cgxbra	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: cgxbra	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: cgxbra	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: cgxbra	%r0, 16, %f0, 0
#CHECK: error: invalid register pair
#CHECK: cgxbra	%r0, 0, %f14, 0

	cgxbra	%r0, 0, %f0, -1
	cgxbra	%r0, 0, %f0, 16
	cgxbra	%r0, -1, %f0, 0
	cgxbra	%r0, 16, %f0, 0
	cgxbra	%r0, 0, %f14, 0

#CHECK: error: invalid operand
#CHECK: cgxtra	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: cgxtra	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: cgxtra	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: cgxtra	%r0, 16, %f0, 0
#CHECK: error: invalid register pair
#CHECK: cgxtra	%r0, 0, %f14, 0

	cgxtra	%r0, 0, %f0, -1
	cgxtra	%r0, 0, %f0, 16
	cgxtra	%r0, -1, %f0, 0
	cgxtra	%r0, 16, %f0, 0
	cgxtra	%r0, 0, %f14, 0

#CHECK: error: invalid operand
#CHECK: chf	%r0, -524289
#CHECK: error: invalid operand
#CHECK: chf	%r0, 524288

	chf	%r0, -524289
	chf	%r0, 524288

#CHECK: error: invalid operand
#CHECK: cih	%r0, (-1 << 31) - 1
#CHECK: error: invalid operand
#CHECK: cih	%r0, (1 << 31)

	cih	%r0, (-1 << 31) - 1
	cih	%r0, (1 << 31)

#CHECK: error: invalid operand
#CHECK: clfdbr	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clfdbr	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clfdbr	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clfdbr	%r0, 16, %f0, 0

	clfdbr	%r0, 0, %f0, -1
	clfdbr	%r0, 0, %f0, 16
	clfdbr	%r0, -1, %f0, 0
	clfdbr	%r0, 16, %f0, 0

#CHECK: error: invalid operand
#CHECK: clfdtr	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clfdtr	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clfdtr	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clfdtr	%r0, 16, %f0, 0

	clfdtr	%r0, 0, %f0, -1
	clfdtr	%r0, 0, %f0, 16
	clfdtr	%r0, -1, %f0, 0
	clfdtr	%r0, 16, %f0, 0

#CHECK: error: invalid operand
#CHECK: clfebr	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clfebr	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clfebr	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clfebr	%r0, 16, %f0, 0

	clfebr	%r0, 0, %f0, -1
	clfebr	%r0, 0, %f0, 16
	clfebr	%r0, -1, %f0, 0
	clfebr	%r0, 16, %f0, 0

#CHECK: error: invalid operand
#CHECK: clfxbr	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clfxbr	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clfxbr	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clfxbr	%r0, 16, %f0, 0
#CHECK: error: invalid register pair
#CHECK: clfxbr	%r0, 0, %f14, 0

	clfxbr	%r0, 0, %f0, -1
	clfxbr	%r0, 0, %f0, 16
	clfxbr	%r0, -1, %f0, 0
	clfxbr	%r0, 16, %f0, 0
	clfxbr	%r0, 0, %f14, 0

#CHECK: error: invalid operand
#CHECK: clfxtr	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clfxtr	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clfxtr	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clfxtr	%r0, 16, %f0, 0
#CHECK: error: invalid register pair
#CHECK: clfxtr	%r0, 0, %f14, 0

	clfxtr	%r0, 0, %f0, -1
	clfxtr	%r0, 0, %f0, 16
	clfxtr	%r0, -1, %f0, 0
	clfxtr	%r0, 16, %f0, 0
	clfxtr	%r0, 0, %f14, 0

#CHECK: error: invalid operand
#CHECK: clgdbr	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clgdbr	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clgdbr	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clgdbr	%r0, 16, %f0, 0

	clgdbr	%r0, 0, %f0, -1
	clgdbr	%r0, 0, %f0, 16
	clgdbr	%r0, -1, %f0, 0
	clgdbr	%r0, 16, %f0, 0

#CHECK: error: invalid operand
#CHECK: clgdtr	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clgdtr	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clgdtr	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clgdtr	%r0, 16, %f0, 0

	clgdtr	%r0, 0, %f0, -1
	clgdtr	%r0, 0, %f0, 16
	clgdtr	%r0, -1, %f0, 0
	clgdtr	%r0, 16, %f0, 0

#CHECK: error: invalid operand
#CHECK: clgebr	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clgebr	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clgebr	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clgebr	%r0, 16, %f0, 0

	clgebr	%r0, 0, %f0, -1
	clgebr	%r0, 0, %f0, 16
	clgebr	%r0, -1, %f0, 0
	clgebr	%r0, 16, %f0, 0

#CHECK: error: invalid operand
#CHECK: clgxbr	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clgxbr	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clgxbr	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clgxbr	%r0, 16, %f0, 0
#CHECK: error: invalid register pair
#CHECK: clgxbr	%r0, 0, %f14, 0

	clgxbr	%r0, 0, %f0, -1
	clgxbr	%r0, 0, %f0, 16
	clgxbr	%r0, -1, %f0, 0
	clgxbr	%r0, 16, %f0, 0
	clgxbr	%r0, 0, %f14, 0

#CHECK: error: invalid operand
#CHECK: clgxtr	%r0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: clgxtr	%r0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: clgxtr	%r0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: clgxtr	%r0, 16, %f0, 0
#CHECK: error: invalid register pair
#CHECK: clgxtr	%r0, 0, %f14, 0

	clgxtr	%r0, 0, %f0, -1
	clgxtr	%r0, 0, %f0, 16
	clgxtr	%r0, -1, %f0, 0
	clgxtr	%r0, 16, %f0, 0
	clgxtr	%r0, 0, %f14, 0

#CHECK: error: invalid operand
#CHECK: clhf	%r0, -524289
#CHECK: error: invalid operand
#CHECK: clhf	%r0, 524288

	clhf	%r0, -524289
	clhf	%r0, 524288

#CHECK: error: invalid operand
#CHECK: clih	%r0, -1
#CHECK: error: invalid operand
#CHECK: clih	%r0, (1 << 32)

	clih	%r0, -1
	clih	%r0, (1 << 32)

#CHECK: error: instruction requires: enhanced-dat-2
#CHECK: crdte   %r0, %r0, %r0, 0

	crdte   %r0, %r0, %r0, 0

#CHECK: error: invalid operand
#CHECK: cxfbra	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cxfbra	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cxfbra	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cxfbra	%f0, 16, %r0, 0
#CHECK: error: invalid register pair
#CHECK: cxfbra	%f2, 0, %r0, 0

	cxfbra	%f0, 0, %r0, -1
	cxfbra	%f0, 0, %r0, 16
	cxfbra	%f0, -1, %r0, 0
	cxfbra	%f0, 16, %r0, 0
	cxfbra	%f2, 0, %r0, 0

#CHECK: error: invalid operand
#CHECK: cxftr	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cxftr	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cxftr	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cxftr	%f0, 16, %r0, 0
#CHECK: error: invalid register pair
#CHECK: cxftr	%f2, 0, %r0, 0

	cxftr	%f0, 0, %r0, -1
	cxftr	%f0, 0, %r0, 16
	cxftr	%f0, -1, %r0, 0
	cxftr	%f0, 16, %r0, 0
	cxftr	%f2, 0, %r0, 0

#CHECK: error: invalid operand
#CHECK: cxgbra	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cxgbra	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cxgbra	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cxgbra	%f0, 16, %r0, 0
#CHECK: error: invalid register pair
#CHECK: cxgbra	%f2, 0, %r0, 0

	cxgbra	%f0, 0, %r0, -1
	cxgbra	%f0, 0, %r0, 16
	cxgbra	%f0, -1, %r0, 0
	cxgbra	%f0, 16, %r0, 0
	cxgbra	%f2, 0, %r0, 0

#CHECK: error: invalid operand
#CHECK: cxgtra	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cxgtra	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cxgtra	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cxgtra	%f0, 16, %r0, 0
#CHECK: error: invalid register pair
#CHECK: cxgtra	%f2, 0, %r0, 0

	cxgtra	%f0, 0, %r0, -1
	cxgtra	%f0, 0, %r0, 16
	cxgtra	%f0, -1, %r0, 0
	cxgtra	%f0, 16, %r0, 0
	cxgtra	%f2, 0, %r0, 0

#CHECK: error: invalid operand
#CHECK: cxlfbr	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cxlfbr	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cxlfbr	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cxlfbr	%f0, 16, %r0, 0
#CHECK: error: invalid register pair
#CHECK: cxlfbr	%f2, 0, %r0, 0

	cxlfbr	%f0, 0, %r0, -1
	cxlfbr	%f0, 0, %r0, 16
	cxlfbr	%f0, -1, %r0, 0
	cxlfbr	%f0, 16, %r0, 0
	cxlfbr	%f2, 0, %r0, 0

#CHECK: error: invalid operand
#CHECK: cxlftr	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cxlftr	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cxlftr	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cxlftr	%f0, 16, %r0, 0
#CHECK: error: invalid register pair
#CHECK: cxlftr	%f2, 0, %r0, 0

	cxlftr	%f0, 0, %r0, -1
	cxlftr	%f0, 0, %r0, 16
	cxlftr	%f0, -1, %r0, 0
	cxlftr	%f0, 16, %r0, 0
	cxlftr	%f2, 0, %r0, 0

#CHECK: error: invalid operand
#CHECK: cxlgbr	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cxlgbr	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cxlgbr	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cxlgbr	%f0, 16, %r0, 0
#CHECK: error: invalid register pair
#CHECK: cxlgbr	%f2, 0, %r0, 0

	cxlgbr	%f0, 0, %r0, -1
	cxlgbr	%f0, 0, %r0, 16
	cxlgbr	%f0, -1, %r0, 0
	cxlgbr	%f0, 16, %r0, 0
	cxlgbr	%f2, 0, %r0, 0

#CHECK: error: invalid operand
#CHECK: cxlgtr	%f0, 0, %r0, -1
#CHECK: error: invalid operand
#CHECK: cxlgtr	%f0, 0, %r0, 16
#CHECK: error: invalid operand
#CHECK: cxlgtr	%f0, -1, %r0, 0
#CHECK: error: invalid operand
#CHECK: cxlgtr	%f0, 16, %r0, 0
#CHECK: error: invalid register pair
#CHECK: cxlgtr	%f2, 0, %r0, 0

	cxlgtr	%f0, 0, %r0, -1
	cxlgtr	%f0, 0, %r0, 16
	cxlgtr	%f0, -1, %r0, 0
	cxlgtr	%f0, 16, %r0, 0
	cxlgtr	%f2, 0, %r0, 0

#CHECK: error: instruction requires: dfp-zoned-conversion
#CHECK: cxzt	%f0, 0(1), 0

	cxzt	%f0, 0(1), 0

#CHECK: error: instruction requires: dfp-zoned-conversion
#CHECK: czdt	%f0, 0(1), 0

	czdt	%f0, 0(1), 0

#CHECK: error: instruction requires: dfp-zoned-conversion
#CHECK: czxt	%f0, 0(1), 0

	czxt	%f0, 0(1), 0

#CHECK: error: invalid operand
#CHECK: ddtra	%f0, %f0, %f0, -1
#CHECK: error: invalid operand
#CHECK: ddtra	%f0, %f0, %f0, 16

	ddtra	%f0, %f0, %f0, -1
	ddtra	%f0, %f0, %f0, 16

#CHECK: error: invalid operand
#CHECK: dxtra	%f0, %f0, %f0, -1
#CHECK: error: invalid operand
#CHECK: dxtra	%f0, %f0, %f0, 16
#CHECK: error: invalid register pair
#CHECK: dxtra	%f0, %f0, %f2, 0
#CHECK: error: invalid register pair
#CHECK: dxtra	%f0, %f2, %f0, 0
#CHECK: error: invalid register pair
#CHECK: dxtra	%f2, %f0, %f0, 0

	dxtra	%f0, %f0, %f0, -1
	dxtra	%f0, %f0, %f0, 16
	dxtra	%f0, %f0, %f2, 0
	dxtra	%f0, %f2, %f0, 0
	dxtra	%f2, %f0, %f0, 0

#CHECK: error: instruction requires: transactional-execution
#CHECK: etnd	%r7

	etnd	%r7

#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 register pair
#CHECK: kmctr	%r1, %r2, %r4
#CHECK: error: invalid register pair
#CHECK: kmctr	%r2, %r1, %r4
#CHECK: error: invalid register pair
#CHECK: kmctr	%r2, %r4, %r1

	kmctr	%r1, %r2, %r4
	kmctr	%r2, %r1, %r4
	kmctr	%r2, %r4, %r1

#CHECK: error: invalid register pair
#CHECK: kmf	%r1, %r2
#CHECK: error: invalid register pair
#CHECK: kmf	%r2, %r1

	kmf	%r1, %r2
	kmf	%r2, %r1

#CHECK: error: invalid register pair
#CHECK: kmo	%r1, %r2
#CHECK: error: invalid register pair
#CHECK: kmo	%r2, %r1

	kmo	%r1, %r2
	kmo	%r2, %r1

#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: ldxbra	%f0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: ldxbra	%f0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: ldxbra	%f0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: ldxbra	%f0, 16, %f0, 0
#CHECK: error: invalid register pair
#CHECK: ldxbra	%f0, 0, %f2, 0
#CHECK: error: invalid register pair
#CHECK: ldxbra	%f2, 0, %f0, 0

	ldxbra	%f0, 0, %f0, -1
	ldxbra	%f0, 0, %f0, 16
	ldxbra	%f0, -1, %f0, 0
	ldxbra	%f0, 16, %f0, 0
	ldxbra	%f0, 0, %f2, 0
	ldxbra	%f2, 0, %f0, 0

#CHECK: error: invalid operand
#CHECK: ledbra	%f0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: ledbra	%f0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: ledbra	%f0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: ledbra	%f0, 16, %f0, 0

	ledbra	%f0, 0, %f0, -1
	ledbra	%f0, 0, %f0, 16
	ledbra	%f0, -1, %f0, 0
	ledbra	%f0, 16, %f0, 0

#CHECK: error: invalid operand
#CHECK: lexbra	%f0, 0, %f0, -1
#CHECK: error: invalid operand
#CHECK: lexbra	%f0, 0, %f0, 16
#CHECK: error: invalid operand
#CHECK: lexbra	%f0, -1, %f0, 0
#CHECK: error: invalid operand
#CHECK: lexbra	%f0, 16, %f0, 0
#CHECK: error: invalid register pair
#CHECK: lexbra	%f0, 0, %f2, 0
#CHECK: error: invalid register pair
#CHECK: lexbra	%f2, 0, %f0, 0

	lexbra	%f0, 0, %f0, -1
	lexbra	%f0, 0, %f0, 16
	lexbra	%f0, -1, %f0, 0
	lexbra	%f0, 16, %f0, 0
	lexbra	%f0, 0, %f2, 0
	lexbra	%f2, 0, %f0, 0

#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 register pair
#CHECK: lpd	%r1, 0, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: lpd	%r2, 160(%r1,%r15), 160(%r15)
#CHECK: error: invalid operand
#CHECK: lpd	%r2, -1(%r1), 160(%r15)
#CHECK: error: invalid operand
#CHECK: lpd	%r2, 4096(%r1), 160(%r15)
#CHECK: error: invalid operand
#CHECK: lpd	%r2, 0(%r1), -1(%r15)
#CHECK: error: invalid operand
#CHECK: lpd	%r2, 0(%r1), 4096(%r15)

	lpd	%r1, 0, 0
	lpd	%r2, 160(%r1,%r15), 160(%r15)
	lpd	%r2, -1(%r1), 160(%r15)
	lpd	%r2, 4096(%r1), 160(%r15)
	lpd	%r2, 0(%r1), -1(%r15)
	lpd	%r2, 0(%r1), 4096(%r15)

#CHECK: error: invalid register pair
#CHECK: lpdg	%r1, 0, 0
#CHECK: error: invalid use of indexed addressing
#CHECK: lpdg	%r2, 160(%r1,%r15), 160(%r15)
#CHECK: error: invalid operand
#CHECK: lpdg	%r2, -1(%r1), 160(%r15)
#CHECK: error: invalid operand
#CHECK: lpdg	%r2, 4096(%r1), 160(%r15)
#CHECK: error: invalid operand
#CHECK: lpdg	%r2, 0(%r1), -1(%r15)
#CHECK: error: invalid operand
#CHECK: lpdg	%r2, 0(%r1), 4096(%r15)

	lpdg	%r1, 0, 0
	lpdg	%r2, 160(%r1,%r15), 160(%r15)
	lpdg	%r2, -1(%r1), 160(%r15)
	lpdg	%r2, 4096(%r1), 160(%r15)
	lpdg	%r2, 0(%r1), -1(%r15)
	lpdg	%r2, 0(%r1), 4096(%r15)

#CHECK: error: invalid operand
#CHECK: mdtra	%f0, %f0, %f0, -1
#CHECK: error: invalid operand
#CHECK: mdtra	%f0, %f0, %f0, 16

	mdtra	%f0, %f0, %f0, -1
	mdtra	%f0, %f0, %f0, 16

#CHECK: error: invalid operand
#CHECK: mxtra	%f0, %f0, %f0, -1
#CHECK: error: invalid operand
#CHECK: mxtra	%f0, %f0, %f0, 16
#CHECK: error: invalid register pair
#CHECK: mxtra	%f0, %f0, %f2, 0
#CHECK: error: invalid register pair
#CHECK: mxtra	%f0, %f2, %f0, 0
#CHECK: error: invalid register pair
#CHECK: mxtra	%f2, %f0, %f0, 0

	mxtra	%f0, %f0, %f0, -1
	mxtra	%f0, %f0, %f0, 16
	mxtra	%f0, %f0, %f2, 0
	mxtra	%f0, %f2, %f0, 0
	mxtra	%f2, %f0, %f0, 0

#CHECK: error: instruction requires: execution-hint
#CHECK: niai	0, 0

	niai	0, 0

#CHECK: error: instruction requires: transactional-execution
#CHECK: ntstg	%r0, 524287(%r1,%r15)

	ntstg	%r0, 524287(%r1,%r15)

#CHECK: error: instruction requires: processor-assist
#CHECK: ppa	%r4, %r6, 7

	ppa	%r4, %r6, 7

#CHECK: error: instruction requires: miscellaneous-extensions
#CHECK: risbgn	%r1, %r2, 0, 0, 0

	risbgn	%r1, %r2, 0, 0, 0

#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: sdtra	%f0, %f0, %f0, -1
#CHECK: error: invalid operand
#CHECK: sdtra	%f0, %f0, %f0, 16

	sdtra	%f0, %f0, %f0, -1
	sdtra	%f0, %f0, %f0, 16

#CHECK: error: invalid operand
#CHECK: slak	%r0,%r0,-524289
#CHECK: error: invalid operand
#CHECK: slak	%r0,%r0,524288
#CHECK: error: %r0 used in an address
#CHECK: slak	%r0,%r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: slak	%r0,%r0,0(%r1,%r2)

	slak	%r0,%r0,-524289
	slak	%r0,%r0,524288
	slak	%r0,%r0,0(%r0)
	slak	%r0,%r0,0(%r1,%r2)

#CHECK: error: invalid operand
#CHECK: sllk	%r0,%r0,-524289
#CHECK: error: invalid operand
#CHECK: sllk	%r0,%r0,524288
#CHECK: error: %r0 used in an address
#CHECK: sllk	%r0,%r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: sllk	%r0,%r0,0(%r1,%r2)

	sllk	%r0,%r0,-524289
	sllk	%r0,%r0,524288
	sllk	%r0,%r0,0(%r0)
	sllk	%r0,%r0,0(%r1,%r2)

#CHECK: error: invalid operand
#CHECK: srak	%r0,%r0,-524289
#CHECK: error: invalid operand
#CHECK: srak	%r0,%r0,524288
#CHECK: error: %r0 used in an address
#CHECK: srak	%r0,%r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: srak	%r0,%r0,0(%r1,%r2)

	srak	%r0,%r0,-524289
	srak	%r0,%r0,524288
	srak	%r0,%r0,0(%r0)
	srak	%r0,%r0,0(%r1,%r2)

#CHECK: error: invalid operand
#CHECK: srlk	%r0,%r0,-524289
#CHECK: error: invalid operand
#CHECK: srlk	%r0,%r0,524288
#CHECK: error: %r0 used in an address
#CHECK: srlk	%r0,%r0,0(%r0)
#CHECK: error: invalid use of indexed addressing
#CHECK: srlk	%r0,%r0,0(%r1,%r2)

	srlk	%r0,%r0,-524289
	srlk	%r0,%r0,524288
	srlk	%r0,%r0,0(%r0)
	srlk	%r0,%r0,0(%r1,%r2)

#CHECK: error: invalid operand
#CHECK: srnmb	-1
#CHECK: error: invalid operand
#CHECK: srnmb	4096
#CHECK: error: invalid use of indexed addressing
#CHECK: srnmb	0(%r1,%r2)

	srnmb	-1
	srnmb	4096
	srnmb	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: stfh	%r0, -524289
#CHECK: error: invalid operand
#CHECK: stfh	%r0, 524288

	stfh	%r0, -524289
	stfh	%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: 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

#CHECK: error: invalid operand
#CHECK: sxtra	%f0, %f0, %f0, -1
#CHECK: error: invalid operand
#CHECK: sxtra	%f0, %f0, %f0, 16
#CHECK: error: invalid register pair
#CHECK: sxtra	%f0, %f0, %f2, 0
#CHECK: error: invalid register pair
#CHECK: sxtra	%f0, %f2, %f0, 0
#CHECK: error: invalid register pair
#CHECK: sxtra	%f2, %f0, %f0, 0

	sxtra	%f0, %f0, %f0, -1
	sxtra	%f0, %f0, %f0, 16
	sxtra	%f0, %f0, %f2, 0
	sxtra	%f0, %f2, %f0, 0
	sxtra	%f2, %f0, %f0, 0

#CHECK: error: instruction requires: transactional-execution
#CHECK: tabort	4095(%r1)

	tabort	4095(%r1)

#CHECK: error: instruction requires: transactional-execution
#CHECK: tbegin	4095(%r1), 42

	tbegin	4095(%r1), 42

#CHECK: error: instruction requires: transactional-execution
#CHECK: tbeginc	4095(%r1), 42

	tbeginc	4095(%r1), 42

#CHECK: error: instruction requires: transactional-execution
#CHECK: tend

	tend

