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

            Bug ID: 89457
           Summary: -madx doesn't generate ADX instructions
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
  Target Milestone: ---

[hjl@gnu-4 pr89456]$ cat y.i
unsigned char
foo (unsigned char __CF, unsigned int __X,
     unsigned int __Y, unsigned int *__P)
{
  return __builtin_ia32_addcarryx_u32 (__CF, __X, __Y, __P);
}
[hjl@gnu-4 pr89456]$ gcc -S -O2 -madx y.i
[hjl@gnu-4 pr89456]$ cat y.s
        .file   "y.i"
        .text
        .p2align 4,,15
        .globl  foo
        .type   foo, @function
foo:
.LFB0:
        .cfi_startproc
        movzbl  %dil, %edi
        movl    %edi, %eax
        addb    $-1, %al
        adcl    %edx, %esi
        setc    %al
        movl    %esi, (%rcx)
        ret
        .cfi_endproc
.LFE0:
        .size   foo, .-foo
        .ident  "GCC: (GNU) 8.2.1 20190215 (Red Hat 8.2.1-9)"
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-4 pr89456]$ 

I am expecting:

        addb    $-1, %dil
        adcxl   %edx, %esi
        movl    %esi, (%rcx)
        setb    %al
        retq

Reply via email to