On Mon, 2019-12-23 at 14:44 +0000, Richard Sandiford wrote:
> We can't yet vectorise conditional internal functions whose boolean
> condition is fed by a data access (or more generally, by a tree of logic
> ops in which all the leaves are data accesses). Although we should add
> that eventually, we'd need further work to generate good-quality code.
>
> Unlike vectorizable_load and vectorizalbe_streo, vectorizable_call
> wasn't checking whether the mask had a suitable type, leading to an
> ICE on the testcases.
>
> Tested on aarch64-linux-gnu and x86_64-linux-gnu. OK to install?
>
> Richard
>
>
> 2019-12-23 Richard Sandiford <richard.sandif...@arm.com>
>
> gcc/
> * tree-vect-stmts.c (vect_check_load_store_mask): Rename to...
> (vect_check_scalar_mask): ...this.
> (vectorizable_store, vectorizable_load): Update call accordingly.
> (vectorizable_call): Use vect_check_scalar_mask to check the mask
> argument in calls to conditional internal functions.
>
> gcc/testsuite/
> * gcc.dg/vect/vect-cond-arith-8.c: New test.
> * gcc.target/aarch64/sve/cond_fmul_5.c: Likewise.
OK
jeff
>