c_dsp32alu_minmin.s 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. //Original:/testcases/core/c_dsp32alu_minmin/c_dsp32alu_minmin.dsp
  2. // Spec Reference: dsp32alu dregs = min / min ( dregs, dregs)
  3. # mach: bfin
  4. .include "testutils.inc"
  5. start
  6. imm32 r0, 0x25678911;
  7. imm32 r1, 0x2389ab1d;
  8. imm32 r2, 0x2a445345;
  9. imm32 r3, 0x46657717;
  10. imm32 r4, 0xd567e91b;
  11. imm32 r5, 0x6789af1d;
  12. imm32 r6, 0x74445d85;
  13. imm32 r7, 0x8666a779;
  14. R0 = MIN ( R0 , R0 ) (V);
  15. R1 = MIN ( R0 , R1 ) (V);
  16. R2 = MIN ( R0 , R2 ) (V);
  17. R3 = MIN ( R0 , R3 ) (V);
  18. R4 = MIN ( R0 , R4 ) (V);
  19. R5 = MIN ( R0 , R5 ) (V);
  20. R6 = MIN ( R0 , R6 ) (V);
  21. R7 = MIN ( R0 , R7 ) (V);
  22. CHECKREG r0, 0x25678911;
  23. CHECKREG r1, 0x23898911;
  24. CHECKREG r2, 0x25678911;
  25. CHECKREG r3, 0x25678911;
  26. CHECKREG r4, 0xD5678911;
  27. CHECKREG r5, 0x25678911;
  28. CHECKREG r6, 0x25678911;
  29. CHECKREG r7, 0x86668911;
  30. imm32 r0, 0x9567892b;
  31. imm32 r1, 0xa789ab2d;
  32. imm32 r2, 0xb4445525;
  33. imm32 r3, 0xc6667727;
  34. imm32 r4, 0xd8889929;
  35. imm32 r5, 0xeaaabb2b;
  36. imm32 r6, 0xfcccdd2d;
  37. imm32 r7, 0x0eeeffff;
  38. R0 = MIN ( R1 , R0 ) (V);
  39. R1 = MIN ( R1 , R1 ) (V);
  40. R2 = MIN ( R1 , R2 ) (V);
  41. R3 = MIN ( R1 , R3 ) (V);
  42. R4 = MIN ( R1 , R4 ) (V);
  43. R5 = MIN ( R1 , R5 ) (V);
  44. R6 = MIN ( R1 , R6 ) (V);
  45. R7 = MIN ( R1 , R7 ) (V);
  46. CHECKREG r0, 0x9567892B;
  47. CHECKREG r1, 0xA789AB2D;
  48. CHECKREG r2, 0xA789AB2D;
  49. CHECKREG r3, 0xA789AB2D;
  50. CHECKREG r4, 0xA7899929;
  51. CHECKREG r5, 0xA789AB2D;
  52. CHECKREG r6, 0xA789AB2D;
  53. CHECKREG r7, 0xA789AB2D;
  54. imm32 r0, 0x416789ab;
  55. imm32 r1, 0x5289abcd;
  56. imm32 r2, 0x43445555;
  57. imm32 r3, 0xa466a777;
  58. imm32 r4, 0x45678dab;
  59. imm32 r5, 0xf689abcd;
  60. imm32 r6, 0x47445555;
  61. imm32 r7, 0x68667777;
  62. R0 = MIN ( R2 , R0 ) (V);
  63. R1 = MIN ( R2 , R1 ) (V);
  64. R2 = MIN ( R2 , R2 ) (V);
  65. R3 = MIN ( R2 , R3 ) (V);
  66. R4 = MIN ( R2 , R4 ) (V);
  67. R5 = MIN ( R2 , R5 ) (V);
  68. R6 = MIN ( R2 , R6 ) (V);
  69. R7 = MIN ( R2 , R7 ) (V);
  70. CHECKREG r0, 0x416789AB;
  71. CHECKREG r1, 0x4344ABCD;
  72. CHECKREG r2, 0x43445555;
  73. CHECKREG r3, 0xA466A777;
  74. CHECKREG r4, 0x43448DAB;
  75. CHECKREG r5, 0xF689ABCD;
  76. CHECKREG r6, 0x43445555;
  77. CHECKREG r7, 0x43445555;
  78. imm32 r0, 0x9567892b;
  79. imm32 r1, 0xa789ab2d;
  80. imm32 r2, 0xb4445525;
  81. imm32 r3, 0xc6667727;
  82. imm32 r0, 0x9567892b;
  83. imm32 r1, 0xa789ab2d;
  84. imm32 r2, 0xb4445525;
  85. imm32 r3, 0xc6667727;
  86. R0 = MIN ( R3 , R0 ) (V);
  87. R1 = MIN ( R3 , R1 ) (V);
  88. R2 = MIN ( R3 , R2 ) (V);
  89. R3 = MIN ( R3 , R3 ) (V);
  90. R4 = MIN ( R3 , R4 ) (V);
  91. R5 = MIN ( R3 , R5 ) (V);
  92. R6 = MIN ( R3 , R6 ) (V);
  93. R7 = MIN ( R3 , R7 ) (V);
  94. CHECKREG r0, 0x9567892B;
  95. CHECKREG r1, 0xA789AB2D;
  96. CHECKREG r2, 0xB4445525;
  97. CHECKREG r3, 0xC6667727;
  98. CHECKREG r4, 0xC6668DAB;
  99. CHECKREG r5, 0xC666ABCD;
  100. CHECKREG r6, 0xC6665555;
  101. CHECKREG r7, 0xC6665555;
  102. imm32 r0, 0x5537891b;
  103. imm32 r1, 0x6759ab2d;
  104. imm32 r2, 0x74555535;
  105. imm32 r3, 0x86665747;
  106. imm32 r4, 0x98789565;
  107. imm32 r5, 0xaa8abb5b;
  108. imm32 r6, 0xcc9cdd85;
  109. imm32 r7, 0xeeaeff9f;
  110. R0 = MIN ( R4 , R0 ) (V);
  111. R1 = MIN ( R4 , R1 ) (V);
  112. R2 = MIN ( R4 , R2 ) (V);
  113. R3 = MIN ( R4 , R3 ) (V);
  114. R4 = MIN ( R4 , R4 ) (V);
  115. R5 = MIN ( R4 , R5 ) (V);
  116. R6 = MIN ( R4 , R6 ) (V);
  117. R7 = MIN ( R4 , R7 ) (V);
  118. CHECKREG r0, 0x9878891B;
  119. CHECKREG r1, 0x98789565;
  120. CHECKREG r2, 0x98789565;
  121. CHECKREG r3, 0x86669565;
  122. CHECKREG r4, 0x98789565;
  123. CHECKREG r5, 0x98789565;
  124. CHECKREG r6, 0x98789565;
  125. CHECKREG r7, 0x98789565;
  126. imm32 r0, 0x256b89ab;
  127. imm32 r1, 0x64764bcd;
  128. imm32 r2, 0x49736564;
  129. imm32 r3, 0x61278394;
  130. imm32 r4, 0x98876439;
  131. imm32 r5, 0xaaaa0bbb;
  132. imm32 r6, 0xcccc1ddd;
  133. imm32 r7, 0x43346fff;
  134. R0 = MIN ( R5 , R0 ) (V);
  135. R1 = MIN ( R5 , R1 ) (V);
  136. R2 = MIN ( R5 , R2 ) (V);
  137. R3 = MIN ( R5 , R3 ) (V);
  138. R4 = MIN ( R5 , R4 ) (V);
  139. R5 = MIN ( R5 , R5 ) (V);
  140. R6 = MIN ( R5 , R6 ) (V);
  141. R7 = MIN ( R5 , R7 ) (V);
  142. CHECKREG r0, 0xAAAA89AB;
  143. CHECKREG r1, 0xAAAA0BBB;
  144. CHECKREG r2, 0xAAAA0BBB;
  145. CHECKREG r3, 0xAAAA8394;
  146. CHECKREG r4, 0x98870BBB;
  147. CHECKREG r5, 0xAAAA0BBB;
  148. CHECKREG r6, 0xAAAA0BBB;
  149. CHECKREG r7, 0xAAAA0BBB;
  150. imm32 r0, 0x456739ab;
  151. imm32 r1, 0x67694bcd;
  152. imm32 r2, 0x03456755;
  153. imm32 r3, 0x66666777;
  154. imm32 r4, 0x12345699;
  155. imm32 r5, 0x45678b6b;
  156. imm32 r6, 0x043290d6;
  157. imm32 r7, 0x1234567f;
  158. R0 = MIN ( R6 , R0 ) (V);
  159. R1 = MIN ( R6 , R1 ) (V);
  160. R2 = MIN ( R6 , R2 ) (V);
  161. R3 = MIN ( R6 , R3 ) (V);
  162. R4 = MIN ( R6 , R4 ) (V);
  163. R5 = MIN ( R6 , R5 ) (V);
  164. R6 = MIN ( R6 , R6 ) (V);
  165. R7 = MIN ( R6 , R7 ) (V);
  166. CHECKREG r0, 0x043290D6;
  167. CHECKREG r1, 0x043290D6;
  168. CHECKREG r2, 0x034590D6;
  169. CHECKREG r3, 0x043290D6;
  170. CHECKREG r4, 0x043290D6;
  171. CHECKREG r5, 0x04328B6B;
  172. CHECKREG r6, 0x043290D6;
  173. CHECKREG r7, 0x043290D6;
  174. imm32 r0, 0x976789ab;
  175. imm32 r1, 0x6779abcd;
  176. imm32 r2, 0x8345a755;
  177. imm32 r3, 0x5678b007;
  178. imm32 r4, 0x789ab799;
  179. imm32 r5, 0xaaaa0bbb;
  180. imm32 r6, 0x89ab1d7d;
  181. imm32 r7, 0xabcd2ff7;
  182. R0 = MIN ( R7 , R0 ) (V);
  183. R1 = MIN ( R7 , R1 ) (V);
  184. R2 = MIN ( R7 , R2 ) (V);
  185. R3 = MIN ( R7 , R3 ) (V);
  186. R4 = MIN ( R7 , R4 ) (V);
  187. R5 = MIN ( R7 , R5 ) (V);
  188. R6 = MIN ( R7 , R6 ) (V);
  189. R7 = MIN ( R7 , R7 ) (V);
  190. CHECKREG r0, 0x976789AB;
  191. CHECKREG r1, 0xABCDABCD;
  192. CHECKREG r2, 0x8345A755;
  193. CHECKREG r3, 0xABCDB007;
  194. CHECKREG r4, 0xABCDB799;
  195. CHECKREG r5, 0xAAAA0BBB;
  196. CHECKREG r6, 0x89AB1D7D;
  197. CHECKREG r7, 0xABCD2FF7;
  198. imm32 r0, 0x456739ab;
  199. imm32 r1, 0x67694bcd;
  200. imm32 r2, 0x03456755;
  201. imm32 r3, 0x66666777;
  202. imm32 r4, 0x12345699;
  203. imm32 r5, 0x45678b6b;
  204. imm32 r6, 0x043290d6;
  205. imm32 r7, 0x1234567f;
  206. R4 = MIN ( R4 , R7 ) (V);
  207. R5 = MIN ( R5 , R5 ) (V);
  208. R2 = MIN ( R6 , R3 ) (V);
  209. R6 = MIN ( R0 , R4 ) (V);
  210. R0 = MIN ( R1 , R6 ) (V);
  211. R2 = MIN ( R2 , R1 ) (V);
  212. R1 = MIN ( R3 , R0 ) (V);
  213. R7 = MIN ( R7 , R4 ) (V);
  214. CHECKREG r0, 0x123439AB;
  215. CHECKREG r1, 0x123439AB;
  216. CHECKREG r2, 0x043290D6;
  217. CHECKREG r3, 0x66666777;
  218. CHECKREG r4, 0x1234567F;
  219. CHECKREG r5, 0x45678B6B;
  220. CHECKREG r6, 0x123439AB;
  221. CHECKREG r7, 0x1234567F;
  222. imm32 r0, 0xa76789ab;
  223. imm32 r1, 0x6779abcd;
  224. imm32 r2, 0xb3456755;
  225. imm32 r3, 0x5678d007;
  226. imm32 r4, 0x789ab799;
  227. imm32 r5, 0xaaaa0bbb;
  228. imm32 r6, 0x89ab1d7d;
  229. imm32 r7, 0xabcd2ff7;
  230. R3 = MIN ( R4 , R0 ) (V);
  231. R5 = MIN ( R5 , R1 ) (V);
  232. R2 = MIN ( R2 , R2 ) (V);
  233. R7 = MIN ( R7 , R3 ) (V);
  234. R4 = MIN ( R3 , R4 ) (V);
  235. R0 = MIN ( R1 , R5 ) (V);
  236. R1 = MIN ( R0 , R6 ) (V);
  237. R6 = MIN ( R6 , R7 ) (V);
  238. CHECKREG r0, 0xAAAAABCD;
  239. CHECKREG r1, 0x89ABABCD;
  240. CHECKREG r2, 0xB3456755;
  241. CHECKREG r3, 0xA76789AB;
  242. CHECKREG r4, 0xA76789AB;
  243. CHECKREG r5, 0xAAAAABCD;
  244. CHECKREG r6, 0x89AB89AB;
  245. CHECKREG r7, 0xA76789AB;
  246. pass