Message ID | 20241220041104.53105-36-richard.henderson@linaro.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | tcg: Remove in-flight mask data from OptContext | expand |
On 12/19/24 20:10, Richard Henderson wrote: > 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) Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
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)
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(-)