Lines Matching refs:OS

231   void emitIntrinsic(raw_ostream &OS) const;
921 void Intrinsic::emitIntrinsic(raw_ostream &OS) const { in emitIntrinsic()
927 OS << (IsOverloaded ? "__aio " : "__ai ") in emitIntrinsic()
931 OS << getTypes()[0].str() << " " << ProtoName << "("; in emitIntrinsic()
934 OS << ", "; in emitIntrinsic()
935 OS << getTypes()[I + 1].str(); in emitIntrinsic()
937 OS << ");\n"; in emitIntrinsic()
1061 void SVEEmitter::createHeader(raw_ostream &OS) { in createHeader() argument
1062 OS << "/*===---- arm_sve.h - ARM SVE intrinsics " in createHeader()
1075 OS << "#ifndef __ARM_SVE_H\n"; in createHeader()
1076 OS << "#define __ARM_SVE_H\n\n"; in createHeader()
1078 OS << "#if !defined(__ARM_FEATURE_SVE)\n"; in createHeader()
1079 OS << "#error \"SVE support not enabled\"\n"; in createHeader()
1080 OS << "#else\n\n"; in createHeader()
1082 OS << "#if !defined(__LITTLE_ENDIAN__)\n"; in createHeader()
1083 OS << "#error \"Big endian is currently not supported for arm_sve.h\"\n"; in createHeader()
1084 OS << "#endif\n"; in createHeader()
1086 OS << "#include <stdint.h>\n\n"; in createHeader()
1087 OS << "#ifdef __cplusplus\n"; in createHeader()
1088 OS << "extern \"C\" {\n"; in createHeader()
1089 OS << "#else\n"; in createHeader()
1090 OS << "#include <stdbool.h>\n"; in createHeader()
1091 OS << "#endif\n\n"; in createHeader()
1093 OS << "typedef __fp16 float16_t;\n"; in createHeader()
1094 OS << "typedef float float32_t;\n"; in createHeader()
1095 OS << "typedef double float64_t;\n"; in createHeader()
1097 OS << "typedef __SVInt8_t svint8_t;\n"; in createHeader()
1098 OS << "typedef __SVInt16_t svint16_t;\n"; in createHeader()
1099 OS << "typedef __SVInt32_t svint32_t;\n"; in createHeader()
1100 OS << "typedef __SVInt64_t svint64_t;\n"; in createHeader()
1101 OS << "typedef __SVUint8_t svuint8_t;\n"; in createHeader()
1102 OS << "typedef __SVUint16_t svuint16_t;\n"; in createHeader()
1103 OS << "typedef __SVUint32_t svuint32_t;\n"; in createHeader()
1104 OS << "typedef __SVUint64_t svuint64_t;\n"; in createHeader()
1105 OS << "typedef __SVFloat16_t svfloat16_t;\n\n"; in createHeader()
1107 OS << "#if defined(__ARM_FEATURE_SVE_BF16) && " in createHeader()
1109 OS << "#error \"__ARM_FEATURE_BF16_SCALAR_ARITHMETIC must be defined when " in createHeader()
1111 OS << "#endif\n\n"; in createHeader()
1113 OS << "#if defined(__ARM_FEATURE_SVE_BF16)\n"; in createHeader()
1114 OS << "typedef __SVBFloat16_t svbfloat16_t;\n"; in createHeader()
1115 OS << "#endif\n\n"; in createHeader()
1117 OS << "#if defined(__ARM_FEATURE_BF16_SCALAR_ARITHMETIC)\n"; in createHeader()
1118 OS << "#include <arm_bf16.h>\n"; in createHeader()
1119 OS << "typedef __bf16 bfloat16_t;\n"; in createHeader()
1120 OS << "#endif\n\n"; in createHeader()
1122 OS << "typedef __SVFloat32_t svfloat32_t;\n"; in createHeader()
1123 OS << "typedef __SVFloat64_t svfloat64_t;\n"; in createHeader()
1124 OS << "typedef __clang_svint8x2_t svint8x2_t;\n"; in createHeader()
1125 OS << "typedef __clang_svint16x2_t svint16x2_t;\n"; in createHeader()
1126 OS << "typedef __clang_svint32x2_t svint32x2_t;\n"; in createHeader()
1127 OS << "typedef __clang_svint64x2_t svint64x2_t;\n"; in createHeader()
1128 OS << "typedef __clang_svuint8x2_t svuint8x2_t;\n"; in createHeader()
1129 OS << "typedef __clang_svuint16x2_t svuint16x2_t;\n"; in createHeader()
1130 OS << "typedef __clang_svuint32x2_t svuint32x2_t;\n"; in createHeader()
1131 OS << "typedef __clang_svuint64x2_t svuint64x2_t;\n"; in createHeader()
1132 OS << "typedef __clang_svfloat16x2_t svfloat16x2_t;\n"; in createHeader()
1133 OS << "typedef __clang_svfloat32x2_t svfloat32x2_t;\n"; in createHeader()
1134 OS << "typedef __clang_svfloat64x2_t svfloat64x2_t;\n"; in createHeader()
1135 OS << "typedef __clang_svint8x3_t svint8x3_t;\n"; in createHeader()
1136 OS << "typedef __clang_svint16x3_t svint16x3_t;\n"; in createHeader()
1137 OS << "typedef __clang_svint32x3_t svint32x3_t;\n"; in createHeader()
1138 OS << "typedef __clang_svint64x3_t svint64x3_t;\n"; in createHeader()
1139 OS << "typedef __clang_svuint8x3_t svuint8x3_t;\n"; in createHeader()
1140 OS << "typedef __clang_svuint16x3_t svuint16x3_t;\n"; in createHeader()
1141 OS << "typedef __clang_svuint32x3_t svuint32x3_t;\n"; in createHeader()
1142 OS << "typedef __clang_svuint64x3_t svuint64x3_t;\n"; in createHeader()
1143 OS << "typedef __clang_svfloat16x3_t svfloat16x3_t;\n"; in createHeader()
1144 OS << "typedef __clang_svfloat32x3_t svfloat32x3_t;\n"; in createHeader()
1145 OS << "typedef __clang_svfloat64x3_t svfloat64x3_t;\n"; in createHeader()
1146 OS << "typedef __clang_svint8x4_t svint8x4_t;\n"; in createHeader()
1147 OS << "typedef __clang_svint16x4_t svint16x4_t;\n"; in createHeader()
1148 OS << "typedef __clang_svint32x4_t svint32x4_t;\n"; in createHeader()
1149 OS << "typedef __clang_svint64x4_t svint64x4_t;\n"; in createHeader()
1150 OS << "typedef __clang_svuint8x4_t svuint8x4_t;\n"; in createHeader()
1151 OS << "typedef __clang_svuint16x4_t svuint16x4_t;\n"; in createHeader()
1152 OS << "typedef __clang_svuint32x4_t svuint32x4_t;\n"; in createHeader()
1153 OS << "typedef __clang_svuint64x4_t svuint64x4_t;\n"; in createHeader()
1154 OS << "typedef __clang_svfloat16x4_t svfloat16x4_t;\n"; in createHeader()
1155 OS << "typedef __clang_svfloat32x4_t svfloat32x4_t;\n"; in createHeader()
1156 OS << "typedef __clang_svfloat64x4_t svfloat64x4_t;\n"; in createHeader()
1157 OS << "typedef __SVBool_t svbool_t;\n\n"; in createHeader()
1159 OS << "#ifdef __ARM_FEATURE_SVE_BF16\n"; in createHeader()
1160 OS << "typedef __clang_svbfloat16x2_t svbfloat16x2_t;\n"; in createHeader()
1161 OS << "typedef __clang_svbfloat16x3_t svbfloat16x3_t;\n"; in createHeader()
1162 OS << "typedef __clang_svbfloat16x4_t svbfloat16x4_t;\n"; in createHeader()
1163 OS << "#endif\n"; in createHeader()
1165 OS << "enum svpattern\n"; in createHeader()
1166 OS << "{\n"; in createHeader()
1167 OS << " SV_POW2 = 0,\n"; in createHeader()
1168 OS << " SV_VL1 = 1,\n"; in createHeader()
1169 OS << " SV_VL2 = 2,\n"; in createHeader()
1170 OS << " SV_VL3 = 3,\n"; in createHeader()
1171 OS << " SV_VL4 = 4,\n"; in createHeader()
1172 OS << " SV_VL5 = 5,\n"; in createHeader()
1173 OS << " SV_VL6 = 6,\n"; in createHeader()
1174 OS << " SV_VL7 = 7,\n"; in createHeader()
1175 OS << " SV_VL8 = 8,\n"; in createHeader()
1176 OS << " SV_VL16 = 9,\n"; in createHeader()
1177 OS << " SV_VL32 = 10,\n"; in createHeader()
1178 OS << " SV_VL64 = 11,\n"; in createHeader()
1179 OS << " SV_VL128 = 12,\n"; in createHeader()
1180 OS << " SV_VL256 = 13,\n"; in createHeader()
1181 OS << " SV_MUL4 = 29,\n"; in createHeader()
1182 OS << " SV_MUL3 = 30,\n"; in createHeader()
1183 OS << " SV_ALL = 31\n"; in createHeader()
1184 OS << "};\n\n"; in createHeader()
1186 OS << "enum svprfop\n"; in createHeader()
1187 OS << "{\n"; in createHeader()
1188 OS << " SV_PLDL1KEEP = 0,\n"; in createHeader()
1189 OS << " SV_PLDL1STRM = 1,\n"; in createHeader()
1190 OS << " SV_PLDL2KEEP = 2,\n"; in createHeader()
1191 OS << " SV_PLDL2STRM = 3,\n"; in createHeader()
1192 OS << " SV_PLDL3KEEP = 4,\n"; in createHeader()
1193 OS << " SV_PLDL3STRM = 5,\n"; in createHeader()
1194 OS << " SV_PSTL1KEEP = 8,\n"; in createHeader()
1195 OS << " SV_PSTL1STRM = 9,\n"; in createHeader()
1196 OS << " SV_PSTL2KEEP = 10,\n"; in createHeader()
1197 OS << " SV_PSTL2STRM = 11,\n"; in createHeader()
1198 OS << " SV_PSTL3KEEP = 12,\n"; in createHeader()
1199 OS << " SV_PSTL3STRM = 13\n"; in createHeader()
1200 OS << "};\n\n"; in createHeader()
1202 OS << "/* Function attributes */\n"; in createHeader()
1203 OS << "#define __ai static __inline__ __attribute__((__always_inline__, " in createHeader()
1205 OS << "#define __aio static __inline__ __attribute__((__always_inline__, " in createHeader()
1215 OS << "#if defined(__ARM_FEATURE_SVE_BF16)\n"; in createHeader()
1217 OS << "__aio " << From.Type << " svreinterpret_" << From.Suffix; in createHeader()
1218 OS << "(" << To.Type << " op) {\n"; in createHeader()
1219 OS << " return __builtin_sve_reinterpret_" << From.Suffix << "_" in createHeader()
1221 OS << "}\n\n"; in createHeader()
1223 OS << "#define svreinterpret_" << From.Suffix << "_" << To.Suffix in createHeader()
1227 OS << "#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */\n"; in createHeader()
1253 OS << "#endif //" << InGuard << "\n"; in createHeader()
1256 OS << "\n#if " << InGuard << "\n"; in createHeader()
1260 I->emitIntrinsic(OS); in createHeader()
1264 OS << "#endif //" << InGuard << "\n"; in createHeader()
1266 OS << "#if defined(__ARM_FEATURE_SVE_BF16)\n"; in createHeader()
1267 OS << "#define svcvtnt_bf16_x svcvtnt_bf16_m\n"; in createHeader()
1268 OS << "#define svcvtnt_bf16_f32_x svcvtnt_bf16_f32_m\n"; in createHeader()
1269 OS << "#endif /*__ARM_FEATURE_SVE_BF16 */\n\n"; in createHeader()
1271 OS << "#if defined(__ARM_FEATURE_SVE2)\n"; in createHeader()
1272 OS << "#define svcvtnt_f16_x svcvtnt_f16_m\n"; in createHeader()
1273 OS << "#define svcvtnt_f16_f32_x svcvtnt_f16_f32_m\n"; in createHeader()
1274 OS << "#define svcvtnt_f32_x svcvtnt_f32_m\n"; in createHeader()
1275 OS << "#define svcvtnt_f32_f64_x svcvtnt_f32_f64_m\n\n"; in createHeader()
1277 OS << "#define svcvtxnt_f32_x svcvtxnt_f32_m\n"; in createHeader()
1278 OS << "#define svcvtxnt_f32_f64_x svcvtxnt_f32_f64_m\n\n"; in createHeader()
1280 OS << "#endif /*__ARM_FEATURE_SVE2 */\n\n"; in createHeader()
1282 OS << "#ifdef __cplusplus\n"; in createHeader()
1283 OS << "} // extern \"C\"\n"; in createHeader()
1284 OS << "#endif\n\n"; in createHeader()
1285 OS << "#endif /*__ARM_FEATURE_SVE */\n\n"; in createHeader()
1286 OS << "#endif /* __ARM_SVE_H */\n"; in createHeader()
1289 void SVEEmitter::createBuiltins(raw_ostream &OS) { in createBuiltins() argument
1301 OS << "#ifdef GET_SVE_BUILTINS\n"; in createBuiltins()
1306 OS << "BUILTIN(__builtin_sve_" << Def->getMangledName() << ", \"" in createBuiltins()
1313 OS << "BUILTIN(__builtin_sve_reinterpret_" << From.Suffix << "_" in createBuiltins()
1317 OS << "#endif\n\n"; in createBuiltins()
1320 void SVEEmitter::createCodeGenMap(raw_ostream &OS) { in createCodeGenMap() argument
1332 OS << "#ifdef GET_SVE_LLVM_INTRINSIC_MAP\n"; in createCodeGenMap()
1345 OS << "SVEMAP1(" << Builtin << ", " << LLVMName << ", " << FlagString in createCodeGenMap()
1348 OS << "SVEMAP2(" << Builtin << ", " << FlagString << "),\n"; in createCodeGenMap()
1350 OS << "#endif\n\n"; in createCodeGenMap()
1353 void SVEEmitter::createRangeChecks(raw_ostream &OS) { in createRangeChecks() argument
1366 OS << "#ifdef GET_SVE_IMMEDIATE_CHECK\n"; in createRangeChecks()
1376 OS << "case SVE::BI__builtin_sve_" << Def->getMangledName() << ":\n"; in createRangeChecks()
1378 OS << "ImmChecks.push_back(std::make_tuple(" << Check.getArg() << ", " in createRangeChecks()
1380 OS << " break;\n"; in createRangeChecks()
1385 OS << "#endif\n\n"; in createRangeChecks()
1389 void SVEEmitter::createTypeFlags(raw_ostream &OS) { in createTypeFlags() argument
1390 OS << "#ifdef LLVM_GET_SVE_TYPEFLAGS\n"; in createTypeFlags()
1392 OS << "const uint64_t " << KV.getKey() << " = " << KV.getValue() << ";\n"; in createTypeFlags()
1393 OS << "#endif\n\n"; in createTypeFlags()
1395 OS << "#ifdef LLVM_GET_SVE_ELTTYPES\n"; in createTypeFlags()
1397 OS << " " << KV.getKey() << " = " << KV.getValue() << ",\n"; in createTypeFlags()
1398 OS << "#endif\n\n"; in createTypeFlags()
1400 OS << "#ifdef LLVM_GET_SVE_MEMELTTYPES\n"; in createTypeFlags()
1402 OS << " " << KV.getKey() << " = " << KV.getValue() << ",\n"; in createTypeFlags()
1403 OS << "#endif\n\n"; in createTypeFlags()
1405 OS << "#ifdef LLVM_GET_SVE_MERGETYPES\n"; in createTypeFlags()
1407 OS << " " << KV.getKey() << " = " << KV.getValue() << ",\n"; in createTypeFlags()
1408 OS << "#endif\n\n"; in createTypeFlags()
1410 OS << "#ifdef LLVM_GET_SVE_IMMCHECKTYPES\n"; in createTypeFlags()
1412 OS << " " << KV.getKey() << " = " << KV.getValue() << ",\n"; in createTypeFlags()
1413 OS << "#endif\n\n"; in createTypeFlags()
1417 void EmitSveHeader(RecordKeeper &Records, raw_ostream &OS) { in EmitSveHeader() argument
1418 SVEEmitter(Records).createHeader(OS); in EmitSveHeader()
1421 void EmitSveBuiltins(RecordKeeper &Records, raw_ostream &OS) { in EmitSveBuiltins() argument
1422 SVEEmitter(Records).createBuiltins(OS); in EmitSveBuiltins()
1425 void EmitSveBuiltinCG(RecordKeeper &Records, raw_ostream &OS) { in EmitSveBuiltinCG() argument
1426 SVEEmitter(Records).createCodeGenMap(OS); in EmitSveBuiltinCG()
1429 void EmitSveRangeChecks(RecordKeeper &Records, raw_ostream &OS) { in EmitSveRangeChecks() argument
1430 SVEEmitter(Records).createRangeChecks(OS); in EmitSveRangeChecks()
1433 void EmitSveTypeFlags(RecordKeeper &Records, raw_ostream &OS) { in EmitSveTypeFlags() argument
1434 SVEEmitter(Records).createTypeFlags(OS); in EmitSveTypeFlags()