tint: Add matrix short names
Fixed: tint:1786
Change-Id: Ifa3acb2fc1792b392ccb4555bde840f5038eef2c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/114141
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
diff --git a/src/tint/intrinsics.def b/src/tint/intrinsics.def
index db2dd09..2f6467e 100644
--- a/src/tint/intrinsics.def
+++ b/src/tint/intrinsics.def
@@ -111,8 +111,27 @@
sample
}
-// https://www.w3.org/TR/WGSL/#vector-types
enum short_name {
+ // https://www.w3.org/TR/WGSL/#matrix-types
+ mat2x2f
+ mat2x2h
+ mat2x3f
+ mat2x3h
+ mat2x4f
+ mat2x4h
+ mat3x2f
+ mat3x2h
+ mat3x3f
+ mat3x3h
+ mat3x4f
+ mat3x4h
+ mat4x2f
+ mat4x2h
+ mat4x3f
+ mat4x3h
+ mat4x4f
+ mat4x4h
+ // https://www.w3.org/TR/WGSL/#vector-types
vec2f
vec2h
vec2i
diff --git a/src/tint/resolver/f16_extension_test.cc b/src/tint/resolver/f16_extension_test.cc
index 9161410..4bcf6cc 100644
--- a/src/tint/resolver/f16_extension_test.cc
+++ b/src/tint/resolver/f16_extension_test.cc
@@ -138,7 +138,18 @@
INSTANTIATE_TEST_SUITE_P(ResolverF16ExtensionShortNameTest,
ResolverF16ExtensionShortNameTest,
- testing::Values("vec2h", "vec3h", "vec4h"));
+ testing::Values("mat2x2h",
+ "mat2x3h",
+ "mat2x4h",
+ "mat3x2h",
+ "mat3x3h",
+ "mat3x4h",
+ "mat4x2h",
+ "mat4x3h",
+ "mat4x4h",
+ "vec2h",
+ "vec3h",
+ "vec4h"));
} // namespace
} // namespace tint::resolver
diff --git a/src/tint/resolver/resolver.cc b/src/tint/resolver/resolver.cc
index 5087472..7811e15 100644
--- a/src/tint/resolver/resolver.cc
+++ b/src/tint/resolver/resolver.cc
@@ -2387,25 +2387,67 @@
type::Type* Resolver::ShortName(Symbol sym, const Source& source) const {
auto name = builder_->Symbols().NameFor(sym);
auto& b = *builder_;
+ auto vec_f32 = [&](uint32_t n) { return b.create<type::Vector>(b.create<type::F32>(), n); };
+ auto vec_f16 = [&](uint32_t n) { return b.create<type::Vector>(b.create<type::F16>(), n); };
+
switch (type::ParseShortName(name)) {
+ case type::ShortName::kMat2X2F:
+ return b.create<type::Matrix>(vec_f32(2u), 2u);
+ case type::ShortName::kMat2X3F:
+ return b.create<type::Matrix>(vec_f32(3u), 2u);
+ case type::ShortName::kMat2X4F:
+ return b.create<type::Matrix>(vec_f32(4u), 2u);
+ case type::ShortName::kMat3X2F:
+ return b.create<type::Matrix>(vec_f32(2u), 3u);
+ case type::ShortName::kMat3X3F:
+ return b.create<type::Matrix>(vec_f32(3u), 3u);
+ case type::ShortName::kMat3X4F:
+ return b.create<type::Matrix>(vec_f32(4u), 3u);
+ case type::ShortName::kMat4X2F:
+ return b.create<type::Matrix>(vec_f32(2u), 4u);
+ case type::ShortName::kMat4X3F:
+ return b.create<type::Matrix>(vec_f32(3u), 4u);
+ case type::ShortName::kMat4X4F:
+ return b.create<type::Matrix>(vec_f32(4u), 4u);
+ case type::ShortName::kMat2X2H:
+ return validator_.CheckF16Enabled(source) ? b.create<type::Matrix>(vec_f16(2u), 2u)
+ : nullptr;
+ case type::ShortName::kMat2X3H:
+ return validator_.CheckF16Enabled(source) ? b.create<type::Matrix>(vec_f16(3u), 2u)
+ : nullptr;
+ case type::ShortName::kMat2X4H:
+ return validator_.CheckF16Enabled(source) ? b.create<type::Matrix>(vec_f16(4u), 2u)
+ : nullptr;
+ case type::ShortName::kMat3X2H:
+ return validator_.CheckF16Enabled(source) ? b.create<type::Matrix>(vec_f16(2u), 3u)
+ : nullptr;
+ case type::ShortName::kMat3X3H:
+ return validator_.CheckF16Enabled(source) ? b.create<type::Matrix>(vec_f16(3u), 3u)
+ : nullptr;
+ case type::ShortName::kMat3X4H:
+ return validator_.CheckF16Enabled(source) ? b.create<type::Matrix>(vec_f16(4u), 3u)
+ : nullptr;
+ case type::ShortName::kMat4X2H:
+ return validator_.CheckF16Enabled(source) ? b.create<type::Matrix>(vec_f16(2u), 4u)
+ : nullptr;
+ case type::ShortName::kMat4X3H:
+ return validator_.CheckF16Enabled(source) ? b.create<type::Matrix>(vec_f16(3u), 4u)
+ : nullptr;
+ case type::ShortName::kMat4X4H:
+ return validator_.CheckF16Enabled(source) ? b.create<type::Matrix>(vec_f16(4u), 4u)
+ : nullptr;
case type::ShortName::kVec2F:
- return b.create<type::Vector>(b.create<type::F32>(), 2u);
+ return vec_f32(2u);
case type::ShortName::kVec3F:
- return b.create<type::Vector>(b.create<type::F32>(), 3u);
+ return vec_f32(3u);
case type::ShortName::kVec4F:
- return b.create<type::Vector>(b.create<type::F32>(), 4u);
+ return vec_f32(4u);
case type::ShortName::kVec2H:
- return validator_.CheckF16Enabled(source)
- ? b.create<type::Vector>(b.create<type::F16>(), 2u)
- : nullptr;
+ return validator_.CheckF16Enabled(source) ? vec_f16(2u) : nullptr;
case type::ShortName::kVec3H:
- return validator_.CheckF16Enabled(source)
- ? b.create<type::Vector>(b.create<type::F16>(), 3u)
- : nullptr;
+ return validator_.CheckF16Enabled(source) ? vec_f16(3u) : nullptr;
case type::ShortName::kVec4H:
- return validator_.CheckF16Enabled(source)
- ? b.create<type::Vector>(b.create<type::F16>(), 4u)
- : nullptr;
+ return validator_.CheckF16Enabled(source) ? vec_f16(4u) : nullptr;
case type::ShortName::kVec2I:
return b.create<type::Vector>(b.create<type::I32>(), 2u);
case type::ShortName::kVec3I:
diff --git a/src/tint/resolver/resolver_test_helper.h b/src/tint/resolver/resolver_test_helper.h
index 12d8fe3..2515a02 100644
--- a/src/tint/resolver/resolver_test_helper.h
+++ b/src/tint/resolver/resolver_test_helper.h
@@ -149,16 +149,22 @@
using mat2x3 = mat<2, 3, T>;
template <typename T>
+using mat2x4 = mat<2, 4, T>;
+
+template <typename T>
using mat3x2 = mat<3, 2, T>;
template <typename T>
-using mat2x4 = mat<2, 4, T>;
+using mat3x3 = mat<3, 3, T>;
+
+template <typename T>
+using mat3x4 = mat<3, 4, T>;
template <typename T>
using mat4x2 = mat<4, 2, T>;
template <typename T>
-using mat3x3 = mat<3, 3, T>;
+using mat4x3 = mat<4, 3, T>;
template <typename T>
using mat4x4 = mat<4, 4, T>;
diff --git a/src/tint/resolver/type_validation_test.cc b/src/tint/resolver/type_validation_test.cc
index ed6fa82..c3c9119 100644
--- a/src/tint/resolver/type_validation_test.cc
+++ b/src/tint/resolver/type_validation_test.cc
@@ -39,8 +39,20 @@
template <typename T>
using mat2x2 = builder::mat2x2<T>;
template <typename T>
+using mat2x3 = builder::mat2x3<T>;
+template <typename T>
+using mat2x4 = builder::mat2x4<T>;
+template <typename T>
+using mat3x2 = builder::mat3x2<T>;
+template <typename T>
using mat3x3 = builder::mat3x3<T>;
template <typename T>
+using mat3x4 = builder::mat3x4<T>;
+template <typename T>
+using mat4x2 = builder::mat4x2<T>;
+template <typename T>
+using mat4x3 = builder::mat4x3<T>;
+template <typename T>
using mat4x4 = builder::mat4x4<T>;
template <int N, typename T>
using array = builder::array<N, T>;
@@ -1241,6 +1253,7 @@
using ValidMatrixTypes = ResolverTestWithParam<Params>;
TEST_P(ValidMatrixTypes, Okay) {
+ // enable f16;
// var a : matNxM<EL_TY>;
auto& params = GetParam();
@@ -1279,6 +1292,7 @@
using InvalidMatrixElementTypes = ResolverTestWithParam<Params>;
TEST_P(InvalidMatrixElementTypes, InvalidElementType) {
+ // enable f16;
// var a : matNxM<EL_TY>;
auto& params = GetParam();
@@ -1321,6 +1335,7 @@
using ValidVectorTypes = ResolverTestWithParam<Params>;
TEST_P(ValidVectorTypes, Okay) {
+ // enable f16;
// var a : vecN<EL_TY>;
auto& params = GetParam();
@@ -1354,6 +1369,7 @@
using InvalidVectorElementTypes = ResolverTestWithParam<Params>;
TEST_P(InvalidVectorElementTypes, InvalidElementType) {
+ // enable f16;
// var a : vecN<EL_TY>;
auto& params = GetParam();
@@ -1390,6 +1406,7 @@
using BuiltinTypeAliasTest = ResolverTestWithParam<Params>;
TEST_P(BuiltinTypeAliasTest, CheckEquivalent) {
+ // enable f16;
// var aliased : vecTN;
// var explicit : vecN<T>;
// explicit = aliased;
@@ -1403,6 +1420,7 @@
EXPECT_TRUE(r()->Resolve()) << r()->error();
}
TEST_P(BuiltinTypeAliasTest, Construct) {
+ // enable f16;
// var v : vecN<T> = vecTN();
auto& params = GetParam();
@@ -1413,7 +1431,25 @@
}
INSTANTIATE_TEST_SUITE_P(ResolverTypeValidationTest,
BuiltinTypeAliasTest,
- testing::Values(Case<vec2<f32>>("vec2f"),
+ testing::Values(Case<mat2x2<f32>>("mat2x2f"),
+ Case<mat2x3<f32>>("mat2x3f"),
+ Case<mat2x4<f32>>("mat2x4f"),
+ Case<mat3x2<f32>>("mat3x2f"),
+ Case<mat3x3<f32>>("mat3x3f"),
+ Case<mat3x4<f32>>("mat3x4f"),
+ Case<mat4x2<f32>>("mat4x2f"),
+ Case<mat4x3<f32>>("mat4x3f"),
+ Case<mat4x4<f32>>("mat4x4f"),
+ Case<mat2x2<f16>>("mat2x2h"),
+ Case<mat2x3<f16>>("mat2x3h"),
+ Case<mat2x4<f16>>("mat2x4h"),
+ Case<mat3x2<f16>>("mat3x2h"),
+ Case<mat3x3<f16>>("mat3x3h"),
+ Case<mat3x4<f16>>("mat3x4h"),
+ Case<mat4x2<f16>>("mat4x2h"),
+ Case<mat4x3<f16>>("mat4x3h"),
+ Case<mat4x4<f16>>("mat4x4h"),
+ Case<vec2<f32>>("vec2f"),
Case<vec3<f32>>("vec3f"),
Case<vec4<f32>>("vec4f"),
Case<vec2<f16>>("vec2h"),
diff --git a/src/tint/transform/renamer_test.cc b/src/tint/transform/renamer_test.cc
index 18ee40c..635bf4e 100644
--- a/src/tint/transform/renamer_test.cc
+++ b/src/tint/transform/renamer_test.cc
@@ -1459,6 +1459,60 @@
kUnicodeIdentifier));
const char* ExpandShortName(std::string_view name) {
+ if (name == "mat2x2f") {
+ return "mat2x2<f32>";
+ }
+ if (name == "mat2x2h") {
+ return "mat2x2<f16>";
+ }
+ if (name == "mat2x3f") {
+ return "mat2x3<f32>";
+ }
+ if (name == "mat2x3h") {
+ return "mat2x3<f16>";
+ }
+ if (name == "mat2x4f") {
+ return "mat2x4<f32>";
+ }
+ if (name == "mat2x4h") {
+ return "mat2x4<f16>";
+ }
+ if (name == "mat3x2f") {
+ return "mat3x2<f32>";
+ }
+ if (name == "mat3x2h") {
+ return "mat3x2<f16>";
+ }
+ if (name == "mat3x3f") {
+ return "mat3x3<f32>";
+ }
+ if (name == "mat3x3h") {
+ return "mat3x3<f16>";
+ }
+ if (name == "mat3x4f") {
+ return "mat3x4<f32>";
+ }
+ if (name == "mat3x4h") {
+ return "mat3x4<f16>";
+ }
+ if (name == "mat4x2f") {
+ return "mat4x2<f32>";
+ }
+ if (name == "mat4x2h") {
+ return "mat4x2<f16>";
+ }
+ if (name == "mat4x3f") {
+ return "mat4x3<f32>";
+ }
+ if (name == "mat4x3h") {
+ return "mat4x3<f16>";
+ }
+ if (name == "mat4x4f") {
+ return "mat4x4<f32>";
+ }
+ if (name == "mat4x4h") {
+ return "mat4x4<f16>";
+ }
if (name == "vec2f") {
return "vec2<f32>";
}
diff --git a/src/tint/type/short_name.cc b/src/tint/type/short_name.cc
index 1e84627..59e1e0e 100644
--- a/src/tint/type/short_name.cc
+++ b/src/tint/type/short_name.cc
@@ -28,6 +28,60 @@
/// @param str the string to parse
/// @returns the parsed enum, or ShortName::kUndefined if the string could not be parsed.
ShortName ParseShortName(std::string_view str) {
+ if (str == "mat2x2f") {
+ return ShortName::kMat2X2F;
+ }
+ if (str == "mat2x2h") {
+ return ShortName::kMat2X2H;
+ }
+ if (str == "mat2x3f") {
+ return ShortName::kMat2X3F;
+ }
+ if (str == "mat2x3h") {
+ return ShortName::kMat2X3H;
+ }
+ if (str == "mat2x4f") {
+ return ShortName::kMat2X4F;
+ }
+ if (str == "mat2x4h") {
+ return ShortName::kMat2X4H;
+ }
+ if (str == "mat3x2f") {
+ return ShortName::kMat3X2F;
+ }
+ if (str == "mat3x2h") {
+ return ShortName::kMat3X2H;
+ }
+ if (str == "mat3x3f") {
+ return ShortName::kMat3X3F;
+ }
+ if (str == "mat3x3h") {
+ return ShortName::kMat3X3H;
+ }
+ if (str == "mat3x4f") {
+ return ShortName::kMat3X4F;
+ }
+ if (str == "mat3x4h") {
+ return ShortName::kMat3X4H;
+ }
+ if (str == "mat4x2f") {
+ return ShortName::kMat4X2F;
+ }
+ if (str == "mat4x2h") {
+ return ShortName::kMat4X2H;
+ }
+ if (str == "mat4x3f") {
+ return ShortName::kMat4X3F;
+ }
+ if (str == "mat4x3h") {
+ return ShortName::kMat4X3H;
+ }
+ if (str == "mat4x4f") {
+ return ShortName::kMat4X4F;
+ }
+ if (str == "mat4x4h") {
+ return ShortName::kMat4X4H;
+ }
if (str == "vec2f") {
return ShortName::kVec2F;
}
@@ -71,6 +125,42 @@
switch (value) {
case ShortName::kUndefined:
return out << "undefined";
+ case ShortName::kMat2X2F:
+ return out << "mat2x2f";
+ case ShortName::kMat2X2H:
+ return out << "mat2x2h";
+ case ShortName::kMat2X3F:
+ return out << "mat2x3f";
+ case ShortName::kMat2X3H:
+ return out << "mat2x3h";
+ case ShortName::kMat2X4F:
+ return out << "mat2x4f";
+ case ShortName::kMat2X4H:
+ return out << "mat2x4h";
+ case ShortName::kMat3X2F:
+ return out << "mat3x2f";
+ case ShortName::kMat3X2H:
+ return out << "mat3x2h";
+ case ShortName::kMat3X3F:
+ return out << "mat3x3f";
+ case ShortName::kMat3X3H:
+ return out << "mat3x3h";
+ case ShortName::kMat3X4F:
+ return out << "mat3x4f";
+ case ShortName::kMat3X4H:
+ return out << "mat3x4h";
+ case ShortName::kMat4X2F:
+ return out << "mat4x2f";
+ case ShortName::kMat4X2H:
+ return out << "mat4x2h";
+ case ShortName::kMat4X3F:
+ return out << "mat4x3f";
+ case ShortName::kMat4X3H:
+ return out << "mat4x3h";
+ case ShortName::kMat4X4F:
+ return out << "mat4x4f";
+ case ShortName::kMat4X4H:
+ return out << "mat4x4h";
case ShortName::kVec2F:
return out << "vec2f";
case ShortName::kVec2H:
diff --git a/src/tint/type/short_name.h b/src/tint/type/short_name.h
index 8b3148f..5c6841f 100644
--- a/src/tint/type/short_name.h
+++ b/src/tint/type/short_name.h
@@ -30,6 +30,24 @@
/// An enumerator of builtin type aliases.
enum class ShortName {
kUndefined,
+ kMat2X2F,
+ kMat2X2H,
+ kMat2X3F,
+ kMat2X3H,
+ kMat2X4F,
+ kMat2X4H,
+ kMat3X2F,
+ kMat3X2H,
+ kMat3X3F,
+ kMat3X3H,
+ kMat3X4F,
+ kMat3X4H,
+ kMat4X2F,
+ kMat4X2H,
+ kMat4X3F,
+ kMat4X3H,
+ kMat4X4F,
+ kMat4X4H,
kVec2F,
kVec2H,
kVec2I,
@@ -55,8 +73,10 @@
ShortName ParseShortName(std::string_view str);
constexpr const char* kShortNameStrings[] = {
- "vec2f", "vec2h", "vec2i", "vec2u", "vec3f", "vec3h",
- "vec3i", "vec3u", "vec4f", "vec4h", "vec4i", "vec4u",
+ "mat2x2f", "mat2x2h", "mat2x3f", "mat2x3h", "mat2x4f", "mat2x4h", "mat3x2f", "mat3x2h",
+ "mat3x3f", "mat3x3h", "mat3x4f", "mat3x4h", "mat4x2f", "mat4x2h", "mat4x3f", "mat4x3h",
+ "mat4x4f", "mat4x4h", "vec2f", "vec2h", "vec2i", "vec2u", "vec3f", "vec3h",
+ "vec3i", "vec3u", "vec4f", "vec4h", "vec4i", "vec4u",
};
} // namespace tint::type
diff --git a/src/tint/type/short_name_bench.cc b/src/tint/type/short_name_bench.cc
index 93e3551..0d5017b 100644
--- a/src/tint/type/short_name_bench.cc
+++ b/src/tint/type/short_name_bench.cc
@@ -31,17 +31,41 @@
void ShortNameParser(::benchmark::State& state) {
std::array kStrings{
- "veccf", "32", "vVc2f", "vec2f", "vec21", "qqeJf", "vecll7f", "veqH2pp",
- "vh", "Gebh", "vec2h", "vevi2h", "ve8WWh", "Mxxc2", "vgg2i", "V2X",
- "vec23", "vec2i", "vec2E", "TTeP2i", "vxxcdd", "v44c2u", "veVVSSu", "22RRu",
- "vec2u", "vF2u", "vecu", "ROOHVu", "ecyf", "n77rrlcGf", "vec340", "vec3f",
- "oof", "vezz", "1ipp3f", "XXec3h", "ve9IInn5h", "HHreSSaYh", "vec3h", "kk3",
- "jgRR", "veb", "vjc3i", "vc3i", "vcq", "vec3i", "Nec3i", "vcvv",
- "ve3QQ", "vrcf", "vecju", "NNew23", "vec3u", "ve3u", "vrrc3u", "Gec3u",
- "veFF4f", "vE", "verrf", "vec4f", "vef", "veJJD", "v4", "e4k",
- "vech", "Jech", "vec4h", "ec4h", "_KKttcH", "vexxh", "__qcF", "vc4qq",
- "33e64i", "vec4i", "6QQott4i", "v6c4i", "zzc4O6", "vyyc4u", "vcZZ", "ecWq4u",
- "vec4u", "vOO4u", "oYe4", "v4",
+ "at2x2cc", "l23f", "matVx2f", "mat2x2f", "mat212f", "mqtJx2f",
+ "mat2x27ll", "ppqqt22HH", "macv", "bt2xGh", "mat2x2h", "mat2iivh",
+ "8WWt2x2h", "mxx2x2h", "mX2x3gg", "a2xXf", "mat233f", "mat2x3f",
+ "Eat2x3f", "mPTT2x3f", "mat2xdxx", "m44t2x3h", "maSS2xVVh", "RatR22h",
+ "mat2x3h", "mF2x9h", "matx3h", "VOORRH3h", "ma2xyf", "llnarr2774f",
+ "mat24400", "mat2x4f", "a2oof", "zz2x4f", "miitppx1", "mat2xXXh",
+ "9II5ann2x4h", "mataSSrHHYh", "mat2x4h", "makkh", "jatgRx", "mb2x4",
+ "mat3xjf", "at3x2f", "q3x2f", "mat3x2f", "matNN2f", "at32vv",
+ "QQt3x2f", "maffxr", "mat3xjh", "mNNw3x28", "mat3x2h", "matx2h",
+ "mrrt3x2h", "Gat3x2h", "mat3x3FF", "at3f", "marrx3f", "mat3x3f",
+ "t3x3f", "Da3xJJf", "ma83", "m11k3", "matx3h", "maJx3h",
+ "mat3x3h", "mat3c3h", "mat3x3O", "KK_atvvtt3h", "xx83x4f", "__qatF4",
+ "matqx4f", "mat3x4f", "33atOx4f", "mtt63x9oQQ", "ma3x66f", "mtOxzz66",
+ "mat3yy4h", "ZaHH4Z", "mat3x4h", "4WWt3q4h", "mOO3x4h", "oatY4h",
+ "matx", "ma4xFf", "at4x2w", "mat4x2f", "fGtxKf", "matqKx2f",
+ "matmmxFf", "at4x2h", "mt4x2q", "mat4xbb", "mat4x2h", "mi4x2h",
+ "maOO4xq", "matTvvx2h", "maFF4x3f", "Pa00xQf", "mPt4x3f", "mat4x3f",
+ "ma774xss", "RRCbb4x3f", "mXXt4x3f", "qaCC4xOOh", "ma4s3L", "mXt4x3h",
+ "mat4x3h", "mat43h", "qa4O3", "mat4x22h", "myzz40XX", "matVViP",
+ "mannC4f", "mat4x4f", "atx4AHHq", "mat4x4", "fatK4f", "ltgg4h",
+ "mat4xh", "NTTtcx4h", "mat4x4h", "ma7ppl4h", "mNNt4xg", "uub4XX4h",
+ "vec2", "882K", "vq9f", "vec2f", "vec211", "22ciif",
+ "ec77f", "NN22h", "vVVc2h", "WW11w2h", "vec2h", "vcwwh",
+ "vDc2h", "vecK", "f11r2PP", "ve2i", "vec2YY", "vec2i",
+ "vkktHH", "rrec2i", "vWWssi", "veYu", "eq2f", "u22ec2u",
+ "vec2u", "c2u", "vec2", "vYyc27E", "veMof", "ve3MM",
+ "55ec3f", "vec3f", "N3f", "ve33f", "3ec3f", "mecI",
+ "vrnK3h", "v3", "vec3h", "ILLch", "ecf", "UecRY",
+ "vechi", "qeIIu", "Hec3i", "vec3i", "eQQvv", "e66i",
+ "7Wc3", "ve055DD", "IIec3u", "vec3", "vec3u", "rec3",
+ "lec3u", "GeJ3u", "ey4f", "vc4f", "IIeBB4f", "vec4f",
+ "TTec338", "veUUSS4nnd", "vZx5CC", "kkec4q", "v005ih", "vnIIc4h",
+ "vec4h", "cceW", "cKK", "vec66h", "vePPK", "vexxi",
+ "qec4i", "vec4i", "veSyMMr", "v4u", "ec", "5eFF4u",
+ "rrecz44", "vWW", "vec4u", "XJecCZZ", "vePP4", "vec4c",
};
for (auto _ : state) {
for (auto& str : kStrings) {
diff --git a/src/tint/type/short_name_test.cc b/src/tint/type/short_name_test.cc
index 6be0076..13941a6 100644
--- a/src/tint/type/short_name_test.cc
+++ b/src/tint/type/short_name_test.cc
@@ -43,31 +43,69 @@
}
static constexpr Case kValidCases[] = {
- {"vec2f", ShortName::kVec2F}, {"vec2h", ShortName::kVec2H}, {"vec2i", ShortName::kVec2I},
- {"vec2u", ShortName::kVec2U}, {"vec3f", ShortName::kVec3F}, {"vec3h", ShortName::kVec3H},
- {"vec3i", ShortName::kVec3I}, {"vec3u", ShortName::kVec3U}, {"vec4f", ShortName::kVec4F},
- {"vec4h", ShortName::kVec4H}, {"vec4i", ShortName::kVec4I}, {"vec4u", ShortName::kVec4U},
+ {"mat2x2f", ShortName::kMat2X2F}, {"mat2x2h", ShortName::kMat2X2H},
+ {"mat2x3f", ShortName::kMat2X3F}, {"mat2x3h", ShortName::kMat2X3H},
+ {"mat2x4f", ShortName::kMat2X4F}, {"mat2x4h", ShortName::kMat2X4H},
+ {"mat3x2f", ShortName::kMat3X2F}, {"mat3x2h", ShortName::kMat3X2H},
+ {"mat3x3f", ShortName::kMat3X3F}, {"mat3x3h", ShortName::kMat3X3H},
+ {"mat3x4f", ShortName::kMat3X4F}, {"mat3x4h", ShortName::kMat3X4H},
+ {"mat4x2f", ShortName::kMat4X2F}, {"mat4x2h", ShortName::kMat4X2H},
+ {"mat4x3f", ShortName::kMat4X3F}, {"mat4x3h", ShortName::kMat4X3H},
+ {"mat4x4f", ShortName::kMat4X4F}, {"mat4x4h", ShortName::kMat4X4H},
+ {"vec2f", ShortName::kVec2F}, {"vec2h", ShortName::kVec2H},
+ {"vec2i", ShortName::kVec2I}, {"vec2u", ShortName::kVec2U},
+ {"vec3f", ShortName::kVec3F}, {"vec3h", ShortName::kVec3H},
+ {"vec3i", ShortName::kVec3I}, {"vec3u", ShortName::kVec3U},
+ {"vec4f", ShortName::kVec4F}, {"vec4h", ShortName::kVec4H},
+ {"vec4i", ShortName::kVec4I}, {"vec4u", ShortName::kVec4U},
};
static constexpr Case kInvalidCases[] = {
- {"veccf", ShortName::kUndefined}, {"32", ShortName::kUndefined},
- {"vVc2f", ShortName::kUndefined}, {"vec21", ShortName::kUndefined},
- {"qqeJh", ShortName::kUndefined}, {"vecll7h", ShortName::kUndefined},
- {"veqH2pp", ShortName::kUndefined}, {"vi", ShortName::kUndefined},
- {"Gebi", ShortName::kUndefined}, {"vevi2u", ShortName::kUndefined},
- {"ve8WWu", ShortName::kUndefined}, {"Mxxc2", ShortName::kUndefined},
- {"vgg3f", ShortName::kUndefined}, {"V3X", ShortName::kUndefined},
- {"vec33", ShortName::kUndefined}, {"vec3E", ShortName::kUndefined},
- {"TTeP3h", ShortName::kUndefined}, {"vxxcdd", ShortName::kUndefined},
- {"v44c3i", ShortName::kUndefined}, {"veVVSSi", ShortName::kUndefined},
- {"22RRi", ShortName::kUndefined}, {"vF3u", ShortName::kUndefined},
- {"vecu", ShortName::kUndefined}, {"ROOHVu", ShortName::kUndefined},
- {"ecyf", ShortName::kUndefined}, {"n77rrlcGf", ShortName::kUndefined},
- {"vec440", ShortName::kUndefined}, {"ooh", ShortName::kUndefined},
- {"vezz", ShortName::kUndefined}, {"1ipp4h", ShortName::kUndefined},
- {"XXec4i", ShortName::kUndefined}, {"ve9IInn5i", ShortName::kUndefined},
- {"HHreSSaYi", ShortName::kUndefined}, {"kk4", ShortName::kUndefined},
- {"jgRR", ShortName::kUndefined}, {"veb", ShortName::kUndefined},
+ {"at2x2cc", ShortName::kUndefined}, {"l23f", ShortName::kUndefined},
+ {"matVx2f", ShortName::kUndefined}, {"mat212h", ShortName::kUndefined},
+ {"mqtJx2h", ShortName::kUndefined}, {"mat2x27ll", ShortName::kUndefined},
+ {"ppqqt23HH", ShortName::kUndefined}, {"macv", ShortName::kUndefined},
+ {"bt2xGf", ShortName::kUndefined}, {"mat2iivh", ShortName::kUndefined},
+ {"8WWt2x3h", ShortName::kUndefined}, {"mxx2x3h", ShortName::kUndefined},
+ {"mX2x4gg", ShortName::kUndefined}, {"a2xXf", ShortName::kUndefined},
+ {"mat234f", ShortName::kUndefined}, {"Eat2x4h", ShortName::kUndefined},
+ {"mPTT2x4h", ShortName::kUndefined}, {"mat2xdxx", ShortName::kUndefined},
+ {"m44t3x2f", ShortName::kUndefined}, {"maSS3xVVf", ShortName::kUndefined},
+ {"RatR22f", ShortName::kUndefined}, {"mF3x9h", ShortName::kUndefined},
+ {"matx2h", ShortName::kUndefined}, {"VOORRH2h", ShortName::kUndefined},
+ {"ma3xyf", ShortName::kUndefined}, {"llnarr3773f", ShortName::kUndefined},
+ {"mat34300", ShortName::kUndefined}, {"a3ooh", ShortName::kUndefined},
+ {"zz3x3h", ShortName::kUndefined}, {"miitppx1", ShortName::kUndefined},
+ {"mat3xXXf", ShortName::kUndefined}, {"9II5ann3x4f", ShortName::kUndefined},
+ {"mataSSrHHYf", ShortName::kUndefined}, {"makkh", ShortName::kUndefined},
+ {"jatgRx", ShortName::kUndefined}, {"mb3x4", ShortName::kUndefined},
+ {"mat4xjf", ShortName::kUndefined}, {"at4x2f", ShortName::kUndefined},
+ {"q4x2f", ShortName::kUndefined}, {"matNN2h", ShortName::kUndefined},
+ {"at42vv", ShortName::kUndefined}, {"QQt4x2h", ShortName::kUndefined},
+ {"maffxr", ShortName::kUndefined}, {"mat4xjf", ShortName::kUndefined},
+ {"mNNw4x38", ShortName::kUndefined}, {"matx3h", ShortName::kUndefined},
+ {"mrrt4x3h", ShortName::kUndefined}, {"Gat4x3h", ShortName::kUndefined},
+ {"mat4x4FF", ShortName::kUndefined}, {"at4f", ShortName::kUndefined},
+ {"marrx4f", ShortName::kUndefined}, {"t4x4h", ShortName::kUndefined},
+ {"Da4xJJh", ShortName::kUndefined}, {"ma84", ShortName::kUndefined},
+ {"e2k", ShortName::kUndefined}, {"vecf", ShortName::kUndefined},
+ {"Jecf", ShortName::kUndefined}, {"ec2h", ShortName::kUndefined},
+ {"_KKttcH", ShortName::kUndefined}, {"vexxh", ShortName::kUndefined},
+ {"__qcF", ShortName::kUndefined}, {"vc2qq", ShortName::kUndefined},
+ {"33e62i", ShortName::kUndefined}, {"6QQott2u", ShortName::kUndefined},
+ {"v6c2u", ShortName::kUndefined}, {"zzc2O6", ShortName::kUndefined},
+ {"vyyc3f", ShortName::kUndefined}, {"vcZZ", ShortName::kUndefined},
+ {"ecWq4f", ShortName::kUndefined}, {"vOO3h", ShortName::kUndefined},
+ {"oYe3", ShortName::kUndefined}, {"v3", ShortName::kUndefined},
+ {"Fe3i", ShortName::kUndefined}, {"vwci", ShortName::kUndefined},
+ {"vefi", ShortName::kUndefined}, {"KKeq3u", ShortName::kUndefined},
+ {"vFmm3u", ShortName::kUndefined}, {"vecu", ShortName::kUndefined},
+ {"qc4f", ShortName::kUndefined}, {"vecbb", ShortName::kUndefined},
+ {"iic4", ShortName::kUndefined}, {"vqOOh", ShortName::kUndefined},
+ {"vevvTTh", ShortName::kUndefined}, {"veFF4h", ShortName::kUndefined},
+ {"00PfQ", ShortName::kUndefined}, {"vec4P", ShortName::kUndefined},
+ {"vec77s", ShortName::kUndefined}, {"vecbbCu", ShortName::kUndefined},
+ {"vecXXu", ShortName::kUndefined}, {"CCOOec4", ShortName::kUndefined},
};
using ShortNameParseTest = testing::TestWithParam<Case>;