1# Blackfin testcase for a simple vector dot product using hard 2# wired input buffers of 128 samples each. These values are in 3# 1.15 signed . 4 5# mach: bfin 6 7 .include "testutils.inc" 8 9 start 10 11 loadsym P0, _buf0 12 loadsym P1, _buf1 13 14 /* loop control 15 * number of loop iterations is 2^N with r4|=1<<N 16 * to process 128 samples need 64 iterations 17 */ 18 R4 = 64 (X); 19 A1 = A0 = 0; 20 21 /* 22 * For now, serialize two 32b loads 23 */ 24.L1: 25 R0 = [ P0 ++ ]; 26 R1 = [ P1 ++ ]; 27 A1 += R0.H * R1.H, A0 += R0.L * R1.L; 28 R4 += -1; 29 CC = R4 == 0; 30 IF !CC JUMP .L1; 31 32 /* extract two partial results from accumulators 33 * and do final addition 34 */ 35 R0 = ( A0 += A1 ); 36 37 imm32 r1, 0x00545600 38 39 CC = R0 == R1 40 if CC jump 1f; 41 fail 421: 43 pass 44 45 .data 46_buf0: 47.dw 0x0 48.dw 0x2 49.dw 0x4 50.dw 0x6 51.dw 0x8 52.dw 0xA 53.dw 0xC 54.dw 0xE 55.dw 0x10 56.dw 0x12 57.dw 0x14 58.dw 0x16 59.dw 0x18 60.dw 0x1A 61.dw 0x1C 62.dw 0x1E 63.dw 0x20 64.dw 0x22 65.dw 0x24 66.dw 0x26 67.dw 0x28 68.dw 0x2A 69.dw 0x2C 70.dw 0x2E 71.dw 0x30 72.dw 0x32 73.dw 0x34 74.dw 0x36 75.dw 0x38 76.dw 0x3A 77.dw 0x3C 78.dw 0x3E 79.dw 0x40 80.dw 0x42 81.dw 0x44 82.dw 0x46 83.dw 0x48 84.dw 0x4A 85.dw 0x4C 86.dw 0x4E 87.dw 0x50 88.dw 0x52 89.dw 0x54 90.dw 0x56 91.dw 0x58 92.dw 0x5A 93.dw 0x5C 94.dw 0x5E 95.dw 0x60 96.dw 0x62 97.dw 0x64 98.dw 0x66 99.dw 0x68 100.dw 0x6A 101.dw 0x6C 102.dw 0x6E 103.dw 0x70 104.dw 0x72 105.dw 0x74 106.dw 0x76 107.dw 0x78 108.dw 0x7A 109.dw 0x7C 110.dw 0x7E 111.dw 0x80 112.dw 0x82 113.dw 0x84 114.dw 0x86 115.dw 0x88 116.dw 0x8A 117.dw 0x8C 118.dw 0x8E 119.dw 0x90 120.dw 0x92 121.dw 0x94 122.dw 0x96 123.dw 0x98 124.dw 0x9A 125.dw 0x9C 126.dw 0x9E 127.dw 0xA0 128.dw 0xA2 129.dw 0xA4 130.dw 0xA6 131.dw 0xA8 132.dw 0xAA 133.dw 0xAC 134.dw 0xAE 135.dw 0xB0 136.dw 0xB2 137.dw 0xB4 138.dw 0xB6 139.dw 0xB8 140.dw 0xBA 141.dw 0xBC 142.dw 0xBE 143.dw 0xC0 144.dw 0xC2 145.dw 0xC4 146.dw 0xC6 147.dw 0xC8 148.dw 0xCA 149.dw 0xCC 150.dw 0xCE 151.dw 0xD0 152.dw 0xD2 153.dw 0xD4 154.dw 0xD6 155.dw 0xD8 156.dw 0xDA 157.dw 0xDC 158.dw 0xDE 159.dw 0xE0 160.dw 0xE2 161.dw 0xE4 162.dw 0xE6 163.dw 0xE8 164.dw 0xEA 165.dw 0xEC 166.dw 0xEE 167.dw 0xF0 168.dw 0xF2 169.dw 0xF4 170.dw 0xF6 171.dw 0xF8 172.dw 0xFA 173.dw 0xFC 174.dw 0xFE 175 176_buf1: 177.dw 0x0 178.dw 0x2 179.dw 0x4 180.dw 0x6 181.dw 0x8 182.dw 0xA 183.dw 0xC 184.dw 0xE 185.dw 0x10 186.dw 0x12 187.dw 0x14 188.dw 0x16 189.dw 0x18 190.dw 0x1A 191.dw 0x1C 192.dw 0x1E 193.dw 0x20 194.dw 0x22 195.dw 0x24 196.dw 0x26 197.dw 0x28 198.dw 0x2A 199.dw 0x2C 200.dw 0x2E 201.dw 0x30 202.dw 0x32 203.dw 0x34 204.dw 0x36 205.dw 0x38 206.dw 0x3A 207.dw 0x3C 208.dw 0x3E 209.dw 0x40 210.dw 0x42 211.dw 0x44 212.dw 0x46 213.dw 0x48 214.dw 0x4A 215.dw 0x4C 216.dw 0x4E 217.dw 0x50 218.dw 0x52 219.dw 0x54 220.dw 0x56 221.dw 0x58 222.dw 0x5A 223.dw 0x5C 224.dw 0x5E 225.dw 0x60 226.dw 0x62 227.dw 0x64 228.dw 0x66 229.dw 0x68 230.dw 0x6A 231.dw 0x6C 232.dw 0x6E 233.dw 0x70 234.dw 0x72 235.dw 0x74 236.dw 0x76 237.dw 0x78 238.dw 0x7A 239.dw 0x7C 240.dw 0x7E 241.dw 0x80 242.dw 0x82 243.dw 0x84 244.dw 0x86 245.dw 0x88 246.dw 0x8A 247.dw 0x8C 248.dw 0x8E 249.dw 0x90 250.dw 0x92 251.dw 0x94 252.dw 0x96 253.dw 0x98 254.dw 0x9A 255.dw 0x9C 256.dw 0x9E 257.dw 0xA0 258.dw 0xA2 259.dw 0xA4 260.dw 0xA6 261.dw 0xA8 262.dw 0xAA 263.dw 0xAC 264.dw 0xAE 265.dw 0xB0 266.dw 0xB2 267.dw 0xB4 268.dw 0xB6 269.dw 0xB8 270.dw 0xBA 271.dw 0xBC 272.dw 0xBE 273.dw 0xC0 274.dw 0xC2 275.dw 0xC4 276.dw 0xC6 277.dw 0xC8 278.dw 0xCA 279.dw 0xCC 280.dw 0xCE 281.dw 0xD0 282.dw 0xD2 283.dw 0xD4 284.dw 0xD6 285.dw 0xD8 286.dw 0xDA 287.dw 0xDC 288.dw 0xDE 289.dw 0xE0 290.dw 0xE2 291.dw 0xE4 292.dw 0xE6 293.dw 0xE8 294.dw 0xEA 295.dw 0xEC 296.dw 0xEE 297.dw 0xF0 298.dw 0xF2 299.dw 0xF4 300.dw 0xF6 301.dw 0xF8 302.dw 0xFA 303.dw 0xFC 304.dw 0xFE 305