This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch] Fix SLP PR58135.


Hi Richard, 

As per your suggestion I tried to fix the PR by splitting the SLP store group at vector boundary after the SLP tree is built.

Boot strap PASSED on x86_64.
Checked the patch with check_GNU_style.sh.

The gfortran.dg/pr46519-1.f test now does SLP vectorization. Hence it  generated 2 more vzeroupper.  
As recommended I adjusted the test case by adding -fno-tree-slp-vectorize to make it as expected after loop vectorization.

The following tests are now passing.

------ Snip-----
Tests that now work, but didn't before:

gcc.dg/vect/bb-slp-19.c -flto -ffat-lto-objects  scan-tree-dump-times slp2 "basic block vectorized" 1

gcc.dg/vect/bb-slp-19.c scan-tree-dump-times slp2 "basic block vectorized" 1

New tests that PASS:

gcc.dg/vect/pr58135.c (test for excess errors)
gcc.dg/vect/pr58135.c -flto -ffat-lto-objects (test for excess errors)

------ Snip-----

ChangeLog

2016-05-14  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
     PR tree-optimization/58135
    * tree-vect-slp.c:  When group size is not multiple of vector size, 
     allow splitting of store group at vector boundary. 

Test suite  ChangeLog
2016-05-14  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
    * gcc.dg/vect/bb-slp-19.c:  Remove XFAIL. 
    * gcc.dg/vect/pr58135.c:  Add new.
    * gfortran.dg/pr46519-1.f: Adjust test case.

The attached patch Ok for trunk?

Regards,
Venkat.

Attachment: pr58135.diff.txt
Description: pr58135.diff.txt


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]