[PATCH] Avoid useless work in loop vectorization
Richard Biener
rguenther@suse.de
Thu Nov 19 08:09:00 GMT 2015
On Wed, 18 Nov 2015, Alan Lawrence wrote:
> On 13/11/15 08:41, Richard Biener wrote:
> >
> > Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk.
> >
> > Richard.
> >
> > 2015-11-13 Richard Biener <rguenther@suse.de>
> >
> > * tree-vect-loop.c (vect_analyze_loop_2): Add fatal parameter.
> > Signal fatal failure if early checks fail.
> > (vect_analyze_loop): If vect_analyze_loop_2 fails fatally
> > do not bother testing further vector sizes.
>
> It seems that on AArch64 this causes:
>
> FAIL: gcc.dg/vect/vect-outer-1-big-array.c -flto -ffat-lto-objects
> scan-tree-dump-times vect "grouped access in outer loop" 2
> FAIL: gcc.dg/vect/vect-outer-1-big-array.c scan-tree-dump-times vect "grouped
> access in outer loop" 2
> FAIL: gcc.dg/vect/vect-outer-1.c -flto -ffat-lto-objects scan-tree-dump-times
> vect "grouped access in outer loop" 2
> FAIL: gcc.dg/vect/vect-outer-1.c scan-tree-dump-times vect "grouped access in
> outer loop" 2
> FAIL: gcc.dg/vect/vect-outer-1a-big-array.c -flto -ffat-lto-objects
> scan-tree-dump-times vect "grouped access in outer loop" 2
> FAIL: gcc.dg/vect/vect-outer-1a-big-array.c scan-tree-dump-times vect "grouped
> access in outer loop" 2
> FAIL: gcc.dg/vect/vect-outer-1a.c -flto -ffat-lto-objects
> scan-tree-dump-times vect "grouped access in outer loop" 2
> FAIL: gcc.dg/vect/vect-outer-1a.c scan-tree-dump-times vect "grouped access in
> outer loop" 2
> FAIL: gcc.dg/vect/vect-outer-1b-big-array.c -flto -ffat-lto-objects
> scan-tree-dump-times vect "grouped access in outer loop" 2
> FAIL: gcc.dg/vect/vect-outer-1b-big-array.c scan-tree-dump-times vect "grouped
> access in outer loop" 2
> FAIL: gcc.dg/vect/vect-outer-1b.c -flto -ffat-lto-objects
> scan-tree-dump-times vect "grouped access in outer loop" 2
> FAIL: gcc.dg/vect/vect-outer-1b.c scan-tree-dump-times vect "grouped access in
> outer loop" 2
> FAIL: gcc.dg/vect/vect-outer-2b.c -flto -ffat-lto-objects
> scan-tree-dump-times vect "grouped access in outer loop" 2
> FAIL: gcc.dg/vect/vect-outer-2b.c scan-tree-dump-times vect "grouped access in
> outer loop" 2
> FAIL: gcc.dg/vect/vect-outer-3b.c -flto -ffat-lto-objects
> scan-tree-dump-times vect "grouped access in outer loop" 4
> FAIL: gcc.dg/vect/vect-outer-3b.c scan-tree-dump-times vect "grouped access in
> outer loop" 4
>
> Still there on r230556, I haven't dug any further yet.
Probably a testsuite issue as we have
/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1
"vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2
"vect" { target vect_multiple_sizes } } } */
and now possibly terminate early before considering the other vector
size(s).
Richard.
More information about the Gcc-patches
mailing list