expmed.c (init_expmed): A signed modulus by a power of two is considered cheap if...
authorRoger Sayle <roger@eyesopen.com>
Sun, 25 Jul 2004 00:25:28 +0000 (00:25 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Sun, 25 Jul 2004 00:25:28 +0000 (00:25 +0000)
* expmed.c (init_expmed): A signed modulus by a power of two is
considered cheap if its less than or equal to four instructions.

From-SVN: r85134

gcc/ChangeLog
gcc/expmed.c

index cb9bea21d326e1fbabee56151176355ce797b925..19dae5dbd0116289fe9c3275a6a277daf2e6b24c 100644 (file)
@@ -1,3 +1,8 @@
+2004-07-24  Roger Sayle  <roger@eyesopen.com>
+
+       * expmed.c (init_expmed): A signed modulus by a power of two is
+       considered cheap if its less than or equal to four instructions.
+
 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
 
        * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
index d93351da2e7a3e13062308de93a878edf6bd2e29..9ceee9f923a22adbe9ee75080b9dd1647cb562c6 100644 (file)
@@ -217,7 +217,7 @@ init_expmed (void)
       mul_cost[mode] = rtx_cost (&all.mult, SET);
 
       sdiv_pow2_cheap[mode] = (rtx_cost (&all.div, SET) <= 2 * add_cost[mode]);
-      smod_pow2_cheap[mode] = (rtx_cost (&all.mod, SET) <= 2 * add_cost[mode]);
+      smod_pow2_cheap[mode] = (rtx_cost (&all.mod, SET) <= 4 * add_cost[mode]);
 
       wider_mode = GET_MODE_WIDER_MODE (mode);
       if (wider_mode != VOIDmode)