[all-commits] [llvm/llvm-project] 4e2875: [LLVMABI] Classify vectors at their ABI size
Adam Smith via All-commits
all-commits at lists.llvm.org
Wed Sep 30 15:19:44 PDT 2026
Branch: refs/heads/users/adams381/llvmabi-x86-vector-abi-size
Home: https://github.com/llvm/llvm-project
Commit: 4e28757f7f003432366cf9d102c97e1899da3fb7
https://github.com/llvm/llvm-project/commit/4e28757f7f003432366cf9d102c97e1899da3fb7
Author: Adam Smith <adams at nvidia.com>
Date: 2026-09-30 (Wed, 30 Sep 2026)
Changed paths:
A clang/test/CodeGen/X86/x86_64-vector-abi-size.c
M llvm/include/llvm/ABI/Types.h
M llvm/lib/ABI/TargetInfo.cpp
M llvm/lib/ABI/Targets/X86.cpp
M llvm/unittests/ABI/AMDGPUTargetInfoTest.cpp
M llvm/unittests/ABI/TargetInfoTest.cpp
M llvm/unittests/ABI/TypesTest.cpp
M llvm/unittests/ABI/X86TargetInfoTest.cpp
Log Message:
-----------
[LLVMABI] Classify vectors at their ABI size
The x86-64 classifier compared a vector's payload width against Clang type
sizes, so vectors with padding were misclassified. For example,
`struct { long double __attribute__((vector_size(16))) v; }` coerced to
`<2 x double>` instead of `<1 x x86_fp80>`.
getABISizeInBits() now counts an x87 element at its allocation size, and the
classifier uses it wherever Clang uses getTypeSize() for a vector. This also
applies to vectors with a non-power-of-two element count, bool vectors, and
vectors of sub-byte _BitInt. isIllegalVectorType now sends only __int128
vectors to memory, not _BitInt(128) ones, as Clang does. isSingleElementStruct
is shared, so AMDGPU picks up the fix too.
Assisted-by: Claude Code / Claude Opus 5.5
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list