fold-const.c (fold, [...]): Optimize 0 % X.
authorJeff Law <law@redhat.com>
Fri, 28 Jan 2005 16:35:46 +0000 (09:35 -0700)
committerJeff Law <law@gcc.gnu.org>
Fri, 28 Jan 2005 16:35:46 +0000 (09:35 -0700)
        * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
        (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.

From-SVN: r94376

gcc/ChangeLog
gcc/fold-const.c

index 8aac434028fe0a553d1f663882ebb20d130f398a..9e806b3f06278f48cd460ba8d5d5cf1d29942762 100644 (file)
@@ -1,3 +1,8 @@
+2005-01-28  Jeff Law  <law@redhat.com>
+
+       * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
+       (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
+
 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
 
        * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
index 8e8a821938b091aee76129a5c9b918f3fda26b53..67a0217057add4035f958b08c0533d4abdf1c397 100644 (file)
@@ -7875,7 +7875,8 @@ fold (tree expr)
     case FLOOR_MOD_EXPR:
     case ROUND_MOD_EXPR:
     case TRUNC_MOD_EXPR:
-      if (integer_onep (arg1))
+      /* 0 % X is always zero as is X % 1.  */
+      if (integer_zerop (arg0) || integer_onep (arg1))
        return omit_one_operand (type, integer_zero_node, arg0);
       if (integer_zerop (arg1))
        return t;