mdmx-ob.s 15 KB

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