72efcc0eb29dae7ca59d66d21d9766977dbea054
[platform/upstream/glslang.git] / Test / baseResults / hlsl.structbuffer.incdec.frag.out
1 hlsl.structbuffer.incdec.frag
2 Shader version: 500
3 gl_FragCoord origin is upper left
4 0:? Sequence
5 0:7  Function Definition: @main(u1; ( temp 4-component vector of float)
6 0:7    Function Parameters: 
7 0:7      'pos' ( in uint)
8 0:?     Sequence
9 0:8      Sequence
10 0:8        move second child to first child ( temp 4-component vector of uint)
11 0:8          'result' ( temp 4-component vector of uint)
12 0:8          Constant:
13 0:8            0 (const uint)
14 0:8            0 (const uint)
15 0:8            0 (const uint)
16 0:8            0 (const uint)
17 0:10      direct index (layout( row_major std430) buffer 4-component vector of uint)
18 0:10        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
19 0:10          'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
20 0:10          Constant:
21 0:10            0 (const uint)
22 0:10        Constant:
23 0:10          7 (const int)
24 0:11      direct index (layout( row_major std430) buffer 4-component vector of uint)
25 0:11        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
26 0:11          'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
27 0:11          Constant:
28 0:11            0 (const uint)
29 0:11        Constant:
30 0:11          7 (const int)
31 0:13      move second child to first child ( temp 4-component vector of uint)
32 0:13        direct index (layout( row_major std430) buffer 4-component vector of uint)
33 0:13          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
34 0:13            'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
35 0:13            Constant:
36 0:13              0 (const uint)
37 0:13          Constant:
38 0:13            5 (const int)
39 0:13        Constant:
40 0:13          2 (const uint)
41 0:13          2 (const uint)
42 0:13          2 (const uint)
43 0:13          2 (const uint)
44 0:15      Sequence
45 0:15        move second child to first child ( temp uint)
46 0:15          'c1' ( temp uint)
47 0:15          AtomicAdd ( temp uint)
48 0:15            @count: direct index for structure ( temp uint)
49 0:15              'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
50 0:15              Constant:
51 0:15                0 (const int)
52 0:15            Constant:
53 0:15              1 (const uint)
54 0:16      Sequence
55 0:16        move second child to first child ( temp uint)
56 0:16          'c2' ( temp uint)
57 0:16          add ( temp uint)
58 0:16            AtomicAdd ( temp uint)
59 0:16              @count: direct index for structure ( temp uint)
60 0:16                'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
61 0:16                Constant:
62 0:16                  0 (const int)
63 0:16              Constant:
64 0:16                4294967295 (const uint)
65 0:16            Constant:
66 0:16              -1 (const int)
67 0:18      Branch: Return with expression
68 0:18        Construct vec4 ( temp 4-component vector of float)
69 0:18          Convert uint to float ( temp float)
70 0:18            direct index ( temp uint)
71 0:18              'result' ( temp 4-component vector of uint)
72 0:18              Constant:
73 0:18                0 (const int)
74 0:18          Convert uint to float ( temp float)
75 0:18            direct index ( temp uint)
76 0:18              'result' ( temp 4-component vector of uint)
77 0:18              Constant:
78 0:18                1 (const int)
79 0:18          Convert uint to float ( temp float)
80 0:18            'c1' ( temp uint)
81 0:18          Convert uint to float ( temp float)
82 0:18            'c2' ( temp uint)
83 0:7  Function Definition: main( ( temp void)
84 0:7    Function Parameters: 
85 0:?     Sequence
86 0:7      move second child to first child ( temp uint)
87 0:?         'pos' ( temp uint)
88 0:?         'pos' (layout( location=0) flat in uint)
89 0:7      move second child to first child ( temp 4-component vector of float)
90 0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
91 0:7        Function Call: @main(u1; ( temp 4-component vector of float)
92 0:?           'pos' ( temp uint)
93 0:?   Linker Objects
94 0:?     'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
95 0:?     'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
96 0:?     'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
97 0:?     'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
98 0:?     'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
99 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
100 0:?     'pos' (layout( location=0) flat in uint)
101
102
103 Linked fragment stage:
104
105
106 Shader version: 500
107 gl_FragCoord origin is upper left
108 0:? Sequence
109 0:7  Function Definition: @main(u1; ( temp 4-component vector of float)
110 0:7    Function Parameters: 
111 0:7      'pos' ( in uint)
112 0:?     Sequence
113 0:8      Sequence
114 0:8        move second child to first child ( temp 4-component vector of uint)
115 0:8          'result' ( temp 4-component vector of uint)
116 0:8          Constant:
117 0:8            0 (const uint)
118 0:8            0 (const uint)
119 0:8            0 (const uint)
120 0:8            0 (const uint)
121 0:10      direct index (layout( row_major std430) buffer 4-component vector of uint)
122 0:10        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
123 0:10          'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
124 0:10          Constant:
125 0:10            0 (const uint)
126 0:10        Constant:
127 0:10          7 (const int)
128 0:11      direct index (layout( row_major std430) buffer 4-component vector of uint)
129 0:11        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
130 0:11          'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
131 0:11          Constant:
132 0:11            0 (const uint)
133 0:11        Constant:
134 0:11          7 (const int)
135 0:13      move second child to first child ( temp 4-component vector of uint)
136 0:13        direct index (layout( row_major std430) buffer 4-component vector of uint)
137 0:13          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
138 0:13            'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
139 0:13            Constant:
140 0:13              0 (const uint)
141 0:13          Constant:
142 0:13            5 (const int)
143 0:13        Constant:
144 0:13          2 (const uint)
145 0:13          2 (const uint)
146 0:13          2 (const uint)
147 0:13          2 (const uint)
148 0:15      Sequence
149 0:15        move second child to first child ( temp uint)
150 0:15          'c1' ( temp uint)
151 0:15          AtomicAdd ( temp uint)
152 0:15            @count: direct index for structure ( temp uint)
153 0:15              'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
154 0:15              Constant:
155 0:15                0 (const int)
156 0:15            Constant:
157 0:15              1 (const uint)
158 0:16      Sequence
159 0:16        move second child to first child ( temp uint)
160 0:16          'c2' ( temp uint)
161 0:16          add ( temp uint)
162 0:16            AtomicAdd ( temp uint)
163 0:16              @count: direct index for structure ( temp uint)
164 0:16                'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
165 0:16                Constant:
166 0:16                  0 (const int)
167 0:16              Constant:
168 0:16                4294967295 (const uint)
169 0:16            Constant:
170 0:16              -1 (const int)
171 0:18      Branch: Return with expression
172 0:18        Construct vec4 ( temp 4-component vector of float)
173 0:18          Convert uint to float ( temp float)
174 0:18            direct index ( temp uint)
175 0:18              'result' ( temp 4-component vector of uint)
176 0:18              Constant:
177 0:18                0 (const int)
178 0:18          Convert uint to float ( temp float)
179 0:18            direct index ( temp uint)
180 0:18              'result' ( temp 4-component vector of uint)
181 0:18              Constant:
182 0:18                1 (const int)
183 0:18          Convert uint to float ( temp float)
184 0:18            'c1' ( temp uint)
185 0:18          Convert uint to float ( temp float)
186 0:18            'c2' ( temp uint)
187 0:7  Function Definition: main( ( temp void)
188 0:7    Function Parameters: 
189 0:?     Sequence
190 0:7      move second child to first child ( temp uint)
191 0:?         'pos' ( temp uint)
192 0:?         'pos' (layout( location=0) flat in uint)
193 0:7      move second child to first child ( temp 4-component vector of float)
194 0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
195 0:7        Function Call: @main(u1; ( temp 4-component vector of float)
196 0:?           'pos' ( temp uint)
197 0:?   Linker Objects
198 0:?     'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
199 0:?     'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
200 0:?     'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
201 0:?     'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
202 0:?     'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
203 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
204 0:?     'pos' (layout( location=0) flat in uint)
205
206 // Module Version 10000
207 // Generated by (magic number): 8000b
208 // Id's are bound by 70
209
210                               Capability Shader
211                1:             ExtInstImport  "GLSL.std.450"
212                               MemoryModel Logical GLSL450
213                               EntryPoint Fragment 4  "main" 63 66
214                               ExecutionMode 4 OriginUpperLeft
215                               Source HLSL 500
216                               Name 4  "main"
217                               Name 12  "@main(u1;"
218                               Name 11  "pos"
219                               Name 16  "result"
220                               Name 20  "sbuf_rw_i"
221                               MemberName 20(sbuf_rw_i) 0  "@data"
222                               Name 22  "sbuf_rw_i"
223                               Name 26  "sbuf_rw_d"
224                               Name 27  "sbuf_rw_nocounter"
225                               Name 33  "c1"
226                               Name 34  "sbuf_rw_i@count"
227                               MemberName 34(sbuf_rw_i@count) 0  "@count"
228                               Name 36  "sbuf_rw_i@count"
229                               Name 41  "c2"
230                               Name 42  "sbuf_rw_d@count"
231                               Name 61  "pos"
232                               Name 63  "pos"
233                               Name 66  "@entryPointOutput"
234                               Name 67  "param"
235                               Decorate 19 ArrayStride 16
236                               MemberDecorate 20(sbuf_rw_i) 0 Offset 0
237                               Decorate 20(sbuf_rw_i) BufferBlock
238                               Decorate 22(sbuf_rw_i) DescriptorSet 0
239                               Decorate 22(sbuf_rw_i) Binding 0
240                               Decorate 26(sbuf_rw_d) DescriptorSet 0
241                               Decorate 26(sbuf_rw_d) Binding 2
242                               Decorate 27(sbuf_rw_nocounter) DescriptorSet 0
243                               Decorate 27(sbuf_rw_nocounter) Binding 4
244                               MemberDecorate 34(sbuf_rw_i@count) 0 Offset 0
245                               Decorate 34(sbuf_rw_i@count) BufferBlock
246                               Decorate 36(sbuf_rw_i@count) DescriptorSet 0
247                               Decorate 36(sbuf_rw_i@count) Binding 1
248                               Decorate 42(sbuf_rw_d@count) DescriptorSet 0
249                               Decorate 42(sbuf_rw_d@count) Binding 3
250                               Decorate 63(pos) Flat
251                               Decorate 63(pos) Location 0
252                               Decorate 66(@entryPointOutput) Location 0
253                2:             TypeVoid
254                3:             TypeFunction 2
255                6:             TypeInt 32 0
256                7:             TypePointer Function 6(int)
257                8:             TypeFloat 32
258                9:             TypeVector 8(float) 4
259               10:             TypeFunction 9(fvec4) 7(ptr)
260               14:             TypeVector 6(int) 4
261               15:             TypePointer Function 14(ivec4)
262               17:      6(int) Constant 0
263               18:   14(ivec4) ConstantComposite 17 17 17 17
264               19:             TypeRuntimeArray 14(ivec4)
265    20(sbuf_rw_i):             TypeStruct 19
266               21:             TypePointer Uniform 20(sbuf_rw_i)
267    22(sbuf_rw_i):     21(ptr) Variable Uniform
268               23:             TypeInt 32 1
269               24:     23(int) Constant 0
270               25:     23(int) Constant 7
271    26(sbuf_rw_d):     21(ptr) Variable Uniform
272 27(sbuf_rw_nocounter):     21(ptr) Variable Uniform
273               28:     23(int) Constant 5
274               29:      6(int) Constant 2
275               30:   14(ivec4) ConstantComposite 29 29 29 29
276               31:             TypePointer Uniform 14(ivec4)
277 34(sbuf_rw_i@count):             TypeStruct 6(int)
278               35:             TypePointer Uniform 34(sbuf_rw_i@count)
279 36(sbuf_rw_i@count):     35(ptr) Variable Uniform
280               37:             TypePointer Uniform 6(int)
281               39:      6(int) Constant 1
282 42(sbuf_rw_d@count):     35(ptr) Variable Uniform
283               44:      6(int) Constant 4294967295
284               46:     23(int) Constant 4294967295
285               62:             TypePointer Input 6(int)
286          63(pos):     62(ptr) Variable Input
287               65:             TypePointer Output 9(fvec4)
288 66(@entryPointOutput):     65(ptr) Variable Output
289          4(main):           2 Function None 3
290                5:             Label
291          61(pos):      7(ptr) Variable Function
292        67(param):      7(ptr) Variable Function
293               64:      6(int) Load 63(pos)
294                               Store 61(pos) 64
295               68:      6(int) Load 61(pos)
296                               Store 67(param) 68
297               69:    9(fvec4) FunctionCall 12(@main(u1;) 67(param)
298                               Store 66(@entryPointOutput) 69
299                               Return
300                               FunctionEnd
301    12(@main(u1;):    9(fvec4) Function None 10
302          11(pos):      7(ptr) FunctionParameter
303               13:             Label
304       16(result):     15(ptr) Variable Function
305           33(c1):      7(ptr) Variable Function
306           41(c2):      7(ptr) Variable Function
307                               Store 16(result) 18
308               32:     31(ptr) AccessChain 27(sbuf_rw_nocounter) 24 28
309                               Store 32 30
310               38:     37(ptr) AccessChain 36(sbuf_rw_i@count) 24
311               40:      6(int) AtomicIAdd 38 39 17 39
312                               Store 33(c1) 40
313               43:     37(ptr) AccessChain 42(sbuf_rw_d@count) 24
314               45:      6(int) AtomicIAdd 43 39 17 44
315               47:      6(int) IAdd 45 46
316                               Store 41(c2) 47
317               48:      7(ptr) AccessChain 16(result) 17
318               49:      6(int) Load 48
319               50:    8(float) ConvertUToF 49
320               51:      7(ptr) AccessChain 16(result) 39
321               52:      6(int) Load 51
322               53:    8(float) ConvertUToF 52
323               54:      6(int) Load 33(c1)
324               55:    8(float) ConvertUToF 54
325               56:      6(int) Load 41(c2)
326               57:    8(float) ConvertUToF 56
327               58:    9(fvec4) CompositeConstruct 50 53 55 57
328                               ReturnValue 58
329                               FunctionEnd