On 7/1/25 13:04, Michael Tokarev wrote:
On 30.06.2025 18:28, Richard Henderson wrote:
The scalar constant must be replicated for dup.

Cc: [email protected]
Fixes: bab1671f0fa ("tcg: Manually expand INDEX_op_dup_vec")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3002
Signed-off-by: Richard Henderson <[email protected]>
---
  tcg/tcg.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tcg/tcg.c b/tcg/tcg.c
index d714ae2889..50d40b9cbe 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -5154,7 +5154,7 @@ static void tcg_reg_alloc_dup(TCGContext *s, const TCGOp 
*op)
      if (its->val_type == TEMP_VAL_CONST) {
          /* Propagate constant via movi -> dupi.  */
-        tcg_target_ulong val = its->val;
+        tcg_target_ulong val = dup_const(vece, its->val);
          if (IS_DEAD_ARG(1)) {
              temp_dead(s, its);
          }

Hi Richard!

Does this apply to 7.2.x series, where temps had to be freed
explicitly?

Yep.

r~

Reply via email to