c_dsp32alu_rm.s 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. //Original:/testcases/core/c_dsp32alu_rm/c_dsp32alu_rm.dsp
  2. // Spec Reference: dsp32alu
  3. # mach: bfin
  4. .include "testutils.inc"
  5. start
  6. imm32 r0, 0x35678911;
  7. imm32 r1, 0x2389ab1d;
  8. imm32 r2, 0x34345515;
  9. imm32 r3, 0x46637717;
  10. imm32 r4, 0x5567391b;
  11. imm32 r5, 0x6789a31d;
  12. imm32 r6, 0x744455a5;
  13. imm32 r7, 0x866677a7;
  14. R0 = R0 - R0 (NS);
  15. R1 = R0 - R1 (NS);
  16. R2 = R0 - R2 (NS);
  17. R3 = R0 - R3 (NS);
  18. R4 = R0 - R4 (NS);
  19. R5 = R0 - R5 (NS);
  20. R6 = R0 - R6 (NS);
  21. R7 = R0 - R7 (NS);
  22. CHECKREG r0, 0x00000000;
  23. CHECKREG r1, 0xDC7654E3;
  24. CHECKREG r2, 0xCBCBAAEB;
  25. CHECKREG r3, 0xB99C88E9;
  26. CHECKREG r4, 0xAA98C6E5;
  27. CHECKREG r5, 0x98765CE3;
  28. CHECKREG r6, 0x8BBBAA5B;
  29. CHECKREG r7, 0x79998859;
  30. imm32 r0, 0xa5678911;
  31. imm32 r1, 0x4a89ab1d;
  32. imm32 r2, 0x54a45515;
  33. imm32 r3, 0x466a7717;
  34. imm32 r4, 0x5567a91b;
  35. imm32 r5, 0x6789ab1d;
  36. imm32 r6, 0x74445a15;
  37. imm32 r7, 0x866677a7;
  38. R0 = R1 - R0 (NS);
  39. R1 = R1 - R1 (NS);
  40. R2 = R1 - R2 (NS);
  41. R3 = R1 - R3 (NS);
  42. R4 = R1 - R4 (NS);
  43. R5 = R1 - R5 (NS);
  44. R6 = R1 - R6 (NS);
  45. R7 = R1 - R7 (NS);
  46. CHECKREG r0, 0xA522220C;
  47. CHECKREG r1, 0x00000000;
  48. CHECKREG r2, 0xAB5BAAEB;
  49. CHECKREG r3, 0xB99588E9;
  50. CHECKREG r4, 0xAA9856E5;
  51. CHECKREG r5, 0x987654E3;
  52. CHECKREG r6, 0x8BBBA5EB;
  53. CHECKREG r7, 0x79998859;
  54. imm32 r0, 0xda678911;
  55. imm32 r1, 0x27c9ab1d;
  56. imm32 r2, 0x344c5515;
  57. imm32 r3, 0x4666c717;
  58. imm32 r4, 0x5567891b;
  59. imm32 r5, 0x6789ab1d;
  60. imm32 r6, 0x744455b5;
  61. imm32 r7, 0x8666777b;
  62. R0 = R2 - R0 (NS);
  63. R1 = R2 - R1 (NS);
  64. R2 = R2 - R2 (NS);
  65. R3 = R2 - R3 (NS);
  66. R4 = R2 - R4 (NS);
  67. R5 = R2 - R5 (NS);
  68. R6 = R2 - R6 (NS);
  69. R7 = R2 - R7 (NS);
  70. CHECKREG r0, 0x59E4CC04;
  71. CHECKREG r1, 0x0C82A9F8;
  72. CHECKREG r2, 0x00000000;
  73. CHECKREG r3, 0xB99938E9;
  74. CHECKREG r4, 0xAA9876E5;
  75. CHECKREG r5, 0x987654E3;
  76. CHECKREG r6, 0x8BBBAA4B;
  77. CHECKREG r7, 0x79998885;
  78. imm32 r0, 0x65678911;
  79. imm32 r1, 0x7289ab1d;
  80. imm32 r2, 0x84345515;
  81. imm32 r3, 0x96647717;
  82. imm32 r4, 0x5567591b;
  83. imm32 r5, 0x6789a61d;
  84. imm32 r6, 0x744d5515;
  85. imm32 r7, 0x8666b777;
  86. R0 = R3 - R0 (NS);
  87. R1 = R3 - R1 (NS);
  88. R2 = R3 - R2 (NS);
  89. R3 = R3 - R3 (NS);
  90. R4 = R3 - R4 (NS);
  91. R5 = R3 - R5 (NS);
  92. R6 = R3 - R6 (NS);
  93. R7 = R3 - R7 (NS);
  94. CHECKREG r0, 0x30FCEE06;
  95. CHECKREG r1, 0x23DACBFA;
  96. CHECKREG r2, 0x12302202;
  97. CHECKREG r3, 0x00000000;
  98. CHECKREG r4, 0xAA98A6E5;
  99. CHECKREG r5, 0x987659E3;
  100. CHECKREG r6, 0x8BB2AAEB;
  101. CHECKREG r7, 0x79994889;
  102. imm32 r0, 0x15678911;
  103. imm32 r1, 0x2789ab1d;
  104. imm32 r2, 0x34445515;
  105. imm32 r3, 0x46667717;
  106. imm32 r4, 0x5567891b;
  107. imm32 r5, 0x6789ab1d;
  108. imm32 r6, 0x74445515;
  109. imm32 r7, 0x86667777;
  110. R0 = R4 - R0 (NS);
  111. R1 = R4 - R1 (NS);
  112. R2 = R4 - R2 (NS);
  113. R3 = R4 - R3 (NS);
  114. R4 = R4 - R4 (NS);
  115. R5 = R4 - R5 (NS);
  116. R6 = R4 - R6 (NS);
  117. R7 = R4 - R7 (NS);
  118. CHECKREG r0, 0x4000000A;
  119. CHECKREG r1, 0x2DDDDDFE;
  120. CHECKREG r2, 0x21233406;
  121. CHECKREG r3, 0x0F011204;
  122. CHECKREG r4, 0x00000000;
  123. CHECKREG r5, 0x987654E3;
  124. CHECKREG r6, 0x8BBBAAEB;
  125. CHECKREG r7, 0x79998889;
  126. imm32 r0, 0x95678911;
  127. imm32 r1, 0x8789ab1d;
  128. imm32 r2, 0x74445515;
  129. imm32 r3, 0x36667717;
  130. imm32 r4, 0x3567891b;
  131. imm32 r5, 0x6e89ab1d;
  132. imm32 r6, 0x74e45515;
  133. imm32 r7, 0x866e7777;
  134. R0 = R5 - R0 (NS);
  135. R1 = R5 - R1 (NS);
  136. R2 = R5 - R2 (NS);
  137. R3 = R5 - R3 (NS);
  138. R4 = R5 - R4 (NS);
  139. R5 = R5 - R5 (NS);
  140. R6 = R5 - R6 (NS);
  141. R7 = R5 - R7 (NS);
  142. CHECKREG r0, 0xD922220C;
  143. CHECKREG r1, 0xE7000000;
  144. CHECKREG r2, 0xFA455608;
  145. CHECKREG r3, 0x38233406;
  146. CHECKREG r4, 0x39222202;
  147. CHECKREG r5, 0x00000000;
  148. CHECKREG r6, 0x8B1BAAEB;
  149. CHECKREG r7, 0x79918889;
  150. imm32 r0, 0x5a678911;
  151. imm32 r1, 0x67c9ab1d;
  152. imm32 r2, 0x744d5515;
  153. imm32 r3, 0x8666b717;
  154. imm32 r4, 0x9567891b;
  155. imm32 r5, 0x6789db1d;
  156. imm32 r6, 0x74445f15;
  157. imm32 r7, 0x866677f7;
  158. R0 = R6 - R0 (NS);
  159. R1 = R6 - R1 (NS);
  160. R2 = R6 - R2 (NS);
  161. R3 = R6 - R3 (NS);
  162. R4 = R6 - R4 (NS);
  163. R5 = R6 - R5 (NS);
  164. R6 = R6 - R6 (NS);
  165. R7 = R6 - R7 (NS);
  166. CHECKREG r0, 0x19DCD604;
  167. CHECKREG r1, 0x0C7AB3F8;
  168. CHECKREG r2, 0xFFF70A00;
  169. CHECKREG r3, 0xEDDDA7FE;
  170. CHECKREG r4, 0xDEDCD5FA;
  171. CHECKREG r5, 0x0CBA83F8;
  172. CHECKREG r6, 0x00000000;
  173. CHECKREG r7, 0x79998809;
  174. imm32 r0, 0x25678911;
  175. imm32 r1, 0x2389ab1d;
  176. imm32 r2, 0x3a455515;
  177. imm32 r3, 0x46d66717;
  178. imm32 r4, 0x556b891b;
  179. imm32 r5, 0x6789cb1d;
  180. imm32 r6, 0x74445515;
  181. imm32 r7, 0x86667777;
  182. R0 = R7 - R0 (NS);
  183. R1 = R7 - R1 (NS);
  184. R2 = R7 - R2 (NS);
  185. R3 = R7 - R3 (NS);
  186. R4 = R7 - R4 (NS);
  187. R5 = R7 - R5 (NS);
  188. R6 = R7 - R6 (NS);
  189. R7 = R7 - R7 (NS);
  190. CHECKREG r0, 0x60FEEE66;
  191. CHECKREG r1, 0x62DCCC5A;
  192. CHECKREG r2, 0x4C212262;
  193. CHECKREG r3, 0x3F901060;
  194. CHECKREG r4, 0x30FAEE5C;
  195. CHECKREG r5, 0x1EDCAC5A;
  196. CHECKREG r6, 0x12222262;
  197. CHECKREG r7, 0x00000000;
  198. imm32 r0, 0xd5678911;
  199. imm32 r1, 0x2e89ab1d;
  200. imm32 r2, 0x34f45515;
  201. imm32 r3, 0x466b7717;
  202. imm32 r4, 0x5567c91b;
  203. imm32 r5, 0x6789ab1d;
  204. imm32 r6, 0x74445115;
  205. imm32 r7, 0x866a7d77;
  206. R3 = R1 - R4 (S);
  207. R7 = R4 - R6 (S);
  208. R2 = R7 - R7 (S);
  209. R4 = R5 - R0 (S);
  210. R5 = R3 - R1 (S);
  211. R6 = R2 - R3 (S);
  212. R0 = R0 - R2 (S);
  213. R1 = R6 - R5 (S);
  214. CHECKREG r0, 0xD5678911;
  215. CHECKREG r1, 0x7C45E719;
  216. CHECKREG r2, 0x00000000;
  217. CHECKREG r3, 0xD921E202;
  218. CHECKREG r4, 0x7FFFFFFF;
  219. CHECKREG r5, 0xAA9836E5;
  220. CHECKREG r6, 0x26DE1DFE;
  221. CHECKREG r7, 0xE1237806;
  222. imm32 r0, 0x15678911;
  223. imm32 r1, 0x2789ab1d;
  224. imm32 r2, 0x34445515;
  225. imm32 r3, 0x46667717;
  226. imm32 r4, 0x5567891b;
  227. imm32 r5, 0x6789ab1d;
  228. imm32 r6, 0x74445515;
  229. imm32 r7, 0x86667777;
  230. R3 = R3 - R3 (S);
  231. R1 = R7 - R6 (S);
  232. R4 = R1 - R2 (S);
  233. R7 = R4 - R0 (S);
  234. R5 = R6 - R4 (S);
  235. R2 = R5 - R5 (S);
  236. R6 = R2 - R1 (S);
  237. R0 = R0 - R7 (S);
  238. CHECKREG r0, 0x7FFFFFFF;
  239. CHECKREG r1, 0x80000000;
  240. CHECKREG r2, 0x00000000;
  241. CHECKREG r3, 0x00000000;
  242. CHECKREG r4, 0x80000000;
  243. CHECKREG r5, 0x7FFFFFFF;
  244. CHECKREG r6, 0x7FFFFFFF;
  245. CHECKREG r7, 0x80000000;
  246. pass