| //===- unittest/ProfileData/InstProfDataTest.cpp ----------------------------=// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #include "gtest/gtest.h" | |
| #include <cstdint> | |
| #define INSTR_PROF_VALUE_PROF_MEMOP_API | |
| #include "llvm/ProfileData/InstrProfData.inc" | |
| namespace { | |
| TEST(InstrProfDataTest, MapValueToRangeRepValue) { | |
| EXPECT_EQ(0ULL, InstrProfGetRangeRepValue(0)); | |
| EXPECT_EQ(1ULL, InstrProfGetRangeRepValue(1)); | |
| EXPECT_EQ(2ULL, InstrProfGetRangeRepValue(2)); | |
| EXPECT_EQ(3ULL, InstrProfGetRangeRepValue(3)); | |
| EXPECT_EQ(4ULL, InstrProfGetRangeRepValue(4)); | |
| EXPECT_EQ(5ULL, InstrProfGetRangeRepValue(5)); | |
| EXPECT_EQ(6ULL, InstrProfGetRangeRepValue(6)); | |
| EXPECT_EQ(7ULL, InstrProfGetRangeRepValue(7)); | |
| EXPECT_EQ(8ULL, InstrProfGetRangeRepValue(8)); | |
| EXPECT_EQ(9ULL, InstrProfGetRangeRepValue(9)); | |
| EXPECT_EQ(16ULL, InstrProfGetRangeRepValue(16)); | |
| EXPECT_EQ(17ULL, InstrProfGetRangeRepValue(30)); | |
| EXPECT_EQ(32ULL, InstrProfGetRangeRepValue(32)); | |
| EXPECT_EQ(33ULL, InstrProfGetRangeRepValue(54)); | |
| EXPECT_EQ(64ULL, InstrProfGetRangeRepValue(64)); | |
| EXPECT_EQ(65ULL, InstrProfGetRangeRepValue(127)); | |
| EXPECT_EQ(128ULL, InstrProfGetRangeRepValue(128)); | |
| EXPECT_EQ(129ULL, InstrProfGetRangeRepValue(200)); | |
| EXPECT_EQ(256ULL, InstrProfGetRangeRepValue(256)); | |
| EXPECT_EQ(257ULL, InstrProfGetRangeRepValue(397)); | |
| EXPECT_EQ(512ULL, InstrProfGetRangeRepValue(512)); | |
| EXPECT_EQ(513ULL, InstrProfGetRangeRepValue(2832048023)); | |
| } | |
| TEST(InstrProfDataTest, IsInOneValueRange) { | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(0)); | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(1)); | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(2)); | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(3)); | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(4)); | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(5)); | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(6)); | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(7)); | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(8)); | |
| EXPECT_EQ(false, InstrProfIsSingleValRange(9)); | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(16)); | |
| EXPECT_EQ(false, InstrProfIsSingleValRange(30)); | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(32)); | |
| EXPECT_EQ(false, InstrProfIsSingleValRange(54)); | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(64)); | |
| EXPECT_EQ(false, InstrProfIsSingleValRange(127)); | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(128)); | |
| EXPECT_EQ(false, InstrProfIsSingleValRange(200)); | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(256)); | |
| EXPECT_EQ(false, InstrProfIsSingleValRange(397)); | |
| EXPECT_EQ(true, InstrProfIsSingleValRange(512)); | |
| EXPECT_EQ(false, InstrProfIsSingleValRange(2832048023344)); | |
| } | |
| } // end anonymous namespace |