Remove `Type::IsScalarVector`
All of our vectors are scalar vectors, so this is really just a strange
way of saying `Is<core::type::Vector>()`. Remove the call and replace
the two usages with checks for Vector directly.
Change-Id: I035a6d3b7266f48b899bbb3a9eee0dc58aff164f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/246774
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/tint/lang/core/type/type.cc b/src/tint/lang/core/type/type.cc
index cbbdce1..4ae6135 100644
--- a/src/tint/lang/core/type/type.cc
+++ b/src/tint/lang/core/type/type.cc
@@ -160,10 +160,6 @@
return Is<Bool>() || IsBoolVector();
}
-bool Type::IsScalarVector() const {
- return Is([](const Vector* v) { return v->Type()->Is<core::type::Scalar>(); });
-}
-
bool Type::IsNumericScalarOrVector() const {
return Is<core::type::NumericScalar>() ||
Is([](const Vector* v) { return v->Type()->Is<core::type::NumericScalar>(); });
diff --git a/src/tint/lang/core/type/type.h b/src/tint/lang/core/type/type.h
index eef83fd..e5c1d94 100644
--- a/src/tint/lang/core/type/type.h
+++ b/src/tint/lang/core/type/type.h
@@ -170,8 +170,6 @@
bool IsBoolScalarOrVector() const;
/// @returns true if this type is boolean vector
bool IsBoolVector() const;
- /// @returns true if this type is a vector of scalar type
- bool IsScalarVector() const;
/// @returns true if this type is a numeric scale or vector
bool IsNumericScalarOrVector() const;
/// @returns true if this type is a handle type
diff --git a/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc b/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
index a4fee1c..453b544 100644
--- a/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
@@ -1532,7 +1532,7 @@
// For single-value vector initializers, swizzle the scalar to the right
// vector dimension using .x
const bool is_single_value_vector_init =
- type->IsScalarVector() && call->Arguments().Length() == 1 &&
+ type->Is<core::type::Vector>() && call->Arguments().Length() == 1 &&
ctor->Parameters()[0]->Type()->Is<core::type::Scalar>();
if (brackets) {
diff --git a/src/tint/lang/hlsl/writer/raise/decompose_uniform_access.cc b/src/tint/lang/hlsl/writer/raise/decompose_uniform_access.cc
index 99390ec..aba068c 100644
--- a/src/tint/lang/hlsl/writer/raise/decompose_uniform_access.cc
+++ b/src/tint/lang/hlsl/writer/raise/decompose_uniform_access.cc
@@ -312,9 +312,6 @@
if (result_ty->IsFloatScalar() || result_ty->IsIntegerScalar()) {
return MakeScalarLoad(var, result_ty, byte_idx);
}
- if (result_ty->IsScalarVector()) {
- return MakeVectorLoad(var, result_ty->As<core::type::Vector>(), byte_idx);
- }
return tint::Switch(
result_ty,
@@ -330,6 +327,7 @@
auto* fn = GetLoadFunctionFor(inst, var, a);
return b.Call(fn, byte_idx);
},
+ [&](const core::type::Vector* v) { return MakeVectorLoad(var, v, byte_idx); },
TINT_ICE_ON_NO_MATCH);
}