Update rive-cpp to 2.0 version
[platform/core/uifw/rive-tizen.git] / submodule / skia / tests / sksl / shared / VectorToMatrixCast.asm.frag
1 OpCapability Shader
2 %1 = OpExtInstImport "GLSL.std.450"
3 OpMemoryModel Logical GLSL450
4 OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
5 OpExecutionMode %_entrypoint_v OriginUpperLeft
6 OpName %sk_FragColor "sk_FragColor"
7 OpName %sk_Clockwise "sk_Clockwise"
8 OpName %_UniformBuffer "_UniformBuffer"
9 OpMemberName %_UniformBuffer 0 "colorGreen"
10 OpMemberName %_UniformBuffer 1 "colorRed"
11 OpMemberName %_UniformBuffer 2 "testInputs"
12 OpName %_entrypoint_v "_entrypoint_v"
13 OpName %main "main"
14 OpName %ok "ok"
15 OpDecorate %sk_FragColor RelaxedPrecision
16 OpDecorate %sk_FragColor Location 0
17 OpDecorate %sk_FragColor Index 0
18 OpDecorate %sk_Clockwise BuiltIn FrontFacing
19 OpMemberDecorate %_UniformBuffer 0 Offset 0
20 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
21 OpMemberDecorate %_UniformBuffer 1 Offset 16
22 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
23 OpMemberDecorate %_UniformBuffer 2 Offset 32
24 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
25 OpDecorate %_UniformBuffer Block
26 OpDecorate %10 Binding 0
27 OpDecorate %10 DescriptorSet 0
28 OpDecorate %36 RelaxedPrecision
29 OpDecorate %37 RelaxedPrecision
30 OpDecorate %38 RelaxedPrecision
31 OpDecorate %39 RelaxedPrecision
32 OpDecorate %40 RelaxedPrecision
33 OpDecorate %41 RelaxedPrecision
34 OpDecorate %42 RelaxedPrecision
35 OpDecorate %44 RelaxedPrecision
36 OpDecorate %52 RelaxedPrecision
37 OpDecorate %54 RelaxedPrecision
38 OpDecorate %61 RelaxedPrecision
39 OpDecorate %79 RelaxedPrecision
40 OpDecorate %80 RelaxedPrecision
41 OpDecorate %81 RelaxedPrecision
42 OpDecorate %82 RelaxedPrecision
43 OpDecorate %83 RelaxedPrecision
44 OpDecorate %84 RelaxedPrecision
45 OpDecorate %85 RelaxedPrecision
46 OpDecorate %86 RelaxedPrecision
47 OpDecorate %90 RelaxedPrecision
48 OpDecorate %92 RelaxedPrecision
49 OpDecorate %99 RelaxedPrecision
50 OpDecorate %100 RelaxedPrecision
51 OpDecorate %101 RelaxedPrecision
52 OpDecorate %102 RelaxedPrecision
53 OpDecorate %103 RelaxedPrecision
54 OpDecorate %104 RelaxedPrecision
55 OpDecorate %105 RelaxedPrecision
56 OpDecorate %106 RelaxedPrecision
57 OpDecorate %107 RelaxedPrecision
58 OpDecorate %109 RelaxedPrecision
59 OpDecorate %116 RelaxedPrecision
60 OpDecorate %117 RelaxedPrecision
61 OpDecorate %119 RelaxedPrecision
62 OpDecorate %121 RelaxedPrecision
63 OpDecorate %123 RelaxedPrecision
64 OpDecorate %128 RelaxedPrecision
65 OpDecorate %130 RelaxedPrecision
66 OpDecorate %132 RelaxedPrecision
67 OpDecorate %134 RelaxedPrecision
68 OpDecorate %135 RelaxedPrecision
69 OpDecorate %136 RelaxedPrecision
70 OpDecorate %137 RelaxedPrecision
71 OpDecorate %138 RelaxedPrecision
72 OpDecorate %139 RelaxedPrecision
73 OpDecorate %140 RelaxedPrecision
74 OpDecorate %141 RelaxedPrecision
75 OpDecorate %142 RelaxedPrecision
76 OpDecorate %143 RelaxedPrecision
77 OpDecorate %145 RelaxedPrecision
78 OpDecorate %152 RelaxedPrecision
79 OpDecorate %153 RelaxedPrecision
80 OpDecorate %154 RelaxedPrecision
81 OpDecorate %155 RelaxedPrecision
82 OpDecorate %156 RelaxedPrecision
83 OpDecorate %157 RelaxedPrecision
84 OpDecorate %158 RelaxedPrecision
85 OpDecorate %159 RelaxedPrecision
86 OpDecorate %160 RelaxedPrecision
87 OpDecorate %162 RelaxedPrecision
88 OpDecorate %169 RelaxedPrecision
89 OpDecorate %170 RelaxedPrecision
90 OpDecorate %171 RelaxedPrecision
91 OpDecorate %172 RelaxedPrecision
92 OpDecorate %173 RelaxedPrecision
93 OpDecorate %174 RelaxedPrecision
94 OpDecorate %175 RelaxedPrecision
95 OpDecorate %176 RelaxedPrecision
96 OpDecorate %177 RelaxedPrecision
97 OpDecorate %179 RelaxedPrecision
98 OpDecorate %186 RelaxedPrecision
99 OpDecorate %187 RelaxedPrecision
100 OpDecorate %189 RelaxedPrecision
101 OpDecorate %191 RelaxedPrecision
102 OpDecorate %193 RelaxedPrecision
103 OpDecorate %198 RelaxedPrecision
104 OpDecorate %200 RelaxedPrecision
105 OpDecorate %202 RelaxedPrecision
106 OpDecorate %204 RelaxedPrecision
107 OpDecorate %205 RelaxedPrecision
108 OpDecorate %206 RelaxedPrecision
109 OpDecorate %207 RelaxedPrecision
110 OpDecorate %208 RelaxedPrecision
111 OpDecorate %209 RelaxedPrecision
112 OpDecorate %210 RelaxedPrecision
113 OpDecorate %211 RelaxedPrecision
114 OpDecorate %212 RelaxedPrecision
115 OpDecorate %213 RelaxedPrecision
116 OpDecorate %215 RelaxedPrecision
117 OpDecorate %225 RelaxedPrecision
118 OpDecorate %228 RelaxedPrecision
119 OpDecorate %229 RelaxedPrecision
120 %float = OpTypeFloat 32
121 %v4float = OpTypeVector %float 4
122 %_ptr_Output_v4float = OpTypePointer Output %v4float
123 %sk_FragColor = OpVariable %_ptr_Output_v4float Output
124 %bool = OpTypeBool
125 %_ptr_Input_bool = OpTypePointer Input %bool
126 %sk_Clockwise = OpVariable %_ptr_Input_bool Input
127 %_UniformBuffer = OpTypeStruct %v4float %v4float %v4float
128 %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
129 %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
130 %void = OpTypeVoid
131 %15 = OpTypeFunction %void
132 %float_0 = OpConstant %float 0
133 %v2float = OpTypeVector %float 2
134 %19 = OpConstantComposite %v2float %float_0 %float_0
135 %_ptr_Function_v2float = OpTypePointer Function %v2float
136 %23 = OpTypeFunction %v4float %_ptr_Function_v2float
137 %_ptr_Function_bool = OpTypePointer Function %bool
138 %true = OpConstantTrue %bool
139 %false = OpConstantFalse %bool
140 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
141 %int = OpTypeInt 32 1
142 %int_2 = OpConstant %int 2
143 %mat2v2float = OpTypeMatrix %v2float 2
144 %float_n1_25 = OpConstant %float -1.25
145 %float_0_75 = OpConstant %float 0.75
146 %float_2_25 = OpConstant %float 2.25
147 %48 = OpConstantComposite %v2float %float_n1_25 %float_0
148 %49 = OpConstantComposite %v2float %float_0_75 %float_2_25
149 %50 = OpConstantComposite %mat2v2float %48 %49
150 %v2bool = OpTypeVector %bool 2
151 %int_0 = OpConstant %int 0
152 %float_1 = OpConstant %float 1
153 %88 = OpConstantComposite %v2float %float_0 %float_1
154 %89 = OpConstantComposite %mat2v2float %88 %88
155 %v4int = OpTypeVector %int 4
156 %v4bool = OpTypeVector %bool 4
157 %_ptr_Function_v4float = OpTypePointer Function %v4float
158 %int_1 = OpConstant %int 1
159 %_entrypoint_v = OpFunction %void None %15
160 %16 = OpLabel
161 %20 = OpVariable %_ptr_Function_v2float Function
162 OpStore %20 %19
163 %22 = OpFunctionCall %v4float %main %20
164 OpStore %sk_FragColor %22
165 OpReturn
166 OpFunctionEnd
167 %main = OpFunction %v4float None %23
168 %24 = OpFunctionParameter %_ptr_Function_v2float
169 %25 = OpLabel
170 %ok = OpVariable %_ptr_Function_bool Function
171 %219 = OpVariable %_ptr_Function_v4float Function
172 OpStore %ok %true
173 OpSelectionMerge %31 None
174 OpBranchConditional %true %30 %31
175 %30 = OpLabel
176 %32 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
177 %36 = OpLoad %v4float %32
178 %37 = OpCompositeExtract %float %36 0
179 %38 = OpCompositeExtract %float %36 1
180 %39 = OpCompositeExtract %float %36 2
181 %40 = OpCompositeExtract %float %36 3
182 %41 = OpCompositeConstruct %v2float %37 %38
183 %42 = OpCompositeConstruct %v2float %39 %40
184 %44 = OpCompositeConstruct %mat2v2float %41 %42
185 %52 = OpFOrdEqual %v2bool %41 %48
186 %53 = OpAll %bool %52
187 %54 = OpFOrdEqual %v2bool %42 %49
188 %55 = OpAll %bool %54
189 %56 = OpLogicalAnd %bool %53 %55
190 OpBranch %31
191 %31 = OpLabel
192 %57 = OpPhi %bool %false %25 %56 %30
193 OpStore %ok %57
194 OpSelectionMerge %59 None
195 OpBranchConditional %57 %58 %59
196 %58 = OpLabel
197 %60 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
198 %61 = OpLoad %v4float %60
199 %62 = OpCompositeExtract %float %61 0
200 %63 = OpCompositeExtract %float %61 1
201 %64 = OpCompositeExtract %float %61 2
202 %65 = OpCompositeExtract %float %61 3
203 %66 = OpCompositeConstruct %v2float %62 %63
204 %67 = OpCompositeConstruct %v2float %64 %65
205 %68 = OpCompositeConstruct %mat2v2float %66 %67
206 %69 = OpFOrdEqual %v2bool %66 %48
207 %70 = OpAll %bool %69
208 %71 = OpFOrdEqual %v2bool %67 %49
209 %72 = OpAll %bool %71
210 %73 = OpLogicalAnd %bool %70 %72
211 OpBranch %59
212 %59 = OpLabel
213 %74 = OpPhi %bool %false %31 %73 %58
214 OpStore %ok %74
215 OpSelectionMerge %76 None
216 OpBranchConditional %74 %75 %76
217 %75 = OpLabel
218 %77 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
219 %79 = OpLoad %v4float %77
220 %80 = OpCompositeExtract %float %79 0
221 %81 = OpCompositeExtract %float %79 1
222 %82 = OpCompositeExtract %float %79 2
223 %83 = OpCompositeExtract %float %79 3
224 %84 = OpCompositeConstruct %v2float %80 %81
225 %85 = OpCompositeConstruct %v2float %82 %83
226 %86 = OpCompositeConstruct %mat2v2float %84 %85
227 %90 = OpFOrdEqual %v2bool %84 %88
228 %91 = OpAll %bool %90
229 %92 = OpFOrdEqual %v2bool %85 %88
230 %93 = OpAll %bool %92
231 %94 = OpLogicalAnd %bool %91 %93
232 OpBranch %76
233 %76 = OpLabel
234 %95 = OpPhi %bool %false %59 %94 %75
235 OpStore %ok %95
236 OpSelectionMerge %97 None
237 OpBranchConditional %95 %96 %97
238 %96 = OpLabel
239 %98 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
240 %99 = OpLoad %v4float %98
241 %100 = OpCompositeExtract %float %99 0
242 %101 = OpCompositeExtract %float %99 1
243 %102 = OpCompositeExtract %float %99 2
244 %103 = OpCompositeExtract %float %99 3
245 %104 = OpCompositeConstruct %v2float %100 %101
246 %105 = OpCompositeConstruct %v2float %102 %103
247 %106 = OpCompositeConstruct %mat2v2float %104 %105
248 %107 = OpFOrdEqual %v2bool %104 %88
249 %108 = OpAll %bool %107
250 %109 = OpFOrdEqual %v2bool %105 %88
251 %110 = OpAll %bool %109
252 %111 = OpLogicalAnd %bool %108 %110
253 OpBranch %97
254 %97 = OpLabel
255 %112 = OpPhi %bool %false %76 %111 %96
256 OpStore %ok %112
257 OpSelectionMerge %114 None
258 OpBranchConditional %112 %113 %114
259 %113 = OpLabel
260 %115 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
261 %116 = OpLoad %v4float %115
262 %117 = OpCompositeExtract %float %116 0
263 %118 = OpConvertFToS %int %117
264 %119 = OpCompositeExtract %float %116 1
265 %120 = OpConvertFToS %int %119
266 %121 = OpCompositeExtract %float %116 2
267 %122 = OpConvertFToS %int %121
268 %123 = OpCompositeExtract %float %116 3
269 %124 = OpConvertFToS %int %123
270 %126 = OpCompositeConstruct %v4int %118 %120 %122 %124
271 %127 = OpCompositeExtract %int %126 0
272 %128 = OpConvertSToF %float %127
273 %129 = OpCompositeExtract %int %126 1
274 %130 = OpConvertSToF %float %129
275 %131 = OpCompositeExtract %int %126 2
276 %132 = OpConvertSToF %float %131
277 %133 = OpCompositeExtract %int %126 3
278 %134 = OpConvertSToF %float %133
279 %135 = OpCompositeConstruct %v4float %128 %130 %132 %134
280 %136 = OpCompositeExtract %float %135 0
281 %137 = OpCompositeExtract %float %135 1
282 %138 = OpCompositeExtract %float %135 2
283 %139 = OpCompositeExtract %float %135 3
284 %140 = OpCompositeConstruct %v2float %136 %137
285 %141 = OpCompositeConstruct %v2float %138 %139
286 %142 = OpCompositeConstruct %mat2v2float %140 %141
287 %143 = OpFOrdEqual %v2bool %140 %88
288 %144 = OpAll %bool %143
289 %145 = OpFOrdEqual %v2bool %141 %88
290 %146 = OpAll %bool %145
291 %147 = OpLogicalAnd %bool %144 %146
292 OpBranch %114
293 %114 = OpLabel
294 %148 = OpPhi %bool %false %97 %147 %113
295 OpStore %ok %148
296 OpSelectionMerge %150 None
297 OpBranchConditional %148 %149 %150
298 %149 = OpLabel
299 %151 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
300 %152 = OpLoad %v4float %151
301 %153 = OpCompositeExtract %float %152 0
302 %154 = OpCompositeExtract %float %152 1
303 %155 = OpCompositeExtract %float %152 2
304 %156 = OpCompositeExtract %float %152 3
305 %157 = OpCompositeConstruct %v2float %153 %154
306 %158 = OpCompositeConstruct %v2float %155 %156
307 %159 = OpCompositeConstruct %mat2v2float %157 %158
308 %160 = OpFOrdEqual %v2bool %157 %88
309 %161 = OpAll %bool %160
310 %162 = OpFOrdEqual %v2bool %158 %88
311 %163 = OpAll %bool %162
312 %164 = OpLogicalAnd %bool %161 %163
313 OpBranch %150
314 %150 = OpLabel
315 %165 = OpPhi %bool %false %114 %164 %149
316 OpStore %ok %165
317 OpSelectionMerge %167 None
318 OpBranchConditional %165 %166 %167
319 %166 = OpLabel
320 %168 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
321 %169 = OpLoad %v4float %168
322 %170 = OpCompositeExtract %float %169 0
323 %171 = OpCompositeExtract %float %169 1
324 %172 = OpCompositeExtract %float %169 2
325 %173 = OpCompositeExtract %float %169 3
326 %174 = OpCompositeConstruct %v2float %170 %171
327 %175 = OpCompositeConstruct %v2float %172 %173
328 %176 = OpCompositeConstruct %mat2v2float %174 %175
329 %177 = OpFOrdEqual %v2bool %174 %88
330 %178 = OpAll %bool %177
331 %179 = OpFOrdEqual %v2bool %175 %88
332 %180 = OpAll %bool %179
333 %181 = OpLogicalAnd %bool %178 %180
334 OpBranch %167
335 %167 = OpLabel
336 %182 = OpPhi %bool %false %150 %181 %166
337 OpStore %ok %182
338 OpSelectionMerge %184 None
339 OpBranchConditional %182 %183 %184
340 %183 = OpLabel
341 %185 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
342 %186 = OpLoad %v4float %185
343 %187 = OpCompositeExtract %float %186 0
344 %188 = OpFUnordNotEqual %bool %187 %float_0
345 %189 = OpCompositeExtract %float %186 1
346 %190 = OpFUnordNotEqual %bool %189 %float_0
347 %191 = OpCompositeExtract %float %186 2
348 %192 = OpFUnordNotEqual %bool %191 %float_0
349 %193 = OpCompositeExtract %float %186 3
350 %194 = OpFUnordNotEqual %bool %193 %float_0
351 %196 = OpCompositeConstruct %v4bool %188 %190 %192 %194
352 %197 = OpCompositeExtract %bool %196 0
353 %198 = OpSelect %float %197 %float_1 %float_0
354 %199 = OpCompositeExtract %bool %196 1
355 %200 = OpSelect %float %199 %float_1 %float_0
356 %201 = OpCompositeExtract %bool %196 2
357 %202 = OpSelect %float %201 %float_1 %float_0
358 %203 = OpCompositeExtract %bool %196 3
359 %204 = OpSelect %float %203 %float_1 %float_0
360 %205 = OpCompositeConstruct %v4float %198 %200 %202 %204
361 %206 = OpCompositeExtract %float %205 0
362 %207 = OpCompositeExtract %float %205 1
363 %208 = OpCompositeExtract %float %205 2
364 %209 = OpCompositeExtract %float %205 3
365 %210 = OpCompositeConstruct %v2float %206 %207
366 %211 = OpCompositeConstruct %v2float %208 %209
367 %212 = OpCompositeConstruct %mat2v2float %210 %211
368 %213 = OpFOrdEqual %v2bool %210 %88
369 %214 = OpAll %bool %213
370 %215 = OpFOrdEqual %v2bool %211 %88
371 %216 = OpAll %bool %215
372 %217 = OpLogicalAnd %bool %214 %216
373 OpBranch %184
374 %184 = OpLabel
375 %218 = OpPhi %bool %false %167 %217 %183
376 OpStore %ok %218
377 OpSelectionMerge %223 None
378 OpBranchConditional %218 %221 %222
379 %221 = OpLabel
380 %224 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
381 %225 = OpLoad %v4float %224
382 OpStore %219 %225
383 OpBranch %223
384 %222 = OpLabel
385 %226 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
386 %228 = OpLoad %v4float %226
387 OpStore %219 %228
388 OpBranch %223
389 %223 = OpLabel
390 %229 = OpLoad %v4float %219
391 OpReturnValue %229
392 OpFunctionEnd