SPV: Change barrier emission to conform to Khronos decisions.
[platform/upstream/glslang.git] / Test / baseResults / hlsl.hull.1.tesc.out
1 hlsl.hull.1.tesc
2 Shader version: 500
3 vertices = 4
4 vertex spacing = equal_spacing
5 0:? Sequence
6 0:26  Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
7 0:26    Function Parameters: 
8 0:26      'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
9 0:26      'm_cpid' ( in uint)
10 0:?     Sequence
11 0:28      move second child to first child ( temp 3-component vector of float)
12 0:28        cpoint: direct index for structure ( temp 3-component vector of float)
13 0:28          'output' ( temp structure{ temp 3-component vector of float cpoint})
14 0:28          Constant:
15 0:28            0 (const int)
16 0:28        cpoint: direct index for structure ( temp 3-component vector of float)
17 0:28          direct index ( temp structure{ temp 3-component vector of float cpoint})
18 0:28            'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
19 0:28            Constant:
20 0:28              0 (const int)
21 0:28          Constant:
22 0:28            0 (const int)
23 0:29      Branch: Return with expression
24 0:29        'output' ( temp structure{ temp 3-component vector of float cpoint})
25 0:26  Function Definition: main( ( temp void)
26 0:26    Function Parameters: 
27 0:?     Sequence
28 0:26      move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
29 0:?         'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
30 0:?         'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
31 0:26      move second child to first child ( temp uint)
32 0:?         'm_cpid' ( temp uint)
33 0:?         'm_cpid' ( in uint InvocationID)
34 0:26      move second child to first child ( temp structure{ temp 3-component vector of float cpoint})
35 0:26        indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint})
36 0:?           '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
37 0:?           'm_cpid' ( in uint InvocationID)
38 0:26        Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
39 0:?           'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
40 0:?           'm_cpid' ( temp uint)
41 0:?       Barrier ( temp void)
42 0:?       Test condition and select ( temp void)
43 0:?         Condition
44 0:?         Compare Equal ( temp bool)
45 0:?           'm_cpid' ( in uint InvocationID)
46 0:?           Constant:
47 0:?             0 (const int)
48 0:?         true case
49 0:?         Sequence
50 0:?           move second child to first child ( temp structure{ temp 2-element array of float edges})
51 0:?             '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
52 0:?             Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges})
53 0:?               'pid' ( in uint PrimitiveID)
54 0:?           Sequence
55 0:?             move second child to first child ( temp float)
56 0:?               direct index ( patch out float TessLevelOuter)
57 0:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
58 0:?                 Constant:
59 0:?                   0 (const int)
60 0:?               direct index ( temp float)
61 0:?                 edges: direct index for structure ( temp 2-element array of float)
62 0:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
63 0:?                   Constant:
64 0:?                     0 (const int)
65 0:?                 Constant:
66 0:?                   0 (const int)
67 0:?             move second child to first child ( temp float)
68 0:?               direct index ( patch out float TessLevelOuter)
69 0:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
70 0:?                 Constant:
71 0:?                   1 (const int)
72 0:?               direct index ( temp float)
73 0:?                 edges: direct index for structure ( temp 2-element array of float)
74 0:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
75 0:?                   Constant:
76 0:?                     0 (const int)
77 0:?                 Constant:
78 0:?                   1 (const int)
79 0:33  Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges})
80 0:33    Function Parameters: 
81 0:33      'pid' ( in uint)
82 0:?     Sequence
83 0:36      move second child to first child ( temp float)
84 0:36        direct index ( temp float)
85 0:36          edges: direct index for structure ( temp 2-element array of float)
86 0:36            'output' ( temp structure{ temp 2-element array of float edges})
87 0:36            Constant:
88 0:36              0 (const int)
89 0:36          Constant:
90 0:36            0 (const int)
91 0:36        Constant:
92 0:36          2.000000
93 0:37      move second child to first child ( temp float)
94 0:37        direct index ( temp float)
95 0:37          edges: direct index for structure ( temp 2-element array of float)
96 0:37            'output' ( temp structure{ temp 2-element array of float edges})
97 0:37            Constant:
98 0:37              0 (const int)
99 0:37          Constant:
100 0:37            1 (const int)
101 0:37        Constant:
102 0:37          8.000000
103 0:38      Branch: Return with expression
104 0:38        'output' ( temp structure{ temp 2-element array of float edges})
105 0:?   Linker Objects
106 0:?     '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
107 0:?     'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
108 0:?     'm_cpid' ( in uint InvocationID)
109 0:?     'pid' ( in uint PrimitiveID)
110 0:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
111
112
113 Linked tessellation control stage:
114
115
116 Shader version: 500
117 vertices = 4
118 vertex spacing = equal_spacing
119 0:? Sequence
120 0:26  Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
121 0:26    Function Parameters: 
122 0:26      'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
123 0:26      'm_cpid' ( in uint)
124 0:?     Sequence
125 0:28      move second child to first child ( temp 3-component vector of float)
126 0:28        cpoint: direct index for structure ( temp 3-component vector of float)
127 0:28          'output' ( temp structure{ temp 3-component vector of float cpoint})
128 0:28          Constant:
129 0:28            0 (const int)
130 0:28        cpoint: direct index for structure ( temp 3-component vector of float)
131 0:28          direct index ( temp structure{ temp 3-component vector of float cpoint})
132 0:28            'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
133 0:28            Constant:
134 0:28              0 (const int)
135 0:28          Constant:
136 0:28            0 (const int)
137 0:29      Branch: Return with expression
138 0:29        'output' ( temp structure{ temp 3-component vector of float cpoint})
139 0:26  Function Definition: main( ( temp void)
140 0:26    Function Parameters: 
141 0:?     Sequence
142 0:26      move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
143 0:?         'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
144 0:?         'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
145 0:26      move second child to first child ( temp uint)
146 0:?         'm_cpid' ( temp uint)
147 0:?         'm_cpid' ( in uint InvocationID)
148 0:26      move second child to first child ( temp structure{ temp 3-component vector of float cpoint})
149 0:26        indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint})
150 0:?           '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
151 0:?           'm_cpid' ( in uint InvocationID)
152 0:26        Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
153 0:?           'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
154 0:?           'm_cpid' ( temp uint)
155 0:?       Barrier ( temp void)
156 0:?       Test condition and select ( temp void)
157 0:?         Condition
158 0:?         Compare Equal ( temp bool)
159 0:?           'm_cpid' ( in uint InvocationID)
160 0:?           Constant:
161 0:?             0 (const int)
162 0:?         true case
163 0:?         Sequence
164 0:?           move second child to first child ( temp structure{ temp 2-element array of float edges})
165 0:?             '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
166 0:?             Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges})
167 0:?               'pid' ( in uint PrimitiveID)
168 0:?           Sequence
169 0:?             move second child to first child ( temp float)
170 0:?               direct index ( patch out float TessLevelOuter)
171 0:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
172 0:?                 Constant:
173 0:?                   0 (const int)
174 0:?               direct index ( temp float)
175 0:?                 edges: direct index for structure ( temp 2-element array of float)
176 0:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
177 0:?                   Constant:
178 0:?                     0 (const int)
179 0:?                 Constant:
180 0:?                   0 (const int)
181 0:?             move second child to first child ( temp float)
182 0:?               direct index ( patch out float TessLevelOuter)
183 0:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
184 0:?                 Constant:
185 0:?                   1 (const int)
186 0:?               direct index ( temp float)
187 0:?                 edges: direct index for structure ( temp 2-element array of float)
188 0:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
189 0:?                   Constant:
190 0:?                     0 (const int)
191 0:?                 Constant:
192 0:?                   1 (const int)
193 0:33  Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges})
194 0:33    Function Parameters: 
195 0:33      'pid' ( in uint)
196 0:?     Sequence
197 0:36      move second child to first child ( temp float)
198 0:36        direct index ( temp float)
199 0:36          edges: direct index for structure ( temp 2-element array of float)
200 0:36            'output' ( temp structure{ temp 2-element array of float edges})
201 0:36            Constant:
202 0:36              0 (const int)
203 0:36          Constant:
204 0:36            0 (const int)
205 0:36        Constant:
206 0:36          2.000000
207 0:37      move second child to first child ( temp float)
208 0:37        direct index ( temp float)
209 0:37          edges: direct index for structure ( temp 2-element array of float)
210 0:37            'output' ( temp structure{ temp 2-element array of float edges})
211 0:37            Constant:
212 0:37              0 (const int)
213 0:37          Constant:
214 0:37            1 (const int)
215 0:37        Constant:
216 0:37          8.000000
217 0:38      Branch: Return with expression
218 0:38        'output' ( temp structure{ temp 2-element array of float edges})
219 0:?   Linker Objects
220 0:?     '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
221 0:?     'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
222 0:?     'm_cpid' ( in uint InvocationID)
223 0:?     'pid' ( in uint PrimitiveID)
224 0:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
225
226 // Module Version 10000
227 // Generated by (magic number): 80002
228 // Id's are bound by 89
229
230                               Capability Tessellation
231                1:             ExtInstImport  "GLSL.std.450"
232                               MemoryModel Logical GLSL450
233                               EntryPoint TessellationControl 4  "main" 40 44 48 65 71
234                               ExecutionMode 4 OutputVertices 4
235                               ExecutionMode 4 Isolines
236                               ExecutionMode 4 SpacingEqual
237                               Source HLSL 500
238                               Name 4  "main"
239                               Name 8  "VS_OUT"
240                               MemberName 8(VS_OUT) 0  "cpoint"
241                               Name 14  "HS_OUT"
242                               MemberName 14(HS_OUT) 0  "cpoint"
243                               Name 18  "@main(struct-VS_OUT-vf31[4];u1;"
244                               Name 16  "ip"
245                               Name 17  "m_cpid"
246                               Name 22  "HS_CONSTANT_OUT"
247                               MemberName 22(HS_CONSTANT_OUT) 0  "edges"
248                               Name 25  "PCF(u1;"
249                               Name 24  "pid"
250                               Name 28  "output"
251                               Name 38  "ip"
252                               Name 40  "ip"
253                               Name 42  "m_cpid"
254                               Name 44  "m_cpid"
255                               Name 48  "@entryPointOutput"
256                               Name 50  "param"
257                               Name 52  "param"
258                               Name 64  "@patchConstantResult"
259                               Name 65  "pid"
260                               Name 66  "param"
261                               Name 71  "@patchConstantOutput.edges"
262                               Name 81  "output"
263                               Decorate 40(ip) Location 0
264                               Decorate 44(m_cpid) BuiltIn InvocationId
265                               Decorate 48(@entryPointOutput) Location 0
266                               Decorate 65(pid) BuiltIn PrimitiveId
267                               Decorate 71(@patchConstantOutput.edges) Patch
268                               Decorate 71(@patchConstantOutput.edges) BuiltIn TessLevelOuter
269                2:             TypeVoid
270                3:             TypeFunction 2
271                6:             TypeFloat 32
272                7:             TypeVector 6(float) 3
273        8(VS_OUT):             TypeStruct 7(fvec3)
274                9:             TypeInt 32 0
275               10:      9(int) Constant 4
276               11:             TypeArray 8(VS_OUT) 10
277               12:             TypePointer Function 11
278               13:             TypePointer Function 9(int)
279       14(HS_OUT):             TypeStruct 7(fvec3)
280               15:             TypeFunction 14(HS_OUT) 12(ptr) 13(ptr)
281               20:      9(int) Constant 2
282               21:             TypeArray 6(float) 20
283 22(HS_CONSTANT_OUT):             TypeStruct 21
284               23:             TypeFunction 22(HS_CONSTANT_OUT) 13(ptr)
285               27:             TypePointer Function 14(HS_OUT)
286               29:             TypeInt 32 1
287               30:     29(int) Constant 0
288               31:             TypePointer Function 7(fvec3)
289               39:             TypePointer Input 11
290           40(ip):     39(ptr) Variable Input
291               43:             TypePointer Input 9(int)
292       44(m_cpid):     43(ptr) Variable Input
293               46:             TypeArray 14(HS_OUT) 10
294               47:             TypePointer Output 46
295 48(@entryPointOutput):     47(ptr) Variable Output
296               55:             TypePointer Output 14(HS_OUT)
297               57:      9(int) Constant 0
298               59:             TypeBool
299               63:             TypePointer Function 22(HS_CONSTANT_OUT)
300          65(pid):     43(ptr) Variable Input
301               69:             TypeArray 6(float) 10
302               70:             TypePointer Output 69
303 71(@patchConstantOutput.edges):     70(ptr) Variable Output
304               72:             TypePointer Function 6(float)
305               75:             TypePointer Output 6(float)
306               77:     29(int) Constant 1
307               82:    6(float) Constant 1073741824
308               84:    6(float) Constant 1090519040
309          4(main):           2 Function None 3
310                5:             Label
311           38(ip):     12(ptr) Variable Function
312       42(m_cpid):     13(ptr) Variable Function
313        50(param):     12(ptr) Variable Function
314        52(param):     13(ptr) Variable Function
315 64(@patchConstantResult):     63(ptr) Variable Function
316        66(param):     13(ptr) Variable Function
317               41:          11 Load 40(ip)
318                               Store 38(ip) 41
319               45:      9(int) Load 44(m_cpid)
320                               Store 42(m_cpid) 45
321               49:      9(int) Load 44(m_cpid)
322               51:          11 Load 38(ip)
323                               Store 50(param) 51
324               53:      9(int) Load 42(m_cpid)
325                               Store 52(param) 53
326               54:  14(HS_OUT) FunctionCall 18(@main(struct-VS_OUT-vf31[4];u1;) 50(param) 52(param)
327               56:     55(ptr) AccessChain 48(@entryPointOutput) 49
328                               Store 56 54
329                               ControlBarrier 20 10 57
330               58:      9(int) Load 44(m_cpid)
331               60:    59(bool) IEqual 58 30
332                               SelectionMerge 62 None
333                               BranchConditional 60 61 62
334               61:               Label
335               67:      9(int)   Load 65(pid)
336                                 Store 66(param) 67
337               68:22(HS_CONSTANT_OUT)   FunctionCall 25(PCF(u1;) 66(param)
338                                 Store 64(@patchConstantResult) 68
339               73:     72(ptr)   AccessChain 64(@patchConstantResult) 30 30
340               74:    6(float)   Load 73
341               76:     75(ptr)   AccessChain 71(@patchConstantOutput.edges) 30
342                                 Store 76 74
343               78:     72(ptr)   AccessChain 64(@patchConstantResult) 30 77
344               79:    6(float)   Load 78
345               80:     75(ptr)   AccessChain 71(@patchConstantOutput.edges) 77
346                                 Store 80 79
347                                 Branch 62
348               62:             Label
349                               Return
350                               FunctionEnd
351 18(@main(struct-VS_OUT-vf31[4];u1;):  14(HS_OUT) Function None 15
352           16(ip):     12(ptr) FunctionParameter
353       17(m_cpid):     13(ptr) FunctionParameter
354               19:             Label
355       28(output):     27(ptr) Variable Function
356               32:     31(ptr) AccessChain 16(ip) 30 30
357               33:    7(fvec3) Load 32
358               34:     31(ptr) AccessChain 28(output) 30
359                               Store 34 33
360               35:  14(HS_OUT) Load 28(output)
361                               ReturnValue 35
362                               FunctionEnd
363      25(PCF(u1;):22(HS_CONSTANT_OUT) Function None 23
364          24(pid):     13(ptr) FunctionParameter
365               26:             Label
366       81(output):     63(ptr) Variable Function
367               83:     72(ptr) AccessChain 81(output) 30 30
368                               Store 83 82
369               85:     72(ptr) AccessChain 81(output) 30 77
370                               Store 85 84
371               86:22(HS_CONSTANT_OUT) Load 81(output)
372                               ReturnValue 86
373                               FunctionEnd