summaryrefslogtreecommitdiff
path: root/gcc/config/i386/i386.c
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2008-01-24 17:08:10 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2008-01-24 17:08:10 +0000
commit098e8492fc7fbd3286ae8125a5bff804755b588e (patch)
treec6b21fc37a86df364486f9155106cbb51f394317 /gcc/config/i386/i386.c
parent38545c2563edfb19a673db8006673d7944125ba9 (diff)
downloadgcc-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.c4
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;