• 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
float_dsp_rvv.S 5.92 KB