[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