qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2 35/51] tcg/optimize: Fix sign mask in fold_negsetcond


From: Richard Henderson
Subject: [PATCH v2 35/51] tcg/optimize: Fix sign mask in fold_negsetcond
Date: Thu, 19 Dec 2024 20:10:47 -0800

The sign mask is about repetitions, a la clrsb64(), so the lsb
itself can never be a repetition.  Thus ~1 not -1 is correct.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 tcg/optimize.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tcg/optimize.c b/tcg/optimize.c
index 5bfcb22a0e..63f80efeec 100644
--- a/tcg/optimize.c
+++ b/tcg/optimize.c
@@ -2403,8 +2403,8 @@ static bool fold_negsetcond(OptContext *ctx, TCGOp *op)
         fold_setcond_tst_pow2(ctx, op, true);
     }
 
-    /* Value is {0,-1} so all bits are repetitions of the sign. */
-    return fold_masks_s(ctx, op, -1);
+    /* Value is {0,-1} so all bits above lsb are repetitions of the lsb. */
+    return fold_masks_s(ctx, op, ~1);
 }
 
 static bool fold_setcond2(OptContext *ctx, TCGOp *op)
-- 
2.43.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]