[PATCH] D117238: [C2x] Add BITINT_MAXWIDTH support

Mario Sanchez Prada via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 22 10:06:10 PST 2022


mariospr added a comment.

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


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

https://reviews.llvm.org/D117238



More information about the cfe-commits mailing list