Thread overview | |||||
---|---|---|---|---|---|
|
September 10, 2019 LDC asm for int128 | ||||
---|---|---|---|---|
| ||||
I want to translate this c code into d (build with ldc), so I can use -flto and inline with other code. uint64_t _wymum(uint64_t A, uint64_t B){ __uint128_t r = A ; r *= B; return (r>>64)^r; } Do i need ASM or is there a easy way to implement it ? |
September 10, 2019 Re: LDC asm for int128 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Newbie2019 | On Tuesday, 10 September 2019 at 06:18:05 UTC, Newbie2019 wrote: > I want to translate this c code into d (build with ldc), so I can use -flto and inline with other code. > > uint64_t _wymum(uint64_t A, uint64_t B){ > __uint128_t r = A ; > r *= B; > return (r>>64)^r; > } > > Do i need ASM or is there a easy way to implement it ? https://forum.dlang.org/post/ighiwexofvdqbuqeqbkp@forum.dlang.org |
September 11, 2019 Re: LDC asm for int128 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Newbie2019 | On Tuesday, 10 September 2019 at 06:18:05 UTC, Newbie2019 wrote: > I want to translate this c code into d (build with ldc), so I can use -flto and inline with other code. > > uint64_t _wymum(uint64_t A, uint64_t B){ > __uint128_t r = A ; > r *= B; > return (r>>64)^r; > } > > Do i need ASM or is there a easy way to implement it ? Easiest way is to use GFM's[1] 128bit integers. [1]:http://code.dlang.org/packages/gfm |
Copyright © 1999-2021 by the D Language Foundation