eopXD created this revision. Herald added subscribers: sunshaoce, VincentWu, vkmr, frasercrmck, evandro, luismarques, apazos, sameer.abuasal, s.egerton, Jim, benna, psnobl, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, shiva0217, kito-cheng, niosHD, sabuasal, simoncook, johnrusso, rbar, asb, arichardson. Herald added a project: All. eopXD requested review of this revision. Herald added subscribers: cfe-commits, pcwang-thead, MaskRay. Herald added a project: clang.
Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D141575 Files: clang/lib/Support/RISCVVIntrinsicUtils.cpp Index: clang/lib/Support/RISCVVIntrinsicUtils.cpp =================================================================== --- clang/lib/Support/RISCVVIntrinsicUtils.cpp +++ clang/lib/Support/RISCVVIntrinsicUtils.cpp @@ -13,6 +13,7 @@ #include "llvm/ADT/StringMap.h" #include "llvm/ADT/StringSet.h" #include "llvm/ADT/Twine.h" +#include "llvm/Support/ErrorHandling.h" #include "llvm/Support/raw_ostream.h" #include <numeric> #include <optional> @@ -998,16 +999,18 @@ Policy::PolicyType::Undisturbed), // TUMU Policy(Policy::PolicyType::Agnostic, Policy::PolicyType::Undisturbed)}; // TAMU - - if (HasTailPolicy) + if (HasTailPolicy && !HasMaskPolicy) return {Policy(Policy::PolicyType::Undisturbed, Policy::PolicyType::Agnostic, true), // TUM Policy(Policy::PolicyType::Agnostic, Policy::PolicyType::Agnostic, true)}; // TAM - - return { - Policy(Policy::PolicyType::Omit, Policy::PolicyType::Agnostic), // MA - Policy(Policy::PolicyType::Omit, Policy::PolicyType::Undisturbed)}; // MU + if (!HasTailPolicy && HasMaskPolicy) + return { + Policy(Policy::PolicyType::Omit, Policy::PolicyType::Agnostic), // MA + Policy(Policy::PolicyType::Omit, + Policy::PolicyType::Undisturbed)}; // MU + llvm_unreachable("An RVV instruction should not be without both tail policy " + "and mask policy"); } void RVVIntrinsic::updateNamesAndPolicy(bool IsMasked, bool HasPolicy,
Index: clang/lib/Support/RISCVVIntrinsicUtils.cpp =================================================================== --- clang/lib/Support/RISCVVIntrinsicUtils.cpp +++ clang/lib/Support/RISCVVIntrinsicUtils.cpp @@ -13,6 +13,7 @@ #include "llvm/ADT/StringMap.h" #include "llvm/ADT/StringSet.h" #include "llvm/ADT/Twine.h" +#include "llvm/Support/ErrorHandling.h" #include "llvm/Support/raw_ostream.h" #include <numeric> #include <optional> @@ -998,16 +999,18 @@ Policy::PolicyType::Undisturbed), // TUMU Policy(Policy::PolicyType::Agnostic, Policy::PolicyType::Undisturbed)}; // TAMU - - if (HasTailPolicy) + if (HasTailPolicy && !HasMaskPolicy) return {Policy(Policy::PolicyType::Undisturbed, Policy::PolicyType::Agnostic, true), // TUM Policy(Policy::PolicyType::Agnostic, Policy::PolicyType::Agnostic, true)}; // TAM - - return { - Policy(Policy::PolicyType::Omit, Policy::PolicyType::Agnostic), // MA - Policy(Policy::PolicyType::Omit, Policy::PolicyType::Undisturbed)}; // MU + if (!HasTailPolicy && HasMaskPolicy) + return { + Policy(Policy::PolicyType::Omit, Policy::PolicyType::Agnostic), // MA + Policy(Policy::PolicyType::Omit, + Policy::PolicyType::Undisturbed)}; // MU + llvm_unreachable("An RVV instruction should not be without both tail policy " + "and mask policy"); } void RVVIntrinsic::updateNamesAndPolicy(bool IsMasked, bool HasPolicy,
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits