OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %_GLF_color OpExecutionMode %main OriginUpperLeft OpSource ESSL 320 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 %buf0 "buf0" OpMemberName %buf0 0 "_GLF_uniform_int_values" OpName %_ "" OpName %i "i" OpName %arr "arr" OpName %index "index" OpName %param "param" OpName %param_0 "param" OpName %param_1 "param" OpName %param_2 "param" OpName %_GLF_color "_GLF_color" OpDecorate %_arr_int_uint_3 ArrayStride 16 OpMemberDecorate %buf0 0 Offset 0 OpDecorate %buf0 Block OpDecorate %_ DescriptorSet 0 OpDecorate %_ Binding 0 OpDecorate %_GLF_color Location 0 %void = OpTypeVoid %19 = OpTypeFunction %void %int = OpTypeInt 32 1 %S = OpTypeStruct %int %_ptr_Function_S = OpTypePointer Function %S %_ptr_Function_int = OpTypePointer Function %int %23 = OpTypeFunction %void %_ptr_Function_S %_ptr_Function_int %uint = OpTypeInt 32 0 %uint_3 = OpConstant %uint 3 %_arr_int_uint_3 = OpTypeArray %int %uint_3 %buf0 = OpTypeStruct %_arr_int_uint_3 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 %_ = OpVariable %_ptr_Uniform_buf0 Uniform %int_0 = OpConstant %int 0 %int_1 = OpConstant %int 1 %_ptr_Uniform_int = OpTypePointer Uniform %int %bool = OpTypeBool %int_10 = OpConstant %int 10 %uint_10 = OpConstant %uint 10 %_arr_S_uint_10 = OpTypeArray %S %uint_10 %_ptr_Function__arr_S_uint_10 = OpTypePointer Function %_arr_S_uint_10 %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float %_GLF_color = OpVariable %_ptr_Output_v4float Output %main = OpFunction %void None %19 %38 = OpLabel %i = OpVariable %_ptr_Function_int Function %arr = OpVariable %_ptr_Function__arr_S_uint_10 Function %index = 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 %i %int_0 OpBranch %39 %39 = OpLabel OpLoopMerge %40 %41 None OpBranch %42 %42 = OpLabel %43 = OpLoad %int %i %44 = OpSLessThan %bool %43 %int_10 OpBranchConditional %44 %45 %40 %45 = OpLabel %46 = OpLoad %int %i %47 = OpAccessChain %_ptr_Function_int %arr %46 %int_0 OpStore %47 %int_0 OpBranch %41 %41 = OpLabel %48 = OpLoad %int %i %49 = OpIAdd %int %48 %int_1 OpStore %i %49 OpBranch %39 %40 = OpLabel %50 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 %51 = OpLoad %int %50 %52 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 %53 = OpLoad %int %52 %54 = OpIEqual %bool %51 %53 OpSelectionMerge %55 None OpBranchConditional %54 %56 %57 %56 = OpLabel %58 = OpLoad %int %index %59 = OpAccessChain %_ptr_Function_S %arr %58 %60 = OpLoad %S %59 OpStore %param %60 %61 = OpLoad %int %index OpStore %param_0 %61 %62 = OpFunctionCall %void %func_struct_S_i11_i1_ %param %param_0 %63 = OpLoad %S %param %64 = OpAccessChain %_ptr_Function_S %arr %58 OpStore %64 %63 OpBranch %55 %57 = OpLabel %65 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 %66 = OpLoad %int %65 %67 = OpAccessChain %_ptr_Function_S %arr %66 %68 = OpLoad %S %67 OpStore %param_1 %68 %69 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 %70 = OpLoad %int %69 OpStore %param_2 %70 %71 = OpFunctionCall %void %func_struct_S_i11_i1_ %param_1 %param_2 %72 = OpLoad %S %param_1 %73 = OpAccessChain %_ptr_Function_S %arr %66 OpStore %73 %72 OpBranch %55 %55 = OpLabel %74 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 %75 = OpLoad %int %74 %76 = OpAccessChain %_ptr_Function_int %arr %75 %int_0 %77 = OpLoad %int %76 %78 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 %79 = OpLoad %int %78 %80 = OpIEqual %bool %77 %79 OpSelectionMerge %81 None OpBranchConditional %80 %82 %83 %82 = OpLabel %84 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 %85 = OpLoad %int %84 %86 = OpConvertSToF %float %85 %87 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 %88 = OpLoad %int %87 %89 = OpConvertSToF %float %88 %90 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 %91 = OpLoad %int %90 %92 = OpConvertSToF %float %91 %93 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 %94 = OpLoad %int %93 %95 = OpConvertSToF %float %94 %96 = OpCompositeConstruct %v4float %86 %89 %92 %95 OpStore %_GLF_color %96 OpBranch %81 %83 = OpLabel %97 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 %98 = OpLoad %int %97 %99 = OpConvertSToF %float %98 %100 = OpCompositeConstruct %v4float %99 %99 %99 %99 OpStore %_GLF_color %100 OpBranch %81 %81 = OpLabel OpReturn OpFunctionEnd %func_struct_S_i11_i1_ = OpFunction %void None %23 %s = OpFunctionParameter %_ptr_Function_S %x = OpFunctionParameter %_ptr_Function_int %101 = OpLabel %102 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 %103 = OpLoad %int %102 %104 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 %105 = OpLoad %int %104 %106 = OpIEqual %bool %103 %105 OpSelectionMerge %107 None OpBranchConditional %106 %108 %107 %108 = OpLabel OpReturn %107 = OpLabel %109 = OpLoad %int %x %110 = OpAccessChain %_ptr_Function_int %s %int_0 OpStore %110 %109 OpReturn OpFunctionEnd