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

--- Comment #12 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #9)
> I believe there should be always at most one SIMD_CLONE_ARG_TYPE_MASK
> argument, so no idea why the num_mask_args code has been added.
> At least simd_clone_adjust_argument_types adds it either 0 times or once
> (for ->inbranch case).
> Based on ncopied it can (and often does) be turned into multiple arguments
> in various ABIs, at least for larger vectorization factors.
> Regarding SVE, I'm afraid I have no idea what the actual vector ABI is in
> that case (and I think OpenMP standard support for the variable length ABIs
> has only landed very recently).

Hm, seems I added this in r14-4629-g3179ad72f67f31.  For some reason I thought
that there might be multiple mask arguments.  Like when simdlen is very large,
256 for example, and so we'd have multiple args as you say.

The issue in the PR122736 case is the mismatch between the vector type used for
registering the loop mask use and the later query of the loop mask.  As the
latter is more obviously correct (mismatched types would ICE), I have adjusted
the former.  That place was last changed with r15-7095-g1dd79f44dfb64b by
Tamar.

Reply via email to