xref: /aosp_15_r20/external/skia/tests/sksl/shared/UnaryPositiveNegative.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 %_UniformBuffer "_UniformBuffer"
8               OpMemberName %_UniformBuffer 0 "colorWhite"
9               OpMemberName %_UniformBuffer 1 "colorGreen"
10               OpMemberName %_UniformBuffer 2 "colorRed"
11               OpMemberName %_UniformBuffer 3 "testMatrix2x2"
12               OpMemberName %_UniformBuffer 4 "testMatrix3x3"
13               OpMemberName %_UniformBuffer 5 "testMatrix4x4"
14               OpName %_entrypoint_v "_entrypoint_v"
15               OpName %test_iscalar_b "test_iscalar_b"
16               OpName %x "x"
17               OpName %test_fvec_b "test_fvec_b"
18               OpName %x_0 "x"
19               OpName %test_ivec_b "test_ivec_b"
20               OpName %x_1 "x"
21               OpName %test_mat2_b "test_mat2_b"
22               OpName %negated "negated"
23               OpName %x_2 "x"
24               OpName %test_mat3_b "test_mat3_b"
25               OpName %negated_0 "negated"
26               OpName %x_3 "x"
27               OpName %test_mat4_b "test_mat4_b"
28               OpName %negated_1 "negated"
29               OpName %x_4 "x"
30               OpName %test_hmat2_b "test_hmat2_b"
31               OpName %negated_2 "negated"
32               OpName %x_5 "x"
33               OpName %test_hmat3_b "test_hmat3_b"
34               OpName %negated_3 "negated"
35               OpName %x_6 "x"
36               OpName %test_hmat4_b "test_hmat4_b"
37               OpName %negated_4 "negated"
38               OpName %x_7 "x"
39               OpName %main "main"
40               OpName %_0_x "_0_x"
41               OpDecorate %sk_FragColor RelaxedPrecision
42               OpDecorate %sk_FragColor Location 0
43               OpDecorate %sk_FragColor Index 0
44               OpMemberDecorate %_UniformBuffer 0 Offset 0
45               OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
46               OpMemberDecorate %_UniformBuffer 1 Offset 16
47               OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
48               OpMemberDecorate %_UniformBuffer 2 Offset 32
49               OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
50               OpMemberDecorate %_UniformBuffer 3 Offset 48
51               OpMemberDecorate %_UniformBuffer 3 ColMajor
52               OpMemberDecorate %_UniformBuffer 3 MatrixStride 16
53               OpMemberDecorate %_UniformBuffer 4 Offset 80
54               OpMemberDecorate %_UniformBuffer 4 ColMajor
55               OpMemberDecorate %_UniformBuffer 4 MatrixStride 16
56               OpMemberDecorate %_UniformBuffer 5 Offset 128
57               OpMemberDecorate %_UniformBuffer 5 ColMajor
58               OpMemberDecorate %_UniformBuffer 5 MatrixStride 16
59               OpDecorate %_UniformBuffer Block
60               OpDecorate %16 Binding 0
61               OpDecorate %16 DescriptorSet 0
62               OpDecorate %42 RelaxedPrecision
63               OpDecorate %43 RelaxedPrecision
64               OpDecorate %x_0 RelaxedPrecision
65               OpDecorate %51 RelaxedPrecision
66               OpDecorate %52 RelaxedPrecision
67               OpDecorate %53 RelaxedPrecision
68               OpDecorate %64 RelaxedPrecision
69               OpDecorate %65 RelaxedPrecision
70               OpDecorate %negated_2 RelaxedPrecision
71               OpDecorate %x_5 RelaxedPrecision
72               OpDecorate %175 RelaxedPrecision
73               OpDecorate %176 RelaxedPrecision
74               OpDecorate %177 RelaxedPrecision
75               OpDecorate %178 RelaxedPrecision
76               OpDecorate %179 RelaxedPrecision
77               OpDecorate %180 RelaxedPrecision
78               OpDecorate %182 RelaxedPrecision
79               OpDecorate %negated_3 RelaxedPrecision
80               OpDecorate %x_6 RelaxedPrecision
81               OpDecorate %190 RelaxedPrecision
82               OpDecorate %191 RelaxedPrecision
83               OpDecorate %192 RelaxedPrecision
84               OpDecorate %193 RelaxedPrecision
85               OpDecorate %194 RelaxedPrecision
86               OpDecorate %195 RelaxedPrecision
87               OpDecorate %196 RelaxedPrecision
88               OpDecorate %197 RelaxedPrecision
89               OpDecorate %199 RelaxedPrecision
90               OpDecorate %202 RelaxedPrecision
91               OpDecorate %negated_4 RelaxedPrecision
92               OpDecorate %x_7 RelaxedPrecision
93               OpDecorate %210 RelaxedPrecision
94               OpDecorate %211 RelaxedPrecision
95               OpDecorate %212 RelaxedPrecision
96               OpDecorate %213 RelaxedPrecision
97               OpDecorate %214 RelaxedPrecision
98               OpDecorate %215 RelaxedPrecision
99               OpDecorate %216 RelaxedPrecision
100               OpDecorate %217 RelaxedPrecision
101               OpDecorate %218 RelaxedPrecision
102               OpDecorate %219 RelaxedPrecision
103               OpDecorate %221 RelaxedPrecision
104               OpDecorate %224 RelaxedPrecision
105               OpDecorate %227 RelaxedPrecision
106               OpDecorate %236 RelaxedPrecision
107               OpDecorate %237 RelaxedPrecision
108               OpDecorate %284 RelaxedPrecision
109               OpDecorate %287 RelaxedPrecision
110               OpDecorate %288 RelaxedPrecision
111      %float = OpTypeFloat 32
112    %v4float = OpTypeVector %float 4
113%_ptr_Output_v4float = OpTypePointer Output %v4float
114%sk_FragColor = OpVariable %_ptr_Output_v4float Output
115    %v2float = OpTypeVector %float 2
116%mat2v2float = OpTypeMatrix %v2float 2
117    %v3float = OpTypeVector %float 3
118%mat3v3float = OpTypeMatrix %v3float 3
119%mat4v4float = OpTypeMatrix %v4float 4
120%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %mat2v2float %mat3v3float %mat4v4float
121%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
122         %16 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
123       %void = OpTypeVoid
124         %26 = OpTypeFunction %void
125    %float_0 = OpConstant %float 0
126         %29 = OpConstantComposite %v2float %float_0 %float_0
127%_ptr_Function_v2float = OpTypePointer Function %v2float
128       %bool = OpTypeBool
129         %34 = OpTypeFunction %bool
130        %int = OpTypeInt 32 1
131%_ptr_Function_int = OpTypePointer Function %int
132%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
133      %int_0 = OpConstant %int 0
134     %int_n1 = OpConstant %int -1
135   %float_n1 = OpConstant %float -1
136         %55 = OpConstantComposite %v2float %float_n1 %float_n1
137     %v2bool = OpTypeVector %bool 2
138      %v2int = OpTypeVector %int 2
139%_ptr_Function_v2int = OpTypePointer Function %v2int
140         %69 = OpConstantComposite %v2int %int_n1 %int_n1
141%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
142   %float_n2 = OpConstant %float -2
143   %float_n3 = OpConstant %float -3
144   %float_n4 = OpConstant %float -4
145         %78 = OpConstantComposite %v2float %float_n1 %float_n2
146         %79 = OpConstantComposite %v2float %float_n3 %float_n4
147         %80 = OpConstantComposite %mat2v2float %78 %79
148%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float
149      %int_3 = OpConstant %int 3
150%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
151   %float_n5 = OpConstant %float -5
152   %float_n6 = OpConstant %float -6
153   %float_n7 = OpConstant %float -7
154   %float_n8 = OpConstant %float -8
155   %float_n9 = OpConstant %float -9
156        %104 = OpConstantComposite %v3float %float_n1 %float_n2 %float_n3
157        %105 = OpConstantComposite %v3float %float_n4 %float_n5 %float_n6
158        %106 = OpConstantComposite %v3float %float_n7 %float_n8 %float_n9
159        %107 = OpConstantComposite %mat3v3float %104 %105 %106
160%_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float
161      %int_4 = OpConstant %int 4
162     %v3bool = OpTypeVector %bool 3
163%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
164  %float_n10 = OpConstant %float -10
165  %float_n11 = OpConstant %float -11
166  %float_n12 = OpConstant %float -12
167  %float_n13 = OpConstant %float -13
168  %float_n14 = OpConstant %float -14
169  %float_n15 = OpConstant %float -15
170  %float_n16 = OpConstant %float -16
171        %139 = OpConstantComposite %v4float %float_n1 %float_n2 %float_n3 %float_n4
172        %140 = OpConstantComposite %v4float %float_n5 %float_n6 %float_n7 %float_n8
173        %141 = OpConstantComposite %v4float %float_n9 %float_n10 %float_n11 %float_n12
174        %142 = OpConstantComposite %v4float %float_n13 %float_n14 %float_n15 %float_n16
175        %143 = OpConstantComposite %mat4v4float %139 %140 %141 %142
176%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float
177      %int_5 = OpConstant %int 5
178     %v4bool = OpTypeVector %bool 4
179        %230 = OpTypeFunction %v4float %_ptr_Function_v2float
180%_ptr_Function_float = OpTypePointer Function %float
181      %false = OpConstantFalse %bool
182%_ptr_Function_v4float = OpTypePointer Function %v4float
183      %int_1 = OpConstant %int 1
184      %int_2 = OpConstant %int 2
185%_entrypoint_v = OpFunction %void None %26
186         %27 = OpLabel
187         %30 = OpVariable %_ptr_Function_v2float Function
188               OpStore %30 %29
189         %32 = OpFunctionCall %v4float %main %30
190               OpStore %sk_FragColor %32
191               OpReturn
192               OpFunctionEnd
193%test_iscalar_b = OpFunction %bool None %34
194         %35 = OpLabel
195          %x = OpVariable %_ptr_Function_int Function
196         %39 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0
197         %42 = OpLoad %v4float %39
198         %43 = OpCompositeExtract %float %42 0
199         %44 = OpConvertFToS %int %43
200               OpStore %x %44
201         %45 = OpSNegate %int %44
202               OpStore %x %45
203         %47 = OpIEqual %bool %45 %int_n1
204               OpReturnValue %47
205               OpFunctionEnd
206%test_fvec_b = OpFunction %bool None %34
207         %48 = OpLabel
208        %x_0 = OpVariable %_ptr_Function_v2float Function
209         %50 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0
210         %51 = OpLoad %v4float %50
211         %52 = OpVectorShuffle %v2float %51 %51 0 1
212               OpStore %x_0 %52
213         %53 = OpFNegate %v2float %52
214               OpStore %x_0 %53
215         %56 = OpFOrdEqual %v2bool %53 %55
216         %58 = OpAll %bool %56
217               OpReturnValue %58
218               OpFunctionEnd
219%test_ivec_b = OpFunction %bool None %34
220         %59 = OpLabel
221        %x_1 = OpVariable %_ptr_Function_v2int Function
222         %63 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0
223         %64 = OpLoad %v4float %63
224         %65 = OpCompositeExtract %float %64 0
225         %66 = OpConvertFToS %int %65
226         %67 = OpCompositeConstruct %v2int %66 %66
227               OpStore %x_1 %67
228         %68 = OpSNegate %v2int %67
229               OpStore %x_1 %68
230         %70 = OpIEqual %v2bool %68 %69
231         %71 = OpAll %bool %70
232               OpReturnValue %71
233               OpFunctionEnd
234%test_mat2_b = OpFunction %bool None %34
235         %72 = OpLabel
236    %negated = OpVariable %_ptr_Function_mat2v2float Function
237        %x_2 = OpVariable %_ptr_Function_mat2v2float Function
238               OpStore %negated %80
239         %82 = OpAccessChain %_ptr_Uniform_mat2v2float %16 %int_3
240         %85 = OpLoad %mat2v2float %82
241               OpStore %x_2 %85
242         %86 = OpCompositeExtract %v2float %85 0
243         %87 = OpFNegate %v2float %86
244         %88 = OpCompositeExtract %v2float %85 1
245         %89 = OpFNegate %v2float %88
246         %90 = OpCompositeConstruct %mat2v2float %87 %89
247               OpStore %x_2 %90
248         %91 = OpFOrdEqual %v2bool %87 %78
249         %92 = OpAll %bool %91
250         %93 = OpFOrdEqual %v2bool %89 %79
251         %94 = OpAll %bool %93
252         %95 = OpLogicalAnd %bool %92 %94
253               OpReturnValue %95
254               OpFunctionEnd
255%test_mat3_b = OpFunction %bool None %34
256         %96 = OpLabel
257  %negated_0 = OpVariable %_ptr_Function_mat3v3float Function
258        %x_3 = OpVariable %_ptr_Function_mat3v3float Function
259               OpStore %negated_0 %107
260        %109 = OpAccessChain %_ptr_Uniform_mat3v3float %16 %int_4
261        %112 = OpLoad %mat3v3float %109
262               OpStore %x_3 %112
263        %113 = OpCompositeExtract %v3float %112 0
264        %114 = OpFNegate %v3float %113
265        %115 = OpCompositeExtract %v3float %112 1
266        %116 = OpFNegate %v3float %115
267        %117 = OpCompositeExtract %v3float %112 2
268        %118 = OpFNegate %v3float %117
269        %119 = OpCompositeConstruct %mat3v3float %114 %116 %118
270               OpStore %x_3 %119
271        %121 = OpFOrdEqual %v3bool %114 %104
272        %122 = OpAll %bool %121
273        %123 = OpFOrdEqual %v3bool %116 %105
274        %124 = OpAll %bool %123
275        %125 = OpLogicalAnd %bool %122 %124
276        %126 = OpFOrdEqual %v3bool %118 %106
277        %127 = OpAll %bool %126
278        %128 = OpLogicalAnd %bool %125 %127
279               OpReturnValue %128
280               OpFunctionEnd
281%test_mat4_b = OpFunction %bool None %34
282        %129 = OpLabel
283  %negated_1 = OpVariable %_ptr_Function_mat4v4float Function
284        %x_4 = OpVariable %_ptr_Function_mat4v4float Function
285               OpStore %negated_1 %143
286        %145 = OpAccessChain %_ptr_Uniform_mat4v4float %16 %int_5
287        %148 = OpLoad %mat4v4float %145
288               OpStore %x_4 %148
289        %149 = OpCompositeExtract %v4float %148 0
290        %150 = OpFNegate %v4float %149
291        %151 = OpCompositeExtract %v4float %148 1
292        %152 = OpFNegate %v4float %151
293        %153 = OpCompositeExtract %v4float %148 2
294        %154 = OpFNegate %v4float %153
295        %155 = OpCompositeExtract %v4float %148 3
296        %156 = OpFNegate %v4float %155
297        %157 = OpCompositeConstruct %mat4v4float %150 %152 %154 %156
298               OpStore %x_4 %157
299        %159 = OpFOrdEqual %v4bool %150 %139
300        %160 = OpAll %bool %159
301        %161 = OpFOrdEqual %v4bool %152 %140
302        %162 = OpAll %bool %161
303        %163 = OpLogicalAnd %bool %160 %162
304        %164 = OpFOrdEqual %v4bool %154 %141
305        %165 = OpAll %bool %164
306        %166 = OpLogicalAnd %bool %163 %165
307        %167 = OpFOrdEqual %v4bool %156 %142
308        %168 = OpAll %bool %167
309        %169 = OpLogicalAnd %bool %166 %168
310               OpReturnValue %169
311               OpFunctionEnd
312%test_hmat2_b = OpFunction %bool None %34
313        %170 = OpLabel
314  %negated_2 = OpVariable %_ptr_Function_mat2v2float Function
315        %x_5 = OpVariable %_ptr_Function_mat2v2float Function
316               OpStore %negated_2 %80
317        %173 = OpAccessChain %_ptr_Uniform_mat2v2float %16 %int_3
318        %174 = OpLoad %mat2v2float %173
319               OpStore %x_5 %174
320        %175 = OpCompositeExtract %v2float %174 0
321        %176 = OpFNegate %v2float %175
322        %177 = OpCompositeExtract %v2float %174 1
323        %178 = OpFNegate %v2float %177
324        %179 = OpCompositeConstruct %mat2v2float %176 %178
325               OpStore %x_5 %179
326        %180 = OpFOrdEqual %v2bool %176 %78
327        %181 = OpAll %bool %180
328        %182 = OpFOrdEqual %v2bool %178 %79
329        %183 = OpAll %bool %182
330        %184 = OpLogicalAnd %bool %181 %183
331               OpReturnValue %184
332               OpFunctionEnd
333%test_hmat3_b = OpFunction %bool None %34
334        %185 = OpLabel
335  %negated_3 = OpVariable %_ptr_Function_mat3v3float Function
336        %x_6 = OpVariable %_ptr_Function_mat3v3float Function
337               OpStore %negated_3 %107
338        %188 = OpAccessChain %_ptr_Uniform_mat3v3float %16 %int_4
339        %189 = OpLoad %mat3v3float %188
340               OpStore %x_6 %189
341        %190 = OpCompositeExtract %v3float %189 0
342        %191 = OpFNegate %v3float %190
343        %192 = OpCompositeExtract %v3float %189 1
344        %193 = OpFNegate %v3float %192
345        %194 = OpCompositeExtract %v3float %189 2
346        %195 = OpFNegate %v3float %194
347        %196 = OpCompositeConstruct %mat3v3float %191 %193 %195
348               OpStore %x_6 %196
349        %197 = OpFOrdEqual %v3bool %191 %104
350        %198 = OpAll %bool %197
351        %199 = OpFOrdEqual %v3bool %193 %105
352        %200 = OpAll %bool %199
353        %201 = OpLogicalAnd %bool %198 %200
354        %202 = OpFOrdEqual %v3bool %195 %106
355        %203 = OpAll %bool %202
356        %204 = OpLogicalAnd %bool %201 %203
357               OpReturnValue %204
358               OpFunctionEnd
359%test_hmat4_b = OpFunction %bool None %34
360        %205 = OpLabel
361  %negated_4 = OpVariable %_ptr_Function_mat4v4float Function
362        %x_7 = OpVariable %_ptr_Function_mat4v4float Function
363               OpStore %negated_4 %143
364        %208 = OpAccessChain %_ptr_Uniform_mat4v4float %16 %int_5
365        %209 = OpLoad %mat4v4float %208
366               OpStore %x_7 %209
367        %210 = OpCompositeExtract %v4float %209 0
368        %211 = OpFNegate %v4float %210
369        %212 = OpCompositeExtract %v4float %209 1
370        %213 = OpFNegate %v4float %212
371        %214 = OpCompositeExtract %v4float %209 2
372        %215 = OpFNegate %v4float %214
373        %216 = OpCompositeExtract %v4float %209 3
374        %217 = OpFNegate %v4float %216
375        %218 = OpCompositeConstruct %mat4v4float %211 %213 %215 %217
376               OpStore %x_7 %218
377        %219 = OpFOrdEqual %v4bool %211 %139
378        %220 = OpAll %bool %219
379        %221 = OpFOrdEqual %v4bool %213 %140
380        %222 = OpAll %bool %221
381        %223 = OpLogicalAnd %bool %220 %222
382        %224 = OpFOrdEqual %v4bool %215 %141
383        %225 = OpAll %bool %224
384        %226 = OpLogicalAnd %bool %223 %225
385        %227 = OpFOrdEqual %v4bool %217 %142
386        %228 = OpAll %bool %227
387        %229 = OpLogicalAnd %bool %226 %228
388               OpReturnValue %229
389               OpFunctionEnd
390       %main = OpFunction %v4float None %230
391        %231 = OpFunctionParameter %_ptr_Function_v2float
392        %232 = OpLabel
393       %_0_x = OpVariable %_ptr_Function_float Function
394        %277 = OpVariable %_ptr_Function_v4float Function
395        %235 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0
396        %236 = OpLoad %v4float %235
397        %237 = OpCompositeExtract %float %236 0
398               OpStore %_0_x %237
399        %238 = OpFNegate %float %237
400               OpStore %_0_x %238
401        %240 = OpFOrdEqual %bool %238 %float_n1
402               OpSelectionMerge %242 None
403               OpBranchConditional %240 %241 %242
404        %241 = OpLabel
405        %243 = OpFunctionCall %bool %test_iscalar_b
406               OpBranch %242
407        %242 = OpLabel
408        %244 = OpPhi %bool %false %232 %243 %241
409               OpSelectionMerge %246 None
410               OpBranchConditional %244 %245 %246
411        %245 = OpLabel
412        %247 = OpFunctionCall %bool %test_fvec_b
413               OpBranch %246
414        %246 = OpLabel
415        %248 = OpPhi %bool %false %242 %247 %245
416               OpSelectionMerge %250 None
417               OpBranchConditional %248 %249 %250
418        %249 = OpLabel
419        %251 = OpFunctionCall %bool %test_ivec_b
420               OpBranch %250
421        %250 = OpLabel
422        %252 = OpPhi %bool %false %246 %251 %249
423               OpSelectionMerge %254 None
424               OpBranchConditional %252 %253 %254
425        %253 = OpLabel
426        %255 = OpFunctionCall %bool %test_mat2_b
427               OpBranch %254
428        %254 = OpLabel
429        %256 = OpPhi %bool %false %250 %255 %253
430               OpSelectionMerge %258 None
431               OpBranchConditional %256 %257 %258
432        %257 = OpLabel
433        %259 = OpFunctionCall %bool %test_mat3_b
434               OpBranch %258
435        %258 = OpLabel
436        %260 = OpPhi %bool %false %254 %259 %257
437               OpSelectionMerge %262 None
438               OpBranchConditional %260 %261 %262
439        %261 = OpLabel
440        %263 = OpFunctionCall %bool %test_mat4_b
441               OpBranch %262
442        %262 = OpLabel
443        %264 = OpPhi %bool %false %258 %263 %261
444               OpSelectionMerge %266 None
445               OpBranchConditional %264 %265 %266
446        %265 = OpLabel
447        %267 = OpFunctionCall %bool %test_hmat2_b
448               OpBranch %266
449        %266 = OpLabel
450        %268 = OpPhi %bool %false %262 %267 %265
451               OpSelectionMerge %270 None
452               OpBranchConditional %268 %269 %270
453        %269 = OpLabel
454        %271 = OpFunctionCall %bool %test_hmat3_b
455               OpBranch %270
456        %270 = OpLabel
457        %272 = OpPhi %bool %false %266 %271 %269
458               OpSelectionMerge %274 None
459               OpBranchConditional %272 %273 %274
460        %273 = OpLabel
461        %275 = OpFunctionCall %bool %test_hmat4_b
462               OpBranch %274
463        %274 = OpLabel
464        %276 = OpPhi %bool %false %270 %275 %273
465               OpSelectionMerge %281 None
466               OpBranchConditional %276 %279 %280
467        %279 = OpLabel
468        %282 = OpAccessChain %_ptr_Uniform_v4float %16 %int_1
469        %284 = OpLoad %v4float %282
470               OpStore %277 %284
471               OpBranch %281
472        %280 = OpLabel
473        %285 = OpAccessChain %_ptr_Uniform_v4float %16 %int_2
474        %287 = OpLoad %v4float %285
475               OpStore %277 %287
476               OpBranch %281
477        %281 = OpLabel
478        %288 = OpLoad %v4float %277
479               OpReturnValue %288
480               OpFunctionEnd
481