[PATCH] Fix PR78189
Christophe Lyon
christophe.lyon@linaro.org
Mon Jan 23 19:45:00 GMT 2017
Hi Nick,
On 23 January 2017 at 10:04, Richard Biener <rguenther@suse.de> wrote:
> On Fri, 20 Jan 2017, Nick Clifton wrote:
>
>> Hi Guys,
>>
>> [I have been asked to look at this PR in the hopes that it can be
>> fixed soon and so no longer act as a blocker for the gcc 7 branch].
>>
>> It seems to me that Richard's proposed patch does work:
>>
>> https://gcc.gnu.org/ml/gcc-patches/2016-11/msg00909.html
>>
>> The only problem is that the check_effective_target_vect_hw_misalign
>> proc is always returning 0 (or false) for ARM, even when unaligned
>> vectors are supported. This is why Richard's patch introduces a new
>> failure for the arm-* targets.
>>
>> So what I would like to suggest is an extended patch (attached) which
>> also updates the check_effective_target_vect_hw_misalign proc to use
>> the check_effective_target_arm_vect_no_misalign proc. With this patch
>> applied not only does the gcc.dg/vect/vect-strided-a-u8-i2-gap.c test
>> for both big-endian and little-endian arm targets, but there is also a
>> significant reduction in the number of failures in the gcc.dg/vect
>> tests overall:
>>
>> Little Endian ARM:
>> < # of expected passes 3275
>> < # of unexpected failures 63
>> < # of unexpected successes 125
>> < # of expected failures 123
>> < # of unsupported tests 153
>> ---
>> > # of expected passes 3448
>> > # of unexpected failures 2
>> > # of unexpected successes 14
>> > # of expected failures 131
>> > # of unsupported tests 151
>>
>> Big Endian ARM:
>> < # of expected passes 2995
>> < # of unexpected failures 269
>> < # of unexpected successes 21
>> < # of expected failures 128
>> ---
>> > # of expected passes 3037
>> > # of unexpected failures 127
>> > # of unexpected successes 24
>> > # of expected failures 228
>>
>> Which looks like a win to me. So - any objections to my applying this
>> patch and then closing the PR ?
>
> Ok.
>
I must be missing something, but I see many regressions since you
committed this patch (r244796).
See
http://people.linaro.org/~christophe.lyon/cross-validation/gcc/trunk/244796/report-build-info.html
for more details.
In short, on arm-*,
gcc.dg/vect/vect-strided-a-u8-i2-gap.c -flto -ffat-lto-objects
scan-tree-dump-times vect "vectorized 1 loops" 1
gcc.dg/vect/vect-strided-a-u8-i2-gap.c scan-tree-dump-times vect
"vectorized 1 loops" 1
now FAIL instead of PASS.
on armeb, there are many more differences.
Christophe
> Thanks,
> Richard.
>
>> Cheers
>> Nick
>>
>> gcc/ChangeLog
>> 2017-01-20 Richard Biener <rguenther@suse.de>
>> Nick Clifton <nickc@redhat.com>
>>
>> PR testsuite/78421
>> * lib/target-supports.exp (check_effective_target_vect_hw_misalign):
>> If the target is ARM return the result of the
>> check_effective_target_arm_vect_no_misalign proc.
>> * gcc.dg/vect/vect-strided-a-u8-i2-gap.c: If the target does not
>> support unaligned vectors then only expect one of the loops to be
>> unrolled.
>>
>>
>
> --
> Richard Biener <rguenther@suse.de>
> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)
More information about the Gcc-patches
mailing list