[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