https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109029

--- Comment #8 from Hongtao.liu <crazylht at gmail dot com> ---

> 
> One solution is handling it in ix86_builtin_vectorized_function just like
> other math functions which has different input/output sizes.

Or extend vectorizable_call to handle NARROW/WIDEN cases when output of ifn is
same-sized vector integer of vectype_in, and do NARROW/WIDEN between ifn_output
and vectype_out.

 3472  /* For now, we only vectorize functions if a target specific builtin
 3473     is available.  TODO -- in some cases, it might be profitable to
 3474     insert the calls for pieces of the vector, in order to be able
 3475     to vectorize other operations in the loop.  */
 3476  fndecl = NULL_TREE;
 3477  internal_fn ifn = IFN_LAST;
 3478  tree callee = gimple_call_fndecl (stmt);
 3479
 3480  /* First try using an internal function.  */
 3481  tree_code convert_code = ERROR_MARK;

Reply via email to