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