[tint] Add u64 support to the type manager
Bug: 394291739
Change-Id: I2ed6fed68766dc641bf55923cf19a59cd6048e8d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/224596
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
diff --git a/src/tint/lang/core/type/manager.cc b/src/tint/lang/core/type/manager.cc
index 229e271..03eba32 100644
--- a/src/tint/lang/core/type/manager.cc
+++ b/src/tint/lang/core/type/manager.cc
@@ -45,6 +45,7 @@
#include "src/tint/lang/core/type/storage_texture.h"
#include "src/tint/lang/core/type/type.h"
#include "src/tint/lang/core/type/u32.h"
+#include "src/tint/lang/core/type/u64.h"
#include "src/tint/lang/core/type/u8.h"
#include "src/tint/lang/core/type/vector.h"
#include "src/tint/lang/core/type/void.h"
@@ -92,6 +93,10 @@
return Get<core::type::U32>();
}
+const core::type::U64* Manager::u64() {
+ return Get<core::type::U64>();
+}
+
const core::type::F32* Manager::f32() {
return Get<core::type::F32>();
}
diff --git a/src/tint/lang/core/type/manager.h b/src/tint/lang/core/type/manager.h
index 3a4eb9e..37a1ccf 100644
--- a/src/tint/lang/core/type/manager.h
+++ b/src/tint/lang/core/type/manager.h
@@ -63,6 +63,7 @@
class StorageTexture;
class U8;
class U32;
+class U64;
class Vector;
class Void;
} // namespace tint::core::type
@@ -150,6 +151,8 @@
return Get<core::type::U8>(std::forward<ARGS>(args)...);
} else if constexpr (std::is_same_v<T, tint::core::u32>) {
return Get<core::type::U32>(std::forward<ARGS>(args)...);
+ } else if constexpr (std::is_same_v<T, tint::core::u64>) {
+ return Get<core::type::U64>(std::forward<ARGS>(args)...);
} else if constexpr (std::is_same_v<T, tint::core::f32>) {
return Get<core::type::F32>(std::forward<ARGS>(args)...);
} else if constexpr (std::is_same_v<T, tint::core::f16>) {
@@ -211,6 +214,9 @@
/// @returns a u32 type
const core::type::U32* u32();
+ /// @returns a u64 type
+ const core::type::U64* u64();
+
/// @returns an f32 type
const core::type::F32* f32();
diff --git a/src/tint/lang/core/type/manager_test.cc b/src/tint/lang/core/type/manager_test.cc
index 437e6f5..537fca7 100644
--- a/src/tint/lang/core/type/manager_test.cc
+++ b/src/tint/lang/core/type/manager_test.cc
@@ -36,6 +36,7 @@
#include "src/tint/lang/core/type/i8.h"
#include "src/tint/lang/core/type/matrix.h"
#include "src/tint/lang/core/type/u32.h"
+#include "src/tint/lang/core/type/u64.h"
#include "src/tint/lang/core/type/u8.h"
namespace tint::core::type {
@@ -102,6 +103,10 @@
const Type* u32_2 = tm.Get<U32>();
ASSERT_EQ(u32_1, u32_2);
+ const Type* u64_1 = tm.Get<u64>();
+ const Type* u64_2 = tm.Get<U64>();
+ ASSERT_EQ(u64_1, u64_2);
+
const Type* u8_1 = tm.Get<u8>();
const Type* u8_2 = tm.Get<U8>();
ASSERT_EQ(u8_1, u8_2);