r6-fpu.s 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446
  1. # mips r6 fpu test for FMADD/FMSUB etc.
  2. # mach: mips64r6
  3. # as: -mabi=eabi
  4. # ld: -N -Ttext=0x80010000
  5. # output: *\\npass\\n
  6. .include "testutils.inc"
  7. .include "utils-r6.inc"
  8. setup
  9. .set noreorder
  10. .ent DIAG
  11. DIAG:
  12. writemsg "[1] Test qNaN format is 754-2008"
  13. li $4, 0x0
  14. li $5, 0x0
  15. li $6, 0x7fc00000
  16. mtc1 $4, $f2
  17. mtc1 $5, $f4
  18. div.s $f6, $f2, $f4
  19. mfc1 $8, $f6
  20. fp_assert $6, $8
  21. writemsg "[2] Test maddf.s"
  22. r6ck_3s maddf.s, 0x0, 0x0, 0x0, 0x0
  23. r6ck_3s maddf.s, 0x3f800000, 0x3f800000, 0x3f800000, 0x40000000
  24. r6ck_3s maddf.s, 0xc0b1f5c3, 0x40490fd0, 0x402df854, 0x403e9f5d
  25. writemsg "[3] Test maddf.d"
  26. r6ck_3d maddf.d, 0x0, 0x0, 0x0, 0x0
  27. r6ck_3d maddf.d, 0x3ff0000000000000, 0x3ff0000000000000, 0x3ff0000000000000, 0x4000000000000000
  28. r6ck_3d maddf.d, 0xc0163eb851eb851f, 0x400921f9f01b866e, 0x4005bf0a8b24919b, 0x4007d3ebc14f6cee
  29. writemsg "[4] Test msubf.s"
  30. r6ck_3s msubf.s, 0x0, 0x0, 0x0, 0x0
  31. r6ck_3s msubf.s, 0x3f800000, 0x3f800000, 0x3f800000, 0x0
  32. r6ck_3s msubf.s, 0xc0b1f5c3, 0x40490fd0, 0x402df854, 0xc1619d9a
  33. writemsg "[5] Test msubf.d"
  34. r6ck_3d msubf.d, 0x0, 0x0, 0x0, 0x0
  35. r6ck_3d msubf.d, 0x3ff0000000000000, 0x3ff0000000000000, 0x3ff0000000000000, 0x0
  36. r6ck_3d msubf.d, 0xc0163eb851eb851f, 0x400921f9f01b866e, 0x4005bf0a8b24919b, 0xc02c33b3423f605b
  37. writemsg "[6] Test CMP.af.s"
  38. r6ck_3s cmp.af.s, 0x0, 0x3f800000, 0x3f800000, 0x0
  39. r6ck_3s cmp.af.s, 0x0, 0x00000000, 0x3f800000, 0x0
  40. writemsg "[7] Test CMP.af.d"
  41. r6ck_3d cmp.af.d, 0x0, 0x3ff0000000000000, 0x3ff0000000000000, 0x0
  42. r6ck_3d cmp.af.d, 0x0, 0x0000000000000000, 0x3ff0000000000000, 0x0
  43. writemsg "[8] Test CMP.eq.s"
  44. r6ck_3s cmp.eq.s, 0x0, 0x3f800000, 0x3f800000, 0xffffffff
  45. r6ck_3s cmp.eq.s, 0x0, 0x00000000, 0x3f800000, 0x0
  46. r6ck_3s cmp.eq.s, 0x0, 0x80000000, 0x00000000, 0xffffffff
  47. r6ck_3s cmp.eq.s, 0x0, 0x7fc00000, 0x7fc00000, 0x0
  48. r6ck_3s cmp.eq.s, 0x0, 0x7fc00000, 0xffc00000, 0x0
  49. r6ck_3s cmp.eq.s, 0x0, 0x7fa00000, 0x7fa00000, 0x0
  50. r6ck_3s cmp.eq.s, 0x0, 0x7fa00000, 0x7fc00000, 0x0
  51. r6ck_3s cmp.eq.s, 0x0, 0x7f800000, 0x7f800000, 0xffffffff
  52. r6ck_3s cmp.eq.s, 0x0, 0xff800000, 0xff800000, 0xffffffff
  53. writemsg "[9] Test CMP.eq.d"
  54. r6ck_3d cmp.eq.d, 0x0, 0x3ff0000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  55. r6ck_3d cmp.eq.d, 0x0, 0x0000000000000000, 0x3ff0000000000000, 0x0
  56. r6ck_3d cmp.eq.d, 0x0, 0x8000000000000000, 0x0000000000000000, 0xffffffffffffffff
  57. r6ck_3d cmp.eq.d, 0x0, 0x7ff8000000000000, 0x7ff8000000000000, 0x0
  58. r6ck_3d cmp.eq.d, 0x0, 0x7ff8000000000000, 0xffc0000000000000, 0x0
  59. r6ck_3d cmp.eq.d, 0x0, 0x7fa0000000000000, 0x7fa0000000000000, 0xffffffffffffffff
  60. r6ck_3d cmp.eq.d, 0x0, 0x7fa0000000000000, 0x7ff8000000000000, 0x0
  61. r6ck_3d cmp.eq.d, 0x0, 0x7ff0000000000000, 0x7ff0000000000000, 0xffffffffffffffff
  62. r6ck_3d cmp.eq.d, 0x0, 0xfff0000000000000, 0xfff0000000000000, 0xffffffffffffffff
  63. writemsg "[10] Test CMP.ne.s"
  64. r6ck_3s cmp.ne.s, 0x0, 0x3f800000, 0x3f800000, 0x0
  65. r6ck_3s cmp.ne.s, 0x0, 0x00000000, 0x3f800000, 0xffffffff
  66. r6ck_3s cmp.ne.s, 0x0, 0x80000000, 0x00000000, 0x0
  67. r6ck_3s cmp.ne.s, 0x0, 0x7fc00000, 0x7fc00000, 0x0
  68. r6ck_3s cmp.ne.s, 0x0, 0x7fc00000, 0xffc00000, 0x0
  69. r6ck_3s cmp.ne.s, 0x0, 0x7fa00000, 0x7fa00000, 0x0
  70. r6ck_3s cmp.ne.s, 0x0, 0x7fa00000, 0x7fc00000, 0x0
  71. r6ck_3s cmp.ne.s, 0x0, 0x7f800000, 0x7f800000, 0x0
  72. r6ck_3s cmp.ne.s, 0x0, 0xff800000, 0xff800000, 0x0
  73. writemsg "[11] Test CMP.ne.d"
  74. r6ck_3d cmp.ne.d, 0x0, 0x3ff0000000000000, 0x3ff0000000000000, 0x0
  75. r6ck_3d cmp.ne.d, 0x0, 0x0000000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  76. r6ck_3d cmp.ne.d, 0x0, 0x8000000000000000, 0x0000000000000000, 0x0
  77. r6ck_3d cmp.ne.d, 0x0, 0x7ff8000000000000, 0x7ff8000000000000, 0x0
  78. r6ck_3d cmp.ne.d, 0x0, 0x7ff8000000000000, 0xffc0000000000000, 0x0
  79. r6ck_3d cmp.ne.d, 0x0, 0x7fa0000000000000, 0x7fa0000000000000, 0x0
  80. r6ck_3d cmp.ne.d, 0x0, 0x7fa0000000000000, 0x7ff8000000000000, 0x0
  81. r6ck_3d cmp.ne.d, 0x0, 0x7ff0000000000000, 0x7ff0000000000000, 0x0
  82. r6ck_3d cmp.ne.d, 0x0, 0xfff0000000000000, 0xfff0000000000000, 0x0
  83. r6ck_3d cmp.ne.d, 0x0, 0xab19546120965720, 0x92452014f194abc3, 0xffffffffffffffff
  84. writemsg "[12] Test CMP.lt.s"
  85. r6ck_3s cmp.lt.s, 0x0, 0x3f800000, 0x3f800000, 0x0
  86. r6ck_3s cmp.lt.s, 0x0, 0x00000000, 0x3f800000, 0xffffffff
  87. r6ck_3s cmp.lt.s, 0x0, 0xbf800000, 0x3f800000, 0xffffffff
  88. r6ck_3s cmp.lt.s, 0x0, 0x3f800000, 0xbf800000, 0x0
  89. r6ck_3s cmp.lt.s, 0x0, 0xff800000, 0xbf800000, 0xffffffff
  90. r6ck_3s cmp.lt.s, 0x0, 0xbf800000, 0x7f800000, 0xffffffff
  91. r6ck_3s cmp.lt.s, 0x0, 0xbf800000, 0xff800000, 0x0
  92. r6ck_3s cmp.lt.s, 0x0, 0x7f800000, 0xbf800000, 0x0
  93. writemsg "[13] Test CMP.lt.d"
  94. r6ck_3d cmp.lt.d, 0x0, 0x3ff0000000000000, 0x3ff0000000000000, 0x0
  95. r6ck_3d cmp.lt.d, 0x0, 0x0000000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  96. r6ck_3d cmp.lt.d, 0x0, 0xbff0000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  97. r6ck_3d cmp.lt.d, 0x0, 0x3ff0000000000000, 0xbff0000000000000, 0x0
  98. r6ck_3d cmp.lt.d, 0x0, 0xfff0000000000000, 0xbff0000000000000, 0xffffffffffffffff
  99. r6ck_3d cmp.lt.d, 0x0, 0xbff0000000000000, 0x7ff0000000000000, 0xffffffffffffffff
  100. r6ck_3d cmp.lt.d, 0x0, 0xbff0000000000000, 0xfff0000000000000, 0x0
  101. r6ck_3d cmp.lt.d, 0x0, 0x7ff0000000000000, 0xbff0000000000000, 0x0
  102. writemsg "[14] Test CMP.le.s"
  103. r6ck_3s cmp.le.s, 0x0, 0x3f800000, 0x3f800000, 0xffffffff
  104. r6ck_3s cmp.le.s, 0x0, 0x00000000, 0x3f800000, 0xffffffff
  105. r6ck_3s cmp.le.s, 0x0, 0xbf800000, 0x3f800000, 0xffffffff
  106. r6ck_3s cmp.le.s, 0x0, 0x3f800000, 0xbf800000, 0x0
  107. r6ck_3s cmp.le.s, 0x0, 0xff800000, 0xbf800000, 0xffffffff
  108. r6ck_3s cmp.le.s, 0x0, 0xbf800000, 0x7f800000, 0xffffffff
  109. r6ck_3s cmp.le.s, 0x0, 0xbf800000, 0xff800000, 0x0
  110. r6ck_3s cmp.le.s, 0x0, 0x7f800000, 0xbf800000, 0x0
  111. writemsg "[15] Test CMP.le.d"
  112. r6ck_3d cmp.le.d, 0x0, 0x3ff0000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  113. r6ck_3d cmp.le.d, 0x0, 0x0000000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  114. r6ck_3d cmp.le.d, 0x0, 0xbff0000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  115. r6ck_3d cmp.le.d, 0x0, 0x3ff0000000000000, 0xbff0000000000000, 0x0
  116. r6ck_3d cmp.le.d, 0x0, 0xfff0000000000000, 0xbff0000000000000, 0xffffffffffffffff
  117. r6ck_3d cmp.le.d, 0x0, 0xbff0000000000000, 0x7ff0000000000000, 0xffffffffffffffff
  118. r6ck_3d cmp.le.d, 0x0, 0xbff0000000000000, 0xfff0000000000000, 0x0
  119. r6ck_3d cmp.le.d, 0x0, 0x7ff0000000000000, 0xbff0000000000000, 0x0
  120. writemsg "[16] Test CMP.un.s"
  121. r6ck_3s cmp.un.s, 0x0, 0x3f800000, 0x3f800000, 0x0
  122. r6ck_3s cmp.un.s, 0x0, 0x3f800000, 0xbf800000, 0x0
  123. r6ck_3s cmp.un.s, 0x0, 0x3f800000, 0x7fc00000, 0xffffffff
  124. r6ck_3s cmp.un.s, 0x0, 0x7fc01234, 0x7fc00000, 0xffffffff
  125. r6ck_3s cmp.un.s, 0x0, 0x7fc00000, 0x7fc00000, 0xffffffff
  126. r6ck_3s cmp.un.s, 0x0, 0x3f800000, 0xff800000, 0x0
  127. r6ck_3s cmp.un.s, 0x0, 0x3f800000, 0x7f800000, 0x0
  128. writemsg "[17] Test CMP.un.d"
  129. r6ck_3d cmp.un.d, 0x0, 0x3ff0000000000000, 0x3ff0000000000000, 0x0
  130. r6ck_3d cmp.un.d, 0x0, 0x3ff0000000000000, 0xbff0000000000000, 0x0
  131. r6ck_3d cmp.un.d, 0x0, 0x3ff0000000000000, 0x7ff8000000000000, 0xffffffffffffffff
  132. r6ck_3d cmp.un.d, 0x0, 0x7fc0123400000000, 0x7ff8000000000000, 0xffffffffffffffff
  133. r6ck_3d cmp.un.d, 0x0, 0x7ff8000000000000, 0x7ff8000000000000, 0xffffffffffffffff
  134. r6ck_3d cmp.un.d, 0x0, 0x3ff0000000000000, 0xfff0000000000000, 0x0
  135. r6ck_3d cmp.un.d, 0x0, 0x3ff0000000000000, 0x7ff0000000000000, 0x0
  136. writemsg "[18] Test CMP.or.s"
  137. r6ck_3s cmp.or.s, 0x0, 0x3f800000, 0x3f800000, 0xffffffff
  138. r6ck_3s cmp.or.s, 0x0, 0xbf800000, 0x3f800000, 0xffffffff
  139. r6ck_3s cmp.or.s, 0x0, 0x3f800000, 0x7fc00000, 0x0
  140. r6ck_3s cmp.or.s, 0x0, 0x7fc00000, 0x3f800000, 0x0
  141. r6ck_3s cmp.or.s, 0x0, 0xffc00000, 0x3f800000, 0x0
  142. r6ck_3s cmp.or.s, 0x0, 0x7fc01234, 0x7fc00000, 0x0
  143. r6ck_3s cmp.or.s, 0x0, 0xff800000, 0x00000000, 0xffffffff
  144. r6ck_3s cmp.or.s, 0x0, 0x00000000, 0x7f800000, 0xffffffff
  145. r6ck_3s cmp.or.s, 0x0, 0x00000000, 0xff800000, 0xffffffff
  146. r6ck_3s cmp.or.s, 0x0, 0x7f800000, 0x00000000, 0xffffffff
  147. r6ck_3s cmp.or.s, 0x0, 0x7f800000, 0x00000000, 0xffffffff
  148. writemsg "[19] Test CMP.or.d"
  149. r6ck_3d cmp.or.d, 0x0, 0x3ff0000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  150. r6ck_3d cmp.or.d, 0x0, 0xbff0000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  151. r6ck_3d cmp.or.d, 0x0, 0x3ff0000000000000, 0x7ff8000000000000, 0x0
  152. r6ck_3d cmp.or.d, 0x0, 0x7ff8000000000000, 0x3ff0000000000000, 0x0
  153. r6ck_3d cmp.or.d, 0x0, 0xfff8000000000000, 0x3ff0000000000000, 0x0
  154. r6ck_3d cmp.or.d, 0x0, 0x7ff8123492134352, 0x7ff8000000000000, 0x0
  155. r6ck_3d cmp.or.d, 0x0, 0xfff0000000000000, 0x0000000000000000, 0xffffffffffffffff
  156. r6ck_3d cmp.or.d, 0x0, 0x0000000000000000, 0x7ff0000000000000, 0xffffffffffffffff
  157. r6ck_3d cmp.or.d, 0x0, 0x0000000000000000, 0xfff0000000000000, 0xffffffffffffffff
  158. r6ck_3d cmp.or.d, 0x0, 0x7ff0000000000000, 0x0000000000000000, 0xffffffffffffffff
  159. r6ck_3d cmp.or.d, 0x0, 0x7ff0000000000000, 0x0000000000000000, 0xffffffffffffffff
  160. writemsg "[20] Test CMP.ueq.s"
  161. r6ck_3s cmp.ueq.s, 0x0, 0x3f800000, 0x00000000, 0x0
  162. r6ck_3s cmp.ueq.s, 0x0, 0x3f800000, 0x7fc00000, 0xffffffff
  163. r6ck_3s cmp.ueq.s, 0x0, 0x7fc00000, 0x7fc00000, 0xffffffff
  164. r6ck_3s cmp.ueq.s, 0x0, 0x3f800000, 0x3f800000, 0xffffffff
  165. r6ck_3s cmp.ueq.s, 0x0, 0x00000000, 0x3f800000, 0x0
  166. r6ck_3s cmp.ueq.s, 0x0, 0x80000000, 0x00000000, 0xffffffff
  167. r6ck_3s cmp.ueq.s, 0x0, 0x7f800000, 0x7fc00000, 0xffffffff
  168. r6ck_3s cmp.ueq.s, 0x0, 0xff800000, 0xff800000, 0xffffffff
  169. writemsg "[21] Test CMP.ueq.d"
  170. r6ck_3d cmp.ueq.d, 0x0, 0x3ff0000000000000, 0x0000000000000000, 0x0
  171. r6ck_3d cmp.ueq.d, 0x0, 0x3ff0000000000000, 0x7ff8000000000000, 0xffffffffffffffff
  172. r6ck_3d cmp.ueq.d, 0x0, 0x7ff8000000000000, 0x7ff8000000000000, 0xffffffffffffffff
  173. r6ck_3d cmp.ueq.d, 0x0, 0x3ff0000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  174. r6ck_3d cmp.ueq.d, 0x0, 0x0000000000000000, 0x3ff0000000000000, 0x0
  175. r6ck_3d cmp.ueq.d, 0x0, 0x8000000000000000, 0x0000000000000000, 0xffffffffffffffff
  176. r6ck_3d cmp.ueq.d, 0x0, 0x7ff0000000000000, 0x7ff8000000000000, 0xffffffffffffffff
  177. r6ck_3d cmp.ueq.d, 0x0, 0xfff0000000000000, 0xfff0000000000000, 0xffffffffffffffff
  178. writemsg "[22] Test CMP.une.s"
  179. r6ck_3s cmp.une.s, 0x0, 0x3f800000, 0x3f800000, 0x0
  180. r6ck_3s cmp.une.s, 0x0, 0x3f800000, 0x7fc00000, 0xffffffff
  181. r6ck_3s cmp.une.s, 0x0, 0x7fc00000, 0x7fc00000, 0xffffffff
  182. r6ck_3s cmp.une.s, 0x0, 0x3f800000, 0x3f800000, 0x0
  183. r6ck_3s cmp.une.s, 0x0, 0x00000000, 0x3f800000, 0xffffffff
  184. r6ck_3s cmp.une.s, 0x0, 0x80000000, 0x00000000, 0x0
  185. r6ck_3s cmp.une.s, 0x0, 0x7f800000, 0x7fc00000, 0xffffffff
  186. r6ck_3s cmp.une.s, 0x0, 0xff800000, 0xff800000, 0x0
  187. writemsg "[23] Test CMP.une.d"
  188. r6ck_3d cmp.une.d, 0x0, 0x3ff0000000000000, 0x3ff0000000000000, 0x0
  189. r6ck_3d cmp.une.d, 0x0, 0x3ff0000000000000, 0x7ff8000000000000, 0xffffffffffffffff
  190. r6ck_3d cmp.une.d, 0x0, 0x7ff8000000000000, 0x7ff8000000000000, 0xffffffffffffffff
  191. r6ck_3d cmp.une.d, 0x0, 0x3ff0000000000000, 0x3ff0000000000000, 0x0
  192. r6ck_3d cmp.une.d, 0x0, 0x0000000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  193. r6ck_3d cmp.une.d, 0x0, 0x8000000000000000, 0x0000000000000000, 0x0
  194. r6ck_3d cmp.une.d, 0x0, 0x7ff0000000000000, 0x7ff8000000000000, 0xffffffffffffffff
  195. r6ck_3d cmp.une.d, 0x0, 0xfff0000000000000, 0xfff0000000000000, 0x0
  196. writemsg "[24] Test CMP.ult.s"
  197. r6ck_3s cmp.ult.s, 0x0, 0x3f800000, 0x3f800000, 0x0
  198. r6ck_3s cmp.ult.s, 0x0, 0x3f800000, 0x7fc00000, 0xffffffff
  199. r6ck_3s cmp.ult.s, 0x0, 0x7fc00000, 0x7fc00000, 0xffffffff
  200. r6ck_3s cmp.ult.s, 0x0, 0x00000000, 0x3f800000, 0xffffffff
  201. r6ck_3s cmp.ult.s, 0x0, 0xbf800000, 0x3f800000, 0xffffffff
  202. r6ck_3s cmp.ult.s, 0x0, 0x3f800000, 0xbf800000, 0x0
  203. writemsg "[25] Test CMP.ult.d"
  204. r6ck_3d cmp.ult.d, 0x0, 0x3ff0000000000000, 0x3ff0000000000000, 0x0
  205. r6ck_3d cmp.ult.d, 0x0, 0x3ff0000000000000, 0x7ff8000000000000, 0xffffffffffffffff
  206. r6ck_3d cmp.ult.d, 0x0, 0x7ff8000000000000, 0x7ff8000000000000, 0xffffffffffffffff
  207. r6ck_3d cmp.ult.d, 0x0, 0x0000000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  208. r6ck_3d cmp.ult.d, 0x0, 0xbff0000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  209. r6ck_3d cmp.ult.d, 0x0, 0x3ff0000000000000, 0xbff0000000000000, 0x0
  210. writemsg "[26] Test CMP.ule.s"
  211. r6ck_3s cmp.ule.s, 0x0, 0x3f800000, 0x7fc00000, 0xffffffff
  212. r6ck_3s cmp.ule.s, 0x0, 0x7fc00000, 0x7fc00000, 0xffffffff
  213. r6ck_3s cmp.ule.s, 0x0, 0x3f800000, 0x3f800000, 0xffffffff
  214. r6ck_3s cmp.ule.s, 0x0, 0x00000000, 0x3f800000, 0xffffffff
  215. r6ck_3s cmp.ule.s, 0x0, 0xbf800000, 0x3f800000, 0xffffffff
  216. r6ck_3s cmp.ule.s, 0x0, 0x3f800000, 0xbf800000, 0x0
  217. r6ck_3s cmp.ule.s, 0x0, 0x3f800000, 0xff800000, 0x0
  218. writemsg "[27] Test CMP.ule.d"
  219. r6ck_3d cmp.ule.d, 0x0, 0x3ff0000000000000, 0x7ff8000000000000, 0xffffffffffffffff
  220. r6ck_3d cmp.ule.d, 0x0, 0x7ff8000000000000, 0x7ff8000000000000, 0xffffffffffffffff
  221. r6ck_3d cmp.ule.d, 0x0, 0x3ff0000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  222. r6ck_3d cmp.ule.d, 0x0, 0x0000000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  223. r6ck_3d cmp.ule.d, 0x0, 0xbff0000000000000, 0x3ff0000000000000, 0xffffffffffffffff
  224. r6ck_3d cmp.ule.d, 0x0, 0x3ff0000000000000, 0xbff0000000000000, 0x0
  225. r6ck_3d cmp.ule.d, 0x0, 0x3ff0000000000000, 0xfff0000000000000, 0x0
  226. writemsg "[28] Test rint.s"
  227. r6ck_2s rint.s, 0x0, 0x3fbf10cb, 0x3f800000
  228. r6ck_2s rint.s, 0x0, 0xb9011423, 0x0
  229. r6ck_2s rint.s, 0x0, 0x43fa4687, 0x43fa8000
  230. r6ck_2s rint.s, 0x0, 0x41380000, 0x41400000
  231. r6ck_2s rint.s, 0x0, 0x3ff33333, 0x40000000
  232. writemsg "[29] Test rint.d"
  233. r6ck_2d rint.d, 0x0, 0x3ff1f9a6b50b0f28, 0x3ff0000000000000
  234. r6ck_2d rint.d, 0x0, 0xbf543bf727136a40, 0x0
  235. r6ck_2d rint.d, 0x0, 0x407f48d0e5604189, 0x407f500000000000
  236. r6ck_2d rint.d, 0x0, 0x5b7c2d43b93b0a8c, 0x5b7c2d43b93b0a8c,
  237. writemsg "[30] Test class.s"
  238. r6ck_2s class.s, 0x0, 0x7f800010, 0x1
  239. r6ck_2s class.s, 0x0, 0x7fc00000, 0x2
  240. r6ck_2s class.s, 0x0, 0xff800000, 0x4
  241. r6ck_2s class.s, 0x0, 0xbf800000, 0x8
  242. r6ck_2s class.s, 0x0, 0x80000001, 0x10
  243. r6ck_2s class.s, 0x0, 0x80000000, 0x20
  244. r6ck_2s class.s, 0x0, 0x7f800000, 0x40
  245. r6ck_2s class.s, 0x0, 0x3f800000, 0x80
  246. r6ck_2s class.s, 0x0, 0x00000001, 0x100
  247. r6ck_2s class.s, 0x0, 0x00000000, 0x200
  248. writemsg "[31] Test class.d"
  249. r6ck_2d class.d, 0x0, 0x7ff0000000000010, 0x1
  250. r6ck_2d class.d, 0x0, 0x7ff8000000000000, 0x2
  251. r6ck_2d class.d, 0x0, 0xfff0000000000000, 0x4
  252. r6ck_2d class.d, 0x0, 0xbff0000000000000, 0x8
  253. r6ck_2d class.d, 0x0, 0x8000000000000001, 0x10
  254. r6ck_2d class.d, 0x0, 0x8000000000000000, 0x20
  255. r6ck_2d class.d, 0x0, 0x7ff0000000000000, 0x40
  256. r6ck_2d class.d, 0x0, 0x3ff0000000000000, 0x80
  257. r6ck_2d class.d, 0x0, 0x0000000000000001, 0x100
  258. r6ck_2d class.d, 0x0, 0x0000000000000000, 0x200
  259. writemsg "[32] Test min.s"
  260. r6ck_3s min.s, 0x0, 0x3f800000, 0x0, 0x0
  261. r6ck_3s min.s, 0x0, 0x0, 0x3f800000, 0x0
  262. r6ck_3s min.s, 0x0, 0x7f800000, 0x3f800000, 0x3f800000
  263. r6ck_3s min.s, 0x0, 0x3f800000, 0x7f800000, 0x3f800000
  264. r6ck_3s min.s, 0x0, 0xff800000, 0xbf800000, 0xff800000
  265. r6ck_3s min.s, 0x0, 0xbf800000, 0xff800000, 0xff800000
  266. r6ck_3s min.s, 0x0, 0x7fffffff, 0x3f800000, 0x3f800000
  267. r6ck_3s min.s, 0x0, 0x3f800000, 0x7fffffff, 0x3f800000
  268. writemsg "[33] Test min.d"
  269. r6ck_3d min.d, 0x0, 0x3ff0000000000000, 0x0, 0x0
  270. r6ck_3d min.d, 0x0, 0x0, 0x3ff0000000000000, 0x0
  271. r6ck_3d min.d, 0x0, 0x7ff0000000000000, 0x3ff0000000000000, 0x3ff0000000000000
  272. r6ck_3d min.d, 0x0, 0x3ff0000000000000, 0x7ff0000000000000, 0x3ff0000000000000
  273. r6ck_3d min.d, 0x0, 0xfff0000000000000, 0xbff0000000000000, 0xfff0000000000000
  274. r6ck_3d min.d, 0x0, 0xbff0000000000000, 0xfff0000000000000, 0xfff0000000000000
  275. r6ck_3d min.d, 0x0, 0x7fffffffffffffff, 0x3ff0000000000000, 0x3ff0000000000000
  276. r6ck_3d min.d, 0x0, 0x3ff0000000000000, 0x7fffffffffffffff, 0x3ff0000000000000
  277. writemsg "[34] Test max.s"
  278. r6ck_3s max.s, 0x0, 0x3f800000, 0x0, 0x3f800000
  279. r6ck_3s max.s, 0x0, 0x0, 0x3f800000, 0x3f800000
  280. r6ck_3s max.s, 0x0, 0x7f800000, 0x3f800000, 0x7f800000
  281. r6ck_3s max.s, 0x0, 0x3f800000, 0x7f800000, 0x7f800000
  282. r6ck_3s max.s, 0x0, 0xff800000, 0xbf800000, 0xbf800000
  283. r6ck_3s max.s, 0x0, 0xbf800000, 0xff800000, 0xbf800000
  284. r6ck_3s max.s, 0x0, 0x7fffffff, 0x3f800000, 0x3f800000
  285. r6ck_3s max.s, 0x0, 0x3f800000, 0x7fffffff, 0x3f800000
  286. writemsg "[35] Test max.d"
  287. r6ck_3d max.d, 0x0, 0x3ff0000000000000, 0x0, 0x3ff0000000000000
  288. r6ck_3d max.d, 0x0, 0x0, 0x3ff0000000000000, 0x3ff0000000000000
  289. r6ck_3d max.d, 0x0, 0x7ff0000000000000, 0x3ff0000000000000, 0x7ff0000000000000
  290. r6ck_3d max.d, 0x0, 0x3ff0000000000000, 0x7ff0000000000000, 0x7ff0000000000000
  291. r6ck_3d max.d, 0x0, 0xfff0000000000000, 0xbff0000000000000, 0xbff0000000000000
  292. r6ck_3d max.d, 0x0, 0xbff0000000000000, 0xfff0000000000000, 0xbff0000000000000
  293. r6ck_3d max.d, 0x0, 0x7fffffffffffffff, 0x3ff0000000000000, 0x3ff0000000000000
  294. r6ck_3d max.d, 0x0, 0x3ff0000000000000, 0x7fffffffffffffff, 0x3ff0000000000000
  295. writemsg "[36] Test mina.s"
  296. r6ck_3s mina.s, 0x0, 0x3f800000, 0x0, 0x0
  297. r6ck_3s mina.s, 0x0, 0x0, 0x3f800000, 0x0
  298. r6ck_3s mina.s, 0x0, 0x7f800000, 0x3f800000, 0x3f800000
  299. r6ck_3s mina.s, 0x0, 0x3f800000, 0x7f800000, 0x3f800000
  300. r6ck_3s mina.s, 0x0, 0xff800000, 0xbf800000, 0xbf800000
  301. r6ck_3s mina.s, 0x0, 0xbf800000, 0xff800000, 0xbf800000
  302. r6ck_3s mina.s, 0x0, 0x7fffffff, 0x3f800000, 0x3f800000
  303. r6ck_3s mina.s, 0x0, 0x3f800000, 0x7fffffff, 0x3f800000
  304. r6ck_3s mina.s, 0x0, 0xc0000000, 0x3f800000, 0x3f800000
  305. r6ck_3s mina.s, 0x0, 0x3f800000, 0xc0000000, 0x3f800000
  306. writemsg "[37] Test mina.d"
  307. r6ck_3d mina.d, 0x0, 0x3ff0000000000000, 0x0, 0x0
  308. r6ck_3d mina.d, 0x0, 0x0, 0x3ff0000000000000, 0x0
  309. r6ck_3d mina.d, 0x0, 0x7ff0000000000000, 0x3ff0000000000000, 0x3ff0000000000000
  310. r6ck_3d mina.d, 0x0, 0x3ff0000000000000, 0x7ff0000000000000, 0x3ff0000000000000
  311. r6ck_3d mina.d, 0x0, 0xfff0000000000000, 0xbff0000000000000, 0xbff0000000000000
  312. r6ck_3d mina.d, 0x0, 0xbff0000000000000, 0xfff0000000000000, 0xbff0000000000000
  313. r6ck_3d mina.d, 0x0, 0x7fffffffffffffff, 0x3ff0000000000000, 0x3ff0000000000000
  314. r6ck_3d mina.d, 0x0, 0x3ff0000000000000, 0x7fffffffffffffff, 0x3ff0000000000000
  315. r6ck_3d mina.d, 0x0, 0xc000000000000000, 0x3ff0000000000000, 0x3ff0000000000000
  316. r6ck_3d mina.d, 0x0, 0x3ff0000000000000, 0xc000000000000000, 0x3ff0000000000000
  317. writemsg "[38] Test maxa.s"
  318. r6ck_3s maxa.s, 0x0, 0x3f800000, 0x0, 0x3f800000
  319. r6ck_3s maxa.s, 0x0, 0x0, 0x3f800000, 0x3f800000
  320. r6ck_3s maxa.s, 0x0, 0x7f800000, 0x3f800000, 0x7f800000
  321. r6ck_3s maxa.s, 0x0, 0x3f800000, 0x7f800000, 0x7f800000
  322. r6ck_3s maxa.s, 0x0, 0xff800000, 0xbf800000, 0xff800000
  323. r6ck_3s maxa.s, 0x0, 0xbf800000, 0xff800000, 0xff800000
  324. r6ck_3s maxa.s, 0x0, 0x7fffffff, 0x3f800000, 0x3f800000
  325. r6ck_3s maxa.s, 0x0, 0x3f800000, 0x7fffffff, 0x3f800000
  326. r6ck_3s maxa.s, 0x0, 0xc0000000, 0x3f800000, 0xc0000000
  327. r6ck_3s maxa.s, 0x0, 0x3f800000, 0xc0000000, 0xc0000000
  328. writemsg "[39] Test maxa.d"
  329. r6ck_3d maxa.d, 0x0, 0x3ff0000000000000, 0x0, 0x3ff0000000000000
  330. r6ck_3d maxa.d, 0x0, 0x0, 0x3ff0000000000000, 0x3ff0000000000000
  331. r6ck_3d maxa.d, 0x0, 0x7ff0000000000000, 0x3ff0000000000000, 0x7ff0000000000000
  332. r6ck_3d maxa.d, 0x0, 0x3ff0000000000000, 0x7ff0000000000000, 0x7ff0000000000000
  333. r6ck_3d maxa.d, 0x0, 0xfff0000000000000, 0xbff0000000000000, 0xfff0000000000000
  334. r6ck_3d maxa.d, 0x0, 0xbff0000000000000, 0xfff0000000000000, 0xfff0000000000000
  335. r6ck_3d maxa.d, 0x0, 0x7fffffffffffffff, 0x3ff0000000000000, 0x3ff0000000000000
  336. r6ck_3d maxa.d, 0x0, 0x3ff0000000000000, 0x7fffffffffffffff, 0x3ff0000000000000
  337. r6ck_3d maxa.d, 0x0, 0xc000000000000000, 0x3ff0000000000000, 0xc000000000000000
  338. r6ck_3d maxa.d, 0x0, 0x3ff0000000000000, 0xc000000000000000, 0xc000000000000000
  339. writemsg "[40] Test sel.s"
  340. r6ck_3s sel.s, 0x0, 0xabcdef12, 0x12345678, 0xabcdef12
  341. r6ck_3s sel.s, 0x1, 0xdeadbeef, 0xcafe1234, 0xcafe1234
  342. r6ck_3s sel.s, 0xfffffffe, 0xbadcafe0, 0x12345678, 0xbadcafe0
  343. r6ck_3s sel.s, 0xffffffff, 0xdeadbeef, 0xcadf00ab, 0xcadf00ab
  344. writemsg "[41] Test sel.d"
  345. r6ck_3d sel.d, 0x0, 0xabcdef123456789, 0x12345678abcdefa, 0xabcdef123456789
  346. r6ck_3d sel.d, 0x1, 0xdeadbeef1534567, 0xcafe12340145279, 0xcafe12340145279
  347. r6ck_3d sel.d, 0xfffffffffffffffe, 0xbadcafe00efacdab, 0x1234567887654321, 0xbadcafe00efacdab
  348. r6ck_3d sel.d, 0xffffffffffffffff, 0xdeadbeeffeebdaed, 0xcadf00abba00fdac, 0xcadf00abba00fdac
  349. writemsg "[42] Test seleqz.s"
  350. r6ck_3s seleqz.s, 0x0, 0x1234abcd, 0x0, 0x1234abcd
  351. r6ck_3s seleqz.s, 0x0, 0xabcdef01, 0x1, 0x0
  352. r6ck_3s seleqz.s, 0x0, 0xffeebbcc, 0xfffffffe, 0xffeebbcc
  353. r6ck_3s seleqz.s, 0x0, 0x12345678, 0xffffffff, 0
  354. writemsg "[43] Test seleqz.d"
  355. r6ck_3d seleqz.d, 0x0, 0x1234abcddcba4321, 0x0, 0x1234abcddcba4321
  356. r6ck_3d seleqz.d, 0x0, 0xabcdef0110fedcba, 0x1, 0x0
  357. r6ck_3d seleqz.d, 0x0, 0xffeebbccccbbeeff, 0xfffffffffffffffe, 0xffeebbccccbbeeff
  358. r6ck_3d seleqz.d, 0x0, 0x1234567887654321, 0xffffffffffffffff, 0x0
  359. writemsg "[44] Test selnez.s"
  360. r6ck_3s selnez.s, 0x0, 0x1234abcd, 0x0, 0x0
  361. r6ck_3s selnez.s, 0x0, 0xabcdef01, 0x1, 0xabcdef01
  362. r6ck_3s selnez.s, 0x0, 0xffeebbcc, 0xfffffffe, 0x0
  363. r6ck_3s selnez.s, 0x0, 0x12345678, 0xffffffff, 0x12345678
  364. writemsg "[45] Test selnez.d"
  365. r6ck_3d selnez.d, 0x0, 0x1234abcddcba4321, 0x0, 0x0
  366. r6ck_3d selnez.d, 0x0, 0xabcdef0110fedcba, 0x1, 0xabcdef0110fedcba
  367. r6ck_3d selnez.d, 0x0, 0xffeebbccccbbeeff, 0xfffffffffffffffe, 0x0
  368. r6ck_3d selnez.d, 0x0, 0x1234567887654321, 0xffffffffffffffff, 0x1234567887654321
  369. writemsg "[46] Test bc1eqz"
  370. li $10, 0x01
  371. mtc1 $10, $f2
  372. mtc1 $0, $f4
  373. bc1eqz $f2, L1
  374. nop
  375. bc1eqz $f4, L2
  376. nop
  377. fail
  378. L1:
  379. fail
  380. L2:
  381. writemsg "[47] Test bc1nez"
  382. bc1nez $f4, L3
  383. nop
  384. bc1nez $f2, L4
  385. nop
  386. fail
  387. L3:
  388. fail
  389. L4:
  390. pass
  391. .end DIAG