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

--- Comment #9 from Hongtao.liu <crazylht at gmail dot com> ---
(In reply to Hongtao.liu from comment #8)
> > 
> > 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;

Another alternative it's we can recognize signbit as shift in the vectorizer.

Reply via email to