• Rémi Denis-Courmont's avatar
    riscv: fix scalar product initialisation · 96a83cee
    Rémi Denis-Courmont authored
    VSETVLI xd, x0, ...' has rather nonobvious semantics:
    - If xd is x0, then it preserves the current vector length.
    - If xd is not x0, it sets the vector length to the supported maximum.
    
    Also somewhat confusingly, while VMV.X.S always does its thing
    regardless of the selected vector length, VMV.S.X does _nothing_ if the
    selected vector length is zero.
    
    So the current code breaks fails to initialise the accumulator if we
    are unlucky to have a selected vector length of zero on entry. Fix it
    by forcing the vector length to one.
    96a83cee
Name
Last commit
Last update
..
Makefile Loading commit data...
asm.S Loading commit data...
bswap.h Loading commit data...
cpu.c Loading commit data...
cpu.h Loading commit data...
fixed_dsp_init.c Loading commit data...
fixed_dsp_rvv.S Loading commit data...
float_dsp_init.c Loading commit data...
float_dsp_rvv.S Loading commit data...
intmath.h Loading commit data...
timer.h Loading commit data...