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;
-- 
2.43.0


Reply via email to