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_ "func(struct-S-i11;" OpName %s "s" OpName %buf1 "buf1" OpMemberName %buf1 0 "v1" OpName %_ "" OpName %buf0 "buf0" OpMemberName %buf0 0 "_GLF_uniform_int_values" OpName %__0 "" OpName %i "i" OpName %arr "arr" OpName %i_0 "i" OpName %param "param" OpName %j "j" OpName %_GLF_color "_GLF_color" OpMemberDecorate %buf1 0 Offset 0 OpDecorate %buf1 Block OpDecorate %_ DescriptorSet 0 OpDecorate %_ Binding 1 OpDecorate %_arr_int_uint_5 ArrayStride 16 OpMemberDecorate %buf0 0 Offset 0 OpDecorate %buf0 Block OpDecorate %__0 DescriptorSet 0 OpDecorate %__0 Binding 0 OpDecorate %_GLF_color Location 0 %void = OpTypeVoid %18 = OpTypeFunction %void %int = OpTypeInt 32 1 %S = OpTypeStruct %int %_ptr_Function_S = OpTypePointer Function %S %21 = OpTypeFunction %void %_ptr_Function_S %float = OpTypeFloat 32 %v2float = OpTypeVector %float 2 %buf1 = OpTypeStruct %v2float %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1 %_ = OpVariable %_ptr_Uniform_buf1 Uniform %int_0 = OpConstant %int 0 %uint = OpTypeInt 32 0 %uint_0 = OpConstant %uint 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %uint_1 = OpConstant %uint 1 %bool = OpTypeBool %uint_5 = OpConstant %uint 5 %_arr_int_uint_5 = OpTypeArray %int %uint_5 %buf0 = OpTypeStruct %_arr_int_uint_5 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 %__0 = OpVariable %_ptr_Uniform_buf0 Uniform %_ptr_Uniform_int = OpTypePointer Uniform %int %_ptr_Function_int = OpTypePointer Function %int %int_2 = OpConstant %int 2 %int_1 = OpConstant %int 1 %uint_3 = OpConstant %uint 3 %_arr_S_uint_3 = OpTypeArray %S %uint_3 %_ptr_Function__arr_S_uint_3 = OpTypePointer Function %_arr_S_uint_3 %int_3 = OpConstant %int 3 %int_4 = OpConstant %int 4 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float %_GLF_color = OpVariable %_ptr_Output_v4float Output %main = OpFunction %void None %18 %44 = OpLabel %i = OpVariable %_ptr_Function_int Function %arr = OpVariable %_ptr_Function__arr_S_uint_3 Function %i_0 = OpVariable %_ptr_Function_int Function %param = OpVariable %_ptr_Function_S Function %j = OpVariable %_ptr_Function_int Function %45 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_2 %46 = OpLoad %int %45 OpStore %i %46 OpBranch %47 %47 = OpLabel OpLoopMerge %48 %49 None OpBranch %50 %50 = OpLabel %51 = OpLoad %int %i %52 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_1 %53 = OpLoad %int %52 %54 = OpSLessThan %bool %51 %53 OpBranchConditional %54 %55 %48 %55 = OpLabel %56 = OpLoad %int %i %57 = OpLoad %int %i %58 = OpAccessChain %_ptr_Function_int %arr %56 %int_0 OpStore %58 %57 OpBranch %49 %49 = OpLabel %59 = OpLoad %int %i %60 = OpIAdd %int %59 %int_1 OpStore %i %60 OpBranch %47 %48 = OpLabel %61 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_2 %62 = OpLoad %int %61 OpStore %i_0 %62 OpBranch %63 %63 = OpLabel OpLoopMerge %64 %65 None OpBranch %66 %66 = OpLabel %67 = OpLoad %int %i_0 %68 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_1 %69 = OpLoad %int %68 %70 = OpSLessThan %bool %67 %69 OpBranchConditional %70 %71 %64 %71 = OpLabel %72 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_0 %73 = OpLoad %float %72 %74 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_1 %75 = OpLoad %float %74 %76 = OpFOrdGreaterThan %bool %73 %75 OpSelectionMerge %77 None OpBranchConditional %76 %78 %77 %78 = OpLabel OpBranch %64 %77 = OpLabel %79 = OpLoad %int %i_0 %80 = OpAccessChain %_ptr_Function_int %arr %79 %int_0 %81 = OpLoad %int %80 %82 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_0 %83 = OpLoad %int %82 %84 = OpIEqual %bool %81 %83 OpSelectionMerge %85 None OpBranchConditional %84 %86 %87 %86 = OpLabel %88 = OpLoad %int %i_0 %89 = OpExtInst %int %1 SClamp %88 %int_0 %int_3 %90 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_3 %91 = OpLoad %int %90 %92 = OpAccessChain %_ptr_Function_int %arr %89 %int_0 OpStore %92 %91 %93 = OpAccessChain %_ptr_Function_S %arr %int_2 %94 = OpLoad %S %93 OpStore %param %94 %95 = OpFunctionCall %void %func_struct_S_i11_ %param %96 = OpLoad %S %param %97 = OpAccessChain %_ptr_Function_S %arr %int_2 OpStore %97 %96 OpBranch %85 %87 = OpLabel %98 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_2 %99 = OpLoad %int %98 OpStore %j %99 OpBranch %100 %100 = OpLabel OpLoopMerge %101 %102 None OpBranch %103 %103 = OpLabel %104 = OpLoad %int %j %105 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_1 %106 = OpLoad %int %105 %107 = OpSLessThan %bool %104 %106 OpBranchConditional %107 %108 %101 %108 = OpLabel %109 = OpLoad %int %j %110 = OpAccessChain %_ptr_Function_int %arr %109 %int_0 %111 = OpLoad %int %110 %112 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_4 %113 = OpLoad %int %112 %114 = OpSGreaterThan %bool %111 %113 OpSelectionMerge %115 None OpBranchConditional %114 %116 %115 %116 = OpLabel OpKill %115 = OpLabel OpBranch %102 %102 = OpLabel %117 = OpLoad %int %j %118 = OpIAdd %int %117 %int_1 OpStore %j %118 OpBranch %100 %101 = OpLabel OpBranch %85 %85 = OpLabel OpBranch %65 %65 = OpLabel %119 = OpLoad %int %i_0 %120 = OpIAdd %int %119 %int_1 OpStore %i_0 %120 OpBranch %63 %64 = OpLabel %121 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_2 %122 = OpLoad %int %121 %123 = OpAccessChain %_ptr_Function_int %arr %122 %int_0 %124 = OpLoad %int %123 %125 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_2 %126 = OpLoad %int %125 %127 = OpIEqual %bool %124 %126 OpSelectionMerge %128 None OpBranchConditional %127 %129 %128 %129 = OpLabel %130 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_0 %131 = OpLoad %int %130 %132 = OpAccessChain %_ptr_Function_int %arr %131 %int_0 %133 = OpLoad %int %132 %134 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_3 %135 = OpLoad %int %134 %136 = OpIEqual %bool %133 %135 OpBranch %128 %128 = OpLabel %137 = OpPhi %bool %127 %64 %136 %129 OpSelectionMerge %138 None OpBranchConditional %137 %139 %138 %139 = OpLabel %140 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_3 %141 = OpLoad %int %140 %142 = OpAccessChain %_ptr_Function_int %arr %141 %int_0 %143 = OpLoad %int %142 %144 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_0 %145 = OpLoad %int %144 %146 = OpIEqual %bool %143 %145 OpBranch %138 %138 = OpLabel %147 = OpPhi %bool %137 %128 %146 %139 OpSelectionMerge %148 None OpBranchConditional %147 %149 %150 %149 = OpLabel %151 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_0 %152 = OpLoad %int %151 %153 = OpConvertSToF %float %152 %154 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_2 %155 = OpLoad %int %154 %156 = OpConvertSToF %float %155 %157 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_2 %158 = OpLoad %int %157 %159 = OpConvertSToF %float %158 %160 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_0 %161 = OpLoad %int %160 %162 = OpConvertSToF %float %161 %163 = OpCompositeConstruct %v4float %153 %156 %159 %162 OpStore %_GLF_color %163 OpBranch %148 %150 = OpLabel %164 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_2 %165 = OpLoad %int %164 %166 = OpConvertSToF %float %165 %167 = OpCompositeConstruct %v4float %166 %166 %166 %166 OpStore %_GLF_color %167 OpBranch %148 %148 = OpLabel OpReturn OpFunctionEnd %func_struct_S_i11_ = OpFunction %void None %21 %s = OpFunctionParameter %_ptr_Function_S %168 = OpLabel OpBranch %169 %169 = OpLabel OpLoopMerge %170 %171 None OpBranch %172 %172 = OpLabel %173 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_0 %174 = OpLoad %float %173 %175 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_1 %176 = OpLoad %float %175 %177 = OpFOrdGreaterThan %bool %174 %176 OpBranchConditional %177 %178 %170 %178 = OpLabel OpReturn %171 = OpLabel OpBranch %169 %170 = OpLabel %179 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_0 %180 = OpLoad %int %179 %181 = OpAccessChain %_ptr_Function_int %s %int_0 OpStore %181 %180 OpReturn OpFunctionEnd