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