OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color OpExecutionMode %main OriginUpperLeft OpSource ESSL 320 OpName %main "main" OpName %func0_i1_ "func0(i1;" OpName %x "x" OpName %func1_ "func1(" OpName %m "m" OpName %buf2 "buf2" OpMemberName %buf2 0 "one" OpName %_ "" OpName %buf0 "buf0" OpMemberName %buf0 0 "_GLF_uniform_float_values" OpName %__0 "" OpName %i "i" OpName %gl_FragCoord "gl_FragCoord" OpName %param "param" OpName %buf1 "buf1" OpMemberName %buf1 0 "_GLF_uniform_int_values" OpName %__1 "" OpName %_GLF_color "_GLF_color" OpMemberDecorate %buf2 0 Offset 0 OpDecorate %buf2 Block OpDecorate %_ DescriptorSet 0 OpDecorate %_ Binding 2 OpDecorate %_arr_float_uint_1 ArrayStride 16 OpMemberDecorate %buf0 0 Offset 0 OpDecorate %buf0 Block OpDecorate %__0 DescriptorSet 0 OpDecorate %__0 Binding 0 OpDecorate %gl_FragCoord BuiltIn FragCoord OpDecorate %_arr_int_uint_4 ArrayStride 16 OpMemberDecorate %buf1 0 Offset 0 OpDecorate %buf1 Block OpDecorate %__1 DescriptorSet 0 OpDecorate %__1 Binding 1 OpDecorate %_GLF_color Location 0 %void = OpTypeVoid %20 = OpTypeFunction %void %int = OpTypeInt 32 1 %_ptr_Function_int = OpTypePointer Function %int %23 = OpTypeFunction %void %_ptr_Function_int %float = OpTypeFloat 32 %v2float = OpTypeVector %float 2 %mat4v2float = OpTypeMatrix %v2float 4 %_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float %m = OpVariable %_ptr_Private_mat4v2float Private %float_0 = OpConstant %float 0 %29 = OpConstantComposite %v2float %float_0 %float_0 %30 = OpConstantComposite %mat4v2float %29 %29 %29 %29 %bool = OpTypeBool %int_1 = OpConstant %int 1 %buf2 = OpTypeStruct %float %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2 %_ = OpVariable %_ptr_Uniform_buf2 Uniform %int_0 = OpConstant %int 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %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 %__0 = OpVariable %_ptr_Uniform_buf0 Uniform %int_2 = OpConstant %int 2 %int_3 = OpConstant %int 3 %_ptr_Private_float = OpTypePointer Private %float %v4float = OpTypeVector %float 4 %_ptr_Input_v4float = OpTypePointer Input %v4float %gl_FragCoord = OpVariable %_ptr_Input_v4float Input %_ptr_Input_float = OpTypePointer Input %float %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 %__1 = OpVariable %_ptr_Uniform_buf1 Uniform %_ptr_Uniform_int = OpTypePointer Uniform %int %float_1 = OpConstant %float 1 %v2bool = OpTypeVector %bool 2 %_ptr_Output_v4float = OpTypePointer Output %v4float %_GLF_color = OpVariable %_ptr_Output_v4float Output %main = OpFunction %void None %20 %51 = OpLabel OpStore %m %30 %52 = OpFunctionCall %void %func1_ %53 = OpFunctionCall %void %func1_ %54 = OpLoad %mat4v2float %m %55 = OpAccessChain %_ptr_Uniform_int %__1 %int_0 %int_0 %56 = OpLoad %int %55 %57 = OpConvertSToF %float %56 %58 = OpAccessChain %_ptr_Uniform_int %__1 %int_0 %int_0 %59 = OpLoad %int %58 %60 = OpConvertSToF %float %59 %61 = OpAccessChain %_ptr_Uniform_int %__1 %int_0 %int_1 %62 = OpLoad %int %61 %63 = OpConvertSToF %float %62 %64 = OpAccessChain %_ptr_Uniform_int %__1 %int_0 %int_1 %65 = OpLoad %int %64 %66 = OpConvertSToF %float %65 %67 = OpAccessChain %_ptr_Uniform_int %__1 %int_0 %int_0 %68 = OpLoad %int %67 %69 = OpConvertSToF %float %68 %70 = OpAccessChain %_ptr_Uniform_int %__1 %int_0 %int_0 %71 = OpLoad %int %70 %72 = OpConvertSToF %float %71 %73 = OpAccessChain %_ptr_Uniform_int %__1 %int_0 %int_0 %74 = OpLoad %int %73 %75 = OpConvertSToF %float %74 %76 = OpAccessChain %_ptr_Uniform_int %__1 %int_0 %int_0 %77 = OpLoad %int %76 %78 = OpConvertSToF %float %77 %79 = OpCompositeConstruct %v2float %57 %60 %80 = OpCompositeConstruct %v2float %63 %66 %81 = OpCompositeConstruct %v2float %69 %72 %82 = OpCompositeConstruct %v2float %75 %78 %83 = OpCompositeConstruct %mat4v2float %79 %80 %81 %82 %84 = OpCompositeExtract %v2float %54 0 %85 = OpCompositeExtract %v2float %83 0 %86 = OpFOrdEqual %v2bool %84 %85 %87 = OpAll %bool %86 %88 = OpCompositeExtract %v2float %54 1 %89 = OpCompositeExtract %v2float %83 1 %90 = OpFOrdEqual %v2bool %88 %89 %91 = OpAll %bool %90 %92 = OpLogicalAnd %bool %87 %91 %93 = OpCompositeExtract %v2float %54 2 %94 = OpCompositeExtract %v2float %83 2 %95 = OpFOrdEqual %v2bool %93 %94 %96 = OpAll %bool %95 %97 = OpLogicalAnd %bool %92 %96 %98 = OpCompositeExtract %v2float %54 3 %99 = OpCompositeExtract %v2float %83 3 %100 = OpFOrdEqual %v2bool %98 %99 %101 = OpAll %bool %100 %102 = OpLogicalAnd %bool %97 %101 OpSelectionMerge %103 None OpBranchConditional %102 %104 %105 %104 = OpLabel %106 = OpAccessChain %_ptr_Uniform_int %__1 %int_0 %int_3 %107 = OpLoad %int %106 %108 = OpConvertSToF %float %107 %109 = OpAccessChain %_ptr_Uniform_int %__1 %int_0 %int_0 %110 = OpLoad %int %109 %111 = OpConvertSToF %float %110 %112 = OpAccessChain %_ptr_Uniform_int %__1 %int_0 %int_0 %113 = OpLoad %int %112 %114 = OpConvertSToF %float %113 %115 = OpAccessChain %_ptr_Uniform_int %__1 %int_0 %int_3 %116 = OpLoad %int %115 %117 = OpConvertSToF %float %116 %118 = OpCompositeConstruct %v4float %108 %111 %114 %117 OpStore %_GLF_color %118 OpBranch %103 %105 = OpLabel %119 = OpAccessChain %_ptr_Uniform_int %__1 %int_0 %int_0 %120 = OpLoad %int %119 %121 = OpConvertSToF %float %120 %122 = OpCompositeConstruct %v4float %121 %121 %121 %121 OpStore %_GLF_color %122 OpBranch %103 %103 = OpLabel OpReturn OpFunctionEnd %func0_i1_ = OpFunction %void None %23 %x = OpFunctionParameter %_ptr_Function_int %123 = OpLabel %i = OpVariable %_ptr_Function_int Function %124 = OpLoad %int %x %125 = OpSLessThan %bool %124 %int_1 %126 = OpLogicalNot %bool %125 OpSelectionMerge %127 None OpBranchConditional %126 %128 %127 %128 = OpLabel %129 = OpLoad %int %x %130 = OpSGreaterThan %bool %129 %int_1 OpSelectionMerge %131 None OpBranchConditional %130 %132 %131 %132 = OpLabel %133 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %134 = OpLoad %float %133 %135 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0 %136 = OpLoad %float %135 %137 = OpFOrdGreaterThan %bool %134 %136 OpBranch %131 %131 = OpLabel %138 = OpPhi %bool %130 %128 %137 %132 OpBranch %127 %127 = OpLabel %139 = OpPhi %bool %125 %123 %138 %131 OpSelectionMerge %140 None OpBranchConditional %139 %141 %140 %141 = OpLabel OpReturn %140 = OpLabel %142 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %143 = OpLoad %float %142 %144 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0 %145 = OpLoad %float %144 %146 = OpFOrdEqual %bool %143 %145 OpSelectionMerge %147 None OpBranchConditional %146 %148 %147 %148 = OpLabel OpStore %i %int_0 OpBranch %149 %149 = OpLabel %150 = OpLoad %int %i %151 = OpSLessThan %bool %150 %int_2 OpLoopMerge %152 %153 None OpBranchConditional %151 %153 %152 %153 = OpLabel %154 = OpLoad %int %x %155 = OpExtInst %int %1 SClamp %154 %int_0 %int_3 %156 = OpLoad %int %i %157 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0 %158 = OpLoad %float %157 %159 = OpAccessChain %_ptr_Private_float %m %155 %156 %160 = OpLoad %float %159 %161 = OpFAdd %float %160 %158 %162 = OpAccessChain %_ptr_Private_float %m %155 %156 OpStore %162 %161 %163 = OpLoad %int %i %164 = OpIAdd %int %163 %int_1 OpStore %i %164 OpBranch %149 %152 = OpLabel OpBranch %147 %147 = OpLabel OpReturn OpFunctionEnd %func1_ = OpFunction %void None %20 %165 = OpLabel %param = OpVariable %_ptr_Function_int Function %166 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_1 %167 = OpLoad %float %166 %168 = OpFOrdLessThan %bool %167 %float_0 OpSelectionMerge %169 None OpBranchConditional %168 %170 %169 %170 = OpLabel OpReturn %169 = OpLabel OpStore %param %int_1 %171 = OpFunctionCall %void %func0_i1_ %param OpReturn OpFunctionEnd