+2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR rtl-optimization/70687
+ * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
+ instead of unsigned HOST_WIDE_INT.
+
2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
PR rtl-optimization/44281
XEXP (x, 0), GEN_INT (start));
}
else if (GET_CODE (x) == ZERO_EXTEND
+ && SCALAR_INT_MODE_P (mode)
&& GET_CODE (XEXP (x, 0)) == SUBREG
&& GET_MODE (SUBREG_REG (XEXP (x, 0))) == mode
&& subreg_lowpart_p (XEXP (x, 0)))
else
continue;
- unsigned HOST_WIDE_INT mask = 1;
- mask <<= size;
- mask--;
-
- x = gen_rtx_AND (mode, x, GEN_INT (mask));
+ wide_int mask = wi::mask (size, false, GET_MODE_PRECISION (mode));
+ x = gen_rtx_AND (mode, x, immed_wide_int_const (mask, mode));
SUBST (**iter, x);
changed = true;