[llvm] abe171d - GlobalISel: Update mutationIsSane assert for scalable vectors

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 12 13:54:09 PDT 2022


Author: Matt Arsenault
Date: 2022-04-12T16:54:03-04:00
New Revision: abe171df06a42b163af09e8c08e8bb142a2d90ec

URL: https://github.com/llvm/llvm-project/commit/abe171df06a42b163af09e8c08e8bb142a2d90ec
DIFF: https://github.com/llvm/llvm-project/commit/abe171df06a42b163af09e8c08e8bb142a2d90ec.diff

LOG: GlobalISel: Update mutationIsSane assert for scalable vectors

Added: 
    

Modified: 
    llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
index 17360f5f32762..6adb7ddb5b66d 100644
--- a/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
@@ -129,15 +129,16 @@ static bool mutationIsSane(const LegalizeRule &Rule,
     LLVM_FALLTHROUGH;
   case MoreElements: {
     // MoreElements can go from scalar to vector.
-    const unsigned OldElts = OldTy.isVector() ? OldTy.getNumElements() : 1;
+    const ElementCount OldElts = OldTy.isVector() ?
+      OldTy.getElementCount() : ElementCount::getFixed(1);
     if (NewTy.isVector()) {
       if (Rule.getAction() == FewerElements) {
         // Make sure the element count really decreased.
-        if (NewTy.getNumElements() >= OldElts)
+        if (ElementCount::isKnownGE(NewTy.getElementCount(), OldElts))
           return false;
       } else {
         // Make sure the element count really increased.
-        if (NewTy.getNumElements() <= OldElts)
+        if (ElementCount::isKnownLE(NewTy.getElementCount(), OldElts))
           return false;
       }
     } else if (Rule.getAction() == MoreElements)


        


More information about the llvm-commits mailing list