diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8cfdd62ff884c8fde22e3e407c1f37c026cf943e..bf03c81160b0c9d6804e9abd0c9d353857ed3e25 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-11-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
+
+	* config/rs6000/rs6000.c (includes_rldic_lshift_p): Use
+	HOST_WIDE_INT_M1U instead of ~0.
+	(includes_rldicr_lshift_p): Likewise.
+
 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
 
 	* config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM,
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index a9604cf3fa970f9ce8ae6b7a2fba64604982a8cc..264598ef7a88562245f209f30bf07208c8103a07 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -16197,10 +16197,10 @@ includes_rldic_lshift_p (rtx shiftop, rtx andop)
       unsigned HOST_WIDE_INT c, lsb, shift_mask;
 
       c = INTVAL (andop);
-      if (c == 0 || c == ~0)
+      if (c == 0 || c == HOST_WIDE_INT_M1U)
 	return 0;
 
-      shift_mask = ~0;
+      shift_mask = HOST_WIDE_INT_M1U;
       shift_mask <<= INTVAL (shiftop);
 
       /* Find the least significant one bit.  */
@@ -16235,7 +16235,7 @@ includes_rldicr_lshift_p (rtx shiftop, rtx andop)
     {
       unsigned HOST_WIDE_INT c, lsb, shift_mask;
 
-      shift_mask = ~0;
+      shift_mask = HOST_WIDE_INT_M1U;
       shift_mask <<= INTVAL (shiftop);
       c = INTVAL (andop);