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

Reply via email to