www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Is there anyway to access LLVM's 128 bit int type for C from LDC?

reply Jack Stouffer <jack jackstouffer.com> writes:
Clang has __int128. Is there anyway to use this with D with LDC?
Dec 14 2017
next sibling parent reply Nicholas Wilson <iamthewilsonator hotmail.com> writes:
On Thursday, 14 December 2017 at 19:47:53 UTC, Jack Stouffer 
wrote:
 Clang has __int128. Is there anyway to use this with D with LDC?
Not really as a plain type, although there is effort to get [u]cent working. I could have sworn that mir was using InlineIR with it for multiplication. But InlineIR is the only way to get at it. What operation do you need on it?
Dec 14 2017
parent reply Jack Stouffer <jack jackstouffer.com> writes:
On Thursday, 14 December 2017 at 23:33:34 UTC, Nicholas Wilson 
wrote:
 On Thursday, 14 December 2017 at 19:47:53 UTC, Jack Stouffer 
 wrote:
 Clang has __int128. Is there anyway to use this with D with 
 LDC?
Not really as a plain type, although there is effort to get [u]cent working. I could have sworn that mir was using InlineIR with it for multiplication. But InlineIR is the only way to get at it. What operation do you need on it?
I'm looking to use it to store the coefficient in my precise decimal type when you need more than 9 significant digits. I might just end up translating Boost's multiprecision lib to D if ucent is impossible.
Dec 14 2017
parent reply Nicholas Wilson <iamthewilsonator hotmail.com> writes:
On Friday, 15 December 2017 at 01:17:17 UTC, Jack Stouffer wrote:
 On Thursday, 14 December 2017 at 23:33:34 UTC, Nicholas Wilson 
 wrote:
 On Thursday, 14 December 2017 at 19:47:53 UTC, Jack Stouffer 
 wrote:
 Clang has __int128. Is there anyway to use this with D with 
 LDC?
Not really as a plain type, although there is effort to get [u]cent working. I could have sworn that mir was using InlineIR with it for multiplication. But InlineIR is the only way to get at it. What operation do you need on it?
I'm looking to use it to store the coefficient in my precise decimal type when you need more than 9 significant digits. I might just end up translating Boost's multiprecision lib to D if ucent is impossible.
See also https://github.com/d-gamedev-team/gfm/tree/master/integers/gfm/integers
Dec 14 2017
parent Jack Stouffer <jack jackstouffer.com> writes:
On Friday, 15 December 2017 at 02:08:12 UTC, Nicholas Wilson 
wrote:
 See also 
 https://github.com/d-gamedev-team/gfm/tree/master/integers/gfm/integers
Thanks
Dec 14 2017
prev sibling parent David Nadlinger <code klickverbot.at> writes:
On Thursday, 14 December 2017 at 19:47:53 UTC, Jack Stouffer 
wrote:
 Clang has __int128. Is there anyway to use this with D with LDC?
There has been some work on this a while ago, by Kai, but it hasn't been merged yet: https://github.com/ldc-developers/ldc/pull/1355 — David
Dec 14 2017