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

--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> ---
[hjl@gnu-cfl-1 gcc]$  cat c.c
#include <x86intrin.h>

unsigned char
foo (unsigned long long HxL0, unsigned long long LxH0,
     unsigned long long HxL1, unsigned long long LxH1)
{
  unsigned char carry;
  carry = _addcarry_u64(0,     HxL0, LxH0, &HxL0);
  carry = _addcarry_u64(carry, HxL1, LxH1, &HxL1);
  return carry;
}
[hjl@gnu-cfl-1 gcc]$ gcc -S -O2 c.c
[hjl@gnu-cfl-1 gcc]$ cat c.s
        .file   "c.c"
        .text
        .p2align 4
        .globl  foo
        .type   foo, @function
foo:
.LFB5519:
        .cfi_startproc
        addq    %rsi, %rdi
        setc    %al
        addb    $-1, %al
        adcq    %rdx, %rcx
        setc    %al
        ret
        .cfi_endproc
.LFE5519:
        .size   foo, .-foo
        .ident  "GCC: (GNU) 9.2.1 20190827 (Red Hat 9.2.1-1)"
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-cfl-1 gcc]$ clang -S -O2 c.c
[hjl@gnu-cfl-1 gcc]$ cat c.s
        .text
        .file   "c.c"
        .globl  foo                     # -- Begin function foo
        .p2align        4, 0x90
        .type   foo,@function
foo:                                    # @foo
        .cfi_startproc
# %bb.0:
        addq    %rsi, %rdi
        adcq    %rcx, %rdx
        setb    %al
        retq
.Lfunc_end0:
        .size   foo, .Lfunc_end0-foo
        .cfi_endproc
                                        # -- End function

        .ident  "clang version 8.0.0 (Fedora 8.0.0-1.fc30)"
        .section        ".note.GNU-stack","",@progbits
        .addrsig
[hjl@gnu-cfl-1 gcc]$

Reply via email to