c_comp3op_dr_mix.s 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. //Original:/testcases/core/c_comp3op_dr_mix/c_comp3op_dr_mix.dsp
  2. // Spec Reference: comp3op dregs mix
  3. # mach: bfin
  4. .include "testutils.inc"
  5. start
  6. imm32 r0, 0x01234567;
  7. imm32 r1, 0x89abcdef;
  8. imm32 r2, 0x56789abc;
  9. imm32 r3, 0xdef01234;
  10. imm32 r4, 0x23456899;
  11. imm32 r5, 0x78912345;
  12. imm32 r6, 0x98765432;
  13. imm32 r7, 0x12345678;
  14. R0 = R0 + R0;
  15. R1 = R0 - R1;
  16. R2 = R0 & R2;
  17. R3 = R0 | R3;
  18. R4 = R0 & R4;
  19. R5 = R0 & R5;
  20. R6 = R0 | R6;
  21. R7 = R0 & R7;
  22. CHECKREG r0, 0x02468ACE;
  23. CHECKREG r1, 0x789ABCDF;
  24. CHECKREG r2, 0x02408A8C;
  25. CHECKREG r3, 0xDEF69AFE;
  26. CHECKREG r4, 0x02440888;
  27. CHECKREG r5, 0x00000244;
  28. CHECKREG r6, 0x9A76DEFE;
  29. CHECKREG r7, 0x02040248;
  30. imm32 r0, 0x01231567;
  31. imm32 r1, 0x89ab1def;
  32. imm32 r2, 0x56781abc;
  33. imm32 r3, 0xdef01234;
  34. imm32 r4, 0x23451899;
  35. imm32 r5, 0x78911345;
  36. imm32 r6, 0x98761432;
  37. imm32 r7, 0x12341678;
  38. R0 = R1 + R0;
  39. R1 = R1 - R1;
  40. R2 = R1 & R2;
  41. R3 = R1 | R3;
  42. R4 = R1 & R4;
  43. R5 = R1 & R5;
  44. R6 = R1 | R6;
  45. R7 = R1 & R7;
  46. CHECKREG r0, 0x8ACE3356;
  47. CHECKREG r1, 0x00000000;
  48. CHECKREG r2, 0x00000000;
  49. CHECKREG r3, 0xDEF01234;
  50. CHECKREG r4, 0x00000000;
  51. CHECKREG r5, 0x00000000;
  52. CHECKREG r6, 0x98761432;
  53. CHECKREG r7, 0x00000000;
  54. imm32 r0, 0x01234527;
  55. imm32 r1, 0x89abcd2f;
  56. imm32 r2, 0x56789a2c;
  57. imm32 r3, 0xdef01224;
  58. imm32 r4, 0x23456829;
  59. imm32 r5, 0x78912325;
  60. imm32 r6, 0x98765422;
  61. imm32 r7, 0x12345628;
  62. R0 = R2 + R0;
  63. R1 = R2 - R1;
  64. R2 = R2 & R2;
  65. R3 = R2 | R3;
  66. R4 = R2 & R4;
  67. R5 = R2 & R5;
  68. R6 = R2 | R6;
  69. R7 = R2 & R7;
  70. CHECKREG r0, 0x579BDF53;
  71. CHECKREG r1, 0xCCCCCCFD;
  72. CHECKREG r2, 0x56789A2C;
  73. CHECKREG r3, 0xDEF89A2C;
  74. CHECKREG r4, 0x02400828;
  75. CHECKREG r5, 0x50100224;
  76. CHECKREG r6, 0xDE7EDE2E;
  77. CHECKREG r7, 0x12301228;
  78. imm32 r0, 0x01234563;
  79. imm32 r1, 0x89abcde3;
  80. imm32 r2, 0x56789ab3;
  81. imm32 r3, 0xdef01233;
  82. imm32 r4, 0x23456893;
  83. imm32 r5, 0x78912343;
  84. imm32 r6, 0x98765433;
  85. imm32 r7, 0x12345673;
  86. R0 = R3 + R0;
  87. R1 = R3 - R1;
  88. R2 = R3 & R2;
  89. R3 = R3 | R3;
  90. R4 = R3 & R4;
  91. R5 = R3 - R5;
  92. R6 = R3 | R6;
  93. R7 = R3 & R7;
  94. CHECKREG r0, 0xE0135796;
  95. CHECKREG r1, 0x55444450;
  96. CHECKREG r2, 0x56701233;
  97. CHECKREG r3, 0xDEF01233;
  98. CHECKREG r4, 0x02400013;
  99. CHECKREG r5, 0x665EEEF0;
  100. CHECKREG r6, 0xDEF65633;
  101. CHECKREG r7, 0x12301233;
  102. imm32 r0, 0x41234567;
  103. imm32 r1, 0x49abcdef;
  104. imm32 r2, 0x46789abc;
  105. imm32 r3, 0x4ef01234;
  106. imm32 r4, 0x43456899;
  107. imm32 r5, 0x48912345;
  108. imm32 r6, 0x48765432;
  109. imm32 r7, 0x42345678;
  110. R0 = R4 + R0;
  111. R1 = R4 - R1;
  112. R2 = R4 & R2;
  113. R3 = R4 | R3;
  114. R4 = R4 & R4;
  115. R5 = R4 & R5;
  116. R6 = R4 | R6;
  117. R7 = R4 & R7;
  118. CHECKREG r0, 0x8468AE00;
  119. CHECKREG r1, 0xF9999AAA;
  120. CHECKREG r2, 0x42400898;
  121. CHECKREG r3, 0x4FF57ABD;
  122. CHECKREG r4, 0x43456899;
  123. CHECKREG r5, 0x40012001;
  124. CHECKREG r6, 0x4B777CBB;
  125. CHECKREG r7, 0x42044018;
  126. imm32 r0, 0x05234567;
  127. imm32 r1, 0x85abcdef;
  128. imm32 r2, 0x55789abc;
  129. imm32 r3, 0xd5f01234;
  130. imm32 r4, 0x25456899;
  131. imm32 r5, 0x75912345;
  132. imm32 r6, 0x95765432;
  133. imm32 r7, 0x15345678;
  134. R0 = R5 + R0;
  135. R1 = R5 - R1;
  136. R2 = R5 & R2;
  137. R3 = R5 | R3;
  138. R4 = R5 & R4;
  139. R5 = R5 & R5;
  140. R6 = R5 | R6;
  141. R7 = R5 & R7;
  142. CHECKREG r0, 0x7AB468AC;
  143. CHECKREG r1, 0xEFE55556;
  144. CHECKREG r2, 0x55100204;
  145. CHECKREG r3, 0xF5F13375;
  146. CHECKREG r4, 0x25012001;
  147. CHECKREG r5, 0x75912345;
  148. CHECKREG r6, 0xF5F77777;
  149. CHECKREG r7, 0x15100240;
  150. imm32 r0, 0x01264567;
  151. imm32 r1, 0x89a6cdef;
  152. imm32 r2, 0x56769abc;
  153. imm32 r3, 0xdef61234;
  154. imm32 r4, 0x23466899;
  155. imm32 r5, 0x78962345;
  156. imm32 r6, 0x98765432;
  157. imm32 r7, 0x12365678;
  158. R0 = R6 + R0;
  159. R1 = R6 - R1;
  160. R2 = R6 & R2;
  161. R3 = R6 | R3;
  162. R4 = R6 & R4;
  163. R5 = R6 & R5;
  164. R6 = R6 | R6;
  165. R7 = R6 & R7;
  166. CHECKREG r0, 0x999C9999;
  167. CHECKREG r1, 0x0ECF8643;
  168. CHECKREG r2, 0x10761030;
  169. CHECKREG r3, 0xDEF65636;
  170. CHECKREG r4, 0x00464010;
  171. CHECKREG r5, 0x18160000;
  172. CHECKREG r6, 0x98765432;
  173. CHECKREG r7, 0x10365430;
  174. imm32 r0, 0x01237567;
  175. imm32 r1, 0x89ab7def;
  176. imm32 r2, 0x56787abc;
  177. imm32 r3, 0xdef07234;
  178. imm32 r4, 0x23457899;
  179. imm32 r5, 0x78917345;
  180. imm32 r6, 0x98767432;
  181. imm32 r7, 0x12345678;
  182. R0 = R7 + R0;
  183. R1 = R7 - R1;
  184. R2 = R7 & R2;
  185. R3 = R7 | R3;
  186. R4 = R7 & R4;
  187. R5 = R7 - R5;
  188. R6 = R7 | R6;
  189. R7 = R7 & R7;
  190. CHECKREG r0, 0x1357CBDF;
  191. CHECKREG r1, 0x8888D889;
  192. CHECKREG r2, 0x12305238;
  193. CHECKREG r3, 0xDEF4767C;
  194. CHECKREG r4, 0x02045018;
  195. CHECKREG r5, 0x99A2E333;
  196. CHECKREG r6, 0x9A76767A;
  197. CHECKREG r7, 0x12345678;
  198. imm32 r0, 0x00000001;
  199. imm32 r1, 0x00020003;
  200. imm32 r2, 0x00040005;
  201. imm32 r3, 0x00060007;
  202. imm32 r4, 0x00080009;
  203. imm32 r5, 0x000a000b;
  204. imm32 r6, 0x000c000d;
  205. imm32 r7, 0x000e000f;
  206. R0 = R1 + R2;
  207. R1 = R3 - R2;
  208. R2 = R4 & R3;
  209. R3 = R5 | R4;
  210. R4 = R6 & R7;
  211. CHECKREG r0, 0x00060008;
  212. CHECKREG r1, 0x00020002;
  213. CHECKREG r2, 0x00000001;
  214. CHECKREG r3, 0x000A000B;
  215. CHECKREG r4, 0x000C000D;
  216. CHECKREG r5, 0x000a000b;
  217. CHECKREG r6, 0x000c000d;
  218. CHECKREG r7, 0x000e000f;
  219. pass