• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by generate_tests.py
3 //
4 // Copyright (c) 2022 Google LLC.
5 //
6 // Licensed under the Apache License, Version 2.0 (the "License");
7 // you may not use this file except in compliance with the License.
8 // You may obtain a copy of the License at
9 //
10 //     http://www.apache.org/licenses/LICENSE-2.0
11 //
12 // Unless required by applicable law or agreed to in writing, software
13 // distributed under the License is distributed on an "AS IS" BASIS,
14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 // See the License for the specific language governing permissions and
16 // limitations under the License.
17 
18 #include "../diff_test_utils.h"
19 
20 #include "gtest/gtest.h"
21 
22 namespace spvtools {
23 namespace diff {
24 namespace {
25 
26 // Tests OpSpecConstantComposite matching.
27 constexpr char kSrc[] = R"(               OpCapability Shader
28           %1 = OpExtInstImport "GLSL.std.450"
29                OpMemoryModel Logical GLSL450
30                OpEntryPoint GLCompute %main "main"
31                OpExecutionMode %main LocalSize 1 1 1
32                OpSource GLSL 450
33                OpName %main "main"
34                OpDecorate %7 SpecId 3
35                OpDecorate %8 SpecId 4
36                OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize
37        %void = OpTypeVoid
38           %3 = OpTypeFunction %void
39        %uint = OpTypeInt 32 0
40           %7 = OpSpecConstant %uint 1
41           %8 = OpSpecConstant %uint 1
42      %uint_1 = OpConstant %uint 1
43      %v3uint = OpTypeVector %uint 3
44 %gl_WorkGroupSize = OpSpecConstantComposite %v3uint %7 %8 %uint_1
45        %main = OpFunction %void None %3
46           %5 = OpLabel
47                OpReturn
48                OpFunctionEnd)";
49 constexpr char kDst[] = R"(               OpCapability Shader
50           %1 = OpExtInstImport "GLSL.std.450"
51                OpMemoryModel Logical GLSL450
52                OpEntryPoint GLCompute %main "main"
53                OpExecutionMode %main LocalSize 1 1 1
54                OpSource GLSL 450
55                OpName %main "main"
56                OpDecorate %7 SpecId 3
57                OpDecorate %8 SpecId 4
58                OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize
59        %void = OpTypeVoid
60           %3 = OpTypeFunction %void
61        %uint = OpTypeInt 32 0
62           %7 = OpSpecConstant %uint 2048
63           %8 = OpSpecConstant %uint 1
64      %uint_1 = OpConstant %uint 1
65      %v3uint = OpTypeVector %uint 3
66 %gl_WorkGroupSize = OpSpecConstantComposite %v3uint %7 %8 %uint_1
67        %main = OpFunction %void None %3
68           %5 = OpLabel
69                OpReturn
70                OpFunctionEnd
71 )";
72 
TEST(DiffTest,SpecConstantComposite)73 TEST(DiffTest, SpecConstantComposite) {
74   constexpr char kDiff[] = R"( ; SPIR-V
75  ; Version: 1.6
76  ; Generator: Khronos SPIR-V Tools Assembler; 0
77  ; Bound: 12
78  ; Schema: 0
79  OpCapability Shader
80  %1 = OpExtInstImport "GLSL.std.450"
81  OpMemoryModel Logical GLSL450
82  OpEntryPoint GLCompute %2 "main"
83  OpExecutionMode %2 LocalSize 1 1 1
84  OpSource GLSL 450
85  OpName %2 "main"
86  OpDecorate %7 SpecId 3
87  OpDecorate %8 SpecId 4
88  OpDecorate %4 BuiltIn WorkgroupSize
89  %6 = OpTypeVoid
90  %3 = OpTypeFunction %6
91  %9 = OpTypeInt 32 0
92 -%7 = OpSpecConstant %9 1
93 +%7 = OpSpecConstant %9 2048
94  %8 = OpSpecConstant %9 1
95  %10 = OpConstant %9 1
96  %11 = OpTypeVector %9 3
97  %4 = OpSpecConstantComposite %11 %7 %8 %10
98  %2 = OpFunction %6 None %3
99  %5 = OpLabel
100  OpReturn
101  OpFunctionEnd
102 )";
103   Options options;
104   DoStringDiffTest(kSrc, kDst, kDiff, options);
105 }
106 
TEST(DiffTest,SpecConstantCompositeNoDebug)107 TEST(DiffTest, SpecConstantCompositeNoDebug) {
108   constexpr char kSrcNoDebug[] = R"(               OpCapability Shader
109           %1 = OpExtInstImport "GLSL.std.450"
110                OpMemoryModel Logical GLSL450
111                OpEntryPoint GLCompute %main "main"
112                OpExecutionMode %main LocalSize 1 1 1
113                OpSource GLSL 450
114                OpDecorate %7 SpecId 3
115                OpDecorate %8 SpecId 4
116                OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize
117        %void = OpTypeVoid
118           %3 = OpTypeFunction %void
119        %uint = OpTypeInt 32 0
120           %7 = OpSpecConstant %uint 1
121           %8 = OpSpecConstant %uint 1
122      %uint_1 = OpConstant %uint 1
123      %v3uint = OpTypeVector %uint 3
124 %gl_WorkGroupSize = OpSpecConstantComposite %v3uint %7 %8 %uint_1
125        %main = OpFunction %void None %3
126           %5 = OpLabel
127                OpReturn
128                OpFunctionEnd
129 )";
130   constexpr char kDstNoDebug[] = R"(               OpCapability Shader
131           %1 = OpExtInstImport "GLSL.std.450"
132                OpMemoryModel Logical GLSL450
133                OpEntryPoint GLCompute %main "main"
134                OpExecutionMode %main LocalSize 1 1 1
135                OpSource GLSL 450
136                OpDecorate %7 SpecId 3
137                OpDecorate %8 SpecId 4
138                OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize
139        %void = OpTypeVoid
140           %3 = OpTypeFunction %void
141        %uint = OpTypeInt 32 0
142           %7 = OpSpecConstant %uint 2048
143           %8 = OpSpecConstant %uint 1
144      %uint_1 = OpConstant %uint 1
145      %v3uint = OpTypeVector %uint 3
146 %gl_WorkGroupSize = OpSpecConstantComposite %v3uint %7 %8 %uint_1
147        %main = OpFunction %void None %3
148           %5 = OpLabel
149                OpReturn
150                OpFunctionEnd
151 )";
152   constexpr char kDiff[] = R"( ; SPIR-V
153  ; Version: 1.6
154  ; Generator: Khronos SPIR-V Tools Assembler; 0
155  ; Bound: 12
156  ; Schema: 0
157  OpCapability Shader
158  %1 = OpExtInstImport "GLSL.std.450"
159  OpMemoryModel Logical GLSL450
160  OpEntryPoint GLCompute %2 "main"
161  OpExecutionMode %2 LocalSize 1 1 1
162  OpSource GLSL 450
163  OpDecorate %7 SpecId 3
164  OpDecorate %8 SpecId 4
165  OpDecorate %4 BuiltIn WorkgroupSize
166  %6 = OpTypeVoid
167  %3 = OpTypeFunction %6
168  %9 = OpTypeInt 32 0
169 -%7 = OpSpecConstant %9 1
170 +%7 = OpSpecConstant %9 2048
171  %8 = OpSpecConstant %9 1
172  %10 = OpConstant %9 1
173  %11 = OpTypeVector %9 3
174  %4 = OpSpecConstantComposite %11 %7 %8 %10
175  %2 = OpFunction %6 None %3
176  %5 = OpLabel
177  OpReturn
178  OpFunctionEnd
179 )";
180   Options options;
181   DoStringDiffTest(kSrcNoDebug, kDstNoDebug, kDiff, options);
182 }
183 
184 }  // namespace
185 }  // namespace diff
186 }  // namespace spvtools
187