[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
- [PATCH v2 10/51] tcg/optimize: Use fold_masks_zs in fold_count_zeros, (continued)
- [PATCH v2 10/51] tcg/optimize: Use fold_masks_zs in fold_count_zeros, Richard Henderson, 2024/12/19
- [PATCH v2 18/51] tcg/optimize: Use finish_folding in fold_extract2, Richard Henderson, 2024/12/19
- [PATCH v2 27/51] tcg/optimize: Use fold_masks_zs in fold_or, Richard Henderson, 2024/12/19
- [PATCH v2 26/51] tcg/optimize: Use fold_masks_s in fold_not, Richard Henderson, 2024/12/19
- [PATCH v2 30/51] tcg/optimize: Return true from fold_qemu_st, fold_tcg_st, Richard Henderson, 2024/12/19
- [PATCH v2 29/51] tcg/optimize: Use fold_masks_zs in fold_qemu_ld, Richard Henderson, 2024/12/19
- [PATCH v2 31/51] tcg/optimize: Use finish_folding in fold_remainder, Richard Henderson, 2024/12/19
- [PATCH v2 33/51] tcg/optimize: Use fold_masks_z in fold_setcond, Richard Henderson, 2024/12/19
- [PATCH v2 35/51] tcg/optimize: Fix sign mask in fold_negsetcond,
Richard Henderson <=
- [PATCH v2 37/51] tcg/optimize: Use finish_folding in fold_cmp_vec, Richard Henderson, 2024/12/19
- [PATCH v2 38/51] tcg/optimize: Use finish_folding in fold_cmpsel_vec, Richard Henderson, 2024/12/19
- [PATCH v2 34/51] tcg/optimize: Use fold_masks_s in fold_negsetcond, Richard Henderson, 2024/12/19
- [PATCH v2 36/51] tcg/optimize: Use fold_masks_z in fold_setcond2, Richard Henderson, 2024/12/19
- [PATCH v2 25/51] tcg/optimize: Use fold_masks_s in fold_nor, Richard Henderson, 2024/12/19
- [PATCH v2 28/51] tcg/optimize: Use fold_masks_zs in fold_orc, Richard Henderson, 2024/12/19
- [PATCH v2 45/51] tcg/optimize: Use finish_folding in fold_tcg_ld_memcopy, Richard Henderson, 2024/12/19
- [PATCH v2 47/51] tcg/optimize: Use finish_folding in fold_bitsel_vec, Richard Henderson, 2024/12/19
- [PATCH v2 48/51] tcg/optimize: Use finish_folding as default in tcg_optimize, Richard Henderson, 2024/12/19