Add GLSL FindILsb, FindUMsb, FindSMsb and InterpolateAtCentroid.
This CL adds the type determination for the GLSL methods FindILsb,
FindUMsb, FindSMsb and InterpolateAtCentroid.
Change-Id: I2b1e9d021e6799ffe6b5b71c5cca947b8e6ccfa0
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22843
Reviewed-by: David Neto <dneto@google.com>
diff --git a/src/type_determiner.cc b/src/type_determiner.cc
index 9b1e3c9..cd22db2 100644
--- a/src/type_determiner.cc
+++ b/src/type_determiner.cc
@@ -661,6 +661,9 @@
{"faceforward", 3, GLSLstd450FaceForward,
GlslDataType::kFloatScalarOrVector, 0},
{"fclamp", 3, GLSLstd450FClamp, GlslDataType::kFloatScalarOrVector, 0},
+ {"findilsb", 1, GLSLstd450FindILsb, GlslDataType::kIntScalarOrVector, 0},
+ {"findumsb", 1, GLSLstd450FindUMsb, GlslDataType::kIntScalarOrVector, 0},
+ {"findsmsb", 1, GLSLstd450FindSMsb, GlslDataType::kIntScalarOrVector, 0},
{"floor", 1, GLSLstd450Floor, GlslDataType::kFloatScalarOrVector, 0},
{"fma", 3, GLSLstd450Fma, GlslDataType::kFloatScalarOrVector, 0},
{"fmax", 2, GLSLstd450FMax, GlslDataType::kFloatScalarOrVector, 0},
@@ -668,6 +671,8 @@
{"fmix", 3, GLSLstd450FMix, GlslDataType::kFloatScalarOrVector, 0},
{"fract", 1, GLSLstd450Fract, GlslDataType::kFloatScalarOrVector, 0},
{"fsign", 1, GLSLstd450FSign, GlslDataType::kFloatScalarOrVector, 0},
+ {"interpolateatcentroid", 1, GLSLstd450InterpolateAtCentroid,
+ GlslDataType::kFloatScalarOrVector, 0},
{"inversesqrt", 1, GLSLstd450InverseSqrt,
GlslDataType::kFloatScalarOrVector, 0},
{"length", 1, GLSLstd450Length, GlslDataType::kFloatScalarOrVector, 0},
diff --git a/src/type_determiner_test.cc b/src/type_determiner_test.cc
index 5871be4..0b607f3 100644
--- a/src/type_determiner_test.cc
+++ b/src/type_determiner_test.cc
@@ -1859,7 +1859,9 @@
GLSLData{"log2", GLSLstd450Log2},
GLSLData{"sqrt", GLSLstd450Sqrt},
GLSLData{"inversesqrt", GLSLstd450InverseSqrt},
- GLSLData{"normalize", GLSLstd450Normalize}));
+ GLSLData{"normalize", GLSLstd450Normalize},
+ GLSLData{"interpolateatcentroid",
+ GLSLstd450InterpolateAtCentroid}));
TEST_F(TypeDeterminerTest, ImportData_Length_Scalar) {
ast::type::F32Type f32;
@@ -2890,10 +2892,14 @@
param.name + ". Expected 1 got 3");
}
-INSTANTIATE_TEST_SUITE_P(TypeDeterminerTest,
- ImportData_Int_SingleParamTest,
- testing::Values(GLSLData{"sabs", GLSLstd450SAbs},
- GLSLData{"ssign", GLSLstd450SSign}));
+INSTANTIATE_TEST_SUITE_P(
+ TypeDeterminerTest,
+ ImportData_Int_SingleParamTest,
+ testing::Values(GLSLData{"sabs", GLSLstd450SAbs},
+ GLSLData{"ssign", GLSLstd450SSign},
+ GLSLData{"findilsb", GLSLstd450FindILsb},
+ GLSLData{"findumsb", GLSLstd450FindUMsb},
+ GLSLData{"findsmsb", GLSLstd450FindSMsb}));
using ImportData_Int_TwoParamTest = TypeDeterminerTestWithParam<GLSLData>;
TEST_P(ImportData_Int_TwoParamTest, Scalar_Signed) {