diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2008-01-24 18:08:10 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2008-01-24 18:08:10 +0100 |
commit | fcc448088df39d4512d3f1fd1d85ea2c83c36cf9 (patch) | |
tree | c6b21fc37a86df364486f9155106cbb51f394317 /gcc/config | |
parent | 94de25225dcfcb12f44414885e32de5bfcba91e2 (diff) | |
download | gcc-fcc448088df39d4512d3f1fd1d85ea2c83c36cf9.zip gcc-fcc448088df39d4512d3f1fd1d85ea2c83c36cf9.tar.gz gcc-fcc448088df39d4512d3f1fd1d85ea2c83c36cf9.tar.bz2 |
re PR target/34856 (ICE with some constant vectors)
PR target/34856
* config/i386/i386.c (ix86_expand_vector_init): Consider only
CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
testsuite/ChangeLog:
PR target/34856
* gcc.dg/pr34856.c: New test.
From-SVN: r131796
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/i386/i386.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index a8c8b72..6e9ae2a 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -23593,7 +23593,9 @@ ix86_expand_vector_init (bool mmx_ok, rtx target, rtx vals) for (i = 0; i < n_elts; ++i) { x = XVECEXP (vals, 0, i); - if (!CONSTANT_P (x)) + if (!(CONST_INT_P (x) + || GET_CODE (x) == CONST_DOUBLE + || GET_CODE (x) == CONST_FIXED)) n_var++, one_var = i; else if (x != CONST0_RTX (inner_mode)) all_const_zero = false; |