[dawn] Replace `dawn::BitCast` with C++20 `std::bit_cast`
Bug: 343500108
Change-Id: I2ffa0114ab9975c7c696853bd73f5d233ef9011c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/245035
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn/common/Math.cpp b/src/dawn/common/Math.cpp
index f9d86b7..c896cce 100644
--- a/src/dawn/common/Math.cpp
+++ b/src/dawn/common/Math.cpp
@@ -74,7 +74,7 @@
}
uint16_t Float32ToFloat16(float fp32) {
- uint32_t fp32i = BitCast<uint32_t>(fp32);
+ uint32_t fp32i = std::bit_cast<uint32_t>(fp32);
uint32_t sign16 = (fp32i & 0x80000000) >> 16;
uint32_t mantissaAndExponent = fp32i & 0x7FFFFFFF;
diff --git a/src/dawn/common/Math.h b/src/dawn/common/Math.h
index 8766e7e..1673703 100644
--- a/src/dawn/common/Math.h
+++ b/src/dawn/common/Math.h
@@ -131,14 +131,6 @@
~(alignment - 1));
}
-template <typename destType, typename sourceType>
-destType BitCast(const sourceType& source) {
- static_assert(sizeof(destType) == sizeof(sourceType), "BitCast: cannot lose precision.");
- destType output;
- std::memcpy(&output, &source, sizeof(destType));
- return output;
-}
-
uint16_t Float32ToFloat16(float fp32);
float Float16ToFloat32(uint16_t fp16);
bool IsFloat16NaN(uint16_t fp16);