eeric 0.0.21

An easily embeddable RV64I core with MFDV extensions
Documentation
    .text
    .balign 4
    .global arr_sum
# uint32_t *arr_sum(uint32_t* arr, size_t n)
# a0=arr, a1=n
    
arr_sum:
    vsetvli t0, x0, e32, m8, ta, ma
    vmv.v.i v8, 0
loop:
    vsetvli t0, a1, e32, m8, ta, ma     
    vle32.v v16, (a0)

    vsetvli x0, x0, e32, m8, tu, ma 
    vadd.vv v8, v8, v16 

    sh2add a0, a0, t0
    sub a1, a1, t0 
    bnez a1, loop     
    
    vsetvli t0, x0, e32, m8, tu, ma
    vmv.s.x v0, x0
    vredsum.vs v0, v0, v8
    vmv.x.s a0, v0

    ret