; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 ; Bound: 41 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %x_1 %value OpExecutionMode %main OriginUpperLeft OpName %x_1 "x_1" OpName %value "value" OpName %f "f" OpName %x "x" OpName %main_inner "main_inner" OpName %x_0 "x" OpName %y "y" OpName %main "main" OpDecorate %x_1 Location 1 OpDecorate %x_1 Flat OpDecorate %value Location 2 %int = OpTypeInt 32 1 %v3int = OpTypeVector %int 3 %_ptr_Input_v3int = OpTypePointer Input %v3int %x_1 = OpVariable %_ptr_Input_v3int Input %_ptr_Output_int = OpTypePointer Output %int %7 = OpConstantNull %int %value = OpVariable %_ptr_Output_int Output %7 %8 = OpTypeFunction %int %int %int_10 = OpConstant %int 10 %bool = OpTypeBool %17 = OpTypeFunction %int %v3int %_ptr_Function_int = OpTypePointer Function %int %int_0 = OpConstant %int 0 %void = OpTypeVoid %35 = OpTypeFunction %void %f = OpFunction %int None %8 %x = OpFunctionParameter %int %11 = OpLabel %13 = OpIEqual %bool %x %int_10 OpSelectionMerge %15 None OpBranchConditional %13 %16 %15 %16 = OpLabel OpKill %15 = OpLabel OpReturnValue %x OpFunctionEnd %main_inner = OpFunction %int None %17 %x_0 = OpFunctionParameter %v3int %20 = OpLabel %y = OpVariable %_ptr_Function_int Function %7 %21 = OpCompositeExtract %int %x_0 0 OpStore %y %21 OpBranch %24 %24 = OpLabel OpLoopMerge %25 %26 None OpBranch %27 %27 = OpLabel %29 = OpLoad %int %y %28 = OpFunctionCall %int %f %29 %31 = OpIEqual %bool %28 %int_0 OpSelectionMerge %32 None OpBranchConditional %31 %33 %32 %33 = OpLabel OpBranch %25 %32 = OpLabel OpBranch %26 %26 = OpLabel OpBranch %24 %25 = OpLabel %34 = OpLoad %int %y OpReturnValue %34 OpFunctionEnd %main = OpFunction %void None %35 %38 = OpLabel %40 = OpLoad %v3int %x_1 %39 = OpFunctionCall %int %main_inner %40 OpStore %value %39 OpReturn OpFunctionEnd