================
@@ -2831,14 +2831,201 @@ void MicrosoftCXXNameMangler::mangleType(const
BuiltinType *T, Qualifiers,
break;
#include "clang/Basic/HLSLIntangibleTypes.def"
-#define SVE_TYPE(Name, Id, SingletonId)
\
- case BuiltinType::Id:
\
- mangleArtificialTagType(TagTypeKind::Struct, #Name, {"__clang"});
\
+ case BuiltinType::SveBool:
+ Out << "$_CA";
+ break;
+
+ case BuiltinType::SveInt8:
+ Out << "$_CB";
+ break;
+ case BuiltinType::SveInt16:
+ Out << "$_CC";
+ break;
+ case BuiltinType::SveInt32:
+ Out << "$_CD";
+ break;
+ case BuiltinType::SveInt64:
+ Out << "$_CE";
+ break;
+
+ case BuiltinType::SveUint8:
+ Out << "$_CF";
+ break;
+ case BuiltinType::SveUint16:
+ Out << "$_CG";
+ break;
+ case BuiltinType::SveUint32:
+ Out << "$_CH";
+ break;
+ case BuiltinType::SveUint64:
+ Out << "$_CI";
+ break;
+
+ case BuiltinType::SveBFloat16:
+ Out << "$_CJ";
+ break;
+ case BuiltinType::SveFloat16:
+ Out << "$_CK";
+ break;
+ case BuiltinType::SveFloat32:
+ Out << "$_CL";
+ break;
+ case BuiltinType::SveFloat64:
+ Out << "$_CM";
+ break;
+
+ case BuiltinType::SveInt8x2:
+ Out << "$_C2B";
+ break;
+ case BuiltinType::SveInt16x2:
+ Out << "$_C2C";
+ break;
+ case BuiltinType::SveInt32x2:
+ Out << "$_C2D";
+ break;
+ case BuiltinType::SveInt64x2:
+ Out << "$_C2E";
+ break;
+
+ case BuiltinType::SveUint8x2:
+ Out << "$_C2F";
+ break;
+ case BuiltinType::SveUint16x2:
+ Out << "$_C2G";
+ break;
+ case BuiltinType::SveUint32x2:
+ Out << "$_C2H";
+ break;
+ case BuiltinType::SveUint64x2:
+ Out << "$_C2I";
+ break;
+
+ case BuiltinType::SveBFloat16x2:
+ Out << "$_C2J";
+ break;
+ case BuiltinType::SveFloat16x2:
+ Out << "$_C2K";
+ break;
+ case BuiltinType::SveFloat32x2:
+ Out << "$_C2L";
+ break;
+ case BuiltinType::SveFloat64x2:
+ Out << "$_C2M";
+ break;
+
+ case BuiltinType::SveInt8x3:
+ Out << "$_C3B";
+ break;
+ case BuiltinType::SveInt16x3:
+ Out << "$_C3C";
+ break;
+ case BuiltinType::SveInt32x3:
+ Out << "$_C3D";
+ break;
+ case BuiltinType::SveInt64x3:
+ Out << "$_C3E";
+ break;
+
+ case BuiltinType::SveUint8x3:
+ Out << "$_C3F";
+ break;
+ case BuiltinType::SveUint16x3:
+ Out << "$_C3G";
+ break;
+ case BuiltinType::SveUint32x3:
+ Out << "$_C3H";
+ break;
+ case BuiltinType::SveUint64x3:
+ Out << "$_C3I";
+ break;
+
+ case BuiltinType::SveBFloat16x3:
+ Out << "$_C3J";
+ break;
+ case BuiltinType::SveFloat16x3:
+ Out << "$_C3K";
+ break;
+ case BuiltinType::SveFloat32x3:
+ Out << "$_C3L";
+ break;
+ case BuiltinType::SveFloat64x3:
+ Out << "$_C3M";
+ break;
+
+ case BuiltinType::SveInt8x4:
+ Out << "$_C4B";
+ break;
+ case BuiltinType::SveInt16x4:
+ Out << "$_C4C";
+ break;
+ case BuiltinType::SveInt32x4:
+ Out << "$_C4D";
+ break;
+ case BuiltinType::SveInt64x4:
+ Out << "$_C4E";
+ break;
+
+ case BuiltinType::SveUint8x4:
+ Out << "$_C4F";
+ break;
+ case BuiltinType::SveUint16x4:
+ Out << "$_C4G";
+ break;
+ case BuiltinType::SveUint32x4:
+ Out << "$_C4H";
+ break;
+ case BuiltinType::SveUint64x4:
+ Out << "$_C4I";
+ break;
+
+ case BuiltinType::SveBFloat16x4:
+ Out << "$_C4J";
+ break;
+ case BuiltinType::SveFloat16x4:
+ Out << "$_C4K";
+ break;
+ case BuiltinType::SveFloat32x4:
+ Out << "$_C4L";
+ break;
+ case BuiltinType::SveFloat64x4:
+ Out << "$_C4M";
+ break;
+
+ // Unsupported SVE types still use the legacy artificial tag mangling
----------------
efriedma-quic wrote:
```suggestion
// SVE types not supported by MSVC still use clang-specific artificial tag
mangling
```
https://github.com/llvm/llvm-project/pull/196738
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits