Files
kernels/rvvector/benchmark_temp/vx_vec_saxpy_float.s
2019-11-23 04:00:02 -05:00

28 lines
527 B
ArmAsm

.type vx_vec_saxpy, @function
.global vx_vec_saxpy_float
# void
# saxpy(size_t n, const float a, const float *x, float *y)
# {
# size_t i;
# for (i=0; i<n; i++)
# y[i] = a * x[i] + y[i];
# }
#
# register arguments:
# a0 n
# fa0 a
# a1 x
# a2 y
vx_vec_saxpy_float:
vsetvli a4, a0, e32, m8
saxpy:
vlw.v v0, (a1)
sub a0, a0, a4
slli a4, a4, 2
add a1, a1, a4
vlw.v v8, (a2)
vfmacc.vf v8, fa0, v0
vsw.v v8, (a2)
add a2, a2, a4
bnez a0, saxpy
ret