xref: /aosp_15_r20/external/skia/tests/sksl/shared/Assignment.asm.frag (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor
5               OpExecutionMode %_entrypoint_v OriginUpperLeft
6               OpName %sk_FragColor "sk_FragColor"
7               OpName %globalVar "globalVar"
8               OpName %S "S"
9               OpMemberName %S 0 "f"
10               OpMemberName %S 1 "af"
11               OpMemberName %S 2 "h4"
12               OpMemberName %S 3 "ah4"
13               OpName %globalStruct "globalStruct"
14               OpName %_UniformBuffer "_UniformBuffer"
15               OpMemberName %_UniformBuffer 0 "colorGreen"
16               OpName %_entrypoint_v "_entrypoint_v"
17               OpName %keepAlive_vh "keepAlive_vh"
18               OpName %keepAlive_vf "keepAlive_vf"
19               OpName %keepAlive_vi "keepAlive_vi"
20               OpName %assignToFunctionParameter_vif "assignToFunctionParameter_vif"
21               OpName %main "main"
22               OpName %i "i"
23               OpName %i4 "i4"
24               OpName %f3x3 "f3x3"
25               OpName %x "x"
26               OpName %ai "ai"
27               OpName %ai4 "ai4"
28               OpName %ah3x3 "ah3x3"
29               OpName %af4 "af4"
30               OpName %s "s"
31               OpName %l "l"
32               OpName %repeat "repeat"
33               OpDecorate %sk_FragColor RelaxedPrecision
34               OpDecorate %sk_FragColor Location 0
35               OpDecorate %sk_FragColor Index 0
36               OpDecorate %globalVar RelaxedPrecision
37               OpDecorate %_arr_float_int_5 ArrayStride 16
38               OpDecorate %_arr_v4float_int_5 ArrayStride 16
39               OpMemberDecorate %S 0 Offset 0
40               OpMemberDecorate %S 1 Offset 16
41               OpMemberDecorate %S 2 Offset 96
42               OpMemberDecorate %S 2 RelaxedPrecision
43               OpMemberDecorate %S 3 Offset 112
44               OpMemberDecorate %S 3 RelaxedPrecision
45               OpMemberDecorate %_UniformBuffer 0 Offset 0
46               OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
47               OpDecorate %_UniformBuffer Block
48               OpDecorate %20 Binding 0
49               OpDecorate %20 DescriptorSet 0
50               OpDecorate %x RelaxedPrecision
51               OpDecorate %80 RelaxedPrecision
52               OpDecorate %81 RelaxedPrecision
53               OpDecorate %_arr_int_int_1 ArrayStride 16
54               OpDecorate %_arr_v4int_int_1 ArrayStride 16
55               OpDecorate %_arr_mat3v3float_int_1 ArrayStride 48
56               OpDecorate %_arr_v4float_int_1 ArrayStride 16
57               OpDecorate %109 RelaxedPrecision
58               OpDecorate %110 RelaxedPrecision
59               OpDecorate %113 RelaxedPrecision
60               OpDecorate %114 RelaxedPrecision
61               OpDecorate %l RelaxedPrecision
62               OpDecorate %147 RelaxedPrecision
63               OpDecorate %148 RelaxedPrecision
64               OpDecorate %150 RelaxedPrecision
65               OpDecorate %172 RelaxedPrecision
66               OpDecorate %173 RelaxedPrecision
67               OpDecorate %175 RelaxedPrecision
68               OpDecorate %181 RelaxedPrecision
69               OpDecorate %182 RelaxedPrecision
70               OpDecorate %184 RelaxedPrecision
71               OpDecorate %197 RelaxedPrecision
72      %float = OpTypeFloat 32
73    %v4float = OpTypeVector %float 4
74%_ptr_Output_v4float = OpTypePointer Output %v4float
75%sk_FragColor = OpVariable %_ptr_Output_v4float Output
76%_ptr_Private_v4float = OpTypePointer Private %v4float
77  %globalVar = OpVariable %_ptr_Private_v4float Private
78        %int = OpTypeInt 32 1
79      %int_5 = OpConstant %int 5
80%_arr_float_int_5 = OpTypeArray %float %int_5
81%_arr_v4float_int_5 = OpTypeArray %v4float %int_5
82          %S = OpTypeStruct %float %_arr_float_int_5 %v4float %_arr_v4float_int_5
83%_ptr_Private_S = OpTypePointer Private %S
84%globalStruct = OpVariable %_ptr_Private_S Private
85%_UniformBuffer = OpTypeStruct %v4float
86%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
87         %20 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
88       %void = OpTypeVoid
89         %25 = OpTypeFunction %void
90    %float_0 = OpConstant %float 0
91    %v2float = OpTypeVector %float 2
92         %29 = OpConstantComposite %v2float %float_0 %float_0
93%_ptr_Function_v2float = OpTypePointer Function %v2float
94%_ptr_Function_float = OpTypePointer Function %float
95         %34 = OpTypeFunction %void %_ptr_Function_float
96%_ptr_Function_int = OpTypePointer Function %int
97         %40 = OpTypeFunction %void %_ptr_Function_int
98         %43 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_float
99      %int_1 = OpConstant %int 1
100    %float_1 = OpConstant %float 1
101         %49 = OpTypeFunction %v4float %_ptr_Function_v2float
102      %int_0 = OpConstant %int 0
103      %v4int = OpTypeVector %int 4
104%_ptr_Function_v4int = OpTypePointer Function %v4int
105      %int_2 = OpConstant %int 2
106      %int_3 = OpConstant %int 3
107      %int_4 = OpConstant %int 4
108         %60 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
109    %v3float = OpTypeVector %float 3
110%mat3v3float = OpTypeMatrix %v3float 3
111%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
112    %float_2 = OpConstant %float 2
113    %float_3 = OpConstant %float 3
114    %float_4 = OpConstant %float 4
115    %float_5 = OpConstant %float 5
116    %float_6 = OpConstant %float 6
117    %float_7 = OpConstant %float 7
118    %float_8 = OpConstant %float 8
119    %float_9 = OpConstant %float 9
120         %73 = OpConstantComposite %v3float %float_1 %float_2 %float_3
121         %74 = OpConstantComposite %v3float %float_4 %float_5 %float_6
122         %75 = OpConstantComposite %v3float %float_7 %float_8 %float_9
123         %76 = OpConstantComposite %mat3v3float %73 %74 %75
124%_ptr_Function_v4float = OpTypePointer Function %v4float
125%_arr_int_int_1 = OpTypeArray %int %int_1
126%_ptr_Function__arr_int_int_1 = OpTypePointer Function %_arr_int_int_1
127%_arr_v4int_int_1 = OpTypeArray %v4int %int_1
128%_ptr_Function__arr_v4int_int_1 = OpTypePointer Function %_arr_v4int_int_1
129%_arr_mat3v3float_int_1 = OpTypeArray %mat3v3float %int_1
130%_ptr_Function__arr_mat3v3float_int_1 = OpTypePointer Function %_arr_mat3v3float_int_1
131%_arr_v4float_int_1 = OpTypeArray %v4float %int_1
132%_ptr_Function__arr_v4float_int_1 = OpTypePointer Function %_arr_v4float_int_1
133         %99 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
134%_ptr_Function_S = OpTypePointer Function %S
135        %107 = OpConstantComposite %v3float %float_9 %float_9 %float_9
136        %111 = OpConstantComposite %v2float %float_5 %float_5
137        %115 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
138%_ptr_Private_float = OpTypePointer Private %float
139%_ptr_Function_v3float = OpTypePointer Function %v3float
140        %136 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2
141%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
142%_entrypoint_v = OpFunction %void None %25
143         %26 = OpLabel
144         %30 = OpVariable %_ptr_Function_v2float Function
145               OpStore %30 %29
146         %32 = OpFunctionCall %v4float %main %30
147               OpStore %sk_FragColor %32
148               OpReturn
149               OpFunctionEnd
150%keepAlive_vh = OpFunction %void None %34
151         %35 = OpFunctionParameter %_ptr_Function_float
152         %36 = OpLabel
153               OpReturn
154               OpFunctionEnd
155%keepAlive_vf = OpFunction %void None %34
156         %37 = OpFunctionParameter %_ptr_Function_float
157         %38 = OpLabel
158               OpReturn
159               OpFunctionEnd
160%keepAlive_vi = OpFunction %void None %40
161         %41 = OpFunctionParameter %_ptr_Function_int
162         %42 = OpLabel
163               OpReturn
164               OpFunctionEnd
165%assignToFunctionParameter_vif = OpFunction %void None %43
166         %44 = OpFunctionParameter %_ptr_Function_int
167         %45 = OpFunctionParameter %_ptr_Function_float
168         %46 = OpLabel
169               OpStore %44 %int_1
170               OpStore %45 %float_1
171               OpReturn
172               OpFunctionEnd
173       %main = OpFunction %v4float None %49
174         %50 = OpFunctionParameter %_ptr_Function_v2float
175         %51 = OpLabel
176          %i = OpVariable %_ptr_Function_int Function
177         %i4 = OpVariable %_ptr_Function_v4int Function
178       %f3x3 = OpVariable %_ptr_Function_mat3v3float Function
179          %x = OpVariable %_ptr_Function_v4float Function
180         %ai = OpVariable %_ptr_Function__arr_int_int_1 Function
181        %ai4 = OpVariable %_ptr_Function__arr_v4int_int_1 Function
182      %ah3x3 = OpVariable %_ptr_Function__arr_mat3v3float_int_1 Function
183        %af4 = OpVariable %_ptr_Function__arr_v4float_int_1 Function
184          %s = OpVariable %_ptr_Function_S Function
185        %118 = OpVariable %_ptr_Function_int Function
186        %123 = OpVariable %_ptr_Function_float Function
187          %l = OpVariable %_ptr_Function_float Function
188     %repeat = OpVariable %_ptr_Function_float Function
189        %142 = OpVariable %_ptr_Function_float Function
190        %148 = OpVariable %_ptr_Function_float Function
191        %152 = OpVariable %_ptr_Function_int Function
192        %157 = OpVariable %_ptr_Function_int Function
193        %162 = OpVariable %_ptr_Function_int Function
194        %168 = OpVariable %_ptr_Function_int Function
195        %173 = OpVariable %_ptr_Function_float Function
196        %178 = OpVariable %_ptr_Function_float Function
197        %182 = OpVariable %_ptr_Function_float Function
198        %188 = OpVariable %_ptr_Function_float Function
199        %192 = OpVariable %_ptr_Function_float Function
200               OpStore %i %int_0
201               OpStore %i4 %60
202               OpStore %f3x3 %76
203         %79 = OpAccessChain %_ptr_Function_float %x %int_3
204               OpStore %79 %float_0
205         %80 = OpLoad %v4float %x
206         %81 = OpVectorShuffle %v4float %80 %29 5 4 2 3
207               OpStore %x %81
208         %85 = OpAccessChain %_ptr_Function_int %ai %int_0
209               OpStore %85 %int_0
210         %89 = OpAccessChain %_ptr_Function_v4int %ai4 %int_0
211               OpStore %89 %60
212         %93 = OpAccessChain %_ptr_Function_mat3v3float %ah3x3 %int_0
213               OpStore %93 %76
214         %97 = OpAccessChain %_ptr_Function_v4float %af4 %int_0
215         %98 = OpAccessChain %_ptr_Function_float %97 %int_0
216               OpStore %98 %float_0
217        %100 = OpAccessChain %_ptr_Function_v4float %af4 %int_0
218        %101 = OpLoad %v4float %100
219        %102 = OpVectorShuffle %v4float %101 %99 6 4 7 5
220               OpStore %100 %102
221        %105 = OpAccessChain %_ptr_Function_float %s %int_0
222               OpStore %105 %float_0
223        %106 = OpAccessChain %_ptr_Function_float %s %int_1 %int_1
224               OpStore %106 %float_0
225        %108 = OpAccessChain %_ptr_Function_v4float %s %int_2
226        %109 = OpLoad %v4float %108
227        %110 = OpVectorShuffle %v4float %109 %107 5 6 4 3
228               OpStore %108 %110
229        %112 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_2
230        %113 = OpLoad %v4float %112
231        %114 = OpVectorShuffle %v4float %113 %111 0 4 2 5
232               OpStore %112 %114
233               OpStore %globalVar %115
234        %116 = OpAccessChain %_ptr_Private_float %globalStruct %int_0
235               OpStore %116 %float_0
236               OpStore %118 %int_0
237        %119 = OpAccessChain %_ptr_Function_v3float %f3x3 %int_0
238        %121 = OpAccessChain %_ptr_Function_float %119 %int_0
239        %122 = OpLoad %float %121
240               OpStore %123 %122
241        %124 = OpFunctionCall %void %assignToFunctionParameter_vif %118 %123
242        %125 = OpLoad %float %123
243               OpStore %121 %125
244               OpStore %l %float_0
245        %127 = OpAccessChain %_ptr_Function_int %ai %int_0
246        %128 = OpLoad %int %127
247        %129 = OpAccessChain %_ptr_Function_v4int %ai4 %int_0
248        %130 = OpLoad %v4int %129
249        %131 = OpCompositeExtract %int %130 0
250        %132 = OpIAdd %int %128 %131
251               OpStore %127 %132
252        %133 = OpAccessChain %_ptr_Function_float %s %int_0
253               OpStore %133 %float_1
254        %134 = OpAccessChain %_ptr_Function_float %s %int_1 %int_0
255               OpStore %134 %float_2
256        %135 = OpAccessChain %_ptr_Function_v4float %s %int_2
257               OpStore %135 %99
258        %137 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_0
259               OpStore %137 %136
260               OpStore %repeat %float_1
261               OpStore %repeat %float_1
262        %139 = OpAccessChain %_ptr_Function_v4float %af4 %int_0
263        %140 = OpAccessChain %_ptr_Function_float %139 %int_0
264        %141 = OpLoad %float %140
265               OpStore %142 %141
266        %143 = OpFunctionCall %void %keepAlive_vf %142
267        %144 = OpLoad %float %142
268               OpStore %140 %144
269        %145 = OpAccessChain %_ptr_Function_v3float %ah3x3 %int_0 %int_0
270        %146 = OpAccessChain %_ptr_Function_float %145 %int_0
271        %147 = OpLoad %float %146
272               OpStore %148 %147
273        %149 = OpFunctionCall %void %keepAlive_vh %148
274        %150 = OpLoad %float %148
275               OpStore %146 %150
276        %151 = OpLoad %int %i
277               OpStore %152 %151
278        %153 = OpFunctionCall %void %keepAlive_vi %152
279        %154 = OpLoad %int %152
280               OpStore %i %154
281        %155 = OpAccessChain %_ptr_Function_int %i4 %int_1
282        %156 = OpLoad %int %155
283               OpStore %157 %156
284        %158 = OpFunctionCall %void %keepAlive_vi %157
285        %159 = OpLoad %int %157
286               OpStore %155 %159
287        %160 = OpAccessChain %_ptr_Function_int %ai %int_0
288        %161 = OpLoad %int %160
289               OpStore %162 %161
290        %163 = OpFunctionCall %void %keepAlive_vi %162
291        %164 = OpLoad %int %162
292               OpStore %160 %164
293        %165 = OpAccessChain %_ptr_Function_v4int %ai4 %int_0
294        %166 = OpAccessChain %_ptr_Function_int %165 %int_0
295        %167 = OpLoad %int %166
296               OpStore %168 %167
297        %169 = OpFunctionCall %void %keepAlive_vi %168
298        %170 = OpLoad %int %168
299               OpStore %166 %170
300        %171 = OpAccessChain %_ptr_Function_float %x %int_1
301        %172 = OpLoad %float %171
302               OpStore %173 %172
303        %174 = OpFunctionCall %void %keepAlive_vh %173
304        %175 = OpLoad %float %173
305               OpStore %171 %175
306        %176 = OpAccessChain %_ptr_Function_float %s %int_0
307        %177 = OpLoad %float %176
308               OpStore %178 %177
309        %179 = OpFunctionCall %void %keepAlive_vf %178
310        %180 = OpLoad %float %178
311               OpStore %176 %180
312        %181 = OpLoad %float %l
313               OpStore %182 %181
314        %183 = OpFunctionCall %void %keepAlive_vh %182
315        %184 = OpLoad %float %182
316               OpStore %l %184
317        %185 = OpAccessChain %_ptr_Function_v3float %f3x3 %int_0
318        %186 = OpAccessChain %_ptr_Function_float %185 %int_0
319        %187 = OpLoad %float %186
320               OpStore %188 %187
321        %189 = OpFunctionCall %void %keepAlive_vf %188
322        %190 = OpLoad %float %188
323               OpStore %186 %190
324        %191 = OpLoad %float %repeat
325               OpStore %192 %191
326        %193 = OpFunctionCall %void %keepAlive_vf %192
327        %194 = OpLoad %float %192
328               OpStore %repeat %194
329        %195 = OpAccessChain %_ptr_Uniform_v4float %20 %int_0
330        %197 = OpLoad %v4float %195
331               OpReturnValue %197
332               OpFunctionEnd
333