https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121946
--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #1) > For the missing gimple/compiler optimization detection of memmove this is PR > 99504 really. > We have an aggregate copy which ldist does not support currently. There is also (compute_affine_dependence ref_a: *__first_10, stmt_a: *__cur_11 = *__first_10; ref_b: *__cur_11, stmt_b: *__cur_11 = *__first_10; ) -> dependence analysis failed consider run-time aliasing test between *__first_10 and *__cur_11 If I make __is_bitwise_relocatable<int> false, we don't get memmove/memcpy for foo_int either. __is_bitwise_relocatable currently defaults to __is_trivial, I think there is already an issue about replacing that with a weaker test, and with the standardization of trivial relocation it is likely to change soon anyway. But in the mean time, you can specialize __is_bitwise_relocatable for your type.
