http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53110

Markus Trippelsdorf <markus at trippelsdorf dot de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |markus at trippelsdorf dot
                   |                            |de

--- Comment #3 from Markus Trippelsdorf <markus at trippelsdorf dot de> 
2012-04-25 11:23:59 UTC ---
For comparison this is what clang generates:

        .file   "gcc-bug.c"
        .text
        .globl  mult_u128
        .align  16, 0x90
        .type   mult_u128,@function
mult_u128:                              # @mult_u128
        .cfi_startproc
# BB#0:
        movabsq $-4294967296, %rdx      # imm = 0xFFFFFFFF00000000
        andq    %rdi, %rdx
        movl    %esi, %ecx
        movq    %rdi, %rax
        shrq    $32, %rax
        shrq    $32, %rsi
        imulq   %rsi, %rax
        imulq   %rcx, %rdx
        imull   %edi, %esi
        shlq    $32, %rsi
        addq    %rdx, %rsi
        adcq    $0, %rax
        movl    %edi, %edx
        imulq   %rcx, %rdx
        addq    %rsi, %rdx
        adcq    $0, %rax
        ret
.Ltmp0:
        .size   mult_u128, .Ltmp0-mult_u128
        .cfi_endproc


        .section        ".note.GNU-stack","",@progbits

Reply via email to