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]

Re: [PATCH] PR63175 - [4.9/5 regression] FAIL: gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c scan-tree-dump-times slp2" basic block vectorized using SLP" 1


On 03/06/2015 10:28 AM, Jeff Law wrote:
On 03/02/15 09:28, Martin Sebor wrote:
On 03/02/2015 06:58 AM, Richard Biener wrote:
On Fri, 27 Feb 2015, Martin Sebor wrote:

Given that Martin's fix to the testcase allowed it to succeed without
Richi's fix for the underlying problem, is there a modification to
the
testcase or a new testcase that would really test the optimization?

Let me work on it.

Below is a patch with a couple of minor tweaks to the existing
test first to update the search string and second to better
exercise the vectorization not only when the source address
isn't aligned on the expected boundary but also when the
destination address isn't.  This enhancement revealed
an outstanding aspect of the regression (not fixed by Richard's
already committed patch).

Besides this change, the patch also adds a number of other
tests to better exercise the vectorization by verifying it
takes place for arrays of elements of other sizes besides
word: byte, half word, and double word.  Those tests reveal
both another regression WRT 4.8 and further vectorization
opportunities not exploited even in 4.8.  I marked the latter
XFAIL in the tests so that when the regression is fully
resolved, the tests should pass with no unexpected failures.

I have a hard time applying the patch because of line-wrapping issues
or my patch tool not groking the git diffs.

Can you please either commit the patch or extract the testcase
that still regresses and paste it into PR63175?

I pasted a couple of such test cases to the bug. The full patch
is also attached to this email in case there was a problem with
line wrapping.
So for the unaligned case, is that really a regression when compared to
earlier compilers?   If not, then it seems that we ought to at least be
at a point where the regression marker for that BZ can be removed,
right?  ie, Richi's patch fixed the actual code quality regression and
your patch fixes the testsuite aspects, right?

My interpretation of the bug report is that it points out
two problems:

1) a failure in the costmodel-bb-slp-9a.c test
2) a quality regression observed by inspecting the assembly
   emitted for the test

The two are unrelated in that (2) didn't cause (1).

Since Richi's patch fixed (2) and my latest patch fixes (1)
I would be inclined to consider the bug resolved.

While GCC 5 doesn't vectorize some code that 4.8 does with
the same options, it's apparently by accident (or due to
a bug in 4.8).  Since 5.0 does vectorize the same code when
the right set of options is specified, I agree with others
that none of my additional tests has exposed any other
regressions than the one that's already been addressed.

Martin


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