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);