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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233898
138bc75d-0d04-0410-961f-
82ee72b054a4
+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
{
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
+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
--- /dev/null
+/* { 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