https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89208
--- Comment #3 from Bernd Edlinger <bernd.edlinger at hotmail dot de> --- The problem is that this pattern may be used in the implementation of memcpy. But it reminds me much to what you did with -ftree-loop-distribute-patterns last year, and how it is enabled with -ffreestanding, and -fno-builtin, thus, how about this: Index: expr.c =================================================================== --- expr.c (revision 268337) +++ expr.c (working copy) @@ -1625,6 +1625,7 @@ min_size, max_size, probable_max_size)) ; else if (may_use_call + && flag_tree_loop_distribute_patterns && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (x)) && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (y))) {