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