diff options
author | eopXD <yueh.ting.chen@gmail.com> | 2023-01-07 00:17:08 -0800 |
---|---|---|
committer | eopXD <yueh.ting.chen@gmail.com> | 2023-01-24 00:07:33 -0800 |
commit | 063802843c20a49cf53a1fd380565ebfe29ee83f (patch) | |
tree | 5957f2e5d230c3f5a29de6a8c90be38d3ff649b1 /clang/lib/Support/RISCVVIntrinsicUtils.cpp | |
parent | 74252fb115b42bab2c050086603c1385c8a2ffb6 (diff) | |
download | llvm-063802843c20a49cf53a1fd380565ebfe29ee83f.zip llvm-063802843c20a49cf53a1fd380565ebfe29ee83f.tar.gz llvm-063802843c20a49cf53a1fd380565ebfe29ee83f.tar.bz2 |
[3/15][Clang][RISCV][NFC] Clarify edge cases of RVVIntrinsic::getSupportedMaskedPolicies for clarity
This is the 3rd commit of a patch-set that aims to change the default policy
for RVV intrinsics from TAMU to TAMA.
Please refer to the cover letter in the 1st commit (D141573) for an
overview.
Reviewed By: kito-cheng
Differential Revision: https://reviews.llvm.org/D141575
Diffstat (limited to 'clang/lib/Support/RISCVVIntrinsicUtils.cpp')
-rw-r--r-- | clang/lib/Support/RISCVVIntrinsicUtils.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/clang/lib/Support/RISCVVIntrinsicUtils.cpp b/clang/lib/Support/RISCVVIntrinsicUtils.cpp index 93ade07..18b8ca54 100644 --- a/clang/lib/Support/RISCVVIntrinsicUtils.cpp +++ b/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> @@ -992,16 +993,18 @@ RVVIntrinsic::getSupportedMaskedPolicies(bool HasTailPolicy, 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, |