From d92b5fc435b5444314fc1ce407a908ba0222f318 Mon Sep 17 00:00:00 2001
From: Morph <39850852+Morph1984@users.noreply.github.com>
Date: Mon, 10 Jan 2022 19:44:19 -0500
Subject: [PATCH] common: bit_util: Add IsPow2 helper function

Makes use of std::has_single_bit() to check whether the value is a power of 2.
---
 src/common/bit_util.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/common/bit_util.h b/src/common/bit_util.h
index eef8c1c5a7..f50d3308a9 100644
--- a/src/common/bit_util.h
+++ b/src/common/bit_util.h
@@ -45,6 +45,12 @@ template <typename T>
     return static_cast<u32>(log2_f + static_cast<u64>((value ^ (1ULL << log2_f)) != 0ULL));
 }
 
+template <typename T>
+requires std::is_unsigned_v<T>
+[[nodiscard]] constexpr bool IsPow2(T value) {
+    return std::has_single_bit(value);
+}
+
 template <typename T>
 requires std::is_integral_v<T>
 [[nodiscard]] T NextPow2(T value) {