This is the mail archive of the
mailing list for the GCC project.
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
- From: Martin Sebor <msebor at redhat dot com>
- To: David Edelsohn <dje dot gcc at gmail dot com>, Jeff Law <law at redhat dot com>, Richard Biener <rguenther at suse dot de>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 27 Feb 2015 08:38:37 -0700
- Subject: 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
- Authentication-results: sourceware.org; auth=none
- References: <CAGWvnykb26fR_S7TK5JGPNS2ASq5q5Ji0eicX-+OPjkGDR7F-Q at mail dot gmail dot com> <54EBF248 dot 4050302 at redhat dot com> <54ECD152 dot 9060401 at redhat dot com> <CAGWvnynZWmBd5YTg3KbAAmvwBMAGfPe2gPVqeML8dxoKqJ1gwQ at mail dot gmail dot com>
On 02/27/2015 07:27 AM, David Edelsohn wrote:
On Tue, Feb 24, 2015 at 2:30 PM, Jeff Law <firstname.lastname@example.org> wrote:
On 02/23/15 20:38, Martin Sebor wrote:
On 02/22/2015 11:45 AM, David Edelsohn wrote:
Does this patch really fix the problem? The PR notes that the
testcase fails and code quality has regressed. Has the code
generation been corrected but the testcase looks for the wrong string?
Presumably the message that basic block was vectorized means that the
code generation is correct, but the commentary about the patch does
not mention it.
There appear to be at least three problems at play here:
1) The test expects the wrong string to determine success.
2) GCC 4.9.0 and later emit suboptimal code compared to 4.8.4.
3) With (1) fixed, the test fails to detect (2).
During my initial investigation, besides trunk, I had only looked
at the assembly emitted at revision 198852 since there the test
is reported as passing in comment #2. The code appears comparable
between the two.
Now that I've also compared the assembly emitted by 4.8.4 I see
what I suspect the original reporter was referring to: 4.9.0 and
later both uses vectorization to copy the arrays and also assigns
the four elements using ordinary loads and stores. And since
the code has been successfully vectorized (and GCC reports it
in the dump) the test passes.
I'll need to spend some more time to find the revision that
Something to bear in mind, this may turn out to be something that isn't
fixable at this stage in development. So please stay in contact with your
Regardless, we should find a way to change the testcase so that it can
correctly identify the missed optimization.
The fix to the testcase is fine with me.
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.