https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115868
--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-14 branch has been updated by Richard Biener <rgue...@gcc.gnu.org>: https://gcc.gnu.org/g:c58bede01c06c84f0b36881fafd1e5d6456a38f4 commit r14-10443-gc58bede01c06c84f0b36881fafd1e5d6456a38f4 Author: Richard Biener <rguent...@suse.de> Date: Thu Jul 11 09:56:56 2024 +0200 tree-optimization/115868 - ICE with .MASK_CALL in simdclone The following adjusts mask recording which didn't take into account that we can merge call arguments from two vectors like _50 = {vect_d_1.253_41, vect_d_1.254_43}; _51 = VIEW_CONVERT_EXPR<unsigned char>(mask__19.257_49); _52 = (unsigned int) _51; _53 = _Z3bazd.simdclone.7 (_50, _52); _54 = BIT_FIELD_REF <_53, 256, 0>; _55 = BIT_FIELD_REF <_53, 256, 256>; The testcase g++.dg/vect/pr68762-2.cc exercises this on x86_64 with partial vector usage enabled and AVX512 support. PR tree-optimization/115868 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Correctly compute the number of mask copies required for vect_record_loop_mask. (cherry picked from commit abf3964711f05b6858d9775c3595ec2b45483e14)