On Fri, Nov 21, 2025 at 04:11:46PM +0100, Richard Biener wrote:
> The following removes the confusion around num_mask_args that was
> added to properly "guess" the number of mask elements in a AVX512
> mask that's just represented as int. The actual mistake lies in
> the mixup of 'ncopies' which is used to track the number of
> OMP SIMD calls to be emitted rather than the number of input
> vectors. So this reverts the earlier r16-5374-g5c2fdfc24e343c,
> uses the proper 'ncopies' for loop mask record/query and adjusts
> the guessing of the SIMD arg mask elements.
>
> Bootstrapped and tested on x86_64-unknown-linux-gnu.
>
> OK?
>
> Thanks,
> Richard.
>
> PR tree-optimization/122762
> PR tree-optimization/122736
> PR tree-optimization/122790
> * cgraph.h (cgraph_simd_clone_arg::linear_step): Document
> use for SIMD_CLONE_ARG_TYPE_MASK.
> * omp-simd-clone.cc (simd_clone_adjust_argument_types):
> Record the number of mask arguments in linear_step if
> mask_mode is not VOIDmode.
> * tree-vect-stmts.cc (vectorizable_simd_clone_call):
> Remove num_mask_args computation, use a proper ncopies
> to query/register loop masks, use linear_step for the
> number of mask arguments when determining the number of
> mask elements in a mask argument.
>
> * gcc.dg/vect/vect-simd-clone-23.c: New testcase.
LGTM, thanks.
Jakub