spirv-reader: simplify GLSL.std.450 tests

Use variables with names rather than constants
which elaborate to a lot of text in the AST.

Change-Id: Ic284bbd4019e50308c5836768df01c6a9525c004
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/35061
Commit-Queue: David Neto <dneto@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Auto-Submit: David Neto <dneto@google.com>
This commit is contained in:
David Neto 2020-12-07 21:02:27 +00:00 committed by Commit Bot service account
parent 201fa87a6d
commit b4b29639a1
1 changed files with 95 additions and 132 deletions

View File

@ -33,6 +33,28 @@ std::string Preamble() {
return R"( return R"(
OpCapability Shader OpCapability Shader
%glsl = OpExtInstImport "GLSL.std.450" %glsl = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %100 "main"
OpExecutionMode %100 LocalSize 1 1 1
OpName %u1 "u1"
OpName %u2 "u2"
OpName %u3 "u3"
OpName %i1 "i1"
OpName %i2 "i2"
OpName %i3 "i3"
OpName %f1 "f1"
OpName %f2 "f2"
OpName %f3 "f3"
OpName %v2u1 "v2u1"
OpName %v2u2 "v2u2"
OpName %v2u3 "v2u3"
OpName %v2i1 "v2i1"
OpName %v2i2 "v2i2"
OpName %v2i3 "v2i3"
OpName %v2f1 "v2f1"
OpName %v2f2 "v2f2"
OpName %v2f3 "v2f3"
%void = OpTypeVoid %void = OpTypeVoid
%voidfn = OpTypeFunction %void %voidfn = OpTypeFunction %void
@ -64,6 +86,34 @@ std::string Preamble() {
%v2float_50_60 = OpConstantComposite %v2float %float_50 %float_60 %v2float_50_60 = OpConstantComposite %v2float %float_50 %float_60
%v2float_60_50 = OpConstantComposite %v2float %float_60 %float_50 %v2float_60_50 = OpConstantComposite %v2float %float_60 %float_50
%v2float_70_70 = OpConstantComposite %v2float %float_70 %float_70 %v2float_70_70 = OpConstantComposite %v2float %float_70 %float_70
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%u1 = OpCopyObject %uint %uint_10
%u2 = OpCopyObject %uint %uint_15
%u3 = OpCopyObject %uint %uint_20
%i1 = OpCopyObject %int %int_30
%i2 = OpCopyObject %int %int_35
%i3 = OpCopyObject %int %int_40
%f1 = OpCopyObject %float %float_50
%f2 = OpCopyObject %float %float_60
%f3 = OpCopyObject %float %float_70
%v2u1 = OpCopyObject %v2uint %v2uint_10_20
%v2u2 = OpCopyObject %v2uint %v2uint_20_10
%v2u3 = OpCopyObject %v2uint %v2uint_15_15
%v2i1 = OpCopyObject %v2int %v2int_30_40
%v2i2 = OpCopyObject %v2int %v2int_40_30
%v2i3 = OpCopyObject %v2int %v2int_35_35
%v2f1 = OpCopyObject %v2float %v2float_50_60
%v2f2 = OpCopyObject %v2float %v2float_60_50
%v2f3 = OpCopyObject %v2float %v2float_70_70
)"; )";
} }
@ -102,10 +152,8 @@ using SpvParserTest_GlslStd450_Uinting_UintingUintingUinting =
TEST_P(SpvParserTest_GlslStd450_Float_Floating, Scalar) { TEST_P(SpvParserTest_GlslStd450_Float_Floating, Scalar) {
const auto assembly = Preamble() + R"( const auto assembly = Preamble() + R"(
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%1 = OpExtInst %float %glsl )" + %1 = OpExtInst %float %glsl )" +
GetParam().opcode + R"( %float_50 GetParam().opcode + R"( %f1
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
)"; )";
@ -123,7 +171,7 @@ TEST_P(SpvParserTest_GlslStd450_Float_Floating, Scalar) {
Identifier[not set]{)" + GetParam().wgsl_func + Identifier[not set]{)" + GetParam().wgsl_func +
R"(} R"(}
( (
ScalarConstructor[not set]{50.000000} Identifier[not set]{f1}
) )
} }
} }
@ -133,10 +181,8 @@ TEST_P(SpvParserTest_GlslStd450_Float_Floating, Scalar) {
TEST_P(SpvParserTest_GlslStd450_Float_Floating, Vector) { TEST_P(SpvParserTest_GlslStd450_Float_Floating, Vector) {
const auto assembly = Preamble() + R"( const auto assembly = Preamble() + R"(
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%1 = OpExtInst %float %glsl )" + %1 = OpExtInst %float %glsl )" +
GetParam().opcode + R"( %v2float_50_60 GetParam().opcode + R"( %v2f1
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
)"; )";
@ -154,11 +200,7 @@ TEST_P(SpvParserTest_GlslStd450_Float_Floating, Vector) {
Identifier[not set]{)" + GetParam().wgsl_func + Identifier[not set]{)" + GetParam().wgsl_func +
R"(} R"(}
( (
TypeConstructor[not set]{ Identifier[not set]{v2f1}
__vec_2__f32
ScalarConstructor[not set]{50.000000}
ScalarConstructor[not set]{60.000000}
}
) )
} }
} }
@ -168,10 +210,8 @@ TEST_P(SpvParserTest_GlslStd450_Float_Floating, Vector) {
TEST_P(SpvParserTest_GlslStd450_Float_FloatingFloating, Scalar) { TEST_P(SpvParserTest_GlslStd450_Float_FloatingFloating, Scalar) {
const auto assembly = Preamble() + R"( const auto assembly = Preamble() + R"(
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%1 = OpExtInst %float %glsl )" + %1 = OpExtInst %float %glsl )" +
GetParam().opcode + R"( %float_50 %float_60 GetParam().opcode + R"( %f1 %f2
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
)"; )";
@ -189,8 +229,8 @@ TEST_P(SpvParserTest_GlslStd450_Float_FloatingFloating, Scalar) {
Identifier[not set]{)" + GetParam().wgsl_func + Identifier[not set]{)" + GetParam().wgsl_func +
R"(} R"(}
( (
ScalarConstructor[not set]{50.000000} Identifier[not set]{f1}
ScalarConstructor[not set]{60.000000} Identifier[not set]{f2}
) )
} }
} }
@ -200,10 +240,8 @@ TEST_P(SpvParserTest_GlslStd450_Float_FloatingFloating, Scalar) {
TEST_P(SpvParserTest_GlslStd450_Float_FloatingFloating, Vector) { TEST_P(SpvParserTest_GlslStd450_Float_FloatingFloating, Vector) {
const auto assembly = Preamble() + R"( const auto assembly = Preamble() + R"(
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%1 = OpExtInst %float %glsl )" + %1 = OpExtInst %float %glsl )" +
GetParam().opcode + R"( %v2float_50_60 %v2float_60_50 GetParam().opcode + R"( %v2f1 %v2f2
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
)"; )";
@ -221,16 +259,8 @@ TEST_P(SpvParserTest_GlslStd450_Float_FloatingFloating, Vector) {
Identifier[not set]{)" + GetParam().wgsl_func + Identifier[not set]{)" + GetParam().wgsl_func +
R"(} R"(}
( (
TypeConstructor[not set]{ Identifier[not set]{v2f1}
__vec_2__f32 Identifier[not set]{v2f2}
ScalarConstructor[not set]{50.000000}
ScalarConstructor[not set]{60.000000}
}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{60.000000}
ScalarConstructor[not set]{50.000000}
}
) )
} }
} }
@ -240,10 +270,8 @@ TEST_P(SpvParserTest_GlslStd450_Float_FloatingFloating, Vector) {
TEST_P(SpvParserTest_GlslStd450_Floating_Floating, Scalar) { TEST_P(SpvParserTest_GlslStd450_Floating_Floating, Scalar) {
const auto assembly = Preamble() + R"( const auto assembly = Preamble() + R"(
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%1 = OpExtInst %float %glsl )" + %1 = OpExtInst %float %glsl )" +
GetParam().opcode + R"( %float_50 GetParam().opcode + R"( %f1
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
)"; )";
@ -261,7 +289,7 @@ TEST_P(SpvParserTest_GlslStd450_Floating_Floating, Scalar) {
Identifier[not set]{)" + GetParam().wgsl_func + Identifier[not set]{)" + GetParam().wgsl_func +
R"(} R"(}
( (
ScalarConstructor[not set]{50.000000} Identifier[not set]{f1}
) )
} }
} }
@ -271,10 +299,8 @@ TEST_P(SpvParserTest_GlslStd450_Floating_Floating, Scalar) {
TEST_P(SpvParserTest_GlslStd450_Floating_Floating, Vector) { TEST_P(SpvParserTest_GlslStd450_Floating_Floating, Vector) {
const auto assembly = Preamble() + R"( const auto assembly = Preamble() + R"(
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%1 = OpExtInst %v2float %glsl )" + %1 = OpExtInst %v2float %glsl )" +
GetParam().opcode + R"( %v2float_50_60 GetParam().opcode + R"( %v2f1
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
)"; )";
@ -292,11 +318,7 @@ TEST_P(SpvParserTest_GlslStd450_Floating_Floating, Vector) {
Identifier[not set]{)" + GetParam().wgsl_func + Identifier[not set]{)" + GetParam().wgsl_func +
R"(} R"(}
( (
TypeConstructor[not set]{ Identifier[not set]{v2f1}
__vec_2__f32
ScalarConstructor[not set]{50.000000}
ScalarConstructor[not set]{60.000000}
}
) )
} }
} }
@ -306,10 +328,8 @@ TEST_P(SpvParserTest_GlslStd450_Floating_Floating, Vector) {
TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloating, Scalar) { TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloating, Scalar) {
const auto assembly = Preamble() + R"( const auto assembly = Preamble() + R"(
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%1 = OpExtInst %float %glsl )" + %1 = OpExtInst %float %glsl )" +
GetParam().opcode + R"( %float_50 %float_60 GetParam().opcode + R"( %f1 %f2
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
)"; )";
@ -327,8 +347,8 @@ TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloating, Scalar) {
Identifier[not set]{)" + GetParam().wgsl_func + Identifier[not set]{)" + GetParam().wgsl_func +
R"(} R"(}
( (
ScalarConstructor[not set]{50.000000} Identifier[not set]{f1}
ScalarConstructor[not set]{60.000000} Identifier[not set]{f2}
) )
} }
} }
@ -338,10 +358,8 @@ TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloating, Scalar) {
TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloating, Vector) { TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloating, Vector) {
const auto assembly = Preamble() + R"( const auto assembly = Preamble() + R"(
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%1 = OpExtInst %v2float %glsl )" + %1 = OpExtInst %v2float %glsl )" +
GetParam().opcode + R"( %v2float_50_60 %v2float_60_50 GetParam().opcode + R"( %v2f1 %v2f2
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
)"; )";
@ -359,16 +377,8 @@ TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloating, Vector) {
Identifier[not set]{)" + GetParam().wgsl_func + Identifier[not set]{)" + GetParam().wgsl_func +
R"(} R"(}
( (
TypeConstructor[not set]{ Identifier[not set]{v2f1}
__vec_2__f32 Identifier[not set]{v2f2}
ScalarConstructor[not set]{50.000000}
ScalarConstructor[not set]{60.000000}
}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{60.000000}
ScalarConstructor[not set]{50.000000}
}
) )
} }
} }
@ -378,10 +388,8 @@ TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloating, Vector) {
TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating, Scalar) { TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating, Scalar) {
const auto assembly = Preamble() + R"( const auto assembly = Preamble() + R"(
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%1 = OpExtInst %float %glsl )" + %1 = OpExtInst %float %glsl )" +
GetParam().opcode + R"( %float_50 %float_60 %float_70 GetParam().opcode + R"( %f1 %f2 %f3
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
)"; )";
@ -399,9 +407,9 @@ TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating, Scalar) {
Identifier[not set]{)" + GetParam().wgsl_func + Identifier[not set]{)" + GetParam().wgsl_func +
R"(} R"(}
( (
ScalarConstructor[not set]{50.000000} Identifier[not set]{f1}
ScalarConstructor[not set]{60.000000} Identifier[not set]{f2}
ScalarConstructor[not set]{70.000000} Identifier[not set]{f3}
) )
} }
} }
@ -411,11 +419,9 @@ TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating, Scalar) {
TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating, Vector) { TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating, Vector) {
const auto assembly = Preamble() + R"( const auto assembly = Preamble() + R"(
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%1 = OpExtInst %v2float %glsl )" + %1 = OpExtInst %v2float %glsl )" +
GetParam().opcode + GetParam().opcode +
R"( %v2float_50_60 %v2float_60_50 %v2float_70_70 R"( %v2f1 %v2f2 %v2f3
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
)"; )";
@ -433,21 +439,9 @@ TEST_P(SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating, Vector) {
Identifier[not set]{)" + GetParam().wgsl_func + Identifier[not set]{)" + GetParam().wgsl_func +
R"(} R"(}
( (
TypeConstructor[not set]{ Identifier[not set]{v2f1}
__vec_2__f32 Identifier[not set]{v2f2}
ScalarConstructor[not set]{50.000000} Identifier[not set]{v2f3}
ScalarConstructor[not set]{60.000000}
}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{60.000000}
ScalarConstructor[not set]{50.000000}
}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{70.000000}
ScalarConstructor[not set]{70.000000}
}
) )
} }
} }
@ -482,10 +476,9 @@ INSTANTIATE_TEST_SUITE_P(
TEST_P(SpvParserTest_GlslStd450_Inting_IntingIntingInting, Scalar) { TEST_P(SpvParserTest_GlslStd450_Inting_IntingIntingInting, Scalar) {
const auto assembly = Preamble() + R"( const auto assembly = Preamble() + R"(
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%1 = OpExtInst %int %glsl )" + %1 = OpExtInst %int %glsl )" +
GetParam().opcode + R"( %int_30 %int_35 %int_40 GetParam().opcode +
R"( %i1 %i2 %i3
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
)"; )";
@ -503,9 +496,9 @@ TEST_P(SpvParserTest_GlslStd450_Inting_IntingIntingInting, Scalar) {
Identifier[not set]{)" + GetParam().wgsl_func + Identifier[not set]{)" + GetParam().wgsl_func +
R"(} R"(}
( (
ScalarConstructor[not set]{30} Identifier[not set]{i1}
ScalarConstructor[not set]{35} Identifier[not set]{i2}
ScalarConstructor[not set]{40} Identifier[not set]{i3}
) )
} }
} }
@ -515,11 +508,9 @@ TEST_P(SpvParserTest_GlslStd450_Inting_IntingIntingInting, Scalar) {
TEST_P(SpvParserTest_GlslStd450_Inting_IntingIntingInting, Vector) { TEST_P(SpvParserTest_GlslStd450_Inting_IntingIntingInting, Vector) {
const auto assembly = Preamble() + R"( const auto assembly = Preamble() + R"(
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%1 = OpExtInst %v2int %glsl )" + %1 = OpExtInst %v2int %glsl )" +
GetParam().opcode + GetParam().opcode +
R"( %v2int_30_40 %v2int_40_30 %v2int_35_35 R"( %v2i1 %v2i2 %v2i3
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
)"; )";
@ -537,21 +528,9 @@ TEST_P(SpvParserTest_GlslStd450_Inting_IntingIntingInting, Vector) {
Identifier[not set]{)" + GetParam().wgsl_func + Identifier[not set]{)" + GetParam().wgsl_func +
R"(} R"(}
( (
TypeConstructor[not set]{ Identifier[not set]{v2i1}
__vec_2__i32 Identifier[not set]{v2i2}
ScalarConstructor[not set]{30} Identifier[not set]{v2i3}
ScalarConstructor[not set]{40}
}
TypeConstructor[not set]{
__vec_2__i32
ScalarConstructor[not set]{40}
ScalarConstructor[not set]{30}
}
TypeConstructor[not set]{
__vec_2__i32
ScalarConstructor[not set]{35}
ScalarConstructor[not set]{35}
}
) )
} }
} }
@ -565,10 +544,8 @@ INSTANTIATE_TEST_SUITE_P(Samples,
TEST_P(SpvParserTest_GlslStd450_Uinting_UintingUintingUinting, Scalar) { TEST_P(SpvParserTest_GlslStd450_Uinting_UintingUintingUinting, Scalar) {
const auto assembly = Preamble() + R"( const auto assembly = Preamble() + R"(
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%1 = OpExtInst %uint %glsl )" + %1 = OpExtInst %uint %glsl )" +
GetParam().opcode + R"( %uint_10 %uint_15 %uint_20 GetParam().opcode + R"( %u1 %u2 %u3
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
)"; )";
@ -586,9 +563,9 @@ TEST_P(SpvParserTest_GlslStd450_Uinting_UintingUintingUinting, Scalar) {
Identifier[not set]{)" + GetParam().wgsl_func + Identifier[not set]{)" + GetParam().wgsl_func +
R"(} R"(}
( (
ScalarConstructor[not set]{10} Identifier[not set]{u1}
ScalarConstructor[not set]{15} Identifier[not set]{u2}
ScalarConstructor[not set]{20} Identifier[not set]{u3}
) )
} }
} }
@ -598,11 +575,9 @@ TEST_P(SpvParserTest_GlslStd450_Uinting_UintingUintingUinting, Scalar) {
TEST_P(SpvParserTest_GlslStd450_Uinting_UintingUintingUinting, Vector) { TEST_P(SpvParserTest_GlslStd450_Uinting_UintingUintingUinting, Vector) {
const auto assembly = Preamble() + R"( const auto assembly = Preamble() + R"(
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%1 = OpExtInst %v2uint %glsl )" + %1 = OpExtInst %v2uint %glsl )" +
GetParam().opcode + GetParam().opcode +
R"( %v2uint_10_20 %v2uint_20_10 %v2uint_15_15 R"( %v2u1 %v2u2 %v2u3
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
)"; )";
@ -620,21 +595,9 @@ TEST_P(SpvParserTest_GlslStd450_Uinting_UintingUintingUinting, Vector) {
Identifier[not set]{)" + GetParam().wgsl_func + Identifier[not set]{)" + GetParam().wgsl_func +
R"(} R"(}
( (
TypeConstructor[not set]{ Identifier[not set]{v2u1}
__vec_2__u32 Identifier[not set]{v2u2}
ScalarConstructor[not set]{10} Identifier[not set]{v2u3}
ScalarConstructor[not set]{20}
}
TypeConstructor[not set]{
__vec_2__u32
ScalarConstructor[not set]{20}
ScalarConstructor[not set]{10}
}
TypeConstructor[not set]{
__vec_2__u32
ScalarConstructor[not set]{15}
ScalarConstructor[not set]{15}
}
) )
} }
} }