Projet_SETI_RISC-V/riscv-gnu-toolchain/binutils/sim/testsuite/bfin/vecadd.s
2023-03-06 14:48:14 +01:00

65 lines
882 B
ArmAsm

# mach: bfin
.include "testutils.inc"
start
// create two short vectors v_a, v_b
// where each element of v_a is the index
// where each element of v_b is 128-index
R2 = 0;
loadsym P0, v_a;
loadsym P1, v_b;
P2 = 0;
R3 = 128 (X);
R0 = 0;
R1 = 128 (X);
L$1:
W [ P0 ++ ] = R0;
W [ P1 ++ ] = R1;
R0 += 1;
R1 += -1;
CC = R0 < R3;
IF CC JUMP L$1 (BP);
loadsym P0, v_a;
loadsym P1, v_b;
CALL vecadd;
loadsym P0, v_c;
R2 = 0;
R3 = 128 (X);
L$3:
R0 = W [ P0 ++ ] (X);
DBGA ( R0.L , 128 );
R2 += 1;
CC = R2 < R3;
IF CC JUMP L$3;
_DBG R6;
pass
vecadd:
loadsym I0, v_a;
loadsym I1, v_b;
loadsym I2, v_c;
P5 = 128 (X);
LSETUP ( L$2 , L$2end ) LC0 = P5 >> 1;
R0 = [ I0 ++ ];
R1 = [ I1 ++ ];
L$2:
R2 = R0 +|+ R1 || R0 = [ I0 ++ ] || R1 = [ I1 ++ ];
L$2end:
[ I2 ++ ] = R2;
RTS;
.data
v_a:
.space (512);
v_b:
.space (512);
v_c:
.space (512);