OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %_GLF_color OpExecutionMode %main OriginUpperLeft OpSource ESSL 310 OpName %main "main" OpName %S "S" OpMemberName %S 0 "data" OpName %func_struct_S_i11_i1_ "func(struct-S-i11;i1;" OpName %s "s" OpName %x "x" OpName %a "a" OpName %arr "arr" OpName %buf0 "buf0" OpMemberName %buf0 0 "one" OpName %_ "" OpName %i "i" OpName %param "param" OpName %param_0 "param" OpName %param_1 "param" OpName %param_2 "param" OpName %_GLF_color "_GLF_color" OpMemberDecorate %S 0 RelaxedPrecision OpDecorate %func_struct_S_i11_i1_ RelaxedPrecision OpDecorate %x RelaxedPrecision OpDecorate %17 RelaxedPrecision OpDecorate %18 RelaxedPrecision OpDecorate %19 RelaxedPrecision OpDecorate %20 RelaxedPrecision OpDecorate %21 RelaxedPrecision OpDecorate %a RelaxedPrecision OpMemberDecorate %buf0 0 RelaxedPrecision OpMemberDecorate %buf0 0 Offset 0 OpDecorate %buf0 Block OpDecorate %_ DescriptorSet 0 OpDecorate %_ Binding 0 OpDecorate %22 RelaxedPrecision OpDecorate %i RelaxedPrecision OpDecorate %23 RelaxedPrecision OpDecorate %24 RelaxedPrecision OpDecorate %25 RelaxedPrecision OpDecorate %26 RelaxedPrecision OpDecorate %27 RelaxedPrecision OpDecorate %28 RelaxedPrecision OpDecorate %29 RelaxedPrecision OpDecorate %30 RelaxedPrecision OpDecorate %31 RelaxedPrecision OpDecorate %32 RelaxedPrecision OpDecorate %33 RelaxedPrecision OpDecorate %_GLF_color Location 0 %void = OpTypeVoid %35 = OpTypeFunction %void %int = OpTypeInt 32 1 %S = OpTypeStruct %int %_ptr_Function_S = OpTypePointer Function %S %_ptr_Function_int = OpTypePointer Function %int %39 = OpTypeFunction %int %_ptr_Function_S %_ptr_Function_int %int_0 = OpConstant %int 0 %int_1 = OpConstant %int 1 %bool = OpTypeBool %uint = OpTypeInt 32 0 %uint_1 = OpConstant %uint 1 %_arr_S_uint_1 = OpTypeArray %S %uint_1 %_ptr_Function__arr_S_uint_1 = OpTypePointer Function %_arr_S_uint_1 %buf0 = OpTypeStruct %int %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 %_ = OpVariable %_ptr_Uniform_buf0 Uniform %_ptr_Uniform_int = OpTypePointer Uniform %int %int_5 = OpConstant %int 5 %int_2 = OpConstant %int 2 %int_6 = OpConstant %int 6 %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float %_GLF_color = OpVariable %_ptr_Output_v4float Output %float_1 = OpConstant %float 1 %float_0 = OpConstant %float 0 %57 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %58 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main = OpFunction %void None %35 %59 = OpLabel %a = OpVariable %_ptr_Function_int Function %arr = OpVariable %_ptr_Function__arr_S_uint_1 Function %i = OpVariable %_ptr_Function_int Function %param = OpVariable %_ptr_Function_S Function %param_0 = OpVariable %_ptr_Function_int Function %param_1 = OpVariable %_ptr_Function_S Function %param_2 = OpVariable %_ptr_Function_int Function OpStore %a %int_0 %60 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %22 = OpLoad %int %60 %61 = OpAccessChain %_ptr_Function_int %arr %int_0 %int_0 OpStore %61 %22 OpStore %i %int_0 OpBranch %62 %62 = OpLabel OpLoopMerge %63 %64 None OpBranch %65 %65 = OpLabel %23 = OpLoad %int %i %66 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %24 = OpLoad %int %66 %25 = OpIAdd %int %int_5 %24 %67 = OpSLessThan %bool %23 %25 OpBranchConditional %67 %68 %63 %68 = OpLabel %26 = OpLoad %int %i %27 = OpSMod %int %26 %int_2 %69 = OpINotEqual %bool %27 %int_0 OpSelectionMerge %70 None OpBranchConditional %69 %71 %72 %71 = OpLabel %73 = OpAccessChain %_ptr_Function_S %arr %int_0 %74 = OpLoad %S %73 OpStore %param %74 %28 = OpLoad %int %i OpStore %param_0 %28 %29 = OpFunctionCall %int %func_struct_S_i11_i1_ %param %param_0 %75 = OpLoad %S %param %76 = OpAccessChain %_ptr_Function_S %arr %int_0 OpStore %76 %75 OpStore %a %29 OpBranch %70 %72 = OpLabel %77 = OpAccessChain %_ptr_Function_S %arr %int_0 %78 = OpLoad %S %77 OpStore %param_1 %78 OpStore %param_2 %int_1 %30 = OpFunctionCall %int %func_struct_S_i11_i1_ %param_1 %param_2 %79 = OpLoad %S %param_1 %80 = OpAccessChain %_ptr_Function_S %arr %int_0 OpStore %80 %79 OpStore %a %30 OpBranch %70 %70 = OpLabel OpBranch %64 %64 = OpLabel %31 = OpLoad %int %i %32 = OpIAdd %int %31 %int_1 OpStore %i %32 OpBranch %62 %63 = OpLabel %33 = OpLoad %int %a %81 = OpIEqual %bool %33 %int_6 OpSelectionMerge %82 None OpBranchConditional %81 %83 %84 %83 = OpLabel OpStore %_GLF_color %57 OpBranch %82 %84 = OpLabel OpStore %_GLF_color %58 OpBranch %82 %82 = OpLabel OpReturn OpFunctionEnd %func_struct_S_i11_i1_ = OpFunction %int None %39 %s = OpFunctionParameter %_ptr_Function_S %x = OpFunctionParameter %_ptr_Function_int %85 = OpLabel %86 = OpAccessChain %_ptr_Function_int %s %int_0 %17 = OpLoad %int %86 %87 = OpIEqual %bool %17 %int_1 OpSelectionMerge %88 None OpBranchConditional %87 %89 %90 %89 = OpLabel %18 = OpLoad %int %x %91 = OpAccessChain %_ptr_Function_int %s %int_0 %19 = OpLoad %int %91 %20 = OpIAdd %int %18 %19 OpReturnValue %20 %90 = OpLabel %21 = OpLoad %int %x OpReturnValue %21 %88 = OpLabel OpUnreachable OpFunctionEnd