Home | History | Annotate | Line # | Download | only in mips
mdmx-ob.s revision 1.1
      1 # MDMX .OB op tests.
      2 # mach:	 mips64 sb1
      3 # as:		-mabi=eabi
      4 # as(mips64):	-mabi=eabi -mdmx
      5 # ld:		-N -Ttext=0x80010000
      6 # output:	*\\npass\\n
      7 
      8 	.include "testutils.inc"
      9 	.include "utils-mdmx.inc"
     10 
     11 	setup
     12 
     13 	.set noreorder
     14 
     15 	.ent DIAG
     16 DIAG:
     17 
     18 	enable_mdmx
     19 
     20 
     21 	###
     22 	### Non-accumulator, non-CC-using .ob format ops.
     23 	###
     24 	### Key: v = vector
     25 	###      ev = vector of single element
     26 	###      cv = vector of constant.
     27 	###
     28 
     29 
     30 	writemsg "add.ob (v)"
     31 	ld_ob	$f8, 0x1122334455667788
     32 	ld_ob	$f9, 0x66778899aabbccdd
     33 	add.ob	$f10, $f8, $f9
     34 	ck_ob	$f10, 0x7799bbddffffffff
     35 
     36 	writemsg "add.ob (ev)"
     37 	ld_ob	$f8, 0x1122334455667788
     38 	ld_ob	$f9, 0x66778899aabbccdd
     39 	add.ob	$f10, $f8, $f9[6]
     40 	ck_ob	$f10, 0x8899aabbccddeeff
     41 
     42 	writemsg "add.ob (cv)"
     43 	ld_ob	$f8, 0x1122334455667788
     44 	add.ob	$f10, $f8, 0x10
     45 	ck_ob	$f10, 0x2132435465768798
     46 
     47 
     48 	writemsg "alni.ob"
     49 	ld_ob	$f8, 0x1122334455667788
     50 	ld_ob	$f9, 0x66778899aabbccdd
     51 	alni.ob	$f10, $f8, $f9, 3
     52 	ck_ob	$f10, 0x4455667788667788
     53 
     54 
     55 	writemsg "alnv.ob"
     56 	ld_ob	$f8, 0x1122334455667788
     57 	ld_ob	$f9, 0x66778899aabbccdd
     58 	li	$4, 5
     59 	alnv.ob	$f10, $f8, $f9, $4
     60 	ck_ob	$f10, 0x66778866778899aa
     61 
     62 
     63 	writemsg "and.ob (v)"
     64 	ld_ob	$f8, 0x1122334455667788
     65 	ld_ob	$f9, 0x66778899aabbccdd
     66 	and.ob	$f10, $f8, $f9
     67 	ck_ob	$f10, 0x0022000000224488
     68 
     69 	writemsg "and.ob (ev)"
     70 	ld_ob	$f8, 0x1122334455667788
     71 	ld_ob	$f9, 0x66778899aabbccdd
     72 	and.ob	$f10, $f8, $f9[4]
     73 	ck_ob	$f10, 0x1100110011001188
     74 
     75 	writemsg "and.ob (cv)"
     76 	ld_ob	$f8, 0x1122334455667788
     77 	and.ob	$f10, $f8, 0x1e
     78 	ck_ob	$f10, 0x1002120414061608
     79 
     80 
     81 	writemsg "max.ob (v)"
     82 	ld_ob	$f8, 0x1122334455667788
     83 	ld_ob	$f9, 0x66778899aabbccdd
     84 	max.ob	$f10, $f8, $f9
     85 	ck_ob	$f10, 0x66778899aabbccdd
     86 
     87 	writemsg "max.ob (ev)"
     88 	ld_ob	$f8, 0x1122334455667788
     89 	ld_ob	$f9, 0x66778899aabbccdd
     90 	max.ob	$f10, $f8, $f9[7]
     91 	ck_ob	$f10, 0x6666666666667788
     92 
     93 	writemsg "max.ob (cv)"
     94 	ld_ob	$f8, 0x1122334455667788
     95 	max.ob	$f10, $f8, 0x15
     96 	ck_ob	$f10, 0x1522334455667788
     97 
     98 
     99 	writemsg "min.ob (v)"
    100 	ld_ob	$f8, 0x1122334455667788
    101 	ld_ob	$f9, 0x66778899aabbccdd
    102 	min.ob	$f10, $f8, $f9
    103 	ck_ob	$f10, 0x1122334455667788
    104 
    105 	writemsg "min.ob (ev)"
    106 	ld_ob	$f8, 0x1122334455667788
    107 	ld_ob	$f9, 0x66778899aabbccdd
    108 	min.ob	$f10, $f8, $f9[7]
    109 	ck_ob	$f10, 0x1122334455666666
    110 
    111 	writemsg "min.ob (cv)"
    112 	ld_ob	$f8, 0x1122334455667788
    113 	min.ob	$f10, $f8, 0x15
    114 	ck_ob	$f10, 0x1115151515151515
    115 
    116 
    117 	writemsg "mul.ob (v)"
    118 	ld_ob	$f8, 0x1122334455667788
    119 	ld_ob	$f9, 0x0001020304050607
    120 	mul.ob	$f10, $f8, $f9
    121 	ck_ob	$f10, 0x002266ccffffffff
    122 
    123 	writemsg "mul.ob (ev)"
    124 	ld_ob	$f8, 0x1122334455667788
    125 	ld_ob	$f9, 0x0001020304050607
    126 	mul.ob	$f10, $f8, $f9[4]
    127 	ck_ob	$f10, 0x336699ccffffffff
    128 
    129 	writemsg "mul.ob (cv)"
    130 	ld_ob	$f8, 0x1122334455667788
    131 	mul.ob	$f10, $f8, 2
    132 	ck_ob	$f10, 0x22446688aacceeff
    133 
    134 
    135 	writemsg "nor.ob (v)"
    136 	ld_ob	$f8, 0x1122334455667788
    137 	ld_ob	$f9, 0x66778899aabbccdd
    138 	nor.ob	$f10, $f8, $f9
    139 	ck_ob	$f10, 0x8888442200000022
    140 
    141 	writemsg "nor.ob (ev)"
    142 	ld_ob	$f8, 0x1122334455667788
    143 	ld_ob	$f9, 0x66778899aabbccdd
    144 	nor.ob	$f10, $f8, $f9[6]
    145 	ck_ob	$f10, 0x8888888888888800
    146 
    147 	writemsg "nor.ob (cv)"
    148 	ld_ob	$f8, 0x1122334455667788
    149 	nor.ob	$f10, $f8, 0x08
    150 	ck_ob	$f10, 0xe6d5c4b3a2918077
    151 
    152 
    153 	writemsg "or.ob (v)"
    154 	ld_ob	$f8, 0x1122334455667788
    155 	ld_ob	$f9, 0x66778899aabbccdd
    156 	or.ob	$f10, $f8, $f9
    157 	ck_ob	$f10, 0x7777bbddffffffdd
    158 
    159 	writemsg "or.ob (ev)"
    160 	ld_ob	$f8, 0x1122334455667788
    161 	ld_ob	$f9, 0x66778899aabbccdd
    162 	or.ob	$f10, $f8, $f9[6]
    163 	ck_ob	$f10, 0x77777777777777ff
    164 
    165 	writemsg "or.ob (cv)"
    166 	ld_ob	$f8, 0x1122334455667788
    167 	or.ob	$f10, $f8, 0x08
    168 	ck_ob	$f10, 0x192a3b4c5d6e7f88
    169 
    170 
    171 	writemsg "shfl.mixh.ob"
    172 	ld_ob	$f8, 0x1122334455667788
    173 	ld_ob	$f9, 0x66778899aabbccdd
    174 	shfl.mixh.ob	$f10, $f8, $f9
    175 	ck_ob	$f10, 0x1166227733884499
    176 
    177 
    178 	writemsg "shfl.mixl.ob"
    179 	ld_ob	$f8, 0x1122334455667788
    180 	ld_ob	$f9, 0x66778899aabbccdd
    181 	shfl.mixl.ob	$f10, $f8, $f9
    182 	ck_ob	$f10, 0x55aa66bb77cc88dd
    183 
    184 
    185 	writemsg "shfl.pach.ob"
    186 	ld_ob	$f8, 0x1122334455667788
    187 	ld_ob	$f9, 0x66778899aabbccdd
    188 	shfl.pach.ob	$f10, $f8, $f9
    189 	ck_ob	$f10, 0x113355776688aacc
    190 
    191 
    192 	writemsg "shfl.upsl.ob"
    193 	ld_ob	$f8, 0x1122334455667788
    194 	shfl.upsl.ob	$f10, $f8, $f8
    195 	ck_ob	$f10, 0x005500660077ff88
    196 
    197 
    198 	writemsg "sll.ob (v)"
    199 	ld_ob	$f8, 0x1122334455667788
    200 	ld_ob	$f9, 0x0001020304050607
    201 	sll.ob	$f10, $f8, $f9
    202 	ck_ob	$f10, 0x1144cc2050c0c000
    203 
    204 	writemsg "sll.ob (ev)"
    205 	ld_ob	$f8, 0x1122334455667788
    206 	ld_ob	$f9, 0x0001020304050607
    207 	sll.ob	$f10, $f8, $f9[3]
    208 	ck_ob	$f10, 0x1020304050607080
    209 
    210 	writemsg "sll.ob (cv)"
    211 	ld_ob	$f8, 0x1122334455667788
    212 	sll.ob	$f10, $f8, 1
    213 	ck_ob	$f10, 0x22446688aaccee10
    214 
    215 
    216 	writemsg "srl.ob (v)"
    217 	ld_ob	$f8, 0x1122334455667788
    218 	ld_ob	$f9, 0x0001020304050607
    219 	srl.ob	$f10, $f8, $f9
    220 	ck_ob	$f10, 0x11110c0805030101
    221 
    222 	writemsg "srl.ob (ev)"
    223 	ld_ob	$f8, 0x1122334455667788
    224 	ld_ob	$f9, 0x0001020304050607
    225 	srl.ob	$f10, $f8, $f9[3]
    226 	ck_ob	$f10, 0x0102030405060708
    227 
    228 	writemsg "srl.ob (cv)"
    229 	ld_ob	$f8, 0x1122334455667788
    230 	srl.ob	$f10, $f8, 1
    231 	ck_ob	$f10, 0x081119222a333b44
    232 
    233 
    234 	writemsg "sub.ob (v)"
    235 	ld_ob	$f8, 0x1122334455667788
    236 	ld_ob	$f9, 0x0001020304050607
    237 	sub.ob	$f10, $f8, $f9
    238 	ck_ob	$f10, 0x1121314151617181
    239 
    240 	writemsg "sub.ob (ev)"
    241 	ld_ob	$f8, 0x1122334455667788
    242 	ld_ob	$f9, 0x66778899aabbccdd
    243 	sub.ob	$f10, $f8, $f9[7]
    244 	ck_ob	$f10, 0x0000000000001122
    245 
    246 	writemsg "sub.ob (cv)"
    247 	ld_ob	$f8, 0x1122334455667788
    248 	sub.ob	$f10, $f8, 0x10
    249 	ck_ob	$f10, 0x0112233445566778
    250 
    251 
    252 	writemsg "xor.ob (v)"
    253 	ld_ob	$f8, 0x1122334455667788
    254 	ld_ob	$f9, 0x66778899aabbccdd
    255 	xor.ob	$f10, $f8, $f9
    256 	ck_ob	$f10, 0x7755bbddffddbb55
    257 
    258 	writemsg "xor.ob (ev)"
    259 	ld_ob	$f8, 0x1122334455667788
    260 	ld_ob	$f9, 0x66778899aabbccdd
    261 	xor.ob	$f10, $f8, $f9[6]
    262 	ck_ob	$f10, 0x66554433221100ff
    263 
    264 	writemsg "xor.ob (cv)"
    265 	ld_ob	$f8, 0x1122334455667788
    266 	xor.ob	$f10, $f8, 0x08
    267 	ck_ob	$f10, 0x192a3b4c5d6e7f80
    268 
    269 
    270 	###
    271 	### Accumulator .ob format ops (in order: rd/wr, math, scale/round)
    272 	###
    273 	### Key: v = vector
    274 	###      ev = vector of single element
    275 	###      cv = vector of constant.
    276 	###
    277 
    278 
    279 	writemsg "wacl.ob / rac[hml].ob"
    280 	ld_ob	$f8, 0x8001028304850687
    281 	ld_ob	$f9, 0x1011121314151617
    282 	wacl.ob	$f8, $f9
    283 	ck_acc_ob 0xff0000ff00ff00ff, 0x8001028304850687, 0x1011121314151617
    284 
    285 	# Note: relies on data left in accumulator by previous test.
    286 	writemsg "wach.ob / rac[hml].ob"
    287 	ld_ob	$f8, 0x2021222324252627
    288 	wach.ob	$f8
    289 	ck_acc_ob 0x2021222324252627, 0x8001028304850687, 0x1011121314151617
    290 
    291 
    292 	writemsg "adda.ob (v)"
    293 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    294 	ld_ob	$f8, 0x1122334455667788
    295 	ld_ob	$f9, 0x66778899aabbccdd
    296 	adda.ob	$f8, $f9
    297 	ck_acc_ob 0x0001020304050607, 0x0000000000010101, 0x7799bbddff214365
    298 
    299 	writemsg "adda.ob (ev)"
    300 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    301 	ld_ob	$f8, 0x1122334455667788
    302 	ld_ob	$f9, 0x66778899aabbccdd
    303 	adda.ob	$f8, $f9[2]
    304 	ck_acc_ob 0x0001020304050607, 0x0000000001010101, 0xccddeeff10213243
    305 
    306 	writemsg "adda.ob (cv)"
    307 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    308 	ld_ob	$f8, 0x1122334455667788
    309 	adda.ob	$f8, 0x1f
    310 	ck_acc_ob 0x0001020304050607, 0x0000000000000000, 0x30415263748596a7
    311 
    312 
    313 	writemsg "addl.ob (v)"
    314 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    315 	ld_ob	$f8, 0x1122334455667788
    316 	ld_ob	$f9, 0x66778899aabbccdd
    317 	addl.ob	$f8, $f9
    318 	ck_acc_ob 0x0000000000000000, 0x0000000000010101, 0x7799bbddff214365
    319 
    320 	writemsg "addl.ob (ev)"
    321 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    322 	ld_ob	$f8, 0x1122334455667788
    323 	ld_ob	$f9, 0x66778899aabbccdd
    324 	addl.ob	$f8, $f9[2]
    325 	ck_acc_ob 0x0000000000000000, 0x0000000001010101, 0xccddeeff10213243
    326 
    327 	writemsg "addl.ob (cv)"
    328 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    329 	ld_ob	$f8, 0x1122334455667788
    330 	addl.ob	$f8, 0x1f
    331 	ck_acc_ob 0x0000000000000000, 0x0000000000000000, 0x30415263748596a7
    332 
    333 
    334 	writemsg "mula.ob (v)"
    335 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    336 	ld_ob	$f8, 0x1122334455667788
    337 	ld_ob	$f9, 0x66778899aabbccdd
    338 	mula.ob	$f8, $f9
    339 	ck_acc_ob 0x0001020304050607, 0x060f1b28384a5e75, 0xc6ce18a47282d468
    340 
    341 	writemsg "mula.ob (ev)"
    342 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    343 	ld_ob	$f8, 0x1122334455667788
    344 	ld_ob	$f9, 0x66778899aabbccdd
    345 	mula.ob	$f8, $f9[2]
    346 	ck_acc_ob 0x0001020304050607, 0x0c1825313e4a5663, 0x6bd641ac1782ed58
    347 
    348 	writemsg "mula.ob (cv)"
    349 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    350 	ld_ob	$f8, 0x1122334455667788
    351 	mula.ob	$f8, 0x1f
    352 	ck_acc_ob 0x0001020304050607, 0x020406080a0c0e10, 0x0f1e2d3c4b5a6978
    353 
    354 
    355 	writemsg "mull.ob (v)"
    356 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    357 	ld_ob	$f8, 0x1122334455667788
    358 	ld_ob	$f9, 0x66778899aabbccdd
    359 	mull.ob	$f8, $f9
    360 	ck_acc_ob 0x0000000000000000, 0x060f1b28384a5e75, 0xc6ce18a47282d468
    361 
    362 	writemsg "mull.ob (ev)"
    363 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    364 	ld_ob	$f8, 0x1122334455667788
    365 	ld_ob	$f9, 0x66778899aabbccdd
    366 	mull.ob	$f8, $f9[2]
    367 	ck_acc_ob 0x0000000000000000, 0x0c1825313e4a5663, 0x6bd641ac1782ed58
    368 
    369 	writemsg "mull.ob (cv)"
    370 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    371 	ld_ob	$f8, 0x1122334455667788
    372 	mull.ob	$f8, 0x1f
    373 	ck_acc_ob 0x0000000000000000, 0x020406080a0c0e10, 0x0f1e2d3c4b5a6978
    374 
    375 
    376 	writemsg "muls.ob (v)"
    377 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    378 	ld_ob	$f8, 0x1122334455667788
    379 	ld_ob	$f9, 0x66778899aabbccdd
    380 	muls.ob	$f8, $f9
    381 	ck_acc_ob 0xff00010203040506, 0xf9f0e4d7c7b5a18a, 0x3a32e85c8e7e2c98
    382 
    383 	writemsg "muls.ob (ev)"
    384 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    385 	ld_ob	$f8, 0x1122334455667788
    386 	ld_ob	$f9, 0x66778899aabbccdd
    387 	muls.ob	$f8, $f9[2]
    388 	ck_acc_ob 0xff00010203040506, 0xf3e7dacec1b5a99c, 0x952abf54e97e13a8
    389 
    390 	writemsg "muls.ob (cv)"
    391 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    392 	ld_ob	$f8, 0x1122334455667788
    393 	muls.ob	$f8, 0x1f
    394 	ck_acc_ob 0xff00010203040506, 0xfdfbf9f7f5f3f1ef, 0xf1e2d3c4b5a69788
    395 
    396 
    397 	writemsg "mulsl.ob (v)"
    398 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    399 	ld_ob	$f8, 0x1122334455667788
    400 	ld_ob	$f9, 0x66778899aabbccdd
    401 	mulsl.ob $f8, $f9
    402 	ck_acc_ob 0xffffffffffffffff, 0xf9f0e4d7c7b5a18a, 0x3a32e85c8e7e2c98
    403 
    404 	writemsg "mulsl.ob (ev)"
    405 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    406 	ld_ob	$f8, 0x1122334455667788
    407 	ld_ob	$f9, 0x66778899aabbccdd
    408 	mulsl.ob $f8, $f9[2]
    409 	ck_acc_ob 0xffffffffffffffff, 0xf3e7dacec1b5a99c, 0x952abf54e97e13a8
    410 
    411 	writemsg "mulsl.ob (cv)"
    412 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    413 	ld_ob	$f8, 0x1122334455667788
    414 	mulsl.ob $f8, 0x1f
    415 	ck_acc_ob 0xffffffffffffffff, 0xfdfbf9f7f5f3f1ef, 0xf1e2d3c4b5a69788
    416 
    417 
    418 	writemsg "suba.ob (v)"
    419 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    420 	ld_ob	$f8, 0x1122334455667788
    421 	ld_ob	$f9, 0x66778899aabbccdd
    422 	suba.ob	$f8, $f9
    423 	ck_acc_ob 0xff00010203040506, 0xffffffffffffffff, 0xabababababababab
    424 
    425 	writemsg "suba.ob (ev)"
    426 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    427 	ld_ob	$f8, 0x1122334455667788
    428 	ld_ob	$f9, 0x66778899aabbccdd
    429 	suba.ob	$f8, $f9[2]
    430 	ck_acc_ob 0xff00010203040506, 0xffffffffffffffff, 0x566778899aabbccd
    431 
    432 	writemsg "suba.ob (cv)"
    433 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    434 	ld_ob	$f8, 0x1122334455667788
    435 	suba.ob	$f8, 0x1f
    436 	ck_acc_ob 0xff01020304050607, 0xff00000000000000, 0xf203142536475869
    437 
    438 
    439 	writemsg "subl.ob (v)"
    440 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    441 	ld_ob	$f8, 0x1122334455667788
    442 	ld_ob	$f9, 0x66778899aabbccdd
    443 	subl.ob	$f8, $f9
    444 	ck_acc_ob 0xffffffffffffffff, 0xffffffffffffffff, 0xabababababababab
    445 
    446 	writemsg "subl.ob (ev)"
    447 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    448 	ld_ob	$f8, 0x1122334455667788
    449 	ld_ob	$f9, 0x66778899aabbccdd
    450 	subl.ob	$f8, $f9[2]
    451 	ck_acc_ob 0xffffffffffffffff, 0xffffffffffffffff, 0x566778899aabbccd
    452 
    453 	writemsg "subl.ob (cv)"
    454 	ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
    455 	ld_ob	$f8, 0x1122334455667788
    456 	subl.ob	$f8, 0x1f
    457 	ck_acc_ob 0xff00000000000000, 0xff00000000000000, 0xf203142536475869
    458 
    459 
    460 	writemsg "rnau.ob (v)"
    461 	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
    462 	ld_ob	$f8, 0x0001020304050607
    463 	rnau.ob	$f9, $f8
    464 	ck_ob	$f9, 0x4021110940201008
    465 
    466 	writemsg "rnau.ob (ev)"
    467 	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
    468 	ld_ob	$f8, 0x0001020304050607
    469 	rnau.ob	$f9, $f8[4]
    470 	ck_ob	$f9, 0x080809097f7f8080
    471 
    472 	writemsg "rnau.ob (cv)"
    473 	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
    474 	rnau.ob	$f9, 2
    475 	ck_ob	$f9, 0x10111112feffffff
    476 
    477 
    478 	writemsg "rneu.ob (v)"
    479 	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
    480 	ld_ob	$f8, 0x0001020304050607
    481 	rneu.ob	$f9, $f8
    482 	ck_ob	$f9, 0x4021110940201008
    483 
    484 	writemsg "rneu.ob (ev)"
    485 	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
    486 	ld_ob	$f8, 0x0001020304050607
    487 	rneu.ob	$f9, $f8[4]
    488 	ck_ob	$f9, 0x080808097f7f8080
    489 
    490 	writemsg "rneu.ob (cv)"
    491 	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
    492 	rneu.ob	$f9, 2
    493 	ck_ob	$f9, 0x10101112fefeffff
    494 
    495 
    496 	writemsg "rzu.ob (v)"
    497 	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
    498 	ld_ob	$f8, 0x0001020304050607
    499 	rzu.ob	$f9, $f8
    500 	ck_ob	$f9, 0x402111083f1f0f07
    501 
    502 	writemsg "rzu.ob (ev)"
    503 	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
    504 	ld_ob	$f8, 0x0001020304050607
    505 	rzu.ob	$f9, $f8[4]
    506 	ck_ob	$f9, 0x080808087f7f7f7f
    507 
    508 	writemsg "rzu.ob (cv)"
    509 	ld_acc_ob 0x0000000000000000, 0x0000000003030303, 0x40424446f8fafcfe
    510 	rzu.ob	$f9, 2
    511 	ck_ob	$f9, 0x10101111fefeffff
    512 
    513 
    514 	###
    515 	### CC-using .ob format ops.
    516 	###
    517 	### Key: v = vector
    518 	###      ev = vector of single element
    519 	###      cv = vector of constant.
    520 	###
    521 
    522 
    523 	writemsg "c.eq.ob (v)"
    524 	ld_ob	$f8, 0x0001010202030304
    525 	ld_ob	$f9, 0x0101020203030404
    526 	clr_fp_cc 0xff
    527 	c.eq.ob	$f8, $f9
    528 	ck_fp_cc 0x55
    529 
    530 	writemsg "c.eq.ob (ev)"
    531 	ld_ob	$f8, 0x0001010202030304
    532 	ld_ob	$f9, 0x0101020203030404
    533 	clr_fp_cc 0xff
    534 	c.eq.ob	$f8, $f9[5]
    535 	ck_fp_cc 0x18
    536 
    537 	writemsg "c.eq.ob (cv)"
    538 	ld_ob	$f8, 0x0001010202030304
    539 	clr_fp_cc 0xff
    540 	c.eq.ob	$f8, 0x03
    541 	ck_fp_cc 0x06
    542 
    543 
    544 	writemsg "c.le.ob (v)"
    545 	ld_ob	$f8, 0x0001010202030304
    546 	ld_ob	$f9, 0x0101020203030404
    547 	clr_fp_cc 0xff
    548 	c.le.ob	$f8, $f9
    549 	ck_fp_cc 0xff
    550 
    551 	writemsg "c.le.ob (ev)"
    552 	ld_ob	$f8, 0x0001010202030304
    553 	ld_ob	$f9, 0x0101020203030404
    554 	clr_fp_cc 0xff
    555 	c.le.ob	$f8, $f9[5]
    556 	ck_fp_cc 0xf8
    557 
    558 	writemsg "c.le.ob (cv)"
    559 	ld_ob	$f8, 0x0001010202030304
    560 	clr_fp_cc 0xff
    561 	c.le.ob	$f8, 0x03
    562 	ck_fp_cc 0xfe
    563 
    564 
    565 	writemsg "c.lt.ob (v)"
    566 	ld_ob	$f8, 0x0001010202030304
    567 	ld_ob	$f9, 0x0101020203030404
    568 	clr_fp_cc 0xff
    569 	c.lt.ob	$f8, $f9
    570 	ck_fp_cc 0xaa
    571 
    572 	writemsg "c.lt.ob (ev)"
    573 	ld_ob	$f8, 0x0001010202030304
    574 	ld_ob	$f9, 0x0101020203030404
    575 	clr_fp_cc 0xff
    576 	c.lt.ob	$f8, $f9[5]
    577 	ck_fp_cc 0xe0
    578 
    579 	writemsg "c.lt.ob (cv)"
    580 	ld_ob	$f8, 0x0001010202030304
    581 	clr_fp_cc 0xff
    582 	c.lt.ob	$f8, 0x03
    583 	ck_fp_cc 0xf8
    584 
    585 
    586 	writemsg "pickf.ob (v)"
    587 	ld_ob	$f8, 0x0001020304050607
    588 	ld_ob	$f9, 0x08090a0b0c0d0e0f
    589 	clrset_fp_cc 0xff, 0xaa
    590 	pickf.ob $f10, $f8, $f9
    591 	ck_ob	$f10, 0x08010a030c050e07
    592 
    593 	writemsg "pickf.ob (ev)"
    594 	ld_ob	$f8, 0x0001020304050607
    595 	ld_ob	$f9, 0x08090a0b0c0d0e0f
    596 	clrset_fp_cc 0xff, 0xaa
    597 	pickf.ob $f10, $f8, $f9[4]
    598 	ck_ob	$f10, 0x0b010b030b050b07
    599 
    600 	writemsg "pickf.ob (cv)"
    601 	ld_ob	$f8, 0x0001020304050607
    602 	clrset_fp_cc 0xff, 0xaa
    603 	pickf.ob $f10, $f8, 0x10
    604 	ck_ob	$f10, 0x1001100310051007
    605 
    606 
    607 	writemsg "pickt.ob (v)"
    608 	ld_ob	$f8, 0x0001020304050607
    609 	ld_ob	$f9, 0x08090a0b0c0d0e0f
    610 	clrset_fp_cc 0xff, 0xaa
    611 	pickt.ob $f10, $f8, $f9
    612 	ck_ob	$f10, 0x0009020b040d060f
    613 
    614 	writemsg "pickt.ob (ev)"
    615 	ld_ob	$f8, 0x0001020304050607
    616 	ld_ob	$f9, 0x08090a0b0c0d0e0f
    617 	clrset_fp_cc 0xff, 0xaa
    618 	pickt.ob $f10, $f8, $f9[5]
    619 	ck_ob	$f10, 0x000a020a040a060a
    620 
    621 	writemsg "pickt.ob (cv)"
    622 	ld_ob	$f8, 0x0001020304050607
    623 	clrset_fp_cc 0xff, 0xaa
    624 	pickt.ob $f10, $f8, 0x10
    625 	ck_ob	$f10, 0x0010021004100610
    626 
    627 
    628 	pass
    629 
    630 	.end DIAG
    631