[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

Martin Sebor msebor@redhat.com
Fri Mar 6 20:22:00 GMT 2015


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



More information about the Gcc-patches mailing list