diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-06 15:16:32 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-06 15:16:32 +0000 |
commit | 31ba6c3ff2311bad9422246f49d59c532cbb5078 (patch) | |
tree | 6e862e3ea14b2edf93a92c404a0d9b29f3f9ba65 /gcc/testsuite/gcc.dg/torture | |
parent | bab85b65e545231656361b997a81fb8a44b266b4 (diff) | |
download | gcc-31ba6c3ff2311bad9422246f49d59c532cbb5078.tar.gz |
2011-11-06 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 181026 using svnmerge
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@181034 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg/torture')
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr50890.c | 17 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr50902.c | 9 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c | 11 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/vec-cvt-1.c | 211 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/vshuf-v16hi.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/vshuf-v16qi.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/vshuf-v2df.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/vshuf-v2di.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/vshuf-v32qi.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/vshuf-v4df.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/vshuf-v4di.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/vshuf-v4sf.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/vshuf-v4si.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/vshuf-v8hi.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/vshuf-v8sf.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/vshuf-v8si.c | 1 |
16 files changed, 259 insertions, 1 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/pr50890.c b/gcc/testsuite/gcc.dg/torture/pr50890.c new file mode 100644 index 00000000000..17240d4fb82 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr50890.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ + +static float make_insn_raw (void) +{ + return 0; +} + +static int emit_pattern_after_noloc (int (make_raw) ()) +{ + return make_raw (); +} + +void emit_insn_after_noloc (void) +{ + emit_pattern_after_noloc ((void *) make_insn_raw); +} + diff --git a/gcc/testsuite/gcc.dg/torture/pr50902.c b/gcc/testsuite/gcc.dg/torture/pr50902.c new file mode 100644 index 00000000000..5b7275b839d --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr50902.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ + +_Bool data[128]; +void foo (_Bool *init) +{ + int i; + for (i = 0; i < 128; i++) + data[i] = *init; +} diff --git a/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c b/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c index a1ba20fce53..89c71a99d5b 100644 --- a/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c +++ b/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c @@ -9,6 +9,15 @@ #define INTEGER_ARG 5 +#if defined(__ARM_PCS) || defined(__epiphany__) +/* For Base AAPCS, NAME is passed in r0. D is passed in r2 and r3. + E, F and G are passed on stack. So the size of the stack argument + data is 20. */ +#define STACK_ARGUMENTS_SIZE 20 +#else +#define STACK_ARGUMENTS_SIZE 64 +#endif + extern void abort(void); void foo(char *name, double d, double e, double f, int g) @@ -19,7 +28,7 @@ void foo(char *name, double d, double e, double f, int g) void bar(char *name, ...) { - __builtin_apply(foo, __builtin_apply_args(), 64); + __builtin_apply(foo, __builtin_apply_args(), STACK_ARGUMENTS_SIZE); } int main(void) diff --git a/gcc/testsuite/gcc.dg/torture/vec-cvt-1.c b/gcc/testsuite/gcc.dg/torture/vec-cvt-1.c new file mode 100644 index 00000000000..601f098889c --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/vec-cvt-1.c @@ -0,0 +1,211 @@ +/* { dg-do run } */ + +#include <stdlib.h> + +#define N 1024 +signed char sc[N]; +short ss[N]; +int si[N]; +long long sl[N]; +unsigned char uc[N]; +unsigned short us[N]; +unsigned int ui[N]; +unsigned long long ul[N]; +float f[N]; +double d[N]; + +#define FN1(from, to) \ +__attribute__((noinline, noclone)) void \ +from##2##to (void) \ +{ \ + int i; \ + for (i = 0; i < N; i++) \ + to[i] = from[i]; \ +} +#define FN(intt, fltt) FN1 (intt, fltt) FN1 (fltt, intt) + +FN (sc, f) +FN (ss, f) +FN (si, f) +FN (sl, f) +FN (uc, f) +FN (us, f) +FN (ui, f) +FN (ul, f) +FN (sc, d) +FN (ss, d) +FN (si, d) +FN (sl, d) +FN (uc, d) +FN (us, d) +FN (ui, d) +FN (ul, d) + +#define FLTTEST(min, max, intt) \ +__attribute__((noinline, noclone)) void \ +flttointtest##intt (void) \ +{ \ + int i; \ + volatile float fltmin, fltmax, vf, vf2; \ + volatile double dblmin, dblmax, vd, vd2; \ + if (min == 0) \ + fltmin = 0.0f; \ + else \ + { \ + vf2 = fltmin = min - 1.0f; \ + for (vf = 1.0f; (fltmin = vf2 + vf) == vf2; vf = vf * 2.0f) \ + ; \ + } \ + vf2 = fltmax = max + 1.0f; \ + for (vf = 1.0f; (fltmax = vf2 - vf) == vf2; vf = vf * 2.0f) \ + ; \ + if (min == 0) \ + dblmin = 0.0; \ + else \ + { \ + vd2 = dblmin = min - 1.0; \ + for (vd = 1.0; (dblmin = vd2 + vd) == vd2; vd = vd * 2.0) \ + ; \ + } \ + vd2 = dblmax = max + 1.0; \ + for (vd = 1.0; (dblmax = vd2 - vd) == vd2; vd = vd * 2.0) \ + ; \ + for (i = 0; i < N; i++) \ + { \ + asm (""); \ + if (i == 0) \ + f[i] = fltmin; \ + else if (i < N / 4) \ + f[i] = fltmin + i + 0.25f; \ + else if (i < 3 * N / 4) \ + f[i] = (fltmax + fltmin) / 2.0 - N * 8 + 16.0f * i; \ + else \ + f[i] = fltmax - N + 1 + i; \ + if (f[i] < fltmin) f[i] = fltmin; \ + if (f[i] > fltmax) f[i] = fltmax; \ + if (i == 0) \ + d[i] = dblmin; \ + else if (i < N / 4) \ + d[i] = dblmin + i + 0.25f; \ + else if (i < 3 * N / 4) \ + d[i] = (dblmax + dblmin) / 2.0 - N * 8 + 16.0f * i; \ + else \ + d[i] = dblmax - N + 1 + i; \ + if (d[i] < dblmin) d[i] = dblmin; \ + if (d[i] > dblmax) d[i] = dblmax; \ + } \ + f2##intt (); \ + for (i = 0; i < N; i++) \ + if (intt[i] != (__typeof (intt[0])) f[i]) \ + abort (); \ + d2##intt (); \ + for (i = 0; i < N; i++) \ + if (intt[i] != (__typeof (intt[0])) d[i]) \ + abort (); \ + for (i = 0; i < N; i++) \ + { \ + unsigned long long r = random (); \ + r = (r << 21) ^ (unsigned) random (); \ + r = (r << 21) ^ (unsigned) random (); \ + asm (""); \ + f[i] = (r >> 59) / 32.0f + (__typeof (intt[0])) r; \ + if (f[i] < fltmin) f[i] = fltmin; \ + if (f[i] > fltmax) f[i] = fltmax; \ + d[i] = (r >> 59) / 32.0 + (__typeof (intt[0])) r; \ + if (d[i] < dblmin) f[i] = dblmin; \ + if (d[i] > dblmax) f[i] = dblmax; \ + } \ + f2##intt (); \ + for (i = 0; i < N; i++) \ + if (intt[i] != (__typeof (intt[0])) f[i]) \ + abort (); \ + d2##intt (); \ + for (i = 0; i < N; i++) \ + if (intt[i] != (__typeof (intt[0])) d[i]) \ + abort (); \ +} \ + \ +__attribute__((noinline, noclone)) void \ +inttoflttest##intt (void) \ +{ \ + int i; \ + volatile float vf; \ + volatile double vd; \ + for (i = 0; i < N; i++) \ + { \ + asm (""); \ + if (i < N / 4) \ + intt[i] = min + i; \ + else if (i < 3 * N / 4) \ + intt[i] = (max + min) / 2 - N * 8 + 16 * i; \ + else \ + intt[i] = max - N + 1 + i; \ + } \ + intt##2f (); \ + for (i = 0; i < N; i++) \ + { \ + vf = intt[i]; \ + if (f[i] != vf) \ + abort (); \ + } \ + intt##2d (); \ + for (i = 0; i < N; i++) \ + { \ + vd = intt[i]; \ + if (d[i] != vd) \ + abort (); \ + } \ + for (i = 0; i < N; i++) \ + { \ + unsigned long long r = random (); \ + r = (r << 21) ^ (unsigned) random (); \ + r = (r << 21) ^ (unsigned) random (); \ + asm (""); \ + intt[i] = r; \ + } \ + intt##2f (); \ + for (i = 0; i < N; i++) \ + { \ + vf = intt[i]; \ + if (f[i] != vf) \ + abort (); \ + } \ + intt##2d (); \ + for (i = 0; i < N; i++) \ + { \ + vd = intt[i]; \ + if (d[i] != vd) \ + abort (); \ + } \ +} + +FLTTEST (- __SCHAR_MAX__ - 1, __SCHAR_MAX__, sc) +FLTTEST (- __SHRT_MAX__ - 1, __SHRT_MAX__, ss) +FLTTEST (- __INT_MAX__ - 1, __INT_MAX__, si) +FLTTEST (- __LONG_LONG_MAX__ - 1LL, __LONG_LONG_MAX__, sl) +FLTTEST (0, 2U * __SCHAR_MAX__ + 1, uc) +FLTTEST (0, 2U * __SHRT_MAX__ + 1, us) +FLTTEST (0, 2U * __INT_MAX__ + 1, ui) +FLTTEST (0, 2ULL * __LONG_LONG_MAX__ + 1, ul) + +int +main () +{ + flttointtestsc (); + flttointtestss (); + flttointtestsi (); + flttointtestsl (); + flttointtestuc (); + flttointtestus (); + flttointtestui (); + flttointtestul (); + inttoflttestsc (); + inttoflttestss (); + inttoflttestsi (); + inttoflttestsl (); + inttoflttestuc (); + inttoflttestus (); + inttoflttestui (); + inttoflttestul (); + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/vshuf-v16hi.c b/gcc/testsuite/gcc.dg/torture/vshuf-v16hi.c index a6fbeb5aed5..9ff3ebbfa3d 100644 --- a/gcc/testsuite/gcc.dg/torture/vshuf-v16hi.c +++ b/gcc/testsuite/gcc.dg/torture/vshuf-v16hi.c @@ -1,5 +1,6 @@ /* { dg-do run } */ /* { dg-options "-DEXPENSIVE" { target run_expensive_tests } } */ +/* { dg-options "-fno-common" { target hppa*-*-hpux* } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O2" } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/torture/vshuf-v16qi.c b/gcc/testsuite/gcc.dg/torture/vshuf-v16qi.c index 526edf28967..062324d7bb9 100644 --- a/gcc/testsuite/gcc.dg/torture/vshuf-v16qi.c +++ b/gcc/testsuite/gcc.dg/torture/vshuf-v16qi.c @@ -1,5 +1,6 @@ /* { dg-do run } */ /* { dg-options "-DEXPENSIVE" { target run_expensive_tests } } */ +/* { dg-options "-fno-common" { target hppa*-*-hpux* } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O2" } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/torture/vshuf-v2df.c b/gcc/testsuite/gcc.dg/torture/vshuf-v2df.c index 7e327b13b75..8e33d1d0411 100644 --- a/gcc/testsuite/gcc.dg/torture/vshuf-v2df.c +++ b/gcc/testsuite/gcc.dg/torture/vshuf-v2df.c @@ -1,5 +1,6 @@ /* { dg-do run } */ /* { dg-options "-DEXPENSIVE" { target run_expensive_tests } } */ +/* { dg-options "-fno-common" { target hppa*-*-hpux* } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O2" } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/torture/vshuf-v2di.c b/gcc/testsuite/gcc.dg/torture/vshuf-v2di.c index 63da659807b..d498c28f0f9 100644 --- a/gcc/testsuite/gcc.dg/torture/vshuf-v2di.c +++ b/gcc/testsuite/gcc.dg/torture/vshuf-v2di.c @@ -1,5 +1,6 @@ /* { dg-do run } */ /* { dg-options "-DEXPENSIVE" { target run_expensive_tests } } */ +/* { dg-options "-fno-common" { target hppa*-*-hpux* } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O2" } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/torture/vshuf-v32qi.c b/gcc/testsuite/gcc.dg/torture/vshuf-v32qi.c index cf85815142a..0179006870c 100644 --- a/gcc/testsuite/gcc.dg/torture/vshuf-v32qi.c +++ b/gcc/testsuite/gcc.dg/torture/vshuf-v32qi.c @@ -1,5 +1,6 @@ /* { dg-do run } */ /* { dg-options "-DEXPENSIVE" { target run_expensive_tests } } */ +/* { dg-options "-fno-common" { target hppa*-*-hpux* } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O2" } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/torture/vshuf-v4df.c b/gcc/testsuite/gcc.dg/torture/vshuf-v4df.c index cc9d340a17f..c11d6396dfd 100644 --- a/gcc/testsuite/gcc.dg/torture/vshuf-v4df.c +++ b/gcc/testsuite/gcc.dg/torture/vshuf-v4df.c @@ -1,5 +1,6 @@ /* { dg-do run } */ /* { dg-options "-DEXPENSIVE" { target run_expensive_tests } } */ +/* { dg-options "-fno-common" { target hppa*-*-hpux* } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O2" } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/torture/vshuf-v4di.c b/gcc/testsuite/gcc.dg/torture/vshuf-v4di.c index 2d568961641..494cb78260e 100644 --- a/gcc/testsuite/gcc.dg/torture/vshuf-v4di.c +++ b/gcc/testsuite/gcc.dg/torture/vshuf-v4di.c @@ -1,5 +1,6 @@ /* { dg-do run } */ /* { dg-options "-DEXPENSIVE" { target run_expensive_tests } } */ +/* { dg-options "-fno-common" { target hppa*-*-hpux* } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O2" } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/torture/vshuf-v4sf.c b/gcc/testsuite/gcc.dg/torture/vshuf-v4sf.c index 7e605980312..4db59f9da14 100644 --- a/gcc/testsuite/gcc.dg/torture/vshuf-v4sf.c +++ b/gcc/testsuite/gcc.dg/torture/vshuf-v4sf.c @@ -1,5 +1,6 @@ /* { dg-do run } */ /* { dg-options "-DEXPENSIVE" { target run_expensive_tests } } */ +/* { dg-options "-fno-common" { target hppa*-*-hpux* } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O2" } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/torture/vshuf-v4si.c b/gcc/testsuite/gcc.dg/torture/vshuf-v4si.c index f12b98ea209..3ae86acd3c6 100644 --- a/gcc/testsuite/gcc.dg/torture/vshuf-v4si.c +++ b/gcc/testsuite/gcc.dg/torture/vshuf-v4si.c @@ -1,5 +1,6 @@ /* { dg-do run } */ /* { dg-options "-DEXPENSIVE" { target run_expensive_tests } } */ +/* { dg-options "-fno-common" { target hppa*-*-hpux* } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O2" } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/torture/vshuf-v8hi.c b/gcc/testsuite/gcc.dg/torture/vshuf-v8hi.c index 1440fb53f89..f4639880fb6 100644 --- a/gcc/testsuite/gcc.dg/torture/vshuf-v8hi.c +++ b/gcc/testsuite/gcc.dg/torture/vshuf-v8hi.c @@ -1,5 +1,6 @@ /* { dg-do run } */ /* { dg-options "-DEXPENSIVE" { target run_expensive_tests } } */ +/* { dg-options "-fno-common" { target hppa*-*-hpux* } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O2" } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/torture/vshuf-v8sf.c b/gcc/testsuite/gcc.dg/torture/vshuf-v8sf.c index 2044760bdc3..d11aa0c950a 100644 --- a/gcc/testsuite/gcc.dg/torture/vshuf-v8sf.c +++ b/gcc/testsuite/gcc.dg/torture/vshuf-v8sf.c @@ -1,5 +1,6 @@ /* { dg-do run } */ /* { dg-options "-DEXPENSIVE" { target run_expensive_tests } } */ +/* { dg-options "-fno-common" { target hppa*-*-hpux* } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O2" } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/torture/vshuf-v8si.c b/gcc/testsuite/gcc.dg/torture/vshuf-v8si.c index dbf9da7a699..64d97164d65 100644 --- a/gcc/testsuite/gcc.dg/torture/vshuf-v8si.c +++ b/gcc/testsuite/gcc.dg/torture/vshuf-v8si.c @@ -1,5 +1,6 @@ /* { dg-do run } */ /* { dg-options "-DEXPENSIVE" { target run_expensive_tests } } */ +/* { dg-options "-fno-common" { target hppa*-*-hpux* } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O2" } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ |