2015-09-15  Uros Bizjak  <ubiz...@gmail.com>

    * config/alpha/alpha.c (alpha_expand_block_clear): Use
    HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.

Bootstrapped and regression tested on alpha-linux-gnu.

Committed to mainline SVN.

Uros.
Index: config/alpha/alpha.c
===================================================================
--- config/alpha/alpha.c        (revision 227777)
+++ config/alpha/alpha.c        (working copy)
@@ -4057,10 +4057,10 @@ alpha_expand_block_clear (rtx operands[])
          mem = adjust_address (orig_dst, mode, ofs - inv_alignofs);
          set_mem_alias_set (mem, 0);
 
-         mask = ~(~(HOST_WIDE_INT)0 << (inv_alignofs * 8));
+         mask = ~(HOST_WIDE_INT_M1U << (inv_alignofs * 8));
          if (bytes < alignofs)
            {
-             mask |= ~(HOST_WIDE_INT)0 << ((inv_alignofs + bytes) * 8);
+             mask |= HOST_WIDE_INT_M1U << ((inv_alignofs + bytes) * 8);
              ofs += bytes;
              bytes = 0;
            }
@@ -4206,7 +4206,7 @@ alpha_expand_block_clear (rtx operands[])
          mem = adjust_address (orig_dst, DImode, ofs);
          set_mem_alias_set (mem, 0);
 
-         mask = ~(HOST_WIDE_INT)0 << (bytes * 8);
+         mask = HOST_WIDE_INT_M1U << (bytes * 8);
 
          tmp = expand_binop (DImode, and_optab, mem, GEN_INT (mask),
                              NULL_RTX, 1, OPTAB_WIDEN);
@@ -4222,7 +4222,7 @@ alpha_expand_block_clear (rtx operands[])
          mem = adjust_address (orig_dst, SImode, ofs);
          set_mem_alias_set (mem, 0);
 
-         mask = ~(HOST_WIDE_INT)0 << (bytes * 8);
+         mask = HOST_WIDE_INT_M1U << (bytes * 8);
 
          tmp = expand_binop (SImode, and_optab, mem, GEN_INT (mask),
                              NULL_RTX, 1, OPTAB_WIDEN);

Reply via email to