[clang] [clang] Lower _BitInt(129+) to a different type in LLVM IR (PR #91364)

Nikita Popov via cfe-commits cfe-commits at lists.llvm.org
Fri Jul 12 00:26:12 PDT 2024


nikic wrote:

> Okay, so x86_64 describes it in byte terms and says they're little-endian, which is consistent with the overall target. Interestingly, it does not guarantee the content of the excess bits. The code-generation in this patch is consistent with that: the extension we do is unnecessary but allowed, and then we truncate it away after load. If we ever add some way to tell the backend that a truncation is known to be reversing a sign/zero-extension, we'll need to not set it on this target.

FYI this already exists in the form of `trunc nuw` / `trunc nsw`. (Though it's not fully optimized yet.)

https://github.com/llvm/llvm-project/pull/91364


More information about the cfe-commits mailing list