+2012-05-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/53425
+ * config/i386/i386.c (type_natural_mode): Warn passing SSE
+ vector argument without SSE enabled changes the ABI.
+
2012-05-21 Richard Guenther <rguenther@suse.de>
PR tree-optimization/53408
}
return TYPE_MODE (type);
}
+ else if ((size == 8 || size == 16) && !TARGET_SSE)
+ {
+ static bool warnedsse;
+
+ if (cum
+ && !warnedsse
+ && cum->warn_sse)
+ {
+ warnedsse = true;
+ warning (0, "SSE vector argument without SSE "
+ "enabled changes the ABI");
+ }
+ return mode;
+ }
else
return mode;
}
+2012-05-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/53425
+ * gcc.target/i386/pr53425-1.c: New file.
+ * gcc.target/i386/pr53425-2.c: Likewise.
+
2012-05-21 Richard Guenther <rguenther@suse.de>
PR tree-optimization/53408
--- /dev/null
+/* PR target/53425 */
+/* { dg-do compile { target { ! { ia32 } } } } */
+/* { dg-options "-O2 -mno-sse" } */
+
+typedef double __v2df __attribute__ ((__vector_size__ (16)));
+
+extern __v2df x;
+
+extern void bar (__v2df);
+void
+foo (void)
+{
+ bar (x); /* { dg-message "warning: SSE vector argument without SSE enabled changes the ABI" } */
+}
--- /dev/null
+/* PR target/53425 */
+/* { dg-do compile { target { ! { ia32 } } } } */
+/* { dg-options "-O2 -mno-sse" } */
+
+typedef float __v2sf __attribute__ ((__vector_size__ (8)));
+
+extern __v2sf x;
+
+extern void bar (__v2sf);
+void
+foo (void)
+{
+ bar (x); /* { dg-message "warning: SSE vector argument without SSE enabled changes the ABI" } */
+}