simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION rather than GET_M...
authorJohn Darrington <john@darrington.wattle.id.au>
Tue, 9 Jul 2019 19:11:27 +0000 (19:11 +0000)
committerJeff Law <law@gcc.gnu.org>
Tue, 9 Jul 2019 19:11:27 +0000 (13:11 -0600)
2019-07-09  John Darrington  <john@darrington.wattle.id.au>

* simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION
rather than GET_MODE_BITSIZE to better handle partial integer modes.

From-SVN: r273312

gcc/ChangeLog
gcc/simplify-rtx.c

index 3872b6dbb8a89e2bb47093d6be8090d825788196..2061c1bb50ff9f257d283da49f8cb740e5fe1fe7 100644 (file)
@@ -1,3 +1,8 @@
+2019-07-09  John Darrington  <john@darrington.wattle.id.au>
+
+       * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION
+       rather than GET_MODE_BITSIZE to better handle partial integer modes.
+
 2019-07-09  Michael Meissner  <meissner@linux.ibm.com>
 
        * config/rs6000/rs6000-internal.h (create_TOC_reference): Delete.
index dd2acd4eca9985b4d5b14ff8533f393433daa14c..4892c49efcd45eb30bc6074a1757e133b75a3dff 100644 (file)
@@ -1504,12 +1504,12 @@ simplify_unary_operation_1 (enum rtx_code code, machine_mode mode, rtx op)
          && CONST_INT_P (XEXP (op, 1))
          && XEXP (XEXP (op, 0), 1) == XEXP (op, 1)
          && (op_mode = as_a <scalar_int_mode> (GET_MODE (op)),
-             GET_MODE_BITSIZE (op_mode) > INTVAL (XEXP (op, 1))))
+             GET_MODE_PRECISION (op_mode) > INTVAL (XEXP (op, 1))))
        {
          scalar_int_mode tmode;
-         gcc_assert (GET_MODE_BITSIZE (int_mode)
-                     > GET_MODE_BITSIZE (op_mode));
-         if (int_mode_for_size (GET_MODE_BITSIZE (op_mode)
+         gcc_assert (GET_MODE_PRECISION (int_mode)
+                     > GET_MODE_PRECISION (op_mode));
+         if (int_mode_for_size (GET_MODE_PRECISION (op_mode)
                                 - INTVAL (XEXP (op, 1)), 1).exists (&tmode))
            {
              rtx inner =