[PATCH] D86310: [X86] Align i128 to 16 bytes in x86 datalayouts

Harald van Dijk via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 19 18:45:12 PDT 2023

hvdijk added a comment.

In D86310#4516876 <https://reviews.llvm.org/D86310#4516876>, @pengfei wrote:

> Just FYI. There are a few reports about the compatibility issues, e.g., #41784 <https://github.com/llvm/llvm-project/issues/41784>.

Thanks. This is a case where clang breaks up `__int128` into 2x `i64` before it gets to LLVM. It is therefore not affected by this patch. Your other link also references #20283 <https://github.com/llvm/llvm-project/issues/20283>, which is the same issue of clang breaking `__int128` into 2x `i64`.

Although this patch will not fix those issues, it may make it easier to fix them later on: it will give clang the ability to use LLVM's `i128` type rather than trying to emulate it.

> There's also concern about the alignment difference between `_BitInt(128)` and `__int128`, see #60925 <https://github.com/llvm/llvm-project/issues/60925>

That references https://gitlab.com/x86-psABIs/x86-64-ABI/-/issues/11, where the answer four months ago was basically "it's probably already too late for that" with a suggestion to try and post on the mailing list to try and convince others that this was important enough to do. Nothing was posted to the mailing list, and by now GCC has started implementing what the ABI specifies (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102989). I think we would need an extraordinary rationale if we want to convince others that the ABI should be changed.

  rG LLVM Github Monorepo



More information about the llvm-commits mailing list