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

--- Comment #6 from Hongtao Liu <liuhongt at gcc dot gnu.org> ---

> 
> > +      unsigned int inner_prec = outer_prec / 2;
> > +      poly_uint64 outer_nelts = TYPE_VECTOR_SUBPARTS (type);
> > +      tree inner_scalar = build_nonstandard_integer_type (inner_prec, 1);
> 
> I think 1 here should be `TYPE_UNSIGNED (TREE_TYPE (type))` otherwise you
> get a type mismatch I think.
vec_widen_mult_even_expr need to check the type of inner_scalar to generate
vec_widen_umult_even optab, so I explicitly use unsigned type for inner_scalar.

Or you mean add TYPE_UNIGNED (TREE_TYPE (type)) to the outer if (TYPE_UNIGNED
(TREE_TYPE (type))...)?

Reply via email to