llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-lldb Author: Tomas Matheson (tmatheson-arm) <details> <summary>Changes</summary> - Rename AArch64SVEACLETypes.def to AArch64Types.def - Remove string literals from the macro calls - Rename macros so that the hierarchy makes sense --- Patch is 47.44 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/125063.diff 27 Files Affected: - (modified) clang/include/clang/AST/ASTContext.h (+2-3) - (modified) clang/include/clang/AST/Type.h (+2-2) - (modified) clang/include/clang/AST/TypeProperties.td (+2-2) - (removed) clang/include/clang/Basic/AArch64SVEACLETypes.def (-216) - (added) clang/include/clang/Basic/AArch64Types.def (+216) - (modified) clang/include/clang/Serialization/ASTBitCodes.h (+2-2) - (modified) clang/include/module.modulemap (+1-1) - (modified) clang/lib/AST/ASTContext.cpp (+15-16) - (modified) clang/lib/AST/ASTImporter.cpp (+3-3) - (modified) clang/lib/AST/ExprConstant.cpp (+2-3) - (modified) clang/lib/AST/ItaniumMangle.cpp (+10-10) - (modified) clang/lib/AST/MicrosoftMangle.cpp (+2-3) - (modified) clang/lib/AST/NSAPI.cpp (+2-3) - (modified) clang/lib/AST/PrintfFormatString.cpp (+2-3) - (modified) clang/lib/AST/Type.cpp (+8-9) - (modified) clang/lib/AST/TypeLoc.cpp (+2-3) - (modified) clang/lib/CodeGen/CGDebugInfo.cpp (+2-2) - (modified) clang/lib/CodeGen/CodeGenTypes.cpp (+2-2) - (modified) clang/lib/CodeGen/ItaniumCXXABI.cpp (+2-3) - (modified) clang/lib/CodeGen/Targets/AArch64.cpp (+2-2) - (modified) clang/lib/Index/USRGeneration.cpp (+5-4) - (modified) clang/lib/Sema/Sema.cpp (+3-3) - (modified) clang/lib/Sema/SemaExpr.cpp (+4-6) - (modified) clang/lib/Serialization/ASTCommon.cpp (+4-4) - (modified) clang/lib/Serialization/ASTReader.cpp (+5-5) - (modified) clang/tools/libclang/CIndex.cpp (+2-2) - (modified) lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp (+2-2) ``````````diff diff --git a/clang/include/clang/AST/ASTContext.h b/clang/include/clang/AST/ASTContext.h index 4e9b961688d559..4583b2cc2fa1af 100644 --- a/clang/include/clang/AST/ASTContext.h +++ b/clang/include/clang/AST/ASTContext.h @@ -1202,9 +1202,8 @@ class ASTContext : public RefCountedBase<ASTContext> { #define EXT_OPAQUE_TYPE(ExtType, Id, Ext) \ CanQualType Id##Ty; #include "clang/Basic/OpenCLExtensionTypes.def" -#define SVE_TYPE(Name, Id, SingletonId) \ - CanQualType SingletonId; -#include "clang/Basic/AArch64SVEACLETypes.def" +#define AARCH64_TYPE(Name, Id, SingletonId) CanQualType SingletonId; +#include "clang/Basic/AArch64Types.def" #define PPC_VECTOR_TYPE(Name, Id, Size) \ CanQualType Id##Ty; #include "clang/Basic/PPCTypes.def" diff --git a/clang/include/clang/AST/Type.h b/clang/include/clang/AST/Type.h index 3457d524c63aaa..9e853c11c97c6a 100644 --- a/clang/include/clang/AST/Type.h +++ b/clang/include/clang/AST/Type.h @@ -3041,8 +3041,8 @@ class BuiltinType : public Type { #define EXT_OPAQUE_TYPE(ExtType, Id, Ext) Id, #include "clang/Basic/OpenCLExtensionTypes.def" // SVE Types -#define SVE_TYPE(Name, Id, SingletonId) Id, -#include "clang/Basic/AArch64SVEACLETypes.def" +#define AARCH64_TYPE(Name, Id, SingletonId) Id, +#include "clang/Basic/AArch64Types.def" // PPC MMA Types #define PPC_VECTOR_TYPE(Name, Id, Size) Id, #include "clang/Basic/PPCTypes.def" diff --git a/clang/include/clang/AST/TypeProperties.td b/clang/include/clang/AST/TypeProperties.td index 6f1a76bd18fb50..6fe8635ea79962 100644 --- a/clang/include/clang/AST/TypeProperties.td +++ b/clang/include/clang/AST/TypeProperties.td @@ -884,9 +884,9 @@ let Class = BuiltinType in { case BuiltinType::ID: return ctx.ID##Ty; #include "clang/Basic/OpenCLExtensionTypes.def" -#define SVE_TYPE(NAME, ID, SINGLETON_ID) \ +#define AARCH64_TYPE(NAME, ID, SINGLETON_ID) \ case BuiltinType::ID: return ctx.SINGLETON_ID; -#include "clang/Basic/AArch64SVEACLETypes.def" +#include "clang/Basic/AArch64Types.def" #define PPC_VECTOR_TYPE(NAME, ID, SIZE) \ case BuiltinType::ID: return ctx.ID##Ty; diff --git a/clang/include/clang/Basic/AArch64SVEACLETypes.def b/clang/include/clang/Basic/AArch64SVEACLETypes.def deleted file mode 100644 index 063cac1f4a58ee..00000000000000 --- a/clang/include/clang/Basic/AArch64SVEACLETypes.def +++ /dev/null @@ -1,216 +0,0 @@ -//===-- AArch64SVEACLETypes.def - Metadata about SVE types ------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This file defines various SVE builtin types. The macros are: -// -// SVE_TYPE: -// - (Name, MangledName, Id, SingletonId) -// A builtin type that has not been covered by any other #define. Defining -// this macro covers all the builtin types. -// -// SVE_VECTOR_TYPE, SVE_PREDICATE_TYPE, SVE_OPAQUE_TYPE: -// - (Name, MangledName, Id, SingletonId) -// A builtin type that has not been covered by any other #define. Defining -// this macro covers the named subset of builtin types. -// -// SVE_VECTOR_TYPE_INT -// - (Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, IsSigned) -// Defining the macro covers the integer vector types. -// -// SVE_VECTOR_TYPE_FLOAT, SVE_VECTOR_TYPE_BFLOAT: -// - (Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) -// Defining the macro covers the floating point vector types. -// -// SVE_PREDICATE_TYPE_ALL: -// - (Name, MangledName, Id, SingletonId, NumEls, NF) -// Defining the macro covers the boolean vector types. -// -// where: -// -// - Name is the name of the builtin type. -// -// - MangledName is the mangled name of the builtin type. -// -// - BuiltinType::Id is the enumerator defining the type. -// -// - Context.SingletonId is the global singleton of this type. -// -// - ElKind enumerates the type of the elements. -// -// - NumEls enumerates the number of the elements. -// -// - ElBits is the size of one element in bits. -// -// - NF enumerates the number of vectors whereby 1 implies a single vector, -// with other values implying a struct of NF "NumEls x NumEls" vectors. -// -// - IsSigned is true for vectors of signed integer elements and -// for vectors of floating-point elements. -// -// - IsFP is true for vectors of floating-point elements. -// -// - IsBF true for vector of brain float elements. -//===----------------------------------------------------------------------===// - -#ifndef SVE_VECTOR_TYPE -#define SVE_VECTOR_TYPE(Name, MangledName, Id, SingletonId) \ - SVE_TYPE(Name, Id, SingletonId) -#endif - -#ifndef SVE_VECTOR_TYPE_DETAILS -#define SVE_VECTOR_TYPE_DETAILS(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, IsSigned, IsFP, IsBF) \ - SVE_VECTOR_TYPE(Name, MangledName, Id, SingletonId) -#endif - -#ifndef SVE_VECTOR_TYPE_BFLOAT -#define SVE_VECTOR_TYPE_BFLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) \ - SVE_VECTOR_TYPE_DETAILS(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, false, false, true) -#endif - -#ifndef SVE_VECTOR_TYPE_FLOAT -#define SVE_VECTOR_TYPE_FLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) \ - SVE_VECTOR_TYPE_DETAILS(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, false, true, false) -#endif - -#ifndef SVE_VECTOR_TYPE_INT -#define SVE_VECTOR_TYPE_INT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, IsSigned) \ - SVE_VECTOR_TYPE_DETAILS(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, IsSigned, false, false) -#endif - -#ifndef SVE_PREDICATE_TYPE -#define SVE_PREDICATE_TYPE(Name, MangledName, Id, SingletonId) \ - SVE_TYPE(Name, Id, SingletonId) -#endif - -#ifndef SVE_PREDICATE_TYPE_ALL -#define SVE_PREDICATE_TYPE_ALL(Name, MangledName, Id, SingletonId, NumEls, NF) \ - SVE_PREDICATE_TYPE(Name, MangledName, Id, SingletonId) -#endif - -#ifndef SVE_OPAQUE_TYPE -#define SVE_OPAQUE_TYPE(Name, MangledName, Id, SingletonId) \ - SVE_TYPE(Name, Id, SingletonId) -#endif - -#ifndef AARCH64_VECTOR_TYPE -#define AARCH64_VECTOR_TYPE(Name, MangledName, Id, SingletonId) \ - SVE_TYPE(Name, Id, SingletonId) -#endif - -#ifndef AARCH64_VECTOR_TYPE_MFLOAT -#define AARCH64_VECTOR_TYPE_MFLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) \ - AARCH64_VECTOR_TYPE(Name, MangledName, Id, SingletonId) -#endif - -//===- Vector point types -----------------------------------------------===// - -SVE_VECTOR_TYPE_INT("__SVInt8_t", "__SVInt8_t", SveInt8, SveInt8Ty, 16, 8, 1, true) -SVE_VECTOR_TYPE_INT("__SVInt16_t", "__SVInt16_t", SveInt16, SveInt16Ty, 8, 16, 1, true) -SVE_VECTOR_TYPE_INT("__SVInt32_t", "__SVInt32_t", SveInt32, SveInt32Ty, 4, 32, 1, true) -SVE_VECTOR_TYPE_INT("__SVInt64_t", "__SVInt64_t", SveInt64, SveInt64Ty, 2, 64, 1, true) - -SVE_VECTOR_TYPE_INT("__SVUint8_t", "__SVUint8_t", SveUint8, SveUint8Ty, 16, 8, 1, false) -SVE_VECTOR_TYPE_INT("__SVUint16_t", "__SVUint16_t", SveUint16, SveUint16Ty, 8, 16, 1, false) -SVE_VECTOR_TYPE_INT("__SVUint32_t", "__SVUint32_t", SveUint32, SveUint32Ty, 4, 32, 1, false) -SVE_VECTOR_TYPE_INT("__SVUint64_t", "__SVUint64_t", SveUint64, SveUint64Ty, 2, 64, 1, false) - -SVE_VECTOR_TYPE_FLOAT("__SVFloat16_t", "__SVFloat16_t", SveFloat16, SveFloat16Ty, 8, 16, 1) -SVE_VECTOR_TYPE_FLOAT("__SVFloat32_t", "__SVFloat32_t", SveFloat32, SveFloat32Ty, 4, 32, 1) -SVE_VECTOR_TYPE_FLOAT("__SVFloat64_t", "__SVFloat64_t", SveFloat64, SveFloat64Ty, 2, 64, 1) - -SVE_VECTOR_TYPE_BFLOAT("__SVBfloat16_t", "__SVBfloat16_t", SveBFloat16, SveBFloat16Ty, 8, 16, 1) - -// This is a 8 bits opaque type. -SVE_VECTOR_TYPE_INT("__SVMfloat8_t", "__SVMfloat8_t", SveMFloat8, SveMFloat8Ty, 16, 8, 1, false) - -// -// x2 -// - -SVE_VECTOR_TYPE_INT("__clang_svint8x2_t", "svint8x2_t", SveInt8x2, SveInt8x2Ty, 16, 8, 2, true) -SVE_VECTOR_TYPE_INT("__clang_svint16x2_t", "svint16x2_t", SveInt16x2, SveInt16x2Ty, 8, 16, 2, true) -SVE_VECTOR_TYPE_INT("__clang_svint32x2_t", "svint32x2_t", SveInt32x2, SveInt32x2Ty, 4, 32, 2, true) -SVE_VECTOR_TYPE_INT("__clang_svint64x2_t", "svint64x2_t", SveInt64x2, SveInt64x2Ty, 2, 64, 2, true) - -SVE_VECTOR_TYPE_INT("__clang_svuint8x2_t", "svuint8x2_t", SveUint8x2, SveUint8x2Ty, 16 , 8, 2, false) -SVE_VECTOR_TYPE_INT("__clang_svuint16x2_t", "svuint16x2_t", SveUint16x2, SveUint16x2Ty, 8, 16, 2, false) -SVE_VECTOR_TYPE_INT("__clang_svuint32x2_t", "svuint32x2_t", SveUint32x2, SveUint32x2Ty, 4, 32, 2, false) -SVE_VECTOR_TYPE_INT("__clang_svuint64x2_t", "svuint64x2_t", SveUint64x2, SveUint64x2Ty, 2, 64, 2, false) - -SVE_VECTOR_TYPE_FLOAT("__clang_svfloat16x2_t", "svfloat16x2_t", SveFloat16x2, SveFloat16x2Ty, 8, 16, 2) -SVE_VECTOR_TYPE_FLOAT("__clang_svfloat32x2_t", "svfloat32x2_t", SveFloat32x2, SveFloat32x2Ty, 4, 32, 2) -SVE_VECTOR_TYPE_FLOAT("__clang_svfloat64x2_t", "svfloat64x2_t", SveFloat64x2, SveFloat64x2Ty, 2, 64, 2) - -SVE_VECTOR_TYPE_BFLOAT("__clang_svbfloat16x2_t", "svbfloat16x2_t", SveBFloat16x2, SveBFloat16x2Ty, 8, 16, 2) - -SVE_VECTOR_TYPE_INT("__clang_svmfloat8x2_t", "svmfloat8x2_t", SveMFloat8x2, SveMFloat8x2Ty, 16, 8, 2, false) - -// -// x3 -// - -SVE_VECTOR_TYPE_INT("__clang_svint8x3_t", "svint8x3_t", SveInt8x3, SveInt8x3Ty, 16, 8, 3, true) -SVE_VECTOR_TYPE_INT("__clang_svint16x3_t", "svint16x3_t", SveInt16x3, SveInt16x3Ty, 8, 16, 3, true) -SVE_VECTOR_TYPE_INT("__clang_svint32x3_t", "svint32x3_t", SveInt32x3, SveInt32x3Ty, 4, 32, 3, true) -SVE_VECTOR_TYPE_INT("__clang_svint64x3_t", "svint64x3_t", SveInt64x3, SveInt64x3Ty, 2, 64, 3, true) - -SVE_VECTOR_TYPE_INT("__clang_svuint8x3_t", "svuint8x3_t", SveUint8x3, SveUint8x3Ty, 16, 8, 3, false) -SVE_VECTOR_TYPE_INT("__clang_svuint16x3_t", "svuint16x3_t", SveUint16x3, SveUint16x3Ty, 8, 16, 3, false) -SVE_VECTOR_TYPE_INT("__clang_svuint32x3_t", "svuint32x3_t", SveUint32x3, SveUint32x3Ty, 4, 32, 3, false) -SVE_VECTOR_TYPE_INT("__clang_svuint64x3_t", "svuint64x3_t", SveUint64x3, SveUint64x3Ty, 2, 64, 3, false) - -SVE_VECTOR_TYPE_FLOAT("__clang_svfloat16x3_t", "svfloat16x3_t", SveFloat16x3, SveFloat16x3Ty, 8, 16, 3) -SVE_VECTOR_TYPE_FLOAT("__clang_svfloat32x3_t", "svfloat32x3_t", SveFloat32x3, SveFloat32x3Ty, 4, 32, 3) -SVE_VECTOR_TYPE_FLOAT("__clang_svfloat64x3_t", "svfloat64x3_t", SveFloat64x3, SveFloat64x3Ty, 2, 64, 3) - -SVE_VECTOR_TYPE_BFLOAT("__clang_svbfloat16x3_t", "svbfloat16x3_t", SveBFloat16x3, SveBFloat16x3Ty, 8, 16, 3) - -SVE_VECTOR_TYPE_INT("__clang_svmfloat8x3_t", "svmfloat8x3_t", SveMFloat8x3, SveMFloat8x3Ty, 16, 8, 3, false) - -// -// x4 -// - -SVE_VECTOR_TYPE_INT("__clang_svint8x4_t", "svint8x4_t", SveInt8x4, SveInt8x4Ty, 16, 8, 4, true) -SVE_VECTOR_TYPE_INT("__clang_svint16x4_t", "svint16x4_t", SveInt16x4, SveInt16x4Ty, 8, 16, 4, true) -SVE_VECTOR_TYPE_INT("__clang_svint32x4_t", "svint32x4_t", SveInt32x4, SveInt32x4Ty, 4, 32, 4, true) -SVE_VECTOR_TYPE_INT("__clang_svint64x4_t", "svint64x4_t", SveInt64x4, SveInt64x4Ty, 2, 64, 4, true) - -SVE_VECTOR_TYPE_INT("__clang_svuint8x4_t", "svuint8x4_t", SveUint8x4, SveUint8x4Ty, 16, 8, 4, false) -SVE_VECTOR_TYPE_INT("__clang_svuint16x4_t", "svuint16x4_t", SveUint16x4, SveUint16x4Ty, 8, 16, 4, false) -SVE_VECTOR_TYPE_INT("__clang_svuint32x4_t", "svuint32x4_t", SveUint32x4, SveUint32x4Ty, 4, 32, 4, false) -SVE_VECTOR_TYPE_INT("__clang_svuint64x4_t", "svuint64x4_t", SveUint64x4, SveUint64x4Ty, 2, 64, 4, false) - -SVE_VECTOR_TYPE_FLOAT("__clang_svfloat16x4_t", "svfloat16x4_t", SveFloat16x4, SveFloat16x4Ty, 8, 16, 4) -SVE_VECTOR_TYPE_FLOAT("__clang_svfloat32x4_t", "svfloat32x4_t", SveFloat32x4, SveFloat32x4Ty, 4, 32, 4) -SVE_VECTOR_TYPE_FLOAT("__clang_svfloat64x4_t", "svfloat64x4_t", SveFloat64x4, SveFloat64x4Ty, 2, 64, 4) - -SVE_VECTOR_TYPE_BFLOAT("__clang_svbfloat16x4_t", "svbfloat16x4_t", SveBFloat16x4, SveBFloat16x4Ty, 8, 16, 4) - -SVE_VECTOR_TYPE_INT("__clang_svmfloat8x4_t", "svmfloat8x4_t", SveMFloat8x4, SveMFloat8x4Ty, 16, 8, 4, false) - -SVE_PREDICATE_TYPE_ALL("__SVBool_t", "__SVBool_t", SveBool, SveBoolTy, 16, 1) -SVE_PREDICATE_TYPE_ALL("__clang_svboolx2_t", "svboolx2_t", SveBoolx2, SveBoolx2Ty, 16, 2) -SVE_PREDICATE_TYPE_ALL("__clang_svboolx4_t", "svboolx4_t", SveBoolx4, SveBoolx4Ty, 16, 4) - -SVE_OPAQUE_TYPE("__SVCount_t", "__SVCount_t", SveCount, SveCountTy) - -AARCH64_VECTOR_TYPE_MFLOAT("__mfp8", "__mfp8", MFloat8, MFloat8Ty, 1, 8, 1) -AARCH64_VECTOR_TYPE_MFLOAT("__MFloat8x8_t", "__MFloat8x8_t", MFloat8x8, MFloat8x8Ty, 8, 8, 1) -AARCH64_VECTOR_TYPE_MFLOAT("__MFloat8x16_t", "__MFloat8x16_t", MFloat8x16, MFloat8x16Ty, 16, 8, 1) - -#undef SVE_VECTOR_TYPE -#undef SVE_VECTOR_TYPE_BFLOAT -#undef SVE_VECTOR_TYPE_FLOAT -#undef SVE_VECTOR_TYPE_INT -#undef SVE_PREDICATE_TYPE -#undef SVE_PREDICATE_TYPE_ALL -#undef SVE_OPAQUE_TYPE -#undef AARCH64_VECTOR_TYPE_MFLOAT -#undef AARCH64_VECTOR_TYPE -#undef SVE_TYPE diff --git a/clang/include/clang/Basic/AArch64Types.def b/clang/include/clang/Basic/AArch64Types.def new file mode 100644 index 00000000000000..c7e2384f62cc35 --- /dev/null +++ b/clang/include/clang/Basic/AArch64Types.def @@ -0,0 +1,216 @@ +//===-- AArch64SVEACLETypes.def - Metadata about SVE types ------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file defines various SVE builtin types. The macros are: +// +// AARCH64_TYPE: +// - (Name, MangledName, Id, SingletonId) +// A builtin type that has not been covered by any other #define. Defining +// this macro covers all the builtin types. +// +// SVE_VECTOR_TYPE, SVE_PREDICATE_TYPE, SVE_OPAQUE_TYPE: +// - (Name, MangledName, Id, SingletonId) +// A builtin type that has not been covered by any other #define. Defining +// this macro covers the named subset of builtin types. +// +// SVE_VECTOR_TYPE_INT +// - (Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, IsSigned) +// Defining the macro covers the integer vector types. +// +// SVE_VECTOR_TYPE_FLOAT, SVE_VECTOR_TYPE_BFLOAT: +// - (Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) +// Defining the macro covers the floating point vector types. +// +// SVE_PREDICATE_TYPE_ALL: +// - (Name, MangledName, Id, SingletonId, NumEls, NF) +// Defining the macro covers the boolean vector types. +// +// where: +// +// - Name is the name of the builtin type. +// +// - MangledName is the mangled name of the builtin type. +// +// - BuiltinType::Id is the enumerator defining the type. +// +// - Context.SingletonId is the global singleton of this type. +// +// - ElKind enumerates the type of the elements. +// +// - NumEls enumerates the number of the elements. +// +// - ElBits is the size of one element in bits. +// +// - NF enumerates the number of vectors whereby 1 implies a single vector, +// with other values implying a struct of NF "NumEls x NumEls" vectors. +// +// - IsSigned is true for vectors of signed integer elements and +// for vectors of floating-point elements. +// +// - IsFP is true for vectors of floating-point elements. +// +// - IsBF true for vector of brain float elements. +//===----------------------------------------------------------------------===// + +#ifndef SVE_VECTOR_TYPE +#define SVE_VECTOR_TYPE(Name, MangledName, Id, SingletonId) \ + AARCH64_TYPE(Name, Id, SingletonId) +#endif + +#ifndef SVE_VECTOR_TYPE_DETAILS +#define SVE_VECTOR_TYPE_DETAILS(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, IsSigned, IsFP, IsBF) \ + SVE_VECTOR_TYPE(Name, MangledName, Id, SingletonId) +#endif + +#ifndef SVE_VECTOR_TYPE_BFLOAT +#define SVE_VECTOR_TYPE_BFLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) \ + SVE_VECTOR_TYPE_DETAILS(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, false, false, true) +#endif + +#ifndef SVE_VECTOR_TYPE_FLOAT +#define SVE_VECTOR_TYPE_FLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) \ + SVE_VECTOR_TYPE_DETAILS(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, false, true, false) +#endif + +#ifndef SVE_VECTOR_TYPE_INT +#define SVE_VECTOR_TYPE_INT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, IsSigned) \ + SVE_VECTOR_TYPE_DETAILS(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, IsSigned, false, false) +#endif + +#ifndef SVE_PREDICATE_TYPE +#define SVE_PREDICATE_TYPE(Name, MangledName, Id, SingletonId) \ + AARCH64_TYPE(Name, Id, SingletonId) +#endif + +#ifndef SVE_PREDICATE_TYPE_ALL +#define SVE_PREDICATE_TYPE_ALL(Name, MangledName, Id, SingletonId, NumEls, NF) \ + SVE_PREDICATE_TYPE(Name, MangledName, Id, SingletonId) +#endif + +#ifndef SVE_OPAQUE_TYPE +#define SVE_OPAQUE_TYPE(Name, MangledName, Id, SingletonId) \ + AARCH64_TYPE(Name, Id, SingletonId) +#endif + +#ifndef NEON_VECTOR_TYPE +#define NEON_VECTOR_TYPE(Name, MangledName, Id, SingletonId) \ + AARCH64_TYPE(Name, Id, SingletonId) +#endif + +#ifndef NEON_VECTOR_TYPE_MFLOAT +#define NEON_VECTOR_TYPE_MFLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) \ + NEON_VECTOR_TYPE(Name, MangledName, Id, SingletonId) +#endif + +//===- Vector point types -----------------------------------------------===// + +SVE_VECTOR_TYPE_INT(__SVInt8_t, __SVInt8_t, SveInt8, SveInt8Ty, 16, 8, 1, true) +SVE_VECTOR_TYPE_INT(__SVInt16_t, __SVInt16_t, SveInt16, SveInt16Ty, 8, 16, 1, true) +SVE_VECTOR_TYPE_INT(__SVInt32_t, __SVInt32_t, SveInt32, SveInt32Ty, 4, 32, 1, true) +SVE_VECTOR_TYPE_INT(__SVInt64_t, __SVInt64_t, SveInt64, SveInt64Ty, 2, 64, 1, true) + +SVE_VECTOR_TYPE_INT(__SVUint8_t, __SVUint8_t, SveUint8, SveUint8Ty, 16, 8, 1, false) +SVE_VECTOR_TYPE_INT(__SVUint16_t, __SVUint16_t, SveUint16, SveUint16Ty, 8, 16, 1, false) +SVE_VECTOR_TYPE_INT(__SVUint32_t, __SVUint32_t, SveUint32, SveUint32Ty, 4, 32, 1, false) +SVE_VECTOR_TYPE_INT(__SVUint64_t, __SVUint64_t, SveUint64, SveUint64Ty, 2, 64, 1, false) + +SVE_VECTOR_TYPE_FLOAT(__SVFloat16_t, __SVFloat16_t, SveFloat16, SveFloat16Ty, 8, 16, 1) +SVE_VECTOR_TYPE_FLOAT(__SVFloat32_t, __SVFloat32_t, SveFloat32, SveFloat32Ty, 4, 32, 1) +SVE_VECTOR_TYPE_FLOAT(__SVFloat64_t, __SVFloat64_t, SveFloat64, SveFloat64Ty, 2, 64, 1) + +SVE_VECTOR_TYPE_BFLOAT(__SVBfloat16_t, __SVBfloat16_t, SveBFloat16, SveBFloat16Ty, 8, 16, 1) + +// This is a 8 bits opaque type. +SVE_VECTOR_TYPE_INT(__SVMfloat8_t, __SVMfloat8_t, SveMFloat8, SveMFloat8Ty, 16, 8, 1, false) + +// +// x2 +// + +SVE_VECTOR_TYPE_INT(__clang_svint8x2_t, svint8x2_t, SveInt8x2, SveInt8x2Ty, 16, 8, 2, true) +SVE_VECTOR_TYPE_INT(__clang_svint16x2_t, svint16x2_t, SveInt16x2, SveInt16x2Ty, 8, 16, 2, true) +SVE_VECTOR_TYPE_INT(__clang_svint32x2_t, svint32x2_t, SveInt32x2, SveInt32x2Ty, 4, 32, 2, true) +SVE_VECTOR_TYPE_INT(__clang_svint64x2_t, svint64x2_t, SveInt64x2, SveInt64x2Ty, 2, 64, 2, true) + +SVE_VECTOR_TYPE_INT(__clang_svuint8x2_t, svuint8x2_t, SveUint8x2, SveUint8x2Ty, 16 , 8, 2, false) +SVE_VECTOR_TYPE_INT(__clang_svuint16x2_t, svuint16x2_t, SveUint16x2, SveUint16x2Ty, 8, 16, 2, false) +SVE_VECTOR_TYPE_INT(__clang_svuint32x2_t, svuint32x2_t, SveUint32x2, SveUint32x2Ty, 4, 32, 2, false) +SVE_VECTOR_TYPE_INT(__clang_svuint64x2_t, svuint64x2_t, SveUint64x2, SveUint64x2Ty, 2, 64, 2, false) + +SVE_VECTOR_TYPE_FLOAT(__clang_svfloat16x2_t, svfloat16x2_t, SveFloat16x2, SveFloat16x2Ty, 8, 16, 2) +SVE_VECTOR_TYPE_FLOAT(__clang_svfloat32x2_t, svfloat32x2_t, SveFloat32x2, SveFloat32x2Ty, 4, 32, 2) +SVE_VECTOR_TYPE_FLOAT(__clang_svfloat64x2_t, svfloat64x2_t, SveFloat64x2, SveFloat64x2Ty, 2, 64, 2) + +SVE_VECTOR_TYPE_BFLOAT(__clang_svbfloat16x2_t, svbfloat16x2_t, SveBFloat16x2, SveBFloat16x2Ty, 8, 16, 2) + +SVE_VECTOR_TYPE_INT(__clang_svmfloat8x2_t, svmfloat8x2_t, SveMFloat8x2, SveMFloat8x2Ty, 16, 8, 2, false) + +// +// x3 +// + +SVE_VECTOR_TYPE_INT(__clang_svint8x3_t, svint8x3_t, SveInt8x3, SveInt8x3Ty, 16, 8, 3, true) +SVE_VECTOR_TYPE_INT(__clang_svint16x3_t, svint16x3_t, SveInt16x3, SveInt16x3Ty, 8, 16, 3, true) +SVE_VECTOR_TYPE_INT(__clang_svint32x3_t, svint32x3_t, SveInt32x3, SveInt32x3Ty, 4, 32, 3, true) +SVE_VECTOR_TYPE_INT(__clang_svint64x3_t, svint64x3_t, SveInt64x3, SveInt64x3Ty, 2, 64, 3, true) + +SVE_VECTOR_TYPE_INT(__clang_svuint8x3_t, svuint8x3_t, SveUint8x3, SveUint8x3Ty, 16, 8, 3, false) +SVE_VECTOR_TYPE_INT(__clang_svuint16x3_t... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/125063 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits