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

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The fix which I am testing:
--- a/gcc/tree-tailcall.c
+++ b/gcc/tree-tailcall.c
@@ -1080,6 +1080,9 @@ create_tailcall_accumulator (const char *label,
basic_block bb, tree init)

   phi = create_phi_node (tmp, bb);
   /* RET_TYPE can be a float when -ffast-maths is enabled.  */
+  /* For vectors create a dup. */
+  if (VECTOR_TYPE_P (ret_type))
+    init = build_vector_from_val (ret_type, fold_convert (TREE_TYPE
(ret_type), init));
   add_phi_arg (phi, fold_convert (ret_type, init), single_pred_edge (bb),
               UNKNOWN_LOCATION);
   return PHI_RESULT (phi);

Reply via email to