* 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
+2008-01-24 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/34856
+ * config/i386/i386.c (ix86_expand_vector_init): Consider only
+ CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
+
2008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
PR middle-end/34934
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;
+2008-01-24 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/34856
+ * gcc.dg/pr34856.c: New test.
+
2008-01-24 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/namelist_39.f90: Delete temporary files.
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+/* { dg-options "-O2 -msse2" { target { i?86-*-* x86_64-*-* } } } */
+
+#undef __vector
+#define __vector __attribute__((vector_size(16) ))
+
+typedef __vector signed char qword;
+typedef __vector unsigned int VU32;
+
+extern short g[192 + 16];
+
+void f (qword);
+
+void f1 (unsigned ctr)
+{
+ VU32 pin;
+ pin = (VU32){(unsigned int) &g[16]};
+ do
+ {
+ f ((qword) pin);
+ ctr--;
+ }
+ while (ctr);
+}