tree-optimization/101267 - fix SLP vect with masked operations
This fixes the missed handling of external/constant mask SLP
operations, for the testcase in particular masked loads. The
patch adjusts the vect_check_scalar_mask API to reflect the
required vect_is_simple_use SLP compatible API plus adjusts
for the special handling of masked loads in SLP discovery.
The issue is likely latent.
2021-06-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/101267
* tree-vect-stmts.c (vect_check_scalar_mask): Adjust
API and use SLP compatible interface of vect_is_simple_use.
Reject not vectorized SLP defs for callers that do not support
that.
(vect_check_store_rhs): Handle masked stores and pass down
the appropriate operator index.
(vectorizable_call): Adjust.
(vectorizable_store): Likewise.
(vectorizable_load): Likewise. Handle SLP pecularity of
masked loads.
(vect_is_simple_use): Remove special-casing of masked stores.
* gfortran.dg/pr101267.f90: New testcase.