mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 22:29:39 -06:00
Replace Common::BitCast with std::bit_cast
This commit is contained in:
@ -1,9 +1,10 @@
|
||||
// Copyright 2023 Dolphin Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <bit>
|
||||
|
||||
#include "Common/Arm64Emitter.h"
|
||||
#include "Common/BitSet.h"
|
||||
#include "Common/BitUtils.h"
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
@ -62,7 +63,7 @@ public:
|
||||
|
||||
void Run()
|
||||
{
|
||||
const u64 actual = Common::BitCast<u64 (*)()>(m_code_pointer)();
|
||||
const u64 actual = std::bit_cast<u64 (*)()>(m_code_pointer)();
|
||||
constexpr u64 expected = 123;
|
||||
EXPECT_EQ(expected, actual);
|
||||
}
|
||||
|
@ -88,16 +88,3 @@ TEST(BitUtils, IsValidLowMask)
|
||||
EXPECT_FALSE(Common::IsValidLowMask((u64) ~(0b10000)));
|
||||
EXPECT_FALSE(Common::IsValidLowMask((u64)(~((u64)(~0b0) >> 1) | 0b1111)));
|
||||
}
|
||||
|
||||
TEST(BitUtils, BitCast)
|
||||
{
|
||||
EXPECT_EQ(0x00000000U, Common::BitCast<u32>(0.0f));
|
||||
EXPECT_EQ(0x80000000U, Common::BitCast<u32>(-0.0f));
|
||||
EXPECT_EQ(0x3F800000U, Common::BitCast<u32>(1.0f));
|
||||
EXPECT_EQ(0xBF800000U, Common::BitCast<u32>(-1.0f));
|
||||
|
||||
EXPECT_EQ(0x0000000000000000ULL, Common::BitCast<u64>(0.0));
|
||||
EXPECT_EQ(0x8000000000000000ULL, Common::BitCast<u64>(-0.0));
|
||||
EXPECT_EQ(0x3FF0000000000000ULL, Common::BitCast<u64>(1.0));
|
||||
EXPECT_EQ(0xBFF0000000000000ULL, Common::BitCast<u64>(-1.0));
|
||||
}
|
||||
|
@ -2,12 +2,12 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <array>
|
||||
#include <bit>
|
||||
#include <limits>
|
||||
#include <random>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "Common/BitUtils.h"
|
||||
#include "Common/FloatUtils.h"
|
||||
|
||||
#include "../Core/PowerPC/TestValues.h"
|
||||
@ -53,16 +53,16 @@ TEST(FloatUtils, FlushToZero)
|
||||
for (u32 i = 0; i <= 0x007fffffu; ++i)
|
||||
{
|
||||
u32 i_tmp = i;
|
||||
EXPECT_EQ(+0.f, Common::FlushToZero(Common::BitCast<float>(i_tmp)));
|
||||
EXPECT_EQ(+0.f, Common::FlushToZero(std::bit_cast<float>(i_tmp)));
|
||||
|
||||
i_tmp |= 0x80000000u;
|
||||
EXPECT_EQ(-0.f, Common::FlushToZero(Common::BitCast<float>(i_tmp)));
|
||||
EXPECT_EQ(-0.f, Common::FlushToZero(std::bit_cast<float>(i_tmp)));
|
||||
|
||||
i_tmp = dist(engine);
|
||||
EXPECT_EQ(i_tmp, Common::BitCast<u32>(Common::FlushToZero(Common::BitCast<float>(i_tmp))));
|
||||
EXPECT_EQ(i_tmp, std::bit_cast<u32>(Common::FlushToZero(std::bit_cast<float>(i_tmp))));
|
||||
|
||||
i_tmp |= 0x80000000u;
|
||||
EXPECT_EQ(i_tmp, Common::BitCast<u32>(Common::FlushToZero(Common::BitCast<float>(i_tmp))));
|
||||
EXPECT_EQ(i_tmp, std::bit_cast<u32>(Common::FlushToZero(std::bit_cast<float>(i_tmp))));
|
||||
}
|
||||
}
|
||||
|
||||
@ -88,11 +88,11 @@ TEST(FloatUtils, ApproximateReciprocalSquareRoot)
|
||||
for (size_t i = 0; i < double_test_values.size(); ++i)
|
||||
{
|
||||
u64 ivalue = double_test_values[i];
|
||||
double dvalue = Common::BitCast<double>(ivalue);
|
||||
double dvalue = std::bit_cast<double>(ivalue);
|
||||
|
||||
u64 expected = expected_values[i];
|
||||
|
||||
u64 actual = Common::BitCast<u64>(Common::ApproximateReciprocalSquareRoot(dvalue));
|
||||
u64 actual = std::bit_cast<u64>(Common::ApproximateReciprocalSquareRoot(dvalue));
|
||||
|
||||
EXPECT_EQ(expected, actual);
|
||||
}
|
||||
|
Reference in New Issue
Block a user