https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122762

--- Comment #26 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <[email protected]>:

https://gcc.gnu.org/g:9dff0355c75d70d2a7583b626426599ee054406a

commit r16-5491-g9dff0355c75d70d2a7583b626426599ee054406a
Author: Richard Biener <[email protected]>
Date:   Fri Nov 21 12:14:46 2025 +0100

    Fix OMP SIMD clone mask register and query

    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.

            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.

Reply via email to