[llvm] [GISel] Add G_FDIV to CSE (PR #123624)

via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 20 19:35:00 PST 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-llvm-globalisel

Author: lialan (lialan)

<details>
<summary>Changes</summary>



---
Full diff: https://github.com/llvm/llvm-project/pull/123624.diff


2 Files Affected:

- (modified) llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp (+1) 
- (modified) llvm/unittests/CodeGen/GlobalISel/CSETest.cpp (+6) 


``````````diff
diff --git a/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp b/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp
index 0ac4a8a0aa910b..4e225cccdec65f 100644
--- a/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp
@@ -65,6 +65,7 @@ bool CSEConfigFull::shouldCSEOpc(unsigned Opc) {
   case TargetOpcode::G_BUILD_VECTOR:
   case TargetOpcode::G_BUILD_VECTOR_TRUNC:
   case TargetOpcode::G_SEXT_INREG:
+  case TargetOpcode::G_FDIV:
     return true;
   }
   return false;
diff --git a/llvm/unittests/CodeGen/GlobalISel/CSETest.cpp b/llvm/unittests/CodeGen/GlobalISel/CSETest.cpp
index 822707a1f4ed32..8503be09ed5539 100644
--- a/llvm/unittests/CodeGen/GlobalISel/CSETest.cpp
+++ b/llvm/unittests/CodeGen/GlobalISel/CSETest.cpp
@@ -9,6 +9,7 @@
 #include "GISelMITest.h"
 #include "llvm/CodeGen/GlobalISel/CSEInfo.h"
 #include "llvm/CodeGen/GlobalISel/CSEMIRBuilder.h"
+#include "llvm/CodeGenTypes/LowLevelType.h"
 #include "gtest/gtest.h"
 
 namespace {
@@ -75,6 +76,11 @@ TEST_F(AArch64GISelMITest, TestCSE) {
   auto MIBUnmerge2 = CSEB.buildUnmerge({s32, s32}, Copies[0]);
   EXPECT_TRUE(&*MIBUnmerge == &*MIBUnmerge2);
 
+  // Check G_FDIV
+  auto MIBFDiv = CSEB.buildFDiv(s32, Copies[0], Copies[1]);
+  auto MIBFDiv2 = CSEB.buildFDiv(s32, Copies[0], Copies[1]);
+  EXPECT_TRUE(&*MIBFDiv == &*MIBFDiv2);
+
   // Check G_BUILD_VECTOR
   Register Reg1 = MRI->createGenericVirtualRegister(s32);
   Register Reg2 = MRI->createGenericVirtualRegister(s32);

``````````

</details>


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


More information about the llvm-commits mailing list