.text
	.type _start,@function
_start:

	pmpyshr2 r4 = r5, r6, 0
	pmpyshr2.u r4 = r5, r6, 16

	pmpy2.r r4 = r5, r6
	pmpy2.l r4 = r5, r6

	mix1.r r4 = r5, r6
	mix2.r r4 = r5, r6
	mix4.r r4 = r5, r6
	mix1.l r4 = r5, r6
	mix2.l r4 = r5, r6
	mix4.l r4 = r5, r6

	pack2.uss r4 = r5, r6
	pack2.sss r4 = r5, r6
	pack4.sss r4 = r5, r6

	unpack1.h r4 = r5, r6
	unpack2.h r4 = r5, r6
	unpack4.h r4 = r5, r6
	unpack1.l r4 = r5, r6
	unpack2.l r4 = r5, r6
	unpack4.l r4 = r5, r6

	pmin1.u r4 = r5, r6
	pmax1.u r4 = r5, r6

	pmin2 r4 = r5, r6
	pmax2 r4 = r5, r6

	psad1 r4 = r5, r6

	mux1 r4 = r5, @rev
	mux1 r4 = r5, @mix
	mux1 r4 = r5, @shuf
	mux1 r4 = r5, @alt
	mux1 r4 = r5, @brcst

	mux2 r4 = r5, 0
	mux2 r4 = r5, 0xff
	mux2 r4 = r5, 0xaa

	pshr2 r4 = r5, r6
	pshr2 r4 = r5, 0
	pshr2 r4 = r5, 8
	pshr2 r4 = r5, 31

	pshr4 r4 = r5, r6
	pshr4 r4 = r5, 0
	pshr4 r4 = r5, 8
	pshr4 r4 = r5, 31

	pshr2.u r4 = r5, r6
	pshr2.u r4 = r5, 0
	pshr2.u r4 = r5, 8
	pshr2.u r4 = r5, 31

	pshr4.u r4 = r5, r6
	pshr4.u r4 = r5, 0
	pshr4.u r4 = r5, 8
	pshr4.u r4 = r5, 31

	shr r4 = r5, r6
	shr.u r4 = r5, r6

	pshl2 r4 = r5, r6
	pshl2 r4 = r5, 0
	pshl2 r4 = r5, 8
	pshl2 r4 = r5, 31

	pshl4 r4 = r5, r6
	pshl4 r4 = r5, 0
	pshl4 r4 = r5, 8
	pshl4 r4 = r5, 31

	shl r4 = r5, r6

	popcnt r4 = r5

	shrp r4 = r5, r6, 0
	shrp r4 = r5, r6, 12
	shrp r4 = r5, r6, 63

	extr r4 = r5, 0, 16
	extr r4 = r5, 0, 63
	extr r4 = r5, 10, 40
	
	extr.u r4 = r5, 0, 16
	extr.u r4 = r5, 0, 63
	extr.u r4 = r5, 10, 40
	
	dep.z r4 = r5, 0, 16
	dep.z r4 = r5, 0, 63
	dep.z r4 = r5, 10, 40
	dep.z r4 = 0, 0, 16
	dep.z r4 = 127, 0, 63
	dep.z r4 = -128, 5, 50
	dep.z r4 = 0x55, 10, 40

	dep r4 = 0, r5, 0, 16
	dep r4 = -1, r5, 0, 63
// Insert padding NOPs to force the same template selection as IAS.
	nop.m 0
	nop.f 0
	dep r4 = r5, r6, 10, 7

	movl r4 = 0
	movl r4 = 0xffffffffffffffff
	movl r4 = 0x1234567890abcdef

	break.i 0
	break.i 0x1fffff

	nop.i 0
	nop.i 0x1fffff

	chk.s.i r4, _start

	mov r4 = b0
	mov b0 = r4

	mov pr = r4, 0
	mov pr = r4, 0x1234
	mov pr = r4, 0x1ffff

	mov pr.rot = 0
