diff --git a/llvm/include/llvm/Analysis/IR2Vec.h b/llvm/include/llvm/Analysis/IR2Vec.h index c9edc1eda7919..040cb84ff27a1 100644 --- a/llvm/include/llvm/Analysis/IR2Vec.h +++ b/llvm/include/llvm/Analysis/IR2Vec.h @@ -117,7 +117,8 @@ struct Embedding { /// Returns true if the embedding is approximately equal to the RHS embedding /// within the specified tolerance. - bool approximatelyEquals(const Embedding &RHS, double Tolerance = 1e-6) const; + LLVM_ABI bool approximatelyEquals(const Embedding &RHS, + double Tolerance = 1e-4) const; void print(raw_ostream &OS) const; }; diff --git a/llvm/unittests/Analysis/IR2VecTest.cpp b/llvm/unittests/Analysis/IR2VecTest.cpp index ba0e4e2825ec1..3c97c20ae72d5 100644 --- a/llvm/unittests/Analysis/IR2VecTest.cpp +++ b/llvm/unittests/Analysis/IR2VecTest.cpp @@ -154,14 +154,14 @@ TEST(EmbeddingTest, ApproximatelyEqual) { EXPECT_TRUE(E1.approximatelyEquals(E2)); // Diff = 1e-7 Embedding E3 = {1.00002, 2.00002, 3.00002}; // Diff = 2e-5 - EXPECT_FALSE(E1.approximatelyEquals(E3)); + EXPECT_FALSE(E1.approximatelyEquals(E3, 1e-6)); EXPECT_TRUE(E1.approximatelyEquals(E3, 3e-5)); Embedding E_clearly_within = {1.0000005, 2.0000005, 3.0000005}; // Diff = 5e-7 EXPECT_TRUE(E1.approximatelyEquals(E_clearly_within)); Embedding E_clearly_outside = {1.00001, 2.00001, 3.00001}; // Diff = 1e-5 - EXPECT_FALSE(E1.approximatelyEquals(E_clearly_outside)); + EXPECT_FALSE(E1.approximatelyEquals(E_clearly_outside, 1e-6)); Embedding E4 = {1.0, 2.0, 3.5}; // Large diff EXPECT_FALSE(E1.approximatelyEquals(E4, 0.01));