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

--- Comment #7 from Hongtao.liu <crazylht at gmail dot com> ---
(In reply to Hongtao.liu from comment #6)
> (In reply to Hongtao.liu from comment #5)
> > We need to support signbit<mode>2 for vector double/_Float16. Also similar
> > like popcnt, there's a mismatch of input and output between builtin and
> > signbit_optab, it could be handled in vectorizer pattern match.
> 
> After support signbit{v2df,v4df,v8df}2, vectorizer still failed, currently,
> we only support simple integer narrowing, but not for v4df->v8si.
> 
>  3480  /* First try using an internal function.  */
>  3481  tree_code convert_code = ERROR_MARK;
>  3482  if (cfn != CFN_LAST
>  3483      && (modifier == NONE
>  3484          || (modifier == NARROW
>  3485              && simple_integer_narrowing (vectype_out, vectype_in,
>  3486                                           &convert_code))))
>  3487    ifn = vectorizable_internal_function (cfn, callee, vectype_out,
>  3488                                          vectype_in);
>  3489

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

Reply via email to