               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %main "main" %sk_FragColor
               OpExecutionMode %main OriginUpperLeft
               OpName %_kGuardedDivideEpsilon "$kGuardedDivideEpsilon"
               OpName %sk_FragColor "sk_FragColor"
               OpName %_UniformBuffer "_UniformBuffer"
               OpMemberName %_UniformBuffer 0 "src"
               OpMemberName %_UniformBuffer 1 "dst"
               OpName %blend_color_saturation_Qhh3 "blend_color_saturation_Qhh3"
               OpName %blend_hslc_h4h2h4h4 "blend_hslc_h4h2h4h4"
               OpName %alpha "alpha"
               OpName %sda "sda"
               OpName %dsa "dsa"
               OpName %l "l"
               OpName %r "r"
               OpName %_2_mn "_2_mn"
               OpName %_3_mx "_3_mx"
               OpName %_4_lum "_4_lum"
               OpName %_5_result "_5_result"
               OpName %_6_minComp "_6_minComp"
               OpName %_7_maxComp "_7_maxComp"
               OpName %main "main"
               OpDecorate %_kGuardedDivideEpsilon RelaxedPrecision
               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
               OpDecorate %_UniformBuffer Block
               OpDecorate %16 Binding 0
               OpDecorate %16 DescriptorSet 0
               OpDecorate %26 RelaxedPrecision
               OpDecorate %27 RelaxedPrecision
               OpDecorate %28 RelaxedPrecision
               OpDecorate %29 RelaxedPrecision
               OpDecorate %30 RelaxedPrecision
               OpDecorate %31 RelaxedPrecision
               OpDecorate %34 RelaxedPrecision
               OpDecorate %35 RelaxedPrecision
               OpDecorate %36 RelaxedPrecision
               OpDecorate %37 RelaxedPrecision
               OpDecorate %38 RelaxedPrecision
               OpDecorate %39 RelaxedPrecision
               OpDecorate %40 RelaxedPrecision
               OpDecorate %alpha RelaxedPrecision
               OpDecorate %51 RelaxedPrecision
               OpDecorate %52 RelaxedPrecision
               OpDecorate %53 RelaxedPrecision
               OpDecorate %54 RelaxedPrecision
               OpDecorate %55 RelaxedPrecision
               OpDecorate %sda RelaxedPrecision
               OpDecorate %57 RelaxedPrecision
               OpDecorate %58 RelaxedPrecision
               OpDecorate %59 RelaxedPrecision
               OpDecorate %60 RelaxedPrecision
               OpDecorate %61 RelaxedPrecision
               OpDecorate %dsa RelaxedPrecision
               OpDecorate %63 RelaxedPrecision
               OpDecorate %64 RelaxedPrecision
               OpDecorate %65 RelaxedPrecision
               OpDecorate %66 RelaxedPrecision
               OpDecorate %67 RelaxedPrecision
               OpDecorate %l RelaxedPrecision
               OpDecorate %69 RelaxedPrecision
               OpDecorate %70 RelaxedPrecision
               OpDecorate %76 RelaxedPrecision
               OpDecorate %r RelaxedPrecision
               OpDecorate %78 RelaxedPrecision
               OpDecorate %79 RelaxedPrecision
               OpDecorate %85 RelaxedPrecision
               OpDecorate %86 RelaxedPrecision
               OpDecorate %87 RelaxedPrecision
               OpDecorate %_2_mn RelaxedPrecision
               OpDecorate %94 RelaxedPrecision
               OpDecorate %95 RelaxedPrecision
               OpDecorate %96 RelaxedPrecision
               OpDecorate %_3_mx RelaxedPrecision
               OpDecorate %105 RelaxedPrecision
               OpDecorate %106 RelaxedPrecision
               OpDecorate %109 RelaxedPrecision
               OpDecorate %110 RelaxedPrecision
               OpDecorate %112 RelaxedPrecision
               OpDecorate %113 RelaxedPrecision
               OpDecorate %115 RelaxedPrecision
               OpDecorate %_4_lum RelaxedPrecision
               OpDecorate %117 RelaxedPrecision
               OpDecorate %122 RelaxedPrecision
               OpDecorate %_5_result RelaxedPrecision
               OpDecorate %124 RelaxedPrecision
               OpDecorate %125 RelaxedPrecision
               OpDecorate %126 RelaxedPrecision
               OpDecorate %127 RelaxedPrecision
               OpDecorate %128 RelaxedPrecision
               OpDecorate %129 RelaxedPrecision
               OpDecorate %_6_minComp RelaxedPrecision
               OpDecorate %133 RelaxedPrecision
               OpDecorate %134 RelaxedPrecision
               OpDecorate %135 RelaxedPrecision
               OpDecorate %_7_maxComp RelaxedPrecision
               OpDecorate %146 RelaxedPrecision
               OpDecorate %147 RelaxedPrecision
               OpDecorate %148 RelaxedPrecision
               OpDecorate %149 RelaxedPrecision
               OpDecorate %150 RelaxedPrecision
               OpDecorate %151 RelaxedPrecision
               OpDecorate %152 RelaxedPrecision
               OpDecorate %153 RelaxedPrecision
               OpDecorate %161 RelaxedPrecision
               OpDecorate %162 RelaxedPrecision
               OpDecorate %163 RelaxedPrecision
               OpDecorate %164 RelaxedPrecision
               OpDecorate %165 RelaxedPrecision
               OpDecorate %166 RelaxedPrecision
               OpDecorate %167 RelaxedPrecision
               OpDecorate %168 RelaxedPrecision
               OpDecorate %169 RelaxedPrecision
               OpDecorate %170 RelaxedPrecision
               OpDecorate %171 RelaxedPrecision
               OpDecorate %172 RelaxedPrecision
               OpDecorate %173 RelaxedPrecision
               OpDecorate %174 RelaxedPrecision
               OpDecorate %175 RelaxedPrecision
               OpDecorate %176 RelaxedPrecision
               OpDecorate %177 RelaxedPrecision
               OpDecorate %178 RelaxedPrecision
               OpDecorate %179 RelaxedPrecision
               OpDecorate %180 RelaxedPrecision
               OpDecorate %181 RelaxedPrecision
               OpDecorate %182 RelaxedPrecision
               OpDecorate %183 RelaxedPrecision
               OpDecorate %184 RelaxedPrecision
               OpDecorate %185 RelaxedPrecision
               OpDecorate %186 RelaxedPrecision
               OpDecorate %187 RelaxedPrecision
               OpDecorate %188 RelaxedPrecision
               OpDecorate %189 RelaxedPrecision
               OpDecorate %190 RelaxedPrecision
               OpDecorate %200 RelaxedPrecision
               OpDecorate %204 RelaxedPrecision
      %float = OpTypeFloat 32
