The meaning of ZERO_EXTRACT depends on BITS_BIG_ENDIAN, not on BYTES_BIG_ENDIAN. This caused PR68814.
Testing in progress on powerpc64le-linux; if it passes, is this okay for trunk? Segher 2015-12-09 Segher Boessenkool <seg...@kernel.crashing.org> PR rtl-optimization/68814 * rtlanal.c (set_noop_p): Use BITS_BIG_ENDIAN instead of BYTES_BIG_ENDIAN. --- gcc/rtlanal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 67098e5..f893bca 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -1534,7 +1534,7 @@ set_noop_p (const_rtx set) if (GET_CODE (dst) == ZERO_EXTRACT) return rtx_equal_p (XEXP (dst, 0), src) - && ! BYTES_BIG_ENDIAN && XEXP (dst, 2) == const0_rtx + && !BITS_BIG_ENDIAN && XEXP (dst, 2) == const0_rtx && !side_effects_p (src); if (GET_CODE (dst) == STRICT_LOW_PART) -- 1.9.3