[llvm] [RISCV] Initial codegen support for the XRivosVizip extension (PR #131933)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 28 13:08:29 PDT 2025
================
@@ -4621,6 +4623,48 @@ static bool isElementRotate(const std::array<std::pair<int, int>, 2> &SrcInfo,
SrcInfo[1].second - SrcInfo[0].second == (int)NumElts;
}
+static bool isAlternating(const std::array<std::pair<int, int>, 2> &SrcInfo,
+ const ArrayRef<int> Mask, bool RequiredPolarity) {
+ int NumElts = Mask.size();
+ for (unsigned i = 0; i != NumElts; ++i) {
+ int M = Mask[i];
+ if (M < 0)
+ continue;
+ int Src = M >= NumElts;
+ int Diff = (int)i - (M % NumElts);
+ bool C = Src == SrcInfo[1].first && Diff == SrcInfo[1].second;
+ assert(C ^ (Src == SrcInfo[0].first && Diff == SrcInfo[0].second) &&
----------------
topperc wrote:
`^` -> `!=`
https://github.com/llvm/llvm-project/pull/131933
More information about the llvm-commits
mailing list