%_ptr_Private_float = OpTypePointer Private %float
%_kGuardedDivideEpsilon = OpVariable %_ptr_Private_float Private
       %bool = OpTypeBool
      %false = OpConstantFalse %bool
%float_9_99999994en09 = OpConstant %float 9.99999994e-09
    %float_0 = OpConstant %float 0
    %v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%sk_FragColor = OpVariable %_ptr_Output_v4float Output
%_UniformBuffer = OpTypeStruct %v4float %v4float
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
         %16 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
    %v3float = OpTypeVector %float 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
         %21 = OpTypeFunction %float %_ptr_Function_v3float
    %v2float = OpTypeVector %float 2
%_ptr_Function_v2float = OpTypePointer Function %v2float
%_ptr_Function_v4float = OpTypePointer Function %v4float
         %44 = OpTypeFunction %v4float %_ptr_Function_v2float %_ptr_Function_v4float %_ptr_Function_v4float
%_ptr_Function_float = OpTypePointer Function %float
    %float_1 = OpConstant %float 1
        %114 = OpConstantComposite %v3float %float_0 %float_0 %float_0
%float_0_300000012 = OpConstant %float 0.300000012
%float_0_589999974 = OpConstant %float 0.589999974
%float_0_109999999 = OpConstant %float 0.109999999
        %121 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
       %void = OpTypeVoid
        %192 = OpTypeFunction %void
        %194 = OpConstantComposite %v2float %float_0 %float_0
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
        %int = OpTypeInt 32 1
      %int_0 = OpConstant %int 0
      %int_1 = OpConstant %int 1
