[Bug target/53110] GCC-4.7 generates stupid x86_64 asm

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Apr 25 12:35:00 GMT 2012


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

--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-04-25 12:35:08 UTC ---
I'm not sure what the function computes, but for

u128 mult_u128(u64 a, u64 b)
{
  u128 t1;
  __uint128_t r = (__uint128_t)a * (__uint128_t)b;
  memcpy (&t1, &r, sizeof (u128));
  return t1;
}

we generate

mult_u128:
.LFB1:
        .cfi_startproc
        movq    %rsi, %rax
        mulq    %rdi
        movq    %rax, -56(%rsp)
        movq    %rdx, -48(%rsp)
        movq    -48(%rsp), %rdx
        ret



More information about the Gcc-bugs mailing list