[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