Update rive-cpp to 2.0 version
[platform/core/uifw/rive-tizen.git] / submodule / skia / tests / sksl / intrinsics / FaceForward.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 "N"
10 OpMemberName %_UniformBuffer 1 "I"
11 OpMemberName %_UniformBuffer 2 "NRef"
12 OpMemberName %_UniformBuffer 3 "colorGreen"
13 OpMemberName %_UniformBuffer 4 "colorRed"
14 OpName %_entrypoint_v "_entrypoint_v"
15 OpName %main "main"
16 OpName %expectedPos "expectedPos"
17 OpName %expectedNeg "expectedNeg"
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 %expectedPos RelaxedPrecision
36 OpDecorate %expectedNeg RelaxedPrecision
37 OpDecorate %40 RelaxedPrecision
38 OpDecorate %45 RelaxedPrecision
39 OpDecorate %46 RelaxedPrecision
40 OpDecorate %49 RelaxedPrecision
41 OpDecorate %50 RelaxedPrecision
42 OpDecorate %53 RelaxedPrecision
43 OpDecorate %54 RelaxedPrecision
44 OpDecorate %58 RelaxedPrecision
45 OpDecorate %60 RelaxedPrecision
46 OpDecorate %61 RelaxedPrecision
47 OpDecorate %63 RelaxedPrecision
48 OpDecorate %64 RelaxedPrecision
49 OpDecorate %66 RelaxedPrecision
50 OpDecorate %67 RelaxedPrecision
51 OpDecorate %68 RelaxedPrecision
52 OpDecorate %75 RelaxedPrecision
53 OpDecorate %77 RelaxedPrecision
54 OpDecorate %78 RelaxedPrecision
55 OpDecorate %81 RelaxedPrecision
56 OpDecorate %82 RelaxedPrecision
57 OpDecorate %84 RelaxedPrecision
58 OpDecorate %85 RelaxedPrecision
59 OpDecorate %86 RelaxedPrecision
60 OpDecorate %93 RelaxedPrecision
61 OpDecorate %95 RelaxedPrecision
62 OpDecorate %97 RelaxedPrecision
63 OpDecorate %99 RelaxedPrecision
64 OpDecorate %111 RelaxedPrecision
65 OpDecorate %118 RelaxedPrecision
66 OpDecorate %131 RelaxedPrecision
67 OpDecorate %134 RelaxedPrecision
68 OpDecorate %135 RelaxedPrecision
69 %float = OpTypeFloat 32
70 %v4float = OpTypeVector %float 4
71 %_ptr_Output_v4float = OpTypePointer Output %v4float
72 %sk_FragColor = OpVariable %_ptr_Output_v4float Output
73 %bool = OpTypeBool
74 %_ptr_Input_bool = OpTypePointer Input %bool
75 %sk_Clockwise = OpVariable %_ptr_Input_bool Input
76 %_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %v4float %v4float
77 %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
78 %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
79 %void = OpTypeVoid
80 %15 = OpTypeFunction %void
81 %float_0 = OpConstant %float 0
82 %v2float = OpTypeVector %float 2
83 %19 = OpConstantComposite %v2float %float_0 %float_0
84 %_ptr_Function_v2float = OpTypePointer Function %v2float
85 %23 = OpTypeFunction %v4float %_ptr_Function_v2float
86 %_ptr_Function_v4float = OpTypePointer Function %v4float
87 %float_1 = OpConstant %float 1
88 %float_2 = OpConstant %float 2
89 %float_3 = OpConstant %float 3
90 %float_4 = OpConstant %float 4
91 %32 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
92 %float_n1 = OpConstant %float -1
93 %float_n2 = OpConstant %float -2
94 %float_n3 = OpConstant %float -3
95 %float_n4 = OpConstant %float -4
96 %38 = OpConstantComposite %v4float %float_n1 %float_n2 %float_n3 %float_n4
97 %false = OpConstantFalse %bool
98 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
99 %int = OpTypeInt 32 1
100 %int_0 = OpConstant %int 0
101 %int_1 = OpConstant %int 1
102 %int_2 = OpConstant %int 2
103 %v2bool = OpTypeVector %bool 2
104 %v3float = OpTypeVector %float 3
105 %v3bool = OpTypeVector %bool 3
106 %v4bool = OpTypeVector %bool 4
107 %true = OpConstantTrue %bool
108 %110 = OpConstantComposite %v2float %float_n1 %float_n2
109 %117 = OpConstantComposite %v3float %float_1 %float_2 %float_3
110 %int_3 = OpConstant %int 3
111 %int_4 = OpConstant %int 4
112 %_entrypoint_v = OpFunction %void None %15
113 %16 = OpLabel
114 %20 = OpVariable %_ptr_Function_v2float Function
115 OpStore %20 %19
116 %22 = OpFunctionCall %v4float %main %20
117 OpStore %sk_FragColor %22
118 OpReturn
119 OpFunctionEnd
120 %main = OpFunction %v4float None %23
121 %24 = OpFunctionParameter %_ptr_Function_v2float
122 %25 = OpLabel
123 %expectedPos = OpVariable %_ptr_Function_v4float Function
124 %expectedNeg = OpVariable %_ptr_Function_v4float Function
125 %125 = OpVariable %_ptr_Function_v4float Function
126 OpStore %expectedPos %32
127 OpStore %expectedNeg %38
128 %41 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
129 %45 = OpLoad %v4float %41
130 %46 = OpCompositeExtract %float %45 0
131 %47 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
132 %49 = OpLoad %v4float %47
133 %50 = OpCompositeExtract %float %49 0
134 %51 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
135 %53 = OpLoad %v4float %51
136 %54 = OpCompositeExtract %float %53 0
137 %40 = OpExtInst %float %1 FaceForward %46 %50 %54
138 %55 = OpFOrdEqual %bool %40 %float_n1
139 OpSelectionMerge %57 None
140 OpBranchConditional %55 %56 %57
141 %56 = OpLabel
142 %59 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
143 %60 = OpLoad %v4float %59
144 %61 = OpVectorShuffle %v2float %60 %60 0 1
145 %62 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
146 %63 = OpLoad %v4float %62
147 %64 = OpVectorShuffle %v2float %63 %63 0 1
148 %65 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
149 %66 = OpLoad %v4float %65
150 %67 = OpVectorShuffle %v2float %66 %66 0 1
151 %58 = OpExtInst %v2float %1 FaceForward %61 %64 %67
152 %68 = OpVectorShuffle %v2float %38 %38 0 1
153 %69 = OpFOrdEqual %v2bool %58 %68
154 %71 = OpAll %bool %69
155 OpBranch %57
156 %57 = OpLabel
157 %72 = OpPhi %bool %false %25 %71 %56
158 OpSelectionMerge %74 None
159 OpBranchConditional %72 %73 %74
160 %73 = OpLabel
161 %76 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
162 %77 = OpLoad %v4float %76
163 %78 = OpVectorShuffle %v3float %77 %77 0 1 2
164 %80 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
165 %81 = OpLoad %v4float %80
166 %82 = OpVectorShuffle %v3float %81 %81 0 1 2
167 %83 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
168 %84 = OpLoad %v4float %83
169 %85 = OpVectorShuffle %v3float %84 %84 0 1 2
170 %75 = OpExtInst %v3float %1 FaceForward %78 %82 %85
171 %86 = OpVectorShuffle %v3float %32 %32 0 1 2
172 %87 = OpFOrdEqual %v3bool %75 %86
173 %89 = OpAll %bool %87
174 OpBranch %74
175 %74 = OpLabel
176 %90 = OpPhi %bool %false %57 %89 %73
177 OpSelectionMerge %92 None
178 OpBranchConditional %90 %91 %92
179 %91 = OpLabel
180 %94 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
181 %95 = OpLoad %v4float %94
182 %96 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
183 %97 = OpLoad %v4float %96
184 %98 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
185 %99 = OpLoad %v4float %98
186 %93 = OpExtInst %v4float %1 FaceForward %95 %97 %99
187 %100 = OpFOrdEqual %v4bool %93 %32
188 %102 = OpAll %bool %100
189 OpBranch %92
190 %92 = OpLabel
191 %103 = OpPhi %bool %false %74 %102 %91
192 OpSelectionMerge %105 None
193 OpBranchConditional %103 %104 %105
194 %104 = OpLabel
195 OpBranch %105
196 %105 = OpLabel
197 %107 = OpPhi %bool %false %92 %true %104
198 OpSelectionMerge %109 None
199 OpBranchConditional %107 %108 %109
200 %108 = OpLabel
201 %111 = OpVectorShuffle %v2float %38 %38 0 1
202 %112 = OpFOrdEqual %v2bool %110 %111
203 %113 = OpAll %bool %112
204 OpBranch %109
205 %109 = OpLabel
206 %114 = OpPhi %bool %false %105 %113 %108
207 OpSelectionMerge %116 None
208 OpBranchConditional %114 %115 %116
209 %115 = OpLabel
210 %118 = OpVectorShuffle %v3float %32 %32 0 1 2
211 %119 = OpFOrdEqual %v3bool %117 %118
212 %120 = OpAll %bool %119
213 OpBranch %116
214 %116 = OpLabel
215 %121 = OpPhi %bool %false %109 %120 %115
216 OpSelectionMerge %123 None
217 OpBranchConditional %121 %122 %123
218 %122 = OpLabel
219 OpBranch %123
220 %123 = OpLabel
221 %124 = OpPhi %bool %false %116 %true %122
222 OpSelectionMerge %128 None
223 OpBranchConditional %124 %126 %127
224 %126 = OpLabel
225 %129 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3
226 %131 = OpLoad %v4float %129
227 OpStore %125 %131
228 OpBranch %128
229 %127 = OpLabel
230 %132 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4
231 %134 = OpLoad %v4float %132
232 OpStore %125 %134
233 OpBranch %128
234 %128 = OpLabel
235 %135 = OpLoad %v4float %125
236 OpReturnValue %135
237 OpFunctionEnd