1# mach: bfin 2 3.include "testutils.inc" 4 start 5 6// create two short vectors v_a, v_b 7// where each element of v_a is the index 8// where each element of v_b is 128-index 9 R2 = 0; 10 loadsym P0, v_a; 11 loadsym P1, v_b; 12 P2 = 0; 13 R3 = 128 (X); 14 R0 = 0; 15 R1 = 128 (X); 16L$1: 17 W [ P0 ++ ] = R0; 18 W [ P1 ++ ] = R1; 19 R0 += 1; 20 R1 += -1; 21 CC = R0 < R3; 22 IF CC JUMP L$1 (BP); 23 24 loadsym P0, v_a; 25 loadsym P1, v_b; 26 27 CALL vecadd; 28 29 loadsym P0, v_c; 30 R2 = 0; 31 R3 = 128 (X); 32L$3: 33 R0 = W [ P0 ++ ] (X); 34 DBGA ( R0.L , 128 ); 35 R2 += 1; 36 CC = R2 < R3; 37 IF CC JUMP L$3; 38 _DBG R6; 39 pass 40 41vecadd: 42 43 loadsym I0, v_a; 44 loadsym I1, v_b; 45 loadsym I2, v_c; 46 47 P5 = 128 (X); 48 LSETUP ( L$2 , L$2end ) LC0 = P5 >> 1; 49 R0 = [ I0 ++ ]; 50 R1 = [ I1 ++ ]; 51L$2: 52 R2 = R0 +|+ R1 || R0 = [ I0 ++ ] || R1 = [ I1 ++ ]; 53L$2end: 54 [ I2 ++ ] = R2; 55 56 57 RTS; 58 59 .data 60v_a: 61 .space (512); 62v_b: 63 .space (512); 64v_c: 65 .space (512); 66