The subject testcase is failing on older powerpc64 hardware that doesn't
support vector instructions because the prolog code is saving callee
save vector registers used in the loop before the check_vect() call has
even been performed. Following was tested on powerpc64-linux. Ok for
trunk/4.9 branch?
-Pat
2015-02-26 Pat Haugen <pthau...@us.ibm.com>
gcc/testsuite:
* gcc.dg/vect/pr59354.c: Move vector producing code to separate
function.
Index: gcc.dg/vect/pr59354.c
===================================================================
--- gcc.dg/vect/pr59354.c (revision 221016)
+++ gcc.dg/vect/pr59354.c (working copy)
@@ -8,12 +8,11 @@ void abort (void);
unsigned int a[256];
unsigned char b[256];
-int main()
+__attribute__ ((noinline)) void
+main1()
{
int i, z, x, y;
- check_vect ();
-
for(i = 0; i < 256; i++)
{
a[i] = i % 5;
@@ -27,6 +26,13 @@ int main()
if (b[4] != 1)
abort ();
+}
+
+int main (void)
+{
+ check_vect ();
+
+ main1 ();
return 0;
}