ident slice | |
V6 0 ; initialize S | |
A4 S0 ; initialize *x | |
A5 S1 ; initialize *y | |
A3 S2 ; initialize i | |
loop S0 A3 | |
JSZ exit ; if S0 == 0 goto exit | |
VL A3 ; set vector length | |
V11 ,A4,1 ; load slice of x[i], stride 1 | |
V12 ,A5,1 ; load slice of y[i], stride 1 | |
V13 V11 *F V12 ; slice of x[i] * y[i] | |
V6 V6 +F V13 ; partial sum | |
A14 VL ; get vector length of this iteration | |
A4 A4 + A14 ; *x = *x + VL | |
A5 A5 + A14 ; *y = *y + VL | |
A3 A3 - A14 ; i = i - VL | |
J loop | |
exit |