diff options
author | Nathan Slingerland <slingn@gmail.com> | 2015-12-09 17:11:28 +0000 |
---|---|---|
committer | Nathan Slingerland <slingn@gmail.com> | 2015-12-09 17:11:28 +0000 |
commit | 644badbf01cdfad5dcd9409f19eb32e7a31bb6a4 (patch) | |
tree | 35ae725f4e388cff659cc169a1524342cd6404cf /llvm/unittests/Support/MathExtrasTest.cpp | |
parent | e28d04da59e7806345a75ea20af3046b65f76c71 (diff) | |
download | bcm5719-llvm-644badbf01cdfad5dcd9409f19eb32e7a31bb6a4.tar.gz bcm5719-llvm-644badbf01cdfad5dcd9409f19eb32e7a31bb6a4.zip |
[Support] Change SaturatingAdd()/SaturatingMultiply() to use pointer for returning overflow state
Summary:
Improve SaturatingAdd()/SaturatingMultiply() to use bool * to optionally return overflow result.
This should make it clearer that the value is returned at callsites and reduces the size of the implementation.
Reviewers: davidxl, silvas
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D15219
llvm-svn: 255128
Diffstat (limited to 'llvm/unittests/Support/MathExtrasTest.cpp')
-rw-r--r-- | llvm/unittests/Support/MathExtrasTest.cpp | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/llvm/unittests/Support/MathExtrasTest.cpp b/llvm/unittests/Support/MathExtrasTest.cpp index ee2fc1b9034..945d8322b25 100644 --- a/llvm/unittests/Support/MathExtrasTest.cpp +++ b/llvm/unittests/Support/MathExtrasTest.cpp @@ -197,23 +197,23 @@ void SaturatingAddTestHelper() bool ResultOverflowed; EXPECT_EQ(T(3), SaturatingAdd(T(1), T(2))); - EXPECT_EQ(T(3), SaturatingAdd(T(1), T(2), ResultOverflowed)); + EXPECT_EQ(T(3), SaturatingAdd(T(1), T(2), &ResultOverflowed)); EXPECT_FALSE(ResultOverflowed); EXPECT_EQ(Max, SaturatingAdd(Max, T(1))); - EXPECT_EQ(Max, SaturatingAdd(Max, T(1), ResultOverflowed)); + EXPECT_EQ(Max, SaturatingAdd(Max, T(1), &ResultOverflowed)); EXPECT_TRUE(ResultOverflowed); EXPECT_EQ(Max, SaturatingAdd(T(1), T(Max - 1))); - EXPECT_EQ(Max, SaturatingAdd(T(1), T(Max - 1), ResultOverflowed)); + EXPECT_EQ(Max, SaturatingAdd(T(1), T(Max - 1), &ResultOverflowed)); EXPECT_FALSE(ResultOverflowed); EXPECT_EQ(Max, SaturatingAdd(T(1), Max)); - EXPECT_EQ(Max, SaturatingAdd(T(1), Max, ResultOverflowed)); + EXPECT_EQ(Max, SaturatingAdd(T(1), Max, &ResultOverflowed)); EXPECT_TRUE(ResultOverflowed); EXPECT_EQ(Max, SaturatingAdd(Max, Max)); - EXPECT_EQ(Max, SaturatingAdd(Max, Max, ResultOverflowed)); + EXPECT_EQ(Max, SaturatingAdd(Max, Max, &ResultOverflowed)); EXPECT_TRUE(ResultOverflowed); } @@ -232,45 +232,45 @@ void SaturatingMultiplyTestHelper() // Test basic multiplication. EXPECT_EQ(T(6), SaturatingMultiply(T(2), T(3))); - EXPECT_EQ(T(6), SaturatingMultiply(T(2), T(3), ResultOverflowed)); + EXPECT_EQ(T(6), SaturatingMultiply(T(2), T(3), &ResultOverflowed)); EXPECT_FALSE(ResultOverflowed); EXPECT_EQ(T(6), SaturatingMultiply(T(3), T(2))); - EXPECT_EQ(T(6), SaturatingMultiply(T(3), T(2), ResultOverflowed)); + EXPECT_EQ(T(6), SaturatingMultiply(T(3), T(2), &ResultOverflowed)); EXPECT_FALSE(ResultOverflowed); // Test multiplication by zero. EXPECT_EQ(T(0), SaturatingMultiply(T(0), T(0))); - EXPECT_EQ(T(0), SaturatingMultiply(T(0), T(0), ResultOverflowed)); + EXPECT_EQ(T(0), SaturatingMultiply(T(0), T(0), &ResultOverflowed)); EXPECT_FALSE(ResultOverflowed); EXPECT_EQ(T(0), SaturatingMultiply(T(1), T(0))); - EXPECT_EQ(T(0), SaturatingMultiply(T(1), T(0), ResultOverflowed)); + EXPECT_EQ(T(0), SaturatingMultiply(T(1), T(0), &ResultOverflowed)); EXPECT_FALSE(ResultOverflowed); EXPECT_EQ(T(0), SaturatingMultiply(T(0), T(1))); - EXPECT_EQ(T(0), SaturatingMultiply(T(0), T(1), ResultOverflowed)); + EXPECT_EQ(T(0), SaturatingMultiply(T(0), T(1), &ResultOverflowed)); EXPECT_FALSE(ResultOverflowed); EXPECT_EQ(T(0), SaturatingMultiply(Max, T(0))); - EXPECT_EQ(T(0), SaturatingMultiply(Max, T(0), ResultOverflowed)); + EXPECT_EQ(T(0), SaturatingMultiply(Max, T(0), &ResultOverflowed)); EXPECT_FALSE(ResultOverflowed); EXPECT_EQ(T(0), SaturatingMultiply(T(0), Max)); - EXPECT_EQ(T(0), SaturatingMultiply(T(0), Max, ResultOverflowed)); + EXPECT_EQ(T(0), SaturatingMultiply(T(0), Max, &ResultOverflowed)); EXPECT_FALSE(ResultOverflowed); // Test multiplication by maximum value. EXPECT_EQ(Max, SaturatingMultiply(Max, T(2))); - EXPECT_EQ(Max, SaturatingMultiply(Max, T(2), ResultOverflowed)); + EXPECT_EQ(Max, SaturatingMultiply(Max, T(2), &ResultOverflowed)); EXPECT_TRUE(ResultOverflowed); EXPECT_EQ(Max, SaturatingMultiply(T(2), Max)); - EXPECT_EQ(Max, SaturatingMultiply(T(2), Max, ResultOverflowed)); + EXPECT_EQ(Max, SaturatingMultiply(T(2), Max, &ResultOverflowed)); EXPECT_TRUE(ResultOverflowed); EXPECT_EQ(Max, SaturatingMultiply(Max, Max)); - EXPECT_EQ(Max, SaturatingMultiply(Max, Max, ResultOverflowed)); + EXPECT_EQ(Max, SaturatingMultiply(Max, Max, &ResultOverflowed)); EXPECT_TRUE(ResultOverflowed); // Test interesting boundary conditions for algorithm - @@ -286,11 +286,11 @@ void SaturatingMultiplyTestHelper() if(OverflowExpected) { EXPECT_EQ(Max, SaturatingMultiply(X, Y)); - EXPECT_EQ(Max, SaturatingMultiply(X, Y, ResultOverflowed)); + EXPECT_EQ(Max, SaturatingMultiply(X, Y, &ResultOverflowed)); EXPECT_TRUE(ResultOverflowed); } else { EXPECT_EQ(X * Y, SaturatingMultiply(X, Y)); - EXPECT_EQ(X * Y, SaturatingMultiply(X, Y, ResultOverflowed)); + EXPECT_EQ(X * Y, SaturatingMultiply(X, Y, &ResultOverflowed)); EXPECT_FALSE(ResultOverflowed); } } |