summaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorrazya <razya@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-03 08:59:25 +0000
committerrazya <razya@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-03 08:59:25 +0000
commit8d0991cf43d2f803eb41a51d4a3a8be1c2aa0985 (patch)
tree2b9e7a61b5a66c1df82fcc599b1f43406ad9814d /gcc/testsuite
parent2b44354ec7f99a0c448bedf6474d493598cc56f6 (diff)
downloadgcc-8d0991cf43d2f803eb41a51d4a3a8be1c2aa0985.tar.gz
PR tree-optimization/38275
* tree-parloops.c (parallelize_loops): Replace profitability condition for expected number of iterations. * testsuite/gcc.dg/autopar/reduc-1char.c: Increase number of iterations. Adjust the logic accordingly. * testsuite/gcc.dg/autopar/reduc-2char.c: Ditto. * testsuite/gcc.dg/autopar/reduc-1.c: Ditto. * testsuite/gcc.dg/autopar/reduc-2.c: Ditto. * testsuite/gcc.dg/autopar/reduc-3.c: Ditto. * testsuite/gcc.dg/autopar/reduc-6.c: Ditto. * testsuite/gcc.dg/autopar/reduc-7.c: Ditto. * testsuite/gcc.dg/autopar/reduc-8.c: Ditto. * testsuite/gcc.dg/autopar/reduc-9.c: Ditto. * testsuite/gcc.dg/autopar/pr39500-1.c: Ditto. * testsuite/gcc.dg/autopar/reduc-1short.c: Ditto. * testsuite/gcc.dg/autopar/reduc-2short.c: Ditto. * testsuite/gcc.dg/autopar/parallelization-1.c: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151372 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/gcc.dg/autopar/parallelization-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/autopar/pr39500-1.c10
-rw-r--r--gcc/testsuite/gcc.dg/autopar/reduc-1.c97
-rw-r--r--gcc/testsuite/gcc.dg/autopar/reduc-1char.c20
-rw-r--r--gcc/testsuite/gcc.dg/autopar/reduc-1short.c17
-rw-r--r--gcc/testsuite/gcc.dg/autopar/reduc-2.c31
-rw-r--r--gcc/testsuite/gcc.dg/autopar/reduc-2char.c18
-rw-r--r--gcc/testsuite/gcc.dg/autopar/reduc-2short.c18
-rw-r--r--gcc/testsuite/gcc.dg/autopar/reduc-3.c26
-rw-r--r--gcc/testsuite/gcc.dg/autopar/reduc-6.c22
-rw-r--r--gcc/testsuite/gcc.dg/autopar/reduc-7.c21
-rw-r--r--gcc/testsuite/gcc.dg/autopar/reduc-8.c20
-rw-r--r--gcc/testsuite/gcc.dg/autopar/reduc-9.c20
13 files changed, 230 insertions, 94 deletions
diff --git a/gcc/testsuite/gcc.dg/autopar/parallelization-1.c b/gcc/testsuite/gcc.dg/autopar/parallelization-1.c
index f71d6d53343..f53be8598db 100644
--- a/gcc/testsuite/gcc.dg/autopar/parallelization-1.c
+++ b/gcc/testsuite/gcc.dg/autopar/parallelization-1.c
@@ -6,7 +6,7 @@ void abort (void);
void parloop (int N)
{
int i;
- int x[10000000];
+ int x[10000990];
for (i = 0; i < N; i++)
x[i] = i + 3;
@@ -20,7 +20,7 @@ void parloop (int N)
int main(void)
{
- parloop(10000000);
+ parloop(10000);
return 0;
}
diff --git a/gcc/testsuite/gcc.dg/autopar/pr39500-1.c b/gcc/testsuite/gcc.dg/autopar/pr39500-1.c
index 161f31da6a1..6428bd062fe 100644
--- a/gcc/testsuite/gcc.dg/autopar/pr39500-1.c
+++ b/gcc/testsuite/gcc.dg/autopar/pr39500-1.c
@@ -8,14 +8,14 @@ void abort (void);
int main (void)
{
int i;
- int x[1000];
+ int x[100000];
- for (i = 0; i < 100; i++)
- x[i] = x[i+100];
+ for (i = 0; i < 10000; i++)
+ x[i] = x[i+10000];
- for (i = 0; i < 100; i++)
+ for (i = 0; i < 10000; i++)
{
- if (x[i] != x[i+100])
+ if (x[i] != x[i+10000])
abort ();
}
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-1.c b/gcc/testsuite/gcc.dg/autopar/reduc-1.c
index c8b624c8c5b..8018a558c43 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-1.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-1.c
@@ -4,55 +4,70 @@
#include <stdarg.h>
#include <stdlib.h>
-#define N 16
-#define DIFF 242
-
-unsigned int ub[N] = {1,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
-unsigned int uc[N] = {1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
-
-/* Reduction of unsigned-int. */
-
-void main1 (unsigned int x, unsigned int max_result, unsigned int min_result)
-{
- int i;
- unsigned int udiff = 2;
- unsigned int umax = x;
- unsigned int umin = x;
-
- /* Summation. */
- for (i = 0; i < N; i++) {
- udiff += (ub[i] - uc[i]);
- }
-
- /* Maximum. */
- for (i = 0; i < N; i++) {
- umax = umax < uc[i] ? uc[i] : umax;
- }
-
- /* Minimum. */
- for (i = 0; i < N; i++) {
- umin = umin > uc[i] ? uc[i] : umin;
- }
-
- /* check results: */
- if (udiff != DIFF)
- abort ();
- if (umax != max_result)
- abort ();
- if (umin != min_result)
- abort ();
+ #define N 1600
+ #define DIFF 2558402
+
+unsigned int ub[N];
+unsigned int uc[N];
+
+ /* Reduction of unsigned-int. */
+
+ void main1 (unsigned int x, unsigned int max_result, unsigned int min_result)
+ {
+ int i;
+ unsigned int udiff = 2;
+ unsigned int umax = x;
+ unsigned int umin = x;
+
+ /* Summation. */
+ for (i = 0; i < N; i++) {
+ udiff += (ub[i] - uc[i]);
+ }
+
+ /* Maximum. */
+ for (i = 0; i < N; i++) {
+ umax = umax < uc[i] ? uc[i] : umax;
+ }
+
+ /* Minimum. */
+ for (i = 0; i < N; i++) {
+ umin = umin > uc[i] ? uc[i] : umin;
+ }
+
+ /* check results: */
+ if (udiff != DIFF)
+ abort ();
+ if (umax != max_result)
+ abort ();
+ if (umin != min_result)
+ abort ();
+ }
+
+ __attribute__((noinline))
+ void init_arrays ()
+ {
+ int i;
+
+ ub[0] = 1;
+ uc[0] = 1;
+ for (i=1; i<N; i++)
+ {
+ ub[i] = i * 3;
+ uc[i] = i;
+ }
}
int main (void)
{
-
- main1 (100, 100, 1);
- main1 (0, 15, 0);
+ init_arrays ();
+ main1 (2000, 2000, 1);
+ main1 (0, 1599, 0);
return 0;
}
+
/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 4 "parloops" } } */
/* { dg-final { cleanup-tree-dump "parloops" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-1char.c b/gcc/testsuite/gcc.dg/autopar/reduc-1char.c
index e3c73ba0d57..76645c85075 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-1char.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-1char.c
@@ -4,7 +4,7 @@
#include <stdarg.h>
#include <stdlib.h>
-#define N 16
+#define N 1600
#define DIFF 242
unsigned char ub[N] = {1,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
@@ -39,15 +39,29 @@ main1 (unsigned char x, unsigned char max_result, unsigned char min_result)
abort ();
}
+ __attribute__((noinline))
+ void init_arrays ()
+ {
+ int i;
+
+ for (i=16; i<N; i++)
+ {
+ ub[i] = 1;
+ uc[i] = 1;
+ }
+}
+
int main (void)
-{
+{
+ init_arrays();
main1 (100, 100, 1);
main1 (0, 15, 0);
return 0;
}
+
/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 4 "parloops" } } */
/* { dg-final { cleanup-tree-dump "parloops" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-1short.c b/gcc/testsuite/gcc.dg/autopar/reduc-1short.c
index 10f1401d5c9..526f170096a 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-1short.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-1short.c
@@ -4,7 +4,7 @@
#include <stdarg.h>
#include <stdlib.h>
-#define N 16
+#define N 1600
#define DIFF 242
unsigned short ub[N] = {1,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
@@ -39,15 +39,28 @@ main1 (unsigned short x, unsigned short max_result, unsigned short min_result)
abort ();
}
+ __attribute__((noinline))
+ void init_arrays ()
+ {
+ int i;
+
+ for (i=16; i<N; i++)
+ {
+ ub[i] = 1;
+ uc[i] = 1;
+ }
+}
+
int main (void)
{
+ init_arrays();
main1 (100, 100, 1);
main1 (0, 15, 0);
return 0;
}
/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 4 "parloops" } } */
/* { dg-final { cleanup-tree-dump "parloops" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-2.c b/gcc/testsuite/gcc.dg/autopar/reduc-2.c
index 8a0338f1c6a..e0abb265b5b 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-2.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-2.c
@@ -4,11 +4,11 @@
#include <stdarg.h>
#include <stdlib.h>
-#define N 16
-#define DIFF 240
+#define N 1600
+#define DIFF 2558400
-int b[N] = {1,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
-int c[N] = {1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+int b[N];
+int c[N];
/* Reduction of signed-int. */
@@ -31,7 +31,7 @@ void main1 (int x, int max_result, int min_result)
for (i = 0; i < N; i++) {
min = min > c[i] ? c[i] : min;
}
-
+
/* check results: */
if (diff != DIFF)
abort ();
@@ -41,15 +41,30 @@ void main1 (int x, int max_result, int min_result)
abort ();
}
+ __attribute__((noinline))
+ void init_arrays ()
+ {
+ int i;
+
+ b[0] = 1;
+ c[0] = 1;
+ for (i=1; i<N; i++)
+ {
+ b[i] = i * 3;
+ c[i] = i;
+ }
+}
+
int main (void)
{
- main1 (100, 100, 1);
- main1 (0, 15, 0);
+ init_arrays ();
+ main1 (2000, 2000, 1);
+ main1 (0, 1599, 0);
return 0;
}
/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 4 "parloops" } } */
/* { dg-final { cleanup-tree-dump "parloops" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-2char.c b/gcc/testsuite/gcc.dg/autopar/reduc-2char.c
index 0372dc6a2b2..ada1275f99d 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-2char.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-2char.c
@@ -4,7 +4,7 @@
#include <stdarg.h>
#include <stdlib.h>
-#define N 16
+#define N 1600
#define DIFF 121
signed char b[N] = {1,2,3,6,8,10,12,14,16,18,20,22,24,26,28,30};
@@ -39,15 +39,29 @@ void main1 (signed char x, signed char max_result, signed char min_result)
abort ();
}
+ __attribute__((noinline))
+ void init_arrays ()
+ {
+ int i;
+
+ for (i=16; i<N; i++)
+ {
+ b[i] = 1;
+ c[i] = 1;
+ }
+}
+
int main (void)
{
+ init_arrays();
main1 (100, 100, 1);
main1 (0, 15, 0);
return 0;
}
+
/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 2 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops" } } */
/* { dg-final { cleanup-tree-dump "parloops" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-2short.c b/gcc/testsuite/gcc.dg/autopar/reduc-2short.c
index 4f37e864192..3363c68f428 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-2short.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-2short.c
@@ -4,7 +4,7 @@
#include <stdarg.h>
#include <stdlib.h>
-#define N 16
+#define N 1600
#define DIFF 242
short b[N] = {1,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
@@ -38,15 +38,29 @@ void main1 (short x, short max_result, short min_result)
abort ();
}
+ __attribute__((noinline))
+ void init_arrays ()
+ {
+ int i;
+
+ for (i=16; i<N; i++)
+ {
+ b[i] = 1;
+ c[i] = 1;
+ }
+}
+
int main (void)
{
+ init_arrays();
main1 (100, 100, 1);
main1 (0, 15, 0);
return 0;
}
+
/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 2 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops" } } */
/* { dg-final { cleanup-tree-dump "parloops" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-3.c b/gcc/testsuite/gcc.dg/autopar/reduc-3.c
index 0ec3aaa8102..6bc204711e5 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-3.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-3.c
@@ -4,10 +4,10 @@
#include <stdarg.h>
#include <stdlib.h>
-#define N 16
+#define N 1600
-unsigned int ub[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
-unsigned int uc[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+unsigned int ub[N];
+unsigned int uc[N];
/* Reduction of unsigned-int. */
@@ -29,15 +29,29 @@ int main1 (int n, int res)
return 0;
}
+__attribute__((noinline))
+void init_arrays ()
+{
+ int i;
+
+ for (i=0; i<N; i++)
+ {
+ ub[i] = i * 3;
+ uc[i] = i;
+ }
+}
+
int main (void)
{
- main1 (N, 240);
- main1 (N-1, 210);
+ init_arrays ();
+ main1 (N, 2558400);
+ main1 (N-1, 2555202);
return 0;
}
+
/* { dg-final { scan-tree-dump-times "Detected reduction" 1 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 2 "parloops" } } */
/* { dg-final { cleanup-tree-dump "parloops" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-6.c b/gcc/testsuite/gcc.dg/autopar/reduc-6.c
index f6d503c9be4..fface8fed35 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-6.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-6.c
@@ -4,19 +4,26 @@
#include <stdarg.h>
#include <stdlib.h>
-#define N 16
-#define DIFF 242
+#define N 1600
+#define DIFF 2558402
+
__attribute__ ((noinline))
int main1 (float x, float max_result)
{
int i;
- float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
- float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+ float b[N];
+ float c[N];
float diff = 2;
float max = x;
float min = 10;
+ for (i=0; i<N; i++)
+ {
+ b[i] = i * 3;
+ c[i] = i;
+ }
+
for (i = 0; i < N; i++) {
diff += (b[i] - c[i]);
}
@@ -42,14 +49,15 @@ int main1 (float x, float max_result)
int main (void)
{
- main1 (100 ,100);
- main1 (0, 15);
+ main1 (2000, 2000);
+ main1 (0, 1599);
return 0;
}
+
/* need -ffast-math to parallelize these loops. */
/* { dg-final { scan-tree-dump-times "Detected reduction" 0 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 0 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 1 "parloops" } } */
/* { dg-final { scan-tree-dump-times "FAILED: it is not a part of reduction" 3 "parloops" } } */
/* { dg-final { cleanup-tree-dump "parloops" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-7.c b/gcc/testsuite/gcc.dg/autopar/reduc-7.c
index f25b03abb6d..f66069e56ca 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-7.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-7.c
@@ -3,7 +3,7 @@
#include <stdlib.h>
-#define N 32
+#define N 3200
extern void abort (void);
typedef unsigned char T;
@@ -42,28 +42,36 @@ testmin (const T *c, T init, T result)
int main (void)
{
- static unsigned char const A[N] = {
+ static unsigned char A[N] = {
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f
};
- static unsigned char const B[N] = {
+ static unsigned char B[N] = {
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f
};
- static unsigned char const C[N] = {
+ static unsigned char C[N] = {
0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
};
-
+ int i;
+
+ for (i=32; i<N; i++)
+ {
+ A[i]= 0x01;
+ B[i]= 0x70;
+ C[i]= 0xff;
+ }
+
testmin (A, 10, 1);
testmin (B, 0x7f, 0x70);
testmin (C, 0x7f, 0x09);
@@ -75,8 +83,9 @@ int main (void)
return 0;
}
+
/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 2 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops" } } */
/* { dg-final { cleanup-tree-dump "parloops" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-8.c b/gcc/testsuite/gcc.dg/autopar/reduc-8.c
index 801561da87d..4a416df2372 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-8.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-8.c
@@ -3,7 +3,7 @@
#include <stdlib.h>
-#define N 32
+#define N 3200
extern void abort (void);
typedef signed char T;
@@ -42,27 +42,36 @@ testmin (const T *c, T init, T result)
int main (void)
{
- static signed char const A[N] = {
+ static signed char A[N] = {
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f
};
- static signed char const B[N] = {
+ static signed char B[N] = {
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f
};
- static signed char const C[N] = {
+ static signed char C[N] = {
0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
};
+ int i;
+
+ for (i=32; i<N; i++)
+ {
+ A[i]= 0x01;
+ B[i]= 0x70;
+ C[i]= 0xff;
+ }
+
testmin (A, 0, 0);
testmin (B, 0, 0x80);
testmin (C, 0, 0x80);
@@ -74,7 +83,8 @@ int main (void)
return 0;
}
+
/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 2 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops" } } */
/* { dg-final { cleanup-tree-dump "parloops" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-9.c b/gcc/testsuite/gcc.dg/autopar/reduc-9.c
index 2bc04ccfc74..2c1677ce5ee 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-9.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-9.c
@@ -3,7 +3,7 @@
#include <stdlib.h>
-#define N 32
+#define N 3200
extern void abort (void);
typedef unsigned short T;
@@ -42,27 +42,36 @@ testmin (const T *c, T init, T result)
int main (void)
{
- static unsigned short const A[N] = {
+ static unsigned short A[N] = {
0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008,
0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010,
0x7000, 0x7100, 0x7200, 0x7300, 0x7400, 0x7500, 0x7600, 0x7700,
0x7ff8, 0x7ff9, 0x7ffa, 0x7ffb, 0x7ffc, 0x7ffd, 0x7ffe, 0x7fff
};
- static unsigned short const B[N] = {
+ static unsigned short B[N] = {
0x7000, 0x7100, 0x7200, 0x7300, 0x7400, 0x7500, 0x7600, 0x7700,
0x7ff8, 0x7ff9, 0x7ffa, 0x7ffb, 0x7ffc, 0x7ffd, 0x7ffe, 0x7fff,
0x8000, 0x8001, 0x8002, 0x8003, 0x8004, 0x8005, 0x8006, 0x8007,
0x8008, 0x8009, 0x800a, 0x800b, 0x800c, 0x800d, 0x800e, 0x800f
};
- static unsigned short const C[N] = {
+ static unsigned short C[N] = {
0xffff, 0xfffe, 0xfffd, 0xfffc, 0xfffb, 0xfffa, 0xfff9, 0xfff8,
0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010,
0x8000, 0x8001, 0x8002, 0x8003, 0x8004, 0x8005, 0x8006, 0x8007,
0x7000, 0x7100, 0x7200, 0x7300, 0x7400, 0x7500, 0x7600, 0x7700,
};
+ int i;
+
+ for (i=32; i<N; i++)
+ {
+ A[i]= 0x0001;
+ B[i]= 0x7000;
+ C[i]= 0xffff;
+ }
+
testmin (A, 10, 1);
testmin (B, 0x7fff, 0x7000);
testmin (C, 0x7fff, 0x0009);
@@ -74,7 +83,8 @@ int main (void)
return 0;
}
+
/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 2 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops" } } */
/* { dg-final { cleanup-tree-dump "parloops" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */