aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-03-02 08:55:42 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-03-02 08:55:42 +0000
commit37d98220230bf243a5c3af3eebdb57b59c8d14c4 (patch)
tree7e87c7ee8d277c00370eb2e8bbee5ecdef19dae9 /gcc
parent218db463e006d19f78701979d1307283ddf8a426 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/config/i386/i386.c4
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/simd-8.c19
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