diff options
author | Devang Patel <dpatel@apple.com> | 2005-10-04 13:09:56 -0700 |
---|---|---|
committer | Devang Patel <dpatel@gcc.gnu.org> | 2005-10-04 13:09:56 -0700 |
commit | a04deb83faf6ea6a12a72c39d7b3b3c12c864f8e (patch) | |
tree | 45f61412d75b89045716a7f4583e6ccf5c4580f4 /gcc | |
parent | 578578a5abd07795cd396b3c04db001f677d79f0 (diff) | |
download | gcc-a04deb83faf6ea6a12a72c39d7b3b3c12c864f8e.zip gcc-a04deb83faf6ea6a12a72c39d7b3b3c12c864f8e.tar.gz gcc-a04deb83faf6ea6a12a72c39d7b3b3c12c864f8e.tar.bz2 |
c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for real types.
* c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
real types.
* gcc.dg/i386-sse-vect-types.c: New.
From-SVN: r104958
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/c-common.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/i386-sse-vect-types.c | 20 |
4 files changed, 31 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a97d43c0..9395d52 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-10-04 Devang Patel <dpatel@apple.com> + + * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for + real types. + 2005-10-04 Steve Ellcey <sje@cup.hp.com> * tree-vect-transform.c (vect_create_epilog_for_reduction): diff --git a/gcc/c-common.c b/gcc/c-common.c index 4b1f9e7..4114fbf 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -972,6 +972,8 @@ vector_types_convertible_p (tree t1, tree t2) return targetm.vector_opaque_p (t1) || targetm.vector_opaque_p (t2) || (tree_int_cst_equal (TYPE_SIZE (t1), TYPE_SIZE (t2)) + && (TREE_CODE (t1) != REAL_TYPE || + TYPE_PRECISION (t1) == TYPE_PRECISION (t2)) && INTEGRAL_TYPE_P (TREE_TYPE (t1)) == INTEGRAL_TYPE_P (TREE_TYPE (t2))); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a397ea9..bc53511 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2005-10-04 Devang Patel <dpatel@apple.com> + + * gcc.dg/i386-sse-vect-types.c: New. + 2005-10-04 Ian Lance Taylor <ian@airs.com> PR preprocessor/13726 diff --git a/gcc/testsuite/gcc.dg/i386-sse-vect-types.c b/gcc/testsuite/gcc.dg/i386-sse-vect-types.c new file mode 100644 index 0000000..10a544d --- /dev/null +++ b/gcc/testsuite/gcc.dg/i386-sse-vect-types.c @@ -0,0 +1,20 @@ +/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ +/* { dg-options "-O0 -msse2" } */ + +/* Test the intrinsics without optimization. All of them are + defined as inline functions in mmintrin.h that reference the proper + builtin functions. Defining away "static" and "__inline" results in + all of them being compiled as proper functions. */ + +#define static +#define __inline + +#include <xmmintrin.h> + +__m128d foo1(__m128d z, __m128d a, int N) { + int i; + for (i=0; i<N; i++) { + a = _mm_add_ps(z, a); /* { dg-error "incompatible type" } */ + } + return a; +} |