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

Reply via email to