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.henderson@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;