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