> > > decide_alg is being called from ix86_expand_movmem, from > expand_builtin_memcpy, for the call at line 61 of go-append.c. > __builtin_memcpy (n, a.__values, a.__count * element_size); > > I'm continuing to look.
Indeed it is problem of this patch - the issue is that generic64 had dummy 32bit alg entries (those should not cause infinite loop, I will fix that too) I am testing: Index: i386.c =================================================================== --- i386.c (revision 202741) +++ i386.c (working copy) @@ -1648,11 +1648,13 @@ struct processor_costs slm_cost = { and btver1 (and newer chips). */ static stringop_algs generic_memcpy[2] = { - DUMMY_STRINGOP_ALGS, + {libcall, {{32, loop, false}, {8192, rep_prefix_4_byte, false}, + {-1, libcall, false}}}, {libcall, {{32, loop, false}, {8192, rep_prefix_8_byte, false}, {-1, libcall, false}}}}; static stringop_algs generic_memset[2] = { - DUMMY_STRINGOP_ALGS, + {libcall, {{32, loop, false}, {8192, rep_prefix_4_byte, false}, + {-1, libcall, false}}}, {libcall, {{32, loop, false}, {8192, rep_prefix_8_byte, false}, {-1, libcall, false}}}}; static const > > Ian