summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/Support
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests/Support')
-rw-r--r--llvm/unittests/Support/AlignmentTest.cpp22
-rw-r--r--llvm/unittests/Support/MathExtrasTest.cpp19
2 files changed, 41 insertions, 0 deletions
diff --git a/llvm/unittests/Support/AlignmentTest.cpp b/llvm/unittests/Support/AlignmentTest.cpp
index 0b1435912b9..a6c053385cb 100644
--- a/llvm/unittests/Support/AlignmentTest.cpp
+++ b/llvm/unittests/Support/AlignmentTest.cpp
@@ -21,6 +21,28 @@ using namespace llvm;
namespace {
+TEST(AlignmentTest, AlignOfConstant) {
+ EXPECT_EQ(Align::Of<uint8_t>(), Align(alignof(uint8_t)));
+ EXPECT_EQ(Align::Of<uint16_t>(), Align(alignof(uint16_t)));
+ EXPECT_EQ(Align::Of<uint32_t>(), Align(alignof(uint32_t)));
+ EXPECT_EQ(Align::Of<uint64_t>(), Align(alignof(uint64_t)));
+}
+
+TEST(AlignmentTest, AlignConstant) {
+ EXPECT_EQ(Align::Constant<1>(), Align(1));
+ EXPECT_EQ(Align::Constant<2>(), Align(2));
+ EXPECT_EQ(Align::Constant<4>(), Align(4));
+ EXPECT_EQ(Align::Constant<8>(), Align(8));
+ EXPECT_EQ(Align::Constant<16>(), Align(16));
+ EXPECT_EQ(Align::Constant<32>(), Align(32));
+ EXPECT_EQ(Align::Constant<64>(), Align(64));
+}
+
+TEST(AlignmentTest, AlignConstexprConstant) {
+ constexpr Align kConstantAlign = Align::Of<uint64_t>();
+ EXPECT_EQ(Align(8), kConstantAlign);
+}
+
std::vector<uint64_t> getValidAlignments() {
std::vector<uint64_t> Out;
for (size_t Shift = 0; Shift < 64; ++Shift)
diff --git a/llvm/unittests/Support/MathExtrasTest.cpp b/llvm/unittests/Support/MathExtrasTest.cpp
index 01c83c9e14d..e910d83b626 100644
--- a/llvm/unittests/Support/MathExtrasTest.cpp
+++ b/llvm/unittests/Support/MathExtrasTest.cpp
@@ -203,6 +203,25 @@ TEST(MathExtras, PowerOf2Floor) {
EXPECT_EQ(4U, PowerOf2Floor(7U));
}
+TEST(MathExtras, CTLog2) {
+ EXPECT_EQ(CTLog2<1ULL << 0>(), 0U);
+ EXPECT_EQ(CTLog2<1ULL << 1>(), 1U);
+ EXPECT_EQ(CTLog2<1ULL << 2>(), 2U);
+ EXPECT_EQ(CTLog2<1ULL << 3>(), 3U);
+ EXPECT_EQ(CTLog2<1ULL << 4>(), 4U);
+ EXPECT_EQ(CTLog2<1ULL << 5>(), 5U);
+ EXPECT_EQ(CTLog2<1ULL << 6>(), 6U);
+ EXPECT_EQ(CTLog2<1ULL << 7>(), 7U);
+ EXPECT_EQ(CTLog2<1ULL << 8>(), 8U);
+ EXPECT_EQ(CTLog2<1ULL << 9>(), 9U);
+ EXPECT_EQ(CTLog2<1ULL << 10>(), 10U);
+ EXPECT_EQ(CTLog2<1ULL << 11>(), 11U);
+ EXPECT_EQ(CTLog2<1ULL << 12>(), 12U);
+ EXPECT_EQ(CTLog2<1ULL << 13>(), 13U);
+ EXPECT_EQ(CTLog2<1ULL << 14>(), 14U);
+ EXPECT_EQ(CTLog2<1ULL << 15>(), 15U);
+}
+
TEST(MathExtras, ByteSwap_32) {
EXPECT_EQ(0x44332211u, ByteSwap_32(0x11223344));
EXPECT_EQ(0xDDCCBBAAu, ByteSwap_32(0xAABBCCDD));
OpenPOWER on IntegriCloud