; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 ; Bound: 208 ; Schema: 0 OpCapability Shader %92 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 OpExecutionMode %main OriginUpperLeft OpName %m "m" OpName %buf2 "buf2" OpMemberName %buf2 0 "one" OpName %x_10 "x_10" OpName %buf0 "buf0" OpMemberName %buf0 0 "x_GLF_uniform_float_values" OpName %x_12 "x_12" OpName %gl_FragCoord "gl_FragCoord" OpName %buf1 "buf1" OpMemberName %buf1 0 "x_GLF_uniform_int_values" OpName %x_16 "x_16" OpName %x_GLF_color "x_GLF_color" OpName %tint_symbol "tint_symbol" OpName %tint_symbol_2 "tint_symbol_2" OpName %func0_i1_ "func0_i1_" OpName %x "x" OpName %i "i" OpName %x_137 "x_137" OpName %x_138 "x_138" OpName %x_138_phi "x_138_phi" OpName %x_139_phi "x_139_phi" OpName %func1_ "func1_" OpName %param "param" OpName %main_1 "main_1" OpName %main_out "main_out" OpMemberName %main_out 0 "x_GLF_color_1" OpName %tint_symbol_3 "tint_symbol_3" OpName %tint_symbol_1 "tint_symbol_1" OpName %main "main" OpDecorate %buf2 Block OpMemberDecorate %buf2 0 Offset 0 OpDecorate %x_10 NonWritable OpDecorate %x_10 DescriptorSet 0 OpDecorate %x_10 Binding 2 OpDecorate %buf0 Block OpMemberDecorate %buf0 0 Offset 0 OpDecorate %_arr_float_uint_1 ArrayStride 16 OpDecorate %x_12 NonWritable OpDecorate %x_12 DescriptorSet 0 OpDecorate %x_12 Binding 0 OpDecorate %buf1 Block OpMemberDecorate %buf1 0 Offset 0 OpDecorate %_arr_int_uint_4 ArrayStride 16 OpDecorate %x_16 NonWritable OpDecorate %x_16 DescriptorSet 0 OpDecorate %x_16 Binding 1 OpDecorate %tint_symbol BuiltIn FragCoord OpDecorate %tint_symbol_2 Location 0 OpMemberDecorate %main_out 0 Offset 0 %float = OpTypeFloat 32 %v2float = OpTypeVector %float 2 %mat4v2float = OpTypeMatrix %v2float 4 %_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float %6 = OpConstantNull %mat4v2float %m = OpVariable %_ptr_Private_mat4v2float Private %6 %buf2 = OpTypeStruct %float %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2 %x_10 = OpVariable %_ptr_Uniform_buf2 Uniform %uint = OpTypeInt 32 0 %uint_1 = OpConstant %uint 1 %_arr_float_uint_1 = OpTypeArray %float %uint_1 %buf0 = OpTypeStruct %_arr_float_uint_1 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 %x_12 = OpVariable %_ptr_Uniform_buf0 Uniform %v4float = OpTypeVector %float 4 %_ptr_Private_v4float = OpTypePointer Private %v4float %19 = OpConstantNull %v4float %gl_FragCoord = OpVariable %_ptr_Private_v4float Private %19 %int = OpTypeInt 32 1 %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_16 = OpVariable %_ptr_Uniform_buf1 Uniform %x_GLF_color = OpVariable %_ptr_Private_v4float Private %19 %_ptr_Input_v4float = OpTypePointer Input %v4float %tint_symbol = OpVariable %_ptr_Input_v4float Input %_ptr_Output_v4float = OpTypePointer Output %v4float %tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %19 %void = OpTypeVoid %_ptr_Function_int = OpTypePointer Function %int %31 = OpTypeFunction %void %_ptr_Function_int %38 = OpConstantNull %int %bool = OpTypeBool %_ptr_Function_bool = OpTypePointer Function %bool %42 = OpConstantNull %bool %int_1 = OpConstant %int 1 %uint_0 = OpConstant %uint 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %int_0 = OpConstant %int 0 %int_2 = OpConstant %int 2 %int_3 = OpConstant %int 3 %_ptr_Private_float = OpTypePointer Private %float %104 = OpTypeFunction %void %float_0 = OpConstant %float 0 %118 = OpConstantComposite %v2float %float_0 %float_0 %119 = OpConstantComposite %mat4v2float %118 %118 %118 %118 %_ptr_Uniform_int = OpTypePointer Uniform %int %v2bool = OpTypeVector %bool 2 %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 %main_out = OpTypeStruct %v4float %195 = OpTypeFunction %void %main_out %func0_i1_ = OpFunction %void None %31 %x = OpFunctionParameter %_ptr_Function_int %36 = OpLabel %i = OpVariable %_ptr_Function_int Function %38 %x_137 = OpVariable %_ptr_Function_bool Function %42 %x_138 = OpVariable %_ptr_Function_bool Function %42 %x_138_phi = OpVariable %_ptr_Function_bool Function %42 %x_139_phi = OpVariable %_ptr_Function_bool Function %42 %47 = OpLoad %int %x %49 = OpSLessThan %bool %47 %int_1 OpStore %x_139_phi %49 %50 = OpLogicalNot %bool %49 OpSelectionMerge %51 None OpBranchConditional %50 %52 %51 %52 = OpLabel %54 = OpLoad %int %x %55 = OpSGreaterThan %bool %54 %int_1 OpStore %x_138_phi %55 OpSelectionMerge %56 None OpBranchConditional %55 %57 %56 %57 = OpLabel %60 = OpAccessChain %_ptr_Uniform_float %x_10 %uint_0 %61 = OpLoad %float %60 %63 = OpAccessChain %_ptr_Uniform_float %x_12 %uint_0 %int_0 %64 = OpLoad %float %63 %65 = OpFOrdGreaterThan %bool %61 %64 OpStore %x_137 %65 %66 = OpLoad %bool %x_137 OpStore %x_138_phi %66 OpBranch %56 %56 = OpLabel %67 = OpLoad %bool %x_138_phi OpStore %x_138 %67 %68 = OpLoad %bool %x_138 OpStore %x_139_phi %68 OpBranch %51 %51 = OpLabel %69 = OpLoad %bool %x_139_phi OpSelectionMerge %70 None OpBranchConditional %69 %71 %70 %71 = OpLabel OpReturn %70 = OpLabel %72 = OpAccessChain %_ptr_Uniform_float %x_10 %uint_0 %73 = OpLoad %float %72 %74 = OpAccessChain %_ptr_Uniform_float %x_12 %uint_0 %int_0 %75 = OpLoad %float %74 %76 = OpFOrdEqual %bool %73 %75 OpSelectionMerge %77 None OpBranchConditional %76 %78 %77 %78 = OpLabel OpStore %i %int_0 OpBranch %79 %79 = OpLabel OpLoopMerge %80 %81 None OpBranch %82 %82 = OpLabel %83 = OpLoad %int %i %85 = OpSLessThan %bool %83 %int_2 OpSelectionMerge %86 None OpBranchConditional %85 %87 %88 %87 = OpLabel OpBranch %86 %88 = OpLabel OpBranch %80 %86 = OpLabel OpBranch %81 %81 = OpLabel %90 = OpLoad %int %x %91 = OpExtInst %int %92 SClamp %90 %int_0 %int_3 %94 = OpLoad %int %i %95 = OpAccessChain %_ptr_Uniform_float %x_12 %uint_0 %int_0 %96 = OpLoad %float %95 %98 = OpAccessChain %_ptr_Private_float %m %91 %94 %99 = OpLoad %float %98 %100 = OpAccessChain %_ptr_Private_float %m %91 %94 %101 = OpFAdd %float %99 %96 OpStore %100 %101 %102 = OpLoad %int %i %103 = OpIAdd %int %102 %int_1 OpStore %i %103 OpBranch %79 %80 = OpLabel OpBranch %77 %77 = OpLabel OpReturn OpFunctionEnd %func1_ = OpFunction %void None %104 %106 = OpLabel %param = OpVariable %_ptr_Function_int Function %38 %108 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 %109 = OpLoad %float %108 %111 = OpFOrdLessThan %bool %109 %float_0 OpSelectionMerge %112 None OpBranchConditional %111 %113 %112 %113 = OpLabel OpReturn %112 = OpLabel OpStore %param %int_1 %114 = OpFunctionCall %void %func0_i1_ %param OpReturn OpFunctionEnd %main_1 = OpFunction %void None %104 %117 = OpLabel OpStore %m %119 %120 = OpFunctionCall %void %func1_ %121 = OpFunctionCall %void %func1_ %122 = OpLoad %mat4v2float %m %124 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0 %125 = OpLoad %int %124 %126 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0 %127 = OpLoad %int %126 %128 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_1 %129 = OpLoad %int %128 %130 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_1 %131 = OpLoad %int %130 %132 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0 %133 = OpLoad %int %132 %134 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0 %135 = OpLoad %int %134 %136 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0 %137 = OpLoad %int %136 %138 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0 %139 = OpLoad %int %138 %140 = OpConvertSToF %float %125 %141 = OpConvertSToF %float %127 %142 = OpCompositeConstruct %v2float %140 %141 %143 = OpConvertSToF %float %129 %144 = OpConvertSToF %float %131 %145 = OpCompositeConstruct %v2float %143 %144 %146 = OpConvertSToF %float %133 %147 = OpConvertSToF %float %135 %148 = OpCompositeConstruct %v2float %146 %147 %149 = OpConvertSToF %float %137 %150 = OpConvertSToF %float %139 %151 = OpCompositeConstruct %v2float %149 %150 %152 = OpCompositeConstruct %mat4v2float %142 %145 %148 %151 %154 = OpCompositeExtract %v2float %122 0 %155 = OpCompositeExtract %v2float %152 0 %156 = OpFOrdEqual %v2bool %154 %155 %153 = OpAll %bool %156 %159 = OpCompositeExtract %v2float %122 1 %160 = OpCompositeExtract %v2float %152 1 %161 = OpFOrdEqual %v2bool %159 %160 %158 = OpAll %bool %161 %162 = OpLogicalAnd %bool %153 %158 %165 = OpCompositeExtract %v2float %122 2 %166 = OpCompositeExtract %v2float %152 2 %167 = OpFOrdEqual %v2bool %165 %166 %163 = OpAll %bool %167 %168 = OpLogicalAnd %bool %162 %163 %171 = OpCompositeExtract %v2float %122 3 %172 = OpCompositeExtract %v2float %152 3 %173 = OpFOrdEqual %v2bool %171 %172 %169 = OpAll %bool %173 %174 = OpLogicalAnd %bool %168 %169 OpSelectionMerge %175 None OpBranchConditional %174 %176 %177 %176 = OpLabel %178 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_3 %179 = OpLoad %int %178 %180 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0 %181 = OpLoad %int %180 %182 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0 %183 = OpLoad %int %182 %184 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_3 %185 = OpLoad %int %184 %186 = OpConvertSToF %float %179 %187 = OpConvertSToF %float %181 %188 = OpConvertSToF %float %183 %189 = OpConvertSToF %float %185 %190 = OpCompositeConstruct %v4float %186 %187 %188 %189 OpStore %x_GLF_color %190 OpBranch %175 %177 = OpLabel %191 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0 %192 = OpLoad %int %191 %193 = OpConvertSToF %float %192 %194 = OpCompositeConstruct %v4float %193 %193 %193 %193 OpStore %x_GLF_color %194 OpBranch %175 %175 = OpLabel OpReturn OpFunctionEnd %tint_symbol_3 = OpFunction %void None %195 %tint_symbol_1 = OpFunctionParameter %main_out %199 = OpLabel %200 = OpCompositeExtract %v4float %tint_symbol_1 0 OpStore %tint_symbol_2 %200 OpReturn OpFunctionEnd %main = OpFunction %void None %104 %202 = OpLabel %203 = OpLoad %v4float %tint_symbol OpStore %gl_FragCoord %203 %204 = OpFunctionCall %void %main_1 %206 = OpLoad %v4float %x_GLF_color %207 = OpCompositeConstruct %main_out %206 %205 = OpFunctionCall %void %tint_symbol_3 %207 OpReturn OpFunctionEnd