1 | //===- unittest/ProfileData/InstProfDataTest.cpp ----------------------------=// |
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | |
9 | #include "gtest/gtest.h" |
10 | |
11 | #include <cstdint> |
12 | |
13 | #define INSTR_PROF_VALUE_PROF_MEMOP_API |
14 | #include "llvm/ProfileData/InstrProfData.inc" |
15 | |
16 | namespace { |
17 | |
18 | TEST(InstrProfDataTest, MapValueToRangeRepValue) { |
19 | EXPECT_EQ(0ULL, InstrProfGetRangeRepValue(0)); |
20 | EXPECT_EQ(1ULL, InstrProfGetRangeRepValue(1)); |
21 | EXPECT_EQ(2ULL, InstrProfGetRangeRepValue(2)); |
22 | EXPECT_EQ(3ULL, InstrProfGetRangeRepValue(3)); |
23 | EXPECT_EQ(4ULL, InstrProfGetRangeRepValue(4)); |
24 | EXPECT_EQ(5ULL, InstrProfGetRangeRepValue(5)); |
25 | EXPECT_EQ(6ULL, InstrProfGetRangeRepValue(6)); |
26 | EXPECT_EQ(7ULL, InstrProfGetRangeRepValue(7)); |
27 | EXPECT_EQ(8ULL, InstrProfGetRangeRepValue(8)); |
28 | EXPECT_EQ(9ULL, InstrProfGetRangeRepValue(9)); |
29 | EXPECT_EQ(16ULL, InstrProfGetRangeRepValue(16)); |
30 | EXPECT_EQ(17ULL, InstrProfGetRangeRepValue(30)); |
31 | EXPECT_EQ(32ULL, InstrProfGetRangeRepValue(32)); |
32 | EXPECT_EQ(33ULL, InstrProfGetRangeRepValue(54)); |
33 | EXPECT_EQ(64ULL, InstrProfGetRangeRepValue(64)); |
34 | EXPECT_EQ(65ULL, InstrProfGetRangeRepValue(127)); |
35 | EXPECT_EQ(128ULL, InstrProfGetRangeRepValue(128)); |
36 | EXPECT_EQ(129ULL, InstrProfGetRangeRepValue(200)); |
37 | EXPECT_EQ(256ULL, InstrProfGetRangeRepValue(256)); |
38 | EXPECT_EQ(257ULL, InstrProfGetRangeRepValue(397)); |
39 | EXPECT_EQ(512ULL, InstrProfGetRangeRepValue(512)); |
40 | EXPECT_EQ(513ULL, InstrProfGetRangeRepValue(2832048023)); |
41 | } |
42 | |
43 | TEST(InstrProfDataTest, IsInOneValueRange) { |
44 | EXPECT_EQ(true, InstrProfIsSingleValRange(0)); |
45 | EXPECT_EQ(true, InstrProfIsSingleValRange(1)); |
46 | EXPECT_EQ(true, InstrProfIsSingleValRange(2)); |
47 | EXPECT_EQ(true, InstrProfIsSingleValRange(3)); |
48 | EXPECT_EQ(true, InstrProfIsSingleValRange(4)); |
49 | EXPECT_EQ(true, InstrProfIsSingleValRange(5)); |
50 | EXPECT_EQ(true, InstrProfIsSingleValRange(6)); |
51 | EXPECT_EQ(true, InstrProfIsSingleValRange(7)); |
52 | EXPECT_EQ(true, InstrProfIsSingleValRange(8)); |
53 | EXPECT_EQ(false, InstrProfIsSingleValRange(9)); |
54 | EXPECT_EQ(true, InstrProfIsSingleValRange(16)); |
55 | EXPECT_EQ(false, InstrProfIsSingleValRange(30)); |
56 | EXPECT_EQ(true, InstrProfIsSingleValRange(32)); |
57 | EXPECT_EQ(false, InstrProfIsSingleValRange(54)); |
58 | EXPECT_EQ(true, InstrProfIsSingleValRange(64)); |
59 | EXPECT_EQ(false, InstrProfIsSingleValRange(127)); |
60 | EXPECT_EQ(true, InstrProfIsSingleValRange(128)); |
61 | EXPECT_EQ(false, InstrProfIsSingleValRange(200)); |
62 | EXPECT_EQ(true, InstrProfIsSingleValRange(256)); |
63 | EXPECT_EQ(false, InstrProfIsSingleValRange(397)); |
64 | EXPECT_EQ(true, InstrProfIsSingleValRange(512)); |
65 | EXPECT_EQ(false, InstrProfIsSingleValRange(2832048023344)); |
66 | } |
67 | |
68 | } // end anonymous namespace |
69 | |