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.
" supported for mismatched vector sizes.\n");
return false;
}
+ if (!expand_vec_cond_expr_p (clone_arg_vectype,
+ arginfo[i].vectype, ERROR_MARK))
+ {
+ if (dump_enabled_p ())
+ dump_printf_loc (MSG_MISSED_OPTIMIZATION,
+ vect_location,
+ "cannot compute mask argument for"
+ " in-branch vector clones.\n");
+ return false;
+ }
}
else if (SCALAR_INT_MODE_P (bestn->simdclone->mask_mode))
{