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

--- Comment #7 from Uroš Bizjak <ubizjak at gmail dot com> ---
-mapxf testcase that exercises @ccmp<mode>:

extern volatile int x, y, z, w;

int
f (void)
{
  int a = x;
  int b = y;
  int c = z;
  int d = w;
  return a < b && c < d;
}

gcc -O2 -mapxf:

        movl    x(%rip), %edx
        movl    y(%rip), %eax
        cmpl    %eax, %edx
        movl    w(%rip), %eax
        ccmpll  {dfv=sf, of} %eax, z(%rip)

with proposed x86 patch:

        movl    x(%rip), %ecx
        movl    y(%rip), %edx
        movl    z(%rip), %eax
        cmpl    %edx, %ecx
        ccmpll  {dfv=sf, of} w(%rip), %eax

Reply via email to