diff options
author | Richard Biener <rguenther@suse.de> | 2015-05-07 09:52:38 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2015-05-07 09:52:38 +0000 |
commit | 465770e43996a13247a918ed510b725f949c1058 (patch) | |
tree | 5610015ab1a2cf641d6417f9a4f4d4f6822e8a97 /gcc | |
parent | e0f0d3b9d210c7962d8186403b87c0b08c19b8ff (diff) | |
download | gcc-465770e43996a13247a918ed510b725f949c1058.zip gcc-465770e43996a13247a918ed510b725f949c1058.tar.gz gcc-465770e43996a13247a918ed510b725f949c1058.tar.bz2 |
re PR tree-optimization/66002 (paq8p benchmark 50% slower than clang on sandybridge)
2015-05-07 Richard Biener <rguenther@suse.de>
PR tree-optimization/66002
* passes.def: Schedule another pass_merge_phi after ifcombine, right
before phiopt.
* gcc.dg/vect/vect-125.c: New testcase.
From-SVN: r222873
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/passes.def | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-125.c | 20 |
4 files changed, 32 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index beabbcb..c294b01 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-05-07 Richard Biener <rguenther@suse.de> + + PR tree-optimization/66002 + * passes.def: Schedule another pass_merge_phi after ifcombine, right + before phiopt. + 2015-05-07 Marek Polacek <polacek@redhat.com> Martin Uecker <uecker@eecs.berkeley.edu> diff --git a/gcc/passes.def b/gcc/passes.def index 32213e8..4690e23 100644 --- a/gcc/passes.def +++ b/gcc/passes.def @@ -177,6 +177,7 @@ along with GCC; see the file COPYING3. If not see NEXT_PASS (pass_cselim); NEXT_PASS (pass_copy_prop); NEXT_PASS (pass_tree_ifcombine); + NEXT_PASS (pass_merge_phi); NEXT_PASS (pass_phiopt); NEXT_PASS (pass_tail_recursion); NEXT_PASS (pass_ch); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d4d5263..69cb4ff 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-05-07 Richard Biener <rguenther@suse.de> + + PR tree-optimization/66002 + * gcc.dg/vect/vect-125.c: New testcase. + 2015-05-07 Marek Polacek <polacek@redhat.com> Martin Uecker <uecker@eecs.berkeley.edu> diff --git a/gcc/testsuite/gcc.dg/vect/vect-125.c b/gcc/testsuite/gcc.dg/vect/vect-125.c new file mode 100644 index 0000000..f6ffef5 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-125.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target vect_int } */ +/* { dg-require-effective-target vect_int_mult } */ +/* { dg-require-effective-target vect_pack_trunc } */ +/* { dg-require-effective-target vect_unpack } */ + +void train(short *t, short *w, int n, int err) +{ + n=(n+7)&-8; + for (int i=0; i<n; ++i) + { + int wt=w[i]+((t[i]*err*2>>16)+1>>1); + if (wt<-32768) wt=-32768; + if (wt>32767) wt=32767; + w[i]=wt; + } +} + +/* { dg-final { scan-tree-dump "vectorized 1 loops" "vect" { xfail vect_no_int_max } } } */ +/* { dg-final { cleanup-tree-dump "vect" } } */ |