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

--- Comment #4 from rguenther at suse dot de <rguenther at suse dot de> ---
On July 2, 2021 4:03:34 PM GMT+02:00, "hjl.tools at gmail dot com"
<gcc-bugzi...@gcc.gnu.org> wrote:
>https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101294
>
>--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> ---
>This works:
>
>diff --git a/gcc/expr.c b/gcc/expr.c
>index 025033c9ecf..bd85bbfdd6f 100644
>--- a/gcc/expr.c
>+++ b/gcc/expr.c
>@@ -7078,7 +7078,8 @@ store_constructor (tree exp, rtx target, int
>cleared,
>poly_int64 size,
>       && eltmode == GET_MODE_INNER (mode)
>       && ((icode = optab_handler (vec_duplicate_optab, mode))
>      != CODE_FOR_nothing)
>-      && (elt = uniform_vector_p (exp)))
>+      && (elt = uniform_vector_p (exp))
>+      && !VECTOR_TYPE_P (TREE_TYPE (elt)))
>     {
>       class expand_operand ops[2];
>       create_output_operand (&ops[0], target, mode);

I guess that's reasonable.

Reply via email to