From d751957ab660c14d38c4a92cb5a749852686155f Mon Sep 17 00:00:00 2001 From: "Balaji V. Iyer" Date: Fri, 25 Jan 2013 23:45:17 +0000 Subject: Added the test cases which got omitted in the last commit. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/cilkplus@195481 138bc75d-0d04-0410-961f-82ee72b054a4 --- .../execute/test_builtin_return.cc | 71 ++++++++++++++++++++++ .../execute/test_builtin_return.c | 71 ++++++++++++++++++++++ .../cilk_keywords_test/errors/grainsize_error.c | 8 +++ 3 files changed, 150 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cilk-plus/array_notation_tests/execute/test_builtin_return.cc create mode 100644 gcc/testsuite/gcc.dg/cilk-plus/array_notation_tests/execute/test_builtin_return.c create mode 100644 gcc/testsuite/gcc.dg/cilk-plus/cilk_keywords_test/errors/grainsize_error.c diff --git a/gcc/testsuite/g++.dg/cilk-plus/array_notation_tests/execute/test_builtin_return.cc b/gcc/testsuite/g++.dg/cilk-plus/array_notation_tests/execute/test_builtin_return.cc new file mode 100644 index 00000000000..07e76ab5b56 --- /dev/null +++ b/gcc/testsuite/g++.dg/cilk-plus/array_notation_tests/execute/test_builtin_return.cc @@ -0,0 +1,71 @@ +/* { dg-options "-lm" } */ +/* { dg-do run } */ + +#if HAVE_IO +#include +#endif +#include +#define NUMBER 5 + +int func1 (int *a1, int *a2) +{ + return __sec_reduce_add (a1[0:NUMBER] * a2[0:NUMBER:1]); +} + +int func2 (int *a1, int *a2) +{ + return (__sec_reduce_add (a1[0:NUMBER] * a2[0:NUMBER]) + + __sec_reduce_mul (a1[0:NUMBER] + a2[0:NUMBER])); +} + +int func3 (int *a1, int *a2) +{ + return (int) sqrt ((double)(__sec_reduce_add (a1[0:NUMBER] * a2[0:NUMBER]) + + a2[0] + a2[1] + a2[3])); +} + +int func4 (int *a1, int *a2) +{ + return a1[NUMBER-1] * (__sec_reduce_add (a1[0:NUMBER] * a2[0:NUMBER]) + a2[0] + a2[1] + a2[3])/a1[NUMBER-2]; +} +int main(int argc, char **argv) +{ + int array[NUMBER], array2[NUMBER]; + int return_value = 0; + int ii = 0; + for (ii = 0; ii < NUMBER; ii++) + { + array[ii] = argc; /* This should calculate to 1. */ + array2[ii] = argc * argc + argc; /* This should calculate to 2. */ + } + + return_value = func1 (array, array2); +#if HAVE_IO + printf("Return_value = %d\n", return_value); +#endif + if (return_value != (2+2+2+2+2)) + return 1; + + return_value = func2 (array2, array); +#if HAVE_IO + printf("Return_value = %d\n", return_value); +#endif + if (return_value != (3*3*3*3*3) + (2+2+2+2+2)) + return 1; + + return_value = func3 (array, array2); +#if HAVE_IO + printf("Return_value = %d\n", return_value); +#endif + if (return_value != 4) + return 1; + + return_value = func4 (array, array2); +#if HAVE_IO + printf("Return_value = %d\n", return_value); +#endif + if (return_value != 16) + return 1; + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/cilk-plus/array_notation_tests/execute/test_builtin_return.c b/gcc/testsuite/gcc.dg/cilk-plus/array_notation_tests/execute/test_builtin_return.c new file mode 100644 index 00000000000..07e76ab5b56 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cilk-plus/array_notation_tests/execute/test_builtin_return.c @@ -0,0 +1,71 @@ +/* { dg-options "-lm" } */ +/* { dg-do run } */ + +#if HAVE_IO +#include +#endif +#include +#define NUMBER 5 + +int func1 (int *a1, int *a2) +{ + return __sec_reduce_add (a1[0:NUMBER] * a2[0:NUMBER:1]); +} + +int func2 (int *a1, int *a2) +{ + return (__sec_reduce_add (a1[0:NUMBER] * a2[0:NUMBER]) + + __sec_reduce_mul (a1[0:NUMBER] + a2[0:NUMBER])); +} + +int func3 (int *a1, int *a2) +{ + return (int) sqrt ((double)(__sec_reduce_add (a1[0:NUMBER] * a2[0:NUMBER]) + + a2[0] + a2[1] + a2[3])); +} + +int func4 (int *a1, int *a2) +{ + return a1[NUMBER-1] * (__sec_reduce_add (a1[0:NUMBER] * a2[0:NUMBER]) + a2[0] + a2[1] + a2[3])/a1[NUMBER-2]; +} +int main(int argc, char **argv) +{ + int array[NUMBER], array2[NUMBER]; + int return_value = 0; + int ii = 0; + for (ii = 0; ii < NUMBER; ii++) + { + array[ii] = argc; /* This should calculate to 1. */ + array2[ii] = argc * argc + argc; /* This should calculate to 2. */ + } + + return_value = func1 (array, array2); +#if HAVE_IO + printf("Return_value = %d\n", return_value); +#endif + if (return_value != (2+2+2+2+2)) + return 1; + + return_value = func2 (array2, array); +#if HAVE_IO + printf("Return_value = %d\n", return_value); +#endif + if (return_value != (3*3*3*3*3) + (2+2+2+2+2)) + return 1; + + return_value = func3 (array, array2); +#if HAVE_IO + printf("Return_value = %d\n", return_value); +#endif + if (return_value != 4) + return 1; + + return_value = func4 (array, array2); +#if HAVE_IO + printf("Return_value = %d\n", return_value); +#endif + if (return_value != 16) + return 1; + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/cilk-plus/cilk_keywords_test/errors/grainsize_error.c b/gcc/testsuite/gcc.dg/cilk-plus/cilk_keywords_test/errors/grainsize_error.c new file mode 100644 index 00000000000..c1b821dd7c0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cilk-plus/cilk_keywords_test/errors/grainsize_error.c @@ -0,0 +1,8 @@ +void check() { + int i, a[256]; +#pragma cilk grainsize=cilk /* { dg-error "undeclared" } */ + _Cilk_for(i = 0; i < 256; i++) { + a[i] = i; + } +} + -- cgit v1.2.3