c_alu2op_log_r_sft.s 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. //Original:/proj/frio/dv/testcases/core/c_alu2op_log_r_sft/c_alu2op_log_r_sft.dsp
  2. // Spec Reference: alu2op logical right
  3. # mach: bfin
  4. .include "testutils.inc"
  5. start
  6. imm32 r0, 0x00000000;
  7. imm32 r1, 0x12345678;
  8. imm32 r2, 0x23456789;
  9. imm32 r3, 0x3456789a;
  10. imm32 r4, 0x856789ab;
  11. imm32 r5, 0x96789abc;
  12. imm32 r6, 0xa789abcd;
  13. imm32 r7, 0xb89abcde;
  14. R0.L = 1;
  15. R1 >>= R0;
  16. R2 >>= R0;
  17. R3 >>= R0;
  18. R4 >>= R0;
  19. R5 >>= R0;
  20. R6 >>= R0;
  21. R7 >>= R0;
  22. R4 >>= R0;
  23. R0 >>= R0;
  24. CHECKREG r1, 0x091A2B3C;
  25. CHECKREG r2, 0x11A2B3C4;
  26. CHECKREG r3, 0x1A2B3C4D;
  27. CHECKREG r4, 0x2159E26A;
  28. CHECKREG r5, 0x4B3C4D5E;
  29. CHECKREG r6, 0x53C4D5E6;
  30. CHECKREG r7, 0x5C4D5E6F;
  31. CHECKREG r0, 0x00000000;
  32. imm32 r0, 0x01230002;
  33. imm32 r1, 0x00000000;
  34. imm32 r2, 0x93456789;
  35. imm32 r3, 0xa456789a;
  36. imm32 r4, 0xb56789ab;
  37. imm32 r5, 0xc6789abc;
  38. imm32 r6, 0xd789abcd;
  39. imm32 r7, 0xe89abcde;
  40. R1.L = -1;
  41. R0 >>= R1;
  42. R2 >>= R1;
  43. R3 >>= R1;
  44. R4 >>= R1;
  45. R5 >>= R1;
  46. R6 >>= R1;
  47. R7 >>= R1;
  48. R1 >>= R1;
  49. CHECKREG r0, 0x00000000;
  50. CHECKREG r1, 0x00000000;
  51. CHECKREG r2, 0x00000000;
  52. CHECKREG r3, 0x00000000;
  53. CHECKREG r4, 0x00000000;
  54. CHECKREG r5, 0x00000000;
  55. CHECKREG r6, 0x00000000;
  56. CHECKREG r7, 0x00000000;
  57. imm32 r0, 0x51230002;
  58. imm32 r1, 0x12345678;
  59. imm32 r2, 0x00000000;
  60. imm32 r3, 0x3456789a;
  61. imm32 r4, 0x956789ab;
  62. imm32 r5, 0x86789abc;
  63. imm32 r6, 0x6789abcd;
  64. imm32 r7, 0x789abcde;
  65. R2.L = 31;
  66. R0 >>= R2;
  67. R1 >>= R2;
  68. R3 >>= R2;
  69. R4 >>= R2;
  70. R5 >>= R2;
  71. R6 >>= R2;
  72. R7 >>= R2;
  73. R2 >>= R2;
  74. CHECKREG r0, 0x00000000;
  75. CHECKREG r1, 0x00000000;
  76. CHECKREG r2, 0x00000000;
  77. CHECKREG r3, 0x00000000;
  78. CHECKREG r4, 0x00000001;
  79. CHECKREG r5, 0x00000001;
  80. CHECKREG r6, 0x00000000;
  81. CHECKREG r7, 0x00000000;
  82. imm32 r0, 0x01230002;
  83. imm32 r1, 0x82345678;
  84. imm32 r2, 0x93456789;
  85. imm32 r3, 0x00000000;
  86. imm32 r4, 0xb56789ab;
  87. imm32 r5, 0xc6789abc;
  88. imm32 r6, 0xd789abcd;
  89. imm32 r7, 0xe89abcde;
  90. R3.L = -31;
  91. R0 >>= R3;
  92. R1 >>= R3;
  93. R2 >>= R3;
  94. R4 >>= R3;
  95. R5 >>= R3;
  96. R6 >>= R3;
  97. R7 >>= R3;
  98. R3 >>= R3;
  99. CHECKREG r0, 0x00;
  100. CHECKREG r1, 0x0;
  101. CHECKREG r2, 0x0;
  102. CHECKREG r3, 0x0;
  103. CHECKREG r4, 0x0;
  104. CHECKREG r5, 0x0;
  105. CHECKREG r6, 0x0;
  106. CHECKREG r7, 0x0;
  107. imm32 r0, 0x00000001;
  108. imm32 r1, 0x12345678;
  109. imm32 r2, 0x23456789;
  110. imm32 r3, 0x3456789a;
  111. imm32 r4, 0x00000000;
  112. imm32 r5, 0x96789abc;
  113. imm32 r6, 0xa789abcd;
  114. imm32 r7, 0xb89abcde;
  115. R4.L = 15;
  116. R1 >>= R4;
  117. R2 >>= R4;
  118. R3 >>= R4;
  119. R0 >>= R4;
  120. R5 >>= R4;
  121. R6 >>= R4;
  122. R7 >>= R4;
  123. R4 >>= R4;
  124. CHECKREG r0, 0x00000000;
  125. CHECKREG r1, 0x00002468;
  126. CHECKREG r2, 0x0000468A;
  127. CHECKREG r3, 0x000068AC;
  128. CHECKREG r4, 0x00000000;
  129. CHECKREG r5, 0x00012CF1;
  130. CHECKREG r6, 0x00014F13;
  131. CHECKREG r7, 0x00017135;
  132. imm32 r0, 0x01230002;
  133. imm32 r1, 0x00000000;
  134. imm32 r2, 0x93456789;
  135. imm32 r3, 0xa456789a;
  136. imm32 r4, 0xb56789ab;
  137. imm32 r5, 0x00000000;
  138. imm32 r6, 0xd789abcd;
  139. imm32 r7, 0xe89abcde;
  140. R5.L = -15;
  141. R0 >>= R5;
  142. R1 >>= R5;
  143. R2 >>= R5;
  144. R3 >>= R5;
  145. R4 >>= R5;
  146. R6 >>= R5;
  147. R7 >>= R5;
  148. R5 >>= R5;
  149. CHECKREG r0, 0x000000;
  150. CHECKREG r1, 0x00000000;
  151. CHECKREG r2, 0x0000;
  152. CHECKREG r3, 0x0000;
  153. CHECKREG r4, 0x0000;
  154. CHECKREG r5, 0x00000000;
  155. CHECKREG r6, 0x0000;
  156. CHECKREG r7, 0x0000;
  157. imm32 r0, 0x51230002;
  158. imm32 r1, 0x12345678;
  159. imm32 r2, 0xb1256790;
  160. imm32 r3, 0x3456789a;
  161. imm32 r4, 0x956789ab;
  162. imm32 r5, 0x86789abc;
  163. imm32 r6, 0x00000000;
  164. imm32 r7, 0x789abcde;
  165. R6.L = 24;
  166. R0 >>= R6;
  167. R1 >>= R6;
  168. R2 >>= R6;
  169. R3 >>= R6;
  170. R4 >>= R6;
  171. R5 >>= R6;
  172. R7 >>= R6;
  173. R6 >>= R6;
  174. CHECKREG r0, 0x00000051;
  175. CHECKREG r1, 0x00000012;
  176. CHECKREG r2, 0x000000B1;
  177. CHECKREG r3, 0x00000034;
  178. CHECKREG r4, 0x00000095;
  179. CHECKREG r5, 0x00000086;
  180. CHECKREG r6, 0x00000000;
  181. CHECKREG r7, 0x00000078;
  182. imm32 r0, 0x01230002;
  183. imm32 r1, 0x82345678;
  184. imm32 r2, 0x93456789;
  185. imm32 r3, 0xa456789a;
  186. imm32 r4, 0xb56789ab;
  187. imm32 r5, 0xc6789abc;
  188. imm32 r6, 0xd789abcd;
  189. imm32 r7, 0x00000000;
  190. R7.L = -24;
  191. R0 >>= R7;
  192. R1 >>= R7;
  193. R2 >>= R7;
  194. R3 >>= R7;
  195. R4 >>= R7;
  196. R5 >>= R7;
  197. R6 >>= R7;
  198. R7 >>= R7;
  199. CHECKREG r0, 0x00;
  200. CHECKREG r1, 0x00;
  201. CHECKREG r2, 0x00;
  202. CHECKREG r3, 0x00;
  203. CHECKREG r4, 0x00;
  204. CHECKREG r5, 0x00;
  205. CHECKREG r6, 0x00;
  206. CHECKREG r7, 0x00;
  207. pass