re PR tree-optimization/40550 (Segmentation fault caused by alignment error in sse code)
PR tree-optimization/40550 * tree-vect-generic.c (expand_vector_operations_1): Compute in vector_compute_type only when the size of vector_compute_type is less than the size of type. testsuite/ChangeLog: PR tree-optimization/40550 * gcc.dg/pr40550.c: New test. From-SVN: r149027
This commit is contained in:
parent
e8229e8dad
commit
bc4fc3e5e6
|
@ -1,3 +1,10 @@
|
|||
2009-06-28 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR tree-optimization/40550
|
||||
* tree-vect-generic.c (expand_vector_operations_1): Compute in
|
||||
vector_compute_type only when the size of vector_compute_type is
|
||||
less than the size of type.
|
||||
|
||||
2009-06-27 Kai Tietz <kai.tietz@onevision.com>
|
||||
|
||||
Merged from trunk rev/148061
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2009-06-28 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR tree-optimization/40550
|
||||
* gcc.dg/pr40550.c: New test.
|
||||
|
||||
2009-06-24 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/40342
|
||||
|
@ -215,33 +220,33 @@
|
|||
* g++.dg/torture/pr34222.C (ptrdiff_t): Likewise.
|
||||
* g++.dg/tree-ssa/pr22444.C (ptrdiff_t): Likewise.
|
||||
(size_t): Use __extension__ and __SIZE_TYPE__.
|
||||
* gcc.c-torture/compile/20000211-1.c (size_t): Typedef size_t via
|
||||
* gcc.c-torture/compile/20000211-1.c (size_t): Typedef size_t via
|
||||
__SIZE_TYPE__.
|
||||
* gcc.c-torture/compile/20010328-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/20030320-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/20030405-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/20030902-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/20060202-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/20080613-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/920428-2.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/980329-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/980816-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/pr32584.c (size_t): Likewise,
|
||||
* (__ssize_t): Likewise.
|
||||
* gcc.c-torture/compile/pr33173.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/pr33382.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/pr34334.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/pr34688.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/pr35043.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/pr37669.c (size_t): Likewise,
|
||||
* gcc.dg/20050629-1.c (size_t): Typedef size_t via __SIZE_TYPE__.
|
||||
* gcc.dg/pr33667.c (size_t): Likewise.
|
||||
* gcc.dg/prefetch-loop-arrays-1.c (size_t): Likewise.
|
||||
* gcc.dg/torture/pr39204.c (size_t): Likewise.
|
||||
* gcc.dg/tree-ssa/20041122-1.c (size_t): Likewise.
|
||||
* gcc.dg/tree-ssa/pr36908.c (size_t): Likewise.
|
||||
* gcc.dg/tree-ssa/pr38250.c (size_t): Likewise.
|
||||
* gcc.dg/tree-ssa/ssa-dse-10.c (size_t): Likewise.
|
||||
* gcc.c-torture/compile/20010328-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/20030320-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/20030405-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/20030902-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/20060202-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/20080613-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/920428-2.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/980329-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/980816-1.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/pr32584.c (size_t): Likewise,
|
||||
* (__ssize_t): Likewise.
|
||||
* gcc.c-torture/compile/pr33173.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/pr33382.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/pr34334.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/pr34688.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/pr35043.c (size_t): Likewise,
|
||||
* gcc.c-torture/compile/pr37669.c (size_t): Likewise,
|
||||
* gcc.dg/20050629-1.c (size_t): Typedef size_t via __SIZE_TYPE__.
|
||||
* gcc.dg/pr33667.c (size_t): Likewise.
|
||||
* gcc.dg/prefetch-loop-arrays-1.c (size_t): Likewise.
|
||||
* gcc.dg/torture/pr39204.c (size_t): Likewise.
|
||||
* gcc.dg/tree-ssa/20041122-1.c (size_t): Likewise.
|
||||
* gcc.dg/tree-ssa/pr36908.c (size_t): Likewise.
|
||||
* gcc.dg/tree-ssa/pr38250.c (size_t): Likewise.
|
||||
* gcc.dg/tree-ssa/ssa-dse-10.c (size_t): Likewise.
|
||||
|
||||
2009-05-27 Kai TIetz <kai.tietz@onevision.com>
|
||||
|
||||
|
@ -814,7 +819,7 @@
|
|||
|
||||
2009-04-06 Laurent GUERBY <laurent@guerby.net>
|
||||
|
||||
* lib/gnat.exp: Handle multilib.
|
||||
* lib/gnat.exp: Handle multilib.
|
||||
|
||||
2009-04-06 Jason Merrill <jason@redhat.com>
|
||||
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
/* { dg-do run } */
|
||||
/* { dg-options "-msse" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
|
||||
|
||||
#ifdef __i386__
|
||||
#include "cpuid.h"
|
||||
#endif
|
||||
|
||||
typedef float v2sf __attribute__ ((vector_size (2 * sizeof(float))));
|
||||
|
||||
static void test (void)
|
||||
{
|
||||
v2sf a = {1.0, 0.0};
|
||||
v2sf b = {0.0, 1.0};
|
||||
v2sf d;
|
||||
d = a + b;
|
||||
}
|
||||
|
||||
int main ()
|
||||
{
|
||||
|
||||
#ifdef __i386__
|
||||
unsigned int eax, ebx, ecx, edx;
|
||||
|
||||
if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
|
||||
return 0;
|
||||
|
||||
if (!(edx & bit_SSE))
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
test ();
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -481,8 +481,10 @@ expand_vector_operations_1 (gimple_stmt_iterator *gsi)
|
|||
tree vector_compute_type
|
||||
= type_for_widest_vector_mode (TYPE_MODE (TREE_TYPE (type)), op,
|
||||
TYPE_SATURATING (TREE_TYPE (type)));
|
||||
if (vector_compute_type != NULL_TREE)
|
||||
compute_type = vector_compute_type;
|
||||
if (vector_compute_type != NULL_TREE
|
||||
&& (TYPE_VECTOR_SUBPARTS (vector_compute_type)
|
||||
< TYPE_VECTOR_SUBPARTS (compute_type)))
|
||||
compute_type = vector_compute_type;
|
||||
}
|
||||
|
||||
/* If we are breaking a BLKmode vector into smaller pieces,
|
||||
|
|
Loading…
Reference in New Issue