https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116410
--- Comment #4 from Xionghu Luo (luoxhu at gcc dot gnu.org) <yinyuefengyi at gmail dot com> --- Gimple code: <bb 33> [local count: 19864224]: MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs] = { 4, 2, 1, 1 }; MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 16B] = { 1, 1, 1, 1 }; MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 32B] = { 1, 1, 1, 1 }; MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 48B] = { 1, 1, 1, 1 }; MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 64B] = { 1, 1, 1, 1 }; MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 80B] = { 1, 1, 1, 1 }; MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 96B] = { 1, 1, 1, 1 }; MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 112B] = { 1, 1, 1, 1 }; MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 128B] = { 1, 1, 1, 1 }; _49 = optPtr_83(D)->litLengthFreq; __builtin_memcpy (_49, &baseLLfreqs, 144); // <= ivtmp.401_149 = (unsigned long) &baseLLfreqs; _146 = ivtmp.401_149 + 144; Obviously, the __builtin_memcpy is not optimized as expected when built with fat-lto-objects.