<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;"># MDMX .OB op tests.
# mach:	 mips64 sb1
# as:		-mabi=eabi
# as(mips64):	-mabi=eabi -mdmx
# ld:		-N -Ttext=0x80010000
# output:	*\\npass\\n

	.include "testutils.inc"
	.include "utils-mdmx.inc"

	setup

	.set noreorder

	.ent DIAG
DIAG:

	enable_mdmx


	###
	### Non-accumulator, non-CC-using .ob format ops.
	###
	### Key: v = vector
	###      ev = vector of single element
	###      cv = vector of constant.
	###


	writemsg "add.ob (v)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	add.ob	$f10, $f8, $f9
	ck_ob	$f10, 0x7799bbddffffffff

	writemsg "add.ob (ev)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	add.ob	$f10, $f8, $f9[6]
	ck_ob	$f10, 0x8899aabbccddeeff

	writemsg "add.ob (cv)"
	ld_ob	$f8, 0x1122334455667788
	add.ob	$f10, $f8, 0x10
	ck_ob	$f10, 0x2132435465768798


	writemsg "alni.ob"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	alni.ob	$f10, $f8, $f9, 3
	ck_ob	$f10, 0x4455667788667788


	writemsg "alnv.ob"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	li	$4, 5
	alnv.ob	$f10, $f8, $f9, $4
	ck_ob	$f10, 0x66778866778899aa


	writemsg "and.ob (v)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	and.ob	$f10, $f8, $f9
	ck_ob	$f10, 0x0022000000224488

	writemsg "and.ob (ev)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	and.ob	$f10, $f8, $f9[4]
	ck_ob	$f10, 0x1100110011001188

	writemsg "and.ob (cv)"
	ld_ob	$f8, 0x1122334455667788
	and.ob	$f10, $f8, 0x1e
	ck_ob	$f10, 0x1002120414061608


	writemsg "max.ob (v)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	max.ob	$f10, $f8, $f9
	ck_ob	$f10, 0x66778899aabbccdd

	writemsg "max.ob (ev)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	max.ob	$f10, $f8, $f9[7]
	ck_ob	$f10, 0x6666666666667788

	writemsg "max.ob (cv)"
	ld_ob	$f8, 0x1122334455667788
	max.ob	$f10, $f8, 0x15
	ck_ob	$f10, 0x1522334455667788


	writemsg "min.ob (v)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	min.ob	$f10, $f8, $f9
	ck_ob	$f10, 0x1122334455667788

	writemsg "min.ob (ev)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	min.ob	$f10, $f8, $f9[7]
	ck_ob	$f10, 0x1122334455666666

	writemsg "min.ob (cv)"
	ld_ob	$f8, 0x1122334455667788
	min.ob	$f10, $f8, 0x15
	ck_ob	$f10, 0x1115151515151515


	writemsg "mul.ob (v)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x0001020304050607
	mul.ob	$f10, $f8, $f9
	ck_ob	$f10, 0x002266ccffffffff

	writemsg "mul.ob (ev)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x0001020304050607
	mul.ob	$f10, $f8, $f9[4]
	ck_ob	$f10, 0x336699ccffffffff

	writemsg "mul.ob (cv)"
	ld_ob	$f8, 0x1122334455667788
	mul.ob	$f10, $f8, 2
	ck_ob	$f10, 0x22446688aacceeff


	writemsg "nor.ob (v)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	nor.ob	$f10, $f8, $f9
	ck_ob	$f10, 0x8888442200000022

	writemsg "nor.ob (ev)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	nor.ob	$f10, $f8, $f9[6]
	ck_ob	$f10, 0x8888888888888800

	writemsg "nor.ob (cv)"
	ld_ob	$f8, 0x1122334455667788
	nor.ob	$f10, $f8, 0x08
	ck_ob	$f10, 0xe6d5c4b3a2918077


	writemsg "or.ob (v)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	or.ob	$f10, $f8, $f9
	ck_ob	$f10, 0x7777bbddffffffdd

	writemsg "or.ob (ev)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	or.ob	$f10, $f8, $f9[6]
	ck_ob	$f10, 0x77777777777777ff

	writemsg "or.ob (cv)"
	ld_ob	$f8, 0x1122334455667788
	or.ob	$f10, $f8, 0x08
	ck_ob	$f10, 0x192a3b4c5d6e7f88


	writemsg "shfl.mixh.ob"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	shfl.mixh.ob	$f10, $f8, $f9
	ck_ob	$f10, 0x1166227733884499


	writemsg "shfl.mixl.ob"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	shfl.mixl.ob	$f10, $f8, $f9
	ck_ob	$f10, 0x55aa66bb77cc88dd


	writemsg "shfl.pach.ob"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	shfl.pach.ob	$f10, $f8, $f9
	ck_ob	$f10, 0x113355776688aacc


	writemsg "shfl.upsl.ob"
	ld_ob	$f8, 0x1122334455667788
	shfl.upsl.ob	$f10, $f8, $f8
	ck_ob	$f10, 0x005500660077ff88


	writemsg "sll.ob (v)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x0001020304050607
	sll.ob	$f10, $f8, $f9
	ck_ob	$f10, 0x1144cc2050c0c000

	writemsg "sll.ob (ev)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x0001020304050607
	sll.ob	$f10, $f8, $f9[3]
	ck_ob	$f10, 0x1020304050607080

	writemsg "sll.ob (cv)"
	ld_ob	$f8, 0x1122334455667788
	sll.ob	$f10, $f8, 1
	ck_ob	$f10, 0x22446688aaccee10


	writemsg "srl.ob (v)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x0001020304050607
	srl.ob	$f10, $f8, $f9
	ck_ob	$f10, 0x11110c0805030101

	writemsg "srl.ob (ev)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x0001020304050607
	srl.ob	$f10, $f8, $f9[3]
	ck_ob	$f10, 0x0102030405060708

	writemsg "srl.ob (cv)"
	ld_ob	$f8, 0x1122334455667788
	srl.ob	$f10, $f8, 1
	ck_ob	$f10, 0x081119222a333b44


	writemsg "sub.ob (v)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x0001020304050607
	sub.ob	$f10, $f8, $f9
	ck_ob	$f10, 0x1121314151617181

	writemsg "sub.ob (ev)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	sub.ob	$f10, $f8, $f9[7]
	ck_ob	$f10, 0x0000000000001122

	writemsg "sub.ob (cv)"
	ld_ob	$f8, 0x1122334455667788
	sub.ob	$f10, $f8, 0x10
	ck_ob	$f10, 0x0112233445566778


	writemsg "xor.ob (v)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	xor.ob	$f10, $f8, $f9
	ck_ob	$f10, 0x7755bbddffddbb55

	writemsg "xor.ob (ev)"
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	xor.ob	$f10, $f8, $f9[6]
	ck_ob	$f10, 0x66554433221100ff

	writemsg "xor.ob (cv)"
	ld_ob	$f8, 0x1122334455667788
	xor.ob	$f10, $f8, 0x08
	ck_ob	$f10, 0x192a3b4c5d6e7f80


	###
	### Accumulator .ob format ops (in order: rd/wr, math, scale/round)
	###
	### Key: v = vector
	###      ev = vector of single element
	###      cv = vector of constant.
	###


	writemsg "wacl.ob / rac[hml].ob"
	ld_ob	$f8, 0x8001028304850687
	ld_ob	$f9, 0x1011121314151617
	wacl.ob	$f8, $f9
	ck_acc_ob 0xff0000ff00ff00ff, 0x8001028304850687, 0x1011121314151617

	# Note: relies on data left in accumulator by previous test.
	writemsg "wach.ob / rac[hml].ob"
	ld_ob	$f8, 0x2021222324252627
	wach.ob	$f8
	ck_acc_ob 0x2021222324252627, 0x8001028304850687, 0x1011121314151617


	writemsg "adda.ob (v)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	adda.ob	$f8, $f9
	ck_acc_ob 0x0001020304050607, 0x0000000000010101, 0x7799bbddff214365

	writemsg "adda.ob (ev)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	adda.ob	$f8, $f9[2]
	ck_acc_ob 0x0001020304050607, 0x0000000001010101, 0xccddeeff10213243

	writemsg "adda.ob (cv)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	adda.ob	$f8, 0x1f
	ck_acc_ob 0x0001020304050607, 0x0000000000000000, 0x30415263748596a7


	writemsg "addl.ob (v)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	addl.ob	$f8, $f9
	ck_acc_ob 0x0000000000000000, 0x0000000000010101, 0x7799bbddff214365

	writemsg "addl.ob (ev)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	addl.ob	$f8, $f9[2]
	ck_acc_ob 0x0000000000000000, 0x0000000001010101, 0xccddeeff10213243

	writemsg "addl.ob (cv)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	addl.ob	$f8, 0x1f
	ck_acc_ob 0x0000000000000000, 0x0000000000000000, 0x30415263748596a7


	writemsg "mula.ob (v)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	mula.ob	$f8, $f9
	ck_acc_ob 0x0001020304050607, 0x060f1b28384a5e75, 0xc6ce18a47282d468

	writemsg "mula.ob (ev)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	mula.ob	$f8, $f9[2]
	ck_acc_ob 0x0001020304050607, 0x0c1825313e4a5663, 0x6bd641ac1782ed58

	writemsg "mula.ob (cv)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	mula.ob	$f8, 0x1f
	ck_acc_ob 0x0001020304050607, 0x020406080a0c0e10, 0x0f1e2d3c4b5a6978


	writemsg "mull.ob (v)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	mull.ob	$f8, $f9
	ck_acc_ob 0x0000000000000000, 0x060f1b28384a5e75, 0xc6ce18a47282d468

	writemsg "mull.ob (ev)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	mull.ob	$f8, $f9[2]
	ck_acc_ob 0x0000000000000000, 0x0c1825313e4a5663, 0x6bd641ac1782ed58

	writemsg "mull.ob (cv)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	mull.ob	$f8, 0x1f
	ck_acc_ob 0x0000000000000000, 0x020406080a0c0e10, 0x0f1e2d3c4b5a6978


	writemsg "muls.ob (v)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	muls.ob	$f8, $f9
	ck_acc_ob 0xff00010203040506, 0xf9f0e4d7c7b5a18a, 0x3a32e85c8e7e2c98

	writemsg "muls.ob (ev)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	muls.ob	$f8, $f9[2]
	ck_acc_ob 0xff00010203040506, 0xf3e7dacec1b5a99c, 0x952abf54e97e13a8

	writemsg "muls.ob (cv)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	muls.ob	$f8, 0x1f
	ck_acc_ob 0xff00010203040506, 0xfdfbf9f7f5f3f1ef, 0xf1e2d3c4b5a69788


	writemsg "mulsl.ob (v)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	mulsl.ob $f8, $f9
	ck_acc_ob 0xffffffffffffffff, 0xf9f0e4d7c7b5a18a, 0x3a32e85c8e7e2c98

	writemsg "mulsl.ob (ev)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	mulsl.ob $f8, $f9[2]
	ck_acc_ob 0xffffffffffffffff, 0xf3e7dacec1b5a99c, 0x952abf54e97e13a8

	writemsg "mulsl.ob (cv)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	mulsl.ob $f8, 0x1f
	ck_acc_ob 0xffffffffffffffff, 0xfdfbf9f7f5f3f1ef, 0xf1e2d3c4b5a69788


	writemsg "suba.ob (v)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	suba.ob	$f8, $f9
	ck_acc_ob 0xff00010203040506, 0xffffffffffffffff, 0xabababababababab

	writemsg "suba.ob (ev)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	suba.ob	$f8, $f9[2]
	ck_acc_ob 0xff00010203040506, 0xffffffffffffffff, 0x566778899aabbccd

	writemsg "suba.ob (cv)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	suba.ob	$f8, 0x1f
	ck_acc_ob 0xff01020304050607, 0xff00000000000000, 0xf203142536475869


	writemsg "subl.ob (v)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	subl.ob	$f8, $f9
	ck_acc_ob 0xffffffffffffffff, 0xffffffffffffffff, 0xabababababababab

	writemsg "subl.ob (ev)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	ld_ob	$f9, 0x66778899aabbccdd
	subl.ob	$f8, $f9[2]
	ck_acc_ob 0xffffffffffffffff, 0xffffffffffffffff, 0x566778899aabbccd

	writemsg "subl.ob (cv)"
	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
	ld_ob	$f8, 0x1122334455667788
	subl.ob	$f8, 0x1f
	ck_acc_ob 0xff00000000000000, 0xff00000000000000, 0xf203142536475869


	writemsg "rnau.ob (v)"
	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
	ld_ob	$f8, 0x0001020304050607
	rnau.ob	$f9, $f8
	ck_ob	$f9, 0x4021110940201008

	writemsg "rnau.ob (ev)"
	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
	ld_ob	$f8, 0x0001020304050607
	rnau.ob	$f9, $f8[4]
	ck_ob	$f9, 0x080809097f7f8080

	writemsg "rnau.ob (cv)"
	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
	rnau.ob	$f9, 2
	ck_ob	$f9, 0x10111112feffffff


	writemsg "rneu.ob (v)"
	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
	ld_ob	$f8, 0x0001020304050607
	rneu.ob	$f9, $f8
	ck_ob	$f9, 0x4021110940201008

	writemsg "rneu.ob (ev)"
	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
	ld_ob	$f8, 0x0001020304050607
	rneu.ob	$f9, $f8[4]
	ck_ob	$f9, 0x080808097f7f8080

	writemsg "rneu.ob (cv)"
	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
	rneu.ob	$f9, 2
	ck_ob	$f9, 0x10101112fefeffff


	writemsg "rzu.ob (v)"
	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
	ld_ob	$f8, 0x0001020304050607
	rzu.ob	$f9, $f8
	ck_ob	$f9, 0x402111083f1f0f07

	writemsg "rzu.ob (ev)"
	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
	ld_ob	$f8, 0x0001020304050607
	rzu.ob	$f9, $f8[4]
	ck_ob	$f9, 0x080808087f7f7f7f

	writemsg "rzu.ob (cv)"
	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
	rzu.ob	$f9, 2
	ck_ob	$f9, 0x10101111fefeffff


	###
	### CC-using .ob format ops.
	###
	### Key: v = vector
	###      ev = vector of single element
	###      cv = vector of constant.
	###


	writemsg "c.eq.ob (v)"
	ld_ob	$f8, 0x0001010202030304
	ld_ob	$f9, 0x0101020203030404
	clr_fp_cc 0xff
	c.eq.ob	$f8, $f9
	ck_fp_cc 0x55

	writemsg "c.eq.ob (ev)"
	ld_ob	$f8, 0x0001010202030304
	ld_ob	$f9, 0x0101020203030404
	clr_fp_cc 0xff
	c.eq.ob	$f8, $f9[5]
	ck_fp_cc 0x18

	writemsg "c.eq.ob (cv)"
	ld_ob	$f8, 0x0001010202030304
	clr_fp_cc 0xff
	c.eq.ob	$f8, 0x03
	ck_fp_cc 0x06


	writemsg "c.le.ob (v)"
	ld_ob	$f8, 0x0001010202030304
	ld_ob	$f9, 0x0101020203030404
	clr_fp_cc 0xff
	c.le.ob	$f8, $f9
	ck_fp_cc 0xff

	writemsg "c.le.ob (ev)"
	ld_ob	$f8, 0x0001010202030304
	ld_ob	$f9, 0x0101020203030404
	clr_fp_cc 0xff
	c.le.ob	$f8, $f9[5]
	ck_fp_cc 0xf8

	writemsg "c.le.ob (cv)"
	ld_ob	$f8, 0x0001010202030304
	clr_fp_cc 0xff
	c.le.ob	$f8, 0x03
	ck_fp_cc 0xfe


	writemsg "c.lt.ob (v)"
	ld_ob	$f8, 0x0001010202030304
	ld_ob	$f9, 0x0101020203030404
	clr_fp_cc 0xff
	c.lt.ob	$f8, $f9
	ck_fp_cc 0xaa

	writemsg "c.lt.ob (ev)"
	ld_ob	$f8, 0x0001010202030304
	ld_ob	$f9, 0x0101020203030404
	clr_fp_cc 0xff
	c.lt.ob	$f8, $f9[5]
	ck_fp_cc 0xe0

	writemsg "c.lt.ob (cv)"
	ld_ob	$f8, 0x0001010202030304
	clr_fp_cc 0xff
	c.lt.ob	$f8, 0x03
	ck_fp_cc 0xf8


	writemsg "pickf.ob (v)"
	ld_ob	$f8, 0x0001020304050607
	ld_ob	$f9, 0x08090a0b0c0d0e0f
	clrset_fp_cc 0xff, 0xaa
	pickf.ob $f10, $f8, $f9
	ck_ob	$f10, 0x08010a030c050e07

	writemsg "pickf.ob (ev)"
	ld_ob	$f8, 0x0001020304050607
	ld_ob	$f9, 0x08090a0b0c0d0e0f
	clrset_fp_cc 0xff, 0xaa
	pickf.ob $f10, $f8, $f9[4]
	ck_ob	$f10, 0x0b010b030b050b07

	writemsg "pickf.ob (cv)"
	ld_ob	$f8, 0x0001020304050607
	clrset_fp_cc 0xff, 0xaa
	pickf.ob $f10, $f8, 0x10
	ck_ob	$f10, 0x1001100310051007


	writemsg "pickt.ob (v)"
	ld_ob	$f8, 0x0001020304050607
	ld_ob	$f9, 0x08090a0b0c0d0e0f
	clrset_fp_cc 0xff, 0xaa
	pickt.ob $f10, $f8, $f9
	ck_ob	$f10, 0x0009020b040d060f

	writemsg "pickt.ob (ev)"
	ld_ob	$f8, 0x0001020304050607
	ld_ob	$f9, 0x08090a0b0c0d0e0f
	clrset_fp_cc 0xff, 0xaa
	pickt.ob $f10, $f8, $f9[5]
	ck_ob	$f10, 0x000a020a040a060a

	writemsg "pickt.ob (cv)"
	ld_ob	$f8, 0x0001020304050607
	clrset_fp_cc 0xff, 0xaa
	pickt.ob $f10, $f8, 0x10
	ck_ob	$f10, 0x0010021004100610


	pass

	.end DIAG
</pre></body></html>