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