[Bug c/98713] New: Failure to generate branch version of abs if user requested it

david.bolvansky at gmail dot com gcc-bugzilla@gcc.gnu.org
Sun Jan 17 20:08:53 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98713

            Bug ID: 98713
           Summary: Failure to generate branch version of abs if user
                    requested it
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: david.bolvansky at gmail dot com
  Target Milestone: ---

int branch_abs(int v) {
    return __builtin_expect(v > 0, 1) ? v : -v;
}

GCC -O2 now:

branch_abs:
  mov eax, edi
  neg eax
  cmovs eax, edi
  ret


Expected:
branch_abs:
  mov eax, edi
  test edi, edi
  js .LBB0_1
  ret
.LBB0_1:
  neg eax
  ret


Same for min/max.


More information about the Gcc-bugs mailing list