c_dsp32mac_pair_a1_i.s 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. //Original:/proj/frio/dv/testcases/core/c_dsp32mac_pair_a1_i/c_dsp32mac_pair_a1_i.dsp
  2. // Spec Reference: dsp32mac pair a1 I
  3. # mach: bfin
  4. .include "testutils.inc"
  5. start
  6. A1 = A0 = 0;
  7. // The result accumulated in A1 , and stored to a reg half
  8. imm32 r0, 0x93545abd;
  9. imm32 r1, 0x89bcfec7;
  10. imm32 r2, 0xa8945679;
  11. imm32 r3, 0x00890007;
  12. imm32 r4, 0xefb89569;
  13. imm32 r5, 0x1235890b;
  14. imm32 r6, 0x000c089d;
  15. imm32 r7, 0x678e0089;
  16. R7 = ( A1 += R1.L * R0.L ), A0 = R1.L * R0.L (IS);
  17. P1 = A1.w;
  18. R1 = ( A1 = R2.L * R3.L ), A0 -= R2.H * R3.L (IS);
  19. P2 = A1.w;
  20. R3 = ( A1 = R7.L * R4.L ), A0 += R7.H * R4.H (IS);
  21. P3 = A1.w;
  22. R5 = ( A1 += R6.L * R5.L ), A0 += R6.L * R5.H (IS);
  23. P4 = A1.w;
  24. CHECKREG r0, 0x93545ABD;
  25. CHECKREG r1, 0x00025D4F;
  26. CHECKREG r2, 0xA8945679;
  27. CHECKREG r3, 0xF9C9E563;
  28. CHECKREG r4, 0xEFB89569;
  29. CHECKREG r5, 0xF5C94922;
  30. CHECKREG r6, 0x000C089D;
  31. CHECKREG r7, 0xFF910EEB;
  32. CHECKREG p1, 0xFF910EEB;
  33. CHECKREG p2, 0x00025D4F;
  34. CHECKREG p3, 0xF9C9E563;
  35. CHECKREG p4, 0xF5C94922;
  36. imm32 r0, 0x98464abd;
  37. imm32 r1, 0xa1b5f4c7;
  38. imm32 r2, 0xa1146649;
  39. imm32 r3, 0x00010805;
  40. imm32 r4, 0xefbc1599;
  41. imm32 r5, 0x12350100;
  42. imm32 r6, 0x200c001d;
  43. imm32 r7, 0x628e0001;
  44. R5 = ( A1 += R1.L * R0.H ), A0 = R1.L * R0.L (IS);
  45. P1 = A1.w;
  46. R1 = ( A1 = R2.L * R3.H ), A0 = R2.H * R3.L (IS);
  47. P2 = A1.w;
  48. R3 = ( A1 = R4.L * R5.H ), A0 -= R4.H * R5.H (IS);
  49. P3 = A1.w;
  50. R1 = ( A1 += R6.L * R7.H ), A0 += R6.L * R7.H (IS);
  51. P4 = A1.w;
  52. CHECKREG r0, 0x98464ABD;
  53. CHECKREG r1, 0xFF90BFE3;
  54. CHECKREG r2, 0xA1146649;
  55. CHECKREG r3, 0xFF8595CD;
  56. CHECKREG r4, 0xEFBC1599;
  57. CHECKREG r5, 0xFA555F8C;
  58. CHECKREG r6, 0x200C001D;
  59. CHECKREG r7, 0x628E0001;
  60. CHECKREG p1, 0xFA555F8C;
  61. CHECKREG p2, 0x00006649;
  62. CHECKREG p3, 0xFF8595CD;
  63. CHECKREG p4, 0xFF90BFE3;
  64. imm32 r0, 0x713a459d;
  65. imm32 r1, 0xabd6aec7;
  66. imm32 r2, 0x7a145a79;
  67. imm32 r3, 0x08a100a7;
  68. imm32 r4, 0xef9a156a;
  69. imm32 r5, 0x1225a10b;
  70. imm32 r6, 0x0003401d;
  71. imm32 r7, 0x678e0a61;
  72. R5 = ( A1 += R1.H * R0.L ), A0 -= R1.L * R0.L (IS);
  73. P1 = A1.w;
  74. R7 = ( A1 -= R2.H * R3.L ), A0 = R2.H * R3.L (IS);
  75. P2 = A1.w;
  76. R1 = ( A1 -= R4.H * R5.L ), A0 += R4.H * R5.H (IS);
  77. P3 = A1.w;
  78. R5 = ( A1 += R6.H * R7.L ), A0 += R6.L * R7.H (IS);
  79. P4 = A1.w;
  80. CHECKREG r0, 0x713A459D;
  81. CHECKREG r1, 0xE54D2A3B;
  82. CHECKREG r2, 0x7A145A79;
  83. CHECKREG r3, 0x08A100A7;
  84. CHECKREG r4, 0xEF9A156A;
  85. CHECKREG r5, 0xE54DB17A;
  86. CHECKREG r6, 0x0003401D;
  87. CHECKREG r7, 0xE85E2D15;
  88. CHECKREG p1, 0xE8ADD021;
  89. CHECKREG p2, 0xE85E2D15;
  90. CHECKREG p3, 0xE54D2A3B;
  91. CHECKREG p4, 0xE54DB17A;
  92. imm32 r0, 0x773489bd;
  93. imm32 r1, 0x917cfec7;
  94. imm32 r2, 0xa9177679;
  95. imm32 r3, 0xd0910777;
  96. imm32 r4, 0xedb91579;
  97. imm32 r5, 0xd235910b;
  98. imm32 r6, 0x0d077999;
  99. imm32 r7, 0x677e0709;
  100. R1 = ( A1 += R5.H * R3.H ), A0 = R5.L * R3.L (IS);
  101. P1 = A1.w;
  102. R3 = ( A1 -= R2.H * R1.H ), A0 = R2.H * R1.L (IS);
  103. P2 = A1.w;
  104. R5 = ( A1 -= R7.H * R0.H ), A0 += R7.H * R0.H (IS);
  105. P3 = A1.w;
  106. R7 = ( A1 += R4.H * R6.H ), A0 -= R4.L * R6.H (IS);
  107. P4 = A1.w;
  108. CHECKREG r0, 0x773489BD;
  109. CHECKREG r1, 0xEDC9D17F;
  110. CHECKREG r2, 0xA9177679;
  111. CHECKREG r3, 0xE79AC370;
  112. CHECKREG r4, 0xEDB91579;
  113. CHECKREG r5, 0xB76A2BD8;
  114. CHECKREG r6, 0x0D077999;
  115. CHECKREG r7, 0xB67C10E7;
  116. CHECKREG p1, 0xEDC9D17F;
  117. CHECKREG p2, 0xE79AC370;
  118. CHECKREG p3, 0xB76A2BD8;
  119. CHECKREG p4, 0xB67C10E7;
  120. imm32 r0, 0x83547abd;
  121. imm32 r1, 0x88bc8ec7;
  122. imm32 r2, 0xa8895679;
  123. imm32 r3, 0x00080007;
  124. imm32 r4, 0xe6b86569;
  125. imm32 r5, 0x1A35860b;
  126. imm32 r6, 0x000c896d;
  127. imm32 r7, 0x67Be0096;
  128. R7 = ( A1 += R1.L * R0.L ) (IS);
  129. P1 = A1.w;
  130. R1 = ( A1 = R2.H * R3.L ) (IS);
  131. P2 = A1.w;
  132. R3 = ( A1 = R7.L * R4.H ) (IS);
  133. P3 = A1.w;
  134. R5 = ( A1 += R6.H * R5.H ) (IS);
  135. P4 = A1.w;
  136. CHECKREG r0, 0x83547ABD;
  137. CHECKREG r1, 0xFFFD9BBF;
  138. CHECKREG r2, 0xA8895679;
  139. CHECKREG r3, 0xF81E0AF0;
  140. CHECKREG r4, 0xE6B86569;
  141. CHECKREG r5, 0xF81F456C;
  142. CHECKREG r6, 0x000C896D;
  143. CHECKREG r7, 0x80334FD2;
  144. CHECKREG p1, 0x80334FD2;
  145. CHECKREG p2, 0xFFFD9BBF;
  146. CHECKREG p3, 0xF81E0AF0;
  147. CHECKREG p4, 0xF81F456C;
  148. imm32 r0, 0x9aa64abd;
  149. imm32 r1, 0xa1baf4c7;
  150. imm32 r2, 0xb114a649;
  151. imm32 r3, 0x0b010005;
  152. imm32 r4, 0xefbcdb69;
  153. imm32 r5, 0x123501bb;
  154. imm32 r6, 0x000c0d1b;
  155. imm32 r7, 0x678e0d01;
  156. R5 = ( A1 += R1.L * R0.H ) (M), A0 = R1.L * R0.L (IS);
  157. P1 = A1.w;
  158. R1 = ( A1 = R2.L * R3.H ) (M), A0 -= R2.H * R3.L (IS);
  159. P2 = A1.w;
  160. R3 = ( A1 -= R4.L * R5.H ) (M), A0 += R4.H * R5.H (IS);
  161. P3 = A1.w;
  162. R1 = ( A1 += R6.L * R7.H ) (M), A0 += R6.L * R7.H (IS);
  163. P4 = A1.w;
  164. CHECKREG r0, 0x9AA64ABD;
  165. CHECKREG r1, 0x23F08194;
  166. CHECKREG r2, 0xB114A649;
  167. CHECKREG r3, 0x1EA35F9A;
  168. CHECKREG r4, 0xEFBCDB69;
  169. CHECKREG r5, 0xF157B476;
  170. CHECKREG r6, 0x000C0D1B;
  171. CHECKREG r7, 0x678E0D01;
  172. CHECKREG p1, 0xF157B476;
  173. CHECKREG p2, 0xFC24C949;
  174. CHECKREG p3, 0x1EA35F9A;
  175. CHECKREG p4, 0x23F08194;
  176. imm32 r0, 0xd136459d;
  177. imm32 r1, 0xabd69ec7;
  178. imm32 r2, 0x71145679;
  179. imm32 r3, 0xdd010007;
  180. imm32 r4, 0xeddc1569;
  181. imm32 r5, 0x122d010b;
  182. imm32 r6, 0x00e3d01d;
  183. imm32 r7, 0x678e0d61;
  184. R5 = A1 , A0 -= R1.L * R0.L (IS);
  185. P1 = A1.w;
  186. R7 = A1 , A0 = R2.H * R3.L (IS);
  187. P2 = A1.w;
  188. R1 = A1 , A0 += R4.H * R5.H (IS);
  189. P3 = A1.w;
  190. R5 = A1 , A0 += R6.L * R7.H (IS);
  191. P4 = A1.w;
  192. CHECKREG r0, 0xD136459D;
  193. CHECKREG r1, 0x23F08194;
  194. CHECKREG r2, 0x71145679;
  195. CHECKREG r3, 0xDD010007;
  196. CHECKREG r4, 0xEDDC1569;
  197. CHECKREG r5, 0x23F08194;
  198. CHECKREG r6, 0x00E3D01D;
  199. CHECKREG r7, 0x23F08194;
  200. CHECKREG p1, 0x23F08194;
  201. CHECKREG p2, 0x23F08194;
  202. CHECKREG p3, 0x23F08194;
  203. CHECKREG p4, 0x23F08194;
  204. imm32 r0, 0x125489bd;
  205. imm32 r1, 0x91b5fec7;
  206. imm32 r2, 0xa9145679;
  207. imm32 r3, 0xd0910507;
  208. imm32 r4, 0x34567859;
  209. imm32 r5, 0xd2359105;
  210. imm32 r6, 0x0d0c0999;
  211. imm32 r7, 0x67de0009;
  212. R1 = ( A1 += R5.H * R3.H ) (M,IS);
  213. P1 = A1.w;
  214. R3 = ( A1 = R2.H * R1.H ) (M,IS);
  215. P2 = A1.w;
  216. R5 = ( A1 -= R7.H * R0.H ) (M,IS);
  217. P3 = A1.w;
  218. R7 = ( A1 += R4.H * R6.H ) (M,IS);
  219. P4 = A1.w;
  220. CHECKREG r0, 0x125489BD;
  221. CHECKREG r1, 0xFEA1A199;
  222. CHECKREG r2, 0xA9145679;
  223. CHECKREG r3, 0xA98B2D94;
  224. CHECKREG r4, 0x34567859;
  225. CHECKREG r5, 0xA21B7CBC;
  226. CHECKREG r6, 0x0D0C0999;
  227. CHECKREG r7, 0xA4C64EC4;
  228. CHECKREG p1, 0xFEA1A199;
  229. CHECKREG p2, 0xA98B2D94;
  230. CHECKREG p3, 0xA21B7CBC;
  231. CHECKREG p4, 0xA4C64EC4;
  232. pass