erichkeane added a subscriber: mgehre-amd.
erichkeane added a comment.

In D117238#3338071 <https://reviews.llvm.org/D117238#3338071>, @mariospr wrote:

> In D117238#3270125 <https://reviews.llvm.org/D117238#3270125>, @aaron.ballman 
> wrote:
>
>> Updated to allow targets to specify the max bitwidth. I was aware that the 
>> x86 backend had issues with doing division on larger `_BitInt` objects, but 
>> it turns out *all* backends fail to support `_BitInt(129)` or wider 
>> division. Because division is a pretty common operation on numeric data 
>> types, it seemed to be more user-friendly to specify that we only support 
>> 128 bits or less. I tried to make it exceptionally clear that I consider 
>> this to be a backend bug though -- we will support wider bit widths in the 
>> future once backends have been fixed. These changes make that future path 
>> easier to opt into.
>
> Hi! I know this question might be very hard to answer but even so I hope you 
> don't mind me trying 😇 ... do you know whether there is any estimation of 
> when `_BitInt(N) / N > 128` will be supported once again in Clang? I'm not an 
> expert at all on this topic (just registered here to comment! 🙂 ) but this 
> hit us in a Chromium-based project which relied on `_BITINT(256)` now that 
> Chromium 100 updated to Clang 15. And while we're already looking into 
> alternative ways of dealing with is (e.g. maybe using Boost's 
> `multiprecision` module), it would be very interesting if we could get a 
> sense (if it's even possible) on how long we could expect the current 
> situation to last.
>
> Again, I understand there might not be a clear answer for this at the moment 
> but, since I'm no expert on the matter and I couldn't figure out myself the 
> exact situation by reading this and other tickets in the tracker I thought, I 
> thought I'd ask just in case.
>
> Thanks in advance regardless of the answer!
> Mario

Hi Mario!  Thank you for inquiring!  As you may know, we disabled _BitInt this 
large since we couldn't handle division/modulus in the code generators.  There 
is an RFC currently underway (as of today, we have the patches to start 
supporting this in the backend!) here: 
https://discourse.llvm.org/t/rfc-add-support-for-division-of-large-bitint-builtins-selectiondag-globalisel-clang/60329

I'm hopeful that the answer here is 'in the near future'.  @mgehre-amd should 
be able to at least partially revert this patch once the library changes/llvm 
code generator changes make it in.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117238/new/

https://reviews.llvm.org/D117238

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to