(lshift_double): Replace `&' with `%' to fix typo.
authorRichard Kenner <kenner@gcc.gnu.org>
Fri, 9 Jun 1995 23:29:17 +0000 (19:29 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Fri, 9 Jun 1995 23:29:17 +0000 (19:29 -0400)
(lshift_double, rshift_double): Truncate shift count only if
SHIFT_COUNT_TRUNCATED.  Remove unnecessary `count >= prec' test.

From-SVN: r9917

gcc/fold-const.c

index d310c8eafa05c982120b9258d357586218473d6e..e7d313657d9520f3df562dfe0bdc7e628770bab4 100644 (file)
@@ -337,8 +337,10 @@ lshift_double (l1, h1, count, prec, lv, hv, arith)
       return;
     }
   
-  if (count >= prec)
-    count = (unsigned HOST_WIDE_INT) count & prec;
+#ifdef SHIFT_COUNT_TRUNCATED
+  if (SHIFT_COUNT_TRUNCATED)
+    count %= prec;
+#endif
 
   if (count >= HOST_BITS_PER_WIDE_INT)
     {
@@ -370,8 +372,10 @@ rshift_double (l1, h1, count, prec, lv, hv, arith)
              ? -((unsigned HOST_WIDE_INT) h1 >> (HOST_BITS_PER_WIDE_INT - 1))
              : 0);
 
-  if (count >= prec)
-    count = (unsigned HOST_WIDE_INT) count % prec;
+#ifdef SHIFT_COUNT_TRUNCATED
+  if (SHIFT_COUNT_TRUNCATED)
+    count %= prec;
+#endif
 
   if (count >= HOST_BITS_PER_WIDE_INT)
     {