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
