@@ -1196,36 +1196,91 @@ SmallVector<PrototypeDescriptor> parsePrototypes(StringRef Prototypes) {
11961196 return PrototypeDescriptors;
11971197}
11981198
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+
11991255raw_ostream &operator <<(raw_ostream &OS, const RVVIntrinsicRecord &Record) {
12001256 OS << " {" ;
1201- OS << " \" " << Record.Name << " \" ," ;
1257+ OS << " /*Name=*/ \" " << Record.Name << " \" , " ;
12021258 if (Record.OverloadedName == nullptr ||
12031259 StringRef (Record.OverloadedName ).empty ())
1204- OS << " nullptr," ;
1260+ OS << " /*OverloadedName=*/ nullptr, " ;
12051261 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+ << " , " ;
12291284 OS << " },\n " ;
12301285 return OS;
12311286}
0 commit comments