This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGecbf5db88d28: [6/15][Clang][RISCV][NFC] Instructions with a mask destination register is… (authored by eopXD).
Changed prior to commit: https://reviews.llvm.org/D141756?vs=489301&id=491650#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141756/new/ https://reviews.llvm.org/D141756 Files: clang/include/clang/Support/RISCVVIntrinsicUtils.h clang/lib/Support/RISCVVIntrinsicUtils.cpp Index: clang/lib/Support/RISCVVIntrinsicUtils.cpp =================================================================== --- clang/lib/Support/RISCVVIntrinsicUtils.cpp +++ clang/lib/Support/RISCVVIntrinsicUtils.cpp @@ -915,9 +915,6 @@ PolicyScheme DefaultScheme, Policy PolicyAttrs) { SmallVector<PrototypeDescriptor> NewPrototype(Prototype.begin(), Prototype.end()); - // Update PolicyAttrs if need (TA or TAMA) for compute builtin types. - if (PolicyAttrs.isMAPolicy()) - PolicyAttrs.TailPolicy = Policy::PolicyType::Agnostic; // TAMA bool HasPassthruOp = DefaultScheme == PolicyScheme::HasPassthruOperand; if (IsMasked) { // If HasMaskedOffOperand, insert result type as first input operand if @@ -998,10 +995,11 @@ Policy(Policy::PolicyType::Agnostic, Policy::PolicyType::Agnostic, HasTailPolicy, HasMaskPolicy)}; // TAM if (!HasTailPolicy && HasMaskPolicy) - return {Policy(Policy::PolicyType::Omit, Policy::PolicyType::Agnostic, + return {Policy(Policy::PolicyType::Agnostic, Policy::PolicyType::Agnostic, HasTailPolicy, HasMaskPolicy), // MA - Policy(Policy::PolicyType::Omit, Policy::PolicyType::Undisturbed, - HasTailPolicy, HasMaskPolicy)}; // MU + Policy(Policy::PolicyType::Agnostic, + Policy::PolicyType::Undisturbed, HasTailPolicy, + HasMaskPolicy)}; // MU llvm_unreachable("An RVV instruction should not be without both tail policy " "and mask policy"); } @@ -1040,6 +1038,10 @@ appendPolicySuffix("_tum"); else if (PolicyAttrs.isTAMAPolicy() && !PolicyAttrs.hasMaskPolicy()) appendPolicySuffix("_tam"); + else if (PolicyAttrs.isMUPolicy() && !PolicyAttrs.hasTailPolicy()) + appendPolicySuffix("_mu"); + else if (PolicyAttrs.isMAPolicy() && !PolicyAttrs.hasTailPolicy()) + appendPolicySuffix("_ma"); else if (PolicyAttrs.isTUMUPolicy()) appendPolicySuffix("_tumu"); else if (PolicyAttrs.isTAMUPolicy()) @@ -1052,13 +1054,7 @@ appendPolicySuffix("_tu"); else if (PolicyAttrs.isTAPolicy() && !IsMasked) appendPolicySuffix("_ta"); - else if (PolicyAttrs.isMUPolicy() && !PolicyAttrs.hasTailPolicy()) { - appendPolicySuffix("_mu"); - PolicyAttrs.TailPolicy = Policy::PolicyType::Agnostic; - } else if (PolicyAttrs.isMAPolicy() && !PolicyAttrs.hasTailPolicy()) { - appendPolicySuffix("_ma"); - PolicyAttrs.TailPolicy = Policy::PolicyType::Agnostic; - } else + else llvm_unreachable("Unhandled policy condition"); } } Index: clang/include/clang/Support/RISCVVIntrinsicUtils.h =================================================================== --- clang/include/clang/Support/RISCVVIntrinsicUtils.h +++ clang/include/clang/Support/RISCVVIntrinsicUtils.h @@ -134,13 +134,9 @@ return TailPolicy == Undisturbed && MaskPolicy == Omit; } - bool isMAPolicy() const { - return MaskPolicy == Agnostic && TailPolicy == Omit; - } + bool isMAPolicy() const { return MaskPolicy == Agnostic; } - bool isMUPolicy() const { - return MaskPolicy == Undisturbed && TailPolicy == Omit; - } + bool isMUPolicy() const { return MaskPolicy == Undisturbed; } bool hasTailPolicy() const { return HasTailPolicy; }
Index: clang/lib/Support/RISCVVIntrinsicUtils.cpp =================================================================== --- clang/lib/Support/RISCVVIntrinsicUtils.cpp +++ clang/lib/Support/RISCVVIntrinsicUtils.cpp @@ -915,9 +915,6 @@ PolicyScheme DefaultScheme, Policy PolicyAttrs) { SmallVector<PrototypeDescriptor> NewPrototype(Prototype.begin(), Prototype.end()); - // Update PolicyAttrs if need (TA or TAMA) for compute builtin types. - if (PolicyAttrs.isMAPolicy()) - PolicyAttrs.TailPolicy = Policy::PolicyType::Agnostic; // TAMA bool HasPassthruOp = DefaultScheme == PolicyScheme::HasPassthruOperand; if (IsMasked) { // If HasMaskedOffOperand, insert result type as first input operand if @@ -998,10 +995,11 @@ Policy(Policy::PolicyType::Agnostic, Policy::PolicyType::Agnostic, HasTailPolicy, HasMaskPolicy)}; // TAM if (!HasTailPolicy && HasMaskPolicy) - return {Policy(Policy::PolicyType::Omit, Policy::PolicyType::Agnostic, + return {Policy(Policy::PolicyType::Agnostic, Policy::PolicyType::Agnostic, HasTailPolicy, HasMaskPolicy), // MA - Policy(Policy::PolicyType::Omit, Policy::PolicyType::Undisturbed, - HasTailPolicy, HasMaskPolicy)}; // MU + Policy(Policy::PolicyType::Agnostic, + Policy::PolicyType::Undisturbed, HasTailPolicy, + HasMaskPolicy)}; // MU llvm_unreachable("An RVV instruction should not be without both tail policy " "and mask policy"); } @@ -1040,6 +1038,10 @@ appendPolicySuffix("_tum"); else if (PolicyAttrs.isTAMAPolicy() && !PolicyAttrs.hasMaskPolicy()) appendPolicySuffix("_tam"); + else if (PolicyAttrs.isMUPolicy() && !PolicyAttrs.hasTailPolicy()) + appendPolicySuffix("_mu"); + else if (PolicyAttrs.isMAPolicy() && !PolicyAttrs.hasTailPolicy()) + appendPolicySuffix("_ma"); else if (PolicyAttrs.isTUMUPolicy()) appendPolicySuffix("_tumu"); else if (PolicyAttrs.isTAMUPolicy()) @@ -1052,13 +1054,7 @@ appendPolicySuffix("_tu"); else if (PolicyAttrs.isTAPolicy() && !IsMasked) appendPolicySuffix("_ta"); - else if (PolicyAttrs.isMUPolicy() && !PolicyAttrs.hasTailPolicy()) { - appendPolicySuffix("_mu"); - PolicyAttrs.TailPolicy = Policy::PolicyType::Agnostic; - } else if (PolicyAttrs.isMAPolicy() && !PolicyAttrs.hasTailPolicy()) { - appendPolicySuffix("_ma"); - PolicyAttrs.TailPolicy = Policy::PolicyType::Agnostic; - } else + else llvm_unreachable("Unhandled policy condition"); } } Index: clang/include/clang/Support/RISCVVIntrinsicUtils.h =================================================================== --- clang/include/clang/Support/RISCVVIntrinsicUtils.h +++ clang/include/clang/Support/RISCVVIntrinsicUtils.h @@ -134,13 +134,9 @@ return TailPolicy == Undisturbed && MaskPolicy == Omit; } - bool isMAPolicy() const { - return MaskPolicy == Agnostic && TailPolicy == Omit; - } + bool isMAPolicy() const { return MaskPolicy == Agnostic; } - bool isMUPolicy() const { - return MaskPolicy == Undisturbed && TailPolicy == Omit; - } + bool isMUPolicy() const { return MaskPolicy == Undisturbed; } bool hasTailPolicy() const { return HasTailPolicy; }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits