@@ -1196,36 +1196,91 @@ SmallVector<PrototypeDescriptor> parsePrototypes(StringRef Prototypes) {
1196
1196
return PrototypeDescriptors;
1197
1197
}
1198
1198
1199
+ #define STRINGIFY (NAME ) \
1200
+ case NAME: \
1201
+ OS << #NAME; \
1202
+ break ;
1203
+
1204
+ llvm::raw_ostream &operator <<(llvm::raw_ostream &OS, enum PolicyScheme PS) {
1205
+ switch (PS) {
1206
+ STRINGIFY (SchemeNone)
1207
+ STRINGIFY (HasPassthruOperand)
1208
+ STRINGIFY (HasPolicyOperand)
1209
+ }
1210
+ return OS;
1211
+ }
1212
+
1213
+ llvm::raw_ostream &operator <<(llvm::raw_ostream &OS, enum RVVRequire Require) {
1214
+ switch (Require) {
1215
+ STRINGIFY (RVV_REQ_RV64)
1216
+ STRINGIFY (RVV_REQ_Zvfhmin)
1217
+ STRINGIFY (RVV_REQ_Xsfvcp)
1218
+ STRINGIFY (RVV_REQ_Xsfvfnrclipxfqf)
1219
+ STRINGIFY (RVV_REQ_Xsfvfwmaccqqq)
1220
+ STRINGIFY (RVV_REQ_Xsfvqmaccdod)
1221
+ STRINGIFY (RVV_REQ_Xsfvqmaccqoq)
1222
+ STRINGIFY (RVV_REQ_Zvbb)
1223
+ STRINGIFY (RVV_REQ_Zvbc)
1224
+ STRINGIFY (RVV_REQ_Zvkb)
1225
+ STRINGIFY (RVV_REQ_Zvkg)
1226
+ STRINGIFY (RVV_REQ_Zvkned)
1227
+ STRINGIFY (RVV_REQ_Zvknha)
1228
+ STRINGIFY (RVV_REQ_Zvknhb)
1229
+ STRINGIFY (RVV_REQ_Zvksed)
1230
+ STRINGIFY (RVV_REQ_Zvksh)
1231
+ STRINGIFY (RVV_REQ_Zvfbfwma)
1232
+ STRINGIFY (RVV_REQ_Zvfbfmin)
1233
+ STRINGIFY (RVV_REQ_Zvfh)
1234
+ STRINGIFY (RVV_REQ_Experimental)
1235
+ default :
1236
+ llvm_unreachable (" Unsupported RVVRequire!" );
1237
+ break ;
1238
+ }
1239
+ return OS;
1240
+ }
1241
+
1242
+ #undef STRINGIFY
1243
+
1244
+ llvm::raw_ostream &operator <<(llvm::raw_ostream &OS,
1245
+ const RequiredExtensionBits &Exts) {
1246
+ OS << " {" ;
1247
+ ListSeparator LS;
1248
+ for (unsigned I = 0 ; I < RVV_REQ_NUM; I++)
1249
+ if (Exts[I])
1250
+ OS << LS << static_cast <RVVRequire>(I);
1251
+ OS << " }" ;
1252
+ return OS;
1253
+ }
1254
+
1199
1255
raw_ostream &operator <<(raw_ostream &OS, const RVVIntrinsicRecord &Record) {
1200
1256
OS << " {" ;
1201
- OS << " \" " << Record.Name << " \" ," ;
1257
+ OS << " /*Name=*/ \" " << Record.Name << " \" , " ;
1202
1258
if (Record.OverloadedName == nullptr ||
1203
1259
StringRef (Record.OverloadedName ).empty ())
1204
- OS << " nullptr," ;
1260
+ OS << " /*OverloadedName=*/ nullptr, " ;
1205
1261
else
1206
- OS << " \" " << Record.OverloadedName << " \" ," ;
1207
- OS << " {" ;
1208
- for (uint32_t Exts : Record.RequiredExtensions )
1209
- OS << Exts << ' ,' ;
1210
- OS << " }," ;
1211
- OS << Record.PrototypeIndex << " ," ;
1212
- OS << Record.SuffixIndex << " ," ;
1213
- OS << Record.OverloadedSuffixIndex << " ," ;
1214
- OS << (int )Record.PrototypeLength << " ," ;
1215
- OS << (int )Record.SuffixLength << " ," ;
1216
- OS << (int )Record.OverloadedSuffixSize << " ," ;
1217
- OS << (int )Record.TypeRangeMask << " ," ;
1218
- OS << (int )Record.Log2LMULMask << " ," ;
1219
- OS << (int )Record.NF << " ," ;
1220
- OS << (int )Record.HasMasked << " ," ;
1221
- OS << (int )Record.HasVL << " ," ;
1222
- OS << (int )Record.HasMaskedOffOperand << " ," ;
1223
- OS << (int )Record.HasTailPolicy << " ," ;
1224
- OS << (int )Record.HasMaskPolicy << " ," ;
1225
- OS << (int )Record.HasFRMRoundModeOp << " ," ;
1226
- OS << (int )Record.IsTuple << " ," ;
1227
- OS << (int )Record.UnMaskedPolicyScheme << " ," ;
1228
- OS << (int )Record.MaskedPolicyScheme << " ," ;
1262
+ OS << " /*OverloadedName=*/\" " << Record.OverloadedName << " \" , " ;
1263
+ OS << " /*RequiredExtensions=*/" << Record.RequiredExtensions << " , " ;
1264
+ OS << " /*PrototypeIndex=*/" << Record.PrototypeIndex << " , " ;
1265
+ OS << " /*SuffixIndex=*/" << Record.SuffixIndex << " , " ;
1266
+ OS << " /*OverloadedSuffixIndex=*/" << Record.OverloadedSuffixIndex << " , " ;
1267
+ OS << " /*PrototypeLength=*/" << (int )Record.PrototypeLength << " , " ;
1268
+ OS << " /*SuffixLength=*/" << (int )Record.SuffixLength << " , " ;
1269
+ OS << " /*OverloadedSuffixSize=*/" << (int )Record.OverloadedSuffixSize << " , " ;
1270
+ OS << " /*TypeRangeMask=*/" << (int )Record.TypeRangeMask << " , " ;
1271
+ OS << " /*Log2LMULMask=*/" << (int )Record.Log2LMULMask << " , " ;
1272
+ OS << " /*NF=*/" << (int )Record.NF << " , " ;
1273
+ OS << " /*HasMasked=*/" << (int )Record.HasMasked << " , " ;
1274
+ OS << " /*HasVL=*/" << (int )Record.HasVL << " , " ;
1275
+ OS << " /*HasMaskedOffOperand=*/" << (int )Record.HasMaskedOffOperand << " , " ;
1276
+ OS << " /*HasTailPolicy=*/" << (int )Record.HasTailPolicy << " , " ;
1277
+ OS << " /*HasMaskPolicy=*/" << (int )Record.HasMaskPolicy << " , " ;
1278
+ OS << " /*HasFRMRoundModeOp=*/" << (int )Record.HasFRMRoundModeOp << " , " ;
1279
+ OS << " /*IsTuple=*/" << (int )Record.IsTuple << " , " ;
1280
+ OS << " /*UnMaskedPolicyScheme=*/" << (PolicyScheme)Record.UnMaskedPolicyScheme
1281
+ << " , " ;
1282
+ OS << " /*MaskedPolicyScheme=*/" << (PolicyScheme)Record.MaskedPolicyScheme
1283
+ << " , " ;
1229
1284
OS << " },\n " ;
1230
1285
return OS;
1231
1286
}
0 commit comments