On 12/19/24 20:10, Richard Henderson wrote:
Merge the two conditions, sign != 0 && !(z_mask & sign),
by testing ~z_mask & sign.   If sign == 0, the logical and
will produce false.

Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
  tcg/optimize.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tcg/optimize.c b/tcg/optimize.c
index da48aadd12..7219415fe2 100644
--- a/tcg/optimize.c
+++ b/tcg/optimize.c
@@ -2590,7 +2590,7 @@ static bool fold_shift(OptContext *ctx, TCGOp *op)
           * will not reduce the number of input sign repetitions.
           */
          sign = (s_mask & -s_mask) >> 1;
-        if (sign && !(z_mask & sign)) {
+        if (~z_mask & sign) {
              return fold_masks_s(ctx, op, s_mask);
          }
          break;

Reviewed-by: Pierrick Bouvier <pierrick.bouv...@linaro.org>


Reply via email to