From 8b3cc88233733753e203f6042e04e719fb917cef Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Mon, 23 Apr 2007 08:02:05 +0200 Subject: [PATCH] target-supports.exp (check_effective_target_vect_pack_trunc): Rename from check_effective_target_vect_pack_mod. * lib/target-supports.exp (check_effective_target_vect_pack_trunc): Rename from check_effective_target_vect_pack_mod. Rename global variable et_vect_pack_mod to et_vect_pack_trunc. Update debug messages. * gcc.dg/vect/vect-iv-8.c: Update target check for vect_pack_trunc rename. * gcc.dg/vect/vect-iv-8a.c: Ditto. * gcc.dg/vect/vect-multitypes-8.c: Ditto. From-SVN: r124057 --- gcc/testsuite/ChangeLog | 11 +++++ .../gcc.dg/vect/vect-float-extend-1.c | 40 +++++++++++++++++++ .../gcc.dg/vect/vect-float-truncate-1.c | 40 +++++++++++++++++++ gcc/testsuite/gcc.dg/vect/vect-iv-8.c | 2 +- gcc/testsuite/gcc.dg/vect/vect-iv-8a.c | 2 +- gcc/testsuite/gcc.dg/vect/vect-multitypes-8.c | 2 +- gcc/testsuite/lib/target-supports.exp | 16 ++++---- 7 files changed, 102 insertions(+), 11 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/vect/vect-float-extend-1.c create mode 100644 gcc/testsuite/gcc.dg/vect/vect-float-truncate-1.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2546590cb79..0675922d590 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2007-04-23 Uros Bizjak + + * lib/target-supports.exp (check_effective_target_vect_pack_trunc): + Rename from check_effective_target_vect_pack_mod. Rename global + variable et_vect_pack_mod to et_vect_pack_trunc. Update debug + messages. + * gcc.dg/vect/vect-iv-8.c: Update target check for vect_pack_trunc + rename. + * gcc.dg/vect/vect-iv-8a.c: Ditto. + * gcc.dg/vect/vect-multitypes-8.c: Ditto. + 2007-04-22 Andrew Pinski PR middle-end/31448 diff --git a/gcc/testsuite/gcc.dg/vect/vect-float-extend-1.c b/gcc/testsuite/gcc.dg/vect/vect-float-extend-1.c new file mode 100644 index 00000000000..24552b20fe8 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-float-extend-1.c @@ -0,0 +1,40 @@ +/* { dg-require-effective-target vect_double } */ + +#include +#include "tree-vect.h" + +#define N 32 + +int +main1 () +{ + int i; + float fb[N] = {0.4,3.5,6.6,9.4,12.5,15.6,18.4,21.5,24.6,27.4,30.5,33.6,36.4,39.5,42.6,45.4,0.5,3.6,6.4,9.5,12.6,15.4,18.5,21.6,24.4,27.5,30.6,33.4,36.5,39.6,42.4,45.5}; + double da[N]; + + /* float -> double */ + for (i = 0; i < N; i++) + { + da[i] = (double) fb[i]; + } + + /* check results: */ + for (i = 0; i < N; i++) + { + if (da[i] != (double) fb[i]) + abort (); + } + + return 0; +} + +int +main (void) +{ + check_vect (); + + return main1 (); +} + +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail spu*-*-* } } } */ +/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-float-truncate-1.c b/gcc/testsuite/gcc.dg/vect/vect-float-truncate-1.c new file mode 100644 index 00000000000..9862e9c9cac --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-float-truncate-1.c @@ -0,0 +1,40 @@ +/* { dg-require-effective-target vect_double } */ + +#include +#include "tree-vect.h" + +#define N 32 + +int +main1 () +{ + int i; + double db[N] = {0.4,3.5,6.6,9.4,12.5,15.6,18.4,21.5,24.6,27.4,30.5,33.6,36.4,39.5,42.6,45.4,0.5,3.6,6.4,9.5,12.6,15.4,18.5,21.6,24.4,27.5,30.6,33.4,36.5,39.6,42.4,45.5}; + float fa[N]; + + /* double -> float */ + for (i = 0; i < N; i++) + { + fa[i] = (float) db[i]; + } + + /* check results: */ + for (i = 0; i < N; i++) + { + if (fa[i] != (float) db[i]) + abort (); + } + + return 0; +} + +int +main (void) +{ + check_vect (); + + return main1 (); +} + +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail spu*-*-* } } } */ +/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-iv-8.c b/gcc/testsuite/gcc.dg/vect/vect-iv-8.c index f8626a1a58f..c6e4773db28 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-iv-8.c +++ b/gcc/testsuite/gcc.dg/vect/vect-iv-8.c @@ -42,6 +42,6 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */ /* Fails to get vectorized due to a redundant cast. Once this is fixed, should be vectorized as follows: - dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_pack_mod && vect_unpack } } } + dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_pack_trunc && vect_unpack } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-iv-8a.c b/gcc/testsuite/gcc.dg/vect/vect-iv-8a.c index ac6bde7210c..62f0d07e07f 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-iv-8a.c +++ b/gcc/testsuite/gcc.dg/vect/vect-iv-8a.c @@ -39,5 +39,5 @@ int main (void) return main1 (3); } -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_pack_mod && vect_unpack } } } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_pack_trunc && vect_unpack } } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-multitypes-8.c b/gcc/testsuite/gcc.dg/vect/vect-multitypes-8.c index 639415cdff2..18ded392be5 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-multitypes-8.c +++ b/gcc/testsuite/gcc.dg/vect/vect-multitypes-8.c @@ -45,6 +45,6 @@ int main (void) return 0; } -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_pack_mod } } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_pack_trunc } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 640a07b6b76..702f09c38be 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -1862,21 +1862,21 @@ proc check_effective_target_vect_udot_hi { } { # # This won't change for different subtargets so cache the result. -proc check_effective_target_vect_pack_mod { } { - global et_vect_pack_mod +proc check_effective_target_vect_pack_trunc { } { + global et_vect_pack_trunc - if [info exists et_vect_pack_mod_saved] { - verbose "check_effective_target_vect_pack_mod: using cached result" 2 + if [info exists et_vect_pack_trunc_saved] { + verbose "check_effective_target_vect_pack_trunc: using cached result" 2 } else { - set et_vect_pack_mod_saved 0 + set et_vect_pack_trunc_saved 0 if { [istarget powerpc*-*-*] || [istarget i?86-*-*] || [istarget x86_64-*-*] } { - set et_vect_pack_mod_saved 1 + set et_vect_pack_trunc_saved 1 } } - verbose "check_effective_target_vect_pack_mod: returning $et_vect_pack_mod_saved" 2 - return $et_vect_pack_mod_saved + verbose "check_effective_target_vect_pack_trunc: returning $et_vect_pack_trunc_saved" 2 + return $et_vect_pack_trunc_saved } # Return 1 if the target plus current options supports a vector -- 2.30.2