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 "arr" OpName %func_struct_S_i1_2_1_i1_ "func(struct-S-i1[2]1;i1;" OpName %s "s" OpName %x "x" OpName %buf0 "buf0" OpMemberName %buf0 0 "one" OpName %_ "" OpName %a "a" OpName %i "i" OpName %j "j" OpName %s_0 "s" OpName %param "param" OpName %param_0 "param" OpName %_GLF_color "_GLF_color" OpMemberDecorate %S 0 RelaxedPrecision OpDecorate %func_struct_S_i1_2_1_i1_ RelaxedPrecision OpDecorate %x RelaxedPrecision OpDecorate %16 RelaxedPrecision OpDecorate %17 RelaxedPrecision OpMemberDecorate %buf0 0 RelaxedPrecision OpMemberDecorate %buf0 0 Offset 0 OpDecorate %buf0 Block OpDecorate %_ DescriptorSet 0 OpDecorate %_ Binding 0 OpDecorate %18 RelaxedPrecision OpDecorate %19 RelaxedPrecision OpDecorate %20 RelaxedPrecision OpDecorate %21 RelaxedPrecision OpDecorate %a RelaxedPrecision OpDecorate %i RelaxedPrecision OpDecorate %22 RelaxedPrecision OpDecorate %23 RelaxedPrecision OpDecorate %24 RelaxedPrecision OpDecorate %j 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 %34 RelaxedPrecision OpDecorate %35 RelaxedPrecision OpDecorate %36 RelaxedPrecision OpDecorate %37 RelaxedPrecision OpDecorate %38 RelaxedPrecision OpDecorate %_GLF_color Location 0 %void = OpTypeVoid %40 = OpTypeFunction %void %int = OpTypeInt 32 1 %uint = OpTypeInt 32 0 %uint_2 = OpConstant %uint 2 %_arr_int_uint_2 = OpTypeArray %int %uint_2 %S = OpTypeStruct %_arr_int_uint_2 %_ptr_Function_S = OpTypePointer Function %S %_ptr_Function_int = OpTypePointer Function %int %47 = OpTypeFunction %int %_ptr_Function_S %_ptr_Function_int %int_0 = OpConstant %int 0 %int_1 = OpConstant %int 1 %buf0 = OpTypeStruct %int %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 %_ = OpVariable %_ptr_Uniform_buf0 Uniform %_ptr_Uniform_int = OpTypePointer Uniform %int %bool = OpTypeBool %int_n1 = OpConstant %int -1 %int_2 = OpConstant %int 2 %int_3 = OpConstant %int 3 %int_30 = OpConstant %int 30 %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 %62 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %63 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main = OpFunction %void None %40 %64 = OpLabel %a = OpVariable %_ptr_Function_int Function %i = OpVariable %_ptr_Function_int Function %j = OpVariable %_ptr_Function_int Function %s_0 = OpVariable %_ptr_Function_S Function %param = OpVariable %_ptr_Function_S Function %param_0 = OpVariable %_ptr_Function_int Function OpStore %a %int_0 OpStore %i %int_0 OpBranch %65 %65 = OpLabel OpLoopMerge %66 %67 None OpBranch %68 %68 = OpLabel %22 = OpLoad %int %i %69 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %23 = OpLoad %int %69 %24 = OpIAdd %int %int_2 %23 %70 = OpSLessThan %bool %22 %24 OpBranchConditional %70 %71 %66 %71 = OpLabel OpStore %j %int_0 OpBranch %72 %72 = OpLabel OpLoopMerge %73 %74 None OpBranch %75 %75 = OpLabel %25 = OpLoad %int %j %76 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %26 = OpLoad %int %76 %27 = OpIAdd %int %int_3 %26 %77 = OpSLessThan %bool %25 %27 OpBranchConditional %77 %78 %73 %78 = OpLabel %28 = OpLoad %int %i %29 = OpLoad %int %j %30 = OpIAdd %int %28 %29 %79 = OpLoad %S %s_0 OpStore %param %79 OpStore %param_0 %30 %31 = OpFunctionCall %int %func_struct_S_i1_2_1_i1_ %param %param_0 %32 = OpLoad %int %a %33 = OpIAdd %int %32 %31 OpStore %a %33 OpBranch %74 %74 = OpLabel %34 = OpLoad %int %j %35 = OpIAdd %int %34 %int_1 OpStore %j %35 OpBranch %72 %73 = OpLabel OpBranch %67 %67 = OpLabel %36 = OpLoad %int %i %37 = OpIAdd %int %36 %int_1 OpStore %i %37 OpBranch %65 %66 = OpLabel %38 = OpLoad %int %a %80 = OpIEqual %bool %38 %int_30 OpSelectionMerge %81 None OpBranchConditional %80 %82 %83 %82 = OpLabel OpStore %_GLF_color %62 OpBranch %81 %83 = OpLabel OpStore %_GLF_color %63 OpBranch %81 %81 = OpLabel OpReturn OpFunctionEnd %func_struct_S_i1_2_1_i1_ = OpFunction %int None %47 %s = OpFunctionParameter %_ptr_Function_S %x = OpFunctionParameter %_ptr_Function_int %84 = OpLabel %16 = OpLoad %int %x %17 = OpIAdd %int %16 %int_1 %85 = OpAccessChain %_ptr_Function_int %s %int_0 %int_1 OpStore %85 %17 %86 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %18 = OpLoad %int %86 %87 = OpAccessChain %_ptr_Function_int %s %int_0 %18 %19 = OpLoad %int %87 %20 = OpLoad %int %x %88 = OpIEqual %bool %19 %20 OpSelectionMerge %89 None OpBranchConditional %88 %90 %89 %90 = OpLabel OpReturnValue %int_n1 %89 = OpLabel %21 = OpLoad %int %x OpReturnValue %21 OpFunctionEnd