[PATCH] D86310: [X86] Align i128 to 16 bytes in x86 datalayouts
Trevor Gross via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Aug 17 14:56:34 PDT 2023
tmgross added a comment.
In D86310#4596730 <https://reviews.llvm.org/D86310#4596730>, @hvdijk wrote:
> My understanding is that the code clang generates for `__int128` will still allow it to be passed half-in-register, half-in-memory, exactly what D158169 <https://reviews.llvm.org/D158169> sets out to fix, because D158169 <https://reviews.llvm.org/D158169> only fixes it for LLVM's `i128` which clang bypasses.
I think that D158169 <https://reviews.llvm.org/D158169> seems to have fixed clang as well; after applying both patches, clang gcc and rustc all seem to agree. On the readme for https://github.com/tgross35/quick-abi-check look at the tests `i128-caller-gcc-callee-clang-old` (args don't align) `i128-caller-gcc-callee-clang-new` (args **are** the same) and `i128-caller-gcc-callee-rustc` (args are the same). Also the full ABI checker seems to say everything is in order (https://github.com/rust-lang/rust/pull/113880#issuecomment-1683021483 not sure why it says "4 failed" at the end, but I think it's a bug since no tests actually show failed).
Does this all seem correct? As far as I can tell it seems like with both patchs these issues should be resolved.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D86310/new/
https://reviews.llvm.org/D86310
More information about the cfe-commits
mailing list