%blend_color_saturation_Qhh3 = OpFunction %float None %21
         %22 = OpFunctionParameter %_ptr_Function_v3float
         %23 = OpLabel
         %26 = OpLoad %v3float %22
         %27 = OpCompositeExtract %float %26 0
         %28 = OpLoad %v3float %22
         %29 = OpCompositeExtract %float %28 1
         %25 = OpExtInst %float %1 FMax %27 %29
         %30 = OpLoad %v3float %22
         %31 = OpCompositeExtract %float %30 2
         %24 = OpExtInst %float %1 FMax %25 %31
         %34 = OpLoad %v3float %22
         %35 = OpCompositeExtract %float %34 0
         %36 = OpLoad %v3float %22
         %37 = OpCompositeExtract %float %36 1
         %33 = OpExtInst %float %1 FMin %35 %37
         %38 = OpLoad %v3float %22
         %39 = OpCompositeExtract %float %38 2
         %32 = OpExtInst %float %1 FMin %33 %39
         %40 = OpFSub %float %24 %32
               OpReturnValue %40
               OpFunctionEnd
%blend_hslc_h4h2h4h4 = OpFunction %v4float None %44
         %45 = OpFunctionParameter %_ptr_Function_v2float
         %46 = OpFunctionParameter %_ptr_Function_v4float
         %47 = OpFunctionParameter %_ptr_Function_v4float
         %48 = OpLabel
      %alpha = OpVariable %_ptr_Function_float Function
        %sda = OpVariable %_ptr_Function_v3float Function
        %dsa = OpVariable %_ptr_Function_v3float Function
          %l = OpVariable %_ptr_Function_v3float Function
         %72 = OpVariable %_ptr_Function_v3float Function
          %r = OpVariable %_ptr_Function_v3float Function
         %81 = OpVariable %_ptr_Function_v3float Function
      %_2_mn = OpVariable %_ptr_Function_float Function
      %_3_mx = OpVariable %_ptr_Function_float Function
        %101 = OpVariable %_ptr_Function_v3float Function
        %107 = OpVariable %_ptr_Function_v3float Function
     %_4_lum = OpVariable %_ptr_Function_float Function
  %_5_result = OpVariable %_ptr_Function_v3float Function
 %_6_minComp = OpVariable %_ptr_Function_float Function
 %_7_maxComp = OpVariable %_ptr_Function_float Function
         %51 = OpLoad %v4float %47
         %52 = OpCompositeExtract %float %51 3
         %53 = OpLoad %v4float %46
         %54 = OpCompositeExtract %float %53 3
         %55 = OpFMul %float %52 %54
               OpStore %alpha %55
         %57 = OpLoad %v4float %46
         %58 = OpVectorShuffle %v3float %57 %57 0 1 2
         %59 = OpLoad %v4float %47
         %60 = OpCompositeExtract %float %59 3
         %61 = OpVectorTimesScalar %v3float %58 %60
               OpStore %sda %61
         %63 = OpLoad %v4float %47
         %64 = OpVectorShuffle %v3float %63 %63 0 1 2
         %65 = OpLoad %v4float %46
         %66 = OpCompositeExtract %float %65 3
         %67 = OpVectorTimesScalar %v3float %64 %66
               OpStore %dsa %67
         %69 = OpLoad %v2float %45
         %70 = OpCompositeExtract %float %69 0
         %71 = OpFUnordNotEqual %bool %70 %float_0
               OpSelectionMerge %75 None
               OpBranchConditional %71 %73 %74
         %73 = OpLabel
               OpStore %72 %67
               OpBranch %75
         %74 = OpLabel
               OpStore %72 %61
               OpBranch %75
         %75 = OpLabel
         %76 = OpLoad %v3float %72
               OpStore %l %76
         %78 = OpLoad %v2float %45
         %79 = OpCompositeExtract %float %78 0
         %80 = OpFUnordNotEqual %bool %79 %float_0
               OpSelectionMerge %84 None
               OpBranchConditional %80 %82 %83
         %82 = OpLabel
               OpStore %81 %61
               OpBranch %84
         %83 = OpLabel
               OpStore %81 %67
               OpBranch %84
         %84 = OpLabel
         %85 = OpLoad %v3float %81
               OpStore %r %85
         %86 = OpLoad %v2float %45
         %87 = OpCompositeExtract %float %86 1
         %88 = OpFUnordNotEqual %bool %87 %float_0
               OpSelectionMerge %90 None
               OpBranchConditional %88 %89 %90
         %89 = OpLabel
         %94 = OpCompositeExtract %float %76 0
         %95 = OpCompositeExtract %float %76 1
         %93 = OpExtInst %float %1 FMin %94 %95
         %96 = OpCompositeExtract %float %76 2
         %92 = OpExtInst %float %1 FMin %93 %96
               OpStore %_2_mn %92
         %99 = OpExtInst %float %1 FMax %94 %95
         %98 = OpExtInst %float %1 FMax %99 %96
               OpStore %_3_mx %98
        %100 = OpFOrdGreaterThan %bool %98 %92
               OpSelectionMerge %104 None
               OpBranchConditional %100 %102 %103
        %102 = OpLabel
        %105 = OpCompositeConstruct %v3float %92 %92 %92
        %106 = OpFSub %v3float %76 %105
               OpStore %107 %85
        %108 = OpFunctionCall %float %blend_color_saturation_Qhh3 %107
        %109 = OpVectorTimesScalar %v3float %106 %108
        %110 = OpFSub %float %98 %92
        %112 = OpFDiv %float %float_1 %110
        %113 = OpVectorTimesScalar %v3float %109 %112
               OpStore %101 %113
               OpBranch %104
        %103 = OpLabel
               OpStore %101 %114
               OpBranch %104
        %104 = OpLabel
        %115 = OpLoad %v3float %101
               OpStore %l %115
               OpStore %r %67
               OpBranch %90
         %90 = OpLabel
        %122 = OpLoad %v3float %r
        %117 = OpDot %float %121 %122
               OpStore %_4_lum %117
        %125 = OpLoad %v3float %l
        %124 = OpDot %float %121 %125
        %126 = OpFSub %float %117 %124
        %127 = OpLoad %v3float %l
        %128 = OpCompositeConstruct %v3float %126 %126 %126
        %129 = OpFAdd %v3float %128 %127
               OpStore %_5_result %129
        %133 = OpCompositeExtract %float %129 0
        %134 = OpCompositeExtract %float %129 1
        %132 = OpExtInst %float %1 FMin %133 %134
        %135 = OpCompositeExtract %float %129 2
        %131 = OpExtInst %float %1 FMin %132 %135
               OpStore %_6_minComp %131
        %138 = OpExtInst %float %1 FMax %133 %134
        %137 = OpExtInst %float %1 FMax %138 %135
               OpStore %_7_maxComp %137
        %139 = OpFOrdLessThan %bool %131 %float_0
               OpSelectionMerge %141 None
               OpBranchConditional %139 %140 %141
        %140 = OpLabel
        %142 = OpFUnordNotEqual %bool %117 %131
               OpBranch %141
        %141 = OpLabel
        %143 = OpPhi %bool %false %90 %142 %140
               OpSelectionMerge %145 None
               OpBranchConditional %143 %144 %145
        %144 = OpLabel
        %146 = OpCompositeConstruct %v3float %117 %117 %117
        %147 = OpFSub %v3float %129 %146
        %148 = OpFSub %float %117 %131
        %149 = OpLoad %float %_kGuardedDivideEpsilon
        %150 = OpFAdd %float %148 %149
        %151 = OpFDiv %float %117 %150
        %152 = OpVectorTimesScalar %v3float %147 %151
        %153 = OpFAdd %v3float %146 %152
               OpStore %_5_result %153
               OpBranch %145
        %145 = OpLabel
        %154 = OpFOrdGreaterThan %bool %137 %55
               OpSelectionMerge %156 None
               OpBranchConditional %154 %155 %156
        %155 = OpLabel
        %157 = OpFUnordNotEqual %bool %137 %117
               OpBranch %156
        %156 = OpLabel
        %158 = OpPhi %bool %false %145 %157 %155
               OpSelectionMerge %160 None
               OpBranchConditional %158 %159 %160
        %159 = OpLabel
        %161 = OpLoad %v3float %_5_result
        %162 = OpCompositeConstruct %v3float %117 %117 %117
        %163 = OpFSub %v3float %161 %162
        %164 = OpFSub %float %55 %117
        %165 = OpVectorTimesScalar %v3float %163 %164
        %166 = OpFSub %float %137 %117
        %167 = OpLoad %float %_kGuardedDivideEpsilon
        %168 = OpFAdd %float %166 %167
        %169 = OpFDiv %float %float_1 %168
        %170 = OpVectorTimesScalar %v3float %165 %169
        %171 = OpFAdd %v3float %162 %170
               OpStore %_5_result %171
               OpBranch %160
        %160 = OpLabel
        %172 = OpLoad %v3float %_5_result
        %173 = OpLoad %v4float %47
        %174 = OpVectorShuffle %v3float %173 %173 0 1 2
        %175 = OpFAdd %v3float %172 %174
        %176 = OpFSub %v3float %175 %67
        %177 = OpLoad %v4float %46
        %178 = OpVectorShuffle %v3float %177 %177 0 1 2
        %179 = OpFAdd %v3float %176 %178
        %180 = OpFSub %v3float %179 %61
        %181 = OpCompositeExtract %float %180 0
        %182 = OpCompositeExtract %float %180 1
        %183 = OpCompositeExtract %float %180 2
        %184 = OpLoad %v4float %46
        %185 = OpCompositeExtract %float %184 3
        %186 = OpLoad %v4float %47
        %187 = OpCompositeExtract %float %186 3
        %188 = OpFAdd %float %185 %187
        %189 = OpFSub %float %188 %55
        %190 = OpCompositeConstruct %v4float %181 %182 %183 %189
               OpReturnValue %190
               OpFunctionEnd
       %main = OpFunction %void None %192
        %193 = OpLabel
        %195 = OpVariable %_ptr_Function_v2float Function
        %201 = OpVariable %_ptr_Function_v4float Function
        %205 = OpVariable %_ptr_Function_v4float Function
         %10 = OpSelect %float %false %float_9_99999994en09 %float_0
               OpStore %_kGuardedDivideEpsilon %10
               OpStore %195 %194
        %196 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0
        %200 = OpLoad %v4float %196
               OpStore %201 %200
        %202 = OpAccessChain %_ptr_Uniform_v4float %16 %int_1
        %204 = OpLoad %v4float %202
               OpStore %205 %204
        %206 = OpFunctionCall %v4float %blend_hslc_h4h2h4h4 %195 %201 %205
               OpStore %sk_FragColor %206
               OpReturn
               OpFunctionEnd
