diff options
author | Richard Biener <rguenther@suse.de> | 2016-03-02 08:55:42 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-03-02 08:55:42 +0000 |
commit | 37d98220230bf243a5c3af3eebdb57b59c8d14c4 (patch) | |
tree | 7e87c7ee8d277c00370eb2e8bbee5ecdef19dae9 /gcc | |
parent | 218db463e006d19f78701979d1307283ddf8a426 (diff) | |
download | gcc-37d98220230bf243a5c3af3eebdb57b59c8d14c4.zip gcc-37d98220230bf243a5c3af3eebdb57b59c8d14c4.tar.gz gcc-37d98220230bf243a5c3af3eebdb57b59c8d14c4.tar.bz2 |
re PR target/67278 (ICE: verify_gimple failed on darwin 14.5 x86_64)
2016-03-02 Richard Biener <rguenther@suse.de>
Uros Bizjak <ubizjak@gmail.com>
PR target/67278
* config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
* gcc.dg/simd-8.c: New testcase.
Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
From-SVN: r233898
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/simd-8.c | 19 |
4 files changed, 35 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c07b3f0..f413071 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,10 @@ 2016-03-02 Richard Biener <rguenther@suse.de> + Uros Bizjak <ubizjak@gmail.com> + + PR target/67278 + * config/i386/i386.c (type_natural_mode): Handle XFmode vectors. + +2016-03-02 Richard Biener <rguenther@suse.de> PR middle-end/67278 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 7e2a85c..20b12f5 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -7794,6 +7794,10 @@ type_natural_mode (const_tree type, const CUMULATIVE_ARGS *cum, { machine_mode innermode = TYPE_MODE (TREE_TYPE (type)); + /* There are no XFmode vector modes. */ + if (innermode = XFmode) + return mode; + if (TREE_CODE (TREE_TYPE (type)) == REAL_TYPE) mode = MIN_MODE_VECTOR_FLOAT; else diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 014d249..7554a0a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,4 +1,10 @@ 2016-03-02 Richard Biener <rguenther@suse.de> + Uros Bizjak <ubizjak@gmail.com> + + PR target/67278 + * gcc.dg/simd-8.c: New testcase. + +2016-03-02 Richard Biener <rguenther@suse.de> PR middle-end/67278 * gcc.dg/simd-7.c: New testcase. diff --git a/gcc/testsuite/gcc.dg/simd-8.c b/gcc/testsuite/gcc.dg/simd-8.c new file mode 100644 index 0000000..6e6cd35 --- /dev/null +++ b/gcc/testsuite/gcc.dg/simd-8.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ + +#if __SIZEOF_LONG_DOUBLE__ == 16 || __SIZEOF_LONG_DOUBLE__ == 8 +typedef long double a __attribute__((vector_size (32))); + +a __attribute__((noinline)) +sum (a first, a second) +{ + return first + second; +} + +a +foo (a x, a y, a z) +{ + return sum (x, y) + z; +} +#else +int main() {} +#endif |