https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101534
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Component|c |tree-optimization Last reconfirmed| |2021-07-20 Status|UNCONFIRMED |NEW --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. (gdb) p debug_tree(ret_type) <vector_type 0xfffff5c70348 V type <integer_type 0xfffff59b05e8 int public SI size <integer_cst 0xfffff58e0fc0 constant 32> unit-size <integer_cst 0xfffff58e0fd8 constant 4> align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0xfffff59b05e8 precision:32 min <integer_cst 0xfffff58e0f78 -2147483648> max <integer_cst 0xfffff58e0f90 2147483647> pointer_to_this <pointer_type 0xfffff59b1a40>> sizes-gimplified V2SI size <integer_cst 0xfffff58e0d80 type <integer_type 0xfffff59b00a8 bitsizetype> constant 64> unit-size <integer_cst 0xfffff58e0d98 type <integer_type 0xfffff59b0000 sizetype> constant 8> align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0xfffff59db670 nunits:2 context <translation_unit_decl 0xfffff5c608e8 t1.c>> $1 = void (gdb) p debug_tree(init) <integer_cst 0xfffff58e1128 type <integer_type 0xfffff59b05e8 int> constant 1> create_tailcall_accumulator needs to create a splat/dup if the init type is scalar and the ret_type is a vector.