c_dspldst_ld_drlo_ipp.s 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  1. //Original:/testcases/core/c_dspldst_ld_drlo_ipp/c_dspldst_ld_drlo_ipp.dsp
  2. // Spec Reference: c_dspldst ld_drlo_i++/--
  3. # mach: bfin
  4. .include "testutils.inc"
  5. start
  6. INIT_R_REGS 0;
  7. loadsym i0, DATA_ADDR_3;
  8. loadsym i1, DATA_ADDR_4;
  9. loadsym i2, DATA_ADDR_5;
  10. loadsym i3, DATA_ADDR_6;
  11. // Load Lower half of Dregs
  12. R0.L = W [ I0 ++ ];
  13. R1.L = W [ I1 ++ ];
  14. R2.L = W [ I2 ++ ];
  15. R3.L = W [ I3 ++ ];
  16. R4.L = W [ I0 ++ ];
  17. R5.L = W [ I1 ++ ];
  18. R6.L = W [ I2 ++ ];
  19. R7.L = W [ I3 ++ ];
  20. CHECKREG r0, 0x00000203;
  21. CHECKREG r1, 0x00002223;
  22. CHECKREG r2, 0x00004243;
  23. CHECKREG r3, 0x00006263;
  24. CHECKREG r4, 0x00000001;
  25. CHECKREG r5, 0x00002021;
  26. CHECKREG r6, 0x00004041;
  27. CHECKREG r7, 0x00006061;
  28. R1.L = W [ I0 ++ ];
  29. R2.L = W [ I1 ++ ];
  30. R3.L = W [ I2 ++ ];
  31. R4.L = W [ I3 ++ ];
  32. R5.L = W [ I0 ++ ];
  33. R6.L = W [ I1 ++ ];
  34. R7.L = W [ I2 ++ ];
  35. R0.L = W [ I3 ++ ];
  36. CHECKREG r0, 0x00006465;
  37. CHECKREG r1, 0x00000607;
  38. CHECKREG r2, 0x00002627;
  39. CHECKREG r3, 0x00004647;
  40. CHECKREG r4, 0x00006667;
  41. CHECKREG r5, 0x00000405;
  42. CHECKREG r6, 0x00002425;
  43. CHECKREG r7, 0x00004445;
  44. R2.L = W [ I0 ++ ];
  45. R3.L = W [ I1 ++ ];
  46. R4.L = W [ I2 ++ ];
  47. R5.L = W [ I3 ++ ];
  48. R6.L = W [ I0 ++ ];
  49. R7.L = W [ I1 ++ ];
  50. R0.L = W [ I2 ++ ];
  51. R1.L = W [ I3 ++ ];
  52. CHECKREG r0, 0x00004849;
  53. CHECKREG r1, 0x00006869;
  54. CHECKREG r2, 0x00000A0B;
  55. CHECKREG r3, 0x00002A2B;
  56. CHECKREG r4, 0x00004A4B;
  57. CHECKREG r5, 0x00006A6B;
  58. CHECKREG r6, 0x00000809;
  59. CHECKREG r7, 0x00002829;
  60. R3.L = W [ I0 ++ ];
  61. R4.L = W [ I1 ++ ];
  62. R5.L = W [ I2 ++ ];
  63. R6.L = W [ I3 ++ ];
  64. R7.L = W [ I0 ++ ];
  65. R0.L = W [ I1 ++ ];
  66. R1.L = W [ I2 ++ ];
  67. R2.L = W [ I3 ++ ];
  68. CHECKREG r0, 0x00002C2D;
  69. CHECKREG r1, 0x00004C4D;
  70. CHECKREG r2, 0x00006C6D;
  71. CHECKREG r3, 0x00000E0F;
  72. CHECKREG r4, 0x00002E2F;
  73. CHECKREG r5, 0x00004E4F;
  74. CHECKREG r6, 0x00006E6F;
  75. CHECKREG r7, 0x00000C0D;
  76. // reverse to minus mninus i--
  77. // Load Lower half of Dregs
  78. R0.L = W [ I0 -- ];
  79. R1.L = W [ I1 -- ];
  80. R2.L = W [ I2 -- ];
  81. R3.L = W [ I3 -- ];
  82. R4.L = W [ I0 -- ];
  83. R5.L = W [ I1 -- ];
  84. R6.L = W [ I2 -- ];
  85. R7.L = W [ I3 -- ];
  86. CHECKREG r0, 0x00001213;
  87. CHECKREG r1, 0x00003233;
  88. CHECKREG r2, 0x00005253;
  89. CHECKREG r3, 0x00007273;
  90. CHECKREG r4, 0x00000C0D;
  91. CHECKREG r5, 0x00002C2D;
  92. CHECKREG r6, 0x00004C4D;
  93. CHECKREG r7, 0x00006C6D;
  94. R1.L = W [ I0 -- ];
  95. R2.L = W [ I1 -- ];
  96. R3.L = W [ I2 -- ];
  97. R4.L = W [ I3 -- ];
  98. R5.L = W [ I0 -- ];
  99. R6.L = W [ I1 -- ];
  100. R7.L = W [ I2 -- ];
  101. R0.L = W [ I3 -- ];
  102. CHECKREG r0, 0x00006869;
  103. CHECKREG r1, 0x00000E0F;
  104. CHECKREG r2, 0x00002E2F;
  105. CHECKREG r3, 0x00004E4F;
  106. CHECKREG r4, 0x00006E6F;
  107. CHECKREG r5, 0x00000809;
  108. CHECKREG r6, 0x00002829;
  109. CHECKREG r7, 0x00004849;
  110. R2.L = W [ I0 -- ];
  111. R3.L = W [ I1 -- ];
  112. R4.L = W [ I2 -- ];
  113. R5.L = W [ I3 -- ];
  114. R6.L = W [ I0 -- ];
  115. R7.L = W [ I1 -- ];
  116. R0.L = W [ I2 -- ];
  117. R1.L = W [ I3 -- ];
  118. CHECKREG r0, 0x00004445;
  119. CHECKREG r1, 0x00006465;
  120. CHECKREG r2, 0x00000A0B;
  121. CHECKREG r3, 0x00002A2B;
  122. CHECKREG r4, 0x00004A4B;
  123. CHECKREG r5, 0x00006A6B;
  124. CHECKREG r6, 0x00000405;
  125. CHECKREG r7, 0x00002425;
  126. R3.L = W [ I0 -- ];
  127. R4.L = W [ I1 -- ];
  128. R5.L = W [ I2 -- ];
  129. R6.L = W [ I3 -- ];
  130. R7.L = W [ I0 -- ];
  131. R0.L = W [ I1 -- ];
  132. R1.L = W [ I2 -- ];
  133. R2.L = W [ I3 -- ];
  134. CHECKREG r0, 0x00002021;
  135. CHECKREG r1, 0x00004041;
  136. CHECKREG r2, 0x00006061;
  137. CHECKREG r3, 0x00000607;
  138. CHECKREG r4, 0x00002627;
  139. CHECKREG r5, 0x00004647;
  140. CHECKREG r6, 0x00006667;
  141. CHECKREG r7, 0x00000001;
  142. pass
  143. // Pre-load memory with known data
  144. // More data is defined than will actually be used
  145. .data
  146. DATA_ADDR_3:
  147. .dd 0x00010203
  148. .dd 0x04050607
  149. .dd 0x08090A0B
  150. .dd 0x0C0D0E0F
  151. .dd 0x10111213
  152. .dd 0x14151617
  153. .dd 0x18191A1B
  154. .dd 0x1C1D1E1F
  155. .dd 0x11223344
  156. .dd 0x55667788
  157. .dd 0x99717273
  158. .dd 0x74757677
  159. .dd 0x82838485
  160. .dd 0x86878889
  161. .dd 0x80818283
  162. .dd 0x84858687
  163. .dd 0x01020304
  164. .dd 0x05060708
  165. .dd 0x09101112
  166. .dd 0x14151617
  167. .dd 0x18192021
  168. .dd 0x22232425
  169. .dd 0x26272829
  170. .dd 0x30313233
  171. .dd 0x34353637
  172. .dd 0x38394041
  173. .dd 0x42434445
  174. .dd 0x46474849
  175. .dd 0x50515253
  176. .dd 0x54555657
  177. .dd 0x58596061
  178. .dd 0x62636465
  179. .dd 0x66676869
  180. DATA_ADDR_4:
  181. .dd 0x20212223
  182. .dd 0x24252627
  183. .dd 0x28292A2B
  184. .dd 0x2C2D2E2F
  185. .dd 0x30313233
  186. .dd 0x34353637
  187. .dd 0x38393A3B
  188. .dd 0x3C3D3E3F
  189. .dd 0x91929394
  190. .dd 0x95969798
  191. .dd 0x99A1A2A3
  192. .dd 0xA5A6A7A8
  193. .dd 0xA9B0B1B2
  194. .dd 0xB3B4B5B6
  195. .dd 0xB7B8B9C0
  196. .dd 0x70717273
  197. .dd 0x74757677
  198. .dd 0x78798081
  199. .dd 0x82838485
  200. .dd 0x86C283C4
  201. .dd 0x81C283C4
  202. .dd 0x82C283C4
  203. .dd 0x83C283C4
  204. .dd 0x84C283C4
  205. .dd 0x85C283C4
  206. .dd 0x86C283C4
  207. .dd 0x87C288C4
  208. .dd 0x88C283C4
  209. .dd 0x89C283C4
  210. .dd 0x80C283C4
  211. .dd 0x81C283C4
  212. .dd 0x82C288C4
  213. DATA_ADDR_5:
  214. .dd 0x40414243
  215. .dd 0x44454647
  216. .dd 0x48494A4B
  217. .dd 0x4C4D4E4F
  218. .dd 0x50515253
  219. .dd 0x54555657
  220. .dd 0x58595A5B
  221. .dd 0xC5C6C7C8
  222. .dd 0xC9CACBCD
  223. .dd 0xCFD0D1D2
  224. .dd 0xD3D4D5D6
  225. .dd 0xD7D8D9DA
  226. .dd 0xDBDCDDDE
  227. .dd 0xDFE0E1E2
  228. .dd 0xE3E4E5E6
  229. .dd 0x91E899EA
  230. .dd 0x92E899EA
  231. .dd 0x93E899EA
  232. .dd 0x94E899EA
  233. .dd 0x95E899EA
  234. .dd 0x96E899EA
  235. .dd 0x97E899EA
  236. .dd 0x98E899EA
  237. .dd 0x99E899EA
  238. .dd 0x91E899EA
  239. .dd 0x92E899EA
  240. .dd 0x93E899EA
  241. .dd 0x94E899EA
  242. .dd 0x95E899EA
  243. .dd 0x96E899EA
  244. .dd 0x977899EA
  245. DATA_ADDR_6:
  246. .dd 0x60616263
  247. .dd 0x64656667
  248. .dd 0x68696A6B
  249. .dd 0x6C6D6E6F
  250. .dd 0x70717273
  251. .dd 0x74757677
  252. .dd 0x78797A7B
  253. .dd 0x7C7D7E7F
  254. .dd 0xEBECEDEE
  255. .dd 0xF3F4F5F6
  256. .dd 0xF7F8F9FA
  257. .dd 0xFBFCFDFE
  258. .dd 0xFF000102
  259. .dd 0x03040506
  260. .dd 0x0708090A
  261. .dd 0x0B0CAD0E
  262. .dd 0xAB0CAD01
  263. .dd 0xAB0CAD02
  264. .dd 0xAB0CAD03
  265. .dd 0xAB0CAD04
  266. .dd 0xAB0CAD05
  267. .dd 0xAB0CAD06
  268. .dd 0xAB0CAA07
  269. .dd 0xAB0CAD08
  270. .dd 0xAB0CAD09
  271. .dd 0xAB0CAD0E
  272. .dd 0xAB0CAD0E
  273. .dd 0xAB0CAD0E
  274. .dd 0xAB0CAD0E
  275. .dd 0xAB0CAD0E
  276. .dd 0xAB0CAD0E
  277. .dd 0xAB0CAD0E
  278. DATA_ADDR_7:
  279. .dd 0x80818283
  280. .dd 0x84858687
  281. .dd 0x88898A8B
  282. .dd 0x8C8D8E8F
  283. .dd 0x90919293
  284. .dd 0x94959697
  285. .dd 0x98999A9B
  286. .dd 0x9C9D9E9F
  287. .dd 0x0F101213
  288. .dd 0x14151617
  289. .dd 0x18191A1B
  290. .dd 0x1C1D1E1F
  291. .dd 0x20212223
  292. .dd 0x24252627
  293. .dd 0x28292A2B
  294. .dd 0x2C2D2E2F
  295. .dd 0xBC0DBE21
  296. .dd 0xBC1DBE22
  297. .dd 0xBC2DBE23
  298. .dd 0xBC3DBE24
  299. .dd 0xBC4DBE65
  300. .dd 0xBC5DBE27
  301. .dd 0xBC6DBE28
  302. .dd 0xBC7DBE29
  303. .dd 0xBC8DBE2F
  304. .dd 0xBC9DBE20
  305. .dd 0xBCADBE21
  306. .dd 0xBCBDBE2F
  307. .dd 0xBCCDBE23
  308. .dd 0xBCDDBE24
  309. .dd 0xBCFDBE25
  310. .dd 0xBC0DBE26
  311. DATA_ADDR_8:
  312. .dd 0xA0A1A2A3
  313. .dd 0xA4A5A6A7
  314. .dd 0xA8A9AAAB
  315. .dd 0xACADAEAF
  316. .dd 0xB0B1B2B3
  317. .dd 0xB4B5B6B7
  318. .dd 0xB8B9BABB
  319. .dd 0xBCBDBEBF
  320. .dd 0xC0C1C2C3
  321. .dd 0xC4C5C6C7
  322. .dd 0xC8C9CACB
  323. .dd 0xCCCDCECF
  324. .dd 0xD0D1D2D3
  325. .dd 0xD4D5D6D7
  326. .dd 0xD8D9DADB
  327. .dd 0xDCDDDEDF
  328. .dd 0xE0E1E2E3
  329. .dd 0xE4E5E6E7
  330. .dd 0xE8E9EAEB
  331. .dd 0xECEDEEEF
  332. .dd 0xF0F1F2F3
  333. .dd 0xF4F5F6F7
  334. .dd 0xF8F9FAFB
  335. .dd 0xFCFDFEFF