[llvm] [NFC] Remove reverse restore from epilogue for SVE registers (PR #79623)

Momchil Velikov via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 1 02:51:54 PST 2024


================
@@ -3196,9 +3196,21 @@ bool AArch64FrameLowering::restoreCalleeSavedRegisters(
     return true;
   }
 
+  SmallVector<RegPairInfo, 8> RegPairsScalable = RegPairs;
+  llvm::stable_sort(
+      RegPairsScalable, [](const RegPairInfo &A, const RegPairInfo &B) {
+        return !(A.Type == RegPairInfo::PPR && B.Type == RegPairInfo::ZPR);
----------------
momchil-velikov wrote:

The predicate is incorrect, for example take two PPR elements, the predicate will return true both when invoked as  `op(A, B)` and as `op(B, A)`.

https://github.com/llvm/llvm-project/pull/79623


More information about the llvm-commits mailing list