--- /dev/null
+# 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-fpu.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