PR target/34856
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Jan 2008 10:25:21 +0000 (10:25 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Jan 2008 10:25:21 +0000 (10:25 +0000)
* simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
vector elements.

testsuite/ChangeLog:

PR target/34856
* gcc.dg/pr34856.c: Use pointer mode for "pin".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131821 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/simplify-rtx.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr34856.c

index 5b208cb..4e065f4 100644 (file)
@@ -1,3 +1,10 @@
+2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/34856
+       * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
+       Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
+       vector elements.
+
 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/33333
index fd14e40..f875604 100644 (file)
@@ -2916,7 +2916,12 @@ simplify_const_binary_operation (enum rtx_code code, enum machine_mode mode,
 
   if (VECTOR_MODE_P (mode)
       && code == VEC_CONCAT
-      && CONSTANT_P (op0) && CONSTANT_P (op1))
+      && (CONST_INT_P (op0)
+         || GET_CODE (op0) == CONST_DOUBLE
+         || GET_CODE (op0) == CONST_FIXED)
+      && (CONST_INT_P (op1)
+         || GET_CODE (op1) == CONST_DOUBLE
+         || GET_CODE (op1) == CONST_FIXED))
     {
       unsigned n_elts = GET_MODE_NUNITS (mode);
       rtvec v = rtvec_alloc (n_elts);
index 392f7a5..007bb71 100644 (file)
@@ -1,3 +1,8 @@
+2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/34856
+       * gcc.dg/pr34856.c: Use pointer mode for "pin".
+
 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/33333
@@ -9,7 +14,7 @@
 
 2008-01-25  Olga Golovanevsky  <olga@il.ibm.com>
 
-        * gcc.dg/struct/wo_prof_malloc_size_var.c: UnXFAIL.
+       * gcc.dg/struct/wo_prof_malloc_size_var.c: UnXFAIL.
 
 2008-01-24  Daniel Franke  <franke.daniel@gmail.com>
 
index 7900cc3..786639b 100644 (file)
@@ -2,11 +2,13 @@
 /* { dg-options "-O2" } */
 /* { dg-options "-O2 -msse2" { target { i?86-*-* x86_64-*-* } } } */
 
+typedef unsigned __attribute__ ((__mode__ (__pointer__))) uintptr_t;
+
 #undef __vector
-#define __vector __attribute__((vector_size(16) ))
+#define __vector __attribute__ ((__vector_size__ (16)))
 
 typedef __vector signed char qword;
-typedef __vector unsigned int VU32;
+typedef __vector uintptr_t VU;
 
 extern short g[192 + 16];
 
@@ -14,8 +16,9 @@ void f (qword);
 
 void f1 (unsigned ctr)
 {
-  VU32 pin;
-  pin = (VU32){(unsigned int) &g[16]};
+  VU pin;
+
+  pin = (VU){(uintptr_t) &g[16]};
   do
     {
       f ((qword) pin);