aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Support/ScaledNumberTest.cpp
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2014-06-20 02:31:03 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2014-06-20 02:31:03 +0000
commite9e44cd1892645331eba16343829448f154880e6 (patch)
tree400172602af6b8d0a981a215760622527c66ac92 /llvm/unittests/Support/ScaledNumberTest.cpp
parentbfb8b9152bf51ec06efd44ab91673434dd5d3d1b (diff)
downloadllvm-e9e44cd1892645331eba16343829448f154880e6.zip
llvm-e9e44cd1892645331eba16343829448f154880e6.tar.gz
llvm-e9e44cd1892645331eba16343829448f154880e6.tar.bz2
Support: Write ScaledNumbers::getAdjusted()
llvm-svn: 211336
Diffstat (limited to 'llvm/unittests/Support/ScaledNumberTest.cpp')
-rw-r--r--llvm/unittests/Support/ScaledNumberTest.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/unittests/Support/ScaledNumberTest.cpp b/llvm/unittests/Support/ScaledNumberTest.cpp
index 1fa54ff..dac2405 100644
--- a/llvm/unittests/Support/ScaledNumberTest.cpp
+++ b/llvm/unittests/Support/ScaledNumberTest.cpp
@@ -57,4 +57,27 @@ TEST(ScaledNumberHelpersTest, getRounded) {
EXPECT_EQ(getRounded<uint64_t>(UINT64_MAX, 0, true),
SP64(UINT64_C(1) << 63, 1));
}
+
+TEST(FloatsTest, getAdjusted) {
+ const uint64_t Max32In64 = UINT32_MAX;
+ EXPECT_EQ(getAdjusted32(0), SP32(0, 0));
+ EXPECT_EQ(getAdjusted32(0, 5), SP32(0, 5));
+ EXPECT_EQ(getAdjusted32(UINT32_MAX), SP32(UINT32_MAX, 0));
+ EXPECT_EQ(getAdjusted32(Max32In64 << 1), SP32(UINT32_MAX, 1));
+ EXPECT_EQ(getAdjusted32(Max32In64 << 1, 1), SP32(UINT32_MAX, 2));
+ EXPECT_EQ(getAdjusted32(Max32In64 << 31), SP32(UINT32_MAX, 31));
+ EXPECT_EQ(getAdjusted32(Max32In64 << 32), SP32(UINT32_MAX, 32));
+ EXPECT_EQ(getAdjusted32(Max32In64 + 1), SP32(1u << 31, 1));
+ EXPECT_EQ(getAdjusted32(UINT64_MAX), SP32(1u << 31, 33));
+
+ EXPECT_EQ(getAdjusted64(0), SP64(0, 0));
+ EXPECT_EQ(getAdjusted64(0, 5), SP64(0, 5));
+ EXPECT_EQ(getAdjusted64(UINT32_MAX), SP64(UINT32_MAX, 0));
+ EXPECT_EQ(getAdjusted64(Max32In64 << 1), SP64(Max32In64 << 1, 0));
+ EXPECT_EQ(getAdjusted64(Max32In64 << 1, 1), SP64(Max32In64 << 1, 1));
+ EXPECT_EQ(getAdjusted64(Max32In64 << 31), SP64(Max32In64 << 31, 0));
+ EXPECT_EQ(getAdjusted64(Max32In64 << 32), SP64(Max32In64 << 32, 0));
+ EXPECT_EQ(getAdjusted64(Max32In64 + 1), SP64(Max32In64 + 1, 0));
+ EXPECT_EQ(getAdjusted64(UINT64_MAX), SP64(UINT64_MAX, 0));
+}
}