On 23/01/17 19:26, Christophe Lyon wrote:
Hi Nick,
On 23 January 2017 at 10:04, Richard Biener <rguent...@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.
I also see this when testing
-mthumb/-march=armv8-a/-mfpu=crypto-neon-fp-armv8/-mfloat-abi=hard.
Thanks,
Kyrill
on armeb, there are many more differences.
Christophe
Thanks,
Richard.
Cheers
Nick
gcc/ChangeLog
2017-01-20 Richard Biener <rguent...@suse.de>
Nick Clifton <ni...@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 <rguent...@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB
21284 (AG Nuernberg)