[clang] [llvm][RISCV] Handle required features of intrinsic correctly (PR #143062)
Jim Lin via cfe-commits
cfe-commits at lists.llvm.org
Sun Jun 8 19:38:58 PDT 2025
================
@@ -768,35 +768,13 @@ void RVVEmitter::createRVVIntrinsics(
Log2LMULMask |= 1 << (Log2LMUL + 3);
SR.Log2LMULMask = Log2LMULMask;
-
- for (auto RequiredFeature : RequiredFeatures) {
- unsigned RequireExt =
- StringSwitch<RVVRequire>(RequiredFeature)
- .Case("RV64", RVV_REQ_RV64)
- .Case("Zvfhmin", RVV_REQ_Zvfhmin)
- .Case("Xandesvpackfph", RVV_REQ_Xandesvpackfph)
- .Case("Xandesvdot", RVV_REQ_Xandesvdot)
- .Case("Xsfvcp", RVV_REQ_Xsfvcp)
- .Case("Xsfvfnrclipxfqf", RVV_REQ_Xsfvfnrclipxfqf)
- .Case("Xsfvfwmaccqqq", RVV_REQ_Xsfvfwmaccqqq)
- .Case("Xsfvqmaccdod", RVV_REQ_Xsfvqmaccdod)
- .Case("Xsfvqmaccqoq", RVV_REQ_Xsfvqmaccqoq)
- .Case("Zvbb", RVV_REQ_Zvbb)
- .Case("Zvbc", RVV_REQ_Zvbc)
- .Case("Zvkb", RVV_REQ_Zvkb)
- .Case("Zvkg", RVV_REQ_Zvkg)
- .Case("Zvkned", RVV_REQ_Zvkned)
- .Case("Zvknha", RVV_REQ_Zvknha)
- .Case("Zvknhb", RVV_REQ_Zvknhb)
- .Case("Zvksed", RVV_REQ_Zvksed)
- .Case("Zvksh", RVV_REQ_Zvksh)
- .Case("Zvfbfwma", RVV_REQ_Zvfbfwma)
- .Case("Zvfbfmin", RVV_REQ_Zvfbfmin)
- .Case("Zvfh", RVV_REQ_Zvfh)
- .Case("Experimental", RVV_REQ_Experimental);
- SR.RequiredExtensions.set(RequireExt);
+ std::string RFs;
+ for (unsigned i = 0; i < RequiredFeatures.size(); ++i) {
----------------
tclin914 wrote:
Can we use `join` like `llvm/lib/TargetParser/SubtargetFeature.cpp:56` ?
https://github.com/llvm/llvm-project/pull/143062
More information about the cfe-commits
mailing list