revised and updated new-if-converter patch… [PATCH] fix PR46029: reimplement if conversion of loads and stores

Alan Lawrence alan.lawrence@arm.com
Mon Jul 20 18:10:00 GMT 2015


Abe wrote:

> diff --git a/gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c b/gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
> index 71f2db3..2b159d7 100644
> --- a/gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
> +++ b/gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
> @@ -65,4 +65,12 @@ main (void)
>     return 0;
>   }
> 
> -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { xfail { { vect_no_align && { ! vect_hw_misalign } } || { ! vect_strided2 } } } } } */
> +/* "foo()" is not vectorized FOR NOW because gather-load
> +   cannot handle conditional gather loads as of June 2015.
> +
> +   The old way of if-converting loads was unsafe because
> +   it resulted in thread-unsafe code where the as-written code was OK.
> +   The old if conversion did not contain indirection in the loads,
> +   so it was simpler, therefor the vectorizer was able to pick it up.  */
> +
> +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect"  { xfail { { vect_no_align && { ! vect_hw_misalign } } || { ! vect_strided2 } } } } } */

Would having a testsuite predicate for the target supporting gathered loads, let 
you run this test on those architectures? I'd expect one to be useful in a few 
other places too, in time if it doesn't exist already...

--Alan



More information about the Gcc-patches mailing list