Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/clang/Basic/AArch64SVEACLETypes.def is written in an unsupported language. File is not indexed.

0001 //===-- AArch64SVEACLETypes.def - Metadata about SVE types ------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 //
0009 //  This file defines various SVE builtin types.  The macros are:
0010 //
0011 //    SVE_TYPE:
0012 //    - (Name, MangledName, Id, SingletonId)
0013 //    A builtin type that has not been covered by any other #define. Defining
0014 //    this macro covers all the builtin types.
0015 //
0016 //    SVE_VECTOR_TYPE, SVE_PREDICATE_TYPE, SVE_OPAQUE_TYPE:
0017 //    - (Name, MangledName, Id, SingletonId)
0018 //    A builtin type that has not been covered by any other #define. Defining
0019 //    this macro covers the named subset of builtin types.
0020 //
0021 //    SVE_VECTOR_TYPE_INT
0022 //    - (Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, IsSigned)
0023 //    Defining the macro covers the integer vector types.
0024 //
0025 //    SVE_VECTOR_TYPE_FLOAT, SVE_VECTOR_TYPE_BFLOAT:
0026 //    - (Name, MangledName, Id, SingletonId, NumEls, ElBits, NF)
0027 //    Defining the macro covers the floating point vector types.
0028 //
0029 //    SVE_PREDICATE_TYPE_ALL:
0030 //    - (Name, MangledName, Id, SingletonId, NumEls, NF)
0031 //    Defining the macro covers the boolean vector types.
0032 //
0033 // where:
0034 //
0035 //  - Name is the name of the builtin type.
0036 //
0037 //  - MangledName is the mangled name of the builtin type.
0038 //
0039 //  - BuiltinType::Id is the enumerator defining the type.
0040 //
0041 //  - Context.SingletonId is the global singleton of this type.
0042 //
0043 //  - ElKind enumerates the type of the elements.
0044 //
0045 //  - NumEls enumerates the number of the elements.
0046 //
0047 //  - ElBits is the size of one element in bits.
0048 //
0049 //  - NF enumerates the number of vectors whereby 1 implies a single vector,
0050 //    with other values implying a struct of NF "NumEls x NumEls" vectors.
0051 //
0052 //  - IsSigned is true for vectors of signed integer elements and
0053 //    for vectors of floating-point elements.
0054 //
0055 //  - IsFP is true for vectors of floating-point elements.
0056 //
0057 //  - IsBF true for vector of brain float elements.
0058 //===----------------------------------------------------------------------===//
0059 
0060 #ifndef SVE_SCALAR_TYPE
0061 #define SVE_SCALAR_TYPE(Name, MangledName, Id, SingletonId, Bits) \
0062   SVE_TYPE(Name, Id, SingletonId)
0063 #endif
0064 
0065 #ifndef SVE_VECTOR_TYPE
0066 #define SVE_VECTOR_TYPE(Name, MangledName, Id, SingletonId) \
0067   SVE_TYPE(Name, Id, SingletonId)
0068 #endif
0069 
0070 #ifndef SVE_VECTOR_TYPE_DETAILS
0071 #define SVE_VECTOR_TYPE_DETAILS(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, IsSigned, IsFP, IsBF) \
0072   SVE_VECTOR_TYPE(Name, MangledName, Id, SingletonId)
0073 #endif
0074 
0075 #ifndef SVE_VECTOR_TYPE_BFLOAT
0076 #define SVE_VECTOR_TYPE_BFLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) \
0077   SVE_VECTOR_TYPE_DETAILS(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, false, false, true)
0078 #endif
0079 
0080 #ifndef SVE_VECTOR_TYPE_MFLOAT
0081 #define SVE_VECTOR_TYPE_MFLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) \
0082   SVE_VECTOR_TYPE_DETAILS(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, false, false, false)
0083 #endif
0084 
0085 #ifndef SVE_VECTOR_TYPE_FLOAT
0086 #define SVE_VECTOR_TYPE_FLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) \
0087   SVE_VECTOR_TYPE_DETAILS(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, false, true, false)
0088 #endif
0089 
0090 #ifndef SVE_VECTOR_TYPE_INT
0091 #define SVE_VECTOR_TYPE_INT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, IsSigned) \
0092   SVE_VECTOR_TYPE_DETAILS(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, IsSigned, false, false)
0093 #endif
0094 
0095 #ifndef SVE_PREDICATE_TYPE
0096 #define SVE_PREDICATE_TYPE(Name, MangledName, Id, SingletonId) \
0097   SVE_TYPE(Name, Id, SingletonId)
0098 #endif
0099 
0100 #ifndef SVE_PREDICATE_TYPE_ALL
0101 #define SVE_PREDICATE_TYPE_ALL(Name, MangledName, Id, SingletonId, NumEls, NF) \
0102   SVE_PREDICATE_TYPE(Name, MangledName, Id, SingletonId)
0103 #endif
0104 
0105 #ifndef SVE_OPAQUE_TYPE
0106 #define SVE_OPAQUE_TYPE(Name, MangledName, Id, SingletonId) \
0107   SVE_TYPE(Name, Id, SingletonId)
0108 #endif
0109 
0110 //===- Vector point types -----------------------------------------------===//
0111 
0112 SVE_VECTOR_TYPE_INT("__SVInt8_t",  "__SVInt8_t",  SveInt8,  SveInt8Ty, 16,  8, 1, true)
0113 SVE_VECTOR_TYPE_INT("__SVInt16_t", "__SVInt16_t", SveInt16, SveInt16Ty, 8, 16, 1, true)
0114 SVE_VECTOR_TYPE_INT("__SVInt32_t", "__SVInt32_t", SveInt32, SveInt32Ty, 4, 32, 1, true)
0115 SVE_VECTOR_TYPE_INT("__SVInt64_t", "__SVInt64_t", SveInt64, SveInt64Ty, 2, 64, 1, true)
0116 
0117 SVE_VECTOR_TYPE_INT("__SVUint8_t",  "__SVUint8_t",  SveUint8,  SveUint8Ty, 16, 8, 1, false)
0118 SVE_VECTOR_TYPE_INT("__SVUint16_t", "__SVUint16_t", SveUint16, SveUint16Ty, 8, 16, 1, false)
0119 SVE_VECTOR_TYPE_INT("__SVUint32_t", "__SVUint32_t", SveUint32, SveUint32Ty, 4, 32, 1, false)
0120 SVE_VECTOR_TYPE_INT("__SVUint64_t", "__SVUint64_t", SveUint64, SveUint64Ty, 2, 64, 1, false)
0121 
0122 SVE_VECTOR_TYPE_FLOAT("__SVFloat16_t", "__SVFloat16_t", SveFloat16, SveFloat16Ty, 8, 16, 1)
0123 SVE_VECTOR_TYPE_FLOAT("__SVFloat32_t", "__SVFloat32_t", SveFloat32, SveFloat32Ty, 4, 32, 1)
0124 SVE_VECTOR_TYPE_FLOAT("__SVFloat64_t", "__SVFloat64_t", SveFloat64, SveFloat64Ty, 2, 64, 1)
0125 
0126 SVE_VECTOR_TYPE_BFLOAT("__SVBfloat16_t", "__SVBfloat16_t", SveBFloat16, SveBFloat16Ty, 8, 16, 1)
0127 
0128 SVE_VECTOR_TYPE_MFLOAT("__SVMfloat8_t", "__SVMfloat8_t",  SveMFloat8, SveMFloat8Ty, 16, 8, 1)
0129 
0130 //
0131 // x2
0132 //
0133 
0134 SVE_VECTOR_TYPE_INT("__clang_svint8x2_t",  "svint8x2_t",  SveInt8x2,  SveInt8x2Ty, 16, 8, 2, true)
0135 SVE_VECTOR_TYPE_INT("__clang_svint16x2_t", "svint16x2_t", SveInt16x2, SveInt16x2Ty, 8, 16, 2, true)
0136 SVE_VECTOR_TYPE_INT("__clang_svint32x2_t", "svint32x2_t", SveInt32x2, SveInt32x2Ty, 4, 32, 2, true)
0137 SVE_VECTOR_TYPE_INT("__clang_svint64x2_t", "svint64x2_t", SveInt64x2, SveInt64x2Ty, 2, 64, 2, true)
0138 
0139 SVE_VECTOR_TYPE_INT("__clang_svuint8x2_t",  "svuint8x2_t",  SveUint8x2,  SveUint8x2Ty, 16 , 8, 2, false)
0140 SVE_VECTOR_TYPE_INT("__clang_svuint16x2_t", "svuint16x2_t", SveUint16x2, SveUint16x2Ty, 8, 16, 2, false)
0141 SVE_VECTOR_TYPE_INT("__clang_svuint32x2_t", "svuint32x2_t", SveUint32x2, SveUint32x2Ty, 4, 32, 2, false)
0142 SVE_VECTOR_TYPE_INT("__clang_svuint64x2_t", "svuint64x2_t", SveUint64x2, SveUint64x2Ty, 2, 64, 2, false)
0143 
0144 SVE_VECTOR_TYPE_FLOAT("__clang_svfloat16x2_t", "svfloat16x2_t", SveFloat16x2, SveFloat16x2Ty, 8, 16, 2)
0145 SVE_VECTOR_TYPE_FLOAT("__clang_svfloat32x2_t", "svfloat32x2_t", SveFloat32x2, SveFloat32x2Ty, 4, 32, 2)
0146 SVE_VECTOR_TYPE_FLOAT("__clang_svfloat64x2_t", "svfloat64x2_t", SveFloat64x2, SveFloat64x2Ty, 2, 64, 2)
0147 
0148 SVE_VECTOR_TYPE_BFLOAT("__clang_svbfloat16x2_t", "svbfloat16x2_t", SveBFloat16x2, SveBFloat16x2Ty, 8, 16, 2)
0149 
0150 SVE_VECTOR_TYPE_MFLOAT("__clang_svmfloat8x2_t", "svmfloat8x2_t", SveMFloat8x2, SveMFloat8x2Ty, 16, 8, 2)
0151 
0152 //
0153 // x3
0154 //
0155 
0156 SVE_VECTOR_TYPE_INT("__clang_svint8x3_t",  "svint8x3_t",  SveInt8x3,  SveInt8x3Ty, 16,  8, 3, true)
0157 SVE_VECTOR_TYPE_INT("__clang_svint16x3_t", "svint16x3_t", SveInt16x3, SveInt16x3Ty, 8, 16, 3, true)
0158 SVE_VECTOR_TYPE_INT("__clang_svint32x3_t", "svint32x3_t", SveInt32x3, SveInt32x3Ty, 4, 32, 3, true)
0159 SVE_VECTOR_TYPE_INT("__clang_svint64x3_t", "svint64x3_t", SveInt64x3, SveInt64x3Ty, 2, 64, 3, true)
0160 
0161 SVE_VECTOR_TYPE_INT("__clang_svuint8x3_t",  "svuint8x3_t",  SveUint8x3,  SveUint8x3Ty, 16,  8, 3, false)
0162 SVE_VECTOR_TYPE_INT("__clang_svuint16x3_t", "svuint16x3_t", SveUint16x3, SveUint16x3Ty, 8, 16, 3, false)
0163 SVE_VECTOR_TYPE_INT("__clang_svuint32x3_t", "svuint32x3_t", SveUint32x3, SveUint32x3Ty, 4, 32, 3, false)
0164 SVE_VECTOR_TYPE_INT("__clang_svuint64x3_t", "svuint64x3_t", SveUint64x3, SveUint64x3Ty, 2, 64, 3, false)
0165 
0166 SVE_VECTOR_TYPE_FLOAT("__clang_svfloat16x3_t", "svfloat16x3_t", SveFloat16x3, SveFloat16x3Ty, 8, 16, 3)
0167 SVE_VECTOR_TYPE_FLOAT("__clang_svfloat32x3_t", "svfloat32x3_t", SveFloat32x3, SveFloat32x3Ty, 4, 32, 3)
0168 SVE_VECTOR_TYPE_FLOAT("__clang_svfloat64x3_t", "svfloat64x3_t", SveFloat64x3, SveFloat64x3Ty, 2, 64, 3)
0169 
0170 SVE_VECTOR_TYPE_BFLOAT("__clang_svbfloat16x3_t", "svbfloat16x3_t", SveBFloat16x3, SveBFloat16x3Ty, 8, 16, 3)
0171 
0172 SVE_VECTOR_TYPE_MFLOAT("__clang_svmfloat8x3_t", "svmfloat8x3_t", SveMFloat8x3, SveMFloat8x3Ty, 16, 8, 3)
0173 
0174 //
0175 // x4
0176 //
0177 
0178 SVE_VECTOR_TYPE_INT("__clang_svint8x4_t",  "svint8x4_t",  SveInt8x4,  SveInt8x4Ty, 16,  8, 4, true)
0179 SVE_VECTOR_TYPE_INT("__clang_svint16x4_t", "svint16x4_t", SveInt16x4, SveInt16x4Ty, 8, 16, 4, true)
0180 SVE_VECTOR_TYPE_INT("__clang_svint32x4_t", "svint32x4_t", SveInt32x4, SveInt32x4Ty, 4, 32, 4, true)
0181 SVE_VECTOR_TYPE_INT("__clang_svint64x4_t", "svint64x4_t", SveInt64x4, SveInt64x4Ty, 2, 64, 4, true)
0182 
0183 SVE_VECTOR_TYPE_INT("__clang_svuint8x4_t",  "svuint8x4_t",  SveUint8x4,  SveUint8x4Ty, 16,  8, 4, false)
0184 SVE_VECTOR_TYPE_INT("__clang_svuint16x4_t", "svuint16x4_t", SveUint16x4, SveUint16x4Ty, 8, 16, 4, false)
0185 SVE_VECTOR_TYPE_INT("__clang_svuint32x4_t", "svuint32x4_t", SveUint32x4, SveUint32x4Ty, 4, 32, 4, false)
0186 SVE_VECTOR_TYPE_INT("__clang_svuint64x4_t", "svuint64x4_t", SveUint64x4, SveUint64x4Ty, 2, 64, 4, false)
0187 
0188 SVE_VECTOR_TYPE_FLOAT("__clang_svfloat16x4_t", "svfloat16x4_t", SveFloat16x4, SveFloat16x4Ty, 8, 16, 4)
0189 SVE_VECTOR_TYPE_FLOAT("__clang_svfloat32x4_t", "svfloat32x4_t", SveFloat32x4, SveFloat32x4Ty, 4, 32, 4)
0190 SVE_VECTOR_TYPE_FLOAT("__clang_svfloat64x4_t", "svfloat64x4_t", SveFloat64x4, SveFloat64x4Ty, 2, 64, 4)
0191 
0192 SVE_VECTOR_TYPE_BFLOAT("__clang_svbfloat16x4_t", "svbfloat16x4_t", SveBFloat16x4, SveBFloat16x4Ty, 8, 16, 4)
0193 
0194 SVE_VECTOR_TYPE_MFLOAT("__clang_svmfloat8x4_t", "svmfloat8x4_t", SveMFloat8x4, SveMFloat8x4Ty, 16, 8, 4)
0195 
0196 SVE_PREDICATE_TYPE_ALL("__SVBool_t", "__SVBool_t", SveBool, SveBoolTy, 16, 1)
0197 SVE_PREDICATE_TYPE_ALL("__clang_svboolx2_t", "svboolx2_t", SveBoolx2, SveBoolx2Ty, 16, 2)
0198 SVE_PREDICATE_TYPE_ALL("__clang_svboolx4_t", "svboolx4_t", SveBoolx4, SveBoolx4Ty, 16, 4)
0199 
0200 SVE_OPAQUE_TYPE("__SVCount_t", "__SVCount_t", SveCount, SveCountTy)
0201 
0202 SVE_SCALAR_TYPE("__mfp8", "__mfp8", MFloat8, MFloat8Ty, 8)
0203 
0204 #undef SVE_VECTOR_TYPE
0205 #undef SVE_VECTOR_TYPE_MFLOAT
0206 #undef SVE_VECTOR_TYPE_BFLOAT
0207 #undef SVE_VECTOR_TYPE_FLOAT
0208 #undef SVE_VECTOR_TYPE_INT
0209 #undef SVE_PREDICATE_TYPE
0210 #undef SVE_PREDICATE_TYPE_ALL
0211 #undef SVE_OPAQUE_TYPE
0212 #undef SVE_SCALAR_TYPE
0213 #undef SVE_TYPE