OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_Clockwise %sk_FragColor OpExecutionMode %_entrypoint_v OriginUpperLeft OpName %sk_Clockwise "sk_Clockwise" OpName %sk_FragColor "sk_FragColor" OpName %_UniformBuffer "_UniformBuffer" OpMemberName %_UniformBuffer 0 "colorGreen" OpMemberName %_UniformBuffer 1 "colorRed" OpMemberName %_UniformBuffer 2 "colorBlack" OpMemberName %_UniformBuffer 3 "colorWhite" OpMemberName %_UniformBuffer 4 "testInputs" OpName %_entrypoint_v "_entrypoint_v" OpName %main "main" OpName %FTFT "FTFT" OpName %TFTF "TFTF" OpDecorate %sk_Clockwise BuiltIn FrontFacing OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 OpMemberDecorate %_UniformBuffer 0 Offset 0 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision OpMemberDecorate %_UniformBuffer 1 Offset 16 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision OpMemberDecorate %_UniformBuffer 2 Offset 32 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision OpMemberDecorate %_UniformBuffer 3 Offset 48 OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision OpMemberDecorate %_UniformBuffer 4 Offset 64 OpMemberDecorate %_UniformBuffer 4 RelaxedPrecision OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %33 RelaxedPrecision OpDecorate %34 RelaxedPrecision OpDecorate %36 RelaxedPrecision OpDecorate %38 RelaxedPrecision OpDecorate %40 RelaxedPrecision OpDecorate %49 RelaxedPrecision OpDecorate %50 RelaxedPrecision OpDecorate %53 RelaxedPrecision OpDecorate %54 RelaxedPrecision OpDecorate %57 RelaxedPrecision OpDecorate %58 RelaxedPrecision OpDecorate %60 RelaxedPrecision OpDecorate %61 RelaxedPrecision OpDecorate %63 RelaxedPrecision OpDecorate %64 RelaxedPrecision OpDecorate %70 RelaxedPrecision OpDecorate %71 RelaxedPrecision OpDecorate %73 RelaxedPrecision OpDecorate %74 RelaxedPrecision OpDecorate %78 RelaxedPrecision OpDecorate %79 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %82 RelaxedPrecision OpDecorate %85 RelaxedPrecision OpDecorate %86 RelaxedPrecision OpDecorate %88 RelaxedPrecision OpDecorate %96 RelaxedPrecision OpDecorate %97 RelaxedPrecision OpDecorate %100 RelaxedPrecision OpDecorate %101 RelaxedPrecision OpDecorate %105 RelaxedPrecision OpDecorate %106 RelaxedPrecision OpDecorate %108 RelaxedPrecision OpDecorate %109 RelaxedPrecision OpDecorate %112 RelaxedPrecision OpDecorate %113 RelaxedPrecision OpDecorate %115 RelaxedPrecision OpDecorate %116 RelaxedPrecision OpDecorate %117 RelaxedPrecision OpDecorate %125 RelaxedPrecision OpDecorate %127 RelaxedPrecision OpDecorate %129 RelaxedPrecision OpDecorate %131 RelaxedPrecision OpDecorate %133 RelaxedPrecision OpDecorate %134 RelaxedPrecision OpDecorate %136 RelaxedPrecision OpDecorate %137 RelaxedPrecision OpDecorate %138 RelaxedPrecision OpDecorate %146 RelaxedPrecision OpDecorate %147 RelaxedPrecision OpDecorate %150 RelaxedPrecision OpDecorate %151 RelaxedPrecision OpDecorate %154 RelaxedPrecision OpDecorate %155 RelaxedPrecision OpDecorate %157 RelaxedPrecision OpDecorate %158 RelaxedPrecision OpDecorate %160 RelaxedPrecision OpDecorate %161 RelaxedPrecision OpDecorate %168 RelaxedPrecision OpDecorate %169 RelaxedPrecision OpDecorate %171 RelaxedPrecision OpDecorate %172 RelaxedPrecision OpDecorate %175 RelaxedPrecision OpDecorate %176 RelaxedPrecision OpDecorate %178 RelaxedPrecision OpDecorate %179 RelaxedPrecision OpDecorate %182 RelaxedPrecision OpDecorate %183 RelaxedPrecision OpDecorate %184 RelaxedPrecision OpDecorate %192 RelaxedPrecision OpDecorate %193 RelaxedPrecision OpDecorate %195 RelaxedPrecision OpDecorate %196 RelaxedPrecision OpDecorate %199 RelaxedPrecision OpDecorate %200 RelaxedPrecision OpDecorate %202 RelaxedPrecision OpDecorate %203 RelaxedPrecision OpDecorate %206 RelaxedPrecision OpDecorate %207 RelaxedPrecision OpDecorate %209 RelaxedPrecision OpDecorate %210 RelaxedPrecision OpDecorate %211 RelaxedPrecision OpDecorate %219 RelaxedPrecision OpDecorate %221 RelaxedPrecision OpDecorate %223 RelaxedPrecision OpDecorate %225 RelaxedPrecision OpDecorate %227 RelaxedPrecision OpDecorate %228 RelaxedPrecision OpDecorate %230 RelaxedPrecision OpDecorate %231 RelaxedPrecision OpDecorate %232 RelaxedPrecision OpDecorate %242 RelaxedPrecision OpDecorate %245 RelaxedPrecision OpDecorate %246 RelaxedPrecision %bool = OpTypeBool %_ptr_Input_bool = OpTypePointer Input %bool %sk_Clockwise = OpVariable %_ptr_Input_bool Input %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float %sk_FragColor = OpVariable %_ptr_Output_v4float Output %_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %v4float %v4float %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void %float_0 = OpConstant %float 0 %v2float = OpTypeVector %float 2 %19 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %23 = OpTypeFunction %v4float %_ptr_Function_v2float %v4bool = OpTypeVector %bool 4 %_ptr_Function_v4bool = OpTypePointer Function %v4bool %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 %false = OpConstantFalse %bool %int_2 = OpConstant %int 2 %int_3 = OpConstant %int 3 %v2bool = OpTypeVector %bool 2 %float_1 = OpConstant %float 1 %v3float = OpTypeVector %float 3 %v3bool = OpTypeVector %bool 3 %int_4 = OpConstant %int 4 %_ptr_Function_v4float = OpTypePointer Function %v4float %int_1 = OpConstant %int 1 %_entrypoint_v = OpFunction %void None %15 %16 = OpLabel %20 = OpVariable %_ptr_Function_v2float Function OpStore %20 %19 %22 = OpFunctionCall %v4float %main %20 OpStore %sk_FragColor %22 OpReturn OpFunctionEnd %main = OpFunction %v4float None %23 %24 = OpFunctionParameter %_ptr_Function_v2float %25 = OpLabel %FTFT = OpVariable %_ptr_Function_v4bool Function %TFTF = OpVariable %_ptr_Function_v4bool Function %236 = OpVariable %_ptr_Function_v4float Function %29 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %33 = OpLoad %v4float %29 %34 = OpCompositeExtract %float %33 0 %35 = OpFUnordNotEqual %bool %34 %float_0 %36 = OpCompositeExtract %float %33 1 %37 = OpFUnordNotEqual %bool %36 %float_0 %38 = OpCompositeExtract %float %33 2 %39 = OpFUnordNotEqual %bool %38 %float_0 %40 = OpCompositeExtract %float %33 3 %41 = OpFUnordNotEqual %bool %40 %float_0 %42 = OpCompositeConstruct %v4bool %35 %37 %39 %41 OpStore %FTFT %42 %44 = OpVectorShuffle %v4bool %42 %42 3 2 1 0 OpStore %TFTF %44 %47 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 %49 = OpLoad %v4float %47 %50 = OpCompositeExtract %float %49 0 %51 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %53 = OpLoad %v4float %51 %54 = OpCompositeExtract %float %53 0 %55 = OpCompositeExtract %bool %42 0 %56 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 %57 = OpLoad %v4float %56 %58 = OpCompositeExtract %float %57 0 %59 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %60 = OpLoad %v4float %59 %61 = OpCompositeExtract %float %60 0 %46 = OpSelect %float %55 %61 %58 %62 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 %63 = OpLoad %v4float %62 %64 = OpCompositeExtract %float %63 0 %65 = OpFOrdEqual %bool %46 %64 OpSelectionMerge %67 None OpBranchConditional %65 %66 %67 %66 = OpLabel %69 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 %70 = OpLoad %v4float %69 %71 = OpVectorShuffle %v2float %70 %70 0 1 %72 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %73 = OpLoad %v4float %72 %74 = OpVectorShuffle %v2float %73 %73 0 1 %75 = OpVectorShuffle %v2bool %42 %42 0 1 %77 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 %78 = OpLoad %v4float %77 %79 = OpVectorShuffle %v2float %78 %78 0 1 %80 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %81 = OpLoad %v4float %80 %82 = OpVectorShuffle %v2float %81 %81 0 1 %83 = OpVectorShuffle %v2bool %42 %42 0 1 %68 = OpSelect %v2float %83 %82 %79 %84 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 %85 = OpLoad %v4float %84 %86 = OpCompositeExtract %float %85 0 %88 = OpCompositeConstruct %v2float %86 %float_1 %89 = OpFOrdEqual %v2bool %68 %88 %90 = OpAll %bool %89 OpBranch %67 %67 = OpLabel %91 = OpPhi %bool %false %25 %90 %66 OpSelectionMerge %93 None OpBranchConditional %91 %92 %93 %92 = OpLabel %95 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 %96 = OpLoad %v4float %95 %97 = OpVectorShuffle %v3float %96 %96 0 1 2 %99 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %100 = OpLoad %v4float %99 %101 = OpVectorShuffle %v3float %100 %100 0 1 2 %102 = OpVectorShuffle %v3bool %42 %42 0 1 2 %104 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 %105 = OpLoad %v4float %104 %106 = OpVectorShuffle %v3float %105 %105 0 1 2 %107 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %108 = OpLoad %v4float %107 %109 = OpVectorShuffle %v3float %108 %108 0 1 2 %110 = OpVectorShuffle %v3bool %42 %42 0 1 2 %94 = OpSelect %v3float %110 %109 %106 %111 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 %112 = OpLoad %v4float %111 %113 = OpCompositeExtract %float %112 0 %114 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 %115 = OpLoad %v4float %114 %116 = OpCompositeExtract %float %115 2 %117 = OpCompositeConstruct %v3float %113 %float_1 %116 %118 = OpFOrdEqual %v3bool %94 %117 %119 = OpAll %bool %118 OpBranch %93 %93 = OpLabel %120 = OpPhi %bool %false %67 %119 %92 OpSelectionMerge %122 None OpBranchConditional %120 %121 %122 %121 = OpLabel %124 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 %125 = OpLoad %v4float %124 %126 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %127 = OpLoad %v4float %126 %128 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 %129 = OpLoad %v4float %128 %130 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %131 = OpLoad %v4float %130 %123 = OpSelect %v4float %42 %131 %129 %132 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 %133 = OpLoad %v4float %132 %134 = OpCompositeExtract %float %133 0 %135 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 %136 = OpLoad %v4float %135 %137 = OpCompositeExtract %float %136 2 %138 = OpCompositeConstruct %v4float %134 %float_1 %137 %float_1 %139 = OpFOrdEqual %v4bool %123 %138 %140 = OpAll %bool %139 OpBranch %122 %122 = OpLabel %141 = OpPhi %bool %false %93 %140 %121 OpSelectionMerge %143 None OpBranchConditional %141 %142 %143 %142 = OpLabel %145 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %146 = OpLoad %v4float %145 %147 = OpCompositeExtract %float %146 0 %148 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %150 = OpLoad %v4float %148 %151 = OpCompositeExtract %float %150 0 %152 = OpCompositeExtract %bool %44 0 %153 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %154 = OpLoad %v4float %153 %155 = OpCompositeExtract %float %154 0 %156 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %157 = OpLoad %v4float %156 %158 = OpCompositeExtract %float %157 0 %144 = OpSelect %float %152 %158 %155 %159 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %160 = OpLoad %v4float %159 %161 = OpCompositeExtract %float %160 0 %162 = OpFOrdEqual %bool %144 %161 OpBranch %143 %143 = OpLabel %163 = OpPhi %bool %false %122 %162 %142 OpSelectionMerge %165 None OpBranchConditional %163 %164 %165 %164 = OpLabel %167 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %168 = OpLoad %v4float %167 %169 = OpVectorShuffle %v2float %168 %168 0 1 %170 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %171 = OpLoad %v4float %170 %172 = OpVectorShuffle %v2float %171 %171 0 1 %173 = OpVectorShuffle %v2bool %44 %44 0 1 %174 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %175 = OpLoad %v4float %174 %176 = OpVectorShuffle %v2float %175 %175 0 1 %177 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %178 = OpLoad %v4float %177 %179 = OpVectorShuffle %v2float %178 %178 0 1 %180 = OpVectorShuffle %v2bool %44 %44 0 1 %166 = OpSelect %v2float %180 %179 %176 %181 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %182 = OpLoad %v4float %181 %183 = OpCompositeExtract %float %182 0 %184 = OpCompositeConstruct %v2float %183 %float_1 %185 = OpFOrdEqual %v2bool %166 %184 %186 = OpAll %bool %185 OpBranch %165 %165 = OpLabel %187 = OpPhi %bool %false %143 %186 %164 OpSelectionMerge %189 None OpBranchConditional %187 %188 %189 %188 = OpLabel %191 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %192 = OpLoad %v4float %191 %193 = OpVectorShuffle %v3float %192 %192 0 1 2 %194 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %195 = OpLoad %v4float %194 %196 = OpVectorShuffle %v3float %195 %195 0 1 2 %197 = OpVectorShuffle %v3bool %44 %44 0 1 2 %198 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %199 = OpLoad %v4float %198 %200 = OpVectorShuffle %v3float %199 %199 0 1 2 %201 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %202 = OpLoad %v4float %201 %203 = OpVectorShuffle %v3float %202 %202 0 1 2 %204 = OpVectorShuffle %v3bool %44 %44 0 1 2 %190 = OpSelect %v3float %204 %203 %200 %205 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %206 = OpLoad %v4float %205 %207 = OpCompositeExtract %float %206 0 %208 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %209 = OpLoad %v4float %208 %210 = OpCompositeExtract %float %209 2 %211 = OpCompositeConstruct %v3float %207 %float_1 %210 %212 = OpFOrdEqual %v3bool %190 %211 %213 = OpAll %bool %212 OpBranch %189 %189 = OpLabel %214 = OpPhi %bool %false %165 %213 %188 OpSelectionMerge %216 None OpBranchConditional %214 %215 %216 %215 = OpLabel %218 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %219 = OpLoad %v4float %218 %220 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %221 = OpLoad %v4float %220 %222 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %223 = OpLoad %v4float %222 %224 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %225 = OpLoad %v4float %224 %217 = OpSelect %v4float %44 %225 %223 %226 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %227 = OpLoad %v4float %226 %228 = OpCompositeExtract %float %227 0 %229 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %230 = OpLoad %v4float %229 %231 = OpCompositeExtract %float %230 2 %232 = OpCompositeConstruct %v4float %228 %float_1 %231 %float_1 %233 = OpFOrdEqual %v4bool %217 %232 %234 = OpAll %bool %233 OpBranch %216 %216 = OpLabel %235 = OpPhi %bool %false %189 %234 %215 OpSelectionMerge %240 None OpBranchConditional %235 %238 %239 %238 = OpLabel %241 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %242 = OpLoad %v4float %241 OpStore %236 %242 OpBranch %240 %239 = OpLabel %243 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 %245 = OpLoad %v4float %243 OpStore %236 %245 OpBranch %240 %240 = OpLabel %246 = OpLoad %v4float %236 OpReturnValue %246 OpFunctionEnd