// ??? This was originally 0x3ffffff, but that generates an assembler warning
// that the testsuite infrastructure isn't set up to ignore.
	mov pr.rot = 0x3ff0000
	mov pr.rot = -0x4000000

	zxt1 r4 = r5
	zxt2 r4 = r5
	zxt4 r4 = r5

	sxt1 r4 = r5
	sxt2 r4 = r5
	sxt4 r4 = r5

	czx1.l r4 = r5
	czx2.l r4 = r5
	czx1.r r4 = r5
	czx2.r r4 = r5

	tbit.z p2, p3 = r4, 0
	tbit.z.unc p2, p3 = r4, 1
	tbit.z.and p2, p3 = r4, 2
	tbit.z.or p2, p3 = r4, 3
	tbit.z.or.andcm p2, p3 = r4, 4
	tbit.z.orcm p2, p3 = r4, 5
	tbit.z.andcm p2, p3 = r4, 6
	tbit.z.and.orcm p2, p3 = r4, 7
	tbit.nz p2, p3 = r4, 8
	tbit.nz.unc p2, p3 = r4, 9
	tbit.nz.and p2, p3 = r4, 10
	tbit.nz.or p2, p3 = r4, 11
	tbit.nz.or.andcm p2, p3 = r4, 12
	tbit.nz.orcm p2, p3 = r4, 13
	tbit.nz.andcm p2, p3 = r4, 14
	tbit.nz.and.orcm p2, p3 = r4, 15

	tnat.z p2, p3 = r4
	tnat.z.unc p2, p3 = r4
	tnat.z.and p2, p3 = r4
	tnat.z.or p2, p3 = r4
	tnat.z.or.andcm p2, p3 = r4
	tnat.z.orcm p2, p3 = r4
	tnat.z.andcm p2, p3 = r4
	tnat.z.and.orcm p2, p3 = r4
	tnat.nz p2, p3 = r4
	tnat.nz.unc p2, p3 = r4
	tnat.nz.and p2, p3 = r4
	tnat.nz.or p2, p3 = r4
	tnat.nz.or.andcm p2, p3 = r4
	tnat.nz.orcm p2, p3 = r4
	tnat.nz.andcm p2, p3 = r4
	tnat.nz.and.orcm p2, p3 = r4

	mov b3 = r4, .L1
	mov.imp b3 = r4, .L1
.space 240
.L1:
	mov.sptk b3 = r4, .L2
	mov.sptk.imp b3 = r4, .L2
.space 240
.L2:
	mov.dptk b3 = r4, .L3
	mov.dptk.imp b3 = r4, .L3
.space 240
.L3:

	mov.ret b3 = r4, .L4
	mov.ret.imp b3 = r4, .L4
.space 240
.L4:
	mov.ret.sptk b3 = r4, .L5
	mov.ret.sptk.imp b3 = r4, .L5
.space 240
.L5:
	mov.ret.dptk b3 = r4, .L6
	mov.ret.dptk.imp b3 = r4, .L6
.space 240
.L6:

	# instructions added by SDM2.1:

	hint @pause
	hint.i 0
	hint.i @pause
	hint.i 0x1fffff
(p7)	hint @pause
(p7)	hint.i 0
(p7)	hint.i @pause
(p7)	hint.i 0x1fffff
 (p7)	hint @pause
 (p7)	hint.i 0
 (p7)	hint.i @pause
 (p7)	hint.i 0x1fffff

	# instructions added by SDM2.2:

	tf.z p2, p3 = 39
	tf.z.unc p2, p3 = 39
	tf.z.and p2, p3 = 39
	tf.z.or p2, p3 = 39
	tf.z.or.andcm p2, p3 = 39
	tf.z.orcm p2, p3 = 39
	tf.z.andcm p2, p3 = 39
	tf.z.and.orcm p2, p3 = 39
	tf.nz p2, p3 = 39
	tf.nz.unc p2, p3 = 39
	tf.nz.and p2, p3 = 39
	tf.nz.or p2, p3 = 39
	tf.nz.or.andcm p2, p3 = 39
	tf.nz.orcm p2, p3 = 39
	tf.nz.andcm p2, p3 = 39
	tf.nz.and.orcm p2, p3 = 39

(p7)	tf.z p2, p3 = 39
(p7)	tf.z.unc p2, p3 = 39
(p7)	tf.z.and p2, p3 = 39
(p7)	tf.z.or p2, p3 = 39
(p7)	tf.z.or.andcm p2, p3 = 39
(p7)	tf.z.orcm p2, p3 = 39
(p7)	tf.z.andcm p2, p3 = 39
(p7)	tf.z.and.orcm p2, p3 = 39
(p7)	tf.nz p2, p3 = 39
(p7)	tf.nz.unc p2, p3 = 39
(p7)	tf.nz.and p2, p3 = 39
(p7)	tf.nz.or p2, p3 = 39
(p7)	tf.nz.or.andcm p2, p3 = 39
(p7)	tf.nz.orcm p2, p3 = 39
(p7)	tf.nz.andcm p2, p3 = 39
(p7)	tf.nz.and.orcm p2, p3 = 39
