target/riscv: trans_rvv: Avoid assert for RV32 and e64
commit07314158f6aa4d2589520c194a7531b9364a8d54
authorAlistair Francis <alistair.francis@wdc.com>
Wed, 8 Jun 2022 23:47:01 +0000 (9 09:47 +1000)
committerAlistair Francis <alistair.francis@wdc.com>
Thu, 9 Jun 2022 23:42:12 +0000 (10 09:42 +1000)
treef1f508cc436cab122b0d832653b4a27245114597
parent26b2bc58599c02b35e55afbd1bd050faa3d187c2
target/riscv: trans_rvv: Avoid assert for RV32 and e64

When running a 32-bit guest, with a e64 vmv.v.x and vl_eq_vlmax set to
true the `tcg_debug_assert(vece <= MO_32)` will be triggered inside
tcg_gen_gvec_dup_i32().

This patch checks that condition and instead uses tcg_gen_gvec_dup_i64()
is required.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1028
Suggested-by: Robert Bu <robert.bu@gmail.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220608234701.369536-1-alistair.francis@opensource.wdc.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
target/riscv/insn_trans/trans_rvv.c.inc