[clang] [HLSL] Make memory representation of boolean vectors in HLSL, vectors of i32. Add support for boolean swizzling. (PR #123977)
Eli Friedman via cfe-commits
cfe-commits at lists.llvm.org
Mon Feb 3 11:08:58 PST 2025
================
@@ -2016,8 +2016,9 @@ TypeInfo ASTContext::getTypeInfoImpl(const Type *T) const {
case Type::Vector: {
const auto *VT = cast<VectorType>(T);
TypeInfo EltInfo = getTypeInfo(VT->getElementType());
- Width = VT->isExtVectorBoolType() ? VT->getNumElements()
- : EltInfo.Width * VT->getNumElements();
+ Width = (VT->isExtVectorBoolType() && !getLangOpts().HLSL)
----------------
efriedma-quic wrote:
Maybe we should add VectorType::isPackedBoolType() or something like that? Then we can refactor the code so it doesn't explicitly check for HLSL all over the place.
https://github.com/llvm/llvm-project/pull/123977
More information about the cfe-commits
mailing list