dawn-cmake/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.spvasm

629 lines
25 KiB
Plaintext

; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 389
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
OpExecutionMode %main OriginUpperLeft
OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
OpName %buf0 "buf0"
OpMemberName %buf0 0 "injectionSwitch"
OpName %x_25 "x_25"
OpName %gl_FragCoord "gl_FragCoord"
OpName %x_GLF_color "x_GLF_color"
OpName %drawShape_vf2_ "drawShape_vf2_"
OpName %pos "pos"
OpName %c2 "c2"
OpName %c3 "c3"
OpName %c4 "c4"
OpName %c5 "c5"
OpName %c6 "c6"
OpName %GLF_live4i "GLF_live4i"
OpName %GLF_live4_looplimiter5 "GLF_live4_looplimiter5"
OpName %GLF_live7m42 "GLF_live7m42"
OpName %GLF_live7m33 "GLF_live7m33"
OpName %GLF_live7cols "GLF_live7cols"
OpName %GLF_live7_looplimiter3 "GLF_live7_looplimiter3"
OpName %GLF_live7rows "GLF_live7rows"
OpName %GLF_live7_looplimiter2 "GLF_live7_looplimiter2"
OpName %GLF_live7_looplimiter1 "GLF_live7_looplimiter1"
OpName %GLF_live7c "GLF_live7c"
OpName %GLF_live7r "GLF_live7r"
OpName %GLF_live7_looplimiter0 "GLF_live7_looplimiter0"
OpName %GLF_live7sum_index "GLF_live7sum_index"
OpName %GLF_live7_looplimiter7 "GLF_live7_looplimiter7"
OpName %GLF_live7cols_1 "GLF_live7cols_1"
OpName %GLF_live7rows_1 "GLF_live7rows_1"
OpName %GLF_live7sums "GLF_live7sums"
OpName %GLF_live7c_1 "GLF_live7c_1"
OpName %GLF_live7r_1 "GLF_live7r_1"
OpName %x_180 "x_180"
OpName %indexable "indexable"
OpName %main_1 "main_1"
OpName %position "position"
OpName %param "param"
OpName %param_1 "param_1"
OpName %i "i"
OpName %param_2 "param_2"
OpName %main_out "main_out"
OpMemberName %main_out 0 "x_GLF_color_1"
OpName %main_inner "main_inner"
OpName %gl_FragCoord_param "gl_FragCoord_param"
OpName %main "main"
OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
OpDecorate %x_GLF_color_1_1 Location 0
OpDecorate %buf0 Block
OpMemberDecorate %buf0 0 Offset 0
OpDecorate %x_25 NonWritable
OpDecorate %x_25 DescriptorSet 0
OpDecorate %x_25 Binding 0
OpDecorate %_arr_float_uint_9 ArrayStride 4
OpMemberDecorate %main_out 0 Offset 0
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%7 = OpConstantNull %v4float
%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
%v2float = OpTypeVector %float 2
%buf0 = OpTypeStruct %v2float
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%x_25 = OpVariable %_ptr_Uniform_buf0 Uniform
%_ptr_Private_v4float = OpTypePointer Private %v4float
%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
%v3float = OpTypeVector %float 3
%_ptr_Function_v2float = OpTypePointer Function %v2float
%15 = OpTypeFunction %v3float %_ptr_Function_v2float
%bool = OpTypeBool
%_ptr_Function_bool = OpTypePointer Function %bool
%24 = OpConstantNull %bool
%int = OpTypeInt 32 1
%_ptr_Function_int = OpTypePointer Function %int
%32 = OpConstantNull %int
%mat4v2float = OpTypeMatrix %v2float 4
%_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float
%37 = OpConstantNull %mat4v2float
%mat3v3float = OpTypeMatrix %v3float 3
%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
%41 = OpConstantNull %mat3v3float
%uint = OpTypeInt 32 0
%uint_9 = OpConstant %uint 9
%_arr_float_uint_9 = OpTypeArray %float %uint_9
%_ptr_Function__arr_float_uint_9 = OpTypePointer Function %_arr_float_uint_9
%59 = OpConstantNull %_arr_float_uint_9
%uint_0 = OpConstant %uint 0
%_ptr_Function_float = OpTypePointer Function %float
%float_1 = OpConstant %float 1
%74 = OpConstantComposite %v3float %float_1 %float_1 %float_1
%uint_1 = OpConstant %uint 1
%int_0 = OpConstant %int 0
%int_4 = OpConstant %int 4
%int_7 = OpConstant %int 7
%int_1 = OpConstant %int 1
%float_0 = OpConstant %float 0
%125 = OpConstantComposite %v2float %float_1 %float_0
%126 = OpConstantComposite %v2float %float_0 %float_1
%127 = OpConstantComposite %v2float %float_0 %float_0
%128 = OpConstantComposite %mat4v2float %125 %126 %127 %125
%129 = OpConstantComposite %v3float %float_1 %float_0 %float_0
%130 = OpConstantComposite %v3float %float_0 %float_1 %float_0
%131 = OpConstantComposite %v3float %float_0 %float_0 %float_1
%132 = OpConstantComposite %mat3v3float %129 %130 %131
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%_ptr_Uniform_float = OpTypePointer Uniform %float
%int_9 = OpConstant %int 9
%void = OpTypeVoid
%334 = OpTypeFunction %void
%339 = OpConstantNull %v2float
%float_2 = OpConstant %float 2
%int_25 = OpConstant %int 25
%375 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
%main_out = OpTypeStruct %v4float
%376 = OpTypeFunction %main_out %v4float
%drawShape_vf2_ = OpFunction %v3float None %15
%pos = OpFunctionParameter %_ptr_Function_v2float
%20 = OpLabel
%c2 = OpVariable %_ptr_Function_bool Function %24
%c3 = OpVariable %_ptr_Function_bool Function %24
%c4 = OpVariable %_ptr_Function_bool Function %24
%c5 = OpVariable %_ptr_Function_bool Function %24
%c6 = OpVariable %_ptr_Function_bool Function %24
%GLF_live4i = OpVariable %_ptr_Function_int Function %32
%GLF_live4_looplimiter5 = OpVariable %_ptr_Function_int Function %32
%GLF_live7m42 = OpVariable %_ptr_Function_mat4v2float Function %37
%GLF_live7m33 = OpVariable %_ptr_Function_mat3v3float Function %41
%GLF_live7cols = OpVariable %_ptr_Function_int Function %32
%GLF_live7_looplimiter3 = OpVariable %_ptr_Function_int Function %32
%GLF_live7rows = OpVariable %_ptr_Function_int Function %32
%GLF_live7_looplimiter2 = OpVariable %_ptr_Function_int Function %32
%GLF_live7_looplimiter1 = OpVariable %_ptr_Function_int Function %32
%GLF_live7c = OpVariable %_ptr_Function_int Function %32
%GLF_live7r = OpVariable %_ptr_Function_int Function %32
%GLF_live7_looplimiter0 = OpVariable %_ptr_Function_int Function %32
%GLF_live7sum_index = OpVariable %_ptr_Function_int Function %32
%GLF_live7_looplimiter7 = OpVariable %_ptr_Function_int Function %32
%GLF_live7cols_1 = OpVariable %_ptr_Function_int Function %32
%GLF_live7rows_1 = OpVariable %_ptr_Function_int Function %32
%GLF_live7sums = OpVariable %_ptr_Function__arr_float_uint_9 Function %59
%GLF_live7c_1 = OpVariable %_ptr_Function_int Function %32
%GLF_live7r_1 = OpVariable %_ptr_Function_int Function %32
%x_180 = OpVariable %_ptr_Function_int Function %32
%indexable = OpVariable %_ptr_Function_mat3v3float Function %41
%67 = OpAccessChain %_ptr_Function_float %pos %uint_0
%68 = OpLoad %float %67
%70 = OpFOrdGreaterThan %bool %68 %float_1
OpStore %c2 %70
%71 = OpLoad %bool %c2
OpSelectionMerge %72 None
OpBranchConditional %71 %73 %72
%73 = OpLabel
OpReturnValue %74
%72 = OpLabel
%77 = OpAccessChain %_ptr_Function_float %pos %uint_1
%78 = OpLoad %float %77
%79 = OpFOrdLessThan %bool %78 %float_1
OpStore %c3 %79
%80 = OpLoad %bool %c3
OpSelectionMerge %81 None
OpBranchConditional %80 %82 %81
%82 = OpLabel
OpReturnValue %74
%81 = OpLabel
%84 = OpAccessChain %_ptr_Function_float %pos %uint_1
%85 = OpLoad %float %84
%86 = OpFOrdGreaterThan %bool %85 %float_1
OpStore %c4 %86
%87 = OpLoad %bool %c4
OpSelectionMerge %88 None
OpBranchConditional %87 %89 %88
%89 = OpLabel
OpReturnValue %74
%88 = OpLabel
%91 = OpAccessChain %_ptr_Function_float %pos %uint_0
%92 = OpLoad %float %91
%93 = OpFOrdLessThan %bool %92 %float_1
OpStore %c5 %93
%94 = OpLoad %bool %c5
OpSelectionMerge %95 None
OpBranchConditional %94 %96 %95
%96 = OpLabel
OpReturnValue %74
%95 = OpLabel
%98 = OpAccessChain %_ptr_Function_float %pos %uint_0
%99 = OpLoad %float %98
%100 = OpFAdd %float %99 %float_1
%101 = OpFOrdGreaterThan %bool %100 %float_1
OpStore %c6 %101
%102 = OpLoad %bool %c6
OpSelectionMerge %103 None
OpBranchConditional %102 %104 %103
%104 = OpLabel
OpReturnValue %74
%103 = OpLabel
OpStore %GLF_live4i %int_0
OpBranch %106
%106 = OpLabel
OpLoopMerge %107 %108 None
OpBranch %109
%109 = OpLabel
%110 = OpLoad %int %GLF_live4i
%112 = OpSLessThan %bool %110 %int_4
OpSelectionMerge %113 None
OpBranchConditional %112 %114 %115
%114 = OpLabel
OpBranch %113
%115 = OpLabel
OpBranch %107
%113 = OpLabel
%116 = OpLoad %int %GLF_live4_looplimiter5
%118 = OpSGreaterThanEqual %bool %116 %int_7
OpSelectionMerge %119 None
OpBranchConditional %118 %120 %119
%120 = OpLabel
OpBranch %107
%119 = OpLabel
%121 = OpLoad %int %GLF_live4_looplimiter5
%123 = OpIAdd %int %121 %int_1
OpStore %GLF_live4_looplimiter5 %123
OpStore %GLF_live7m42 %128
OpStore %GLF_live7m33 %132
OpStore %GLF_live7cols %int_2
OpBranch %134
%134 = OpLabel
OpLoopMerge %135 %136 None
OpBranch %137
%137 = OpLabel
%138 = OpLoad %int %GLF_live7cols
%139 = OpSLessThan %bool %138 %int_4
OpSelectionMerge %140 None
OpBranchConditional %139 %141 %142
%141 = OpLabel
OpBranch %140
%142 = OpLabel
OpBranch %135
%140 = OpLabel
%143 = OpLoad %int %GLF_live7_looplimiter3
%144 = OpSGreaterThanEqual %bool %143 %int_7
OpSelectionMerge %145 None
OpBranchConditional %144 %146 %145
%146 = OpLabel
OpBranch %135
%145 = OpLabel
%147 = OpLoad %int %GLF_live7_looplimiter3
%148 = OpIAdd %int %147 %int_1
OpStore %GLF_live7_looplimiter3 %148
OpStore %GLF_live7rows %int_2
OpBranch %149
%149 = OpLabel
OpLoopMerge %150 %151 None
OpBranch %152
%152 = OpLabel
%153 = OpLoad %int %GLF_live7rows
%154 = OpSLessThan %bool %153 %int_4
OpSelectionMerge %155 None
OpBranchConditional %154 %156 %157
%156 = OpLabel
OpBranch %155
%157 = OpLabel
OpBranch %150
%155 = OpLabel
%158 = OpLoad %int %GLF_live7_looplimiter2
%159 = OpSGreaterThanEqual %bool %158 %int_7
OpSelectionMerge %160 None
OpBranchConditional %159 %161 %160
%161 = OpLabel
OpBranch %150
%160 = OpLabel
%162 = OpLoad %int %GLF_live7_looplimiter2
%163 = OpIAdd %int %162 %int_1
OpStore %GLF_live7_looplimiter2 %163
OpStore %GLF_live7_looplimiter1 %int_0
OpStore %GLF_live7c %int_0
OpBranch %164
%164 = OpLabel
OpLoopMerge %165 %166 None
OpBranch %167
%167 = OpLabel
%168 = OpLoad %int %GLF_live7c
%170 = OpSLessThan %bool %168 %int_3
OpSelectionMerge %171 None
OpBranchConditional %170 %172 %173
%172 = OpLabel
OpBranch %171
%173 = OpLabel
OpBranch %165
%171 = OpLabel
%174 = OpLoad %int %GLF_live7_looplimiter1
%175 = OpSGreaterThanEqual %bool %174 %int_7
OpSelectionMerge %176 None
OpBranchConditional %175 %177 %176
%177 = OpLabel
OpBranch %165
%176 = OpLabel
%178 = OpLoad %int %GLF_live7_looplimiter1
%179 = OpIAdd %int %178 %int_1
OpStore %GLF_live7_looplimiter1 %179
OpStore %GLF_live7r %int_0
OpBranch %180
%180 = OpLabel
OpLoopMerge %181 %182 None
OpBranch %183
%183 = OpLabel
%184 = OpLoad %int %GLF_live7r
%185 = OpSLessThan %bool %184 %int_2
OpSelectionMerge %186 None
OpBranchConditional %185 %187 %188
%187 = OpLabel
OpBranch %186
%188 = OpLabel
OpBranch %181
%186 = OpLabel
%189 = OpLoad %int %GLF_live7_looplimiter0
%190 = OpSGreaterThanEqual %bool %189 %int_7
OpSelectionMerge %191 None
OpBranchConditional %190 %192 %191
%192 = OpLabel
OpBranch %181
%191 = OpLabel
%193 = OpLoad %int %GLF_live7_looplimiter0
%194 = OpIAdd %int %193 %int_1
OpStore %GLF_live7_looplimiter0 %194
%195 = OpLoad %int %GLF_live7c
%196 = OpLoad %int %GLF_live7c
%197 = OpLoad %int %GLF_live7c
%198 = OpLoad %int %GLF_live7r
%199 = OpLoad %int %GLF_live7r
%200 = OpLoad %int %GLF_live7r
%202 = OpSGreaterThanEqual %bool %195 %int_0
%203 = OpSLessThan %bool %196 %int_3
%204 = OpLogicalAnd %bool %202 %203
%201 = OpSelect %int %204 %197 %int_0
%206 = OpSGreaterThanEqual %bool %198 %int_0
%207 = OpSLessThan %bool %199 %int_3
%208 = OpLogicalAnd %bool %206 %207
%205 = OpSelect %int %208 %200 %int_0
%209 = OpAccessChain %_ptr_Function_float %GLF_live7m33 %201 %205
OpStore %209 %float_1
%211 = OpAccessChain %_ptr_Uniform_float %x_25 %uint_0 %uint_1
%212 = OpLoad %float %211
%213 = OpFOrdGreaterThan %bool %float_0 %212
OpSelectionMerge %214 None
OpBranchConditional %213 %215 %216
%215 = OpLabel
OpBranch %214
%216 = OpLabel
%217 = OpLoad %int %GLF_live7c
%218 = OpLoad %int %GLF_live7c
%219 = OpLoad %int %GLF_live7c
%220 = OpLoad %int %GLF_live7r
%221 = OpLoad %int %GLF_live7r
%222 = OpLoad %int %GLF_live7r
%224 = OpSGreaterThanEqual %bool %217 %int_0
%225 = OpSLessThan %bool %218 %int_4
%226 = OpLogicalAnd %bool %224 %225
%223 = OpSelect %int %226 %219 %int_0
%228 = OpSGreaterThanEqual %bool %220 %int_0
%229 = OpSLessThan %bool %221 %int_2
%230 = OpLogicalAnd %bool %228 %229
%227 = OpSelect %int %230 %222 %int_0
%231 = OpAccessChain %_ptr_Function_float %GLF_live7m42 %223 %227
OpStore %231 %float_1
OpBranch %214
%214 = OpLabel
OpBranch %182
%182 = OpLabel
%232 = OpLoad %int %GLF_live7r
%233 = OpIAdd %int %232 %int_1
OpStore %GLF_live7r %233
OpBranch %180
%181 = OpLabel
OpBranch %166
%166 = OpLabel
%234 = OpLoad %int %GLF_live7c
%235 = OpIAdd %int %234 %int_1
OpStore %GLF_live7c %235
OpBranch %164
%165 = OpLabel
OpBranch %151
%151 = OpLabel
%236 = OpLoad %int %GLF_live7rows
%237 = OpIAdd %int %236 %int_1
OpStore %GLF_live7rows %237
OpBranch %149
%150 = OpLabel
OpBranch %136
%136 = OpLabel
%238 = OpLoad %int %GLF_live7cols
%239 = OpIAdd %int %238 %int_1
OpStore %GLF_live7cols %239
OpBranch %134
%135 = OpLabel
OpStore %GLF_live7sum_index %int_0
OpStore %GLF_live7_looplimiter7 %int_0
OpStore %GLF_live7cols_1 %int_2
OpBranch %240
%240 = OpLabel
OpLoopMerge %241 %242 None
OpBranch %243
%243 = OpLabel
%244 = OpLoad %int %GLF_live7cols_1
%245 = OpSLessThan %bool %244 %int_4
OpSelectionMerge %246 None
OpBranchConditional %245 %247 %248
%247 = OpLabel
OpBranch %246
%248 = OpLabel
OpBranch %241
%246 = OpLabel
%249 = OpLoad %int %GLF_live7_looplimiter7
%250 = OpSGreaterThanEqual %bool %249 %int_7
OpSelectionMerge %251 None
OpBranchConditional %250 %252 %251
%252 = OpLabel
OpBranch %241
%251 = OpLabel
%253 = OpLoad %int %GLF_live7_looplimiter7
%254 = OpIAdd %int %253 %int_1
OpStore %GLF_live7_looplimiter7 %254
OpStore %GLF_live7rows_1 %int_2
%255 = OpLoad %int %GLF_live7sum_index
%256 = OpLoad %int %GLF_live7sum_index
%257 = OpLoad %int %GLF_live7sum_index
%259 = OpSGreaterThanEqual %bool %255 %int_0
%261 = OpSLessThan %bool %256 %int_9
%262 = OpLogicalAnd %bool %259 %261
%258 = OpSelect %int %262 %257 %int_0
%263 = OpAccessChain %_ptr_Function_float %GLF_live7sums %258
OpStore %263 %float_0
OpStore %GLF_live7c_1 %int_0
OpBranch %264
%264 = OpLabel
OpLoopMerge %265 %266 None
OpBranch %267
%267 = OpLabel
%268 = OpLoad %int %GLF_live7c_1
%269 = OpSLessThan %bool %268 %int_1
OpSelectionMerge %270 None
OpBranchConditional %269 %271 %272
%271 = OpLabel
OpBranch %270
%272 = OpLabel
OpBranch %265
%270 = OpLabel
OpStore %GLF_live7r_1 %int_0
OpBranch %273
%273 = OpLabel
OpLoopMerge %274 %275 None
OpBranch %276
%276 = OpLabel
%277 = OpLoad %int %GLF_live7r_1
%278 = OpLoad %int %GLF_live7rows_1
%279 = OpSLessThan %bool %277 %278
OpSelectionMerge %280 None
OpBranchConditional %279 %281 %282
%281 = OpLabel
OpBranch %280
%282 = OpLabel
OpBranch %274
%280 = OpLabel
%283 = OpLoad %int %GLF_live7sum_index
%284 = OpLoad %int %GLF_live7sum_index
%285 = OpLoad %int %GLF_live7sum_index
%287 = OpSGreaterThanEqual %bool %283 %int_0
%288 = OpSLessThan %bool %284 %int_9
%289 = OpLogicalAnd %bool %287 %288
%286 = OpSelect %int %289 %285 %int_0
%290 = OpLoad %mat3v3float %GLF_live7m33
%291 = OpTranspose %mat3v3float %290
%292 = OpLoad %int %GLF_live7c_1
%293 = OpSLessThan %bool %292 %int_3
OpSelectionMerge %294 None
OpBranchConditional %293 %295 %296
%295 = OpLabel
OpStore %x_180 %int_1
OpBranch %294
%296 = OpLabel
%297 = OpAccessChain %_ptr_Uniform_float %x_25 %uint_0 %uint_0
%298 = OpLoad %float %297
%299 = OpConvertFToS %int %298
OpStore %x_180 %299
OpBranch %294
%294 = OpLabel
%300 = OpLoad %int %x_180
%301 = OpLoad %int %GLF_live7r_1
OpStore %indexable %291
%303 = OpSLessThan %bool %301 %int_3
%302 = OpSelect %int %303 %int_1 %int_0
%304 = OpAccessChain %_ptr_Function_float %indexable %300 %302
%305 = OpLoad %float %304
%306 = OpAccessChain %_ptr_Function_float %GLF_live7sums %286
%307 = OpLoad %float %306
%308 = OpAccessChain %_ptr_Function_float %GLF_live7sums %286
%309 = OpFAdd %float %307 %305
OpStore %308 %309
%310 = OpLoad %int %GLF_live7sum_index
%311 = OpLoad %int %GLF_live7sum_index
%312 = OpLoad %int %GLF_live7sum_index
%314 = OpSGreaterThanEqual %bool %310 %int_0
%315 = OpSLessThan %bool %311 %int_9
%316 = OpLogicalAnd %bool %314 %315
%313 = OpSelect %int %316 %312 %int_0
%317 = OpLoad %int %GLF_live7r_1
%318 = OpAccessChain %_ptr_Function_float %GLF_live7m42 %int_1 %317
%319 = OpLoad %float %318
%320 = OpAccessChain %_ptr_Function_float %GLF_live7sums %313
%321 = OpLoad %float %320
%322 = OpAccessChain %_ptr_Function_float %GLF_live7sums %313
%323 = OpFAdd %float %321 %319
OpStore %322 %323
OpBranch %275
%275 = OpLabel
%324 = OpLoad %int %GLF_live7r_1
%325 = OpIAdd %int %324 %int_1
OpStore %GLF_live7r_1 %325
OpBranch %273
%274 = OpLabel
OpBranch %266
%266 = OpLabel
%326 = OpLoad %int %GLF_live7c_1
%327 = OpIAdd %int %326 %int_1
OpStore %GLF_live7c_1 %327
OpBranch %264
%265 = OpLabel
%328 = OpLoad %int %GLF_live7sum_index
%329 = OpIAdd %int %328 %int_1
OpStore %GLF_live7sum_index %329
OpBranch %242
%242 = OpLabel
%330 = OpLoad %int %GLF_live7cols_1
%331 = OpIAdd %int %330 %int_1
OpStore %GLF_live7cols_1 %331
OpBranch %240
%241 = OpLabel
OpBranch %108
%108 = OpLabel
%332 = OpLoad %int %GLF_live4i
%333 = OpIAdd %int %332 %int_1
OpStore %GLF_live4i %333
OpBranch %106
%107 = OpLabel
OpReturnValue %74
OpFunctionEnd
%main_1 = OpFunction %void None %334
%337 = OpLabel
%position = OpVariable %_ptr_Function_v2float Function %339
%param = OpVariable %_ptr_Function_v2float Function %339
%param_1 = OpVariable %_ptr_Function_v2float Function %339
%i = OpVariable %_ptr_Function_int Function %32
%param_2 = OpVariable %_ptr_Function_v2float Function %339
%344 = OpAccessChain %_ptr_Uniform_float %x_25 %uint_0 %uint_0
%345 = OpLoad %float %344
%347 = OpFOrdGreaterThanEqual %bool %345 %float_2
OpSelectionMerge %348 None
OpBranchConditional %347 %349 %348
%349 = OpLabel
%350 = OpLoad %v4float %gl_FragCoord
%351 = OpCompositeExtract %float %350 0
%352 = OpCompositeExtract %float %350 1
%353 = OpCompositeConstruct %v2float %351 %352
OpStore %position %353
%354 = OpLoad %v2float %position
OpStore %param %354
%355 = OpFunctionCall %v3float %drawShape_vf2_ %param
%357 = OpLoad %v2float %position
OpStore %param_1 %357
%358 = OpFunctionCall %v3float %drawShape_vf2_ %param_1
OpStore %i %int_25
OpBranch %361
%361 = OpLabel
OpLoopMerge %362 %363 None
OpBranch %364
%364 = OpLabel
%365 = OpLoad %int %i
%366 = OpSGreaterThan %bool %365 %int_0
OpSelectionMerge %367 None
OpBranchConditional %366 %368 %369
%368 = OpLabel
OpBranch %367
%369 = OpLabel
OpBranch %362
%367 = OpLabel
%370 = OpLoad %v2float %position
OpStore %param_2 %370
%371 = OpFunctionCall %v3float %drawShape_vf2_ %param_2
OpBranch %363
%363 = OpLabel
%373 = OpLoad %int %i
%374 = OpISub %int %373 %int_1
OpStore %i %374
OpBranch %361
%362 = OpLabel
OpBranch %348
%348 = OpLabel
OpStore %x_GLF_color %375
OpReturn
OpFunctionEnd
%main_inner = OpFunction %main_out None %376
%gl_FragCoord_param = OpFunctionParameter %v4float
%380 = OpLabel
OpStore %gl_FragCoord %gl_FragCoord_param
%381 = OpFunctionCall %void %main_1
%382 = OpLoad %v4float %x_GLF_color
%383 = OpCompositeConstruct %main_out %382
OpReturnValue %383
OpFunctionEnd
%main = OpFunction %void None %334
%385 = OpLabel
%387 = OpLoad %v4float %gl_FragCoord_param_1
%386 = OpFunctionCall %main_out %main_inner %387
%388 = OpCompositeExtract %v4float %386 0
OpStore %x_GLF_color_1_1 %388
OpReturn
OpFunctionEnd