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
16DIAG:
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