vect: Cost intermediate conversions

g:6f19cf7526168f8 extended N-vector to N-vector conversions
to handle cases where an intermediate integer extension or
truncation is needed.  This patch adjusts the cost to account
for these intermediate conversions.

gcc/
	* tree-vect-stmts.cc (vectorizable_conversion): Take multi_step_cvt
	into account when costing non-widening/truncating conversions.
This commit is contained in:
Richard Sandiford 2023-06-26 13:48:35 +01:00
parent 53d6f57c1b
commit 9302b0743b

View file

@ -5478,8 +5478,9 @@ vectorizable_conversion (vec_info *vinfo,
if (modifier == NONE)
{
STMT_VINFO_TYPE (stmt_info) = type_conversion_vec_info_type;
vect_model_simple_cost (vinfo, stmt_info, ncopies, dt, ndts, slp_node,
cost_vec);
vect_model_simple_cost (vinfo, stmt_info,
ncopies * (1 + multi_step_cvt),
dt, ndts, slp_node, cost_vec);
}
else if (modifier == NARROW_SRC || modifier == NARROW_DST)
{