diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/vect')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/vect/pr25413a.c | 1 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/vect/pr59594.c | 2 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60196-1.c | 34 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60196-2.c | 33 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/vect/pr62021.c | 30 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/vect/pr62075.c | 22 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/vect/pr63189.c | 26 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/vect/pr63379.c | 43 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/vect/pr63605.c | 22 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/vect/vect-109.c | 1 |
10 files changed, 213 insertions, 1 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr25413a.c b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr25413a.c index b9bef5f..db64281 100644 --- a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr25413a.c +++ b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr25413a.c @@ -102,6 +102,7 @@ octfapg_alloc (const var_t n) return m; } +__attribute__((noinline)) oct_t* octfapg_universe (const var_t n) { diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr59594.c b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr59594.c index 6c0b588..14a86ed 100644 --- a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr59594.c +++ b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr59594.c @@ -3,7 +3,7 @@ #include "tree-vect.h" #define N 1024 -int b[N + 1]; +int b[N + 2]; int main () diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60196-1.c b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60196-1.c new file mode 100644 index 0000000..10ed4af --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60196-1.c @@ -0,0 +1,34 @@ +/* PR tree-optimization/63189 */ +/* { dg-additional-options "-fwrapv" } */ +/* { dg-do run } */ + +#include "tree-vect.h" + +__attribute__((noinline, noclone)) static int +bar (const short *a, int len) +{ + int x; + int x1 = 0; + + for (x = 0; x < len; x++) + x1 += x * a[x]; + return x1; +} + +__attribute__((noinline, noclone)) void +foo (void) +{ + short stuff[9] = {1, 1, 1, 1, 1, 1, 1, 1, 1 }; + if (bar (stuff, 9) != 36) + abort (); +} + +int +main () +{ + check_vect (); + foo (); + return 0; +} + +/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60196-2.c b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60196-2.c new file mode 100644 index 0000000..b2059c2 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60196-2.c @@ -0,0 +1,33 @@ +/* PR tree-optimization/63189 */ +/* { dg-do run } */ + +#include "tree-vect.h" + +static const short a[8] = {1, 1, 1, 1, 1, 1, 1, 1 }; +static const unsigned char b[8] = {0, 0, 0, 0, 0, 0, 0, 0 }; + +__attribute__((noinline, noclone)) static int +bar (void) +{ + int sum = 0, i; + for (i = 0; i < 8; ++i) + sum += a[i] * b[i]; + return sum; +} + +__attribute__((noinline, noclone)) void +foo (void) +{ + if (bar () != 0) + abort (); +} + +int +main () +{ + check_vect (); + foo (); + return 0; +} + +/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr62021.c b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr62021.c new file mode 100644 index 0000000..e0208e6 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr62021.c @@ -0,0 +1,30 @@ +/* { dg-require-effective-target vect_simd_clones } */ +/* { dg-additional-options "-fopenmp-simd" } */ +/* { dg-additional-options "-mavx" { target avx_runtime } } */ + +#pragma omp declare simd linear(y) +__attribute__((noinline)) int * +foo (int *x, int y) +{ + return x + y; +} + +int a[1024]; +int *b[1024] = { &a[0] }; + +int +main () +{ + int i; + for (i = 0; i < 1024; i++) + b[i] = &a[1023 - i]; + #pragma omp simd + for (i = 0; i < 1024; i++) + b[i] = foo (b[i], i); + for (i = 0; i < 1024; i++) + if (b[i] != &a[1023]) + __builtin_abort (); + return 0; +} + +/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr62075.c b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr62075.c new file mode 100644 index 0000000..798490e --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr62075.c @@ -0,0 +1,22 @@ +/* { dg-do compile } */ + +int a[16][2]; +struct A +{ + int b[16][2]; + int c[16][1]; +}; + +void +foo (struct A *x) +{ + int i; + for (i = 0; i < 16; ++i) + { + x->b[i][0] = a[i][0]; + x->c[i][0] = 0 != a[i][0]; + x->b[i][1] = a[i][1]; + } +} + +/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr63189.c b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr63189.c new file mode 100644 index 0000000..da6fba4 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr63189.c @@ -0,0 +1,26 @@ +/* PR tree-optimization/63189 */ +/* { dg-do run } */ + +#include "tree-vect.h" + +short int d[16] = { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }; + +__attribute__((noinline, noclone)) void +foo (void) +{ + int j, s = 0; + for (j = 0; j < 8; j++) + s += d[j] * j; + if (s != 7) + abort (); +} + +int +main () +{ + check_vect (); + foo (); + return 0; +} + +/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr63379.c b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr63379.c new file mode 100644 index 0000000..f6e8fc6 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr63379.c @@ -0,0 +1,43 @@ +/* PR tree-optimization/63379 */ +/* { dg-do run } */ + +#include "tree-vect.h" + +extern void abort (void); + +typedef struct { + int x; + int y; +} Point; + +Point pt_array[25]; + +void __attribute__((noinline,noclone)) +generate_array(void) +{ + unsigned int i; + for (i = 0; i<25; i++) + { + pt_array[i].x = i; + pt_array[i].y = 1000+i; + } +} + +int main() +{ + check_vect (); + generate_array (); + Point min_pt = pt_array[0]; + Point *ptr, *ptr_end; + for (ptr = pt_array+1, ptr_end = pt_array+25; ptr != ptr_end; ++ptr) + { + min_pt.x = (min_pt.x < ptr->x) ? min_pt.x : ptr->x; + min_pt.y = (min_pt.y < ptr->y) ? min_pt.y : ptr->y; + } + + if (min_pt.x != 0 || min_pt.y != 1000) + abort (); + return 0; +} + +/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr63605.c b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr63605.c new file mode 100644 index 0000000..5096c72 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr63605.c @@ -0,0 +1,22 @@ +/* { dg-do run } */ + +#include "tree-vect.h" + +extern void abort (void); + +int a, b[8] = { 2, 0, 0, 0, 0, 0, 0, 0 }, c[8]; + +int +main () +{ + int d; + check_vect (); + for (; a < 8; a++) + { + d = b[a] >> 1; + c[a] = d != 0; + } + if (c[0] != 1) + abort (); + return 0; +} diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/vect/vect-109.c b/gcc-4.9/gcc/testsuite/gcc.dg/vect/vect-109.c index 854c970..6b5db90 100644 --- a/gcc-4.9/gcc/testsuite/gcc.dg/vect/vect-109.c +++ b/gcc-4.9/gcc/testsuite/gcc.dg/vect/vect-109.c @@ -39,6 +39,7 @@ int main1 (int n) return 0; } +__attribute__ ((noinline)) int main2 (int n) { int i; |