aboutsummaryrefslogtreecommitdiff
path: root/test/opt/simplification_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/opt/simplification_test.cpp')
-rw-r--r--test/opt/simplification_test.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/opt/simplification_test.cpp b/test/opt/simplification_test.cpp
index 7a9696ea..7727f567 100644
--- a/test/opt/simplification_test.cpp
+++ b/test/opt/simplification_test.cpp
@@ -360,6 +360,31 @@ OpFunctionEnd
SinglePassRunAndMatch<SimplificationPass>(spirv, true);
}
+TEST_F(SimplificationTest, FunctionDeclaration) {
+ // Make sure the pass works with a function declaration that is called.
+ const std::string text = R"(OpCapability Addresses
+OpCapability Linkage
+OpCapability Kernel
+OpCapability Int8
+%1 = OpExtInstImport "OpenCL.std"
+OpMemoryModel Physical64 OpenCL
+OpEntryPoint Kernel %2 "_Z23julia__1166_kernel_77094Bool"
+OpExecutionMode %2 ContractionOff
+OpSource Unknown 0
+OpDecorate %3 LinkageAttributes "julia_error_7712" Import
+%void = OpTypeVoid
+%5 = OpTypeFunction %void
+%3 = OpFunction %void None %5
+OpFunctionEnd
+%2 = OpFunction %void None %5
+%6 = OpLabel
+%7 = OpFunctionCall %void %3
+OpReturn
+OpFunctionEnd
+)";
+
+ SinglePassRunAndCheck<SimplificationPass>(text, text, false);
+}
} // namespace
} // namespace opt
} // namespace spvtools