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

John McCall via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 10 12:52:55 PDT 2024


https://github.com/rjmccall commented:

This is generally looking great, and I think it's ready to go as soon as you can finish the tests. (You said you weren't able to update all the tests — did you have questions about the remaining tests?)

I did have a thought, though.  Are we confident that the in-memory layout that LLVM is using for these large integer types matches the layout specified by the ABI?  I know this patch makes the overall sizes match, but there's also an "endianness" question.  When LLVM stores an i96 on a 32-bit machine, I assume it does three 32-bit stores, and those stores probably match the overall endianness of the target; for example, on a little-endian architecture, it stores the low 32 bits at offset 0, the middle 32 bits at offset 4, and the high 32 bits at offset 8.  I just want to make sure that the ABI specification for _BitInt actually matches that.

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


More information about the cfe-commits mailing list