; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 ; Bound: 205 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol_1 OpExecutionMode %main OriginUpperLeft OpName %buf1 "buf1" OpMemberName %buf1 0 "x_GLF_uniform_int_values" OpName %x_6 "x_6" OpName %buf0 "buf0" OpMemberName %buf0 0 "x_GLF_uniform_float_values" OpName %x_8 "x_8" OpName %x_GLF_color "x_GLF_color" OpName %tint_symbol_1 "tint_symbol_1" OpName %main_1 "main_1" OpName %sums "sums" OpName %a "a" OpName %b "b" OpName %c "c" OpName %d "d" OpName %indexable "indexable" OpName %indexable_1 "indexable_1" OpName %x_158 "x_158" OpName %x_159_phi "x_159_phi" OpName %main_out "main_out" OpMemberName %main_out 0 "x_GLF_color_1" OpName %tint_symbol_2 "tint_symbol_2" OpName %tint_symbol "tint_symbol" OpName %main "main" OpDecorate %buf1 Block OpMemberDecorate %buf1 0 Offset 0 OpDecorate %_arr_int_uint_4 ArrayStride 16 OpDecorate %x_6 NonWritable OpDecorate %x_6 DescriptorSet 0 OpDecorate %x_6 Binding 1 OpDecorate %buf0 Block OpMemberDecorate %buf0 0 Offset 0 OpDecorate %_arr_float_uint_3 ArrayStride 16 OpDecorate %x_8 NonWritable OpDecorate %x_8 DescriptorSet 0 OpDecorate %x_8 Binding 0 OpDecorate %tint_symbol_1 Location 0 OpDecorate %_arr_float_uint_2 ArrayStride 4 OpMemberDecorate %main_out 0 Offset 0 %int = OpTypeInt 32 1 %uint = OpTypeInt 32 0 %uint_4 = OpConstant %uint 4 %_arr_int_uint_4 = OpTypeArray %int %uint_4 %buf1 = OpTypeStruct %_arr_int_uint_4 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1 %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform %float = OpTypeFloat 32 %uint_3 = OpConstant %uint 3 %_arr_float_uint_3 = OpTypeArray %float %uint_3 %buf0 = OpTypeStruct %_arr_float_uint_3 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform %v4float = OpTypeVector %float 4 %_ptr_Private_v4float = OpTypePointer Private %v4float %17 = OpConstantNull %v4float %x_GLF_color = OpVariable %_ptr_Private_v4float Private %17 %_ptr_Output_v4float = OpTypePointer Output %v4float %tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17 %void = OpTypeVoid %20 = OpTypeFunction %void %uint_2 = OpConstant %uint 2 %_arr_float_uint_2 = OpTypeArray %float %uint_2 %_ptr_Function__arr_float_uint_2 = OpTypePointer Function %_arr_float_uint_2 %28 = OpConstantNull %_arr_float_uint_2 %_ptr_Function_int = OpTypePointer Function %int %31 = OpConstantNull %int %v2float = OpTypeVector %float 2 %mat2v2float = OpTypeMatrix %v2float 2 %_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float %39 = OpConstantNull %mat2v2float %bool = OpTypeBool %_ptr_Function_bool = OpTypePointer Function %bool %44 = OpConstantNull %bool %uint_0 = OpConstant %uint 0 %int_1 = OpConstant %int 1 %_ptr_Uniform_int = OpTypePointer Uniform %int %int_0 = OpConstant %int 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Function_float = OpTypePointer Function %float %int_2 = OpConstant %int 2 %int_3 = OpConstant %int 3 %float_0 = OpConstant %float 0 %main_out = OpTypeStruct %v4float %193 = OpTypeFunction %void %main_out %main_1 = OpFunction %void None %20 %23 = OpLabel %sums = OpVariable %_ptr_Function__arr_float_uint_2 Function %28 %a = OpVariable %_ptr_Function_int Function %31 %b = OpVariable %_ptr_Function_int Function %31 %c = OpVariable %_ptr_Function_int Function %31 %d = OpVariable %_ptr_Function_int Function %31 %indexable = OpVariable %_ptr_Function_mat2v2float Function %39 %indexable_1 = OpVariable %_ptr_Function_mat2v2float Function %39 %x_158 = OpVariable %_ptr_Function_bool Function %44 %x_159_phi = OpVariable %_ptr_Function_bool Function %44 %49 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 %50 = OpLoad %int %49 %53 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0 %54 = OpLoad %float %53 %56 = OpAccessChain %_ptr_Function_float %sums %50 %57 = OpFNegate %float %54 OpStore %56 %57 %59 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 %60 = OpLoad %int %59 %61 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0 %62 = OpLoad %float %61 %63 = OpAccessChain %_ptr_Function_float %sums %60 %64 = OpFNegate %float %62 OpStore %63 %64 %65 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 %66 = OpLoad %int %65 OpStore %a %66 OpBranch %67 %67 = OpLabel OpLoopMerge %68 %69 None OpBranch %70 %70 = OpLabel %71 = OpLoad %int %a %72 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 %73 = OpLoad %int %72 %74 = OpSLessThan %bool %71 %73 OpSelectionMerge %75 None OpBranchConditional %74 %76 %77 %76 = OpLabel OpBranch %75 %77 = OpLabel OpBranch %68 %75 = OpLabel %78 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 %79 = OpLoad %int %78 OpStore %b %79 OpBranch %80 %80 = OpLabel OpLoopMerge %81 %82 None OpBranch %83 %83 = OpLabel %84 = OpLoad %int %b %86 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 %87 = OpLoad %int %86 %88 = OpSLessThan %bool %84 %87 OpSelectionMerge %89 None OpBranchConditional %88 %90 %91 %90 = OpLabel OpBranch %89 %91 = OpLabel OpBranch %81 %89 = OpLabel %92 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 %93 = OpLoad %int %92 OpStore %c %93 OpBranch %94 %94 = OpLabel OpLoopMerge %95 %96 None OpBranch %97 %97 = OpLabel %98 = OpLoad %int %c %99 = OpLoad %int %a %100 = OpSLessThanEqual %bool %98 %99 OpSelectionMerge %101 None OpBranchConditional %100 %102 %103 %102 = OpLabel OpBranch %101 %103 = OpLabel OpBranch %95 %101 = OpLabel %104 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 %105 = OpLoad %int %104 OpStore %d %105 OpBranch %106 %106 = OpLabel OpLoopMerge %107 %108 None OpBranch %109 %109 = OpLabel %110 = OpLoad %int %d %111 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3 %112 = OpLoad %int %111 %113 = OpSLessThan %bool %110 %112 OpSelectionMerge %114 None OpBranchConditional %113 %115 %116 %115 = OpLabel OpBranch %114 %116 = OpLabel OpBranch %107 %114 = OpLabel %117 = OpLoad %int %a %118 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 %119 = OpLoad %int %118 %120 = OpConvertSToF %float %119 %121 = OpLoad %int %c %122 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 %123 = OpLoad %int %122 %125 = OpCompositeConstruct %v2float %120 %float_0 %126 = OpCompositeConstruct %v2float %float_0 %120 %127 = OpCompositeConstruct %mat2v2float %125 %126 OpStore %indexable %127 %128 = OpAccessChain %_ptr_Function_float %indexable %121 %123 %129 = OpLoad %float %128 %130 = OpAccessChain %_ptr_Function_float %sums %117 OpStore %130 %129 %131 = OpLoad %int %a %132 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 %133 = OpLoad %int %132 %134 = OpConvertSToF %float %133 %135 = OpLoad %int %c %136 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 %137 = OpLoad %int %136 %138 = OpCompositeConstruct %v2float %134 %float_0 %139 = OpCompositeConstruct %v2float %float_0 %134 %140 = OpCompositeConstruct %mat2v2float %138 %139 OpStore %indexable_1 %140 %141 = OpAccessChain %_ptr_Function_float %indexable_1 %135 %137 %142 = OpLoad %float %141 %143 = OpAccessChain %_ptr_Function_float %sums %131 %144 = OpLoad %float %143 %145 = OpAccessChain %_ptr_Function_float %sums %131 %146 = OpFAdd %float %144 %142 OpStore %145 %146 OpBranch %108 %108 = OpLabel %147 = OpLoad %int %d %148 = OpIAdd %int %147 %int_1 OpStore %d %148 OpBranch %106 %107 = OpLabel OpBranch %96 %96 = OpLabel %149 = OpLoad %int %c %150 = OpIAdd %int %149 %int_1 OpStore %c %150 OpBranch %94 %95 = OpLabel OpBranch %82 %82 = OpLabel %151 = OpLoad %int %b %152 = OpIAdd %int %151 %int_1 OpStore %b %152 OpBranch %80 %81 = OpLabel OpBranch %69 %69 = OpLabel %153 = OpLoad %int %a %154 = OpIAdd %int %153 %int_1 OpStore %a %154 OpBranch %67 %68 = OpLabel %155 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 %156 = OpLoad %int %155 %157 = OpAccessChain %_ptr_Function_float %sums %156 %158 = OpLoad %float %157 %159 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1 %160 = OpLoad %float %159 %161 = OpFOrdEqual %bool %158 %160 OpStore %x_159_phi %161 OpSelectionMerge %162 None OpBranchConditional %161 %163 %162 %163 = OpLabel %164 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 %165 = OpLoad %int %164 %166 = OpAccessChain %_ptr_Function_float %sums %165 %167 = OpLoad %float %166 %168 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_2 %169 = OpLoad %float %168 %170 = OpFOrdEqual %bool %167 %169 OpStore %x_158 %170 %171 = OpLoad %bool %x_158 OpStore %x_159_phi %171 OpBranch %162 %162 = OpLabel %172 = OpLoad %bool %x_159_phi OpSelectionMerge %173 None OpBranchConditional %172 %174 %175 %174 = OpLabel %176 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 %177 = OpLoad %int %176 %178 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 %179 = OpLoad %int %178 %180 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 %181 = OpLoad %int %180 %182 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2 %183 = OpLoad %int %182 %184 = OpConvertSToF %float %177 %185 = OpConvertSToF %float %179 %186 = OpConvertSToF %float %181 %187 = OpConvertSToF %float %183 %188 = OpCompositeConstruct %v4float %184 %185 %186 %187 OpStore %x_GLF_color %188 OpBranch %173 %175 = OpLabel %189 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1 %190 = OpLoad %int %189 %191 = OpConvertSToF %float %190 %192 = OpCompositeConstruct %v4float %191 %191 %191 %191 OpStore %x_GLF_color %192 OpBranch %173 %173 = OpLabel OpReturn OpFunctionEnd %tint_symbol_2 = OpFunction %void None %193 %tint_symbol = OpFunctionParameter %main_out %197 = OpLabel %198 = OpCompositeExtract %v4float %tint_symbol 0 OpStore %tint_symbol_1 %198 OpReturn OpFunctionEnd %main = OpFunction %void None %20 %200 = OpLabel %201 = OpFunctionCall %void %main_1 %203 = OpLoad %v4float %x_GLF_color %204 = OpCompositeConstruct %main_out %203 %202 = OpFunctionCall %void %tint_symbol_2 %204 OpReturn OpFunctionEnd