On March 7, 2015 5:20:08 PM CET, Jeff Law <l...@redhat.com> wrote: >On 03/07/15 01:34, Richard Biener wrote: >> On March 6, 2015 9:22:05 PM CET, Martin Sebor <mse...@redhat.com> >wrote: >>> 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. >> >> Yes. Once the test cases have been fixed we should close the bug as >fixed. >Trunk regression marker removed. Not sure if it is worth backporting >to >4.9, but I left the 4.9 regression marker and the BZ open just in case.
I backported the fix to the 4.9 branch already, so it would be nice to get the test cases fixes there as well. Richard. >jeff