https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101956
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Component|target |tree-optimization
Last reconfirmed| |2021-08-18
Blocks| |53947
Status|UNCONFIRMED |NEW
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
vectorizable_conversion only checks
case NONE:
if (code != FIX_TRUNC_EXPR
&& code != FLOAT_EXPR
&& !CONVERT_EXPR_CODE_P (code))
return false;
if (supportable_convert_operation (code, vectype_out, vectype_in,
&code1))
break;
/* FALLTHRU */
unsupported:
if (dump_enabled_p ())
dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
"conversion not supported by target.\n");
return false;
compared to WIDEN/NARROW which supoort multi-step conversions. It shouldn't be
too difficult to teach the NONE case to do this (are there any conversion
instructions that do more than 2x widen/narrow?)
IMHO this should be addressed at the vectorizer level.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53947
[Bug 53947] [meta-bug] vectorizer missed-optimizations