Skip to content

Commit a19ab1c

Browse files
committed
tree-optimization/114164 - unsupported SIMD clone call, unsupported VEC_COND
The following avoids creating unsupported VEC_COND_EXPRs as part of SIMD clone call mask argument setup during vectorization which results in inefficient decomposing of the operation during vector lowering. PR tree-optimization/114164 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Fail if the code generated for mask argument setup is not supported.
1 parent dea9ac2 commit a19ab1c

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

gcc/tree-vect-stmts.cc

+10
Original file line numberDiff line numberDiff line change
@@ -4210,6 +4210,16 @@ vectorizable_simd_clone_call (vec_info *vinfo, stmt_vec_info stmt_info,
42104210
" supported for mismatched vector sizes.\n");
42114211
return false;
42124212
}
4213+
if (!expand_vec_cond_expr_p (clone_arg_vectype,
4214+
arginfo[i].vectype, ERROR_MARK))
4215+
{
4216+
if (dump_enabled_p ())
4217+
dump_printf_loc (MSG_MISSED_OPTIMIZATION,
4218+
vect_location,
4219+
"cannot compute mask argument for"
4220+
" in-branch vector clones.\n");
4221+
return false;
4222+
}
42134223
}
42144224
else if (SCALAR_INT_MODE_P (bestn->simdclone->mask_mode))
42154225
{

0 commit comments

Comments
 (0)