[compiler-rt] [llvm] [MemProf] Change histogram storage from uint64_t to uint16_t (PR #147854)
Snehasish Kumar via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 29 13:46:01 PDT 2025
================
@@ -0,0 +1,35 @@
+#include <cstdint>
+#include <vector>
+
+#include "profile/MemProfData.inc"
+#include "gtest/gtest.h"
+
+namespace llvm {
+namespace memprof {
+namespace {
+TEST(MemProf, F16EncodeDecode) {
+ const std::vector<uint64_t> TestCases = {
+ 0, 100, 4095, 4096, 5000, 8191, 65535, 1000000, 134213640, 200000000,
+ };
+
+ for (const uint64_t TestCase : TestCases) {
+ const uint16_t Encoded = encodeHistogramCount(TestCase);
+ const uint64_t Decoded = decodeHistogramCount(Encoded);
+
+ const uint64_t MaxRepresentable = static_cast<uint64_t>(MaxMantissa)
+ << MaxExponent;
+
+ if (TestCase >= MaxRepresentable) {
+ EXPECT_EQ(Decoded, MaxRepresentable);
+ } else if (TestCase == 0) {
----------------
snehasish wrote:
Done.
https://github.com/llvm/llvm-project/pull/147854
More information about the llvm-commits
mailing list