summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <uros@kss-loka.si>2005-09-26 20:16:07 +0200
committerIan Lance Taylor <ian@gcc.gnu.org>2005-09-26 18:16:07 +0000
commit3242fbd83f70de261f466e95ae900a8d0d997725 (patch)
treef46ffbf1008d2db1f2d07e034c20b79d5b893b79 /gcc
parentb166bfd2241797cb20f6c830b7350ab42b850ad6 (diff)
downloadgcc-3242fbd83f70de261f466e95ae900a8d0d997725.tar.gz
re PR middle-end/23831 (ICE in immed_double_const with vectorized multipication)
PR middle-end/23831 * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT. From-SVN: r104650
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/simplify-rtx.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5654d3df2bf..2d94072f915 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-09-26 Uros Bizjak <uros@kss-loka.si>
+
+ PR middle-end/23831
+ * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip
+ simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT.
+
2005-09-26 Fariborz Jahanian <fjahanian@apple.com>
* combine.c (make_extraction): Check for valid use of subreg.
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index 1b99677fdb5..44a1660e688 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -3743,8 +3743,10 @@ simplify_immed_subreg (enum machine_mode outermode, rtx op,
know why. */
if (elem_bitsize <= HOST_BITS_PER_WIDE_INT)
elems[elem] = gen_int_mode (lo, outer_submode);
- else
+ else if (elem_bitsize <= 2 * HOST_BITS_PER_WIDE_INT)
elems[elem] = immed_double_const (lo, hi, outer_submode);
+ else
+ return NULL_RTX;
}
break;