https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95134
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|WONTFIX |--- Status|RESOLVED |NEW Assignee|unassigned at gcc dot gnu.org |hjl.tools at gmail dot com --- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> --- Created attachment 48538 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48538&action=edit A patch to add -mavoid-libcall The -mgeneral-regs-only option generates code that uses only the general-purpose registers. It prevents the compiler from using vector registers. But GCC may still generate calls to memcpy, memmove, memset and memcmp library functions. In the GNU C library, these library functions are implementated with vector registers, which makes the -mgeneral-regs-only option less effective. The new -mavoid-libcall option expands memcpy, memmove and memset into REP MOVSB and REP STOSB sequence. This option can be further enhanced with a cmpmem pattern to expand memcmp into REP CMPSB sequence in the future.