https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94930
Bug ID: 94930 Summary: Failure to optimize out subvsi in expansion of __builtin_memcmp with 1 as the operand with -ftrapv Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: gabravier at gmail dot com Target Milestone: --- int memcmp1(const void *s, const void *c) { return __builtin_memcmp(s, c, 1); } With -O3 -ftrapv, LLVM outputs this : memcmp1(void const*, void const*): # @memcmp1(void const*, void const*) movzx eax, byte ptr [rdi] movzx ecx, byte ptr [rsi] sub eax, ecx ret GCC outputs this : memcmp1(void const*, void const*): sub rsp, 8 movzx edi, BYTE PTR [rdi] movzx esi, BYTE PTR [rsi] call __subvsi3 add rsp, 8 ret