On Fri, Jun 28, 2024 at 7:46 PM Zhiwei Jiang <jian...@tecorigin.com> wrote:
>
> In the original extract32(val, 0, lmul) logic, when lmul is 2 and val is v10 
> or v12,
> there is an issue with this check condition. I think a simple mod operation 
> is sufficient.

Overall looks ok. Do you mind updating the commit message to describe
what exactly this fixes (as in what issue you had) and why this fixes
it

Alistair

>
> Signed-off-by: Zhiwei Jiang <jian...@tecorigin.com>
> ---
>  target/riscv/insn_trans/trans_rvv.c.inc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/target/riscv/insn_trans/trans_rvv.c.inc 
> b/target/riscv/insn_trans/trans_rvv.c.inc
> index 3a3896ba06..e89b0f2b1e 100644
> --- a/target/riscv/insn_trans/trans_rvv.c.inc
> +++ b/target/riscv/insn_trans/trans_rvv.c.inc
> @@ -118,7 +118,7 @@ static bool require_nf(int vd, int nf, int lmul)
>   */
>  static bool require_align(const int8_t val, const int8_t lmul)
>  {
> -    return lmul <= 0 || extract32(val, 0, lmul) == 0;
> +    return lmul <= 0 || val % lmul == 0;
>  }
>
>  /*
> --
> 2.17.1
>
>

Reply via email to