1
+ /*
2
+ * Copyright (C) 2021 Intel Corporation
3
+ *
4
+ * SPDX-License-Identifier: MIT
5
+ *
6
+ */
7
+
8
+ #include " shared/source/compiler_interface/compiler_options/compiler_options.h"
9
+ #include " shared/source/debug_settings/debug_settings_manager.h"
10
+ #include " shared/test/common/helpers/debug_manager_state_restore.h"
11
+
12
+ #include " opencl/test/unit_test/offline_compiler/mock/mock_offline_compiler.h"
13
+ #include " opencl/test/unit_test/offline_compiler/offline_compiler_tests.h"
14
+ #include " test.h"
15
+
16
+ namespace NEO {
17
+
18
+ using MockOfflineCompilerSklTests = ::testing::Test;
19
+
20
+ SKLTEST_F (MockOfflineCompilerSklTests, GivenSklWhenParseDebugSettingsThenStatelessToStatefullOptimizationIsEnabled) {
21
+ MockOfflineCompiler mockOfflineCompiler;
22
+ mockOfflineCompiler.deviceName = " skl" ;
23
+ mockOfflineCompiler.initHardwareInfo (mockOfflineCompiler.deviceName );
24
+ mockOfflineCompiler.parseDebugSettings ();
25
+ std::string internalOptions = mockOfflineCompiler.internalOptions ;
26
+ size_t found = internalOptions.find (NEO::CompilerOptions::hasBufferOffsetArg.data ());
27
+ EXPECT_NE (std::string::npos, found);
28
+ }
29
+
30
+ SKLTEST_F (MockOfflineCompilerSklTests, GivenSklAndDisabledViaDebugThenStatelessToStatefullOptimizationDisabled) {
31
+ DebugManagerStateRestore stateRestore;
32
+ MockOfflineCompiler mockOfflineCompiler;
33
+ mockOfflineCompiler.deviceName = " skl" ;
34
+ DebugManager.flags .EnableStatelessToStatefulBufferOffsetOpt .set (0 );
35
+ mockOfflineCompiler.initHardwareInfo (mockOfflineCompiler.deviceName );
36
+ mockOfflineCompiler.setStatelessToStatefullBufferOffsetFlag ();
37
+ std::string internalOptions = mockOfflineCompiler.internalOptions ;
38
+ size_t found = internalOptions.find (NEO::CompilerOptions::hasBufferOffsetArg.data ());
39
+ EXPECT_EQ (std::string::npos, found);
40
+ }
41
+
42
+ SKLTEST_F (MockOfflineCompilerSklTests, givenSklWhenAppendExtraInternalOptionsThenForceEmuInt32DivRemSPIsNotApplied) {
43
+ MockOfflineCompiler mockOfflineCompiler;
44
+ mockOfflineCompiler.deviceName = " skl" ;
45
+ mockOfflineCompiler.initHardwareInfo (mockOfflineCompiler.deviceName );
46
+ std::string internalOptions = mockOfflineCompiler.internalOptions ;
47
+ mockOfflineCompiler.appendExtraInternalOptions (mockOfflineCompiler.hwInfo , internalOptions);
48
+ size_t found = internalOptions.find (NEO::CompilerOptions::forceEmuInt32DivRemSP.data ());
49
+ EXPECT_EQ (std::string::npos, found);
50
+ }
51
+
52
+ SKLTEST_F (MockOfflineCompilerSklTests, givenSklWhenAppendExtraInternalOptionsThenGreaterThan4gbBuffersRequiredIsNotSet) {
53
+ MockOfflineCompiler mockOfflineCompiler;
54
+ mockOfflineCompiler.deviceName = " skl" ;
55
+ mockOfflineCompiler.initHardwareInfo (mockOfflineCompiler.deviceName );
56
+ std::string internalOptions = mockOfflineCompiler.internalOptions ;
57
+ mockOfflineCompiler.forceStatelessToStatefulOptimization = false ;
58
+ mockOfflineCompiler.appendExtraInternalOptions (mockOfflineCompiler.hwInfo , internalOptions);
59
+ size_t found = internalOptions.find (NEO::CompilerOptions::greaterThan4gbBuffersRequired.data ());
60
+ EXPECT_EQ (std::string::npos, found);
61
+ }
62
+
63
+ } // namespace NEO
0 commit comments