diff options
author | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-01-24 17:08:10 +0000 |
---|---|---|
committer | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-01-24 17:08:10 +0000 |
commit | 098e8492fc7fbd3286ae8125a5bff804755b588e (patch) | |
tree | c6b21fc37a86df364486f9155106cbb51f394317 /gcc/config/i386/i386.c | |
parent | 38545c2563edfb19a673db8006673d7944125ba9 (diff) | |
download | gcc-098e8492fc7fbd3286ae8125a5bff804755b588e.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131796 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/i386.c')
-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 a8c8b722b8e..6e9ae2a2ebd 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; |