1; SPIR-V
2; Version: 1.0
3; Generator: Khronos Glslang Reference Front End; 7
4; Bound: 207
5; Schema: 0
6               OpCapability Shader
7          %1 = OpExtInstImport "GLSL.std.450"
8               OpMemoryModel Logical GLSL450
9               OpEntryPoint Fragment %main "main"
10               OpExecutionMode %main OriginUpperLeft
11               OpSource ESSL 310
12               OpName %main "main"
13               OpName %f "f"
14               OpName %v4 "v4"
15               OpName %u "u"
16               OpName %uv4 "uv4"
17               OpName %iv3 "iv3"
18               OpName %i "i"
19               OpName %uv3 "uv3"
20               OpName %m2 "m2"
21               OpName %iv4 "iv4"
22               OpName %m4 "m4"
23               OpName %a "a"
24               OpName %S "S"
25               OpMemberName %S 0 "i"
26               OpName %s "s"
27               OpName %b "b"
28               OpName %arr "arr"
29               OpName %arr2 "arr2"
30               OpName %block "block"
31               OpMemberName %block 0 "f"
32               OpName %instanceName "instanceName"
33               OpDecorate %u RelaxedPrecision
34               OpDecorate %18 RelaxedPrecision
35               OpDecorate %19 RelaxedPrecision
36               OpDecorate %20 RelaxedPrecision
37               OpDecorate %uv4 RelaxedPrecision
38               OpDecorate %24 RelaxedPrecision
39               OpDecorate %25 RelaxedPrecision
40               OpDecorate %26 RelaxedPrecision
41               OpDecorate %27 RelaxedPrecision
42               OpDecorate %iv3 RelaxedPrecision
43               OpDecorate %32 RelaxedPrecision
44               OpDecorate %33 RelaxedPrecision
45               OpDecorate %34 RelaxedPrecision
46               OpDecorate %i RelaxedPrecision
47               OpDecorate %38 RelaxedPrecision
48               OpDecorate %39 RelaxedPrecision
49               OpDecorate %uv3 RelaxedPrecision
50               OpDecorate %43 RelaxedPrecision
51               OpDecorate %45 RelaxedPrecision
52               OpDecorate %46 RelaxedPrecision
53               OpDecorate %iv4 RelaxedPrecision
54               OpDecorate %62 RelaxedPrecision
55               OpDecorate %64 RelaxedPrecision
56               OpDecorate %65 RelaxedPrecision
57               OpDecorate %104 RelaxedPrecision
58               OpDecorate %105 RelaxedPrecision
59               OpMemberDecorate %S 0 RelaxedPrecision
60               OpDecorate %153 RelaxedPrecision
61               OpDecorate %154 RelaxedPrecision
62               OpDecorate %155 RelaxedPrecision
63               OpDecorate %156 RelaxedPrecision
64               OpDecorate %157 RelaxedPrecision
65               OpDecorate %158 RelaxedPrecision
66               OpDecorate %159 RelaxedPrecision
67               OpDecorate %160 RelaxedPrecision
68               OpDecorate %161 RelaxedPrecision
69               OpDecorate %162 RelaxedPrecision
70               OpDecorate %163 RelaxedPrecision
71               OpDecorate %164 RelaxedPrecision
72               OpDecorate %165 RelaxedPrecision
73               OpDecorate %166 RelaxedPrecision
74               OpDecorate %167 RelaxedPrecision
75               OpDecorate %168 RelaxedPrecision
76               OpDecorate %169 RelaxedPrecision
77               OpDecorate %170 RelaxedPrecision
78               OpDecorate %171 RelaxedPrecision
79               OpDecorate %172 RelaxedPrecision
80               OpDecorate %173 RelaxedPrecision
81               OpDecorate %174 RelaxedPrecision
82               OpDecorate %175 RelaxedPrecision
83               OpDecorate %176 RelaxedPrecision
84               OpDecorate %177 RelaxedPrecision
85               OpDecorate %178 RelaxedPrecision
86               OpDecorate %179 RelaxedPrecision
87               OpDecorate %180 RelaxedPrecision
88               OpDecorate %181 RelaxedPrecision
89               OpDecorate %182 RelaxedPrecision
90               OpDecorate %183 RelaxedPrecision
91               OpDecorate %184 RelaxedPrecision
92               OpDecorate %185 RelaxedPrecision
93               OpDecorate %186 RelaxedPrecision
94               OpDecorate %187 RelaxedPrecision
95               OpDecorate %188 RelaxedPrecision
96               OpDecorate %189 RelaxedPrecision
97               OpDecorate %190 RelaxedPrecision
98               OpDecorate %191 RelaxedPrecision
99               OpDecorate %192 RelaxedPrecision
100               OpDecorate %193 RelaxedPrecision
101               OpDecorate %194 RelaxedPrecision
102               OpDecorate %arr RelaxedPrecision
103               OpDecorate %arr2 RelaxedPrecision
104               OpMemberDecorate %block 0 RelaxedPrecision
105               OpMemberDecorate %block 0 Offset 0
106               OpDecorate %block Block
107               OpDecorate %instanceName DescriptorSet 0
108               OpDecorate %instanceName Binding 0
109       %void = OpTypeVoid
110          %3 = OpTypeFunction %void
111      %float = OpTypeFloat 32
112%_ptr_Function_float = OpTypePointer Function %float
113    %v4float = OpTypeVector %float 4
114%_ptr_Function_v4float = OpTypePointer Function %v4float
115       %uint = OpTypeInt 32 0
116%_ptr_Function_uint = OpTypePointer Function %uint
117     %v4uint = OpTypeVector %uint 4
118%_ptr_Function_v4uint = OpTypePointer Function %v4uint
119        %int = OpTypeInt 32 1
120      %v3int = OpTypeVector %int 3
121%_ptr_Function_v3int = OpTypePointer Function %v3int
122%_ptr_Function_int = OpTypePointer Function %int
123      %int_3 = OpConstant %int 3
124     %v3uint = OpTypeVector %uint 3
125%_ptr_Function_v3uint = OpTypePointer Function %v3uint
126     %uint_4 = OpConstant %uint 4
127    %v2float = OpTypeVector %float 2
128%mat2v2float = OpTypeMatrix %v2float 2
129%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
130    %float_1 = OpConstant %float 1
131      %v4int = OpTypeVector %int 4
132%_ptr_Function_v4int = OpTypePointer Function %v4int
133      %int_1 = OpConstant %int 1
134%mat4v4float = OpTypeMatrix %v4float 4
135%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
136       %bool = OpTypeBool
137     %v4bool = OpTypeVector %bool 4
138     %v2bool = OpTypeVector %bool 2
139     %uint_5 = OpConstant %uint 5
140%_arr_float_uint_5 = OpTypeArray %float %uint_5
141%_ptr_Private__arr_float_uint_5 = OpTypePointer Private %_arr_float_uint_5
142          %a = OpVariable %_ptr_Private__arr_float_uint_5 Private
143          %S = OpTypeStruct %int
144%_ptr_Private_S = OpTypePointer Private %S
145          %s = OpVariable %_ptr_Private_S Private
146%_ptr_Function_bool = OpTypePointer Function %bool
147     %uint_2 = OpConstant %uint 2
148%_arr_int_uint_2 = OpTypeArray %int %uint_2
149%_ptr_Function__arr_int_uint_2 = OpTypePointer Function %_arr_int_uint_2
150     %uint_3 = OpConstant %uint 3
151%_arr_int_uint_3 = OpTypeArray %int %uint_3
152%_ptr_Function__arr_int_uint_3 = OpTypePointer Function %_arr_int_uint_3
153      %int_2 = OpConstant %int 2
154      %block = OpTypeStruct %float
155%_ptr_Uniform_block = OpTypePointer Uniform %block
156%instanceName = OpVariable %_ptr_Uniform_block Uniform
157       %main = OpFunction %void None %3
158          %5 = OpLabel
159          %f = OpVariable %_ptr_Function_float Function
160         %v4 = OpVariable %_ptr_Function_v4float Function
161          %u = OpVariable %_ptr_Function_uint Function
162        %uv4 = OpVariable %_ptr_Function_v4uint Function
163        %iv3 = OpVariable %_ptr_Function_v3int Function
164          %i = OpVariable %_ptr_Function_int Function
165        %uv3 = OpVariable %_ptr_Function_v3uint Function
166         %m2 = OpVariable %_ptr_Function_mat2v2float Function
167        %iv4 = OpVariable %_ptr_Function_v4int Function
168         %m4 = OpVariable %_ptr_Function_mat4v4float Function
169          %b = OpVariable %_ptr_Function_bool Function
170        %arr = OpVariable %_ptr_Function__arr_int_uint_2 Function
171       %arr2 = OpVariable %_ptr_Function__arr_int_uint_3 Function
172          %9 = OpLoad %float %f
173         %13 = OpLoad %v4float %v4
174         %14 = OpVectorTimesScalar %v4float %13 %9
175         %18 = OpLoad %uint %u
176         %19 = OpLoad %uint %u
177         %20 = OpIAdd %uint %18 %19
178         %24 = OpLoad %v4uint %uv4
179         %25 = OpLoad %uint %u
180         %26 = OpCompositeConstruct %v4uint %25 %25 %25 %25
181         %27 = OpUDiv %v4uint %24 %26
182         %32 = OpLoad %v3int %iv3
183         %33 = OpLoad %v3int %iv3
184         %34 = OpISub %v3int %33 %32
185               OpStore %iv3 %34
186         %38 = OpLoad %int %i
187         %39 = OpSMod %int %38 %int_3
188               OpStore %i %39
189         %43 = OpLoad %v3uint %uv3
190         %45 = OpCompositeConstruct %v3uint %uint_4 %uint_4 %uint_4
191         %46 = OpUMod %v3uint %43 %45
192         %51 = OpLoad %mat2v2float %m2
193         %53 = OpCompositeConstruct %v2float %float_1 %float_1
194         %54 = OpCompositeExtract %v2float %51 0
195         %55 = OpFSub %v2float %54 %53
196         %56 = OpCompositeExtract %v2float %51 1
197         %57 = OpFSub %v2float %56 %53
198         %58 = OpCompositeConstruct %mat2v2float %55 %57
199               OpStore %m2 %58
200         %62 = OpLoad %v4int %iv4
201         %64 = OpCompositeConstruct %v4int %int_1 %int_1 %int_1 %int_1
202         %65 = OpIAdd %v4int %62 %64
203               OpStore %iv4 %65
204         %69 = OpLoad %mat4v4float %m4
205         %70 = OpLoad %mat4v4float %m4
206         %72 = OpCompositeExtract %v4float %69 0
207         %73 = OpCompositeExtract %v4float %70 0
208         %75 = OpFOrdNotEqual %v4bool %72 %73
209         %76 = OpAny %bool %75
210         %77 = OpCompositeExtract %v4float %69 1
211         %78 = OpCompositeExtract %v4float %70 1
212         %79 = OpFOrdNotEqual %v4bool %77 %78
213         %80 = OpAny %bool %79
214         %81 = OpLogicalOr %bool %76 %80
215         %82 = OpCompositeExtract %v4float %69 2
216         %83 = OpCompositeExtract %v4float %70 2
217         %84 = OpFOrdNotEqual %v4bool %82 %83
218         %85 = OpAny %bool %84
219         %86 = OpLogicalOr %bool %81 %85
220         %87 = OpCompositeExtract %v4float %69 3
221         %88 = OpCompositeExtract %v4float %70 3
222         %89 = OpFOrdNotEqual %v4bool %87 %88
223         %90 = OpAny %bool %89
224         %91 = OpLogicalOr %bool %86 %90
225         %92 = OpLoad %mat2v2float %m2
226         %93 = OpLoad %mat2v2float %m2
227         %94 = OpCompositeExtract %v2float %92 0
228         %95 = OpCompositeExtract %v2float %93 0
229         %97 = OpFOrdEqual %v2bool %94 %95
230         %98 = OpAll %bool %97
231         %99 = OpCompositeExtract %v2float %92 1
232        %100 = OpCompositeExtract %v2float %93 1
233        %101 = OpFOrdEqual %v2bool %99 %100
234        %102 = OpAll %bool %101
235        %103 = OpLogicalAnd %bool %98 %102
236        %104 = OpLoad %int %i
237        %105 = OpLoad %int %i
238        %106 = OpSLessThanEqual %bool %104 %105
239        %111 = OpLoad %_arr_float_uint_5 %a
240        %112 = OpLoad %_arr_float_uint_5 %a
241        %113 = OpCompositeExtract %float %111 0
242        %114 = OpCompositeExtract %float %112 0
243        %115 = OpFOrdEqual %bool %113 %114
244        %116 = OpCompositeExtract %float %111 1
245        %117 = OpCompositeExtract %float %112 1
246        %118 = OpFOrdEqual %bool %116 %117
247        %119 = OpLogicalAnd %bool %115 %118
248        %120 = OpCompositeExtract %float %111 2
249        %121 = OpCompositeExtract %float %112 2
250        %122 = OpFOrdEqual %bool %120 %121
251        %123 = OpLogicalAnd %bool %119 %122
252        %124 = OpCompositeExtract %float %111 3
253        %125 = OpCompositeExtract %float %112 3
254        %126 = OpFOrdEqual %bool %124 %125
255        %127 = OpLogicalAnd %bool %123 %126
256        %128 = OpCompositeExtract %float %111 4
257        %129 = OpCompositeExtract %float %112 4
258        %130 = OpFOrdEqual %bool %128 %129
259        %131 = OpLogicalAnd %bool %127 %130
260        %135 = OpLoad %S %s
261        %136 = OpLoad %S %s
262        %137 = OpCompositeExtract %int %135 0
263        %138 = OpCompositeExtract %int %136 0
264        %139 = OpINotEqual %bool %137 %138
265        %142 = OpLoad %bool %b
266        %143 = OpLoad %bool %b
267        %144 = OpLogicalAnd %bool %142 %143
268        %145 = OpLoad %bool %b
269        %146 = OpLoad %bool %b
270        %147 = OpLogicalOr %bool %145 %146
271        %148 = OpLoad %bool %b
272        %149 = OpLoad %bool %b
273        %150 = OpLogicalNotEqual %bool %148 %149
274        %151 = OpLoad %bool %b
275        %152 = OpLogicalNot %bool %151
276        %153 = OpLoad %int %i
277        %154 = OpNot %int %153
278        %155 = OpLoad %uint %u
279        %156 = OpNot %uint %155
280        %157 = OpLoad %v3uint %uv3
281        %158 = OpNot %v3uint %157
282        %159 = OpLoad %v3int %iv3
283        %160 = OpNot %v3int %159
284        %161 = OpLoad %int %i
285        %162 = OpLoad %v3uint %uv3
286        %163 = OpCompositeConstruct %v3int %161 %161 %161
287        %164 = OpShiftLeftLogical %v3uint %162 %163
288               OpStore %uv3 %164
289        %165 = OpLoad %int %i
290        %166 = OpLoad %int %i
291        %167 = OpShiftRightArithmetic %int %165 %166
292        %168 = OpLoad %uint %u
293        %169 = OpLoad %uint %u
294        %170 = OpShiftLeftLogical %uint %168 %169
295        %171 = OpLoad %v3int %iv3
296        %172 = OpLoad %v3int %iv3
297        %173 = OpShiftRightArithmetic %v3int %171 %172
298        %174 = OpLoad %int %i
299        %175 = OpLoad %int %i
300        %176 = OpBitwiseAnd %int %174 %175
301        %177 = OpLoad %uint %u
302        %178 = OpLoad %uint %u
303        %179 = OpBitwiseOr %uint %177 %178
304        %180 = OpLoad %v3int %iv3
305        %181 = OpLoad %v3int %iv3
306        %182 = OpBitwiseXor %v3int %180 %181
307        %183 = OpLoad %uint %u
308        %184 = OpLoad %v3uint %uv3
309        %185 = OpCompositeConstruct %v3uint %183 %183 %183
310        %186 = OpBitwiseAnd %v3uint %185 %184
311        %187 = OpLoad %v3uint %uv3
312        %188 = OpLoad %uint %u
313        %189 = OpCompositeConstruct %v3uint %188 %188 %188
314        %190 = OpBitwiseOr %v3uint %187 %189
315        %191 = OpLoad %uint %u
316        %192 = OpLoad %v3uint %uv3
317        %193 = OpCompositeConstruct %v3uint %191 %191 %191
318        %194 = OpBitwiseAnd %v3uint %192 %193
319               OpStore %uv3 %194
320               OpReturn
321               OpFunctionEnd
322