https://gcc.gnu.org/g:5e9d3957c6fea548c9c4a8504261e669add9512a
commit r15-10166-g5e9d3957c6fea548c9c4a8504261e669add9512a Author: Richard Biener <rguent...@suse.de> Date: Wed Jul 30 12:34:20 2025 +0200 tree-optimization/121130 - vectorizable_call cannot handle .MASK_CALL The following makes it correctly reject them, vectorizable_simd_clone_call is solely responsible for them. PR tree-optimization/121130 * tree-vect-stmts.cc (vectorizable_call): Bail out for .MASK_CALL. * gcc.dg/vect/vect-simd-pr121130.c: New testcase. (cherry picked from commit a0d2de441ea0898e508c36567fbb77f161afa3c8) Diff: --- gcc/testsuite/gcc.dg/vect/vect-simd-pr121130.c | 11 +++++++++++ gcc/tree-vect-stmts.cc | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-pr121130.c b/gcc/testsuite/gcc.dg/vect/vect-simd-pr121130.c new file mode 100644 index 000000000000..c882dedd8be7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-pr121130.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ + +int n2; + +__attribute__((simd)) char +w7(void) +{ + short int xb = n2; + xb = w7() < 1; + return xb; +} diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc index d6651a3ed06b..c1d34503fab2 100644 --- a/gcc/tree-vect-stmts.cc +++ b/gcc/tree-vect-stmts.cc @@ -3560,7 +3560,13 @@ vectorizable_call (vec_info *vinfo, int mask_opno = -1; if (internal_fn_p (cfn)) - mask_opno = internal_fn_mask_index (as_internal_fn (cfn)); + { + /* We can only handle direct internal masked calls here, + vectorizable_simd_clone_call is for the rest. */ + if (cfn == CFN_MASK_CALL) + return false; + mask_opno = internal_fn_mask_index (as_internal_fn (cfn)); + } for (i = 0; i < nargs; i++) {