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