Eliminate inliner temporary variables for top-level-exit functions.

When we determine that a function only contains a single return
statement and it is at the top level (i.e. not inside any scopes),
there is no need to create a temporary variable and store the
result expression into a variable. Instead, we can directly replace
the function-call expression with the return-statement's expression.

Unlike my previous solution, this does not require variable
declarations to be rewritten. The no-scopes limitation makes it
slightly less effective in theory, but in practice we still get
almost all of the benefit. The no-scope limitation bites us on
structures like

@if (true) {
    return x;
} else {
    return y;
}

Which will optimize away the if, but leave the scope:

{
    return x;
}

However, this is not a big deal; the biggest wins are single-line
helper functions like `guarded_divide` and `unpremul` which retain
the full benefit.

Change-Id: I7fbb725e65db021b9795c04c816819669815578f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/345167
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/gpu/effects/generated/GrColorMatrixFragmentProcessor.cpp b/src/gpu/effects/generated/GrColorMatrixFragmentProcessor.cpp
index c771c7b..74b9a98 100644
--- a/src/gpu/effects/generated/GrColorMatrixFragmentProcessor.cpp
+++ b/src/gpu/effects/generated/GrColorMatrixFragmentProcessor.cpp
@@ -43,9 +43,7 @@
         fragBuilder->codeAppendf(
                 R"SkSL(half4 color = %s;
 @if (%s) {
-    half4 _0_unpremul;
-    _0_unpremul = half4(color.xyz / max(color.w, 9.9999997473787516e-05), color.w);
-    color = _0_unpremul;
+    color = half4(color.xyz / max(color.w, 9.9999997473787516e-05), color.w);
 
 }
 color = %s * color + %s;
diff --git a/src/gpu/effects/generated/GrHighContrastFilterEffect.cpp b/src/gpu/effects/generated/GrHighContrastFilterEffect.cpp
index ce3eb48..0ff736b 100644
--- a/src/gpu/effects/generated/GrHighContrastFilterEffect.cpp
+++ b/src/gpu/effects/generated/GrHighContrastFilterEffect.cpp
@@ -53,9 +53,7 @@
         fragBuilder->codeAppendf(
                 R"SkSL(
 half4 inColor = %s;
-half4 _0_unpremul;
-_0_unpremul = half4(inColor.xyz / max(inColor.w, 9.9999997473787516e-05), inColor.w);
-half4 color = _0_unpremul;
+half4 color = half4(inColor.xyz / max(inColor.w, 9.9999997473787516e-05), inColor.w);
 
 @if (%s) {
     color.xyz = color.xyz * color.xyz;
diff --git a/src/sksl/SkSLInliner.cpp b/src/sksl/SkSLInliner.cpp
index c63707e..2f7f621 100644
--- a/src/sksl/SkSLInliner.cpp
+++ b/src/sksl/SkSLInliner.cpp
@@ -57,32 +57,6 @@
 
 static constexpr int kInlinedStatementLimit = 2500;
 
-static bool contains_returns_above_limit(const FunctionDefinition& funcDef, int limit) {
-    class CountReturnsWithLimit : public ProgramVisitor {
-    public:
-        CountReturnsWithLimit(const FunctionDefinition& funcDef, int limit) : fLimit(limit) {
-            this->visitProgramElement(funcDef);
-        }
-
-        bool visitStatement(const Statement& stmt) override {
-            switch (stmt.kind()) {
-                case Statement::Kind::kReturn:
-                    ++fNumReturns;
-                    return (fNumReturns > fLimit) || INHERITED::visitStatement(stmt);
-
-                default:
-                    return INHERITED::visitStatement(stmt);
-            }
-        }
-
-        int fNumReturns = 0;
-        int fLimit = 0;
-        using INHERITED = ProgramVisitor;
-    };
-
-    return CountReturnsWithLimit{funcDef, limit}.fNumReturns > limit;
-}
-
 static int count_returns_at_end_of_control_flow(const FunctionDefinition& funcDef) {
     class CountReturnsAtEndOfControlFlow : public ProgramVisitor {
     public:
@@ -155,11 +129,6 @@
     return CountReturnsInBreakableConstructs{funcDef}.fNumReturns;
 }
 
-static bool has_early_return(const FunctionDefinition& funcDef) {
-    int returnsAtEndOfControlFlow = count_returns_at_end_of_control_flow(funcDef);
-    return contains_returns_above_limit(funcDef, returnsAtEndOfControlFlow);
-}
-
 static bool contains_recursive_call(const FunctionDeclaration& funcDecl) {
     class ContainsRecursiveCall : public ProgramVisitor {
     public:
@@ -244,8 +213,53 @@
     return clone;
 }
 
+class CountReturnsWithLimit : public ProgramVisitor {
+public:
+    CountReturnsWithLimit(const FunctionDefinition& funcDef, int limit) : fLimit(limit) {
+        this->visitProgramElement(funcDef);
+    }
+
+    bool visitStatement(const Statement& stmt) override {
+        switch (stmt.kind()) {
+            case Statement::Kind::kReturn: {
+                ++fNumReturns;
+                fDeepestReturn = std::max(fDeepestReturn, fScopedBlockDepth);
+                return (fNumReturns >= fLimit) || INHERITED::visitStatement(stmt);
+            }
+            case Statement::Kind::kBlock: {
+                int depthIncrement = stmt.as<Block>().isScope() ? 1 : 0;
+                fScopedBlockDepth += depthIncrement;
+                bool result = INHERITED::visitStatement(stmt);
+                fScopedBlockDepth -= depthIncrement;
+                return result;
+            }
+            default:
+                return INHERITED::visitStatement(stmt);
+        }
+    }
+
+    int fNumReturns = 0;
+    int fDeepestReturn = 0;
+    int fLimit = 0;
+    int fScopedBlockDepth = 0;
+    using INHERITED = ProgramVisitor;
+};
+
 }  // namespace
 
+Inliner::ReturnComplexity Inliner::GetReturnComplexity(const FunctionDefinition& funcDef) {
+    int returnsAtEndOfControlFlow = count_returns_at_end_of_control_flow(funcDef);
+    CountReturnsWithLimit counter{funcDef, returnsAtEndOfControlFlow + 1};
+
+    if (counter.fNumReturns > returnsAtEndOfControlFlow) {
+        return ReturnComplexity::kEarlyReturns;
+    }
+    if (counter.fNumReturns > 1 || counter.fDeepestReturn > 1) {
+        return ReturnComplexity::kScopedReturns;
+    }
+    return ReturnComplexity::kSingleTopLevelReturn;
+}
+
 void Inliner::ensureScopedBlocks(Statement* inlinedBody, Statement* parentStmt) {
     // No changes necessary if this statement isn't actually a block.
     if (!inlinedBody || !inlinedBody->is<Block>()) {
@@ -430,14 +444,14 @@
 std::unique_ptr<Statement> Inliner::inlineStatement(int offset,
                                                     VariableRewriteMap* varMap,
                                                     SymbolTable* symbolTableForStatement,
-                                                    const Expression* resultExpr,
-                                                    bool haveEarlyReturns,
+                                                    std::unique_ptr<Expression>* resultExpr,
+                                                    ReturnComplexity returnComplexity,
                                                     const Statement& statement,
                                                     bool isBuiltinCode) {
     auto stmt = [&](const std::unique_ptr<Statement>& s) -> std::unique_ptr<Statement> {
         if (s) {
             return this->inlineStatement(offset, varMap, symbolTableForStatement, resultExpr,
-                                         haveEarlyReturns, *s, isBuiltinCode);
+                                         returnComplexity, *s, isBuiltinCode);
         }
         return nullptr;
     };
@@ -506,33 +520,52 @@
             return statement.clone();
         case Statement::Kind::kReturn: {
             const ReturnStatement& r = statement.as<ReturnStatement>();
-            if (r.expression()) {
-                SkASSERT(resultExpr);
-                auto assignment =
-                        std::make_unique<ExpressionStatement>(std::make_unique<BinaryExpression>(
-                                offset,
-                                clone_with_ref_kind(*resultExpr,
-                                                    VariableReference::RefKind::kWrite),
-                                Token::Kind::TK_EQ,
-                                expr(r.expression()),
-                                &resultExpr->type()));
-                if (haveEarlyReturns) {
-                    StatementArray block;
-                    block.reserve_back(2);
-                    block.push_back(std::move(assignment));
-                    block.push_back(std::make_unique<ContinueStatement>(offset));
-                    return std::make_unique<Block>(offset, std::move(block),
-                                                   /*symbols=*/nullptr, /*isScope=*/true);
-                } else {
-                    return std::move(assignment);
-                }
-            } else {
-                if (haveEarlyReturns) {
+            if (!r.expression()) {
+                if (returnComplexity >= ReturnComplexity::kEarlyReturns) {
+                    // This function doesn't return a value, but has early returns, so we've wrapped
+                    // it in a for loop. Use a continue to jump to the end of the loop and "leave"
+                    // the function.
                     return std::make_unique<ContinueStatement>(offset);
                 } else {
+                    // This function doesn't exit early or return a value. A return statement at the
+                    // end is a no-op and can be treated as such.
                     return std::make_unique<Nop>();
                 }
             }
+
+            // For a function that only contains a single top-level return, we don't need to store
+            // the result in a variable at all. Just move the return value right into the result
+            // expression.
+            SkASSERT(resultExpr);
+            SkASSERT(*resultExpr);
+            if (returnComplexity <= ReturnComplexity::kSingleTopLevelReturn) {
+                *resultExpr = expr(r.expression());
+                return std::make_unique<Nop>();
+            }
+
+            // For more complex functions, assign their result into a variable.
+            auto assignment =
+                    std::make_unique<ExpressionStatement>(std::make_unique<BinaryExpression>(
+                            offset,
+                            clone_with_ref_kind(**resultExpr, VariableReference::RefKind::kWrite),
+                            Token::Kind::TK_EQ,
+                            expr(r.expression()),
+                            &resultExpr->get()->type()));
+
+            // Early returns are wrapped in a for loop; we need to synthesize a continue statement
+            // to "leave" the function.
+            if (returnComplexity >= ReturnComplexity::kEarlyReturns) {
+                StatementArray block;
+                block.reserve_back(2);
+                block.push_back(std::move(assignment));
+                block.push_back(std::make_unique<ContinueStatement>(offset));
+                return std::make_unique<Block>(offset, std::move(block), /*symbols=*/nullptr,
+                                               /*isScope=*/true);
+            }
+            // Functions without early returns aren't wrapped in a for loop and don't need to worry
+            // about breaking out of the control flow.
+            return std::move(assignment);
+
         }
         case Statement::Kind::kSwitch: {
             const SwitchStatement& ss = statement.as<SwitchStatement>();
@@ -642,7 +675,8 @@
     ExpressionArray& arguments = call->arguments();
     const int offset = call->fOffset;
     const FunctionDefinition& function = *call->function().definition();
-    const bool hasEarlyReturn = has_early_return(function);
+    const ReturnComplexity returnComplexity = GetReturnComplexity(function);
+    bool hasEarlyReturn = (returnComplexity >= ReturnComplexity::kEarlyReturns);
 
     InlinedCall inlinedCall;
     inlinedCall.fInlinedBody = std::make_unique<Block>(offset, StatementArray{},
@@ -751,7 +785,7 @@
     inlineStatements->reserve_back(body.children().size() + argsToCopyBack.size());
     for (const std::unique_ptr<Statement>& stmt : body.children()) {
         inlineStatements->push_back(this->inlineStatement(offset, &varMap, symbolTable.get(),
-                                                          resultExpr.get(), hasEarlyReturn, *stmt,
+                                                          &resultExpr, returnComplexity, *stmt,
                                                           caller->isBuiltin()));
     }
 
@@ -770,8 +804,6 @@
 
     if (resultExpr != nullptr) {
         // Return our result variable as our replacement expression.
-        SkASSERT(resultExpr->as<VariableReference>().refKind() ==
-                 VariableReference::RefKind::kRead);
         inlinedCall.fReplacementExpr = std::move(resultExpr);
     } else {
         // It's a void function, so it doesn't actually result in anything, but we have to return
@@ -805,9 +837,6 @@
     // We don't have any mechanism to simulate early returns within a breakable construct
     // (switch/for/do/while), so we can't inline if there's a return inside one.
     bool hasReturnInBreakableConstruct = (count_returns_in_breakable_constructs(*functionDef) > 0);
-
-    // If we detected returns in breakable constructs, we should also detect an early return.
-    SkASSERT(!hasReturnInBreakableConstruct || has_early_return(*functionDef));
     return !hasReturnInBreakableConstruct;
 }
 
diff --git a/src/sksl/SkSLInliner.h b/src/sksl/SkSLInliner.h
index eaa22a3..74da6b6 100644
--- a/src/sksl/SkSLInliner.h
+++ b/src/sksl/SkSLInliner.h
@@ -48,6 +48,12 @@
 private:
     using VariableRewriteMap = std::unordered_map<const Variable*, std::unique_ptr<Expression>>;
 
+    enum class ReturnComplexity {
+        kSingleTopLevelReturn,
+        kScopedReturns,
+        kEarlyReturns,
+    };
+
     String uniqueNameForInlineVar(String baseName, SymbolTable* symbolTable);
 
     void buildCandidateList(const std::vector<std::unique_ptr<ProgramElement>>& elements,
@@ -61,11 +67,14 @@
     std::unique_ptr<Statement> inlineStatement(int offset,
                                                VariableRewriteMap* varMap,
                                                SymbolTable* symbolTableForStatement,
-                                               const Expression* resultExpr,
-                                               bool haveEarlyReturns,
+                                               std::unique_ptr<Expression>* resultExpr,
+                                               ReturnComplexity returnComplexity,
                                                const Statement& statement,
                                                bool isBuiltinCode);
 
+    /** Determines if a given function has multiple and/or early returns. */
+    static ReturnComplexity GetReturnComplexity(const FunctionDefinition& funcDef);
+
     using InlinabilityCache = std::unordered_map<const FunctionDeclaration*, bool>;
     bool candidateCanBeInlined(const InlineCandidate& candidate, InlinabilityCache* cache);
 
diff --git a/tests/sksl/blend/golden/BlendColor.asm.frag b/tests/sksl/blend/golden/BlendColor.asm.frag
index 1cd546e..8868e82 100644
--- a/tests/sksl/blend/golden/BlendColor.asm.frag
+++ b/tests/sksl/blend/golden/BlendColor.asm.frag
@@ -8,17 +8,13 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_color "_0_blend_color"
 OpName %_1_alpha "_1_alpha"
 OpName %_2_sda "_2_sda"
 OpName %_3_dsa "_3_dsa"
-OpName %_4_blend_set_color_luminance "_4_blend_set_color_luminance"
-OpName %_5_blend_color_luminance "_5_blend_color_luminance"
-OpName %_6_lum "_6_lum"
-OpName %_7_blend_color_luminance "_7_blend_color_luminance"
-OpName %_8_result "_8_result"
-OpName %_9_minComp "_9_minComp"
-OpName %_10_maxComp "_10_maxComp"
+OpName %_5_lum "_5_lum"
+OpName %_6_result "_6_result"
+OpName %_7_minComp "_7_minComp"
+OpName %_8_maxComp "_8_maxComp"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -26,66 +22,62 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
+OpDecorate %18 RelaxedPrecision
 OpDecorate %20 RelaxedPrecision
 OpDecorate %22 RelaxedPrecision
-OpDecorate %24 RelaxedPrecision
+OpDecorate %26 RelaxedPrecision
 OpDecorate %28 RelaxedPrecision
-OpDecorate %30 RelaxedPrecision
+OpDecorate %32 RelaxedPrecision
 OpDecorate %34 RelaxedPrecision
-OpDecorate %36 RelaxedPrecision
-OpDecorate %46 RelaxedPrecision
+OpDecorate %43 RelaxedPrecision
+OpDecorate %45 RelaxedPrecision
 OpDecorate %48 RelaxedPrecision
-OpDecorate %52 RelaxedPrecision
-OpDecorate %54 RelaxedPrecision
-OpDecorate %55 RelaxedPrecision
+OpDecorate %49 RelaxedPrecision
+OpDecorate %50 RelaxedPrecision
 OpDecorate %56 RelaxedPrecision
-OpDecorate %57 RelaxedPrecision
-OpDecorate %63 RelaxedPrecision
+OpDecorate %58 RelaxedPrecision
+OpDecorate %60 RelaxedPrecision
 OpDecorate %65 RelaxedPrecision
 OpDecorate %67 RelaxedPrecision
+OpDecorate %69 RelaxedPrecision
 OpDecorate %72 RelaxedPrecision
-OpDecorate %74 RelaxedPrecision
-OpDecorate %76 RelaxedPrecision
-OpDecorate %79 RelaxedPrecision
+OpDecorate %77 RelaxedPrecision
+OpDecorate %78 RelaxedPrecision
+OpDecorate %83 RelaxedPrecision
 OpDecorate %84 RelaxedPrecision
 OpDecorate %85 RelaxedPrecision
+OpDecorate %88 RelaxedPrecision
 OpDecorate %90 RelaxedPrecision
 OpDecorate %91 RelaxedPrecision
 OpDecorate %92 RelaxedPrecision
-OpDecorate %95 RelaxedPrecision
-OpDecorate %97 RelaxedPrecision
 OpDecorate %98 RelaxedPrecision
 OpDecorate %99 RelaxedPrecision
-OpDecorate %105 RelaxedPrecision
-OpDecorate %106 RelaxedPrecision
-OpDecorate %110 RelaxedPrecision
+OpDecorate %103 RelaxedPrecision
+OpDecorate %104 RelaxedPrecision
 OpDecorate %111 RelaxedPrecision
+OpDecorate %112 RelaxedPrecision
+OpDecorate %113 RelaxedPrecision
+OpDecorate %116 RelaxedPrecision
+OpDecorate %117 RelaxedPrecision
 OpDecorate %118 RelaxedPrecision
-OpDecorate %119 RelaxedPrecision
 OpDecorate %120 RelaxedPrecision
-OpDecorate %123 RelaxedPrecision
-OpDecorate %124 RelaxedPrecision
-OpDecorate %125 RelaxedPrecision
+OpDecorate %121 RelaxedPrecision
+OpDecorate %122 RelaxedPrecision
 OpDecorate %127 RelaxedPrecision
 OpDecorate %128 RelaxedPrecision
 OpDecorate %129 RelaxedPrecision
+OpDecorate %131 RelaxedPrecision
+OpDecorate %132 RelaxedPrecision
+OpDecorate %133 RelaxedPrecision
 OpDecorate %134 RelaxedPrecision
-OpDecorate %135 RelaxedPrecision
 OpDecorate %136 RelaxedPrecision
 OpDecorate %137 RelaxedPrecision
-OpDecorate %139 RelaxedPrecision
-OpDecorate %140 RelaxedPrecision
-OpDecorate %141 RelaxedPrecision
+OpDecorate %138 RelaxedPrecision
 OpDecorate %142 RelaxedPrecision
 OpDecorate %144 RelaxedPrecision
-OpDecorate %145 RelaxedPrecision
 OpDecorate %146 RelaxedPrecision
-OpDecorate %150 RelaxedPrecision
-OpDecorate %152 RelaxedPrecision
-OpDecorate %154 RelaxedPrecision
-OpDecorate %155 RelaxedPrecision
-OpDecorate %156 RelaxedPrecision
-OpDecorate %158 RelaxedPrecision
+OpDecorate %147 RelaxedPrecision
+OpDecorate %148 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -98,178 +90,165 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %_ptr_Function_float = OpTypePointer Function %float
 %v3float = OpTypeVector %float 3
 %_ptr_Function_v3float = OpTypePointer Function %v3float
 %float_0_300000012 = OpConstant %float 0.300000012
 %float_0_589999974 = OpConstant %float 0.589999974
 %float_0_109999999 = OpConstant %float 0.109999999
-%42 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
-%51 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
+%39 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
+%47 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
 %false = OpConstantFalse %bool
 %float_0 = OpConstant %float 0
 %float_1 = OpConstant %float 1
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_color = OpVariable %_ptr_Function_v4float Function
 %_1_alpha = OpVariable %_ptr_Function_float Function
 %_2_sda = OpVariable %_ptr_Function_v3float Function
 %_3_dsa = OpVariable %_ptr_Function_v3float Function
-%_4_blend_set_color_luminance = OpVariable %_ptr_Function_v3float Function
-%_5_blend_color_luminance = OpVariable %_ptr_Function_float Function
-%_6_lum = OpVariable %_ptr_Function_float Function
-%_7_blend_color_luminance = OpVariable %_ptr_Function_float Function
-%_8_result = OpVariable %_ptr_Function_v3float Function
-%_9_minComp = OpVariable %_ptr_Function_float Function
-%_10_maxComp = OpVariable %_ptr_Function_float Function
-%114 = OpVariable %_ptr_Function_v3float Function
-%20 = OpLoad %v4float %dst
+%_5_lum = OpVariable %_ptr_Function_float Function
+%_6_result = OpVariable %_ptr_Function_v3float Function
+%_7_minComp = OpVariable %_ptr_Function_float Function
+%_8_maxComp = OpVariable %_ptr_Function_float Function
+%107 = OpVariable %_ptr_Function_v3float Function
+%18 = OpLoad %v4float %dst
+%19 = OpCompositeExtract %float %18 3
+%20 = OpLoad %v4float %src
 %21 = OpCompositeExtract %float %20 3
-%22 = OpLoad %v4float %src
-%23 = OpCompositeExtract %float %22 3
-%24 = OpFMul %float %21 %23
-OpStore %_1_alpha %24
-%28 = OpLoad %v4float %src
-%29 = OpVectorShuffle %v3float %28 %28 0 1 2
-%30 = OpLoad %v4float %dst
-%31 = OpCompositeExtract %float %30 3
-%32 = OpVectorTimesScalar %v3float %29 %31
-OpStore %_2_sda %32
-%34 = OpLoad %v4float %dst
-%35 = OpVectorShuffle %v3float %34 %34 0 1 2
-%36 = OpLoad %v4float %src
-%37 = OpCompositeExtract %float %36 3
-%38 = OpVectorTimesScalar %v3float %35 %37
-OpStore %_3_dsa %38
-%46 = OpLoad %v3float %_3_dsa
-%41 = OpDot %float %42 %46
-OpStore %_5_blend_color_luminance %41
-%48 = OpLoad %float %_5_blend_color_luminance
-OpStore %_6_lum %48
-%52 = OpLoad %v3float %_2_sda
-%50 = OpDot %float %51 %52
-OpStore %_7_blend_color_luminance %50
-%54 = OpLoad %float %_6_lum
-%55 = OpLoad %float %_7_blend_color_luminance
-%56 = OpFSub %float %54 %55
-%57 = OpLoad %v3float %_2_sda
-%58 = OpCompositeConstruct %v3float %56 %56 %56
-%59 = OpFAdd %v3float %58 %57
-OpStore %_8_result %59
-%63 = OpLoad %v3float %_8_result
-%64 = OpCompositeExtract %float %63 0
-%65 = OpLoad %v3float %_8_result
-%66 = OpCompositeExtract %float %65 1
-%62 = OpExtInst %float %1 FMin %64 %66
-%67 = OpLoad %v3float %_8_result
-%68 = OpCompositeExtract %float %67 2
-%61 = OpExtInst %float %1 FMin %62 %68
-OpStore %_9_minComp %61
-%72 = OpLoad %v3float %_8_result
-%73 = OpCompositeExtract %float %72 0
-%74 = OpLoad %v3float %_8_result
-%75 = OpCompositeExtract %float %74 1
-%71 = OpExtInst %float %1 FMax %73 %75
-%76 = OpLoad %v3float %_8_result
-%77 = OpCompositeExtract %float %76 2
-%70 = OpExtInst %float %1 FMax %71 %77
-OpStore %_10_maxComp %70
-%79 = OpLoad %float %_9_minComp
-%81 = OpFOrdLessThan %bool %79 %float_0
-OpSelectionMerge %83 None
-OpBranchConditional %81 %82 %83
+%22 = OpFMul %float %19 %21
+OpStore %_1_alpha %22
+%26 = OpLoad %v4float %src
+%27 = OpVectorShuffle %v3float %26 %26 0 1 2
+%28 = OpLoad %v4float %dst
+%29 = OpCompositeExtract %float %28 3
+%30 = OpVectorTimesScalar %v3float %27 %29
+OpStore %_2_sda %30
+%32 = OpLoad %v4float %dst
+%33 = OpVectorShuffle %v3float %32 %32 0 1 2
+%34 = OpLoad %v4float %src
+%35 = OpCompositeExtract %float %34 3
+%36 = OpVectorTimesScalar %v3float %33 %35
+OpStore %_3_dsa %36
+%43 = OpLoad %v3float %_3_dsa
+%38 = OpDot %float %39 %43
+OpStore %_5_lum %38
+%45 = OpLoad %float %_5_lum
+%48 = OpLoad %v3float %_2_sda
+%46 = OpDot %float %47 %48
+%49 = OpFSub %float %45 %46
+%50 = OpLoad %v3float %_2_sda
+%51 = OpCompositeConstruct %v3float %49 %49 %49
+%52 = OpFAdd %v3float %51 %50
+OpStore %_6_result %52
+%56 = OpLoad %v3float %_6_result
+%57 = OpCompositeExtract %float %56 0
+%58 = OpLoad %v3float %_6_result
+%59 = OpCompositeExtract %float %58 1
+%55 = OpExtInst %float %1 FMin %57 %59
+%60 = OpLoad %v3float %_6_result
+%61 = OpCompositeExtract %float %60 2
+%54 = OpExtInst %float %1 FMin %55 %61
+OpStore %_7_minComp %54
+%65 = OpLoad %v3float %_6_result
+%66 = OpCompositeExtract %float %65 0
+%67 = OpLoad %v3float %_6_result
+%68 = OpCompositeExtract %float %67 1
+%64 = OpExtInst %float %1 FMax %66 %68
+%69 = OpLoad %v3float %_6_result
+%70 = OpCompositeExtract %float %69 2
+%63 = OpExtInst %float %1 FMax %64 %70
+OpStore %_8_maxComp %63
+%72 = OpLoad %float %_7_minComp
+%74 = OpFOrdLessThan %bool %72 %float_0
+OpSelectionMerge %76 None
+OpBranchConditional %74 %75 %76
+%75 = OpLabel
+%77 = OpLoad %float %_5_lum
+%78 = OpLoad %float %_7_minComp
+%79 = OpFOrdNotEqual %bool %77 %78
+OpBranch %76
+%76 = OpLabel
+%80 = OpPhi %bool %false %15 %79 %75
+OpSelectionMerge %82 None
+OpBranchConditional %80 %81 %82
+%81 = OpLabel
+%83 = OpLoad %float %_5_lum
+%84 = OpLoad %v3float %_6_result
+%85 = OpLoad %float %_5_lum
+%86 = OpCompositeConstruct %v3float %85 %85 %85
+%87 = OpFSub %v3float %84 %86
+%88 = OpLoad %float %_5_lum
+%89 = OpVectorTimesScalar %v3float %87 %88
+%90 = OpLoad %float %_5_lum
+%91 = OpLoad %float %_7_minComp
+%92 = OpFSub %float %90 %91
+%94 = OpFDiv %float %float_1 %92
+%95 = OpVectorTimesScalar %v3float %89 %94
+%96 = OpCompositeConstruct %v3float %83 %83 %83
+%97 = OpFAdd %v3float %96 %95
+OpStore %_6_result %97
+OpBranch %82
 %82 = OpLabel
-%84 = OpLoad %float %_6_lum
-%85 = OpLoad %float %_9_minComp
-%86 = OpFOrdNotEqual %bool %84 %85
-OpBranch %83
-%83 = OpLabel
-%87 = OpPhi %bool %false %15 %86 %82
-OpSelectionMerge %89 None
-OpBranchConditional %87 %88 %89
-%88 = OpLabel
-%90 = OpLoad %float %_6_lum
-%91 = OpLoad %v3float %_8_result
-%92 = OpLoad %float %_6_lum
-%93 = OpCompositeConstruct %v3float %92 %92 %92
-%94 = OpFSub %v3float %91 %93
-%95 = OpLoad %float %_6_lum
-%96 = OpVectorTimesScalar %v3float %94 %95
-%97 = OpLoad %float %_6_lum
-%98 = OpLoad %float %_9_minComp
-%99 = OpFSub %float %97 %98
-%101 = OpFDiv %float %float_1 %99
-%102 = OpVectorTimesScalar %v3float %96 %101
-%103 = OpCompositeConstruct %v3float %90 %90 %90
-%104 = OpFAdd %v3float %103 %102
-OpStore %_8_result %104
-OpBranch %89
-%89 = OpLabel
-%105 = OpLoad %float %_10_maxComp
-%106 = OpLoad %float %_1_alpha
-%107 = OpFOrdGreaterThan %bool %105 %106
-OpSelectionMerge %109 None
-OpBranchConditional %107 %108 %109
+%98 = OpLoad %float %_8_maxComp
+%99 = OpLoad %float %_1_alpha
+%100 = OpFOrdGreaterThan %bool %98 %99
+OpSelectionMerge %102 None
+OpBranchConditional %100 %101 %102
+%101 = OpLabel
+%103 = OpLoad %float %_8_maxComp
+%104 = OpLoad %float %_5_lum
+%105 = OpFOrdNotEqual %bool %103 %104
+OpBranch %102
+%102 = OpLabel
+%106 = OpPhi %bool %false %82 %105 %101
+OpSelectionMerge %110 None
+OpBranchConditional %106 %108 %109
 %108 = OpLabel
-%110 = OpLoad %float %_10_maxComp
-%111 = OpLoad %float %_6_lum
-%112 = OpFOrdNotEqual %bool %110 %111
-OpBranch %109
+%111 = OpLoad %float %_5_lum
+%112 = OpLoad %v3float %_6_result
+%113 = OpLoad %float %_5_lum
+%114 = OpCompositeConstruct %v3float %113 %113 %113
+%115 = OpFSub %v3float %112 %114
+%116 = OpLoad %float %_1_alpha
+%117 = OpLoad %float %_5_lum
+%118 = OpFSub %float %116 %117
+%119 = OpVectorTimesScalar %v3float %115 %118
+%120 = OpLoad %float %_8_maxComp
+%121 = OpLoad %float %_5_lum
+%122 = OpFSub %float %120 %121
+%123 = OpFDiv %float %float_1 %122
+%124 = OpVectorTimesScalar %v3float %119 %123
+%125 = OpCompositeConstruct %v3float %111 %111 %111
+%126 = OpFAdd %v3float %125 %124
+OpStore %107 %126
+OpBranch %110
 %109 = OpLabel
-%113 = OpPhi %bool %false %89 %112 %108
-OpSelectionMerge %117 None
-OpBranchConditional %113 %115 %116
-%115 = OpLabel
-%118 = OpLoad %float %_6_lum
-%119 = OpLoad %v3float %_8_result
-%120 = OpLoad %float %_6_lum
-%121 = OpCompositeConstruct %v3float %120 %120 %120
-%122 = OpFSub %v3float %119 %121
-%123 = OpLoad %float %_1_alpha
-%124 = OpLoad %float %_6_lum
-%125 = OpFSub %float %123 %124
-%126 = OpVectorTimesScalar %v3float %122 %125
-%127 = OpLoad %float %_10_maxComp
-%128 = OpLoad %float %_6_lum
-%129 = OpFSub %float %127 %128
-%130 = OpFDiv %float %float_1 %129
-%131 = OpVectorTimesScalar %v3float %126 %130
-%132 = OpCompositeConstruct %v3float %118 %118 %118
-%133 = OpFAdd %v3float %132 %131
-OpStore %114 %133
-OpBranch %117
-%116 = OpLabel
-%134 = OpLoad %v3float %_8_result
-OpStore %114 %134
-OpBranch %117
-%117 = OpLabel
-%135 = OpLoad %v3float %114
-OpStore %_4_blend_set_color_luminance %135
-%136 = OpLoad %v3float %_4_blend_set_color_luminance
-%137 = OpLoad %v4float %dst
-%138 = OpVectorShuffle %v3float %137 %137 0 1 2
-%139 = OpFAdd %v3float %136 %138
-%140 = OpLoad %v3float %_3_dsa
-%141 = OpFSub %v3float %139 %140
+%127 = OpLoad %v3float %_6_result
+OpStore %107 %127
+OpBranch %110
+%110 = OpLabel
+%128 = OpLoad %v3float %107
+%129 = OpLoad %v4float %dst
+%130 = OpVectorShuffle %v3float %129 %129 0 1 2
+%131 = OpFAdd %v3float %128 %130
+%132 = OpLoad %v3float %_3_dsa
+%133 = OpFSub %v3float %131 %132
+%134 = OpLoad %v4float %src
+%135 = OpVectorShuffle %v3float %134 %134 0 1 2
+%136 = OpFAdd %v3float %133 %135
+%137 = OpLoad %v3float %_2_sda
+%138 = OpFSub %v3float %136 %137
+%139 = OpCompositeExtract %float %138 0
+%140 = OpCompositeExtract %float %138 1
+%141 = OpCompositeExtract %float %138 2
 %142 = OpLoad %v4float %src
-%143 = OpVectorShuffle %v3float %142 %142 0 1 2
-%144 = OpFAdd %v3float %141 %143
-%145 = OpLoad %v3float %_2_sda
-%146 = OpFSub %v3float %144 %145
-%147 = OpCompositeExtract %float %146 0
-%148 = OpCompositeExtract %float %146 1
-%149 = OpCompositeExtract %float %146 2
-%150 = OpLoad %v4float %src
-%151 = OpCompositeExtract %float %150 3
-%152 = OpLoad %v4float %dst
-%153 = OpCompositeExtract %float %152 3
-%154 = OpFAdd %float %151 %153
-%155 = OpLoad %float %_1_alpha
-%156 = OpFSub %float %154 %155
-%157 = OpCompositeConstruct %v4float %147 %148 %149 %156
-OpStore %_0_blend_color %157
-%158 = OpLoad %v4float %_0_blend_color
-OpStore %sk_FragColor %158
+%143 = OpCompositeExtract %float %142 3
+%144 = OpLoad %v4float %dst
+%145 = OpCompositeExtract %float %144 3
+%146 = OpFAdd %float %143 %145
+%147 = OpLoad %float %_1_alpha
+%148 = OpFSub %float %146 %147
+%149 = OpCompositeConstruct %v4float %139 %140 %141 %148
+OpStore %sk_FragColor %149
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendColor.glsl b/tests/sksl/blend/golden/BlendColor.glsl
index ae868eb..9ef3ac6 100644
--- a/tests/sksl/blend/golden/BlendColor.glsl
+++ b/tests/sksl/blend/golden/BlendColor.glsl
@@ -3,27 +3,19 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_color;
     float _1_alpha = dst.w * src.w;
     vec3 _2_sda = src.xyz * dst.w;
     vec3 _3_dsa = dst.xyz * src.w;
-    vec3 _4_blend_set_color_luminance;
-    float _5_blend_color_luminance;
-    _5_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
-    float _6_lum = _5_blend_color_luminance;
+    float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
 
-    float _7_blend_color_luminance;
-    _7_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda);
-    vec3 _8_result = (_6_lum - _7_blend_color_luminance) + _2_sda;
+    vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda)) + _2_sda;
 
-    float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
-    float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
-    if (_9_minComp < 0.0 && _6_lum != _9_minComp) {
-        _8_result = _6_lum + ((_8_result - _6_lum) * _6_lum) / (_6_lum - _9_minComp);
+    float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
+    float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
+    if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
+        _6_result = _5_lum + ((_6_result - _5_lum) * _5_lum) / (_5_lum - _7_minComp);
     }
-    _4_blend_set_color_luminance = _10_maxComp > _1_alpha && _10_maxComp != _6_lum ? _6_lum + ((_8_result - _6_lum) * (_1_alpha - _6_lum)) / (_10_maxComp - _6_lum) : _8_result;
-    _0_blend_color = vec4((((_4_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
+    sk_FragColor = vec4(((((_8_maxComp > _1_alpha && _8_maxComp != _5_lum ? _5_lum + ((_6_result - _5_lum) * (_1_alpha - _5_lum)) / (_8_maxComp - _5_lum) : _6_result) + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
 
-    sk_FragColor = _0_blend_color;
 
 }
diff --git a/tests/sksl/blend/golden/BlendColor.metal b/tests/sksl/blend/golden/BlendColor.metal
index 80599c7..8a119da 100644
--- a/tests/sksl/blend/golden/BlendColor.metal
+++ b/tests/sksl/blend/golden/BlendColor.metal
@@ -13,28 +13,20 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_color;
     float _1_alpha = _in.dst.w * _in.src.w;
     float3 _2_sda = _in.src.xyz * _in.dst.w;
     float3 _3_dsa = _in.dst.xyz * _in.src.w;
-    float3 _4_blend_set_color_luminance;
-    float _5_blend_color_luminance;
-    _5_blend_color_luminance = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
-    float _6_lum = _5_blend_color_luminance;
+    float _5_lum = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
 
-    float _7_blend_color_luminance;
-    _7_blend_color_luminance = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda);
-    float3 _8_result = (_6_lum - _7_blend_color_luminance) + _2_sda;
+    float3 _6_result = (_5_lum - dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda)) + _2_sda;
 
-    float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
-    float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
-    if (_9_minComp < 0.0 && _6_lum != _9_minComp) {
-        _8_result = _6_lum + ((_8_result - _6_lum) * _6_lum) / (_6_lum - _9_minComp);
+    float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
+    float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
+    if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
+        _6_result = _5_lum + ((_6_result - _5_lum) * _5_lum) / (_5_lum - _7_minComp);
     }
-    _4_blend_set_color_luminance = _10_maxComp > _1_alpha && _10_maxComp != _6_lum ? _6_lum + ((_8_result - _6_lum) * (_1_alpha - _6_lum)) / (_10_maxComp - _6_lum) : _8_result;
-    _0_blend_color = float4((((_4_blend_set_color_luminance + _in.dst.xyz) - _3_dsa) + _in.src.xyz) - _2_sda, (_in.src.w + _in.dst.w) - _1_alpha);
+    _out->sk_FragColor = float4(((((_8_maxComp > _1_alpha && _8_maxComp != _5_lum ? _5_lum + ((_6_result - _5_lum) * (_1_alpha - _5_lum)) / (_8_maxComp - _5_lum) : _6_result) + _in.dst.xyz) - _3_dsa) + _in.src.xyz) - _2_sda, (_in.src.w + _in.dst.w) - _1_alpha);
 
-    _out->sk_FragColor = _0_blend_color;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendColorBurn.asm.frag b/tests/sksl/blend/golden/BlendColorBurn.asm.frag
index dc44cc8..4aa9337 100644
--- a/tests/sksl/blend/golden/BlendColorBurn.asm.frag
+++ b/tests/sksl/blend/golden/BlendColorBurn.asm.frag
@@ -8,11 +8,9 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %_color_burn_component "_color_burn_component"
-OpName %_5_guarded_divide "_5_guarded_divide"
 OpName %_6_n "_6_n"
 OpName %delta "delta"
 OpName %main "main"
-OpName %_0_blend_color_burn "_0_blend_color_burn"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -40,43 +38,41 @@
 OpDecorate %57 RelaxedPrecision
 OpDecorate %59 RelaxedPrecision
 OpDecorate %60 RelaxedPrecision
-OpDecorate %64 RelaxedPrecision
-OpDecorate %66 RelaxedPrecision
+OpDecorate %63 RelaxedPrecision
+OpDecorate %65 RelaxedPrecision
+OpDecorate %67 RelaxedPrecision
 OpDecorate %68 RelaxedPrecision
-OpDecorate %69 RelaxedPrecision
-OpDecorate %71 RelaxedPrecision
-OpDecorate %72 RelaxedPrecision
+OpDecorate %70 RelaxedPrecision
 OpDecorate %73 RelaxedPrecision
 OpDecorate %75 RelaxedPrecision
+OpDecorate %76 RelaxedPrecision
 OpDecorate %78 RelaxedPrecision
+OpDecorate %79 RelaxedPrecision
 OpDecorate %80 RelaxedPrecision
 OpDecorate %81 RelaxedPrecision
-OpDecorate %82 RelaxedPrecision
 OpDecorate %83 RelaxedPrecision
-OpDecorate %85 RelaxedPrecision
+OpDecorate %84 RelaxedPrecision
 OpDecorate %86 RelaxedPrecision
 OpDecorate %88 RelaxedPrecision
+OpDecorate %89 RelaxedPrecision
 OpDecorate %90 RelaxedPrecision
 OpDecorate %91 RelaxedPrecision
-OpDecorate %92 RelaxedPrecision
 OpDecorate %93 RelaxedPrecision
 OpDecorate %95 RelaxedPrecision
+OpDecorate %96 RelaxedPrecision
 OpDecorate %97 RelaxedPrecision
-OpDecorate %98 RelaxedPrecision
-OpDecorate %99 RelaxedPrecision
-OpDecorate %105 RelaxedPrecision
+OpDecorate %101 RelaxedPrecision
+OpDecorate %104 RelaxedPrecision
 OpDecorate %108 RelaxedPrecision
-OpDecorate %112 RelaxedPrecision
+OpDecorate %111 RelaxedPrecision
 OpDecorate %115 RelaxedPrecision
-OpDecorate %119 RelaxedPrecision
+OpDecorate %118 RelaxedPrecision
 OpDecorate %122 RelaxedPrecision
+OpDecorate %124 RelaxedPrecision
 OpDecorate %126 RelaxedPrecision
-OpDecorate %128 RelaxedPrecision
+OpDecorate %127 RelaxedPrecision
+OpDecorate %129 RelaxedPrecision
 OpDecorate %130 RelaxedPrecision
-OpDecorate %131 RelaxedPrecision
-OpDecorate %133 RelaxedPrecision
-OpDecorate %134 RelaxedPrecision
-OpDecorate %136 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -94,13 +90,11 @@
 %float_0 = OpConstant %float 0
 %_ptr_Function_float = OpTypePointer Function %float
 %void = OpTypeVoid
-%101 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
+%99 = OpTypeFunction %void
 %_color_burn_component = OpFunction %float None %15
 %17 = OpFunctionParameter %_ptr_Function_v2float
 %18 = OpFunctionParameter %_ptr_Function_v2float
 %19 = OpLabel
-%_5_guarded_divide = OpVariable %_ptr_Function_float Function
 %_6_n = OpVariable %_ptr_Function_float Function
 %delta = OpVariable %_ptr_Function_float Function
 %20 = OpLoad %v2float %18
@@ -146,92 +140,87 @@
 %60 = OpFMul %float %56 %59
 OpReturnValue %60
 %53 = OpLabel
-%64 = OpLoad %v2float %18
-%65 = OpCompositeExtract %float %64 1
-%66 = OpLoad %v2float %18
-%67 = OpCompositeExtract %float %66 0
-%68 = OpFSub %float %65 %67
-%69 = OpLoad %v2float %17
-%70 = OpCompositeExtract %float %69 1
-%71 = OpFMul %float %68 %70
-OpStore %_6_n %71
-%72 = OpLoad %float %_6_n
-%73 = OpLoad %v2float %17
-%74 = OpCompositeExtract %float %73 0
-%75 = OpFDiv %float %72 %74
-OpStore %_5_guarded_divide %75
-%78 = OpLoad %v2float %18
-%79 = OpCompositeExtract %float %78 1
-%80 = OpLoad %float %_5_guarded_divide
-%81 = OpFSub %float %79 %80
-%77 = OpExtInst %float %1 FMax %float_0 %81
-OpStore %delta %77
-%82 = OpLoad %float %delta
-%83 = OpLoad %v2float %17
-%84 = OpCompositeExtract %float %83 1
-%85 = OpFMul %float %82 %84
-%86 = OpLoad %v2float %17
-%87 = OpCompositeExtract %float %86 0
-%88 = OpLoad %v2float %18
-%89 = OpCompositeExtract %float %88 1
-%90 = OpFSub %float %float_1 %89
-%91 = OpFMul %float %87 %90
-%92 = OpFAdd %float %85 %91
-%93 = OpLoad %v2float %18
-%94 = OpCompositeExtract %float %93 0
-%95 = OpLoad %v2float %17
-%96 = OpCompositeExtract %float %95 1
-%97 = OpFSub %float %float_1 %96
-%98 = OpFMul %float %94 %97
-%99 = OpFAdd %float %92 %98
-OpReturnValue %99
+%63 = OpLoad %v2float %18
+%64 = OpCompositeExtract %float %63 1
+%65 = OpLoad %v2float %18
+%66 = OpCompositeExtract %float %65 0
+%67 = OpFSub %float %64 %66
+%68 = OpLoad %v2float %17
+%69 = OpCompositeExtract %float %68 1
+%70 = OpFMul %float %67 %69
+OpStore %_6_n %70
+%73 = OpLoad %v2float %18
+%74 = OpCompositeExtract %float %73 1
+%75 = OpLoad %float %_6_n
+%76 = OpLoad %v2float %17
+%77 = OpCompositeExtract %float %76 0
+%78 = OpFDiv %float %75 %77
+%79 = OpFSub %float %74 %78
+%72 = OpExtInst %float %1 FMax %float_0 %79
+OpStore %delta %72
+%80 = OpLoad %float %delta
+%81 = OpLoad %v2float %17
+%82 = OpCompositeExtract %float %81 1
+%83 = OpFMul %float %80 %82
+%84 = OpLoad %v2float %17
+%85 = OpCompositeExtract %float %84 0
+%86 = OpLoad %v2float %18
+%87 = OpCompositeExtract %float %86 1
+%88 = OpFSub %float %float_1 %87
+%89 = OpFMul %float %85 %88
+%90 = OpFAdd %float %83 %89
+%91 = OpLoad %v2float %18
+%92 = OpCompositeExtract %float %91 0
+%93 = OpLoad %v2float %17
+%94 = OpCompositeExtract %float %93 1
+%95 = OpFSub %float %float_1 %94
+%96 = OpFMul %float %92 %95
+%97 = OpFAdd %float %90 %96
+OpReturnValue %97
 %54 = OpLabel
 OpBranch %27
 %27 = OpLabel
 OpUnreachable
 OpFunctionEnd
-%main = OpFunction %void None %101
-%102 = OpLabel
-%_0_blend_color_burn = OpVariable %_ptr_Function_v4float Function
-%107 = OpVariable %_ptr_Function_v2float Function
+%main = OpFunction %void None %99
+%100 = OpLabel
+%103 = OpVariable %_ptr_Function_v2float Function
+%106 = OpVariable %_ptr_Function_v2float Function
 %110 = OpVariable %_ptr_Function_v2float Function
-%114 = OpVariable %_ptr_Function_v2float Function
+%113 = OpVariable %_ptr_Function_v2float Function
 %117 = OpVariable %_ptr_Function_v2float Function
-%121 = OpVariable %_ptr_Function_v2float Function
-%124 = OpVariable %_ptr_Function_v2float Function
-%105 = OpLoad %v4float %src
-%106 = OpVectorShuffle %v2float %105 %105 0 3
-OpStore %107 %106
-%108 = OpLoad %v4float %dst
-%109 = OpVectorShuffle %v2float %108 %108 0 3
+%120 = OpVariable %_ptr_Function_v2float Function
+%101 = OpLoad %v4float %src
+%102 = OpVectorShuffle %v2float %101 %101 0 3
+OpStore %103 %102
+%104 = OpLoad %v4float %dst
+%105 = OpVectorShuffle %v2float %104 %104 0 3
+OpStore %106 %105
+%107 = OpFunctionCall %float %_color_burn_component %103 %106
+%108 = OpLoad %v4float %src
+%109 = OpVectorShuffle %v2float %108 %108 1 3
 OpStore %110 %109
-%111 = OpFunctionCall %float %_color_burn_component %107 %110
-%112 = OpLoad %v4float %src
-%113 = OpVectorShuffle %v2float %112 %112 1 3
-OpStore %114 %113
-%115 = OpLoad %v4float %dst
-%116 = OpVectorShuffle %v2float %115 %115 1 3
+%111 = OpLoad %v4float %dst
+%112 = OpVectorShuffle %v2float %111 %111 1 3
+OpStore %113 %112
+%114 = OpFunctionCall %float %_color_burn_component %110 %113
+%115 = OpLoad %v4float %src
+%116 = OpVectorShuffle %v2float %115 %115 2 3
 OpStore %117 %116
-%118 = OpFunctionCall %float %_color_burn_component %114 %117
-%119 = OpLoad %v4float %src
-%120 = OpVectorShuffle %v2float %119 %119 2 3
-OpStore %121 %120
-%122 = OpLoad %v4float %dst
-%123 = OpVectorShuffle %v2float %122 %122 2 3
-OpStore %124 %123
-%125 = OpFunctionCall %float %_color_burn_component %121 %124
-%126 = OpLoad %v4float %src
-%127 = OpCompositeExtract %float %126 3
-%128 = OpLoad %v4float %src
-%129 = OpCompositeExtract %float %128 3
-%130 = OpFSub %float %float_1 %129
-%131 = OpLoad %v4float %dst
-%132 = OpCompositeExtract %float %131 3
-%133 = OpFMul %float %130 %132
-%134 = OpFAdd %float %127 %133
-%135 = OpCompositeConstruct %v4float %111 %118 %125 %134
-OpStore %_0_blend_color_burn %135
-%136 = OpLoad %v4float %_0_blend_color_burn
-OpStore %sk_FragColor %136
+%118 = OpLoad %v4float %dst
+%119 = OpVectorShuffle %v2float %118 %118 2 3
+OpStore %120 %119
+%121 = OpFunctionCall %float %_color_burn_component %117 %120
+%122 = OpLoad %v4float %src
+%123 = OpCompositeExtract %float %122 3
+%124 = OpLoad %v4float %src
+%125 = OpCompositeExtract %float %124 3
+%126 = OpFSub %float %float_1 %125
+%127 = OpLoad %v4float %dst
+%128 = OpCompositeExtract %float %127 3
+%129 = OpFMul %float %126 %128
+%130 = OpFAdd %float %123 %129
+%131 = OpCompositeConstruct %v4float %107 %114 %121 %130
+OpStore %sk_FragColor %131
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendColorBurn.glsl b/tests/sksl/blend/golden/BlendColorBurn.glsl
index f34c7ed..d860291 100644
--- a/tests/sksl/blend/golden/BlendColorBurn.glsl
+++ b/tests/sksl/blend/golden/BlendColorBurn.glsl
@@ -6,10 +6,8 @@
     } else if (s.x == 0.0) {
         return d.x * (1.0 - s.y);
     } else {
-        float _5_guarded_divide;
         float _6_n = (d.y - d.x) * s.y;
-        _5_guarded_divide = _6_n / s.x;
-        float delta = max(0.0, d.y - _5_guarded_divide);
+        float delta = max(0.0, d.y - _6_n / s.x);
 
         return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
     }
@@ -17,8 +15,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_color_burn;
-    _0_blend_color_burn = vec4(_color_burn_component(src.xw, dst.xw), _color_burn_component(src.yw, dst.yw), _color_burn_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _0_blend_color_burn;
+    sk_FragColor = vec4(_color_burn_component(src.xw, dst.xw), _color_burn_component(src.yw, dst.yw), _color_burn_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
 }
diff --git a/tests/sksl/blend/golden/BlendColorBurn.metal b/tests/sksl/blend/golden/BlendColorBurn.metal
index 11c9fc9..641848c 100644
--- a/tests/sksl/blend/golden/BlendColorBurn.metal
+++ b/tests/sksl/blend/golden/BlendColorBurn.metal
@@ -14,10 +14,8 @@
     } else if (s.x == 0.0) {
         return d.x * (1.0 - s.y);
     } else {
-        float _5_guarded_divide;
         float _6_n = (d.y - d.x) * s.y;
-        _5_guarded_divide = _6_n / s.x;
-        float delta = max(0.0, d.y - _5_guarded_divide);
+        float delta = max(0.0, d.y - _6_n / s.x);
 
         return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
     }
@@ -27,9 +25,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_color_burn;
-    _0_blend_color_burn = float4(_color_burn_component(_in.src.xw, _in.dst.xw), _color_burn_component(_in.src.yw, _in.dst.yw), _color_burn_component(_in.src.zw, _in.dst.zw), _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
-    _out->sk_FragColor = _0_blend_color_burn;
+    _out->sk_FragColor = float4(_color_burn_component(_in.src.xw, _in.dst.xw), _color_burn_component(_in.src.yw, _in.dst.yw), _color_burn_component(_in.src.zw, _in.dst.zw), _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendColorBurnStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendColorBurnStandaloneSettings.glsl
index ccb4c86..b132c20 100644
--- a/tests/sksl/blend/golden/BlendColorBurnStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendColorBurnStandaloneSettings.glsl
@@ -6,10 +6,8 @@
     } else if (s.x == 0.0) {
         return d.x * (1.0 - s.y);
     } else {
-        float _5_guarded_divide;
         float _6_n = (d.y - d.x) * s.y;
-        _5_guarded_divide = _6_n / s.x;
-        float delta = max(0.0, d.y - _5_guarded_divide);
+        float delta = max(0.0, d.y - _6_n / s.x);
 
         return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
     }
@@ -17,8 +15,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_color_burn;
-    _0_blend_color_burn = vec4(_color_burn_component(src.xw, dst.xw), _color_burn_component(src.yw, dst.yw), _color_burn_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _0_blend_color_burn;
+    sk_FragColor = vec4(_color_burn_component(src.xw, dst.xw), _color_burn_component(src.yw, dst.yw), _color_burn_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
 }
diff --git a/tests/sksl/blend/golden/BlendColorDodge.asm.frag b/tests/sksl/blend/golden/BlendColorDodge.asm.frag
index 4b50755..03b107c 100644
--- a/tests/sksl/blend/golden/BlendColorDodge.asm.frag
+++ b/tests/sksl/blend/golden/BlendColorDodge.asm.frag
@@ -9,10 +9,8 @@
 OpName %dst "dst"
 OpName %_color_dodge_component "_color_dodge_component"
 OpName %delta "delta"
-OpName %_3_guarded_divide "_3_guarded_divide"
 OpName %_4_n "_4_n"
 OpName %main "main"
-OpName %_0_blend_color_dodge "_0_blend_color_dodge"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -42,40 +40,38 @@
 OpDecorate %62 RelaxedPrecision
 OpDecorate %63 RelaxedPrecision
 OpDecorate %64 RelaxedPrecision
-OpDecorate %67 RelaxedPrecision
-OpDecorate %69 RelaxedPrecision
-OpDecorate %71 RelaxedPrecision
+OpDecorate %66 RelaxedPrecision
+OpDecorate %68 RelaxedPrecision
+OpDecorate %70 RelaxedPrecision
 OpDecorate %72 RelaxedPrecision
-OpDecorate %73 RelaxedPrecision
 OpDecorate %74 RelaxedPrecision
+OpDecorate %75 RelaxedPrecision
 OpDecorate %76 RelaxedPrecision
+OpDecorate %77 RelaxedPrecision
 OpDecorate %78 RelaxedPrecision
-OpDecorate %79 RelaxedPrecision
 OpDecorate %80 RelaxedPrecision
-OpDecorate %82 RelaxedPrecision
+OpDecorate %81 RelaxedPrecision
 OpDecorate %83 RelaxedPrecision
 OpDecorate %85 RelaxedPrecision
+OpDecorate %86 RelaxedPrecision
 OpDecorate %87 RelaxedPrecision
 OpDecorate %88 RelaxedPrecision
-OpDecorate %89 RelaxedPrecision
 OpDecorate %90 RelaxedPrecision
 OpDecorate %92 RelaxedPrecision
+OpDecorate %93 RelaxedPrecision
 OpDecorate %94 RelaxedPrecision
-OpDecorate %95 RelaxedPrecision
-OpDecorate %96 RelaxedPrecision
-OpDecorate %102 RelaxedPrecision
+OpDecorate %98 RelaxedPrecision
+OpDecorate %101 RelaxedPrecision
 OpDecorate %105 RelaxedPrecision
-OpDecorate %109 RelaxedPrecision
+OpDecorate %108 RelaxedPrecision
 OpDecorate %112 RelaxedPrecision
-OpDecorate %116 RelaxedPrecision
+OpDecorate %115 RelaxedPrecision
 OpDecorate %119 RelaxedPrecision
+OpDecorate %121 RelaxedPrecision
 OpDecorate %123 RelaxedPrecision
-OpDecorate %125 RelaxedPrecision
+OpDecorate %124 RelaxedPrecision
+OpDecorate %126 RelaxedPrecision
 OpDecorate %127 RelaxedPrecision
-OpDecorate %128 RelaxedPrecision
-OpDecorate %130 RelaxedPrecision
-OpDecorate %131 RelaxedPrecision
-OpDecorate %133 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -93,14 +89,12 @@
 %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
 %void = OpTypeVoid
-%98 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
+%96 = OpTypeFunction %void
 %_color_dodge_component = OpFunction %float None %15
 %17 = OpFunctionParameter %_ptr_Function_v2float
 %18 = OpFunctionParameter %_ptr_Function_v2float
 %19 = OpLabel
 %delta = OpVariable %_ptr_Function_float Function
-%_3_guarded_divide = OpVariable %_ptr_Function_float Function
 %_4_n = OpVariable %_ptr_Function_float Function
 %20 = OpLoad %v2float %18
 %21 = OpCompositeExtract %float %20 0
@@ -148,87 +142,82 @@
 %64 = OpFAdd %float %57 %63
 OpReturnValue %64
 %44 = OpLabel
-%67 = OpLoad %v2float %18
-%68 = OpCompositeExtract %float %67 0
-%69 = OpLoad %v2float %17
-%70 = OpCompositeExtract %float %69 1
-%71 = OpFMul %float %68 %70
-OpStore %_4_n %71
-%72 = OpLoad %float %_4_n
-%73 = OpLoad %float %delta
-%74 = OpFDiv %float %72 %73
-OpStore %_3_guarded_divide %74
-%76 = OpLoad %v2float %18
-%77 = OpCompositeExtract %float %76 1
-%78 = OpLoad %float %_3_guarded_divide
-%75 = OpExtInst %float %1 FMin %77 %78
-OpStore %delta %75
-%79 = OpLoad %float %delta
-%80 = OpLoad %v2float %17
-%81 = OpCompositeExtract %float %80 1
-%82 = OpFMul %float %79 %81
-%83 = OpLoad %v2float %17
-%84 = OpCompositeExtract %float %83 0
-%85 = OpLoad %v2float %18
-%86 = OpCompositeExtract %float %85 1
-%87 = OpFSub %float %float_1 %86
-%88 = OpFMul %float %84 %87
-%89 = OpFAdd %float %82 %88
-%90 = OpLoad %v2float %18
-%91 = OpCompositeExtract %float %90 0
-%92 = OpLoad %v2float %17
-%93 = OpCompositeExtract %float %92 1
-%94 = OpFSub %float %float_1 %93
-%95 = OpFMul %float %91 %94
-%96 = OpFAdd %float %89 %95
-OpReturnValue %96
+%66 = OpLoad %v2float %18
+%67 = OpCompositeExtract %float %66 0
+%68 = OpLoad %v2float %17
+%69 = OpCompositeExtract %float %68 1
+%70 = OpFMul %float %67 %69
+OpStore %_4_n %70
+%72 = OpLoad %v2float %18
+%73 = OpCompositeExtract %float %72 1
+%74 = OpLoad %float %_4_n
+%75 = OpLoad %float %delta
+%76 = OpFDiv %float %74 %75
+%71 = OpExtInst %float %1 FMin %73 %76
+OpStore %delta %71
+%77 = OpLoad %float %delta
+%78 = OpLoad %v2float %17
+%79 = OpCompositeExtract %float %78 1
+%80 = OpFMul %float %77 %79
+%81 = OpLoad %v2float %17
+%82 = OpCompositeExtract %float %81 0
+%83 = OpLoad %v2float %18
+%84 = OpCompositeExtract %float %83 1
+%85 = OpFSub %float %float_1 %84
+%86 = OpFMul %float %82 %85
+%87 = OpFAdd %float %80 %86
+%88 = OpLoad %v2float %18
+%89 = OpCompositeExtract %float %88 0
+%90 = OpLoad %v2float %17
+%91 = OpCompositeExtract %float %90 1
+%92 = OpFSub %float %float_1 %91
+%93 = OpFMul %float %89 %92
+%94 = OpFAdd %float %87 %93
+OpReturnValue %94
 %45 = OpLabel
 OpBranch %26
 %26 = OpLabel
 OpUnreachable
 OpFunctionEnd
-%main = OpFunction %void None %98
-%99 = OpLabel
-%_0_blend_color_dodge = OpVariable %_ptr_Function_v4float Function
-%104 = OpVariable %_ptr_Function_v2float Function
+%main = OpFunction %void None %96
+%97 = OpLabel
+%100 = OpVariable %_ptr_Function_v2float Function
+%103 = OpVariable %_ptr_Function_v2float Function
 %107 = OpVariable %_ptr_Function_v2float Function
-%111 = OpVariable %_ptr_Function_v2float Function
+%110 = OpVariable %_ptr_Function_v2float Function
 %114 = OpVariable %_ptr_Function_v2float Function
-%118 = OpVariable %_ptr_Function_v2float Function
-%121 = OpVariable %_ptr_Function_v2float Function
-%102 = OpLoad %v4float %src
-%103 = OpVectorShuffle %v2float %102 %102 0 3
-OpStore %104 %103
-%105 = OpLoad %v4float %dst
-%106 = OpVectorShuffle %v2float %105 %105 0 3
+%117 = OpVariable %_ptr_Function_v2float Function
+%98 = OpLoad %v4float %src
+%99 = OpVectorShuffle %v2float %98 %98 0 3
+OpStore %100 %99
+%101 = OpLoad %v4float %dst
+%102 = OpVectorShuffle %v2float %101 %101 0 3
+OpStore %103 %102
+%104 = OpFunctionCall %float %_color_dodge_component %100 %103
+%105 = OpLoad %v4float %src
+%106 = OpVectorShuffle %v2float %105 %105 1 3
 OpStore %107 %106
-%108 = OpFunctionCall %float %_color_dodge_component %104 %107
-%109 = OpLoad %v4float %src
-%110 = OpVectorShuffle %v2float %109 %109 1 3
-OpStore %111 %110
-%112 = OpLoad %v4float %dst
-%113 = OpVectorShuffle %v2float %112 %112 1 3
+%108 = OpLoad %v4float %dst
+%109 = OpVectorShuffle %v2float %108 %108 1 3
+OpStore %110 %109
+%111 = OpFunctionCall %float %_color_dodge_component %107 %110
+%112 = OpLoad %v4float %src
+%113 = OpVectorShuffle %v2float %112 %112 2 3
 OpStore %114 %113
-%115 = OpFunctionCall %float %_color_dodge_component %111 %114
-%116 = OpLoad %v4float %src
-%117 = OpVectorShuffle %v2float %116 %116 2 3
-OpStore %118 %117
-%119 = OpLoad %v4float %dst
-%120 = OpVectorShuffle %v2float %119 %119 2 3
-OpStore %121 %120
-%122 = OpFunctionCall %float %_color_dodge_component %118 %121
-%123 = OpLoad %v4float %src
-%124 = OpCompositeExtract %float %123 3
-%125 = OpLoad %v4float %src
-%126 = OpCompositeExtract %float %125 3
-%127 = OpFSub %float %float_1 %126
-%128 = OpLoad %v4float %dst
-%129 = OpCompositeExtract %float %128 3
-%130 = OpFMul %float %127 %129
-%131 = OpFAdd %float %124 %130
-%132 = OpCompositeConstruct %v4float %108 %115 %122 %131
-OpStore %_0_blend_color_dodge %132
-%133 = OpLoad %v4float %_0_blend_color_dodge
-OpStore %sk_FragColor %133
+%115 = OpLoad %v4float %dst
+%116 = OpVectorShuffle %v2float %115 %115 2 3
+OpStore %117 %116
+%118 = OpFunctionCall %float %_color_dodge_component %114 %117
+%119 = OpLoad %v4float %src
+%120 = OpCompositeExtract %float %119 3
+%121 = OpLoad %v4float %src
+%122 = OpCompositeExtract %float %121 3
+%123 = OpFSub %float %float_1 %122
+%124 = OpLoad %v4float %dst
+%125 = OpCompositeExtract %float %124 3
+%126 = OpFMul %float %123 %125
+%127 = OpFAdd %float %120 %126
+%128 = OpCompositeConstruct %v4float %104 %111 %118 %127
+OpStore %sk_FragColor %128
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendColorDodge.glsl b/tests/sksl/blend/golden/BlendColorDodge.glsl
index 28b8a51..54fc2de 100644
--- a/tests/sksl/blend/golden/BlendColorDodge.glsl
+++ b/tests/sksl/blend/golden/BlendColorDodge.glsl
@@ -8,10 +8,8 @@
         if (delta == 0.0) {
             return (s.y * d.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         } else {
-            float _3_guarded_divide;
             float _4_n = d.x * s.y;
-            _3_guarded_divide = _4_n / delta;
-            delta = min(d.y, _3_guarded_divide);
+            delta = min(d.y, _4_n / delta);
 
             return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         }
@@ -20,8 +18,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_color_dodge;
-    _0_blend_color_dodge = vec4(_color_dodge_component(src.xw, dst.xw), _color_dodge_component(src.yw, dst.yw), _color_dodge_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _0_blend_color_dodge;
+    sk_FragColor = vec4(_color_dodge_component(src.xw, dst.xw), _color_dodge_component(src.yw, dst.yw), _color_dodge_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
 }
diff --git a/tests/sksl/blend/golden/BlendColorDodge.metal b/tests/sksl/blend/golden/BlendColorDodge.metal
index 2eb32d0..0c8f5c6 100644
--- a/tests/sksl/blend/golden/BlendColorDodge.metal
+++ b/tests/sksl/blend/golden/BlendColorDodge.metal
@@ -16,10 +16,8 @@
         if (delta == 0.0) {
             return (s.y * d.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         } else {
-            float _3_guarded_divide;
             float _4_n = d.x * s.y;
-            _3_guarded_divide = _4_n / delta;
-            delta = min(d.y, _3_guarded_divide);
+            delta = min(d.y, _4_n / delta);
 
             return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         }
@@ -30,9 +28,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_color_dodge;
-    _0_blend_color_dodge = float4(_color_dodge_component(_in.src.xw, _in.dst.xw), _color_dodge_component(_in.src.yw, _in.dst.yw), _color_dodge_component(_in.src.zw, _in.dst.zw), _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
-    _out->sk_FragColor = _0_blend_color_dodge;
+    _out->sk_FragColor = float4(_color_dodge_component(_in.src.xw, _in.dst.xw), _color_dodge_component(_in.src.yw, _in.dst.yw), _color_dodge_component(_in.src.zw, _in.dst.zw), _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendColorDodgeStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendColorDodgeStandaloneSettings.glsl
index ebf07c7..0bf7873 100644
--- a/tests/sksl/blend/golden/BlendColorDodgeStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendColorDodgeStandaloneSettings.glsl
@@ -8,10 +8,8 @@
         if (delta == 0.0) {
             return (s.y * d.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         } else {
-            float _3_guarded_divide;
             float _4_n = d.x * s.y;
-            _3_guarded_divide = _4_n / delta;
-            delta = min(d.y, _3_guarded_divide);
+            delta = min(d.y, _4_n / delta);
 
             return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         }
@@ -20,8 +18,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_color_dodge;
-    _0_blend_color_dodge = vec4(_color_dodge_component(src.xw, dst.xw), _color_dodge_component(src.yw, dst.yw), _color_dodge_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _0_blend_color_dodge;
+    sk_FragColor = vec4(_color_dodge_component(src.xw, dst.xw), _color_dodge_component(src.yw, dst.yw), _color_dodge_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
 }
diff --git a/tests/sksl/blend/golden/BlendColorStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendColorStandaloneSettings.glsl
index 9792ef9..5815abb 100644
--- a/tests/sksl/blend/golden/BlendColorStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendColorStandaloneSettings.glsl
@@ -3,27 +3,19 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_color;
     float _1_alpha = dst.w * src.w;
     vec3 _2_sda = src.xyz * dst.w;
     vec3 _3_dsa = dst.xyz * src.w;
-    vec3 _4_blend_set_color_luminance;
-    float _5_blend_color_luminance;
-    _5_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
-    float _6_lum = _5_blend_color_luminance;
+    float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
 
-    float _7_blend_color_luminance;
-    _7_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda);
-    vec3 _8_result = (_6_lum - _7_blend_color_luminance) + _2_sda;
+    vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda)) + _2_sda;
 
-    float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
-    float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
-    if (_9_minComp < 0.0 && _6_lum != _9_minComp) {
-        _8_result = _6_lum + ((_8_result - _6_lum) * _6_lum) / (_6_lum - _9_minComp);
+    float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
+    float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
+    if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
+        _6_result = _5_lum + ((_6_result - _5_lum) * _5_lum) / (_5_lum - _7_minComp);
     }
-    _4_blend_set_color_luminance = _10_maxComp > _1_alpha && _10_maxComp != _6_lum ? _6_lum + ((_8_result - _6_lum) * (_1_alpha - _6_lum)) / (_10_maxComp - _6_lum) : _8_result;
-    _0_blend_color = vec4((((_4_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
+    sk_FragColor = vec4(((((_8_maxComp > _1_alpha && _8_maxComp != _5_lum ? _5_lum + ((_6_result - _5_lum) * (_1_alpha - _5_lum)) / (_8_maxComp - _5_lum) : _6_result) + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
 
-    sk_FragColor = _0_blend_color;
 
 }
diff --git a/tests/sksl/blend/golden/BlendDarken.asm.frag b/tests/sksl/blend/golden/BlendDarken.asm.frag
index c99b38a..42f6c99 100644
--- a/tests/sksl/blend/golden/BlendDarken.asm.frag
+++ b/tests/sksl/blend/golden/BlendDarken.asm.frag
@@ -8,9 +8,7 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_darken "_0_blend_darken"
-OpName %_1_blend_src_over "_1_blend_src_over"
-OpName %_2_result "_2_result"
+OpName %_1_result "_1_result"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -18,21 +16,19 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
-OpDecorate %19 RelaxedPrecision
-OpDecorate %21 RelaxedPrecision
+OpDecorate %18 RelaxedPrecision
+OpDecorate %20 RelaxedPrecision
+OpDecorate %22 RelaxedPrecision
 OpDecorate %23 RelaxedPrecision
-OpDecorate %24 RelaxedPrecision
-OpDecorate %26 RelaxedPrecision
-OpDecorate %28 RelaxedPrecision
+OpDecorate %25 RelaxedPrecision
+OpDecorate %27 RelaxedPrecision
 OpDecorate %30 RelaxedPrecision
+OpDecorate %32 RelaxedPrecision
 OpDecorate %33 RelaxedPrecision
-OpDecorate %35 RelaxedPrecision
 OpDecorate %36 RelaxedPrecision
-OpDecorate %39 RelaxedPrecision
+OpDecorate %38 RelaxedPrecision
+OpDecorate %40 RelaxedPrecision
 OpDecorate %41 RelaxedPrecision
-OpDecorate %43 RelaxedPrecision
-OpDecorate %44 RelaxedPrecision
-OpDecorate %45 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -50,37 +46,31 @@
 %v3float = OpTypeVector %float 3
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_darken = OpVariable %_ptr_Function_v4float Function
-%_1_blend_src_over = OpVariable %_ptr_Function_v4float Function
-%_2_result = OpVariable %_ptr_Function_v4float Function
-%19 = OpLoad %v4float %src
-%21 = OpLoad %v4float %src
-%22 = OpCompositeExtract %float %21 3
-%23 = OpFSub %float %float_1 %22
-%24 = OpLoad %v4float %dst
-%25 = OpVectorTimesScalar %v4float %24 %23
-%26 = OpFAdd %v4float %19 %25
-OpStore %_1_blend_src_over %26
-%28 = OpLoad %v4float %_1_blend_src_over
-OpStore %_2_result %28
-%30 = OpLoad %v4float %_2_result
-%31 = OpVectorShuffle %v3float %30 %30 0 1 2
-%33 = OpLoad %v4float %dst
-%34 = OpCompositeExtract %float %33 3
-%35 = OpFSub %float %float_1 %34
-%36 = OpLoad %v4float %src
+%_1_result = OpVariable %_ptr_Function_v4float Function
+%18 = OpLoad %v4float %src
+%20 = OpLoad %v4float %src
+%21 = OpCompositeExtract %float %20 3
+%22 = OpFSub %float %float_1 %21
+%23 = OpLoad %v4float %dst
+%24 = OpVectorTimesScalar %v4float %23 %22
+%25 = OpFAdd %v4float %18 %24
+OpStore %_1_result %25
+%27 = OpLoad %v4float %_1_result
+%28 = OpVectorShuffle %v3float %27 %27 0 1 2
+%30 = OpLoad %v4float %dst
+%31 = OpCompositeExtract %float %30 3
+%32 = OpFSub %float %float_1 %31
+%33 = OpLoad %v4float %src
+%34 = OpVectorShuffle %v3float %33 %33 0 1 2
+%35 = OpVectorTimesScalar %v3float %34 %32
+%36 = OpLoad %v4float %dst
 %37 = OpVectorShuffle %v3float %36 %36 0 1 2
-%38 = OpVectorTimesScalar %v3float %37 %35
-%39 = OpLoad %v4float %dst
-%40 = OpVectorShuffle %v3float %39 %39 0 1 2
-%41 = OpFAdd %v3float %38 %40
-%29 = OpExtInst %v3float %1 FMin %31 %41
-%42 = OpLoad %v4float %_2_result
-%43 = OpVectorShuffle %v4float %42 %29 4 5 6 3
-OpStore %_2_result %43
-%44 = OpLoad %v4float %_2_result
-OpStore %_0_blend_darken %44
-%45 = OpLoad %v4float %_0_blend_darken
-OpStore %sk_FragColor %45
+%38 = OpFAdd %v3float %35 %37
+%26 = OpExtInst %v3float %1 FMin %28 %38
+%39 = OpLoad %v4float %_1_result
+%40 = OpVectorShuffle %v4float %39 %26 4 5 6 3
+OpStore %_1_result %40
+%41 = OpLoad %v4float %_1_result
+OpStore %sk_FragColor %41
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendDarken.glsl b/tests/sksl/blend/golden/BlendDarken.glsl
index 388ada0..d122705 100644
--- a/tests/sksl/blend/golden/BlendDarken.glsl
+++ b/tests/sksl/blend/golden/BlendDarken.glsl
@@ -3,13 +3,9 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_darken;
-    vec4 _1_blend_src_over;
-    _1_blend_src_over = src + (1.0 - src.w) * dst;
-    vec4 _2_result = _1_blend_src_over;
+    vec4 _1_result = src + (1.0 - src.w) * dst;
 
-    _2_result.xyz = min(_2_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
-    _0_blend_darken = _2_result;
-    sk_FragColor = _0_blend_darken;
+    _1_result.xyz = min(_1_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
+    sk_FragColor = _1_result;
 
 }
diff --git a/tests/sksl/blend/golden/BlendDarken.metal b/tests/sksl/blend/golden/BlendDarken.metal
index f693ef9..7655e5d 100644
--- a/tests/sksl/blend/golden/BlendDarken.metal
+++ b/tests/sksl/blend/golden/BlendDarken.metal
@@ -13,14 +13,10 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_darken;
-    float4 _1_blend_src_over;
-    _1_blend_src_over = _in.src + (1.0 - _in.src.w) * _in.dst;
-    float4 _2_result = _1_blend_src_over;
+    float4 _1_result = _in.src + (1.0 - _in.src.w) * _in.dst;
 
-    _2_result.xyz = min(_2_result.xyz, (1.0 - _in.dst.w) * _in.src.xyz + _in.dst.xyz);
-    _0_blend_darken = _2_result;
-    _out->sk_FragColor = _0_blend_darken;
+    _1_result.xyz = min(_1_result.xyz, (1.0 - _in.dst.w) * _in.src.xyz + _in.dst.xyz);
+    _out->sk_FragColor = _1_result;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendDarkenStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendDarkenStandaloneSettings.glsl
index 30cf72c..c2d2fe3 100644
--- a/tests/sksl/blend/golden/BlendDarkenStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendDarkenStandaloneSettings.glsl
@@ -3,13 +3,9 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_darken;
-    vec4 _1_blend_src_over;
-    _1_blend_src_over = src + (1.0 - src.w) * dst;
-    vec4 _2_result = _1_blend_src_over;
+    vec4 _1_result = src + (1.0 - src.w) * dst;
 
-    _2_result.xyz = min(_2_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
-    _0_blend_darken = _2_result;
-    sk_FragColor = _0_blend_darken;
+    _1_result.xyz = min(_1_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
+    sk_FragColor = _1_result;
 
 }
diff --git a/tests/sksl/blend/golden/BlendDifference.asm.frag b/tests/sksl/blend/golden/BlendDifference.asm.frag
index f161f1f..f50531d 100644
--- a/tests/sksl/blend/golden/BlendDifference.asm.frag
+++ b/tests/sksl/blend/golden/BlendDifference.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_difference "_0_blend_difference"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,21 +15,20 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
-OpDecorate %18 RelaxedPrecision
+OpDecorate %16 RelaxedPrecision
+OpDecorate %19 RelaxedPrecision
 OpDecorate %21 RelaxedPrecision
-OpDecorate %23 RelaxedPrecision
+OpDecorate %24 RelaxedPrecision
 OpDecorate %26 RelaxedPrecision
-OpDecorate %28 RelaxedPrecision
+OpDecorate %29 RelaxedPrecision
 OpDecorate %31 RelaxedPrecision
-OpDecorate %33 RelaxedPrecision
-OpDecorate %37 RelaxedPrecision
-OpDecorate %41 RelaxedPrecision
+OpDecorate %35 RelaxedPrecision
+OpDecorate %39 RelaxedPrecision
+OpDecorate %42 RelaxedPrecision
 OpDecorate %44 RelaxedPrecision
-OpDecorate %46 RelaxedPrecision
+OpDecorate %45 RelaxedPrecision
 OpDecorate %47 RelaxedPrecision
-OpDecorate %49 RelaxedPrecision
-OpDecorate %50 RelaxedPrecision
-OpDecorate %52 RelaxedPrecision
+OpDecorate %48 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -43,46 +41,42 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %v3float = OpTypeVector %float 3
 %float_2 = OpConstant %float 2
 %float_1 = OpConstant %float 1
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_difference = OpVariable %_ptr_Function_v4float Function
-%18 = OpLoad %v4float %src
-%19 = OpVectorShuffle %v3float %18 %18 0 1 2
-%21 = OpLoad %v4float %dst
-%22 = OpVectorShuffle %v3float %21 %21 0 1 2
-%23 = OpFAdd %v3float %19 %22
-%26 = OpLoad %v4float %src
-%27 = OpVectorShuffle %v3float %26 %26 0 1 2
-%28 = OpLoad %v4float %dst
-%29 = OpCompositeExtract %float %28 3
-%30 = OpVectorTimesScalar %v3float %27 %29
-%31 = OpLoad %v4float %dst
-%32 = OpVectorShuffle %v3float %31 %31 0 1 2
-%33 = OpLoad %v4float %src
-%34 = OpCompositeExtract %float %33 3
-%35 = OpVectorTimesScalar %v3float %32 %34
-%25 = OpExtInst %v3float %1 FMin %30 %35
-%36 = OpVectorTimesScalar %v3float %25 %float_2
-%37 = OpFSub %v3float %23 %36
-%38 = OpCompositeExtract %float %37 0
-%39 = OpCompositeExtract %float %37 1
-%40 = OpCompositeExtract %float %37 2
-%41 = OpLoad %v4float %src
-%42 = OpCompositeExtract %float %41 3
-%44 = OpLoad %v4float %src
-%45 = OpCompositeExtract %float %44 3
-%46 = OpFSub %float %float_1 %45
-%47 = OpLoad %v4float %dst
-%48 = OpCompositeExtract %float %47 3
-%49 = OpFMul %float %46 %48
-%50 = OpFAdd %float %42 %49
-%51 = OpCompositeConstruct %v4float %38 %39 %40 %50
-OpStore %_0_blend_difference %51
-%52 = OpLoad %v4float %_0_blend_difference
-OpStore %sk_FragColor %52
+%16 = OpLoad %v4float %src
+%17 = OpVectorShuffle %v3float %16 %16 0 1 2
+%19 = OpLoad %v4float %dst
+%20 = OpVectorShuffle %v3float %19 %19 0 1 2
+%21 = OpFAdd %v3float %17 %20
+%24 = OpLoad %v4float %src
+%25 = OpVectorShuffle %v3float %24 %24 0 1 2
+%26 = OpLoad %v4float %dst
+%27 = OpCompositeExtract %float %26 3
+%28 = OpVectorTimesScalar %v3float %25 %27
+%29 = OpLoad %v4float %dst
+%30 = OpVectorShuffle %v3float %29 %29 0 1 2
+%31 = OpLoad %v4float %src
+%32 = OpCompositeExtract %float %31 3
+%33 = OpVectorTimesScalar %v3float %30 %32
+%23 = OpExtInst %v3float %1 FMin %28 %33
+%34 = OpVectorTimesScalar %v3float %23 %float_2
+%35 = OpFSub %v3float %21 %34
+%36 = OpCompositeExtract %float %35 0
+%37 = OpCompositeExtract %float %35 1
+%38 = OpCompositeExtract %float %35 2
+%39 = OpLoad %v4float %src
+%40 = OpCompositeExtract %float %39 3
+%42 = OpLoad %v4float %src
+%43 = OpCompositeExtract %float %42 3
+%44 = OpFSub %float %float_1 %43
+%45 = OpLoad %v4float %dst
+%46 = OpCompositeExtract %float %45 3
+%47 = OpFMul %float %44 %46
+%48 = OpFAdd %float %40 %47
+%49 = OpCompositeConstruct %v4float %36 %37 %38 %48
+OpStore %sk_FragColor %49
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendDifference.glsl b/tests/sksl/blend/golden/BlendDifference.glsl
index 8ee79d2..0060fc5 100644
--- a/tests/sksl/blend/golden/BlendDifference.glsl
+++ b/tests/sksl/blend/golden/BlendDifference.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_difference;
-    _0_blend_difference = vec4((src.xyz + dst.xyz) - 2.0 * min(src.xyz * dst.w, dst.xyz * src.w), src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _0_blend_difference;
+    sk_FragColor = vec4((src.xyz + dst.xyz) - 2.0 * min(src.xyz * dst.w, dst.xyz * src.w), src.w + (1.0 - src.w) * dst.w);
 
 }
diff --git a/tests/sksl/blend/golden/BlendDifference.metal b/tests/sksl/blend/golden/BlendDifference.metal
index 56e048d..22fa584 100644
--- a/tests/sksl/blend/golden/BlendDifference.metal
+++ b/tests/sksl/blend/golden/BlendDifference.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_difference;
-    _0_blend_difference = float4((_in.src.xyz + _in.dst.xyz) - 2.0 * min(_in.src.xyz * _in.dst.w, _in.dst.xyz * _in.src.w), _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
-    _out->sk_FragColor = _0_blend_difference;
+    _out->sk_FragColor = float4((_in.src.xyz + _in.dst.xyz) - 2.0 * min(_in.src.xyz * _in.dst.w, _in.dst.xyz * _in.src.w), _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendDifferenceStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendDifferenceStandaloneSettings.glsl
index 0f2d224..3f1406c 100644
--- a/tests/sksl/blend/golden/BlendDifferenceStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendDifferenceStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_difference;
-    _0_blend_difference = vec4((src.xyz + dst.xyz) - 2.0 * min(src.xyz * dst.w, dst.xyz * src.w), src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _0_blend_difference;
+    sk_FragColor = vec4((src.xyz + dst.xyz) - 2.0 * min(src.xyz * dst.w, dst.xyz * src.w), src.w + (1.0 - src.w) * dst.w);
 
 }
diff --git a/tests/sksl/blend/golden/BlendDst.asm.frag b/tests/sksl/blend/golden/BlendDst.asm.frag
index 76e72eb..9da87ca 100644
--- a/tests/sksl/blend/golden/BlendDst.asm.frag
+++ b/tests/sksl/blend/golden/BlendDst.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_dst "_0_blend_dst"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,8 +15,7 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
-OpDecorate %18 RelaxedPrecision
-OpDecorate %19 RelaxedPrecision
+OpDecorate %16 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -30,13 +28,9 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_dst = OpVariable %_ptr_Function_v4float Function
-%18 = OpLoad %v4float %dst
-OpStore %_0_blend_dst %18
-%19 = OpLoad %v4float %_0_blend_dst
-OpStore %sk_FragColor %19
+%16 = OpLoad %v4float %dst
+OpStore %sk_FragColor %16
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendDst.glsl b/tests/sksl/blend/golden/BlendDst.glsl
index 03cf7b4..9b5a94f 100644
--- a/tests/sksl/blend/golden/BlendDst.glsl
+++ b/tests/sksl/blend/golden/BlendDst.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_dst;
-    _0_blend_dst = dst;
-    sk_FragColor = _0_blend_dst;
+    sk_FragColor = dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendDst.metal b/tests/sksl/blend/golden/BlendDst.metal
index 8788123..cb4d124 100644
--- a/tests/sksl/blend/golden/BlendDst.metal
+++ b/tests/sksl/blend/golden/BlendDst.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_dst;
-    _0_blend_dst = _in.dst;
-    _out->sk_FragColor = _0_blend_dst;
+    _out->sk_FragColor = _in.dst;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendDstAtop.asm.frag b/tests/sksl/blend/golden/BlendDstAtop.asm.frag
index fa36e6c..8d849c9 100644
--- a/tests/sksl/blend/golden/BlendDstAtop.asm.frag
+++ b/tests/sksl/blend/golden/BlendDstAtop.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_src_atop "_0_blend_src_atop"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,13 +15,12 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
+OpDecorate %16 RelaxedPrecision
 OpDecorate %18 RelaxedPrecision
-OpDecorate %20 RelaxedPrecision
+OpDecorate %21 RelaxedPrecision
 OpDecorate %23 RelaxedPrecision
-OpDecorate %25 RelaxedPrecision
+OpDecorate %24 RelaxedPrecision
 OpDecorate %26 RelaxedPrecision
-OpDecorate %28 RelaxedPrecision
-OpDecorate %29 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -35,23 +33,19 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %float_1 = OpConstant %float 1
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_src_atop = OpVariable %_ptr_Function_v4float Function
-%18 = OpLoad %v4float %dst
-%19 = OpCompositeExtract %float %18 3
-%20 = OpLoad %v4float %src
-%21 = OpVectorTimesScalar %v4float %20 %19
-%23 = OpLoad %v4float %src
-%24 = OpCompositeExtract %float %23 3
-%25 = OpFSub %float %float_1 %24
-%26 = OpLoad %v4float %dst
-%27 = OpVectorTimesScalar %v4float %26 %25
-%28 = OpFAdd %v4float %21 %27
-OpStore %_0_blend_src_atop %28
-%29 = OpLoad %v4float %_0_blend_src_atop
-OpStore %sk_FragColor %29
+%16 = OpLoad %v4float %dst
+%17 = OpCompositeExtract %float %16 3
+%18 = OpLoad %v4float %src
+%19 = OpVectorTimesScalar %v4float %18 %17
+%21 = OpLoad %v4float %src
+%22 = OpCompositeExtract %float %21 3
+%23 = OpFSub %float %float_1 %22
+%24 = OpLoad %v4float %dst
+%25 = OpVectorTimesScalar %v4float %24 %23
+%26 = OpFAdd %v4float %19 %25
+OpStore %sk_FragColor %26
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendDstAtop.glsl b/tests/sksl/blend/golden/BlendDstAtop.glsl
index f777682..7e4f7fe 100644
--- a/tests/sksl/blend/golden/BlendDstAtop.glsl
+++ b/tests/sksl/blend/golden/BlendDstAtop.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_src_atop;
-    _0_blend_src_atop = dst.w * src + (1.0 - src.w) * dst;
-    sk_FragColor = _0_blend_src_atop;
+    sk_FragColor = dst.w * src + (1.0 - src.w) * dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendDstAtop.metal b/tests/sksl/blend/golden/BlendDstAtop.metal
index c4b64ee..970b2f7 100644
--- a/tests/sksl/blend/golden/BlendDstAtop.metal
+++ b/tests/sksl/blend/golden/BlendDstAtop.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_src_atop;
-    _0_blend_src_atop = _in.dst.w * _in.src + (1.0 - _in.src.w) * _in.dst;
-    _out->sk_FragColor = _0_blend_src_atop;
+    _out->sk_FragColor = _in.dst.w * _in.src + (1.0 - _in.src.w) * _in.dst;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendDstAtopStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendDstAtopStandaloneSettings.glsl
index 335e953..69cac42 100644
--- a/tests/sksl/blend/golden/BlendDstAtopStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendDstAtopStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_src_atop;
-    _0_blend_src_atop = dst.w * src + (1.0 - src.w) * dst;
-    sk_FragColor = _0_blend_src_atop;
+    sk_FragColor = dst.w * src + (1.0 - src.w) * dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendDstIn.asm.frag b/tests/sksl/blend/golden/BlendDstIn.asm.frag
index 8e8c817..187c116 100644
--- a/tests/sksl/blend/golden/BlendDstIn.asm.frag
+++ b/tests/sksl/blend/golden/BlendDstIn.asm.frag
@@ -8,8 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_dst_in "_0_blend_dst_in"
-OpName %_1_blend_src_in "_1_blend_src_in"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -17,10 +15,8 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
-OpDecorate %19 RelaxedPrecision
-OpDecorate %20 RelaxedPrecision
-OpDecorate %23 RelaxedPrecision
-OpDecorate %24 RelaxedPrecision
+OpDecorate %16 RelaxedPrecision
+OpDecorate %17 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -33,19 +29,12 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_dst_in = OpVariable %_ptr_Function_v4float Function
-%_1_blend_src_in = OpVariable %_ptr_Function_v4float Function
-%19 = OpLoad %v4float %dst
-%20 = OpLoad %v4float %src
-%21 = OpCompositeExtract %float %20 3
-%22 = OpVectorTimesScalar %v4float %19 %21
-OpStore %_1_blend_src_in %22
-%23 = OpLoad %v4float %_1_blend_src_in
-OpStore %_0_blend_dst_in %23
-%24 = OpLoad %v4float %_0_blend_dst_in
-OpStore %sk_FragColor %24
+%16 = OpLoad %v4float %dst
+%17 = OpLoad %v4float %src
+%18 = OpCompositeExtract %float %17 3
+%19 = OpVectorTimesScalar %v4float %16 %18
+OpStore %sk_FragColor %19
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendDstIn.glsl b/tests/sksl/blend/golden/BlendDstIn.glsl
index 7a9bc65..3044817 100644
--- a/tests/sksl/blend/golden/BlendDstIn.glsl
+++ b/tests/sksl/blend/golden/BlendDstIn.glsl
@@ -3,11 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_dst_in;
-    vec4 _1_blend_src_in;
-    _1_blend_src_in = dst * src.w;
-    _0_blend_dst_in = _1_blend_src_in;
-
-    sk_FragColor = _0_blend_dst_in;
+    sk_FragColor = dst * src.w;
 
 }
diff --git a/tests/sksl/blend/golden/BlendDstIn.metal b/tests/sksl/blend/golden/BlendDstIn.metal
index a025d98..ac0c73d 100644
--- a/tests/sksl/blend/golden/BlendDstIn.metal
+++ b/tests/sksl/blend/golden/BlendDstIn.metal
@@ -13,12 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_dst_in;
-    float4 _1_blend_src_in;
-    _1_blend_src_in = _in.dst * _in.src.w;
-    _0_blend_dst_in = _1_blend_src_in;
-
-    _out->sk_FragColor = _0_blend_dst_in;
+    _out->sk_FragColor = _in.dst * _in.src.w;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendDstInStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendDstInStandaloneSettings.glsl
index b73409f..66066b5 100644
--- a/tests/sksl/blend/golden/BlendDstInStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendDstInStandaloneSettings.glsl
@@ -3,11 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_dst_in;
-    vec4 _1_blend_src_in;
-    _1_blend_src_in = dst * src.w;
-    _0_blend_dst_in = _1_blend_src_in;
-
-    sk_FragColor = _0_blend_dst_in;
+    sk_FragColor = dst * src.w;
 
 }
diff --git a/tests/sksl/blend/golden/BlendDstOut.asm.frag b/tests/sksl/blend/golden/BlendDstOut.asm.frag
index e2d58e3..6599eee 100644
--- a/tests/sksl/blend/golden/BlendDstOut.asm.frag
+++ b/tests/sksl/blend/golden/BlendDstOut.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_dst_out "_0_blend_dst_out"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,10 +15,9 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
+OpDecorate %17 RelaxedPrecision
 OpDecorate %19 RelaxedPrecision
-OpDecorate %21 RelaxedPrecision
-OpDecorate %22 RelaxedPrecision
-OpDecorate %24 RelaxedPrecision
+OpDecorate %20 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -32,18 +30,14 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %float_1 = OpConstant %float 1
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_dst_out = OpVariable %_ptr_Function_v4float Function
-%19 = OpLoad %v4float %src
-%20 = OpCompositeExtract %float %19 3
-%21 = OpFSub %float %float_1 %20
-%22 = OpLoad %v4float %dst
-%23 = OpVectorTimesScalar %v4float %22 %21
-OpStore %_0_blend_dst_out %23
-%24 = OpLoad %v4float %_0_blend_dst_out
-OpStore %sk_FragColor %24
+%17 = OpLoad %v4float %src
+%18 = OpCompositeExtract %float %17 3
+%19 = OpFSub %float %float_1 %18
+%20 = OpLoad %v4float %dst
+%21 = OpVectorTimesScalar %v4float %20 %19
+OpStore %sk_FragColor %21
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendDstOut.glsl b/tests/sksl/blend/golden/BlendDstOut.glsl
index f0284d9..0e528f5 100644
--- a/tests/sksl/blend/golden/BlendDstOut.glsl
+++ b/tests/sksl/blend/golden/BlendDstOut.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_dst_out;
-    _0_blend_dst_out = (1.0 - src.w) * dst;
-    sk_FragColor = _0_blend_dst_out;
+    sk_FragColor = (1.0 - src.w) * dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendDstOut.metal b/tests/sksl/blend/golden/BlendDstOut.metal
index bb51b1c..d50791a 100644
--- a/tests/sksl/blend/golden/BlendDstOut.metal
+++ b/tests/sksl/blend/golden/BlendDstOut.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_dst_out;
-    _0_blend_dst_out = (1.0 - _in.src.w) * _in.dst;
-    _out->sk_FragColor = _0_blend_dst_out;
+    _out->sk_FragColor = (1.0 - _in.src.w) * _in.dst;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendDstOutStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendDstOutStandaloneSettings.glsl
index 493d10d..e02b473 100644
--- a/tests/sksl/blend/golden/BlendDstOutStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendDstOutStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_dst_out;
-    _0_blend_dst_out = (1.0 - src.w) * dst;
-    sk_FragColor = _0_blend_dst_out;
+    sk_FragColor = (1.0 - src.w) * dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendDstOver.asm.frag b/tests/sksl/blend/golden/BlendDstOver.asm.frag
index cc29751..1fef88b 100644
--- a/tests/sksl/blend/golden/BlendDstOver.asm.frag
+++ b/tests/sksl/blend/golden/BlendDstOver.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_dst_over "_0_blend_dst_over"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,12 +15,11 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
+OpDecorate %17 RelaxedPrecision
 OpDecorate %19 RelaxedPrecision
-OpDecorate %21 RelaxedPrecision
+OpDecorate %20 RelaxedPrecision
 OpDecorate %22 RelaxedPrecision
-OpDecorate %24 RelaxedPrecision
-OpDecorate %25 RelaxedPrecision
-OpDecorate %26 RelaxedPrecision
+OpDecorate %23 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -34,20 +32,16 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %float_1 = OpConstant %float 1
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_dst_over = OpVariable %_ptr_Function_v4float Function
-%19 = OpLoad %v4float %dst
-%20 = OpCompositeExtract %float %19 3
-%21 = OpFSub %float %float_1 %20
-%22 = OpLoad %v4float %src
-%23 = OpVectorTimesScalar %v4float %22 %21
-%24 = OpLoad %v4float %dst
-%25 = OpFAdd %v4float %23 %24
-OpStore %_0_blend_dst_over %25
-%26 = OpLoad %v4float %_0_blend_dst_over
-OpStore %sk_FragColor %26
+%17 = OpLoad %v4float %dst
+%18 = OpCompositeExtract %float %17 3
+%19 = OpFSub %float %float_1 %18
+%20 = OpLoad %v4float %src
+%21 = OpVectorTimesScalar %v4float %20 %19
+%22 = OpLoad %v4float %dst
+%23 = OpFAdd %v4float %21 %22
+OpStore %sk_FragColor %23
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendDstOver.glsl b/tests/sksl/blend/golden/BlendDstOver.glsl
index c2e569c..23b7391 100644
--- a/tests/sksl/blend/golden/BlendDstOver.glsl
+++ b/tests/sksl/blend/golden/BlendDstOver.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_dst_over;
-    _0_blend_dst_over = (1.0 - dst.w) * src + dst;
-    sk_FragColor = _0_blend_dst_over;
+    sk_FragColor = (1.0 - dst.w) * src + dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendDstOver.metal b/tests/sksl/blend/golden/BlendDstOver.metal
index c68be48..af2d408 100644
--- a/tests/sksl/blend/golden/BlendDstOver.metal
+++ b/tests/sksl/blend/golden/BlendDstOver.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_dst_over;
-    _0_blend_dst_over = (1.0 - _in.dst.w) * _in.src + _in.dst;
-    _out->sk_FragColor = _0_blend_dst_over;
+    _out->sk_FragColor = (1.0 - _in.dst.w) * _in.src + _in.dst;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendDstOverStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendDstOverStandaloneSettings.glsl
index b19ca8d..b4df8d5 100644
--- a/tests/sksl/blend/golden/BlendDstOverStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendDstOverStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_dst_over;
-    _0_blend_dst_over = (1.0 - dst.w) * src + dst;
-    sk_FragColor = _0_blend_dst_over;
+    sk_FragColor = (1.0 - dst.w) * src + dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendDstStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendDstStandaloneSettings.glsl
index 687f2ad..9e149c6 100644
--- a/tests/sksl/blend/golden/BlendDstStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendDstStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_dst;
-    _0_blend_dst = dst;
-    sk_FragColor = _0_blend_dst;
+    sk_FragColor = dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendEnum.asm.frag b/tests/sksl/blend/golden/BlendEnum.asm.frag
index c0d75a1..5d17e05 100644
--- a/tests/sksl/blend/golden/BlendEnum.asm.frag
+++ b/tests/sksl/blend/golden/BlendEnum.asm.frag
@@ -12,74 +12,37 @@
 OpName %result "result"
 OpName %_color_dodge_component "_color_dodge_component"
 OpName %delta "delta"
-OpName %_3_guarded_divide "_3_guarded_divide"
 OpName %_4_n "_4_n"
 OpName %_color_burn_component "_color_burn_component"
-OpName %_5_guarded_divide "_5_guarded_divide"
 OpName %_6_n "_6_n"
 OpName %delta_0 "delta"
 OpName %_soft_light_component "_soft_light_component"
-OpName %_7_guarded_divide "_7_guarded_divide"
 OpName %_8_n "_8_n"
 OpName %DSqd "DSqd"
 OpName %DCub "DCub"
 OpName %DaSqd "DaSqd"
 OpName %DaCub "DaCub"
-OpName %_9_guarded_divide "_9_guarded_divide"
 OpName %_10_n "_10_n"
 OpName %_blend_set_color_luminance "_blend_set_color_luminance"
-OpName %_11_blend_color_luminance "_11_blend_color_luminance"
 OpName %lum "lum"
-OpName %_12_blend_color_luminance "_12_blend_color_luminance"
 OpName %result_0 "result"
 OpName %minComp "minComp"
 OpName %maxComp "maxComp"
 OpName %_blend_set_color_saturation_helper "_blend_set_color_saturation_helper"
 OpName %_blend_set_color_saturation "_blend_set_color_saturation"
-OpName %_13_blend_color_saturation "_13_blend_color_saturation"
 OpName %sat "sat"
 OpName %blend "blend"
-OpName %_15_blend_src "_15_blend_src"
-OpName %_16_blend_dst "_16_blend_dst"
-OpName %_17_blend_src_over "_17_blend_src_over"
-OpName %_18_blend_dst_over "_18_blend_dst_over"
-OpName %_19_blend_src_in "_19_blend_src_in"
-OpName %_20_blend_dst_in "_20_blend_dst_in"
-OpName %_21_blend_src_in "_21_blend_src_in"
-OpName %_22_blend_src_out "_22_blend_src_out"
-OpName %_23_blend_dst_out "_23_blend_dst_out"
-OpName %_24_blend_src_atop "_24_blend_src_atop"
-OpName %_25_blend_dst_atop "_25_blend_dst_atop"
-OpName %_26_blend_xor "_26_blend_xor"
-OpName %_27_blend_plus "_27_blend_plus"
-OpName %_28_blend_modulate "_28_blend_modulate"
-OpName %_29_blend_screen "_29_blend_screen"
-OpName %_30_blend_darken "_30_blend_darken"
-OpName %_31_blend_src_over "_31_blend_src_over"
 OpName %_32_result "_32_result"
-OpName %_33_blend_lighten "_33_blend_lighten"
-OpName %_34_blend_src_over "_34_blend_src_over"
 OpName %_35_result "_35_result"
-OpName %_36_blend_color_dodge "_36_blend_color_dodge"
-OpName %_37_blend_color_burn "_37_blend_color_burn"
-OpName %_38_blend_hard_light "_38_blend_hard_light"
-OpName %_39_blend_soft_light "_39_blend_soft_light"
-OpName %_40_blend_difference "_40_blend_difference"
-OpName %_41_blend_exclusion "_41_blend_exclusion"
-OpName %_42_blend_multiply "_42_blend_multiply"
-OpName %_43_blend_hue "_43_blend_hue"
 OpName %_44_alpha "_44_alpha"
 OpName %_45_sda "_45_sda"
 OpName %_46_dsa "_46_dsa"
-OpName %_47_blend_saturation "_47_blend_saturation"
 OpName %_48_alpha "_48_alpha"
 OpName %_49_sda "_49_sda"
 OpName %_50_dsa "_50_dsa"
-OpName %_51_blend_color "_51_blend_color"
 OpName %_52_alpha "_52_alpha"
 OpName %_53_sda "_53_sda"
 OpName %_54_dsa "_54_dsa"
-OpName %_55_blend_luminosity "_55_blend_luminosity"
 OpName %_56_alpha "_56_alpha"
 OpName %_57_sda "_57_sda"
 OpName %_58_dsa "_58_dsa"
@@ -157,123 +120,125 @@
 OpDecorate %166 RelaxedPrecision
 OpDecorate %167 RelaxedPrecision
 OpDecorate %168 RelaxedPrecision
-OpDecorate %171 RelaxedPrecision
-OpDecorate %173 RelaxedPrecision
-OpDecorate %175 RelaxedPrecision
+OpDecorate %170 RelaxedPrecision
+OpDecorate %172 RelaxedPrecision
+OpDecorate %174 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 %186 RelaxedPrecision
+OpDecorate %185 RelaxedPrecision
 OpDecorate %187 RelaxedPrecision
 OpDecorate %189 RelaxedPrecision
+OpDecorate %190 RelaxedPrecision
 OpDecorate %191 RelaxedPrecision
 OpDecorate %192 RelaxedPrecision
-OpDecorate %193 RelaxedPrecision
 OpDecorate %194 RelaxedPrecision
 OpDecorate %196 RelaxedPrecision
+OpDecorate %197 RelaxedPrecision
 OpDecorate %198 RelaxedPrecision
-OpDecorate %199 RelaxedPrecision
-OpDecorate %200 RelaxedPrecision
+OpDecorate %202 RelaxedPrecision
 OpDecorate %204 RelaxedPrecision
-OpDecorate %206 RelaxedPrecision
+OpDecorate %210 RelaxedPrecision
 OpDecorate %212 RelaxedPrecision
 OpDecorate %214 RelaxedPrecision
-OpDecorate %216 RelaxedPrecision
+OpDecorate %215 RelaxedPrecision
 OpDecorate %217 RelaxedPrecision
 OpDecorate %219 RelaxedPrecision
+OpDecorate %220 RelaxedPrecision
 OpDecorate %221 RelaxedPrecision
 OpDecorate %222 RelaxedPrecision
-OpDecorate %223 RelaxedPrecision
 OpDecorate %224 RelaxedPrecision
 OpDecorate %226 RelaxedPrecision
+OpDecorate %227 RelaxedPrecision
 OpDecorate %228 RelaxedPrecision
 OpDecorate %229 RelaxedPrecision
-OpDecorate %230 RelaxedPrecision
-OpDecorate %231 RelaxedPrecision
+OpDecorate %235 RelaxedPrecision
 OpDecorate %237 RelaxedPrecision
 OpDecorate %239 RelaxedPrecision
-OpDecorate %241 RelaxedPrecision
+OpDecorate %240 RelaxedPrecision
 OpDecorate %242 RelaxedPrecision
-OpDecorate %245 RelaxedPrecision
+OpDecorate %244 RelaxedPrecision
+OpDecorate %246 RelaxedPrecision
 OpDecorate %247 RelaxedPrecision
 OpDecorate %249 RelaxedPrecision
-OpDecorate %250 RelaxedPrecision
 OpDecorate %252 RelaxedPrecision
-OpDecorate %253 RelaxedPrecision
 OpDecorate %254 RelaxedPrecision
-OpDecorate %256 RelaxedPrecision
+OpDecorate %255 RelaxedPrecision
+OpDecorate %257 RelaxedPrecision
+OpDecorate %258 RelaxedPrecision
 OpDecorate %259 RelaxedPrecision
-OpDecorate %261 RelaxedPrecision
+OpDecorate %260 RelaxedPrecision
 OpDecorate %262 RelaxedPrecision
 OpDecorate %263 RelaxedPrecision
-OpDecorate %264 RelaxedPrecision
-OpDecorate %266 RelaxedPrecision
+OpDecorate %265 RelaxedPrecision
 OpDecorate %267 RelaxedPrecision
+OpDecorate %268 RelaxedPrecision
 OpDecorate %269 RelaxedPrecision
-OpDecorate %271 RelaxedPrecision
+OpDecorate %270 RelaxedPrecision
 OpDecorate %272 RelaxedPrecision
-OpDecorate %273 RelaxedPrecision
 OpDecorate %274 RelaxedPrecision
+OpDecorate %275 RelaxedPrecision
 OpDecorate %276 RelaxedPrecision
-OpDecorate %278 RelaxedPrecision
-OpDecorate %279 RelaxedPrecision
 OpDecorate %280 RelaxedPrecision
-OpDecorate %284 RelaxedPrecision
-OpDecorate %286 RelaxedPrecision
-OpDecorate %287 RelaxedPrecision
+OpDecorate %282 RelaxedPrecision
+OpDecorate %283 RelaxedPrecision
+OpDecorate %290 RelaxedPrecision
+OpDecorate %292 RelaxedPrecision
+OpDecorate %294 RelaxedPrecision
 OpDecorate %295 RelaxedPrecision
 OpDecorate %297 RelaxedPrecision
 OpDecorate %299 RelaxedPrecision
 OpDecorate %300 RelaxedPrecision
+OpDecorate %301 RelaxedPrecision
 OpDecorate %302 RelaxedPrecision
-OpDecorate %304 RelaxedPrecision
+OpDecorate %303 RelaxedPrecision
 OpDecorate %305 RelaxedPrecision
 OpDecorate %306 RelaxedPrecision
-OpDecorate %307 RelaxedPrecision
 OpDecorate %308 RelaxedPrecision
-OpDecorate %310 RelaxedPrecision
+OpDecorate %309 RelaxedPrecision
 OpDecorate %311 RelaxedPrecision
 OpDecorate %312 RelaxedPrecision
-OpDecorate %314 RelaxedPrecision
+OpDecorate %313 RelaxedPrecision
+OpDecorate %316 RelaxedPrecision
 OpDecorate %315 RelaxedPrecision
-OpDecorate %317 RelaxedPrecision
 OpDecorate %318 RelaxedPrecision
-OpDecorate %319 RelaxedPrecision
-OpDecorate %322 RelaxedPrecision
+OpDecorate %320 RelaxedPrecision
 OpDecorate %321 RelaxedPrecision
+OpDecorate %322 RelaxedPrecision
+OpDecorate %323 RelaxedPrecision
 OpDecorate %324 RelaxedPrecision
 OpDecorate %326 RelaxedPrecision
-OpDecorate %327 RelaxedPrecision
 OpDecorate %328 RelaxedPrecision
 OpDecorate %329 RelaxedPrecision
-OpDecorate %330 RelaxedPrecision
-OpDecorate %332 RelaxedPrecision
-OpDecorate %334 RelaxedPrecision
-OpDecorate %335 RelaxedPrecision
+OpDecorate %336 RelaxedPrecision
+OpDecorate %338 RelaxedPrecision
+OpDecorate %340 RelaxedPrecision
 OpDecorate %342 RelaxedPrecision
-OpDecorate %344 RelaxedPrecision
-OpDecorate %346 RelaxedPrecision
-OpDecorate %348 RelaxedPrecision
+OpDecorate %343 RelaxedPrecision
+OpDecorate %345 RelaxedPrecision
+OpDecorate %347 RelaxedPrecision
 OpDecorate %349 RelaxedPrecision
 OpDecorate %351 RelaxedPrecision
 OpDecorate %353 RelaxedPrecision
-OpDecorate %355 RelaxedPrecision
-OpDecorate %357 RelaxedPrecision
+OpDecorate %354 RelaxedPrecision
+OpDecorate %356 RelaxedPrecision
+OpDecorate %358 RelaxedPrecision
 OpDecorate %359 RelaxedPrecision
-OpDecorate %360 RelaxedPrecision
-OpDecorate %362 RelaxedPrecision
-OpDecorate %365 RelaxedPrecision
+OpDecorate %361 RelaxedPrecision
+OpDecorate %364 RelaxedPrecision
 OpDecorate %366 RelaxedPrecision
 OpDecorate %368 RelaxedPrecision
+OpDecorate %370 RelaxedPrecision
 OpDecorate %371 RelaxedPrecision
+OpDecorate %372 RelaxedPrecision
 OpDecorate %373 RelaxedPrecision
+OpDecorate %374 RelaxedPrecision
 OpDecorate %375 RelaxedPrecision
 OpDecorate %377 RelaxedPrecision
-OpDecorate %378 RelaxedPrecision
 OpDecorate %379 RelaxedPrecision
 OpDecorate %380 RelaxedPrecision
 OpDecorate %381 RelaxedPrecision
@@ -284,13 +249,14 @@
 OpDecorate %388 RelaxedPrecision
 OpDecorate %389 RelaxedPrecision
 OpDecorate %391 RelaxedPrecision
+OpDecorate %392 RelaxedPrecision
 OpDecorate %393 RelaxedPrecision
-OpDecorate %394 RelaxedPrecision
 OpDecorate %395 RelaxedPrecision
-OpDecorate %396 RelaxedPrecision
+OpDecorate %397 RelaxedPrecision
 OpDecorate %398 RelaxedPrecision
 OpDecorate %399 RelaxedPrecision
 OpDecorate %400 RelaxedPrecision
+OpDecorate %401 RelaxedPrecision
 OpDecorate %402 RelaxedPrecision
 OpDecorate %404 RelaxedPrecision
 OpDecorate %405 RelaxedPrecision
@@ -299,407 +265,367 @@
 OpDecorate %408 RelaxedPrecision
 OpDecorate %409 RelaxedPrecision
 OpDecorate %411 RelaxedPrecision
-OpDecorate %412 RelaxedPrecision
 OpDecorate %413 RelaxedPrecision
-OpDecorate %414 RelaxedPrecision
 OpDecorate %415 RelaxedPrecision
 OpDecorate %416 RelaxedPrecision
 OpDecorate %417 RelaxedPrecision
+OpDecorate %418 RelaxedPrecision
 OpDecorate %419 RelaxedPrecision
 OpDecorate %421 RelaxedPrecision
 OpDecorate %423 RelaxedPrecision
-OpDecorate %424 RelaxedPrecision
 OpDecorate %425 RelaxedPrecision
-OpDecorate %426 RelaxedPrecision
 OpDecorate %427 RelaxedPrecision
-OpDecorate %429 RelaxedPrecision
-OpDecorate %431 RelaxedPrecision
+OpDecorate %428 RelaxedPrecision
+OpDecorate %430 RelaxedPrecision
+OpDecorate %432 RelaxedPrecision
 OpDecorate %433 RelaxedPrecision
+OpDecorate %434 RelaxedPrecision
 OpDecorate %435 RelaxedPrecision
 OpDecorate %436 RelaxedPrecision
 OpDecorate %438 RelaxedPrecision
 OpDecorate %440 RelaxedPrecision
 OpDecorate %441 RelaxedPrecision
-OpDecorate %442 RelaxedPrecision
-OpDecorate %443 RelaxedPrecision
-OpDecorate %444 RelaxedPrecision
-OpDecorate %446 RelaxedPrecision
-OpDecorate %448 RelaxedPrecision
-OpDecorate %449 RelaxedPrecision
-OpDecorate %462 RelaxedPrecision
-OpDecorate %464 RelaxedPrecision
-OpDecorate %468 RelaxedPrecision
-OpDecorate %470 RelaxedPrecision
+OpDecorate %454 RelaxedPrecision
+OpDecorate %456 RelaxedPrecision
+OpDecorate %459 RelaxedPrecision
+OpDecorate %460 RelaxedPrecision
+OpDecorate %461 RelaxedPrecision
+OpDecorate %467 RelaxedPrecision
+OpDecorate %469 RelaxedPrecision
 OpDecorate %471 RelaxedPrecision
-OpDecorate %472 RelaxedPrecision
-OpDecorate %473 RelaxedPrecision
-OpDecorate %479 RelaxedPrecision
-OpDecorate %481 RelaxedPrecision
+OpDecorate %476 RelaxedPrecision
+OpDecorate %478 RelaxedPrecision
+OpDecorate %480 RelaxedPrecision
 OpDecorate %483 RelaxedPrecision
+OpDecorate %487 RelaxedPrecision
 OpDecorate %488 RelaxedPrecision
-OpDecorate %490 RelaxedPrecision
-OpDecorate %492 RelaxedPrecision
+OpDecorate %493 RelaxedPrecision
+OpDecorate %494 RelaxedPrecision
 OpDecorate %495 RelaxedPrecision
-OpDecorate %499 RelaxedPrecision
+OpDecorate %498 RelaxedPrecision
 OpDecorate %500 RelaxedPrecision
-OpDecorate %505 RelaxedPrecision
-OpDecorate %506 RelaxedPrecision
+OpDecorate %501 RelaxedPrecision
+OpDecorate %502 RelaxedPrecision
 OpDecorate %507 RelaxedPrecision
-OpDecorate %510 RelaxedPrecision
+OpDecorate %508 RelaxedPrecision
 OpDecorate %512 RelaxedPrecision
 OpDecorate %513 RelaxedPrecision
-OpDecorate %514 RelaxedPrecision
-OpDecorate %519 RelaxedPrecision
 OpDecorate %520 RelaxedPrecision
-OpDecorate %524 RelaxedPrecision
+OpDecorate %521 RelaxedPrecision
+OpDecorate %522 RelaxedPrecision
 OpDecorate %525 RelaxedPrecision
-OpDecorate %532 RelaxedPrecision
-OpDecorate %533 RelaxedPrecision
-OpDecorate %534 RelaxedPrecision
+OpDecorate %526 RelaxedPrecision
+OpDecorate %527 RelaxedPrecision
+OpDecorate %529 RelaxedPrecision
+OpDecorate %530 RelaxedPrecision
+OpDecorate %531 RelaxedPrecision
+OpDecorate %536 RelaxedPrecision
 OpDecorate %537 RelaxedPrecision
-OpDecorate %538 RelaxedPrecision
-OpDecorate %539 RelaxedPrecision
-OpDecorate %541 RelaxedPrecision
 OpDecorate %542 RelaxedPrecision
-OpDecorate %543 RelaxedPrecision
-OpDecorate %548 RelaxedPrecision
-OpDecorate %549 RelaxedPrecision
+OpDecorate %544 RelaxedPrecision
+OpDecorate %551 RelaxedPrecision
+OpDecorate %552 RelaxedPrecision
 OpDecorate %554 RelaxedPrecision
 OpDecorate %556 RelaxedPrecision
+OpDecorate %557 RelaxedPrecision
+OpDecorate %558 RelaxedPrecision
+OpDecorate %560 RelaxedPrecision
+OpDecorate %562 RelaxedPrecision
 OpDecorate %563 RelaxedPrecision
 OpDecorate %564 RelaxedPrecision
-OpDecorate %566 RelaxedPrecision
-OpDecorate %568 RelaxedPrecision
-OpDecorate %569 RelaxedPrecision
-OpDecorate %570 RelaxedPrecision
-OpDecorate %572 RelaxedPrecision
-OpDecorate %574 RelaxedPrecision
+OpDecorate %567 RelaxedPrecision
 OpDecorate %575 RelaxedPrecision
-OpDecorate %576 RelaxedPrecision
+OpDecorate %577 RelaxedPrecision
 OpDecorate %579 RelaxedPrecision
+OpDecorate %583 RelaxedPrecision
+OpDecorate %585 RelaxedPrecision
 OpDecorate %587 RelaxedPrecision
 OpDecorate %589 RelaxedPrecision
-OpDecorate %591 RelaxedPrecision
-OpDecorate %595 RelaxedPrecision
-OpDecorate %597 RelaxedPrecision
-OpDecorate %599 RelaxedPrecision
-OpDecorate %601 RelaxedPrecision
-OpDecorate %603 RelaxedPrecision
-OpDecorate %604 RelaxedPrecision
+OpDecorate %590 RelaxedPrecision
+OpDecorate %592 RelaxedPrecision
+OpDecorate %598 RelaxedPrecision
+OpDecorate %600 RelaxedPrecision
 OpDecorate %606 RelaxedPrecision
-OpDecorate %612 RelaxedPrecision
-OpDecorate %614 RelaxedPrecision
-OpDecorate %620 RelaxedPrecision
+OpDecorate %608 RelaxedPrecision
+OpDecorate %611 RelaxedPrecision
+OpDecorate %613 RelaxedPrecision
+OpDecorate %619 RelaxedPrecision
 OpDecorate %622 RelaxedPrecision
-OpDecorate %625 RelaxedPrecision
-OpDecorate %627 RelaxedPrecision
+OpDecorate %626 RelaxedPrecision
+OpDecorate %629 RelaxedPrecision
 OpDecorate %633 RelaxedPrecision
-OpDecorate %636 RelaxedPrecision
-OpDecorate %640 RelaxedPrecision
-OpDecorate %643 RelaxedPrecision
-OpDecorate %647 RelaxedPrecision
-OpDecorate %649 RelaxedPrecision
-OpDecorate %655 RelaxedPrecision
-OpDecorate %658 RelaxedPrecision
-OpDecorate %662 RelaxedPrecision
-OpDecorate %664 RelaxedPrecision
-OpDecorate %670 RelaxedPrecision
-OpDecorate %673 RelaxedPrecision
+OpDecorate %635 RelaxedPrecision
+OpDecorate %641 RelaxedPrecision
+OpDecorate %644 RelaxedPrecision
+OpDecorate %648 RelaxedPrecision
+OpDecorate %650 RelaxedPrecision
+OpDecorate %656 RelaxedPrecision
+OpDecorate %659 RelaxedPrecision
+OpDecorate %663 RelaxedPrecision
+OpDecorate %666 RelaxedPrecision
 OpDecorate %677 RelaxedPrecision
-OpDecorate %680 RelaxedPrecision
-OpDecorate %691 RelaxedPrecision
+OpDecorate %709 RelaxedPrecision
+OpDecorate %710 RelaxedPrecision
+OpDecorate %711 RelaxedPrecision
+OpDecorate %712 RelaxedPrecision
+OpDecorate %714 RelaxedPrecision
+OpDecorate %715 RelaxedPrecision
+OpDecorate %717 RelaxedPrecision
+OpDecorate %718 RelaxedPrecision
+OpDecorate %720 RelaxedPrecision
+OpDecorate %721 RelaxedPrecision
+OpDecorate %723 RelaxedPrecision
 OpDecorate %724 RelaxedPrecision
 OpDecorate %725 RelaxedPrecision
-OpDecorate %727 RelaxedPrecision
-OpDecorate %728 RelaxedPrecision
+OpDecorate %726 RelaxedPrecision
+OpDecorate %729 RelaxedPrecision
 OpDecorate %730 RelaxedPrecision
-OpDecorate %731 RelaxedPrecision
 OpDecorate %733 RelaxedPrecision
-OpDecorate %734 RelaxedPrecision
+OpDecorate %735 RelaxedPrecision
 OpDecorate %736 RelaxedPrecision
-OpDecorate %737 RelaxedPrecision
-OpDecorate %739 RelaxedPrecision
+OpDecorate %738 RelaxedPrecision
+OpDecorate %740 RelaxedPrecision
 OpDecorate %741 RelaxedPrecision
-OpDecorate %742 RelaxedPrecision
-OpDecorate %744 RelaxedPrecision
+OpDecorate %743 RelaxedPrecision
 OpDecorate %745 RelaxedPrecision
-OpDecorate %746 RelaxedPrecision
-OpDecorate %748 RelaxedPrecision
+OpDecorate %747 RelaxedPrecision
 OpDecorate %749 RelaxedPrecision
+OpDecorate %750 RelaxedPrecision
 OpDecorate %752 RelaxedPrecision
+OpDecorate %753 RelaxedPrecision
 OpDecorate %755 RelaxedPrecision
 OpDecorate %756 RelaxedPrecision
-OpDecorate %759 RelaxedPrecision
+OpDecorate %758 RelaxedPrecision
 OpDecorate %760 RelaxedPrecision
 OpDecorate %762 RelaxedPrecision
-OpDecorate %764 RelaxedPrecision
+OpDecorate %763 RelaxedPrecision
 OpDecorate %765 RelaxedPrecision
-OpDecorate %767 RelaxedPrecision
-OpDecorate %769 RelaxedPrecision
+OpDecorate %766 RelaxedPrecision
+OpDecorate %768 RelaxedPrecision
+OpDecorate %770 RelaxedPrecision
 OpDecorate %771 RelaxedPrecision
-OpDecorate %772 RelaxedPrecision
-OpDecorate %774 RelaxedPrecision
+OpDecorate %773 RelaxedPrecision
+OpDecorate %775 RelaxedPrecision
 OpDecorate %776 RelaxedPrecision
+OpDecorate %777 RelaxedPrecision
 OpDecorate %778 RelaxedPrecision
+OpDecorate %779 RelaxedPrecision
 OpDecorate %780 RelaxedPrecision
+OpDecorate %781 RelaxedPrecision
 OpDecorate %782 RelaxedPrecision
 OpDecorate %783 RelaxedPrecision
-OpDecorate %785 RelaxedPrecision
 OpDecorate %786 RelaxedPrecision
+OpDecorate %787 RelaxedPrecision
 OpDecorate %788 RelaxedPrecision
-OpDecorate %790 RelaxedPrecision
+OpDecorate %789 RelaxedPrecision
 OpDecorate %791 RelaxedPrecision
-OpDecorate %793 RelaxedPrecision
 OpDecorate %795 RelaxedPrecision
-OpDecorate %797 RelaxedPrecision
+OpDecorate %796 RelaxedPrecision
 OpDecorate %798 RelaxedPrecision
-OpDecorate %800 RelaxedPrecision
-OpDecorate %802 RelaxedPrecision
+OpDecorate %799 RelaxedPrecision
+OpDecorate %801 RelaxedPrecision
 OpDecorate %803 RelaxedPrecision
 OpDecorate %805 RelaxedPrecision
 OpDecorate %807 RelaxedPrecision
 OpDecorate %808 RelaxedPrecision
-OpDecorate %810 RelaxedPrecision
 OpDecorate %811 RelaxedPrecision
-OpDecorate %814 RelaxedPrecision
+OpDecorate %813 RelaxedPrecision
 OpDecorate %815 RelaxedPrecision
 OpDecorate %816 RelaxedPrecision
-OpDecorate %817 RelaxedPrecision
 OpDecorate %818 RelaxedPrecision
-OpDecorate %820 RelaxedPrecision
+OpDecorate %819 RelaxedPrecision
 OpDecorate %821 RelaxedPrecision
 OpDecorate %822 RelaxedPrecision
-OpDecorate %823 RelaxedPrecision
-OpDecorate %825 RelaxedPrecision
+OpDecorate %824 RelaxedPrecision
 OpDecorate %826 RelaxedPrecision
-OpDecorate %829 RelaxedPrecision
+OpDecorate %828 RelaxedPrecision
 OpDecorate %830 RelaxedPrecision
 OpDecorate %831 RelaxedPrecision
-OpDecorate %832 RelaxedPrecision
-OpDecorate %833 RelaxedPrecision
-OpDecorate %835 RelaxedPrecision
+OpDecorate %834 RelaxedPrecision
+OpDecorate %836 RelaxedPrecision
+OpDecorate %838 RelaxedPrecision
+OpDecorate %839 RelaxedPrecision
 OpDecorate %840 RelaxedPrecision
-OpDecorate %841 RelaxedPrecision
 OpDecorate %843 RelaxedPrecision
-OpDecorate %844 RelaxedPrecision
-OpDecorate %846 RelaxedPrecision
-OpDecorate %848 RelaxedPrecision
+OpDecorate %847 RelaxedPrecision
 OpDecorate %850 RelaxedPrecision
-OpDecorate %852 RelaxedPrecision
 OpDecorate %854 RelaxedPrecision
-OpDecorate %855 RelaxedPrecision
-OpDecorate %858 RelaxedPrecision
-OpDecorate %860 RelaxedPrecision
-OpDecorate %862 RelaxedPrecision
+OpDecorate %857 RelaxedPrecision
+OpDecorate %861 RelaxedPrecision
 OpDecorate %863 RelaxedPrecision
-OpDecorate %864 RelaxedPrecision
-OpDecorate %867 RelaxedPrecision
+OpDecorate %865 RelaxedPrecision
+OpDecorate %866 RelaxedPrecision
 OpDecorate %868 RelaxedPrecision
-OpDecorate %870 RelaxedPrecision
+OpDecorate %869 RelaxedPrecision
 OpDecorate %871 RelaxedPrecision
-OpDecorate %873 RelaxedPrecision
-OpDecorate %875 RelaxedPrecision
-OpDecorate %877 RelaxedPrecision
-OpDecorate %879 RelaxedPrecision
+OpDecorate %874 RelaxedPrecision
+OpDecorate %878 RelaxedPrecision
 OpDecorate %881 RelaxedPrecision
-OpDecorate %882 RelaxedPrecision
 OpDecorate %885 RelaxedPrecision
-OpDecorate %887 RelaxedPrecision
-OpDecorate %889 RelaxedPrecision
-OpDecorate %890 RelaxedPrecision
-OpDecorate %891 RelaxedPrecision
-OpDecorate %893 RelaxedPrecision
+OpDecorate %888 RelaxedPrecision
+OpDecorate %892 RelaxedPrecision
+OpDecorate %894 RelaxedPrecision
 OpDecorate %896 RelaxedPrecision
+OpDecorate %897 RelaxedPrecision
+OpDecorate %899 RelaxedPrecision
 OpDecorate %900 RelaxedPrecision
-OpDecorate %903 RelaxedPrecision
+OpDecorate %902 RelaxedPrecision
+OpDecorate %904 RelaxedPrecision
 OpDecorate %907 RelaxedPrecision
-OpDecorate %910 RelaxedPrecision
 OpDecorate %914 RelaxedPrecision
-OpDecorate %916 RelaxedPrecision
+OpDecorate %915 RelaxedPrecision
 OpDecorate %918 RelaxedPrecision
-OpDecorate %919 RelaxedPrecision
-OpDecorate %921 RelaxedPrecision
 OpDecorate %922 RelaxedPrecision
-OpDecorate %924 RelaxedPrecision
-OpDecorate %926 RelaxedPrecision
+OpDecorate %925 RelaxedPrecision
 OpDecorate %929 RelaxedPrecision
-OpDecorate %933 RelaxedPrecision
+OpDecorate %932 RelaxedPrecision
 OpDecorate %936 RelaxedPrecision
+OpDecorate %938 RelaxedPrecision
 OpDecorate %940 RelaxedPrecision
+OpDecorate %941 RelaxedPrecision
 OpDecorate %943 RelaxedPrecision
+OpDecorate %944 RelaxedPrecision
+OpDecorate %946 RelaxedPrecision
 OpDecorate %947 RelaxedPrecision
 OpDecorate %949 RelaxedPrecision
 OpDecorate %951 RelaxedPrecision
-OpDecorate %952 RelaxedPrecision
-OpDecorate %954 RelaxedPrecision
+OpDecorate %953 RelaxedPrecision
 OpDecorate %955 RelaxedPrecision
-OpDecorate %957 RelaxedPrecision
-OpDecorate %959 RelaxedPrecision
-OpDecorate %961 RelaxedPrecision
+OpDecorate %958 RelaxedPrecision
+OpDecorate %960 RelaxedPrecision
 OpDecorate %964 RelaxedPrecision
-OpDecorate %966 RelaxedPrecision
+OpDecorate %968 RelaxedPrecision
+OpDecorate %970 RelaxedPrecision
+OpDecorate %972 RelaxedPrecision
 OpDecorate %973 RelaxedPrecision
-OpDecorate %974 RelaxedPrecision
-OpDecorate %977 RelaxedPrecision
-OpDecorate %981 RelaxedPrecision
-OpDecorate %984 RelaxedPrecision
+OpDecorate %975 RelaxedPrecision
+OpDecorate %976 RelaxedPrecision
+OpDecorate %978 RelaxedPrecision
+OpDecorate %980 RelaxedPrecision
+OpDecorate %982 RelaxedPrecision
+OpDecorate %983 RelaxedPrecision
+OpDecorate %986 RelaxedPrecision
 OpDecorate %988 RelaxedPrecision
-OpDecorate %991 RelaxedPrecision
+OpDecorate %989 RelaxedPrecision
+OpDecorate %993 RelaxedPrecision
 OpDecorate %995 RelaxedPrecision
 OpDecorate %997 RelaxedPrecision
-OpDecorate %999 RelaxedPrecision
+OpDecorate %998 RelaxedPrecision
 OpDecorate %1000 RelaxedPrecision
-OpDecorate %1002 RelaxedPrecision
+OpDecorate %1001 RelaxedPrecision
 OpDecorate %1003 RelaxedPrecision
 OpDecorate %1005 RelaxedPrecision
 OpDecorate %1006 RelaxedPrecision
-OpDecorate %1008 RelaxedPrecision
-OpDecorate %1010 RelaxedPrecision
+OpDecorate %1009 RelaxedPrecision
+OpDecorate %1011 RelaxedPrecision
 OpDecorate %1012 RelaxedPrecision
-OpDecorate %1014 RelaxedPrecision
+OpDecorate %1015 RelaxedPrecision
 OpDecorate %1016 RelaxedPrecision
-OpDecorate %1019 RelaxedPrecision
+OpDecorate %1018 RelaxedPrecision
+OpDecorate %1020 RelaxedPrecision
 OpDecorate %1021 RelaxedPrecision
 OpDecorate %1025 RelaxedPrecision
+OpDecorate %1027 RelaxedPrecision
 OpDecorate %1029 RelaxedPrecision
-OpDecorate %1031 RelaxedPrecision
+OpDecorate %1030 RelaxedPrecision
+OpDecorate %1032 RelaxedPrecision
 OpDecorate %1033 RelaxedPrecision
-OpDecorate %1034 RelaxedPrecision
 OpDecorate %1036 RelaxedPrecision
-OpDecorate %1037 RelaxedPrecision
-OpDecorate %1039 RelaxedPrecision
-OpDecorate %1041 RelaxedPrecision
-OpDecorate %1043 RelaxedPrecision
-OpDecorate %1045 RelaxedPrecision
-OpDecorate %1046 RelaxedPrecision
-OpDecorate %1049 RelaxedPrecision
-OpDecorate %1051 RelaxedPrecision
-OpDecorate %1052 RelaxedPrecision
-OpDecorate %1056 RelaxedPrecision
-OpDecorate %1058 RelaxedPrecision
-OpDecorate %1060 RelaxedPrecision
+OpDecorate %1038 RelaxedPrecision
+OpDecorate %1040 RelaxedPrecision
+OpDecorate %1042 RelaxedPrecision
+OpDecorate %1044 RelaxedPrecision
+OpDecorate %1048 RelaxedPrecision
+OpDecorate %1050 RelaxedPrecision
+OpDecorate %1053 RelaxedPrecision
+OpDecorate %1055 RelaxedPrecision
+OpDecorate %1059 RelaxedPrecision
 OpDecorate %1061 RelaxedPrecision
-OpDecorate %1063 RelaxedPrecision
 OpDecorate %1064 RelaxedPrecision
 OpDecorate %1066 RelaxedPrecision
+OpDecorate %1067 RelaxedPrecision
 OpDecorate %1068 RelaxedPrecision
-OpDecorate %1070 RelaxedPrecision
+OpDecorate %1069 RelaxedPrecision
 OpDecorate %1071 RelaxedPrecision
-OpDecorate %1074 RelaxedPrecision
-OpDecorate %1076 RelaxedPrecision
+OpDecorate %1072 RelaxedPrecision
+OpDecorate %1073 RelaxedPrecision
 OpDecorate %1077 RelaxedPrecision
-OpDecorate %1080 RelaxedPrecision
+OpDecorate %1079 RelaxedPrecision
 OpDecorate %1081 RelaxedPrecision
+OpDecorate %1082 RelaxedPrecision
 OpDecorate %1083 RelaxedPrecision
-OpDecorate %1085 RelaxedPrecision
 OpDecorate %1086 RelaxedPrecision
+OpDecorate %1088 RelaxedPrecision
 OpDecorate %1090 RelaxedPrecision
 OpDecorate %1092 RelaxedPrecision
 OpDecorate %1094 RelaxedPrecision
-OpDecorate %1095 RelaxedPrecision
-OpDecorate %1097 RelaxedPrecision
 OpDecorate %1098 RelaxedPrecision
 OpDecorate %1100 RelaxedPrecision
 OpDecorate %1103 RelaxedPrecision
 OpDecorate %1105 RelaxedPrecision
-OpDecorate %1107 RelaxedPrecision
 OpDecorate %1109 RelaxedPrecision
 OpDecorate %1111 RelaxedPrecision
-OpDecorate %1115 RelaxedPrecision
+OpDecorate %1114 RelaxedPrecision
+OpDecorate %1116 RelaxedPrecision
 OpDecorate %1117 RelaxedPrecision
-OpDecorate %1120 RelaxedPrecision
+OpDecorate %1118 RelaxedPrecision
+OpDecorate %1119 RelaxedPrecision
+OpDecorate %1121 RelaxedPrecision
 OpDecorate %1122 RelaxedPrecision
-OpDecorate %1126 RelaxedPrecision
-OpDecorate %1128 RelaxedPrecision
+OpDecorate %1123 RelaxedPrecision
+OpDecorate %1127 RelaxedPrecision
+OpDecorate %1129 RelaxedPrecision
 OpDecorate %1131 RelaxedPrecision
+OpDecorate %1132 RelaxedPrecision
 OpDecorate %1133 RelaxedPrecision
-OpDecorate %1134 RelaxedPrecision
-OpDecorate %1135 RelaxedPrecision
 OpDecorate %1136 RelaxedPrecision
 OpDecorate %1138 RelaxedPrecision
-OpDecorate %1139 RelaxedPrecision
 OpDecorate %1140 RelaxedPrecision
+OpDecorate %1142 RelaxedPrecision
 OpDecorate %1144 RelaxedPrecision
-OpDecorate %1146 RelaxedPrecision
 OpDecorate %1148 RelaxedPrecision
-OpDecorate %1149 RelaxedPrecision
 OpDecorate %1150 RelaxedPrecision
-OpDecorate %1152 RelaxedPrecision
+OpDecorate %1153 RelaxedPrecision
 OpDecorate %1155 RelaxedPrecision
 OpDecorate %1157 RelaxedPrecision
-OpDecorate %1159 RelaxedPrecision
-OpDecorate %1161 RelaxedPrecision
+OpDecorate %1160 RelaxedPrecision
+OpDecorate %1162 RelaxedPrecision
 OpDecorate %1163 RelaxedPrecision
+OpDecorate %1164 RelaxedPrecision
+OpDecorate %1165 RelaxedPrecision
 OpDecorate %1167 RelaxedPrecision
+OpDecorate %1168 RelaxedPrecision
 OpDecorate %1169 RelaxedPrecision
-OpDecorate %1172 RelaxedPrecision
-OpDecorate %1174 RelaxedPrecision
+OpDecorate %1173 RelaxedPrecision
+OpDecorate %1175 RelaxedPrecision
+OpDecorate %1177 RelaxedPrecision
 OpDecorate %1178 RelaxedPrecision
-OpDecorate %1180 RelaxedPrecision
-OpDecorate %1183 RelaxedPrecision
-OpDecorate %1185 RelaxedPrecision
+OpDecorate %1179 RelaxedPrecision
+OpDecorate %1182 RelaxedPrecision
+OpDecorate %1184 RelaxedPrecision
 OpDecorate %1186 RelaxedPrecision
-OpDecorate %1187 RelaxedPrecision
 OpDecorate %1188 RelaxedPrecision
 OpDecorate %1190 RelaxedPrecision
-OpDecorate %1191 RelaxedPrecision
-OpDecorate %1192 RelaxedPrecision
+OpDecorate %1194 RelaxedPrecision
 OpDecorate %1196 RelaxedPrecision
-OpDecorate %1198 RelaxedPrecision
-OpDecorate %1200 RelaxedPrecision
+OpDecorate %1199 RelaxedPrecision
 OpDecorate %1201 RelaxedPrecision
-OpDecorate %1202 RelaxedPrecision
-OpDecorate %1204 RelaxedPrecision
-OpDecorate %1207 RelaxedPrecision
+OpDecorate %1203 RelaxedPrecision
+OpDecorate %1206 RelaxedPrecision
+OpDecorate %1208 RelaxedPrecision
 OpDecorate %1209 RelaxedPrecision
+OpDecorate %1210 RelaxedPrecision
 OpDecorate %1211 RelaxedPrecision
 OpDecorate %1213 RelaxedPrecision
+OpDecorate %1214 RelaxedPrecision
 OpDecorate %1215 RelaxedPrecision
 OpDecorate %1219 RelaxedPrecision
 OpDecorate %1221 RelaxedPrecision
+OpDecorate %1223 RelaxedPrecision
 OpDecorate %1224 RelaxedPrecision
-OpDecorate %1226 RelaxedPrecision
-OpDecorate %1228 RelaxedPrecision
-OpDecorate %1231 RelaxedPrecision
+OpDecorate %1225 RelaxedPrecision
 OpDecorate %1233 RelaxedPrecision
-OpDecorate %1234 RelaxedPrecision
 OpDecorate %1235 RelaxedPrecision
-OpDecorate %1236 RelaxedPrecision
-OpDecorate %1238 RelaxedPrecision
-OpDecorate %1239 RelaxedPrecision
-OpDecorate %1240 RelaxedPrecision
-OpDecorate %1244 RelaxedPrecision
-OpDecorate %1246 RelaxedPrecision
-OpDecorate %1248 RelaxedPrecision
-OpDecorate %1249 RelaxedPrecision
-OpDecorate %1250 RelaxedPrecision
-OpDecorate %1252 RelaxedPrecision
-OpDecorate %1255 RelaxedPrecision
-OpDecorate %1257 RelaxedPrecision
-OpDecorate %1259 RelaxedPrecision
-OpDecorate %1261 RelaxedPrecision
-OpDecorate %1263 RelaxedPrecision
-OpDecorate %1267 RelaxedPrecision
-OpDecorate %1269 RelaxedPrecision
-OpDecorate %1272 RelaxedPrecision
-OpDecorate %1274 RelaxedPrecision
-OpDecorate %1276 RelaxedPrecision
-OpDecorate %1279 RelaxedPrecision
-OpDecorate %1281 RelaxedPrecision
-OpDecorate %1282 RelaxedPrecision
-OpDecorate %1283 RelaxedPrecision
-OpDecorate %1284 RelaxedPrecision
-OpDecorate %1286 RelaxedPrecision
-OpDecorate %1287 RelaxedPrecision
-OpDecorate %1288 RelaxedPrecision
-OpDecorate %1292 RelaxedPrecision
-OpDecorate %1294 RelaxedPrecision
-OpDecorate %1296 RelaxedPrecision
-OpDecorate %1297 RelaxedPrecision
-OpDecorate %1298 RelaxedPrecision
-OpDecorate %1300 RelaxedPrecision
-OpDecorate %1307 RelaxedPrecision
-OpDecorate %1309 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -726,23 +652,23 @@
 %float_12 = OpConstant %float 12
 %float_16 = OpConstant %float 16
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-%450 = OpTypeFunction %v3float %_ptr_Function_v3float %_ptr_Function_float %_ptr_Function_v3float
+%442 = OpTypeFunction %v3float %_ptr_Function_v3float %_ptr_Function_float %_ptr_Function_v3float
 %float_0_300000012 = OpConstant %float 0.300000012
 %float_0_589999974 = OpConstant %float 0.589999974
 %float_0_109999999 = OpConstant %float 0.109999999
+%450 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
 %458 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
-%467 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
 %false = OpConstantFalse %bool
-%550 = OpTypeFunction %v3float %_ptr_Function_v3float %_ptr_Function_float
-%578 = OpConstantComposite %v3float %float_0 %float_0 %float_0
-%580 = OpTypeFunction %v3float %_ptr_Function_v3float %_ptr_Function_v3float
+%538 = OpTypeFunction %v3float %_ptr_Function_v3float %_ptr_Function_float
+%566 = OpConstantComposite %v3float %float_0 %float_0 %float_0
+%568 = OpTypeFunction %v3float %_ptr_Function_v3float %_ptr_Function_v3float
 %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
-%685 = OpTypeFunction %v4float %_ptr_Function_int %_ptr_Function_v4float %_ptr_Function_v4float
-%722 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-%1301 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+%671 = OpTypeFunction %v4float %_ptr_Function_int %_ptr_Function_v4float %_ptr_Function_v4float
+%708 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+%1227 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
 %void = OpTypeVoid
-%1303 = OpTypeFunction %void
+%1229 = OpTypeFunction %void
 %int_13 = OpConstant %int 13
 %_blend_overlay_component = OpFunction %float None %23
 %25 = OpFunctionParameter %_ptr_Function_v2float
@@ -861,7 +787,6 @@
 %124 = OpFunctionParameter %_ptr_Function_v2float
 %125 = OpLabel
 %delta = OpVariable %_ptr_Function_float Function
-%_3_guarded_divide = OpVariable %_ptr_Function_float Function
 %_4_n = OpVariable %_ptr_Function_float Function
 %126 = OpLoad %v2float %124
 %127 = OpCompositeExtract %float %126 0
@@ -909,1364 +834,1254 @@
 %168 = OpFAdd %float %161 %167
 OpReturnValue %168
 %148 = OpLabel
-%171 = OpLoad %v2float %124
-%172 = OpCompositeExtract %float %171 0
-%173 = OpLoad %v2float %123
-%174 = OpCompositeExtract %float %173 1
-%175 = OpFMul %float %172 %174
-OpStore %_4_n %175
-%176 = OpLoad %float %_4_n
-%177 = OpLoad %float %delta
-%178 = OpFDiv %float %176 %177
-OpStore %_3_guarded_divide %178
-%180 = OpLoad %v2float %124
-%181 = OpCompositeExtract %float %180 1
-%182 = OpLoad %float %_3_guarded_divide
-%179 = OpExtInst %float %1 FMin %181 %182
-OpStore %delta %179
-%183 = OpLoad %float %delta
-%184 = OpLoad %v2float %123
-%185 = OpCompositeExtract %float %184 1
-%186 = OpFMul %float %183 %185
-%187 = OpLoad %v2float %123
-%188 = OpCompositeExtract %float %187 0
-%189 = OpLoad %v2float %124
-%190 = OpCompositeExtract %float %189 1
-%191 = OpFSub %float %float_1 %190
-%192 = OpFMul %float %188 %191
-%193 = OpFAdd %float %186 %192
-%194 = OpLoad %v2float %124
-%195 = OpCompositeExtract %float %194 0
-%196 = OpLoad %v2float %123
-%197 = OpCompositeExtract %float %196 1
-%198 = OpFSub %float %float_1 %197
-%199 = OpFMul %float %195 %198
-%200 = OpFAdd %float %193 %199
-OpReturnValue %200
+%170 = OpLoad %v2float %124
+%171 = OpCompositeExtract %float %170 0
+%172 = OpLoad %v2float %123
+%173 = OpCompositeExtract %float %172 1
+%174 = OpFMul %float %171 %173
+OpStore %_4_n %174
+%176 = OpLoad %v2float %124
+%177 = OpCompositeExtract %float %176 1
+%178 = OpLoad %float %_4_n
+%179 = OpLoad %float %delta
+%180 = OpFDiv %float %178 %179
+%175 = OpExtInst %float %1 FMin %177 %180
+OpStore %delta %175
+%181 = OpLoad %float %delta
+%182 = OpLoad %v2float %123
+%183 = OpCompositeExtract %float %182 1
+%184 = OpFMul %float %181 %183
+%185 = OpLoad %v2float %123
+%186 = OpCompositeExtract %float %185 0
+%187 = OpLoad %v2float %124
+%188 = OpCompositeExtract %float %187 1
+%189 = OpFSub %float %float_1 %188
+%190 = OpFMul %float %186 %189
+%191 = OpFAdd %float %184 %190
+%192 = OpLoad %v2float %124
+%193 = OpCompositeExtract %float %192 0
+%194 = OpLoad %v2float %123
+%195 = OpCompositeExtract %float %194 1
+%196 = OpFSub %float %float_1 %195
+%197 = OpFMul %float %193 %196
+%198 = OpFAdd %float %191 %197
+OpReturnValue %198
 %149 = OpLabel
 OpBranch %132
 %132 = OpLabel
 OpUnreachable
 OpFunctionEnd
 %_color_burn_component = OpFunction %float None %23
-%201 = OpFunctionParameter %_ptr_Function_v2float
-%202 = OpFunctionParameter %_ptr_Function_v2float
-%203 = OpLabel
-%_5_guarded_divide = OpVariable %_ptr_Function_float Function
+%199 = OpFunctionParameter %_ptr_Function_v2float
+%200 = OpFunctionParameter %_ptr_Function_v2float
+%201 = OpLabel
 %_6_n = OpVariable %_ptr_Function_float Function
 %delta_0 = OpVariable %_ptr_Function_float Function
-%204 = OpLoad %v2float %202
-%205 = OpCompositeExtract %float %204 1
-%206 = OpLoad %v2float %202
-%207 = OpCompositeExtract %float %206 0
-%208 = OpFOrdEqual %bool %205 %207
-OpSelectionMerge %211 None
-OpBranchConditional %208 %209 %210
-%209 = OpLabel
-%212 = OpLoad %v2float %201
+%202 = OpLoad %v2float %200
+%203 = OpCompositeExtract %float %202 1
+%204 = OpLoad %v2float %200
+%205 = OpCompositeExtract %float %204 0
+%206 = OpFOrdEqual %bool %203 %205
+OpSelectionMerge %209 None
+OpBranchConditional %206 %207 %208
+%207 = OpLabel
+%210 = OpLoad %v2float %199
+%211 = OpCompositeExtract %float %210 1
+%212 = OpLoad %v2float %200
 %213 = OpCompositeExtract %float %212 1
-%214 = OpLoad %v2float %202
-%215 = OpCompositeExtract %float %214 1
-%216 = OpFMul %float %213 %215
-%217 = OpLoad %v2float %201
-%218 = OpCompositeExtract %float %217 0
-%219 = OpLoad %v2float %202
-%220 = OpCompositeExtract %float %219 1
-%221 = OpFSub %float %float_1 %220
-%222 = OpFMul %float %218 %221
-%223 = OpFAdd %float %216 %222
-%224 = OpLoad %v2float %202
-%225 = OpCompositeExtract %float %224 0
-%226 = OpLoad %v2float %201
-%227 = OpCompositeExtract %float %226 1
-%228 = OpFSub %float %float_1 %227
-%229 = OpFMul %float %225 %228
-%230 = OpFAdd %float %223 %229
-OpReturnValue %230
-%210 = OpLabel
-%231 = OpLoad %v2float %201
-%232 = OpCompositeExtract %float %231 0
-%233 = OpFOrdEqual %bool %232 %float_0
-OpSelectionMerge %236 None
-OpBranchConditional %233 %234 %235
+%214 = OpFMul %float %211 %213
+%215 = OpLoad %v2float %199
+%216 = OpCompositeExtract %float %215 0
+%217 = OpLoad %v2float %200
+%218 = OpCompositeExtract %float %217 1
+%219 = OpFSub %float %float_1 %218
+%220 = OpFMul %float %216 %219
+%221 = OpFAdd %float %214 %220
+%222 = OpLoad %v2float %200
+%223 = OpCompositeExtract %float %222 0
+%224 = OpLoad %v2float %199
+%225 = OpCompositeExtract %float %224 1
+%226 = OpFSub %float %float_1 %225
+%227 = OpFMul %float %223 %226
+%228 = OpFAdd %float %221 %227
+OpReturnValue %228
+%208 = OpLabel
+%229 = OpLoad %v2float %199
+%230 = OpCompositeExtract %float %229 0
+%231 = OpFOrdEqual %bool %230 %float_0
+OpSelectionMerge %234 None
+OpBranchConditional %231 %232 %233
+%232 = OpLabel
+%235 = OpLoad %v2float %200
+%236 = OpCompositeExtract %float %235 0
+%237 = OpLoad %v2float %199
+%238 = OpCompositeExtract %float %237 1
+%239 = OpFSub %float %float_1 %238
+%240 = OpFMul %float %236 %239
+OpReturnValue %240
+%233 = OpLabel
+%242 = OpLoad %v2float %200
+%243 = OpCompositeExtract %float %242 1
+%244 = OpLoad %v2float %200
+%245 = OpCompositeExtract %float %244 0
+%246 = OpFSub %float %243 %245
+%247 = OpLoad %v2float %199
+%248 = OpCompositeExtract %float %247 1
+%249 = OpFMul %float %246 %248
+OpStore %_6_n %249
+%252 = OpLoad %v2float %200
+%253 = OpCompositeExtract %float %252 1
+%254 = OpLoad %float %_6_n
+%255 = OpLoad %v2float %199
+%256 = OpCompositeExtract %float %255 0
+%257 = OpFDiv %float %254 %256
+%258 = OpFSub %float %253 %257
+%251 = OpExtInst %float %1 FMax %float_0 %258
+OpStore %delta_0 %251
+%259 = OpLoad %float %delta_0
+%260 = OpLoad %v2float %199
+%261 = OpCompositeExtract %float %260 1
+%262 = OpFMul %float %259 %261
+%263 = OpLoad %v2float %199
+%264 = OpCompositeExtract %float %263 0
+%265 = OpLoad %v2float %200
+%266 = OpCompositeExtract %float %265 1
+%267 = OpFSub %float %float_1 %266
+%268 = OpFMul %float %264 %267
+%269 = OpFAdd %float %262 %268
+%270 = OpLoad %v2float %200
+%271 = OpCompositeExtract %float %270 0
+%272 = OpLoad %v2float %199
+%273 = OpCompositeExtract %float %272 1
+%274 = OpFSub %float %float_1 %273
+%275 = OpFMul %float %271 %274
+%276 = OpFAdd %float %269 %275
+OpReturnValue %276
 %234 = OpLabel
-%237 = OpLoad %v2float %202
-%238 = OpCompositeExtract %float %237 0
-%239 = OpLoad %v2float %201
-%240 = OpCompositeExtract %float %239 1
-%241 = OpFSub %float %float_1 %240
-%242 = OpFMul %float %238 %241
-OpReturnValue %242
-%235 = OpLabel
-%245 = OpLoad %v2float %202
-%246 = OpCompositeExtract %float %245 1
-%247 = OpLoad %v2float %202
-%248 = OpCompositeExtract %float %247 0
-%249 = OpFSub %float %246 %248
-%250 = OpLoad %v2float %201
-%251 = OpCompositeExtract %float %250 1
-%252 = OpFMul %float %249 %251
-OpStore %_6_n %252
-%253 = OpLoad %float %_6_n
-%254 = OpLoad %v2float %201
-%255 = OpCompositeExtract %float %254 0
-%256 = OpFDiv %float %253 %255
-OpStore %_5_guarded_divide %256
-%259 = OpLoad %v2float %202
-%260 = OpCompositeExtract %float %259 1
-%261 = OpLoad %float %_5_guarded_divide
-%262 = OpFSub %float %260 %261
-%258 = OpExtInst %float %1 FMax %float_0 %262
-OpStore %delta_0 %258
-%263 = OpLoad %float %delta_0
-%264 = OpLoad %v2float %201
-%265 = OpCompositeExtract %float %264 1
-%266 = OpFMul %float %263 %265
-%267 = OpLoad %v2float %201
-%268 = OpCompositeExtract %float %267 0
-%269 = OpLoad %v2float %202
-%270 = OpCompositeExtract %float %269 1
-%271 = OpFSub %float %float_1 %270
-%272 = OpFMul %float %268 %271
-%273 = OpFAdd %float %266 %272
-%274 = OpLoad %v2float %202
-%275 = OpCompositeExtract %float %274 0
-%276 = OpLoad %v2float %201
-%277 = OpCompositeExtract %float %276 1
-%278 = OpFSub %float %float_1 %277
-%279 = OpFMul %float %275 %278
-%280 = OpFAdd %float %273 %279
-OpReturnValue %280
-%236 = OpLabel
-OpBranch %211
-%211 = OpLabel
+OpBranch %209
+%209 = OpLabel
 OpUnreachable
 OpFunctionEnd
 %_soft_light_component = OpFunction %float None %23
-%281 = OpFunctionParameter %_ptr_Function_v2float
-%282 = OpFunctionParameter %_ptr_Function_v2float
-%283 = OpLabel
-%_7_guarded_divide = OpVariable %_ptr_Function_float Function
+%277 = OpFunctionParameter %_ptr_Function_v2float
+%278 = OpFunctionParameter %_ptr_Function_v2float
+%279 = OpLabel
 %_8_n = OpVariable %_ptr_Function_float Function
 %DSqd = OpVariable %_ptr_Function_float Function
 %DCub = OpVariable %_ptr_Function_float Function
 %DaSqd = OpVariable %_ptr_Function_float Function
 %DaCub = OpVariable %_ptr_Function_float Function
-%_9_guarded_divide = OpVariable %_ptr_Function_float Function
 %_10_n = OpVariable %_ptr_Function_float Function
-%284 = OpLoad %v2float %281
-%285 = OpCompositeExtract %float %284 0
-%286 = OpFMul %float %float_2 %285
-%287 = OpLoad %v2float %281
-%288 = OpCompositeExtract %float %287 1
-%289 = OpFOrdLessThanEqual %bool %286 %288
-OpSelectionMerge %292 None
-OpBranchConditional %289 %290 %291
-%290 = OpLabel
-%295 = OpLoad %v2float %282
-%296 = OpCompositeExtract %float %295 0
-%297 = OpLoad %v2float %282
+%280 = OpLoad %v2float %277
+%281 = OpCompositeExtract %float %280 0
+%282 = OpFMul %float %float_2 %281
+%283 = OpLoad %v2float %277
+%284 = OpCompositeExtract %float %283 1
+%285 = OpFOrdLessThanEqual %bool %282 %284
+OpSelectionMerge %288 None
+OpBranchConditional %285 %286 %287
+%286 = OpLabel
+%290 = OpLoad %v2float %278
+%291 = OpCompositeExtract %float %290 0
+%292 = OpLoad %v2float %278
+%293 = OpCompositeExtract %float %292 0
+%294 = OpFMul %float %291 %293
+%295 = OpLoad %v2float %277
+%296 = OpCompositeExtract %float %295 1
+%297 = OpLoad %v2float %277
 %298 = OpCompositeExtract %float %297 0
-%299 = OpFMul %float %296 %298
-%300 = OpLoad %v2float %281
-%301 = OpCompositeExtract %float %300 1
-%302 = OpLoad %v2float %281
-%303 = OpCompositeExtract %float %302 0
-%304 = OpFMul %float %float_2 %303
-%305 = OpFSub %float %301 %304
-%306 = OpFMul %float %299 %305
-OpStore %_8_n %306
-%307 = OpLoad %float %_8_n
-%308 = OpLoad %v2float %282
-%309 = OpCompositeExtract %float %308 1
-%310 = OpFDiv %float %307 %309
-OpStore %_7_guarded_divide %310
-%311 = OpLoad %float %_7_guarded_divide
-%312 = OpLoad %v2float %282
-%313 = OpCompositeExtract %float %312 1
-%314 = OpFSub %float %float_1 %313
-%315 = OpLoad %v2float %281
-%316 = OpCompositeExtract %float %315 0
-%317 = OpFMul %float %314 %316
-%318 = OpFAdd %float %311 %317
-%319 = OpLoad %v2float %282
-%320 = OpCompositeExtract %float %319 0
-%322 = OpLoad %v2float %281
-%323 = OpCompositeExtract %float %322 1
-%321 = OpFNegate %float %323
-%324 = OpLoad %v2float %281
-%325 = OpCompositeExtract %float %324 0
-%326 = OpFMul %float %float_2 %325
-%327 = OpFAdd %float %321 %326
-%328 = OpFAdd %float %327 %float_1
-%329 = OpFMul %float %320 %328
-%330 = OpFAdd %float %318 %329
-OpReturnValue %330
-%291 = OpLabel
-%332 = OpLoad %v2float %282
-%333 = OpCompositeExtract %float %332 0
-%334 = OpFMul %float %float_4 %333
-%335 = OpLoad %v2float %282
-%336 = OpCompositeExtract %float %335 1
-%337 = OpFOrdLessThanEqual %bool %334 %336
-OpSelectionMerge %340 None
-OpBranchConditional %337 %338 %339
-%338 = OpLabel
-%342 = OpLoad %v2float %282
-%343 = OpCompositeExtract %float %342 0
-%344 = OpLoad %v2float %282
-%345 = OpCompositeExtract %float %344 0
-%346 = OpFMul %float %343 %345
-OpStore %DSqd %346
-%348 = OpLoad %float %DSqd
-%349 = OpLoad %v2float %282
-%350 = OpCompositeExtract %float %349 0
+%299 = OpFMul %float %float_2 %298
+%300 = OpFSub %float %296 %299
+%301 = OpFMul %float %294 %300
+OpStore %_8_n %301
+%302 = OpLoad %float %_8_n
+%303 = OpLoad %v2float %278
+%304 = OpCompositeExtract %float %303 1
+%305 = OpFDiv %float %302 %304
+%306 = OpLoad %v2float %278
+%307 = OpCompositeExtract %float %306 1
+%308 = OpFSub %float %float_1 %307
+%309 = OpLoad %v2float %277
+%310 = OpCompositeExtract %float %309 0
+%311 = OpFMul %float %308 %310
+%312 = OpFAdd %float %305 %311
+%313 = OpLoad %v2float %278
+%314 = OpCompositeExtract %float %313 0
+%316 = OpLoad %v2float %277
+%317 = OpCompositeExtract %float %316 1
+%315 = OpFNegate %float %317
+%318 = OpLoad %v2float %277
+%319 = OpCompositeExtract %float %318 0
+%320 = OpFMul %float %float_2 %319
+%321 = OpFAdd %float %315 %320
+%322 = OpFAdd %float %321 %float_1
+%323 = OpFMul %float %314 %322
+%324 = OpFAdd %float %312 %323
+OpReturnValue %324
+%287 = OpLabel
+%326 = OpLoad %v2float %278
+%327 = OpCompositeExtract %float %326 0
+%328 = OpFMul %float %float_4 %327
+%329 = OpLoad %v2float %278
+%330 = OpCompositeExtract %float %329 1
+%331 = OpFOrdLessThanEqual %bool %328 %330
+OpSelectionMerge %334 None
+OpBranchConditional %331 %332 %333
+%332 = OpLabel
+%336 = OpLoad %v2float %278
+%337 = OpCompositeExtract %float %336 0
+%338 = OpLoad %v2float %278
+%339 = OpCompositeExtract %float %338 0
+%340 = OpFMul %float %337 %339
+OpStore %DSqd %340
+%342 = OpLoad %float %DSqd
+%343 = OpLoad %v2float %278
+%344 = OpCompositeExtract %float %343 0
+%345 = OpFMul %float %342 %344
+OpStore %DCub %345
+%347 = OpLoad %v2float %278
+%348 = OpCompositeExtract %float %347 1
+%349 = OpLoad %v2float %278
+%350 = OpCompositeExtract %float %349 1
 %351 = OpFMul %float %348 %350
-OpStore %DCub %351
-%353 = OpLoad %v2float %282
-%354 = OpCompositeExtract %float %353 1
-%355 = OpLoad %v2float %282
-%356 = OpCompositeExtract %float %355 1
-%357 = OpFMul %float %354 %356
-OpStore %DaSqd %357
-%359 = OpLoad %float %DaSqd
-%360 = OpLoad %v2float %282
-%361 = OpCompositeExtract %float %360 1
-%362 = OpFMul %float %359 %361
-OpStore %DaCub %362
-%365 = OpLoad %float %DaSqd
-%366 = OpLoad %v2float %281
-%367 = OpCompositeExtract %float %366 0
-%368 = OpLoad %v2float %282
+OpStore %DaSqd %351
+%353 = OpLoad %float %DaSqd
+%354 = OpLoad %v2float %278
+%355 = OpCompositeExtract %float %354 1
+%356 = OpFMul %float %353 %355
+OpStore %DaCub %356
+%358 = OpLoad %float %DaSqd
+%359 = OpLoad %v2float %277
+%360 = OpCompositeExtract %float %359 0
+%361 = OpLoad %v2float %278
+%362 = OpCompositeExtract %float %361 0
+%364 = OpLoad %v2float %277
+%365 = OpCompositeExtract %float %364 1
+%366 = OpFMul %float %float_3 %365
+%368 = OpLoad %v2float %277
 %369 = OpCompositeExtract %float %368 0
-%371 = OpLoad %v2float %281
-%372 = OpCompositeExtract %float %371 1
-%373 = OpFMul %float %float_3 %372
-%375 = OpLoad %v2float %281
-%376 = OpCompositeExtract %float %375 0
-%377 = OpFMul %float %float_6 %376
-%378 = OpFSub %float %373 %377
-%379 = OpFSub %float %378 %float_1
-%380 = OpFMul %float %369 %379
-%381 = OpFSub %float %367 %380
-%382 = OpFMul %float %365 %381
-%384 = OpLoad %v2float %282
-%385 = OpCompositeExtract %float %384 1
-%386 = OpFMul %float %float_12 %385
-%387 = OpLoad %float %DSqd
-%388 = OpFMul %float %386 %387
-%389 = OpLoad %v2float %281
-%390 = OpCompositeExtract %float %389 1
-%391 = OpLoad %v2float %281
-%392 = OpCompositeExtract %float %391 0
-%393 = OpFMul %float %float_2 %392
-%394 = OpFSub %float %390 %393
-%395 = OpFMul %float %388 %394
-%396 = OpFAdd %float %382 %395
-%398 = OpLoad %float %DCub
-%399 = OpFMul %float %float_16 %398
-%400 = OpLoad %v2float %281
-%401 = OpCompositeExtract %float %400 1
-%402 = OpLoad %v2float %281
+%370 = OpFMul %float %float_6 %369
+%371 = OpFSub %float %366 %370
+%372 = OpFSub %float %371 %float_1
+%373 = OpFMul %float %362 %372
+%374 = OpFSub %float %360 %373
+%375 = OpFMul %float %358 %374
+%377 = OpLoad %v2float %278
+%378 = OpCompositeExtract %float %377 1
+%379 = OpFMul %float %float_12 %378
+%380 = OpLoad %float %DSqd
+%381 = OpFMul %float %379 %380
+%382 = OpLoad %v2float %277
+%383 = OpCompositeExtract %float %382 1
+%384 = OpLoad %v2float %277
+%385 = OpCompositeExtract %float %384 0
+%386 = OpFMul %float %float_2 %385
+%387 = OpFSub %float %383 %386
+%388 = OpFMul %float %381 %387
+%389 = OpFAdd %float %375 %388
+%391 = OpLoad %float %DCub
+%392 = OpFMul %float %float_16 %391
+%393 = OpLoad %v2float %277
+%394 = OpCompositeExtract %float %393 1
+%395 = OpLoad %v2float %277
+%396 = OpCompositeExtract %float %395 0
+%397 = OpFMul %float %float_2 %396
+%398 = OpFSub %float %394 %397
+%399 = OpFMul %float %392 %398
+%400 = OpFSub %float %389 %399
+%401 = OpLoad %float %DaCub
+%402 = OpLoad %v2float %277
 %403 = OpCompositeExtract %float %402 0
-%404 = OpFMul %float %float_2 %403
-%405 = OpFSub %float %401 %404
-%406 = OpFMul %float %399 %405
-%407 = OpFSub %float %396 %406
-%408 = OpLoad %float %DaCub
-%409 = OpLoad %v2float %281
+%404 = OpFMul %float %401 %403
+%405 = OpFSub %float %400 %404
+OpStore %_10_n %405
+%406 = OpLoad %float %_10_n
+%407 = OpLoad %float %DaSqd
+%408 = OpFDiv %float %406 %407
+OpReturnValue %408
+%333 = OpLabel
+%409 = OpLoad %v2float %278
 %410 = OpCompositeExtract %float %409 0
-%411 = OpFMul %float %408 %410
-%412 = OpFSub %float %407 %411
-OpStore %_10_n %412
-%413 = OpLoad %float %_10_n
-%414 = OpLoad %float %DaSqd
-%415 = OpFDiv %float %413 %414
-OpStore %_9_guarded_divide %415
-%416 = OpLoad %float %_9_guarded_divide
-OpReturnValue %416
-%339 = OpLabel
-%417 = OpLoad %v2float %282
-%418 = OpCompositeExtract %float %417 0
-%419 = OpLoad %v2float %281
-%420 = OpCompositeExtract %float %419 1
-%421 = OpLoad %v2float %281
-%422 = OpCompositeExtract %float %421 0
-%423 = OpFMul %float %float_2 %422
-%424 = OpFSub %float %420 %423
-%425 = OpFAdd %float %424 %float_1
-%426 = OpFMul %float %418 %425
-%427 = OpLoad %v2float %281
-%428 = OpCompositeExtract %float %427 0
-%429 = OpFAdd %float %426 %428
-%431 = OpLoad %v2float %282
-%432 = OpCompositeExtract %float %431 1
-%433 = OpLoad %v2float %282
-%434 = OpCompositeExtract %float %433 0
-%435 = OpFMul %float %432 %434
-%430 = OpExtInst %float %1 Sqrt %435
-%436 = OpLoad %v2float %281
+%411 = OpLoad %v2float %277
+%412 = OpCompositeExtract %float %411 1
+%413 = OpLoad %v2float %277
+%414 = OpCompositeExtract %float %413 0
+%415 = OpFMul %float %float_2 %414
+%416 = OpFSub %float %412 %415
+%417 = OpFAdd %float %416 %float_1
+%418 = OpFMul %float %410 %417
+%419 = OpLoad %v2float %277
+%420 = OpCompositeExtract %float %419 0
+%421 = OpFAdd %float %418 %420
+%423 = OpLoad %v2float %278
+%424 = OpCompositeExtract %float %423 1
+%425 = OpLoad %v2float %278
+%426 = OpCompositeExtract %float %425 0
+%427 = OpFMul %float %424 %426
+%422 = OpExtInst %float %1 Sqrt %427
+%428 = OpLoad %v2float %277
+%429 = OpCompositeExtract %float %428 1
+%430 = OpLoad %v2float %277
+%431 = OpCompositeExtract %float %430 0
+%432 = OpFMul %float %float_2 %431
+%433 = OpFSub %float %429 %432
+%434 = OpFMul %float %422 %433
+%435 = OpFSub %float %421 %434
+%436 = OpLoad %v2float %278
 %437 = OpCompositeExtract %float %436 1
-%438 = OpLoad %v2float %281
+%438 = OpLoad %v2float %277
 %439 = OpCompositeExtract %float %438 0
-%440 = OpFMul %float %float_2 %439
-%441 = OpFSub %float %437 %440
-%442 = OpFMul %float %430 %441
-%443 = OpFSub %float %429 %442
-%444 = OpLoad %v2float %282
-%445 = OpCompositeExtract %float %444 1
-%446 = OpLoad %v2float %281
-%447 = OpCompositeExtract %float %446 0
-%448 = OpFMul %float %445 %447
-%449 = OpFSub %float %443 %448
-OpReturnValue %449
-%340 = OpLabel
-OpBranch %292
-%292 = OpLabel
+%440 = OpFMul %float %437 %439
+%441 = OpFSub %float %435 %440
+OpReturnValue %441
+%334 = OpLabel
+OpBranch %288
+%288 = OpLabel
 OpUnreachable
 OpFunctionEnd
-%_blend_set_color_luminance = OpFunction %v3float None %450
-%452 = OpFunctionParameter %_ptr_Function_v3float
-%453 = OpFunctionParameter %_ptr_Function_float
-%454 = OpFunctionParameter %_ptr_Function_v3float
-%455 = OpLabel
-%_11_blend_color_luminance = OpVariable %_ptr_Function_float Function
+%_blend_set_color_luminance = OpFunction %v3float None %442
+%444 = OpFunctionParameter %_ptr_Function_v3float
+%445 = OpFunctionParameter %_ptr_Function_float
+%446 = OpFunctionParameter %_ptr_Function_v3float
+%447 = OpLabel
 %lum = OpVariable %_ptr_Function_float Function
-%_12_blend_color_luminance = OpVariable %_ptr_Function_float Function
 %result_0 = OpVariable %_ptr_Function_v3float Function
 %minComp = OpVariable %_ptr_Function_float Function
 %maxComp = OpVariable %_ptr_Function_float Function
-%528 = OpVariable %_ptr_Function_v3float Function
-%462 = OpLoad %v3float %454
-%457 = OpDot %float %458 %462
-OpStore %_11_blend_color_luminance %457
-%464 = OpLoad %float %_11_blend_color_luminance
-OpStore %lum %464
-%468 = OpLoad %v3float %452
-%466 = OpDot %float %467 %468
-OpStore %_12_blend_color_luminance %466
-%470 = OpLoad %float %lum
-%471 = OpLoad %float %_12_blend_color_luminance
-%472 = OpFSub %float %470 %471
-%473 = OpLoad %v3float %452
-%474 = OpCompositeConstruct %v3float %472 %472 %472
-%475 = OpFAdd %v3float %474 %473
-OpStore %result_0 %475
-%479 = OpLoad %v3float %result_0
-%480 = OpCompositeExtract %float %479 0
-%481 = OpLoad %v3float %result_0
-%482 = OpCompositeExtract %float %481 1
-%478 = OpExtInst %float %1 FMin %480 %482
-%483 = OpLoad %v3float %result_0
-%484 = OpCompositeExtract %float %483 2
-%477 = OpExtInst %float %1 FMin %478 %484
-OpStore %minComp %477
-%488 = OpLoad %v3float %result_0
-%489 = OpCompositeExtract %float %488 0
-%490 = OpLoad %v3float %result_0
-%491 = OpCompositeExtract %float %490 1
-%487 = OpExtInst %float %1 FMax %489 %491
-%492 = OpLoad %v3float %result_0
-%493 = OpCompositeExtract %float %492 2
-%486 = OpExtInst %float %1 FMax %487 %493
-OpStore %maxComp %486
-%495 = OpLoad %float %minComp
-%496 = OpFOrdLessThan %bool %495 %float_0
-OpSelectionMerge %498 None
-OpBranchConditional %496 %497 %498
-%497 = OpLabel
-%499 = OpLoad %float %lum
-%500 = OpLoad %float %minComp
-%501 = OpFOrdNotEqual %bool %499 %500
-OpBranch %498
-%498 = OpLabel
-%502 = OpPhi %bool %false %455 %501 %497
-OpSelectionMerge %504 None
-OpBranchConditional %502 %503 %504
-%503 = OpLabel
-%505 = OpLoad %float %lum
-%506 = OpLoad %v3float %result_0
-%507 = OpLoad %float %lum
-%508 = OpCompositeConstruct %v3float %507 %507 %507
-%509 = OpFSub %v3float %506 %508
-%510 = OpLoad %float %lum
-%511 = OpVectorTimesScalar %v3float %509 %510
-%512 = OpLoad %float %lum
-%513 = OpLoad %float %minComp
-%514 = OpFSub %float %512 %513
-%515 = OpFDiv %float %float_1 %514
-%516 = OpVectorTimesScalar %v3float %511 %515
-%517 = OpCompositeConstruct %v3float %505 %505 %505
-%518 = OpFAdd %v3float %517 %516
-OpStore %result_0 %518
-OpBranch %504
-%504 = OpLabel
-%519 = OpLoad %float %maxComp
-%520 = OpLoad %float %453
-%521 = OpFOrdGreaterThan %bool %519 %520
-OpSelectionMerge %523 None
-OpBranchConditional %521 %522 %523
-%522 = OpLabel
-%524 = OpLoad %float %maxComp
-%525 = OpLoad %float %lum
-%526 = OpFOrdNotEqual %bool %524 %525
-OpBranch %523
-%523 = OpLabel
-%527 = OpPhi %bool %false %504 %526 %522
-OpSelectionMerge %531 None
-OpBranchConditional %527 %529 %530
-%529 = OpLabel
-%532 = OpLoad %float %lum
-%533 = OpLoad %v3float %result_0
-%534 = OpLoad %float %lum
-%535 = OpCompositeConstruct %v3float %534 %534 %534
-%536 = OpFSub %v3float %533 %535
-%537 = OpLoad %float %453
-%538 = OpLoad %float %lum
-%539 = OpFSub %float %537 %538
-%540 = OpVectorTimesScalar %v3float %536 %539
-%541 = OpLoad %float %maxComp
-%542 = OpLoad %float %lum
-%543 = OpFSub %float %541 %542
-%544 = OpFDiv %float %float_1 %543
-%545 = OpVectorTimesScalar %v3float %540 %544
-%546 = OpCompositeConstruct %v3float %532 %532 %532
-%547 = OpFAdd %v3float %546 %545
-OpStore %528 %547
-OpBranch %531
-%530 = OpLabel
-%548 = OpLoad %v3float %result_0
-OpStore %528 %548
-OpBranch %531
-%531 = OpLabel
-%549 = OpLoad %v3float %528
-OpReturnValue %549
+%516 = OpVariable %_ptr_Function_v3float Function
+%454 = OpLoad %v3float %446
+%449 = OpDot %float %450 %454
+OpStore %lum %449
+%456 = OpLoad %float %lum
+%459 = OpLoad %v3float %444
+%457 = OpDot %float %458 %459
+%460 = OpFSub %float %456 %457
+%461 = OpLoad %v3float %444
+%462 = OpCompositeConstruct %v3float %460 %460 %460
+%463 = OpFAdd %v3float %462 %461
+OpStore %result_0 %463
+%467 = OpLoad %v3float %result_0
+%468 = OpCompositeExtract %float %467 0
+%469 = OpLoad %v3float %result_0
+%470 = OpCompositeExtract %float %469 1
+%466 = OpExtInst %float %1 FMin %468 %470
+%471 = OpLoad %v3float %result_0
+%472 = OpCompositeExtract %float %471 2
+%465 = OpExtInst %float %1 FMin %466 %472
+OpStore %minComp %465
+%476 = OpLoad %v3float %result_0
+%477 = OpCompositeExtract %float %476 0
+%478 = OpLoad %v3float %result_0
+%479 = OpCompositeExtract %float %478 1
+%475 = OpExtInst %float %1 FMax %477 %479
+%480 = OpLoad %v3float %result_0
+%481 = OpCompositeExtract %float %480 2
+%474 = OpExtInst %float %1 FMax %475 %481
+OpStore %maxComp %474
+%483 = OpLoad %float %minComp
+%484 = OpFOrdLessThan %bool %483 %float_0
+OpSelectionMerge %486 None
+OpBranchConditional %484 %485 %486
+%485 = OpLabel
+%487 = OpLoad %float %lum
+%488 = OpLoad %float %minComp
+%489 = OpFOrdNotEqual %bool %487 %488
+OpBranch %486
+%486 = OpLabel
+%490 = OpPhi %bool %false %447 %489 %485
+OpSelectionMerge %492 None
+OpBranchConditional %490 %491 %492
+%491 = OpLabel
+%493 = OpLoad %float %lum
+%494 = OpLoad %v3float %result_0
+%495 = OpLoad %float %lum
+%496 = OpCompositeConstruct %v3float %495 %495 %495
+%497 = OpFSub %v3float %494 %496
+%498 = OpLoad %float %lum
+%499 = OpVectorTimesScalar %v3float %497 %498
+%500 = OpLoad %float %lum
+%501 = OpLoad %float %minComp
+%502 = OpFSub %float %500 %501
+%503 = OpFDiv %float %float_1 %502
+%504 = OpVectorTimesScalar %v3float %499 %503
+%505 = OpCompositeConstruct %v3float %493 %493 %493
+%506 = OpFAdd %v3float %505 %504
+OpStore %result_0 %506
+OpBranch %492
+%492 = OpLabel
+%507 = OpLoad %float %maxComp
+%508 = OpLoad %float %445
+%509 = OpFOrdGreaterThan %bool %507 %508
+OpSelectionMerge %511 None
+OpBranchConditional %509 %510 %511
+%510 = OpLabel
+%512 = OpLoad %float %maxComp
+%513 = OpLoad %float %lum
+%514 = OpFOrdNotEqual %bool %512 %513
+OpBranch %511
+%511 = OpLabel
+%515 = OpPhi %bool %false %492 %514 %510
+OpSelectionMerge %519 None
+OpBranchConditional %515 %517 %518
+%517 = OpLabel
+%520 = OpLoad %float %lum
+%521 = OpLoad %v3float %result_0
+%522 = OpLoad %float %lum
+%523 = OpCompositeConstruct %v3float %522 %522 %522
+%524 = OpFSub %v3float %521 %523
+%525 = OpLoad %float %445
+%526 = OpLoad %float %lum
+%527 = OpFSub %float %525 %526
+%528 = OpVectorTimesScalar %v3float %524 %527
+%529 = OpLoad %float %maxComp
+%530 = OpLoad %float %lum
+%531 = OpFSub %float %529 %530
+%532 = OpFDiv %float %float_1 %531
+%533 = OpVectorTimesScalar %v3float %528 %532
+%534 = OpCompositeConstruct %v3float %520 %520 %520
+%535 = OpFAdd %v3float %534 %533
+OpStore %516 %535
+OpBranch %519
+%518 = OpLabel
+%536 = OpLoad %v3float %result_0
+OpStore %516 %536
+OpBranch %519
+%519 = OpLabel
+%537 = OpLoad %v3float %516
+OpReturnValue %537
 OpFunctionEnd
-%_blend_set_color_saturation_helper = OpFunction %v3float None %550
-%551 = OpFunctionParameter %_ptr_Function_v3float
-%552 = OpFunctionParameter %_ptr_Function_float
-%553 = OpLabel
-%559 = OpVariable %_ptr_Function_v3float Function
-%554 = OpLoad %v3float %551
+%_blend_set_color_saturation_helper = OpFunction %v3float None %538
+%539 = OpFunctionParameter %_ptr_Function_v3float
+%540 = OpFunctionParameter %_ptr_Function_float
+%541 = OpLabel
+%547 = OpVariable %_ptr_Function_v3float Function
+%542 = OpLoad %v3float %539
+%543 = OpCompositeExtract %float %542 0
+%544 = OpLoad %v3float %539
+%545 = OpCompositeExtract %float %544 2
+%546 = OpFOrdLessThan %bool %543 %545
+OpSelectionMerge %550 None
+OpBranchConditional %546 %548 %549
+%548 = OpLabel
+%551 = OpLoad %float %540
+%552 = OpLoad %v3float %539
+%553 = OpCompositeExtract %float %552 1
+%554 = OpLoad %v3float %539
 %555 = OpCompositeExtract %float %554 0
-%556 = OpLoad %v3float %551
-%557 = OpCompositeExtract %float %556 2
-%558 = OpFOrdLessThan %bool %555 %557
-OpSelectionMerge %562 None
-OpBranchConditional %558 %560 %561
-%560 = OpLabel
-%563 = OpLoad %float %552
-%564 = OpLoad %v3float %551
-%565 = OpCompositeExtract %float %564 1
-%566 = OpLoad %v3float %551
-%567 = OpCompositeExtract %float %566 0
-%568 = OpFSub %float %565 %567
-%569 = OpFMul %float %563 %568
-%570 = OpLoad %v3float %551
-%571 = OpCompositeExtract %float %570 2
-%572 = OpLoad %v3float %551
-%573 = OpCompositeExtract %float %572 0
-%574 = OpFSub %float %571 %573
-%575 = OpFDiv %float %569 %574
-%576 = OpLoad %float %552
-%577 = OpCompositeConstruct %v3float %float_0 %575 %576
-OpStore %559 %577
-OpBranch %562
-%561 = OpLabel
-OpStore %559 %578
-OpBranch %562
-%562 = OpLabel
-%579 = OpLoad %v3float %559
-OpReturnValue %579
+%556 = OpFSub %float %553 %555
+%557 = OpFMul %float %551 %556
+%558 = OpLoad %v3float %539
+%559 = OpCompositeExtract %float %558 2
+%560 = OpLoad %v3float %539
+%561 = OpCompositeExtract %float %560 0
+%562 = OpFSub %float %559 %561
+%563 = OpFDiv %float %557 %562
+%564 = OpLoad %float %540
+%565 = OpCompositeConstruct %v3float %float_0 %563 %564
+OpStore %547 %565
+OpBranch %550
+%549 = OpLabel
+OpStore %547 %566
+OpBranch %550
+%550 = OpLabel
+%567 = OpLoad %v3float %547
+OpReturnValue %567
 OpFunctionEnd
-%_blend_set_color_saturation = OpFunction %v3float None %580
-%581 = OpFunctionParameter %_ptr_Function_v3float
-%582 = OpFunctionParameter %_ptr_Function_v3float
-%583 = OpLabel
-%_13_blend_color_saturation = OpVariable %_ptr_Function_float Function
+%_blend_set_color_saturation = OpFunction %v3float None %568
+%569 = OpFunctionParameter %_ptr_Function_v3float
+%570 = OpFunctionParameter %_ptr_Function_v3float
+%571 = OpLabel
 %sat = OpVariable %_ptr_Function_float Function
+%607 = OpVariable %_ptr_Function_v3float Function
+%609 = OpVariable %_ptr_Function_float Function
 %621 = OpVariable %_ptr_Function_v3float Function
 %623 = OpVariable %_ptr_Function_float Function
-%635 = OpVariable %_ptr_Function_v3float Function
-%637 = OpVariable %_ptr_Function_float Function
-%642 = OpVariable %_ptr_Function_v3float Function
-%644 = OpVariable %_ptr_Function_float Function
-%657 = OpVariable %_ptr_Function_v3float Function
-%659 = OpVariable %_ptr_Function_float Function
-%672 = OpVariable %_ptr_Function_v3float Function
-%674 = OpVariable %_ptr_Function_float Function
-%679 = OpVariable %_ptr_Function_v3float Function
-%681 = OpVariable %_ptr_Function_float Function
-%587 = OpLoad %v3float %582
-%588 = OpCompositeExtract %float %587 0
-%589 = OpLoad %v3float %582
-%590 = OpCompositeExtract %float %589 1
-%586 = OpExtInst %float %1 FMax %588 %590
-%591 = OpLoad %v3float %582
-%592 = OpCompositeExtract %float %591 2
-%585 = OpExtInst %float %1 FMax %586 %592
-%595 = OpLoad %v3float %582
-%596 = OpCompositeExtract %float %595 0
-%597 = OpLoad %v3float %582
-%598 = OpCompositeExtract %float %597 1
-%594 = OpExtInst %float %1 FMin %596 %598
-%599 = OpLoad %v3float %582
-%600 = OpCompositeExtract %float %599 2
-%593 = OpExtInst %float %1 FMin %594 %600
-%601 = OpFSub %float %585 %593
-OpStore %_13_blend_color_saturation %601
-%603 = OpLoad %float %_13_blend_color_saturation
-OpStore %sat %603
-%604 = OpLoad %v3float %581
-%605 = OpCompositeExtract %float %604 0
-%606 = OpLoad %v3float %581
-%607 = OpCompositeExtract %float %606 1
-%608 = OpFOrdLessThanEqual %bool %605 %607
-OpSelectionMerge %611 None
-OpBranchConditional %608 %609 %610
-%609 = OpLabel
-%612 = OpLoad %v3float %581
-%613 = OpCompositeExtract %float %612 1
-%614 = OpLoad %v3float %581
-%615 = OpCompositeExtract %float %614 2
-%616 = OpFOrdLessThanEqual %bool %613 %615
-OpSelectionMerge %619 None
-OpBranchConditional %616 %617 %618
-%617 = OpLabel
-%620 = OpLoad %v3float %581
+%628 = OpVariable %_ptr_Function_v3float Function
+%630 = OpVariable %_ptr_Function_float Function
+%643 = OpVariable %_ptr_Function_v3float Function
+%645 = OpVariable %_ptr_Function_float Function
+%658 = OpVariable %_ptr_Function_v3float Function
+%660 = OpVariable %_ptr_Function_float Function
+%665 = OpVariable %_ptr_Function_v3float Function
+%667 = OpVariable %_ptr_Function_float Function
+%575 = OpLoad %v3float %570
+%576 = OpCompositeExtract %float %575 0
+%577 = OpLoad %v3float %570
+%578 = OpCompositeExtract %float %577 1
+%574 = OpExtInst %float %1 FMax %576 %578
+%579 = OpLoad %v3float %570
+%580 = OpCompositeExtract %float %579 2
+%573 = OpExtInst %float %1 FMax %574 %580
+%583 = OpLoad %v3float %570
+%584 = OpCompositeExtract %float %583 0
+%585 = OpLoad %v3float %570
+%586 = OpCompositeExtract %float %585 1
+%582 = OpExtInst %float %1 FMin %584 %586
+%587 = OpLoad %v3float %570
+%588 = OpCompositeExtract %float %587 2
+%581 = OpExtInst %float %1 FMin %582 %588
+%589 = OpFSub %float %573 %581
+OpStore %sat %589
+%590 = OpLoad %v3float %569
+%591 = OpCompositeExtract %float %590 0
+%592 = OpLoad %v3float %569
+%593 = OpCompositeExtract %float %592 1
+%594 = OpFOrdLessThanEqual %bool %591 %593
+OpSelectionMerge %597 None
+OpBranchConditional %594 %595 %596
+%595 = OpLabel
+%598 = OpLoad %v3float %569
+%599 = OpCompositeExtract %float %598 1
+%600 = OpLoad %v3float %569
+%601 = OpCompositeExtract %float %600 2
+%602 = OpFOrdLessThanEqual %bool %599 %601
+OpSelectionMerge %605 None
+OpBranchConditional %602 %603 %604
+%603 = OpLabel
+%606 = OpLoad %v3float %569
+OpStore %607 %606
+%608 = OpLoad %float %sat
+OpStore %609 %608
+%610 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %607 %609
+OpReturnValue %610
+%604 = OpLabel
+%611 = OpLoad %v3float %569
+%612 = OpCompositeExtract %float %611 0
+%613 = OpLoad %v3float %569
+%614 = OpCompositeExtract %float %613 2
+%615 = OpFOrdLessThanEqual %bool %612 %614
+OpSelectionMerge %618 None
+OpBranchConditional %615 %616 %617
+%616 = OpLabel
+%619 = OpLoad %v3float %569
+%620 = OpVectorShuffle %v3float %619 %619 0 2 1
 OpStore %621 %620
 %622 = OpLoad %float %sat
 OpStore %623 %622
 %624 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %621 %623
-OpReturnValue %624
+%625 = OpVectorShuffle %v3float %624 %624 0 2 1
+OpReturnValue %625
+%617 = OpLabel
+%626 = OpLoad %v3float %569
+%627 = OpVectorShuffle %v3float %626 %626 2 0 1
+OpStore %628 %627
+%629 = OpLoad %float %sat
+OpStore %630 %629
+%631 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %628 %630
+%632 = OpVectorShuffle %v3float %631 %631 1 2 0
+OpReturnValue %632
 %618 = OpLabel
-%625 = OpLoad %v3float %581
-%626 = OpCompositeExtract %float %625 0
-%627 = OpLoad %v3float %581
-%628 = OpCompositeExtract %float %627 2
-%629 = OpFOrdLessThanEqual %bool %626 %628
-OpSelectionMerge %632 None
-OpBranchConditional %629 %630 %631
-%630 = OpLabel
-%633 = OpLoad %v3float %581
-%634 = OpVectorShuffle %v3float %633 %633 0 2 1
-OpStore %635 %634
-%636 = OpLoad %float %sat
-OpStore %637 %636
-%638 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %635 %637
-%639 = OpVectorShuffle %v3float %638 %638 0 2 1
-OpReturnValue %639
-%631 = OpLabel
-%640 = OpLoad %v3float %581
-%641 = OpVectorShuffle %v3float %640 %640 2 0 1
-OpStore %642 %641
-%643 = OpLoad %float %sat
-OpStore %644 %643
-%645 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %642 %644
-%646 = OpVectorShuffle %v3float %645 %645 1 2 0
-OpReturnValue %646
-%632 = OpLabel
-OpBranch %619
-%619 = OpLabel
-OpBranch %611
-%610 = OpLabel
-%647 = OpLoad %v3float %581
-%648 = OpCompositeExtract %float %647 0
-%649 = OpLoad %v3float %581
-%650 = OpCompositeExtract %float %649 2
-%651 = OpFOrdLessThanEqual %bool %648 %650
-OpSelectionMerge %654 None
-OpBranchConditional %651 %652 %653
-%652 = OpLabel
-%655 = OpLoad %v3float %581
-%656 = OpVectorShuffle %v3float %655 %655 1 0 2
-OpStore %657 %656
-%658 = OpLoad %float %sat
-OpStore %659 %658
-%660 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %657 %659
-%661 = OpVectorShuffle %v3float %660 %660 1 0 2
-OpReturnValue %661
+OpBranch %605
+%605 = OpLabel
+OpBranch %597
+%596 = OpLabel
+%633 = OpLoad %v3float %569
+%634 = OpCompositeExtract %float %633 0
+%635 = OpLoad %v3float %569
+%636 = OpCompositeExtract %float %635 2
+%637 = OpFOrdLessThanEqual %bool %634 %636
+OpSelectionMerge %640 None
+OpBranchConditional %637 %638 %639
+%638 = OpLabel
+%641 = OpLoad %v3float %569
+%642 = OpVectorShuffle %v3float %641 %641 1 0 2
+OpStore %643 %642
+%644 = OpLoad %float %sat
+OpStore %645 %644
+%646 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %643 %645
+%647 = OpVectorShuffle %v3float %646 %646 1 0 2
+OpReturnValue %647
+%639 = OpLabel
+%648 = OpLoad %v3float %569
+%649 = OpCompositeExtract %float %648 1
+%650 = OpLoad %v3float %569
+%651 = OpCompositeExtract %float %650 2
+%652 = OpFOrdLessThanEqual %bool %649 %651
+OpSelectionMerge %655 None
+OpBranchConditional %652 %653 %654
 %653 = OpLabel
-%662 = OpLoad %v3float %581
-%663 = OpCompositeExtract %float %662 1
-%664 = OpLoad %v3float %581
-%665 = OpCompositeExtract %float %664 2
-%666 = OpFOrdLessThanEqual %bool %663 %665
-OpSelectionMerge %669 None
-OpBranchConditional %666 %667 %668
-%667 = OpLabel
-%670 = OpLoad %v3float %581
-%671 = OpVectorShuffle %v3float %670 %670 1 2 0
-OpStore %672 %671
-%673 = OpLoad %float %sat
-OpStore %674 %673
-%675 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %672 %674
-%676 = OpVectorShuffle %v3float %675 %675 2 0 1
-OpReturnValue %676
-%668 = OpLabel
-%677 = OpLoad %v3float %581
-%678 = OpVectorShuffle %v3float %677 %677 2 1 0
-OpStore %679 %678
-%680 = OpLoad %float %sat
-OpStore %681 %680
-%682 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %679 %681
-%683 = OpVectorShuffle %v3float %682 %682 2 1 0
-OpReturnValue %683
-%669 = OpLabel
-OpBranch %654
+%656 = OpLoad %v3float %569
+%657 = OpVectorShuffle %v3float %656 %656 1 2 0
+OpStore %658 %657
+%659 = OpLoad %float %sat
+OpStore %660 %659
+%661 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %658 %660
+%662 = OpVectorShuffle %v3float %661 %661 2 0 1
+OpReturnValue %662
 %654 = OpLabel
-OpBranch %611
-%611 = OpLabel
+%663 = OpLoad %v3float %569
+%664 = OpVectorShuffle %v3float %663 %663 2 1 0
+OpStore %665 %664
+%666 = OpLoad %float %sat
+OpStore %667 %666
+%668 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %665 %667
+%669 = OpVectorShuffle %v3float %668 %668 2 1 0
+OpReturnValue %669
+%655 = OpLabel
+OpBranch %640
+%640 = OpLabel
+OpBranch %597
+%597 = OpLabel
 OpUnreachable
 OpFunctionEnd
-%blend = OpFunction %v4float None %685
-%687 = OpFunctionParameter %_ptr_Function_int
-%688 = OpFunctionParameter %_ptr_Function_v4float
-%689 = OpFunctionParameter %_ptr_Function_v4float
-%690 = OpLabel
-%_15_blend_src = OpVariable %_ptr_Function_v4float Function
-%_16_blend_dst = OpVariable %_ptr_Function_v4float Function
-%_17_blend_src_over = OpVariable %_ptr_Function_v4float Function
-%_18_blend_dst_over = OpVariable %_ptr_Function_v4float Function
-%_19_blend_src_in = OpVariable %_ptr_Function_v4float Function
-%_20_blend_dst_in = OpVariable %_ptr_Function_v4float Function
-%_21_blend_src_in = OpVariable %_ptr_Function_v4float Function
-%_22_blend_src_out = OpVariable %_ptr_Function_v4float Function
-%_23_blend_dst_out = OpVariable %_ptr_Function_v4float Function
-%_24_blend_src_atop = OpVariable %_ptr_Function_v4float Function
-%_25_blend_dst_atop = OpVariable %_ptr_Function_v4float Function
-%_26_blend_xor = OpVariable %_ptr_Function_v4float Function
-%_27_blend_plus = OpVariable %_ptr_Function_v4float Function
-%_28_blend_modulate = OpVariable %_ptr_Function_v4float Function
-%_29_blend_screen = OpVariable %_ptr_Function_v4float Function
-%834 = OpVariable %_ptr_Function_v4float Function
-%836 = OpVariable %_ptr_Function_v4float Function
-%_30_blend_darken = OpVariable %_ptr_Function_v4float Function
-%_31_blend_src_over = OpVariable %_ptr_Function_v4float Function
+%blend = OpFunction %v4float None %671
+%673 = OpFunctionParameter %_ptr_Function_int
+%674 = OpFunctionParameter %_ptr_Function_v4float
+%675 = OpFunctionParameter %_ptr_Function_v4float
+%676 = OpLabel
+%790 = OpVariable %_ptr_Function_v4float Function
+%792 = OpVariable %_ptr_Function_v4float Function
 %_32_result = OpVariable %_ptr_Function_v4float Function
-%_33_blend_lighten = OpVariable %_ptr_Function_v4float Function
-%_34_blend_src_over = OpVariable %_ptr_Function_v4float Function
 %_35_result = OpVariable %_ptr_Function_v4float Function
-%_36_blend_color_dodge = OpVariable %_ptr_Function_v4float Function
-%895 = OpVariable %_ptr_Function_v2float Function
-%898 = OpVariable %_ptr_Function_v2float Function
-%902 = OpVariable %_ptr_Function_v2float Function
-%905 = OpVariable %_ptr_Function_v2float Function
-%909 = OpVariable %_ptr_Function_v2float Function
-%912 = OpVariable %_ptr_Function_v2float Function
-%_37_blend_color_burn = OpVariable %_ptr_Function_v4float Function
-%928 = OpVariable %_ptr_Function_v2float Function
+%842 = OpVariable %_ptr_Function_v2float Function
+%845 = OpVariable %_ptr_Function_v2float Function
+%849 = OpVariable %_ptr_Function_v2float Function
+%852 = OpVariable %_ptr_Function_v2float Function
+%856 = OpVariable %_ptr_Function_v2float Function
+%859 = OpVariable %_ptr_Function_v2float Function
+%873 = OpVariable %_ptr_Function_v2float Function
+%876 = OpVariable %_ptr_Function_v2float Function
+%880 = OpVariable %_ptr_Function_v2float Function
+%883 = OpVariable %_ptr_Function_v2float Function
+%887 = OpVariable %_ptr_Function_v2float Function
+%890 = OpVariable %_ptr_Function_v2float Function
+%903 = OpVariable %_ptr_Function_v4float Function
+%905 = OpVariable %_ptr_Function_v4float Function
+%910 = OpVariable %_ptr_Function_v4float Function
+%917 = OpVariable %_ptr_Function_v2float Function
+%920 = OpVariable %_ptr_Function_v2float Function
+%924 = OpVariable %_ptr_Function_v2float Function
+%927 = OpVariable %_ptr_Function_v2float Function
 %931 = OpVariable %_ptr_Function_v2float Function
-%935 = OpVariable %_ptr_Function_v2float Function
-%938 = OpVariable %_ptr_Function_v2float Function
-%942 = OpVariable %_ptr_Function_v2float Function
-%945 = OpVariable %_ptr_Function_v2float Function
-%_38_blend_hard_light = OpVariable %_ptr_Function_v4float Function
-%960 = OpVariable %_ptr_Function_v4float Function
-%962 = OpVariable %_ptr_Function_v4float Function
-%_39_blend_soft_light = OpVariable %_ptr_Function_v4float Function
-%969 = OpVariable %_ptr_Function_v4float Function
-%976 = OpVariable %_ptr_Function_v2float Function
-%979 = OpVariable %_ptr_Function_v2float Function
-%983 = OpVariable %_ptr_Function_v2float Function
-%986 = OpVariable %_ptr_Function_v2float Function
-%990 = OpVariable %_ptr_Function_v2float Function
-%993 = OpVariable %_ptr_Function_v2float Function
-%_40_blend_difference = OpVariable %_ptr_Function_v4float Function
-%_41_blend_exclusion = OpVariable %_ptr_Function_v4float Function
-%_42_blend_multiply = OpVariable %_ptr_Function_v4float Function
-%_43_blend_hue = OpVariable %_ptr_Function_v4float Function
+%934 = OpVariable %_ptr_Function_v2float Function
 %_44_alpha = OpVariable %_ptr_Function_float Function
 %_45_sda = OpVariable %_ptr_Function_v3float Function
 %_46_dsa = OpVariable %_ptr_Function_v3float Function
-%1121 = OpVariable %_ptr_Function_v3float Function
-%1123 = OpVariable %_ptr_Function_v3float Function
-%1125 = OpVariable %_ptr_Function_v3float Function
-%1127 = OpVariable %_ptr_Function_float Function
-%1129 = OpVariable %_ptr_Function_v3float Function
-%_47_blend_saturation = OpVariable %_ptr_Function_v4float Function
+%1054 = OpVariable %_ptr_Function_v3float Function
+%1056 = OpVariable %_ptr_Function_v3float Function
+%1058 = OpVariable %_ptr_Function_v3float Function
+%1060 = OpVariable %_ptr_Function_float Function
+%1062 = OpVariable %_ptr_Function_v3float Function
 %_48_alpha = OpVariable %_ptr_Function_float Function
 %_49_sda = OpVariable %_ptr_Function_v3float Function
 %_50_dsa = OpVariable %_ptr_Function_v3float Function
-%1173 = OpVariable %_ptr_Function_v3float Function
-%1175 = OpVariable %_ptr_Function_v3float Function
-%1177 = OpVariable %_ptr_Function_v3float Function
-%1179 = OpVariable %_ptr_Function_float Function
-%1181 = OpVariable %_ptr_Function_v3float Function
-%_51_blend_color = OpVariable %_ptr_Function_v4float Function
+%1104 = OpVariable %_ptr_Function_v3float Function
+%1106 = OpVariable %_ptr_Function_v3float Function
+%1108 = OpVariable %_ptr_Function_v3float Function
+%1110 = OpVariable %_ptr_Function_float Function
+%1112 = OpVariable %_ptr_Function_v3float Function
 %_52_alpha = OpVariable %_ptr_Function_float Function
 %_53_sda = OpVariable %_ptr_Function_v3float Function
 %_54_dsa = OpVariable %_ptr_Function_v3float Function
-%1225 = OpVariable %_ptr_Function_v3float Function
-%1227 = OpVariable %_ptr_Function_float Function
-%1229 = OpVariable %_ptr_Function_v3float Function
-%_55_blend_luminosity = OpVariable %_ptr_Function_v4float Function
+%1154 = OpVariable %_ptr_Function_v3float Function
+%1156 = OpVariable %_ptr_Function_float Function
+%1158 = OpVariable %_ptr_Function_v3float Function
 %_56_alpha = OpVariable %_ptr_Function_float Function
 %_57_sda = OpVariable %_ptr_Function_v3float Function
 %_58_dsa = OpVariable %_ptr_Function_v3float Function
-%1273 = OpVariable %_ptr_Function_v3float Function
-%1275 = OpVariable %_ptr_Function_float Function
-%1277 = OpVariable %_ptr_Function_v3float Function
-%691 = OpLoad %int %687
-OpSelectionMerge %692 None
-OpSwitch %691 %692 0 %693 1 %694 2 %695 3 %696 4 %697 5 %698 6 %699 7 %700 8 %701 9 %702 10 %703 11 %704 12 %705 13 %706 14 %707 15 %708 16 %709 17 %710 18 %711 19 %712 20 %713 21 %714 22 %715 23 %716 24 %717 25 %718 26 %719 27 %720 28 %721
-%693 = OpLabel
-OpReturnValue %722
-%694 = OpLabel
-%724 = OpLoad %v4float %688
-OpStore %_15_blend_src %724
-%725 = OpLoad %v4float %_15_blend_src
-OpReturnValue %725
-%695 = OpLabel
-%727 = OpLoad %v4float %689
-OpStore %_16_blend_dst %727
-%728 = OpLoad %v4float %_16_blend_dst
+%1200 = OpVariable %_ptr_Function_v3float Function
+%1202 = OpVariable %_ptr_Function_float Function
+%1204 = OpVariable %_ptr_Function_v3float Function
+%677 = OpLoad %int %673
+OpSelectionMerge %678 None
+OpSwitch %677 %678 0 %679 1 %680 2 %681 3 %682 4 %683 5 %684 6 %685 7 %686 8 %687 9 %688 10 %689 11 %690 12 %691 13 %692 14 %693 15 %694 16 %695 17 %696 18 %697 19 %698 20 %699 21 %700 22 %701 23 %702 24 %703 25 %704 26 %705 27 %706 28 %707
+%679 = OpLabel
+OpReturnValue %708
+%680 = OpLabel
+%709 = OpLoad %v4float %674
+OpReturnValue %709
+%681 = OpLabel
+%710 = OpLoad %v4float %675
+OpReturnValue %710
+%682 = OpLabel
+%711 = OpLoad %v4float %674
+%712 = OpLoad %v4float %674
+%713 = OpCompositeExtract %float %712 3
+%714 = OpFSub %float %float_1 %713
+%715 = OpLoad %v4float %675
+%716 = OpVectorTimesScalar %v4float %715 %714
+%717 = OpFAdd %v4float %711 %716
+OpReturnValue %717
+%683 = OpLabel
+%718 = OpLoad %v4float %675
+%719 = OpCompositeExtract %float %718 3
+%720 = OpFSub %float %float_1 %719
+%721 = OpLoad %v4float %674
+%722 = OpVectorTimesScalar %v4float %721 %720
+%723 = OpLoad %v4float %675
+%724 = OpFAdd %v4float %722 %723
+OpReturnValue %724
+%684 = OpLabel
+%725 = OpLoad %v4float %674
+%726 = OpLoad %v4float %675
+%727 = OpCompositeExtract %float %726 3
+%728 = OpVectorTimesScalar %v4float %725 %727
 OpReturnValue %728
-%696 = OpLabel
-%730 = OpLoad %v4float %688
-%731 = OpLoad %v4float %688
-%732 = OpCompositeExtract %float %731 3
-%733 = OpFSub %float %float_1 %732
-%734 = OpLoad %v4float %689
-%735 = OpVectorTimesScalar %v4float %734 %733
-%736 = OpFAdd %v4float %730 %735
-OpStore %_17_blend_src_over %736
-%737 = OpLoad %v4float %_17_blend_src_over
+%685 = OpLabel
+%729 = OpLoad %v4float %675
+%730 = OpLoad %v4float %674
+%731 = OpCompositeExtract %float %730 3
+%732 = OpVectorTimesScalar %v4float %729 %731
+OpReturnValue %732
+%686 = OpLabel
+%733 = OpLoad %v4float %675
+%734 = OpCompositeExtract %float %733 3
+%735 = OpFSub %float %float_1 %734
+%736 = OpLoad %v4float %674
+%737 = OpVectorTimesScalar %v4float %736 %735
 OpReturnValue %737
-%697 = OpLabel
-%739 = OpLoad %v4float %689
-%740 = OpCompositeExtract %float %739 3
-%741 = OpFSub %float %float_1 %740
-%742 = OpLoad %v4float %688
-%743 = OpVectorTimesScalar %v4float %742 %741
-%744 = OpLoad %v4float %689
-%745 = OpFAdd %v4float %743 %744
-OpStore %_18_blend_dst_over %745
-%746 = OpLoad %v4float %_18_blend_dst_over
-OpReturnValue %746
-%698 = OpLabel
-%748 = OpLoad %v4float %688
-%749 = OpLoad %v4float %689
-%750 = OpCompositeExtract %float %749 3
-%751 = OpVectorTimesScalar %v4float %748 %750
-OpStore %_19_blend_src_in %751
-%752 = OpLoad %v4float %_19_blend_src_in
+%687 = OpLabel
+%738 = OpLoad %v4float %674
+%739 = OpCompositeExtract %float %738 3
+%740 = OpFSub %float %float_1 %739
+%741 = OpLoad %v4float %675
+%742 = OpVectorTimesScalar %v4float %741 %740
+OpReturnValue %742
+%688 = OpLabel
+%743 = OpLoad %v4float %675
+%744 = OpCompositeExtract %float %743 3
+%745 = OpLoad %v4float %674
+%746 = OpVectorTimesScalar %v4float %745 %744
+%747 = OpLoad %v4float %674
+%748 = OpCompositeExtract %float %747 3
+%749 = OpFSub %float %float_1 %748
+%750 = OpLoad %v4float %675
+%751 = OpVectorTimesScalar %v4float %750 %749
+%752 = OpFAdd %v4float %746 %751
 OpReturnValue %752
-%699 = OpLabel
-%755 = OpLoad %v4float %689
-%756 = OpLoad %v4float %688
-%757 = OpCompositeExtract %float %756 3
-%758 = OpVectorTimesScalar %v4float %755 %757
-OpStore %_21_blend_src_in %758
-%759 = OpLoad %v4float %_21_blend_src_in
-OpStore %_20_blend_dst_in %759
-%760 = OpLoad %v4float %_20_blend_dst_in
-OpReturnValue %760
-%700 = OpLabel
-%762 = OpLoad %v4float %689
-%763 = OpCompositeExtract %float %762 3
-%764 = OpFSub %float %float_1 %763
-%765 = OpLoad %v4float %688
-%766 = OpVectorTimesScalar %v4float %765 %764
-OpStore %_22_blend_src_out %766
-%767 = OpLoad %v4float %_22_blend_src_out
-OpReturnValue %767
-%701 = OpLabel
-%769 = OpLoad %v4float %688
-%770 = OpCompositeExtract %float %769 3
-%771 = OpFSub %float %float_1 %770
-%772 = OpLoad %v4float %689
-%773 = OpVectorTimesScalar %v4float %772 %771
-OpStore %_23_blend_dst_out %773
-%774 = OpLoad %v4float %_23_blend_dst_out
+%689 = OpLabel
+%753 = OpLoad %v4float %675
+%754 = OpCompositeExtract %float %753 3
+%755 = OpFSub %float %float_1 %754
+%756 = OpLoad %v4float %674
+%757 = OpVectorTimesScalar %v4float %756 %755
+%758 = OpLoad %v4float %674
+%759 = OpCompositeExtract %float %758 3
+%760 = OpLoad %v4float %675
+%761 = OpVectorTimesScalar %v4float %760 %759
+%762 = OpFAdd %v4float %757 %761
+OpReturnValue %762
+%690 = OpLabel
+%763 = OpLoad %v4float %675
+%764 = OpCompositeExtract %float %763 3
+%765 = OpFSub %float %float_1 %764
+%766 = OpLoad %v4float %674
+%767 = OpVectorTimesScalar %v4float %766 %765
+%768 = OpLoad %v4float %674
+%769 = OpCompositeExtract %float %768 3
+%770 = OpFSub %float %float_1 %769
+%771 = OpLoad %v4float %675
+%772 = OpVectorTimesScalar %v4float %771 %770
+%773 = OpFAdd %v4float %767 %772
+OpReturnValue %773
+%691 = OpLabel
+%775 = OpLoad %v4float %674
+%776 = OpLoad %v4float %675
+%777 = OpFAdd %v4float %775 %776
+%778 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1
+%774 = OpExtInst %v4float %1 FMin %777 %778
 OpReturnValue %774
-%702 = OpLabel
-%776 = OpLoad %v4float %689
-%777 = OpCompositeExtract %float %776 3
-%778 = OpLoad %v4float %688
-%779 = OpVectorTimesScalar %v4float %778 %777
-%780 = OpLoad %v4float %688
-%781 = OpCompositeExtract %float %780 3
-%782 = OpFSub %float %float_1 %781
-%783 = OpLoad %v4float %689
-%784 = OpVectorTimesScalar %v4float %783 %782
-%785 = OpFAdd %v4float %779 %784
-OpStore %_24_blend_src_atop %785
-%786 = OpLoad %v4float %_24_blend_src_atop
-OpReturnValue %786
-%703 = OpLabel
-%788 = OpLoad %v4float %689
-%789 = OpCompositeExtract %float %788 3
-%790 = OpFSub %float %float_1 %789
-%791 = OpLoad %v4float %688
-%792 = OpVectorTimesScalar %v4float %791 %790
-%793 = OpLoad %v4float %688
-%794 = OpCompositeExtract %float %793 3
-%795 = OpLoad %v4float %689
-%796 = OpVectorTimesScalar %v4float %795 %794
-%797 = OpFAdd %v4float %792 %796
-OpStore %_25_blend_dst_atop %797
-%798 = OpLoad %v4float %_25_blend_dst_atop
-OpReturnValue %798
-%704 = OpLabel
-%800 = OpLoad %v4float %689
-%801 = OpCompositeExtract %float %800 3
-%802 = OpFSub %float %float_1 %801
-%803 = OpLoad %v4float %688
-%804 = OpVectorTimesScalar %v4float %803 %802
-%805 = OpLoad %v4float %688
+%692 = OpLabel
+%779 = OpLoad %v4float %674
+%780 = OpLoad %v4float %675
+%781 = OpFMul %v4float %779 %780
+OpReturnValue %781
+%693 = OpLabel
+%782 = OpLoad %v4float %674
+%783 = OpLoad %v4float %674
+%784 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1
+%785 = OpFSub %v4float %784 %783
+%786 = OpLoad %v4float %675
+%787 = OpFMul %v4float %785 %786
+%788 = OpFAdd %v4float %782 %787
+OpReturnValue %788
+%694 = OpLabel
+%789 = OpLoad %v4float %674
+OpStore %790 %789
+%791 = OpLoad %v4float %675
+OpStore %792 %791
+%793 = OpFunctionCall %v4float %blend_overlay %790 %792
+OpReturnValue %793
+%695 = OpLabel
+%795 = OpLoad %v4float %674
+%796 = OpLoad %v4float %674
+%797 = OpCompositeExtract %float %796 3
+%798 = OpFSub %float %float_1 %797
+%799 = OpLoad %v4float %675
+%800 = OpVectorTimesScalar %v4float %799 %798
+%801 = OpFAdd %v4float %795 %800
+OpStore %_32_result %801
+%803 = OpLoad %v4float %_32_result
+%804 = OpVectorShuffle %v3float %803 %803 0 1 2
+%805 = OpLoad %v4float %675
 %806 = OpCompositeExtract %float %805 3
 %807 = OpFSub %float %float_1 %806
-%808 = OpLoad %v4float %689
-%809 = OpVectorTimesScalar %v4float %808 %807
-%810 = OpFAdd %v4float %804 %809
-OpStore %_26_blend_xor %810
-%811 = OpLoad %v4float %_26_blend_xor
-OpReturnValue %811
-%705 = OpLabel
-%814 = OpLoad %v4float %688
-%815 = OpLoad %v4float %689
-%816 = OpFAdd %v4float %814 %815
-%817 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1
-%813 = OpExtInst %v4float %1 FMin %816 %817
-OpStore %_27_blend_plus %813
-%818 = OpLoad %v4float %_27_blend_plus
-OpReturnValue %818
-%706 = OpLabel
-%820 = OpLoad %v4float %688
-%821 = OpLoad %v4float %689
-%822 = OpFMul %v4float %820 %821
-OpStore %_28_blend_modulate %822
-%823 = OpLoad %v4float %_28_blend_modulate
-OpReturnValue %823
-%707 = OpLabel
-%825 = OpLoad %v4float %688
-%826 = OpLoad %v4float %688
-%827 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1
-%828 = OpFSub %v4float %827 %826
-%829 = OpLoad %v4float %689
-%830 = OpFMul %v4float %828 %829
-%831 = OpFAdd %v4float %825 %830
-OpStore %_29_blend_screen %831
-%832 = OpLoad %v4float %_29_blend_screen
-OpReturnValue %832
-%708 = OpLabel
-%833 = OpLoad %v4float %688
-OpStore %834 %833
-%835 = OpLoad %v4float %689
-OpStore %836 %835
-%837 = OpFunctionCall %v4float %blend_overlay %834 %836
-OpReturnValue %837
-%709 = OpLabel
-%840 = OpLoad %v4float %688
-%841 = OpLoad %v4float %688
-%842 = OpCompositeExtract %float %841 3
-%843 = OpFSub %float %float_1 %842
-%844 = OpLoad %v4float %689
-%845 = OpVectorTimesScalar %v4float %844 %843
-%846 = OpFAdd %v4float %840 %845
-OpStore %_31_blend_src_over %846
-%848 = OpLoad %v4float %_31_blend_src_over
-OpStore %_32_result %848
-%850 = OpLoad %v4float %_32_result
-%851 = OpVectorShuffle %v3float %850 %850 0 1 2
-%852 = OpLoad %v4float %689
-%853 = OpCompositeExtract %float %852 3
-%854 = OpFSub %float %float_1 %853
-%855 = OpLoad %v4float %688
-%856 = OpVectorShuffle %v3float %855 %855 0 1 2
-%857 = OpVectorTimesScalar %v3float %856 %854
-%858 = OpLoad %v4float %689
-%859 = OpVectorShuffle %v3float %858 %858 0 1 2
-%860 = OpFAdd %v3float %857 %859
-%849 = OpExtInst %v3float %1 FMin %851 %860
-%861 = OpLoad %v4float %_32_result
-%862 = OpVectorShuffle %v4float %861 %849 4 5 6 3
-OpStore %_32_result %862
-%863 = OpLoad %v4float %_32_result
-OpStore %_30_blend_darken %863
-%864 = OpLoad %v4float %_30_blend_darken
-OpReturnValue %864
-%710 = OpLabel
-%867 = OpLoad %v4float %688
-%868 = OpLoad %v4float %688
-%869 = OpCompositeExtract %float %868 3
-%870 = OpFSub %float %float_1 %869
-%871 = OpLoad %v4float %689
-%872 = OpVectorTimesScalar %v4float %871 %870
-%873 = OpFAdd %v4float %867 %872
-OpStore %_34_blend_src_over %873
-%875 = OpLoad %v4float %_34_blend_src_over
-OpStore %_35_result %875
-%877 = OpLoad %v4float %_35_result
-%878 = OpVectorShuffle %v3float %877 %877 0 1 2
-%879 = OpLoad %v4float %689
-%880 = OpCompositeExtract %float %879 3
-%881 = OpFSub %float %float_1 %880
-%882 = OpLoad %v4float %688
-%883 = OpVectorShuffle %v3float %882 %882 0 1 2
-%884 = OpVectorTimesScalar %v3float %883 %881
-%885 = OpLoad %v4float %689
-%886 = OpVectorShuffle %v3float %885 %885 0 1 2
-%887 = OpFAdd %v3float %884 %886
-%876 = OpExtInst %v3float %1 FMax %878 %887
-%888 = OpLoad %v4float %_35_result
-%889 = OpVectorShuffle %v4float %888 %876 4 5 6 3
-OpStore %_35_result %889
-%890 = OpLoad %v4float %_35_result
-OpStore %_33_blend_lighten %890
-%891 = OpLoad %v4float %_33_blend_lighten
-OpReturnValue %891
-%711 = OpLabel
-%893 = OpLoad %v4float %688
-%894 = OpVectorShuffle %v2float %893 %893 0 3
-OpStore %895 %894
-%896 = OpLoad %v4float %689
-%897 = OpVectorShuffle %v2float %896 %896 0 3
-OpStore %898 %897
-%899 = OpFunctionCall %float %_color_dodge_component %895 %898
-%900 = OpLoad %v4float %688
-%901 = OpVectorShuffle %v2float %900 %900 1 3
-OpStore %902 %901
-%903 = OpLoad %v4float %689
-%904 = OpVectorShuffle %v2float %903 %903 1 3
+%808 = OpLoad %v4float %674
+%809 = OpVectorShuffle %v3float %808 %808 0 1 2
+%810 = OpVectorTimesScalar %v3float %809 %807
+%811 = OpLoad %v4float %675
+%812 = OpVectorShuffle %v3float %811 %811 0 1 2
+%813 = OpFAdd %v3float %810 %812
+%802 = OpExtInst %v3float %1 FMin %804 %813
+%814 = OpLoad %v4float %_32_result
+%815 = OpVectorShuffle %v4float %814 %802 4 5 6 3
+OpStore %_32_result %815
+%816 = OpLoad %v4float %_32_result
+OpReturnValue %816
+%696 = OpLabel
+%818 = OpLoad %v4float %674
+%819 = OpLoad %v4float %674
+%820 = OpCompositeExtract %float %819 3
+%821 = OpFSub %float %float_1 %820
+%822 = OpLoad %v4float %675
+%823 = OpVectorTimesScalar %v4float %822 %821
+%824 = OpFAdd %v4float %818 %823
+OpStore %_35_result %824
+%826 = OpLoad %v4float %_35_result
+%827 = OpVectorShuffle %v3float %826 %826 0 1 2
+%828 = OpLoad %v4float %675
+%829 = OpCompositeExtract %float %828 3
+%830 = OpFSub %float %float_1 %829
+%831 = OpLoad %v4float %674
+%832 = OpVectorShuffle %v3float %831 %831 0 1 2
+%833 = OpVectorTimesScalar %v3float %832 %830
+%834 = OpLoad %v4float %675
+%835 = OpVectorShuffle %v3float %834 %834 0 1 2
+%836 = OpFAdd %v3float %833 %835
+%825 = OpExtInst %v3float %1 FMax %827 %836
+%837 = OpLoad %v4float %_35_result
+%838 = OpVectorShuffle %v4float %837 %825 4 5 6 3
+OpStore %_35_result %838
+%839 = OpLoad %v4float %_35_result
+OpReturnValue %839
+%697 = OpLabel
+%840 = OpLoad %v4float %674
+%841 = OpVectorShuffle %v2float %840 %840 0 3
+OpStore %842 %841
+%843 = OpLoad %v4float %675
+%844 = OpVectorShuffle %v2float %843 %843 0 3
+OpStore %845 %844
+%846 = OpFunctionCall %float %_color_dodge_component %842 %845
+%847 = OpLoad %v4float %674
+%848 = OpVectorShuffle %v2float %847 %847 1 3
+OpStore %849 %848
+%850 = OpLoad %v4float %675
+%851 = OpVectorShuffle %v2float %850 %850 1 3
+OpStore %852 %851
+%853 = OpFunctionCall %float %_color_dodge_component %849 %852
+%854 = OpLoad %v4float %674
+%855 = OpVectorShuffle %v2float %854 %854 2 3
+OpStore %856 %855
+%857 = OpLoad %v4float %675
+%858 = OpVectorShuffle %v2float %857 %857 2 3
+OpStore %859 %858
+%860 = OpFunctionCall %float %_color_dodge_component %856 %859
+%861 = OpLoad %v4float %674
+%862 = OpCompositeExtract %float %861 3
+%863 = OpLoad %v4float %674
+%864 = OpCompositeExtract %float %863 3
+%865 = OpFSub %float %float_1 %864
+%866 = OpLoad %v4float %675
+%867 = OpCompositeExtract %float %866 3
+%868 = OpFMul %float %865 %867
+%869 = OpFAdd %float %862 %868
+%870 = OpCompositeConstruct %v4float %846 %853 %860 %869
+OpReturnValue %870
+%698 = OpLabel
+%871 = OpLoad %v4float %674
+%872 = OpVectorShuffle %v2float %871 %871 0 3
+OpStore %873 %872
+%874 = OpLoad %v4float %675
+%875 = OpVectorShuffle %v2float %874 %874 0 3
+OpStore %876 %875
+%877 = OpFunctionCall %float %_color_burn_component %873 %876
+%878 = OpLoad %v4float %674
+%879 = OpVectorShuffle %v2float %878 %878 1 3
+OpStore %880 %879
+%881 = OpLoad %v4float %675
+%882 = OpVectorShuffle %v2float %881 %881 1 3
+OpStore %883 %882
+%884 = OpFunctionCall %float %_color_burn_component %880 %883
+%885 = OpLoad %v4float %674
+%886 = OpVectorShuffle %v2float %885 %885 2 3
+OpStore %887 %886
+%888 = OpLoad %v4float %675
+%889 = OpVectorShuffle %v2float %888 %888 2 3
+OpStore %890 %889
+%891 = OpFunctionCall %float %_color_burn_component %887 %890
+%892 = OpLoad %v4float %674
+%893 = OpCompositeExtract %float %892 3
+%894 = OpLoad %v4float %674
+%895 = OpCompositeExtract %float %894 3
+%896 = OpFSub %float %float_1 %895
+%897 = OpLoad %v4float %675
+%898 = OpCompositeExtract %float %897 3
+%899 = OpFMul %float %896 %898
+%900 = OpFAdd %float %893 %899
+%901 = OpCompositeConstruct %v4float %877 %884 %891 %900
+OpReturnValue %901
+%699 = OpLabel
+%902 = OpLoad %v4float %675
+OpStore %903 %902
+%904 = OpLoad %v4float %674
 OpStore %905 %904
-%906 = OpFunctionCall %float %_color_dodge_component %902 %905
-%907 = OpLoad %v4float %688
-%908 = OpVectorShuffle %v2float %907 %907 2 3
-OpStore %909 %908
-%910 = OpLoad %v4float %689
-%911 = OpVectorShuffle %v2float %910 %910 2 3
-OpStore %912 %911
-%913 = OpFunctionCall %float %_color_dodge_component %909 %912
-%914 = OpLoad %v4float %688
-%915 = OpCompositeExtract %float %914 3
-%916 = OpLoad %v4float %688
-%917 = OpCompositeExtract %float %916 3
-%918 = OpFSub %float %float_1 %917
-%919 = OpLoad %v4float %689
-%920 = OpCompositeExtract %float %919 3
-%921 = OpFMul %float %918 %920
-%922 = OpFAdd %float %915 %921
-%923 = OpCompositeConstruct %v4float %899 %906 %913 %922
-OpStore %_36_blend_color_dodge %923
-%924 = OpLoad %v4float %_36_blend_color_dodge
-OpReturnValue %924
-%712 = OpLabel
-%926 = OpLoad %v4float %688
-%927 = OpVectorShuffle %v2float %926 %926 0 3
-OpStore %928 %927
-%929 = OpLoad %v4float %689
-%930 = OpVectorShuffle %v2float %929 %929 0 3
+%906 = OpFunctionCall %v4float %blend_overlay %903 %905
+OpReturnValue %906
+%700 = OpLabel
+%907 = OpLoad %v4float %675
+%908 = OpCompositeExtract %float %907 3
+%909 = OpFOrdEqual %bool %908 %float_0
+OpSelectionMerge %913 None
+OpBranchConditional %909 %911 %912
+%911 = OpLabel
+%914 = OpLoad %v4float %674
+OpStore %910 %914
+OpBranch %913
+%912 = OpLabel
+%915 = OpLoad %v4float %674
+%916 = OpVectorShuffle %v2float %915 %915 0 3
+OpStore %917 %916
+%918 = OpLoad %v4float %675
+%919 = OpVectorShuffle %v2float %918 %918 0 3
+OpStore %920 %919
+%921 = OpFunctionCall %float %_soft_light_component %917 %920
+%922 = OpLoad %v4float %674
+%923 = OpVectorShuffle %v2float %922 %922 1 3
+OpStore %924 %923
+%925 = OpLoad %v4float %675
+%926 = OpVectorShuffle %v2float %925 %925 1 3
+OpStore %927 %926
+%928 = OpFunctionCall %float %_soft_light_component %924 %927
+%929 = OpLoad %v4float %674
+%930 = OpVectorShuffle %v2float %929 %929 2 3
 OpStore %931 %930
-%932 = OpFunctionCall %float %_color_burn_component %928 %931
-%933 = OpLoad %v4float %688
-%934 = OpVectorShuffle %v2float %933 %933 1 3
-OpStore %935 %934
-%936 = OpLoad %v4float %689
-%937 = OpVectorShuffle %v2float %936 %936 1 3
-OpStore %938 %937
-%939 = OpFunctionCall %float %_color_burn_component %935 %938
-%940 = OpLoad %v4float %688
-%941 = OpVectorShuffle %v2float %940 %940 2 3
-OpStore %942 %941
-%943 = OpLoad %v4float %689
-%944 = OpVectorShuffle %v2float %943 %943 2 3
-OpStore %945 %944
-%946 = OpFunctionCall %float %_color_burn_component %942 %945
-%947 = OpLoad %v4float %688
-%948 = OpCompositeExtract %float %947 3
-%949 = OpLoad %v4float %688
-%950 = OpCompositeExtract %float %949 3
-%951 = OpFSub %float %float_1 %950
-%952 = OpLoad %v4float %689
-%953 = OpCompositeExtract %float %952 3
-%954 = OpFMul %float %951 %953
-%955 = OpFAdd %float %948 %954
-%956 = OpCompositeConstruct %v4float %932 %939 %946 %955
-OpStore %_37_blend_color_burn %956
-%957 = OpLoad %v4float %_37_blend_color_burn
-OpReturnValue %957
-%713 = OpLabel
-%959 = OpLoad %v4float %689
-OpStore %960 %959
-%961 = OpLoad %v4float %688
-OpStore %962 %961
-%963 = OpFunctionCall %v4float %blend_overlay %960 %962
-OpStore %_38_blend_hard_light %963
-%964 = OpLoad %v4float %_38_blend_hard_light
-OpReturnValue %964
-%714 = OpLabel
-%966 = OpLoad %v4float %689
-%967 = OpCompositeExtract %float %966 3
-%968 = OpFOrdEqual %bool %967 %float_0
-OpSelectionMerge %972 None
-OpBranchConditional %968 %970 %971
-%970 = OpLabel
-%973 = OpLoad %v4float %688
-OpStore %969 %973
-OpBranch %972
-%971 = OpLabel
-%974 = OpLoad %v4float %688
-%975 = OpVectorShuffle %v2float %974 %974 0 3
-OpStore %976 %975
-%977 = OpLoad %v4float %689
-%978 = OpVectorShuffle %v2float %977 %977 0 3
-OpStore %979 %978
-%980 = OpFunctionCall %float %_soft_light_component %976 %979
-%981 = OpLoad %v4float %688
-%982 = OpVectorShuffle %v2float %981 %981 1 3
-OpStore %983 %982
-%984 = OpLoad %v4float %689
-%985 = OpVectorShuffle %v2float %984 %984 1 3
-OpStore %986 %985
-%987 = OpFunctionCall %float %_soft_light_component %983 %986
-%988 = OpLoad %v4float %688
-%989 = OpVectorShuffle %v2float %988 %988 2 3
-OpStore %990 %989
-%991 = OpLoad %v4float %689
-%992 = OpVectorShuffle %v2float %991 %991 2 3
-OpStore %993 %992
-%994 = OpFunctionCall %float %_soft_light_component %990 %993
-%995 = OpLoad %v4float %688
+%932 = OpLoad %v4float %675
+%933 = OpVectorShuffle %v2float %932 %932 2 3
+OpStore %934 %933
+%935 = OpFunctionCall %float %_soft_light_component %931 %934
+%936 = OpLoad %v4float %674
+%937 = OpCompositeExtract %float %936 3
+%938 = OpLoad %v4float %674
+%939 = OpCompositeExtract %float %938 3
+%940 = OpFSub %float %float_1 %939
+%941 = OpLoad %v4float %675
+%942 = OpCompositeExtract %float %941 3
+%943 = OpFMul %float %940 %942
+%944 = OpFAdd %float %937 %943
+%945 = OpCompositeConstruct %v4float %921 %928 %935 %944
+OpStore %910 %945
+OpBranch %913
+%913 = OpLabel
+%946 = OpLoad %v4float %910
+OpReturnValue %946
+%701 = OpLabel
+%947 = OpLoad %v4float %674
+%948 = OpVectorShuffle %v3float %947 %947 0 1 2
+%949 = OpLoad %v4float %675
+%950 = OpVectorShuffle %v3float %949 %949 0 1 2
+%951 = OpFAdd %v3float %948 %950
+%953 = OpLoad %v4float %674
+%954 = OpVectorShuffle %v3float %953 %953 0 1 2
+%955 = OpLoad %v4float %675
+%956 = OpCompositeExtract %float %955 3
+%957 = OpVectorTimesScalar %v3float %954 %956
+%958 = OpLoad %v4float %675
+%959 = OpVectorShuffle %v3float %958 %958 0 1 2
+%960 = OpLoad %v4float %674
+%961 = OpCompositeExtract %float %960 3
+%962 = OpVectorTimesScalar %v3float %959 %961
+%952 = OpExtInst %v3float %1 FMin %957 %962
+%963 = OpVectorTimesScalar %v3float %952 %float_2
+%964 = OpFSub %v3float %951 %963
+%965 = OpCompositeExtract %float %964 0
+%966 = OpCompositeExtract %float %964 1
+%967 = OpCompositeExtract %float %964 2
+%968 = OpLoad %v4float %674
+%969 = OpCompositeExtract %float %968 3
+%970 = OpLoad %v4float %674
+%971 = OpCompositeExtract %float %970 3
+%972 = OpFSub %float %float_1 %971
+%973 = OpLoad %v4float %675
+%974 = OpCompositeExtract %float %973 3
+%975 = OpFMul %float %972 %974
+%976 = OpFAdd %float %969 %975
+%977 = OpCompositeConstruct %v4float %965 %966 %967 %976
+OpReturnValue %977
+%702 = OpLabel
+%978 = OpLoad %v4float %675
+%979 = OpVectorShuffle %v3float %978 %978 0 1 2
+%980 = OpLoad %v4float %674
+%981 = OpVectorShuffle %v3float %980 %980 0 1 2
+%982 = OpFAdd %v3float %979 %981
+%983 = OpLoad %v4float %675
+%984 = OpVectorShuffle %v3float %983 %983 0 1 2
+%985 = OpVectorTimesScalar %v3float %984 %float_2
+%986 = OpLoad %v4float %674
+%987 = OpVectorShuffle %v3float %986 %986 0 1 2
+%988 = OpFMul %v3float %985 %987
+%989 = OpFSub %v3float %982 %988
+%990 = OpCompositeExtract %float %989 0
+%991 = OpCompositeExtract %float %989 1
+%992 = OpCompositeExtract %float %989 2
+%993 = OpLoad %v4float %674
+%994 = OpCompositeExtract %float %993 3
+%995 = OpLoad %v4float %674
 %996 = OpCompositeExtract %float %995 3
-%997 = OpLoad %v4float %688
-%998 = OpCompositeExtract %float %997 3
-%999 = OpFSub %float %float_1 %998
-%1000 = OpLoad %v4float %689
-%1001 = OpCompositeExtract %float %1000 3
-%1002 = OpFMul %float %999 %1001
-%1003 = OpFAdd %float %996 %1002
-%1004 = OpCompositeConstruct %v4float %980 %987 %994 %1003
-OpStore %969 %1004
-OpBranch %972
-%972 = OpLabel
-%1005 = OpLoad %v4float %969
-OpStore %_39_blend_soft_light %1005
-%1006 = OpLoad %v4float %_39_blend_soft_light
-OpReturnValue %1006
-%715 = OpLabel
-%1008 = OpLoad %v4float %688
-%1009 = OpVectorShuffle %v3float %1008 %1008 0 1 2
-%1010 = OpLoad %v4float %689
-%1011 = OpVectorShuffle %v3float %1010 %1010 0 1 2
-%1012 = OpFAdd %v3float %1009 %1011
-%1014 = OpLoad %v4float %688
-%1015 = OpVectorShuffle %v3float %1014 %1014 0 1 2
-%1016 = OpLoad %v4float %689
-%1017 = OpCompositeExtract %float %1016 3
-%1018 = OpVectorTimesScalar %v3float %1015 %1017
-%1019 = OpLoad %v4float %689
-%1020 = OpVectorShuffle %v3float %1019 %1019 0 1 2
-%1021 = OpLoad %v4float %688
-%1022 = OpCompositeExtract %float %1021 3
-%1023 = OpVectorTimesScalar %v3float %1020 %1022
-%1013 = OpExtInst %v3float %1 FMin %1018 %1023
-%1024 = OpVectorTimesScalar %v3float %1013 %float_2
-%1025 = OpFSub %v3float %1012 %1024
-%1026 = OpCompositeExtract %float %1025 0
-%1027 = OpCompositeExtract %float %1025 1
-%1028 = OpCompositeExtract %float %1025 2
-%1029 = OpLoad %v4float %688
-%1030 = OpCompositeExtract %float %1029 3
-%1031 = OpLoad %v4float %688
-%1032 = OpCompositeExtract %float %1031 3
-%1033 = OpFSub %float %float_1 %1032
-%1034 = OpLoad %v4float %689
-%1035 = OpCompositeExtract %float %1034 3
-%1036 = OpFMul %float %1033 %1035
-%1037 = OpFAdd %float %1030 %1036
-%1038 = OpCompositeConstruct %v4float %1026 %1027 %1028 %1037
-OpStore %_40_blend_difference %1038
-%1039 = OpLoad %v4float %_40_blend_difference
-OpReturnValue %1039
-%716 = OpLabel
-%1041 = OpLoad %v4float %689
-%1042 = OpVectorShuffle %v3float %1041 %1041 0 1 2
-%1043 = OpLoad %v4float %688
-%1044 = OpVectorShuffle %v3float %1043 %1043 0 1 2
-%1045 = OpFAdd %v3float %1042 %1044
-%1046 = OpLoad %v4float %689
-%1047 = OpVectorShuffle %v3float %1046 %1046 0 1 2
-%1048 = OpVectorTimesScalar %v3float %1047 %float_2
-%1049 = OpLoad %v4float %688
-%1050 = OpVectorShuffle %v3float %1049 %1049 0 1 2
-%1051 = OpFMul %v3float %1048 %1050
-%1052 = OpFSub %v3float %1045 %1051
-%1053 = OpCompositeExtract %float %1052 0
-%1054 = OpCompositeExtract %float %1052 1
-%1055 = OpCompositeExtract %float %1052 2
-%1056 = OpLoad %v4float %688
-%1057 = OpCompositeExtract %float %1056 3
-%1058 = OpLoad %v4float %688
-%1059 = OpCompositeExtract %float %1058 3
-%1060 = OpFSub %float %float_1 %1059
-%1061 = OpLoad %v4float %689
-%1062 = OpCompositeExtract %float %1061 3
-%1063 = OpFMul %float %1060 %1062
-%1064 = OpFAdd %float %1057 %1063
-%1065 = OpCompositeConstruct %v4float %1053 %1054 %1055 %1064
-OpStore %_41_blend_exclusion %1065
-%1066 = OpLoad %v4float %_41_blend_exclusion
-OpReturnValue %1066
-%717 = OpLabel
-%1068 = OpLoad %v4float %688
-%1069 = OpCompositeExtract %float %1068 3
-%1070 = OpFSub %float %float_1 %1069
-%1071 = OpLoad %v4float %689
-%1072 = OpVectorShuffle %v3float %1071 %1071 0 1 2
-%1073 = OpVectorTimesScalar %v3float %1072 %1070
-%1074 = OpLoad %v4float %689
-%1075 = OpCompositeExtract %float %1074 3
-%1076 = OpFSub %float %float_1 %1075
-%1077 = OpLoad %v4float %688
-%1078 = OpVectorShuffle %v3float %1077 %1077 0 1 2
-%1079 = OpVectorTimesScalar %v3float %1078 %1076
-%1080 = OpFAdd %v3float %1073 %1079
-%1081 = OpLoad %v4float %688
-%1082 = OpVectorShuffle %v3float %1081 %1081 0 1 2
-%1083 = OpLoad %v4float %689
-%1084 = OpVectorShuffle %v3float %1083 %1083 0 1 2
-%1085 = OpFMul %v3float %1082 %1084
-%1086 = OpFAdd %v3float %1080 %1085
-%1087 = OpCompositeExtract %float %1086 0
-%1088 = OpCompositeExtract %float %1086 1
-%1089 = OpCompositeExtract %float %1086 2
-%1090 = OpLoad %v4float %688
-%1091 = OpCompositeExtract %float %1090 3
-%1092 = OpLoad %v4float %688
-%1093 = OpCompositeExtract %float %1092 3
-%1094 = OpFSub %float %float_1 %1093
-%1095 = OpLoad %v4float %689
-%1096 = OpCompositeExtract %float %1095 3
-%1097 = OpFMul %float %1094 %1096
-%1098 = OpFAdd %float %1091 %1097
-%1099 = OpCompositeConstruct %v4float %1087 %1088 %1089 %1098
-OpStore %_42_blend_multiply %1099
-%1100 = OpLoad %v4float %_42_blend_multiply
-OpReturnValue %1100
-%718 = OpLabel
-%1103 = OpLoad %v4float %689
-%1104 = OpCompositeExtract %float %1103 3
-%1105 = OpLoad %v4float %688
-%1106 = OpCompositeExtract %float %1105 3
-%1107 = OpFMul %float %1104 %1106
-OpStore %_44_alpha %1107
-%1109 = OpLoad %v4float %688
-%1110 = OpVectorShuffle %v3float %1109 %1109 0 1 2
-%1111 = OpLoad %v4float %689
-%1112 = OpCompositeExtract %float %1111 3
-%1113 = OpVectorTimesScalar %v3float %1110 %1112
-OpStore %_45_sda %1113
-%1115 = OpLoad %v4float %689
-%1116 = OpVectorShuffle %v3float %1115 %1115 0 1 2
-%1117 = OpLoad %v4float %688
-%1118 = OpCompositeExtract %float %1117 3
-%1119 = OpVectorTimesScalar %v3float %1116 %1118
-OpStore %_46_dsa %1119
-%1120 = OpLoad %v3float %_45_sda
-OpStore %1121 %1120
-%1122 = OpLoad %v3float %_46_dsa
-OpStore %1123 %1122
-%1124 = OpFunctionCall %v3float %_blend_set_color_saturation %1121 %1123
-OpStore %1125 %1124
-%1126 = OpLoad %float %_44_alpha
-OpStore %1127 %1126
-%1128 = OpLoad %v3float %_46_dsa
-OpStore %1129 %1128
-%1130 = OpFunctionCall %v3float %_blend_set_color_luminance %1125 %1127 %1129
-%1131 = OpLoad %v4float %689
-%1132 = OpVectorShuffle %v3float %1131 %1131 0 1 2
-%1133 = OpFAdd %v3float %1130 %1132
-%1134 = OpLoad %v3float %_46_dsa
-%1135 = OpFSub %v3float %1133 %1134
-%1136 = OpLoad %v4float %688
-%1137 = OpVectorShuffle %v3float %1136 %1136 0 1 2
-%1138 = OpFAdd %v3float %1135 %1137
-%1139 = OpLoad %v3float %_45_sda
-%1140 = OpFSub %v3float %1138 %1139
-%1141 = OpCompositeExtract %float %1140 0
-%1142 = OpCompositeExtract %float %1140 1
-%1143 = OpCompositeExtract %float %1140 2
-%1144 = OpLoad %v4float %688
+%997 = OpFSub %float %float_1 %996
+%998 = OpLoad %v4float %675
+%999 = OpCompositeExtract %float %998 3
+%1000 = OpFMul %float %997 %999
+%1001 = OpFAdd %float %994 %1000
+%1002 = OpCompositeConstruct %v4float %990 %991 %992 %1001
+OpReturnValue %1002
+%703 = OpLabel
+%1003 = OpLoad %v4float %674
+%1004 = OpCompositeExtract %float %1003 3
+%1005 = OpFSub %float %float_1 %1004
+%1006 = OpLoad %v4float %675
+%1007 = OpVectorShuffle %v3float %1006 %1006 0 1 2
+%1008 = OpVectorTimesScalar %v3float %1007 %1005
+%1009 = OpLoad %v4float %675
+%1010 = OpCompositeExtract %float %1009 3
+%1011 = OpFSub %float %float_1 %1010
+%1012 = OpLoad %v4float %674
+%1013 = OpVectorShuffle %v3float %1012 %1012 0 1 2
+%1014 = OpVectorTimesScalar %v3float %1013 %1011
+%1015 = OpFAdd %v3float %1008 %1014
+%1016 = OpLoad %v4float %674
+%1017 = OpVectorShuffle %v3float %1016 %1016 0 1 2
+%1018 = OpLoad %v4float %675
+%1019 = OpVectorShuffle %v3float %1018 %1018 0 1 2
+%1020 = OpFMul %v3float %1017 %1019
+%1021 = OpFAdd %v3float %1015 %1020
+%1022 = OpCompositeExtract %float %1021 0
+%1023 = OpCompositeExtract %float %1021 1
+%1024 = OpCompositeExtract %float %1021 2
+%1025 = OpLoad %v4float %674
+%1026 = OpCompositeExtract %float %1025 3
+%1027 = OpLoad %v4float %674
+%1028 = OpCompositeExtract %float %1027 3
+%1029 = OpFSub %float %float_1 %1028
+%1030 = OpLoad %v4float %675
+%1031 = OpCompositeExtract %float %1030 3
+%1032 = OpFMul %float %1029 %1031
+%1033 = OpFAdd %float %1026 %1032
+%1034 = OpCompositeConstruct %v4float %1022 %1023 %1024 %1033
+OpReturnValue %1034
+%704 = OpLabel
+%1036 = OpLoad %v4float %675
+%1037 = OpCompositeExtract %float %1036 3
+%1038 = OpLoad %v4float %674
+%1039 = OpCompositeExtract %float %1038 3
+%1040 = OpFMul %float %1037 %1039
+OpStore %_44_alpha %1040
+%1042 = OpLoad %v4float %674
+%1043 = OpVectorShuffle %v3float %1042 %1042 0 1 2
+%1044 = OpLoad %v4float %675
+%1045 = OpCompositeExtract %float %1044 3
+%1046 = OpVectorTimesScalar %v3float %1043 %1045
+OpStore %_45_sda %1046
+%1048 = OpLoad %v4float %675
+%1049 = OpVectorShuffle %v3float %1048 %1048 0 1 2
+%1050 = OpLoad %v4float %674
+%1051 = OpCompositeExtract %float %1050 3
+%1052 = OpVectorTimesScalar %v3float %1049 %1051
+OpStore %_46_dsa %1052
+%1053 = OpLoad %v3float %_45_sda
+OpStore %1054 %1053
+%1055 = OpLoad %v3float %_46_dsa
+OpStore %1056 %1055
+%1057 = OpFunctionCall %v3float %_blend_set_color_saturation %1054 %1056
+OpStore %1058 %1057
+%1059 = OpLoad %float %_44_alpha
+OpStore %1060 %1059
+%1061 = OpLoad %v3float %_46_dsa
+OpStore %1062 %1061
+%1063 = OpFunctionCall %v3float %_blend_set_color_luminance %1058 %1060 %1062
+%1064 = OpLoad %v4float %675
+%1065 = OpVectorShuffle %v3float %1064 %1064 0 1 2
+%1066 = OpFAdd %v3float %1063 %1065
+%1067 = OpLoad %v3float %_46_dsa
+%1068 = OpFSub %v3float %1066 %1067
+%1069 = OpLoad %v4float %674
+%1070 = OpVectorShuffle %v3float %1069 %1069 0 1 2
+%1071 = OpFAdd %v3float %1068 %1070
+%1072 = OpLoad %v3float %_45_sda
+%1073 = OpFSub %v3float %1071 %1072
+%1074 = OpCompositeExtract %float %1073 0
+%1075 = OpCompositeExtract %float %1073 1
+%1076 = OpCompositeExtract %float %1073 2
+%1077 = OpLoad %v4float %674
+%1078 = OpCompositeExtract %float %1077 3
+%1079 = OpLoad %v4float %675
+%1080 = OpCompositeExtract %float %1079 3
+%1081 = OpFAdd %float %1078 %1080
+%1082 = OpLoad %float %_44_alpha
+%1083 = OpFSub %float %1081 %1082
+%1084 = OpCompositeConstruct %v4float %1074 %1075 %1076 %1083
+OpReturnValue %1084
+%705 = OpLabel
+%1086 = OpLoad %v4float %675
+%1087 = OpCompositeExtract %float %1086 3
+%1088 = OpLoad %v4float %674
+%1089 = OpCompositeExtract %float %1088 3
+%1090 = OpFMul %float %1087 %1089
+OpStore %_48_alpha %1090
+%1092 = OpLoad %v4float %674
+%1093 = OpVectorShuffle %v3float %1092 %1092 0 1 2
+%1094 = OpLoad %v4float %675
+%1095 = OpCompositeExtract %float %1094 3
+%1096 = OpVectorTimesScalar %v3float %1093 %1095
+OpStore %_49_sda %1096
+%1098 = OpLoad %v4float %675
+%1099 = OpVectorShuffle %v3float %1098 %1098 0 1 2
+%1100 = OpLoad %v4float %674
+%1101 = OpCompositeExtract %float %1100 3
+%1102 = OpVectorTimesScalar %v3float %1099 %1101
+OpStore %_50_dsa %1102
+%1103 = OpLoad %v3float %_50_dsa
+OpStore %1104 %1103
+%1105 = OpLoad %v3float %_49_sda
+OpStore %1106 %1105
+%1107 = OpFunctionCall %v3float %_blend_set_color_saturation %1104 %1106
+OpStore %1108 %1107
+%1109 = OpLoad %float %_48_alpha
+OpStore %1110 %1109
+%1111 = OpLoad %v3float %_50_dsa
+OpStore %1112 %1111
+%1113 = OpFunctionCall %v3float %_blend_set_color_luminance %1108 %1110 %1112
+%1114 = OpLoad %v4float %675
+%1115 = OpVectorShuffle %v3float %1114 %1114 0 1 2
+%1116 = OpFAdd %v3float %1113 %1115
+%1117 = OpLoad %v3float %_50_dsa
+%1118 = OpFSub %v3float %1116 %1117
+%1119 = OpLoad %v4float %674
+%1120 = OpVectorShuffle %v3float %1119 %1119 0 1 2
+%1121 = OpFAdd %v3float %1118 %1120
+%1122 = OpLoad %v3float %_49_sda
+%1123 = OpFSub %v3float %1121 %1122
+%1124 = OpCompositeExtract %float %1123 0
+%1125 = OpCompositeExtract %float %1123 1
+%1126 = OpCompositeExtract %float %1123 2
+%1127 = OpLoad %v4float %674
+%1128 = OpCompositeExtract %float %1127 3
+%1129 = OpLoad %v4float %675
+%1130 = OpCompositeExtract %float %1129 3
+%1131 = OpFAdd %float %1128 %1130
+%1132 = OpLoad %float %_48_alpha
+%1133 = OpFSub %float %1131 %1132
+%1134 = OpCompositeConstruct %v4float %1124 %1125 %1126 %1133
+OpReturnValue %1134
+%706 = OpLabel
+%1136 = OpLoad %v4float %675
+%1137 = OpCompositeExtract %float %1136 3
+%1138 = OpLoad %v4float %674
+%1139 = OpCompositeExtract %float %1138 3
+%1140 = OpFMul %float %1137 %1139
+OpStore %_52_alpha %1140
+%1142 = OpLoad %v4float %674
+%1143 = OpVectorShuffle %v3float %1142 %1142 0 1 2
+%1144 = OpLoad %v4float %675
 %1145 = OpCompositeExtract %float %1144 3
-%1146 = OpLoad %v4float %689
-%1147 = OpCompositeExtract %float %1146 3
-%1148 = OpFAdd %float %1145 %1147
-%1149 = OpLoad %float %_44_alpha
-%1150 = OpFSub %float %1148 %1149
-%1151 = OpCompositeConstruct %v4float %1141 %1142 %1143 %1150
-OpStore %_43_blend_hue %1151
-%1152 = OpLoad %v4float %_43_blend_hue
-OpReturnValue %1152
-%719 = OpLabel
-%1155 = OpLoad %v4float %689
-%1156 = OpCompositeExtract %float %1155 3
-%1157 = OpLoad %v4float %688
-%1158 = OpCompositeExtract %float %1157 3
-%1159 = OpFMul %float %1156 %1158
-OpStore %_48_alpha %1159
-%1161 = OpLoad %v4float %688
-%1162 = OpVectorShuffle %v3float %1161 %1161 0 1 2
-%1163 = OpLoad %v4float %689
-%1164 = OpCompositeExtract %float %1163 3
-%1165 = OpVectorTimesScalar %v3float %1162 %1164
-OpStore %_49_sda %1165
-%1167 = OpLoad %v4float %689
-%1168 = OpVectorShuffle %v3float %1167 %1167 0 1 2
-%1169 = OpLoad %v4float %688
-%1170 = OpCompositeExtract %float %1169 3
-%1171 = OpVectorTimesScalar %v3float %1168 %1170
-OpStore %_50_dsa %1171
-%1172 = OpLoad %v3float %_50_dsa
-OpStore %1173 %1172
-%1174 = OpLoad %v3float %_49_sda
-OpStore %1175 %1174
-%1176 = OpFunctionCall %v3float %_blend_set_color_saturation %1173 %1175
-OpStore %1177 %1176
-%1178 = OpLoad %float %_48_alpha
-OpStore %1179 %1178
-%1180 = OpLoad %v3float %_50_dsa
-OpStore %1181 %1180
-%1182 = OpFunctionCall %v3float %_blend_set_color_luminance %1177 %1179 %1181
-%1183 = OpLoad %v4float %689
-%1184 = OpVectorShuffle %v3float %1183 %1183 0 1 2
-%1185 = OpFAdd %v3float %1182 %1184
-%1186 = OpLoad %v3float %_50_dsa
-%1187 = OpFSub %v3float %1185 %1186
-%1188 = OpLoad %v4float %688
+%1146 = OpVectorTimesScalar %v3float %1143 %1145
+OpStore %_53_sda %1146
+%1148 = OpLoad %v4float %675
+%1149 = OpVectorShuffle %v3float %1148 %1148 0 1 2
+%1150 = OpLoad %v4float %674
+%1151 = OpCompositeExtract %float %1150 3
+%1152 = OpVectorTimesScalar %v3float %1149 %1151
+OpStore %_54_dsa %1152
+%1153 = OpLoad %v3float %_53_sda
+OpStore %1154 %1153
+%1155 = OpLoad %float %_52_alpha
+OpStore %1156 %1155
+%1157 = OpLoad %v3float %_54_dsa
+OpStore %1158 %1157
+%1159 = OpFunctionCall %v3float %_blend_set_color_luminance %1154 %1156 %1158
+%1160 = OpLoad %v4float %675
+%1161 = OpVectorShuffle %v3float %1160 %1160 0 1 2
+%1162 = OpFAdd %v3float %1159 %1161
+%1163 = OpLoad %v3float %_54_dsa
+%1164 = OpFSub %v3float %1162 %1163
+%1165 = OpLoad %v4float %674
+%1166 = OpVectorShuffle %v3float %1165 %1165 0 1 2
+%1167 = OpFAdd %v3float %1164 %1166
+%1168 = OpLoad %v3float %_53_sda
+%1169 = OpFSub %v3float %1167 %1168
+%1170 = OpCompositeExtract %float %1169 0
+%1171 = OpCompositeExtract %float %1169 1
+%1172 = OpCompositeExtract %float %1169 2
+%1173 = OpLoad %v4float %674
+%1174 = OpCompositeExtract %float %1173 3
+%1175 = OpLoad %v4float %675
+%1176 = OpCompositeExtract %float %1175 3
+%1177 = OpFAdd %float %1174 %1176
+%1178 = OpLoad %float %_52_alpha
+%1179 = OpFSub %float %1177 %1178
+%1180 = OpCompositeConstruct %v4float %1170 %1171 %1172 %1179
+OpReturnValue %1180
+%707 = OpLabel
+%1182 = OpLoad %v4float %675
+%1183 = OpCompositeExtract %float %1182 3
+%1184 = OpLoad %v4float %674
+%1185 = OpCompositeExtract %float %1184 3
+%1186 = OpFMul %float %1183 %1185
+OpStore %_56_alpha %1186
+%1188 = OpLoad %v4float %674
 %1189 = OpVectorShuffle %v3float %1188 %1188 0 1 2
-%1190 = OpFAdd %v3float %1187 %1189
-%1191 = OpLoad %v3float %_49_sda
-%1192 = OpFSub %v3float %1190 %1191
-%1193 = OpCompositeExtract %float %1192 0
-%1194 = OpCompositeExtract %float %1192 1
-%1195 = OpCompositeExtract %float %1192 2
-%1196 = OpLoad %v4float %688
+%1190 = OpLoad %v4float %675
+%1191 = OpCompositeExtract %float %1190 3
+%1192 = OpVectorTimesScalar %v3float %1189 %1191
+OpStore %_57_sda %1192
+%1194 = OpLoad %v4float %675
+%1195 = OpVectorShuffle %v3float %1194 %1194 0 1 2
+%1196 = OpLoad %v4float %674
 %1197 = OpCompositeExtract %float %1196 3
-%1198 = OpLoad %v4float %689
-%1199 = OpCompositeExtract %float %1198 3
-%1200 = OpFAdd %float %1197 %1199
-%1201 = OpLoad %float %_48_alpha
-%1202 = OpFSub %float %1200 %1201
-%1203 = OpCompositeConstruct %v4float %1193 %1194 %1195 %1202
-OpStore %_47_blend_saturation %1203
-%1204 = OpLoad %v4float %_47_blend_saturation
-OpReturnValue %1204
-%720 = OpLabel
-%1207 = OpLoad %v4float %689
-%1208 = OpCompositeExtract %float %1207 3
-%1209 = OpLoad %v4float %688
-%1210 = OpCompositeExtract %float %1209 3
-%1211 = OpFMul %float %1208 %1210
-OpStore %_52_alpha %1211
-%1213 = OpLoad %v4float %688
-%1214 = OpVectorShuffle %v3float %1213 %1213 0 1 2
-%1215 = OpLoad %v4float %689
-%1216 = OpCompositeExtract %float %1215 3
-%1217 = OpVectorTimesScalar %v3float %1214 %1216
-OpStore %_53_sda %1217
-%1219 = OpLoad %v4float %689
-%1220 = OpVectorShuffle %v3float %1219 %1219 0 1 2
-%1221 = OpLoad %v4float %688
+%1198 = OpVectorTimesScalar %v3float %1195 %1197
+OpStore %_58_dsa %1198
+%1199 = OpLoad %v3float %_58_dsa
+OpStore %1200 %1199
+%1201 = OpLoad %float %_56_alpha
+OpStore %1202 %1201
+%1203 = OpLoad %v3float %_57_sda
+OpStore %1204 %1203
+%1205 = OpFunctionCall %v3float %_blend_set_color_luminance %1200 %1202 %1204
+%1206 = OpLoad %v4float %675
+%1207 = OpVectorShuffle %v3float %1206 %1206 0 1 2
+%1208 = OpFAdd %v3float %1205 %1207
+%1209 = OpLoad %v3float %_58_dsa
+%1210 = OpFSub %v3float %1208 %1209
+%1211 = OpLoad %v4float %674
+%1212 = OpVectorShuffle %v3float %1211 %1211 0 1 2
+%1213 = OpFAdd %v3float %1210 %1212
+%1214 = OpLoad %v3float %_57_sda
+%1215 = OpFSub %v3float %1213 %1214
+%1216 = OpCompositeExtract %float %1215 0
+%1217 = OpCompositeExtract %float %1215 1
+%1218 = OpCompositeExtract %float %1215 2
+%1219 = OpLoad %v4float %674
+%1220 = OpCompositeExtract %float %1219 3
+%1221 = OpLoad %v4float %675
 %1222 = OpCompositeExtract %float %1221 3
-%1223 = OpVectorTimesScalar %v3float %1220 %1222
-OpStore %_54_dsa %1223
-%1224 = OpLoad %v3float %_53_sda
-OpStore %1225 %1224
-%1226 = OpLoad %float %_52_alpha
-OpStore %1227 %1226
-%1228 = OpLoad %v3float %_54_dsa
-OpStore %1229 %1228
-%1230 = OpFunctionCall %v3float %_blend_set_color_luminance %1225 %1227 %1229
-%1231 = OpLoad %v4float %689
-%1232 = OpVectorShuffle %v3float %1231 %1231 0 1 2
-%1233 = OpFAdd %v3float %1230 %1232
-%1234 = OpLoad %v3float %_54_dsa
-%1235 = OpFSub %v3float %1233 %1234
-%1236 = OpLoad %v4float %688
-%1237 = OpVectorShuffle %v3float %1236 %1236 0 1 2
-%1238 = OpFAdd %v3float %1235 %1237
-%1239 = OpLoad %v3float %_53_sda
-%1240 = OpFSub %v3float %1238 %1239
-%1241 = OpCompositeExtract %float %1240 0
-%1242 = OpCompositeExtract %float %1240 1
-%1243 = OpCompositeExtract %float %1240 2
-%1244 = OpLoad %v4float %688
-%1245 = OpCompositeExtract %float %1244 3
-%1246 = OpLoad %v4float %689
-%1247 = OpCompositeExtract %float %1246 3
-%1248 = OpFAdd %float %1245 %1247
-%1249 = OpLoad %float %_52_alpha
-%1250 = OpFSub %float %1248 %1249
-%1251 = OpCompositeConstruct %v4float %1241 %1242 %1243 %1250
-OpStore %_51_blend_color %1251
-%1252 = OpLoad %v4float %_51_blend_color
-OpReturnValue %1252
-%721 = OpLabel
-%1255 = OpLoad %v4float %689
-%1256 = OpCompositeExtract %float %1255 3
-%1257 = OpLoad %v4float %688
-%1258 = OpCompositeExtract %float %1257 3
-%1259 = OpFMul %float %1256 %1258
-OpStore %_56_alpha %1259
-%1261 = OpLoad %v4float %688
-%1262 = OpVectorShuffle %v3float %1261 %1261 0 1 2
-%1263 = OpLoad %v4float %689
-%1264 = OpCompositeExtract %float %1263 3
-%1265 = OpVectorTimesScalar %v3float %1262 %1264
-OpStore %_57_sda %1265
-%1267 = OpLoad %v4float %689
-%1268 = OpVectorShuffle %v3float %1267 %1267 0 1 2
-%1269 = OpLoad %v4float %688
-%1270 = OpCompositeExtract %float %1269 3
-%1271 = OpVectorTimesScalar %v3float %1268 %1270
-OpStore %_58_dsa %1271
-%1272 = OpLoad %v3float %_58_dsa
-OpStore %1273 %1272
-%1274 = OpLoad %float %_56_alpha
-OpStore %1275 %1274
-%1276 = OpLoad %v3float %_57_sda
-OpStore %1277 %1276
-%1278 = OpFunctionCall %v3float %_blend_set_color_luminance %1273 %1275 %1277
-%1279 = OpLoad %v4float %689
-%1280 = OpVectorShuffle %v3float %1279 %1279 0 1 2
-%1281 = OpFAdd %v3float %1278 %1280
-%1282 = OpLoad %v3float %_58_dsa
-%1283 = OpFSub %v3float %1281 %1282
-%1284 = OpLoad %v4float %688
-%1285 = OpVectorShuffle %v3float %1284 %1284 0 1 2
-%1286 = OpFAdd %v3float %1283 %1285
-%1287 = OpLoad %v3float %_57_sda
-%1288 = OpFSub %v3float %1286 %1287
-%1289 = OpCompositeExtract %float %1288 0
-%1290 = OpCompositeExtract %float %1288 1
-%1291 = OpCompositeExtract %float %1288 2
-%1292 = OpLoad %v4float %688
-%1293 = OpCompositeExtract %float %1292 3
-%1294 = OpLoad %v4float %689
-%1295 = OpCompositeExtract %float %1294 3
-%1296 = OpFAdd %float %1293 %1295
-%1297 = OpLoad %float %_56_alpha
-%1298 = OpFSub %float %1296 %1297
-%1299 = OpCompositeConstruct %v4float %1289 %1290 %1291 %1298
-OpStore %_55_blend_luminosity %1299
-%1300 = OpLoad %v4float %_55_blend_luminosity
-OpReturnValue %1300
-%692 = OpLabel
-OpReturnValue %1301
+%1223 = OpFAdd %float %1220 %1222
+%1224 = OpLoad %float %_56_alpha
+%1225 = OpFSub %float %1223 %1224
+%1226 = OpCompositeConstruct %v4float %1216 %1217 %1218 %1225
+OpReturnValue %1226
+%678 = OpLabel
+OpReturnValue %1227
 OpFunctionEnd
-%main = OpFunction %void None %1303
-%1304 = OpLabel
-%1306 = OpVariable %_ptr_Function_int Function
-%1308 = OpVariable %_ptr_Function_v4float Function
-%1310 = OpVariable %_ptr_Function_v4float Function
-OpStore %1306 %int_13
-%1307 = OpLoad %v4float %src
-OpStore %1308 %1307
-%1309 = OpLoad %v4float %dst
-OpStore %1310 %1309
-%1311 = OpFunctionCall %v4float %blend %1306 %1308 %1310
-OpStore %sk_FragColor %1311
+%main = OpFunction %void None %1229
+%1230 = OpLabel
+%1232 = OpVariable %_ptr_Function_int Function
+%1234 = OpVariable %_ptr_Function_v4float Function
+%1236 = OpVariable %_ptr_Function_v4float Function
+OpStore %1232 %int_13
+%1233 = OpLoad %v4float %src
+OpStore %1234 %1233
+%1235 = OpLoad %v4float %dst
+OpStore %1236 %1235
+%1237 = OpFunctionCall %v4float %blend %1232 %1234 %1236
+OpStore %sk_FragColor %1237
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendEnum.glsl b/tests/sksl/blend/golden/BlendEnum.glsl
index 7d7a136..9650d9d 100644
--- a/tests/sksl/blend/golden/BlendEnum.glsl
+++ b/tests/sksl/blend/golden/BlendEnum.glsl
@@ -16,10 +16,8 @@
         if (delta == 0.0) {
             return (s.y * d.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         } else {
-            float _3_guarded_divide;
             float _4_n = d.x * s.y;
-            _3_guarded_divide = _4_n / delta;
-            delta = min(d.y, _3_guarded_divide);
+            delta = min(d.y, _4_n / delta);
 
             return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         }
@@ -31,43 +29,33 @@
     } else if (s.x == 0.0) {
         return d.x * (1.0 - s.y);
     } else {
-        float _5_guarded_divide;
         float _6_n = (d.y - d.x) * s.y;
-        _5_guarded_divide = _6_n / s.x;
-        float delta = max(0.0, d.y - _5_guarded_divide);
+        float delta = max(0.0, d.y - _6_n / s.x);
 
         return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
     }
 }
 float _soft_light_component(vec2 s, vec2 d) {
     if (2.0 * s.x <= s.y) {
-        float _7_guarded_divide;
         float _8_n = (d.x * d.x) * (s.y - 2.0 * s.x);
-        _7_guarded_divide = _8_n / d.y;
-        return (_7_guarded_divide + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
+        return (_8_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
 
     } else if (4.0 * d.x <= d.y) {
         float DSqd = d.x * d.x;
         float DCub = DSqd * d.x;
         float DaSqd = d.y * d.y;
         float DaCub = DaSqd * d.y;
-        float _9_guarded_divide;
         float _10_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
-        _9_guarded_divide = _10_n / DaSqd;
-        return _9_guarded_divide;
+        return _10_n / DaSqd;
 
     } else {
         return ((d.x * ((s.y - 2.0 * s.x) + 1.0) + s.x) - sqrt(d.y * d.x) * (s.y - 2.0 * s.x)) - d.y * s.x;
     }
 }
 vec3 _blend_set_color_luminance(vec3 hueSatColor, float alpha, vec3 lumColor) {
-    float _11_blend_color_luminance;
-    _11_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor);
-    float lum = _11_blend_color_luminance;
+    float lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor);
 
-    float _12_blend_color_luminance;
-    _12_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor);
-    vec3 result = (lum - _12_blend_color_luminance) + hueSatColor;
+    vec3 result = (lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor;
 
     float minComp = min(min(result.x, result.y), result.z);
     float maxComp = max(max(result.x, result.y), result.z);
@@ -80,9 +68,7 @@
     return minMidMax.x < minMidMax.z ? vec3(0.0, (sat * (minMidMax.y - minMidMax.x)) / (minMidMax.z - minMidMax.x), sat) : vec3(0.0);
 }
 vec3 _blend_set_color_saturation(vec3 hueLumColor, vec3 satColor) {
-    float _13_blend_color_saturation;
-    _13_blend_color_saturation = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z);
-    float sat = _13_blend_color_saturation;
+    float sat = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z);
 
     if (hueLumColor.x <= hueLumColor.y) {
         if (hueLumColor.y <= hueLumColor.z) {
@@ -106,166 +92,105 @@
             return vec4(0.0);
 
         case 1:
-            vec4 _15_blend_src;
-            _15_blend_src = src;
-            return _15_blend_src;
+            return src;
 
         case 2:
-            vec4 _16_blend_dst;
-            _16_blend_dst = dst;
-            return _16_blend_dst;
+            return dst;
 
         case 3:
-            vec4 _17_blend_src_over;
-            _17_blend_src_over = src + (1.0 - src.w) * dst;
-            return _17_blend_src_over;
+            return src + (1.0 - src.w) * dst;
 
         case 4:
-            vec4 _18_blend_dst_over;
-            _18_blend_dst_over = (1.0 - dst.w) * src + dst;
-            return _18_blend_dst_over;
+            return (1.0 - dst.w) * src + dst;
 
         case 5:
-            vec4 _19_blend_src_in;
-            _19_blend_src_in = src * dst.w;
-            return _19_blend_src_in;
+            return src * dst.w;
 
         case 6:
-            vec4 _20_blend_dst_in;
-            vec4 _21_blend_src_in;
-            _21_blend_src_in = dst * src.w;
-            _20_blend_dst_in = _21_blend_src_in;
-
-            return _20_blend_dst_in;
+            return dst * src.w;
 
         case 7:
-            vec4 _22_blend_src_out;
-            _22_blend_src_out = (1.0 - dst.w) * src;
-            return _22_blend_src_out;
+            return (1.0 - dst.w) * src;
 
         case 8:
-            vec4 _23_blend_dst_out;
-            _23_blend_dst_out = (1.0 - src.w) * dst;
-            return _23_blend_dst_out;
+            return (1.0 - src.w) * dst;
 
         case 9:
-            vec4 _24_blend_src_atop;
-            _24_blend_src_atop = dst.w * src + (1.0 - src.w) * dst;
-            return _24_blend_src_atop;
+            return dst.w * src + (1.0 - src.w) * dst;
 
         case 10:
-            vec4 _25_blend_dst_atop;
-            _25_blend_dst_atop = (1.0 - dst.w) * src + src.w * dst;
-            return _25_blend_dst_atop;
+            return (1.0 - dst.w) * src + src.w * dst;
 
         case 11:
-            vec4 _26_blend_xor;
-            _26_blend_xor = (1.0 - dst.w) * src + (1.0 - src.w) * dst;
-            return _26_blend_xor;
+            return (1.0 - dst.w) * src + (1.0 - src.w) * dst;
 
         case 12:
-            vec4 _27_blend_plus;
-            _27_blend_plus = min(src + dst, 1.0);
-            return _27_blend_plus;
+            return min(src + dst, 1.0);
 
         case 13:
-            vec4 _28_blend_modulate;
-            _28_blend_modulate = src * dst;
-            return _28_blend_modulate;
+            return src * dst;
 
         case 14:
-            vec4 _29_blend_screen;
-            _29_blend_screen = src + (1.0 - src) * dst;
-            return _29_blend_screen;
+            return src + (1.0 - src) * dst;
 
         case 15:
             return blend_overlay(src, dst);
         case 16:
-            vec4 _30_blend_darken;
-            vec4 _31_blend_src_over;
-            _31_blend_src_over = src + (1.0 - src.w) * dst;
-            vec4 _32_result = _31_blend_src_over;
+            vec4 _32_result = src + (1.0 - src.w) * dst;
 
             _32_result.xyz = min(_32_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
-            _30_blend_darken = _32_result;
-            return _30_blend_darken;
+            return _32_result;
 
         case 17:
-            vec4 _33_blend_lighten;
-            vec4 _34_blend_src_over;
-            _34_blend_src_over = src + (1.0 - src.w) * dst;
-            vec4 _35_result = _34_blend_src_over;
+            vec4 _35_result = src + (1.0 - src.w) * dst;
 
             _35_result.xyz = max(_35_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
-            _33_blend_lighten = _35_result;
-            return _33_blend_lighten;
+            return _35_result;
 
         case 18:
-            vec4 _36_blend_color_dodge;
-            _36_blend_color_dodge = vec4(_color_dodge_component(src.xw, dst.xw), _color_dodge_component(src.yw, dst.yw), _color_dodge_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-            return _36_blend_color_dodge;
+            return vec4(_color_dodge_component(src.xw, dst.xw), _color_dodge_component(src.yw, dst.yw), _color_dodge_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
         case 19:
-            vec4 _37_blend_color_burn;
-            _37_blend_color_burn = vec4(_color_burn_component(src.xw, dst.xw), _color_burn_component(src.yw, dst.yw), _color_burn_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-            return _37_blend_color_burn;
+            return vec4(_color_burn_component(src.xw, dst.xw), _color_burn_component(src.yw, dst.yw), _color_burn_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
         case 20:
-            vec4 _38_blend_hard_light;
-            _38_blend_hard_light = blend_overlay(dst, src);
-            return _38_blend_hard_light;
+            return blend_overlay(dst, src);
 
         case 21:
-            vec4 _39_blend_soft_light;
-            _39_blend_soft_light = dst.w == 0.0 ? src : vec4(_soft_light_component(src.xw, dst.xw), _soft_light_component(src.yw, dst.yw), _soft_light_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-            return _39_blend_soft_light;
+            return dst.w == 0.0 ? src : vec4(_soft_light_component(src.xw, dst.xw), _soft_light_component(src.yw, dst.yw), _soft_light_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
         case 22:
-            vec4 _40_blend_difference;
-            _40_blend_difference = vec4((src.xyz + dst.xyz) - 2.0 * min(src.xyz * dst.w, dst.xyz * src.w), src.w + (1.0 - src.w) * dst.w);
-            return _40_blend_difference;
+            return vec4((src.xyz + dst.xyz) - 2.0 * min(src.xyz * dst.w, dst.xyz * src.w), src.w + (1.0 - src.w) * dst.w);
 
         case 23:
-            vec4 _41_blend_exclusion;
-            _41_blend_exclusion = vec4((dst.xyz + src.xyz) - (2.0 * dst.xyz) * src.xyz, src.w + (1.0 - src.w) * dst.w);
-            return _41_blend_exclusion;
+            return vec4((dst.xyz + src.xyz) - (2.0 * dst.xyz) * src.xyz, src.w + (1.0 - src.w) * dst.w);
 
         case 24:
-            vec4 _42_blend_multiply;
-            _42_blend_multiply = vec4(((1.0 - src.w) * dst.xyz + (1.0 - dst.w) * src.xyz) + src.xyz * dst.xyz, src.w + (1.0 - src.w) * dst.w);
-            return _42_blend_multiply;
+            return vec4(((1.0 - src.w) * dst.xyz + (1.0 - dst.w) * src.xyz) + src.xyz * dst.xyz, src.w + (1.0 - src.w) * dst.w);
 
         case 25:
-            vec4 _43_blend_hue;
             float _44_alpha = dst.w * src.w;
             vec3 _45_sda = src.xyz * dst.w;
             vec3 _46_dsa = dst.xyz * src.w;
-            _43_blend_hue = vec4((((_blend_set_color_luminance(_blend_set_color_saturation(_45_sda, _46_dsa), _44_alpha, _46_dsa) + dst.xyz) - _46_dsa) + src.xyz) - _45_sda, (src.w + dst.w) - _44_alpha);
-            return _43_blend_hue;
+            return vec4((((_blend_set_color_luminance(_blend_set_color_saturation(_45_sda, _46_dsa), _44_alpha, _46_dsa) + dst.xyz) - _46_dsa) + src.xyz) - _45_sda, (src.w + dst.w) - _44_alpha);
 
         case 26:
-            vec4 _47_blend_saturation;
             float _48_alpha = dst.w * src.w;
             vec3 _49_sda = src.xyz * dst.w;
             vec3 _50_dsa = dst.xyz * src.w;
-            _47_blend_saturation = vec4((((_blend_set_color_luminance(_blend_set_color_saturation(_50_dsa, _49_sda), _48_alpha, _50_dsa) + dst.xyz) - _50_dsa) + src.xyz) - _49_sda, (src.w + dst.w) - _48_alpha);
-            return _47_blend_saturation;
+            return vec4((((_blend_set_color_luminance(_blend_set_color_saturation(_50_dsa, _49_sda), _48_alpha, _50_dsa) + dst.xyz) - _50_dsa) + src.xyz) - _49_sda, (src.w + dst.w) - _48_alpha);
 
         case 27:
-            vec4 _51_blend_color;
             float _52_alpha = dst.w * src.w;
             vec3 _53_sda = src.xyz * dst.w;
             vec3 _54_dsa = dst.xyz * src.w;
-            _51_blend_color = vec4((((_blend_set_color_luminance(_53_sda, _52_alpha, _54_dsa) + dst.xyz) - _54_dsa) + src.xyz) - _53_sda, (src.w + dst.w) - _52_alpha);
-            return _51_blend_color;
+            return vec4((((_blend_set_color_luminance(_53_sda, _52_alpha, _54_dsa) + dst.xyz) - _54_dsa) + src.xyz) - _53_sda, (src.w + dst.w) - _52_alpha);
 
         case 28:
-            vec4 _55_blend_luminosity;
             float _56_alpha = dst.w * src.w;
             vec3 _57_sda = src.xyz * dst.w;
             vec3 _58_dsa = dst.xyz * src.w;
-            _55_blend_luminosity = vec4((((_blend_set_color_luminance(_58_dsa, _56_alpha, _57_sda) + dst.xyz) - _58_dsa) + src.xyz) - _57_sda, (src.w + dst.w) - _56_alpha);
-            return _55_blend_luminosity;
+            return vec4((((_blend_set_color_luminance(_58_dsa, _56_alpha, _57_sda) + dst.xyz) - _58_dsa) + src.xyz) - _57_sda, (src.w + dst.w) - _56_alpha);
 
     }
     return vec4(0.0);
diff --git a/tests/sksl/blend/golden/BlendEnum.metal b/tests/sksl/blend/golden/BlendEnum.metal
index 0a35e81..6bf1f97 100644
--- a/tests/sksl/blend/golden/BlendEnum.metal
+++ b/tests/sksl/blend/golden/BlendEnum.metal
@@ -24,10 +24,8 @@
         if (delta == 0.0) {
             return (s.y * d.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         } else {
-            float _3_guarded_divide;
             float _4_n = d.x * s.y;
-            _3_guarded_divide = _4_n / delta;
-            delta = min(d.y, _3_guarded_divide);
+            delta = min(d.y, _4_n / delta);
 
             return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         }
@@ -39,43 +37,33 @@
     } else if (s.x == 0.0) {
         return d.x * (1.0 - s.y);
     } else {
-        float _5_guarded_divide;
         float _6_n = (d.y - d.x) * s.y;
-        _5_guarded_divide = _6_n / s.x;
-        float delta = max(0.0, d.y - _5_guarded_divide);
+        float delta = max(0.0, d.y - _6_n / s.x);
 
         return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
     }
 }
 float _soft_light_component(float2 s, float2 d) {
     if (2.0 * s.x <= s.y) {
-        float _7_guarded_divide;
         float _8_n = (d.x * d.x) * (s.y - 2.0 * s.x);
-        _7_guarded_divide = _8_n / d.y;
-        return (_7_guarded_divide + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
+        return (_8_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
 
     } else if (4.0 * d.x <= d.y) {
         float DSqd = d.x * d.x;
         float DCub = DSqd * d.x;
         float DaSqd = d.y * d.y;
         float DaCub = DaSqd * d.y;
-        float _9_guarded_divide;
         float _10_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
-        _9_guarded_divide = _10_n / DaSqd;
-        return _9_guarded_divide;
+        return _10_n / DaSqd;
 
     } else {
         return ((d.x * ((s.y - 2.0 * s.x) + 1.0) + s.x) - sqrt(d.y * d.x) * (s.y - 2.0 * s.x)) - d.y * s.x;
     }
 }
 float3 _blend_set_color_luminance(float3 hueSatColor, float alpha, float3 lumColor) {
-    float _11_blend_color_luminance;
-    _11_blend_color_luminance = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor);
-    float lum = _11_blend_color_luminance;
+    float lum = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor);
 
-    float _12_blend_color_luminance;
-    _12_blend_color_luminance = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor);
-    float3 result = (lum - _12_blend_color_luminance) + hueSatColor;
+    float3 result = (lum - dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor;
 
     float minComp = min(min(result.x, result.y), result.z);
     float maxComp = max(max(result.x, result.y), result.z);
@@ -88,9 +76,7 @@
     return minMidMax.x < minMidMax.z ? float3(0.0, (sat * (minMidMax.y - minMidMax.x)) / (minMidMax.z - minMidMax.x), sat) : float3(0.0);
 }
 float3 _blend_set_color_saturation(float3 hueLumColor, float3 satColor) {
-    float _13_blend_color_saturation;
-    _13_blend_color_saturation = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z);
-    float sat = _13_blend_color_saturation;
+    float sat = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z);
 
     if (hueLumColor.x <= hueLumColor.y) {
         if (hueLumColor.y <= hueLumColor.z) {
@@ -114,166 +100,105 @@
             return float4(0.0);
 
         case 1:
-            float4 _15_blend_src;
-            _15_blend_src = src;
-            return _15_blend_src;
+            return src;
 
         case 2:
-            float4 _16_blend_dst;
-            _16_blend_dst = dst;
-            return _16_blend_dst;
+            return dst;
 
         case 3:
-            float4 _17_blend_src_over;
-            _17_blend_src_over = src + (1.0 - src.w) * dst;
-            return _17_blend_src_over;
+            return src + (1.0 - src.w) * dst;
 
         case 4:
-            float4 _18_blend_dst_over;
-            _18_blend_dst_over = (1.0 - dst.w) * src + dst;
-            return _18_blend_dst_over;
+            return (1.0 - dst.w) * src + dst;
 
         case 5:
-            float4 _19_blend_src_in;
-            _19_blend_src_in = src * dst.w;
-            return _19_blend_src_in;
+            return src * dst.w;
 
         case 6:
-            float4 _20_blend_dst_in;
-            float4 _21_blend_src_in;
-            _21_blend_src_in = dst * src.w;
-            _20_blend_dst_in = _21_blend_src_in;
-
-            return _20_blend_dst_in;
+            return dst * src.w;
 
         case 7:
-            float4 _22_blend_src_out;
-            _22_blend_src_out = (1.0 - dst.w) * src;
-            return _22_blend_src_out;
+            return (1.0 - dst.w) * src;
 
         case 8:
-            float4 _23_blend_dst_out;
-            _23_blend_dst_out = (1.0 - src.w) * dst;
-            return _23_blend_dst_out;
+            return (1.0 - src.w) * dst;
 
         case 9:
-            float4 _24_blend_src_atop;
-            _24_blend_src_atop = dst.w * src + (1.0 - src.w) * dst;
-            return _24_blend_src_atop;
+            return dst.w * src + (1.0 - src.w) * dst;
 
         case 10:
-            float4 _25_blend_dst_atop;
-            _25_blend_dst_atop = (1.0 - dst.w) * src + src.w * dst;
-            return _25_blend_dst_atop;
+            return (1.0 - dst.w) * src + src.w * dst;
 
         case 11:
-            float4 _26_blend_xor;
-            _26_blend_xor = (1.0 - dst.w) * src + (1.0 - src.w) * dst;
-            return _26_blend_xor;
+            return (1.0 - dst.w) * src + (1.0 - src.w) * dst;
 
         case 12:
-            float4 _27_blend_plus;
-            _27_blend_plus = min(src + dst, 1.0);
-            return _27_blend_plus;
+            return min(src + dst, 1.0);
 
         case 13:
-            float4 _28_blend_modulate;
-            _28_blend_modulate = src * dst;
-            return _28_blend_modulate;
+            return src * dst;
 
         case 14:
-            float4 _29_blend_screen;
-            _29_blend_screen = src + (1.0 - src) * dst;
-            return _29_blend_screen;
+            return src + (1.0 - src) * dst;
 
         case 15:
             return blend_overlay(src, dst);
         case 16:
-            float4 _30_blend_darken;
-            float4 _31_blend_src_over;
-            _31_blend_src_over = src + (1.0 - src.w) * dst;
-            float4 _32_result = _31_blend_src_over;
+            float4 _32_result = src + (1.0 - src.w) * dst;
 
             _32_result.xyz = min(_32_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
-            _30_blend_darken = _32_result;
-            return _30_blend_darken;
+            return _32_result;
 
         case 17:
-            float4 _33_blend_lighten;
-            float4 _34_blend_src_over;
-            _34_blend_src_over = src + (1.0 - src.w) * dst;
-            float4 _35_result = _34_blend_src_over;
+            float4 _35_result = src + (1.0 - src.w) * dst;
 
             _35_result.xyz = max(_35_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
-            _33_blend_lighten = _35_result;
-            return _33_blend_lighten;
+            return _35_result;
 
         case 18:
-            float4 _36_blend_color_dodge;
-            _36_blend_color_dodge = float4(_color_dodge_component(src.xw, dst.xw), _color_dodge_component(src.yw, dst.yw), _color_dodge_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-            return _36_blend_color_dodge;
+            return float4(_color_dodge_component(src.xw, dst.xw), _color_dodge_component(src.yw, dst.yw), _color_dodge_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
         case 19:
-            float4 _37_blend_color_burn;
-            _37_blend_color_burn = float4(_color_burn_component(src.xw, dst.xw), _color_burn_component(src.yw, dst.yw), _color_burn_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-            return _37_blend_color_burn;
+            return float4(_color_burn_component(src.xw, dst.xw), _color_burn_component(src.yw, dst.yw), _color_burn_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
         case 20:
-            float4 _38_blend_hard_light;
-            _38_blend_hard_light = blend_overlay(dst, src);
-            return _38_blend_hard_light;
+            return blend_overlay(dst, src);
 
         case 21:
-            float4 _39_blend_soft_light;
-            _39_blend_soft_light = dst.w == 0.0 ? src : float4(_soft_light_component(src.xw, dst.xw), _soft_light_component(src.yw, dst.yw), _soft_light_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-            return _39_blend_soft_light;
+            return dst.w == 0.0 ? src : float4(_soft_light_component(src.xw, dst.xw), _soft_light_component(src.yw, dst.yw), _soft_light_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
         case 22:
-            float4 _40_blend_difference;
-            _40_blend_difference = float4((src.xyz + dst.xyz) - 2.0 * min(src.xyz * dst.w, dst.xyz * src.w), src.w + (1.0 - src.w) * dst.w);
-            return _40_blend_difference;
+            return float4((src.xyz + dst.xyz) - 2.0 * min(src.xyz * dst.w, dst.xyz * src.w), src.w + (1.0 - src.w) * dst.w);
 
         case 23:
-            float4 _41_blend_exclusion;
-            _41_blend_exclusion = float4((dst.xyz + src.xyz) - (2.0 * dst.xyz) * src.xyz, src.w + (1.0 - src.w) * dst.w);
-            return _41_blend_exclusion;
+            return float4((dst.xyz + src.xyz) - (2.0 * dst.xyz) * src.xyz, src.w + (1.0 - src.w) * dst.w);
 
         case 24:
-            float4 _42_blend_multiply;
-            _42_blend_multiply = float4(((1.0 - src.w) * dst.xyz + (1.0 - dst.w) * src.xyz) + src.xyz * dst.xyz, src.w + (1.0 - src.w) * dst.w);
-            return _42_blend_multiply;
+            return float4(((1.0 - src.w) * dst.xyz + (1.0 - dst.w) * src.xyz) + src.xyz * dst.xyz, src.w + (1.0 - src.w) * dst.w);
 
         case 25:
-            float4 _43_blend_hue;
             float _44_alpha = dst.w * src.w;
             float3 _45_sda = src.xyz * dst.w;
             float3 _46_dsa = dst.xyz * src.w;
-            _43_blend_hue = float4((((_blend_set_color_luminance(_blend_set_color_saturation(_45_sda, _46_dsa), _44_alpha, _46_dsa) + dst.xyz) - _46_dsa) + src.xyz) - _45_sda, (src.w + dst.w) - _44_alpha);
-            return _43_blend_hue;
+            return float4((((_blend_set_color_luminance(_blend_set_color_saturation(_45_sda, _46_dsa), _44_alpha, _46_dsa) + dst.xyz) - _46_dsa) + src.xyz) - _45_sda, (src.w + dst.w) - _44_alpha);
 
         case 26:
-            float4 _47_blend_saturation;
             float _48_alpha = dst.w * src.w;
             float3 _49_sda = src.xyz * dst.w;
             float3 _50_dsa = dst.xyz * src.w;
-            _47_blend_saturation = float4((((_blend_set_color_luminance(_blend_set_color_saturation(_50_dsa, _49_sda), _48_alpha, _50_dsa) + dst.xyz) - _50_dsa) + src.xyz) - _49_sda, (src.w + dst.w) - _48_alpha);
-            return _47_blend_saturation;
+            return float4((((_blend_set_color_luminance(_blend_set_color_saturation(_50_dsa, _49_sda), _48_alpha, _50_dsa) + dst.xyz) - _50_dsa) + src.xyz) - _49_sda, (src.w + dst.w) - _48_alpha);
 
         case 27:
-            float4 _51_blend_color;
             float _52_alpha = dst.w * src.w;
             float3 _53_sda = src.xyz * dst.w;
             float3 _54_dsa = dst.xyz * src.w;
-            _51_blend_color = float4((((_blend_set_color_luminance(_53_sda, _52_alpha, _54_dsa) + dst.xyz) - _54_dsa) + src.xyz) - _53_sda, (src.w + dst.w) - _52_alpha);
-            return _51_blend_color;
+            return float4((((_blend_set_color_luminance(_53_sda, _52_alpha, _54_dsa) + dst.xyz) - _54_dsa) + src.xyz) - _53_sda, (src.w + dst.w) - _52_alpha);
 
         case 28:
-            float4 _55_blend_luminosity;
             float _56_alpha = dst.w * src.w;
             float3 _57_sda = src.xyz * dst.w;
             float3 _58_dsa = dst.xyz * src.w;
-            _55_blend_luminosity = float4((((_blend_set_color_luminance(_58_dsa, _56_alpha, _57_sda) + dst.xyz) - _58_dsa) + src.xyz) - _57_sda, (src.w + dst.w) - _56_alpha);
-            return _55_blend_luminosity;
+            return float4((((_blend_set_color_luminance(_58_dsa, _56_alpha, _57_sda) + dst.xyz) - _58_dsa) + src.xyz) - _57_sda, (src.w + dst.w) - _56_alpha);
 
     }
     return float4(0.0);
diff --git a/tests/sksl/blend/golden/BlendEnumStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendEnumStandaloneSettings.glsl
index 686dc02..6700137 100644
--- a/tests/sksl/blend/golden/BlendEnumStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendEnumStandaloneSettings.glsl
@@ -16,10 +16,8 @@
         if (delta == 0.0) {
             return (s.y * d.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         } else {
-            float _3_guarded_divide;
             float _4_n = d.x * s.y;
-            _3_guarded_divide = _4_n / delta;
-            delta = min(d.y, _3_guarded_divide);
+            delta = min(d.y, _4_n / delta);
 
             return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         }
@@ -31,43 +29,33 @@
     } else if (s.x == 0.0) {
         return d.x * (1.0 - s.y);
     } else {
-        float _5_guarded_divide;
         float _6_n = (d.y - d.x) * s.y;
-        _5_guarded_divide = _6_n / s.x;
-        float delta = max(0.0, d.y - _5_guarded_divide);
+        float delta = max(0.0, d.y - _6_n / s.x);
 
         return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
     }
 }
 float _soft_light_component(vec2 s, vec2 d) {
     if (2.0 * s.x <= s.y) {
-        float _7_guarded_divide;
         float _8_n = (d.x * d.x) * (s.y - 2.0 * s.x);
-        _7_guarded_divide = _8_n / d.y;
-        return (_7_guarded_divide + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
+        return (_8_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
 
     } else if (4.0 * d.x <= d.y) {
         float DSqd = d.x * d.x;
         float DCub = DSqd * d.x;
         float DaSqd = d.y * d.y;
         float DaCub = DaSqd * d.y;
-        float _9_guarded_divide;
         float _10_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
-        _9_guarded_divide = _10_n / DaSqd;
-        return _9_guarded_divide;
+        return _10_n / DaSqd;
 
     } else {
         return ((d.x * ((s.y - 2.0 * s.x) + 1.0) + s.x) - sqrt(d.y * d.x) * (s.y - 2.0 * s.x)) - d.y * s.x;
     }
 }
 vec3 _blend_set_color_luminance(vec3 hueSatColor, float alpha, vec3 lumColor) {
-    float _11_blend_color_luminance;
-    _11_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor);
-    float lum = _11_blend_color_luminance;
+    float lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor);
 
-    float _12_blend_color_luminance;
-    _12_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor);
-    vec3 result = (lum - _12_blend_color_luminance) + hueSatColor;
+    vec3 result = (lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor;
 
     float minComp = min(min(result.x, result.y), result.z);
     float maxComp = max(max(result.x, result.y), result.z);
@@ -80,9 +68,7 @@
     return minMidMax.x < minMidMax.z ? vec3(0.0, (sat * (minMidMax.y - minMidMax.x)) / (minMidMax.z - minMidMax.x), sat) : vec3(0.0);
 }
 vec3 _blend_set_color_saturation(vec3 hueLumColor, vec3 satColor) {
-    float _13_blend_color_saturation;
-    _13_blend_color_saturation = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z);
-    float sat = _13_blend_color_saturation;
+    float sat = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z);
 
     if (hueLumColor.x <= hueLumColor.y) {
         if (hueLumColor.y <= hueLumColor.z) {
@@ -106,166 +92,105 @@
             return vec4(0.0);
 
         case 1:
-            vec4 _15_blend_src;
-            _15_blend_src = src;
-            return _15_blend_src;
+            return src;
 
         case 2:
-            vec4 _16_blend_dst;
-            _16_blend_dst = dst;
-            return _16_blend_dst;
+            return dst;
 
         case 3:
-            vec4 _17_blend_src_over;
-            _17_blend_src_over = src + (1.0 - src.w) * dst;
-            return _17_blend_src_over;
+            return src + (1.0 - src.w) * dst;
 
         case 4:
-            vec4 _18_blend_dst_over;
-            _18_blend_dst_over = (1.0 - dst.w) * src + dst;
-            return _18_blend_dst_over;
+            return (1.0 - dst.w) * src + dst;
 
         case 5:
-            vec4 _19_blend_src_in;
-            _19_blend_src_in = src * dst.w;
-            return _19_blend_src_in;
+            return src * dst.w;
 
         case 6:
-            vec4 _20_blend_dst_in;
-            vec4 _21_blend_src_in;
-            _21_blend_src_in = dst * src.w;
-            _20_blend_dst_in = _21_blend_src_in;
-
-            return _20_blend_dst_in;
+            return dst * src.w;
 
         case 7:
-            vec4 _22_blend_src_out;
-            _22_blend_src_out = (1.0 - dst.w) * src;
-            return _22_blend_src_out;
+            return (1.0 - dst.w) * src;
 
         case 8:
-            vec4 _23_blend_dst_out;
-            _23_blend_dst_out = (1.0 - src.w) * dst;
-            return _23_blend_dst_out;
+            return (1.0 - src.w) * dst;
 
         case 9:
-            vec4 _24_blend_src_atop;
-            _24_blend_src_atop = dst.w * src + (1.0 - src.w) * dst;
-            return _24_blend_src_atop;
+            return dst.w * src + (1.0 - src.w) * dst;
 
         case 10:
-            vec4 _25_blend_dst_atop;
-            _25_blend_dst_atop = (1.0 - dst.w) * src + src.w * dst;
-            return _25_blend_dst_atop;
+            return (1.0 - dst.w) * src + src.w * dst;
 
         case 11:
-            vec4 _26_blend_xor;
-            _26_blend_xor = (1.0 - dst.w) * src + (1.0 - src.w) * dst;
-            return _26_blend_xor;
+            return (1.0 - dst.w) * src + (1.0 - src.w) * dst;
 
         case 12:
-            vec4 _27_blend_plus;
-            _27_blend_plus = min(src + dst, 1.0);
-            return _27_blend_plus;
+            return min(src + dst, 1.0);
 
         case 13:
-            vec4 _28_blend_modulate;
-            _28_blend_modulate = src * dst;
-            return _28_blend_modulate;
+            return src * dst;
 
         case 14:
-            vec4 _29_blend_screen;
-            _29_blend_screen = src + (1.0 - src) * dst;
-            return _29_blend_screen;
+            return src + (1.0 - src) * dst;
 
         case 15:
             return blend_overlay(src, dst);
         case 16:
-            vec4 _30_blend_darken;
-            vec4 _31_blend_src_over;
-            _31_blend_src_over = src + (1.0 - src.w) * dst;
-            vec4 _32_result = _31_blend_src_over;
+            vec4 _32_result = src + (1.0 - src.w) * dst;
 
             _32_result.xyz = min(_32_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
-            _30_blend_darken = _32_result;
-            return _30_blend_darken;
+            return _32_result;
 
         case 17:
-            vec4 _33_blend_lighten;
-            vec4 _34_blend_src_over;
-            _34_blend_src_over = src + (1.0 - src.w) * dst;
-            vec4 _35_result = _34_blend_src_over;
+            vec4 _35_result = src + (1.0 - src.w) * dst;
 
             _35_result.xyz = max(_35_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
-            _33_blend_lighten = _35_result;
-            return _33_blend_lighten;
+            return _35_result;
 
         case 18:
-            vec4 _36_blend_color_dodge;
-            _36_blend_color_dodge = vec4(_color_dodge_component(src.xw, dst.xw), _color_dodge_component(src.yw, dst.yw), _color_dodge_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-            return _36_blend_color_dodge;
+            return vec4(_color_dodge_component(src.xw, dst.xw), _color_dodge_component(src.yw, dst.yw), _color_dodge_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
         case 19:
-            vec4 _37_blend_color_burn;
-            _37_blend_color_burn = vec4(_color_burn_component(src.xw, dst.xw), _color_burn_component(src.yw, dst.yw), _color_burn_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-            return _37_blend_color_burn;
+            return vec4(_color_burn_component(src.xw, dst.xw), _color_burn_component(src.yw, dst.yw), _color_burn_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
         case 20:
-            vec4 _38_blend_hard_light;
-            _38_blend_hard_light = blend_overlay(dst, src);
-            return _38_blend_hard_light;
+            return blend_overlay(dst, src);
 
         case 21:
-            vec4 _39_blend_soft_light;
-            _39_blend_soft_light = dst.w == 0.0 ? src : vec4(_soft_light_component(src.xw, dst.xw), _soft_light_component(src.yw, dst.yw), _soft_light_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-            return _39_blend_soft_light;
+            return dst.w == 0.0 ? src : vec4(_soft_light_component(src.xw, dst.xw), _soft_light_component(src.yw, dst.yw), _soft_light_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
         case 22:
-            vec4 _40_blend_difference;
-            _40_blend_difference = vec4((src.xyz + dst.xyz) - 2.0 * min(src.xyz * dst.w, dst.xyz * src.w), src.w + (1.0 - src.w) * dst.w);
-            return _40_blend_difference;
+            return vec4((src.xyz + dst.xyz) - 2.0 * min(src.xyz * dst.w, dst.xyz * src.w), src.w + (1.0 - src.w) * dst.w);
 
         case 23:
-            vec4 _41_blend_exclusion;
-            _41_blend_exclusion = vec4((dst.xyz + src.xyz) - (2.0 * dst.xyz) * src.xyz, src.w + (1.0 - src.w) * dst.w);
-            return _41_blend_exclusion;
+            return vec4((dst.xyz + src.xyz) - (2.0 * dst.xyz) * src.xyz, src.w + (1.0 - src.w) * dst.w);
 
         case 24:
-            vec4 _42_blend_multiply;
-            _42_blend_multiply = vec4(((1.0 - src.w) * dst.xyz + (1.0 - dst.w) * src.xyz) + src.xyz * dst.xyz, src.w + (1.0 - src.w) * dst.w);
-            return _42_blend_multiply;
+            return vec4(((1.0 - src.w) * dst.xyz + (1.0 - dst.w) * src.xyz) + src.xyz * dst.xyz, src.w + (1.0 - src.w) * dst.w);
 
         case 25:
-            vec4 _43_blend_hue;
             float _44_alpha = dst.w * src.w;
             vec3 _45_sda = src.xyz * dst.w;
             vec3 _46_dsa = dst.xyz * src.w;
-            _43_blend_hue = vec4((((_blend_set_color_luminance(_blend_set_color_saturation(_45_sda, _46_dsa), _44_alpha, _46_dsa) + dst.xyz) - _46_dsa) + src.xyz) - _45_sda, (src.w + dst.w) - _44_alpha);
-            return _43_blend_hue;
+            return vec4((((_blend_set_color_luminance(_blend_set_color_saturation(_45_sda, _46_dsa), _44_alpha, _46_dsa) + dst.xyz) - _46_dsa) + src.xyz) - _45_sda, (src.w + dst.w) - _44_alpha);
 
         case 26:
-            vec4 _47_blend_saturation;
             float _48_alpha = dst.w * src.w;
             vec3 _49_sda = src.xyz * dst.w;
             vec3 _50_dsa = dst.xyz * src.w;
-            _47_blend_saturation = vec4((((_blend_set_color_luminance(_blend_set_color_saturation(_50_dsa, _49_sda), _48_alpha, _50_dsa) + dst.xyz) - _50_dsa) + src.xyz) - _49_sda, (src.w + dst.w) - _48_alpha);
-            return _47_blend_saturation;
+            return vec4((((_blend_set_color_luminance(_blend_set_color_saturation(_50_dsa, _49_sda), _48_alpha, _50_dsa) + dst.xyz) - _50_dsa) + src.xyz) - _49_sda, (src.w + dst.w) - _48_alpha);
 
         case 27:
-            vec4 _51_blend_color;
             float _52_alpha = dst.w * src.w;
             vec3 _53_sda = src.xyz * dst.w;
             vec3 _54_dsa = dst.xyz * src.w;
-            _51_blend_color = vec4((((_blend_set_color_luminance(_53_sda, _52_alpha, _54_dsa) + dst.xyz) - _54_dsa) + src.xyz) - _53_sda, (src.w + dst.w) - _52_alpha);
-            return _51_blend_color;
+            return vec4((((_blend_set_color_luminance(_53_sda, _52_alpha, _54_dsa) + dst.xyz) - _54_dsa) + src.xyz) - _53_sda, (src.w + dst.w) - _52_alpha);
 
         case 28:
-            vec4 _55_blend_luminosity;
             float _56_alpha = dst.w * src.w;
             vec3 _57_sda = src.xyz * dst.w;
             vec3 _58_dsa = dst.xyz * src.w;
-            _55_blend_luminosity = vec4((((_blend_set_color_luminance(_58_dsa, _56_alpha, _57_sda) + dst.xyz) - _58_dsa) + src.xyz) - _57_sda, (src.w + dst.w) - _56_alpha);
-            return _55_blend_luminosity;
+            return vec4((((_blend_set_color_luminance(_58_dsa, _56_alpha, _57_sda) + dst.xyz) - _58_dsa) + src.xyz) - _57_sda, (src.w + dst.w) - _56_alpha);
 
     }
     return vec4(0.0);
diff --git a/tests/sksl/blend/golden/BlendExclusion.asm.frag b/tests/sksl/blend/golden/BlendExclusion.asm.frag
index ef0a4a6..1d448b6 100644
--- a/tests/sksl/blend/golden/BlendExclusion.asm.frag
+++ b/tests/sksl/blend/golden/BlendExclusion.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_exclusion "_0_blend_exclusion"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,20 +15,19 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
-OpDecorate %18 RelaxedPrecision
+OpDecorate %16 RelaxedPrecision
+OpDecorate %19 RelaxedPrecision
 OpDecorate %21 RelaxedPrecision
 OpDecorate %23 RelaxedPrecision
-OpDecorate %25 RelaxedPrecision
+OpDecorate %26 RelaxedPrecision
 OpDecorate %28 RelaxedPrecision
-OpDecorate %30 RelaxedPrecision
-OpDecorate %31 RelaxedPrecision
-OpDecorate %35 RelaxedPrecision
+OpDecorate %29 RelaxedPrecision
+OpDecorate %33 RelaxedPrecision
+OpDecorate %36 RelaxedPrecision
 OpDecorate %38 RelaxedPrecision
-OpDecorate %40 RelaxedPrecision
+OpDecorate %39 RelaxedPrecision
 OpDecorate %41 RelaxedPrecision
-OpDecorate %43 RelaxedPrecision
-OpDecorate %44 RelaxedPrecision
-OpDecorate %46 RelaxedPrecision
+OpDecorate %42 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -42,40 +40,36 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %v3float = OpTypeVector %float 3
 %float_2 = OpConstant %float 2
 %float_1 = OpConstant %float 1
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_exclusion = OpVariable %_ptr_Function_v4float Function
-%18 = OpLoad %v4float %dst
-%19 = OpVectorShuffle %v3float %18 %18 0 1 2
-%21 = OpLoad %v4float %src
-%22 = OpVectorShuffle %v3float %21 %21 0 1 2
-%23 = OpFAdd %v3float %19 %22
-%25 = OpLoad %v4float %dst
-%26 = OpVectorShuffle %v3float %25 %25 0 1 2
-%27 = OpVectorTimesScalar %v3float %26 %float_2
-%28 = OpLoad %v4float %src
-%29 = OpVectorShuffle %v3float %28 %28 0 1 2
-%30 = OpFMul %v3float %27 %29
-%31 = OpFSub %v3float %23 %30
-%32 = OpCompositeExtract %float %31 0
-%33 = OpCompositeExtract %float %31 1
-%34 = OpCompositeExtract %float %31 2
-%35 = OpLoad %v4float %src
-%36 = OpCompositeExtract %float %35 3
-%38 = OpLoad %v4float %src
-%39 = OpCompositeExtract %float %38 3
-%40 = OpFSub %float %float_1 %39
-%41 = OpLoad %v4float %dst
-%42 = OpCompositeExtract %float %41 3
-%43 = OpFMul %float %40 %42
-%44 = OpFAdd %float %36 %43
-%45 = OpCompositeConstruct %v4float %32 %33 %34 %44
-OpStore %_0_blend_exclusion %45
-%46 = OpLoad %v4float %_0_blend_exclusion
-OpStore %sk_FragColor %46
+%16 = OpLoad %v4float %dst
+%17 = OpVectorShuffle %v3float %16 %16 0 1 2
+%19 = OpLoad %v4float %src
+%20 = OpVectorShuffle %v3float %19 %19 0 1 2
+%21 = OpFAdd %v3float %17 %20
+%23 = OpLoad %v4float %dst
+%24 = OpVectorShuffle %v3float %23 %23 0 1 2
+%25 = OpVectorTimesScalar %v3float %24 %float_2
+%26 = OpLoad %v4float %src
+%27 = OpVectorShuffle %v3float %26 %26 0 1 2
+%28 = OpFMul %v3float %25 %27
+%29 = OpFSub %v3float %21 %28
+%30 = OpCompositeExtract %float %29 0
+%31 = OpCompositeExtract %float %29 1
+%32 = OpCompositeExtract %float %29 2
+%33 = OpLoad %v4float %src
+%34 = OpCompositeExtract %float %33 3
+%36 = OpLoad %v4float %src
+%37 = OpCompositeExtract %float %36 3
+%38 = OpFSub %float %float_1 %37
+%39 = OpLoad %v4float %dst
+%40 = OpCompositeExtract %float %39 3
+%41 = OpFMul %float %38 %40
+%42 = OpFAdd %float %34 %41
+%43 = OpCompositeConstruct %v4float %30 %31 %32 %42
+OpStore %sk_FragColor %43
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendExclusion.glsl b/tests/sksl/blend/golden/BlendExclusion.glsl
index 9e8cfca..027a653 100644
--- a/tests/sksl/blend/golden/BlendExclusion.glsl
+++ b/tests/sksl/blend/golden/BlendExclusion.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_exclusion;
-    _0_blend_exclusion = vec4((dst.xyz + src.xyz) - (2.0 * dst.xyz) * src.xyz, src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _0_blend_exclusion;
+    sk_FragColor = vec4((dst.xyz + src.xyz) - (2.0 * dst.xyz) * src.xyz, src.w + (1.0 - src.w) * dst.w);
 
 }
diff --git a/tests/sksl/blend/golden/BlendExclusion.metal b/tests/sksl/blend/golden/BlendExclusion.metal
index fa45860..06c29d6 100644
--- a/tests/sksl/blend/golden/BlendExclusion.metal
+++ b/tests/sksl/blend/golden/BlendExclusion.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_exclusion;
-    _0_blend_exclusion = float4((_in.dst.xyz + _in.src.xyz) - (2.0 * _in.dst.xyz) * _in.src.xyz, _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
-    _out->sk_FragColor = _0_blend_exclusion;
+    _out->sk_FragColor = float4((_in.dst.xyz + _in.src.xyz) - (2.0 * _in.dst.xyz) * _in.src.xyz, _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendExclusionStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendExclusionStandaloneSettings.glsl
index f34b279..1dd31df 100644
--- a/tests/sksl/blend/golden/BlendExclusionStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendExclusionStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_exclusion;
-    _0_blend_exclusion = vec4((dst.xyz + src.xyz) - (2.0 * dst.xyz) * src.xyz, src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _0_blend_exclusion;
+    sk_FragColor = vec4((dst.xyz + src.xyz) - (2.0 * dst.xyz) * src.xyz, src.w + (1.0 - src.w) * dst.w);
 
 }
diff --git a/tests/sksl/blend/golden/BlendHardLight.asm.frag b/tests/sksl/blend/golden/BlendHardLight.asm.frag
index 96589df..672412e 100644
--- a/tests/sksl/blend/golden/BlendHardLight.asm.frag
+++ b/tests/sksl/blend/golden/BlendHardLight.asm.frag
@@ -9,8 +9,6 @@
 OpName %dst "dst"
 OpName %_blend_overlay_component "_blend_overlay_component"
 OpName %main "main"
-OpName %_0_blend_hard_light "_0_blend_hard_light"
-OpName %_1_blend_overlay "_1_blend_overlay"
 OpName %_2_result "_2_result"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
@@ -39,19 +37,20 @@
 OpDecorate %54 RelaxedPrecision
 OpDecorate %55 RelaxedPrecision
 OpDecorate %56 RelaxedPrecision
-OpDecorate %64 RelaxedPrecision
-OpDecorate %67 RelaxedPrecision
-OpDecorate %71 RelaxedPrecision
-OpDecorate %74 RelaxedPrecision
-OpDecorate %78 RelaxedPrecision
-OpDecorate %81 RelaxedPrecision
-OpDecorate %85 RelaxedPrecision
+OpDecorate %62 RelaxedPrecision
+OpDecorate %65 RelaxedPrecision
+OpDecorate %69 RelaxedPrecision
+OpDecorate %72 RelaxedPrecision
+OpDecorate %76 RelaxedPrecision
+OpDecorate %79 RelaxedPrecision
+OpDecorate %83 RelaxedPrecision
+OpDecorate %86 RelaxedPrecision
 OpDecorate %88 RelaxedPrecision
-OpDecorate %90 RelaxedPrecision
+OpDecorate %89 RelaxedPrecision
 OpDecorate %91 RelaxedPrecision
-OpDecorate %93 RelaxedPrecision
+OpDecorate %92 RelaxedPrecision
 OpDecorate %94 RelaxedPrecision
-OpDecorate %96 RelaxedPrecision
+OpDecorate %95 RelaxedPrecision
 OpDecorate %97 RelaxedPrecision
 OpDecorate %99 RelaxedPrecision
 OpDecorate %101 RelaxedPrecision
@@ -59,12 +58,9 @@
 OpDecorate %105 RelaxedPrecision
 OpDecorate %107 RelaxedPrecision
 OpDecorate %109 RelaxedPrecision
-OpDecorate %111 RelaxedPrecision
+OpDecorate %110 RelaxedPrecision
 OpDecorate %112 RelaxedPrecision
-OpDecorate %114 RelaxedPrecision
-OpDecorate %115 RelaxedPrecision
-OpDecorate %116 RelaxedPrecision
-OpDecorate %117 RelaxedPrecision
+OpDecorate %113 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -134,71 +130,65 @@
 OpFunctionEnd
 %main = OpFunction %void None %58
 %59 = OpLabel
-%_0_blend_hard_light = OpVariable %_ptr_Function_v4float Function
-%_1_blend_overlay = OpVariable %_ptr_Function_v4float Function
 %_2_result = OpVariable %_ptr_Function_v4float Function
-%66 = OpVariable %_ptr_Function_v2float Function
-%69 = OpVariable %_ptr_Function_v2float Function
-%73 = OpVariable %_ptr_Function_v2float Function
-%76 = OpVariable %_ptr_Function_v2float Function
-%80 = OpVariable %_ptr_Function_v2float Function
-%83 = OpVariable %_ptr_Function_v2float Function
-%64 = OpLoad %v4float %dst
-%65 = OpVectorShuffle %v2float %64 %64 0 3
-OpStore %66 %65
-%67 = OpLoad %v4float %src
-%68 = OpVectorShuffle %v2float %67 %67 0 3
-OpStore %69 %68
-%70 = OpFunctionCall %float %_blend_overlay_component %66 %69
-%71 = OpLoad %v4float %dst
-%72 = OpVectorShuffle %v2float %71 %71 1 3
-OpStore %73 %72
-%74 = OpLoad %v4float %src
-%75 = OpVectorShuffle %v2float %74 %74 1 3
-OpStore %76 %75
-%77 = OpFunctionCall %float %_blend_overlay_component %73 %76
-%78 = OpLoad %v4float %dst
-%79 = OpVectorShuffle %v2float %78 %78 2 3
-OpStore %80 %79
-%81 = OpLoad %v4float %src
-%82 = OpVectorShuffle %v2float %81 %81 2 3
-OpStore %83 %82
-%84 = OpFunctionCall %float %_blend_overlay_component %80 %83
-%85 = OpLoad %v4float %dst
-%86 = OpCompositeExtract %float %85 3
-%88 = OpLoad %v4float %dst
-%89 = OpCompositeExtract %float %88 3
-%90 = OpFSub %float %float_1 %89
-%91 = OpLoad %v4float %src
-%92 = OpCompositeExtract %float %91 3
-%93 = OpFMul %float %90 %92
-%94 = OpFAdd %float %86 %93
-%95 = OpCompositeConstruct %v4float %70 %77 %84 %94
-OpStore %_2_result %95
-%96 = OpLoad %v4float %_2_result
-%97 = OpVectorShuffle %v3float %96 %96 0 1 2
-%99 = OpLoad %v4float %src
-%100 = OpVectorShuffle %v3float %99 %99 0 1 2
-%101 = OpLoad %v4float %dst
-%102 = OpCompositeExtract %float %101 3
-%103 = OpFSub %float %float_1 %102
-%104 = OpVectorTimesScalar %v3float %100 %103
-%105 = OpLoad %v4float %dst
-%106 = OpVectorShuffle %v3float %105 %105 0 1 2
-%107 = OpLoad %v4float %src
-%108 = OpCompositeExtract %float %107 3
-%109 = OpFSub %float %float_1 %108
-%110 = OpVectorTimesScalar %v3float %106 %109
-%111 = OpFAdd %v3float %104 %110
-%112 = OpFAdd %v3float %97 %111
+%64 = OpVariable %_ptr_Function_v2float Function
+%67 = OpVariable %_ptr_Function_v2float Function
+%71 = OpVariable %_ptr_Function_v2float Function
+%74 = OpVariable %_ptr_Function_v2float Function
+%78 = OpVariable %_ptr_Function_v2float Function
+%81 = OpVariable %_ptr_Function_v2float Function
+%62 = OpLoad %v4float %dst
+%63 = OpVectorShuffle %v2float %62 %62 0 3
+OpStore %64 %63
+%65 = OpLoad %v4float %src
+%66 = OpVectorShuffle %v2float %65 %65 0 3
+OpStore %67 %66
+%68 = OpFunctionCall %float %_blend_overlay_component %64 %67
+%69 = OpLoad %v4float %dst
+%70 = OpVectorShuffle %v2float %69 %69 1 3
+OpStore %71 %70
+%72 = OpLoad %v4float %src
+%73 = OpVectorShuffle %v2float %72 %72 1 3
+OpStore %74 %73
+%75 = OpFunctionCall %float %_blend_overlay_component %71 %74
+%76 = OpLoad %v4float %dst
+%77 = OpVectorShuffle %v2float %76 %76 2 3
+OpStore %78 %77
+%79 = OpLoad %v4float %src
+%80 = OpVectorShuffle %v2float %79 %79 2 3
+OpStore %81 %80
+%82 = OpFunctionCall %float %_blend_overlay_component %78 %81
+%83 = OpLoad %v4float %dst
+%84 = OpCompositeExtract %float %83 3
+%86 = OpLoad %v4float %dst
+%87 = OpCompositeExtract %float %86 3
+%88 = OpFSub %float %float_1 %87
+%89 = OpLoad %v4float %src
+%90 = OpCompositeExtract %float %89 3
+%91 = OpFMul %float %88 %90
+%92 = OpFAdd %float %84 %91
+%93 = OpCompositeConstruct %v4float %68 %75 %82 %92
+OpStore %_2_result %93
+%94 = OpLoad %v4float %_2_result
+%95 = OpVectorShuffle %v3float %94 %94 0 1 2
+%97 = OpLoad %v4float %src
+%98 = OpVectorShuffle %v3float %97 %97 0 1 2
+%99 = OpLoad %v4float %dst
+%100 = OpCompositeExtract %float %99 3
+%101 = OpFSub %float %float_1 %100
+%102 = OpVectorTimesScalar %v3float %98 %101
+%103 = OpLoad %v4float %dst
+%104 = OpVectorShuffle %v3float %103 %103 0 1 2
+%105 = OpLoad %v4float %src
+%106 = OpCompositeExtract %float %105 3
+%107 = OpFSub %float %float_1 %106
+%108 = OpVectorTimesScalar %v3float %104 %107
+%109 = OpFAdd %v3float %102 %108
+%110 = OpFAdd %v3float %95 %109
+%111 = OpLoad %v4float %_2_result
+%112 = OpVectorShuffle %v4float %111 %110 4 5 6 3
+OpStore %_2_result %112
 %113 = OpLoad %v4float %_2_result
-%114 = OpVectorShuffle %v4float %113 %112 4 5 6 3
-OpStore %_2_result %114
-%115 = OpLoad %v4float %_2_result
-OpStore %_1_blend_overlay %115
-%116 = OpLoad %v4float %_1_blend_overlay
-OpStore %_0_blend_hard_light %116
-%117 = OpLoad %v4float %_0_blend_hard_light
-OpStore %sk_FragColor %117
+OpStore %sk_FragColor %113
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendHardLight.glsl b/tests/sksl/blend/golden/BlendHardLight.glsl
index 3ff8aad..a49e094 100644
--- a/tests/sksl/blend/golden/BlendHardLight.glsl
+++ b/tests/sksl/blend/golden/BlendHardLight.glsl
@@ -6,13 +6,9 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_hard_light;
-    vec4 _1_blend_overlay;
     vec4 _2_result = vec4(_blend_overlay_component(dst.xw, src.xw), _blend_overlay_component(dst.yw, src.yw), _blend_overlay_component(dst.zw, src.zw), dst.w + (1.0 - dst.w) * src.w);
     _2_result.xyz += src.xyz * (1.0 - dst.w) + dst.xyz * (1.0 - src.w);
-    _1_blend_overlay = _2_result;
-    _0_blend_hard_light = _1_blend_overlay;
+    sk_FragColor = _2_result;
 
-    sk_FragColor = _0_blend_hard_light;
 
 }
diff --git a/tests/sksl/blend/golden/BlendHardLight.metal b/tests/sksl/blend/golden/BlendHardLight.metal
index 453bd01..3091594 100644
--- a/tests/sksl/blend/golden/BlendHardLight.metal
+++ b/tests/sksl/blend/golden/BlendHardLight.metal
@@ -16,14 +16,10 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_hard_light;
-    float4 _1_blend_overlay;
     float4 _2_result = float4(_blend_overlay_component(_in.dst.xw, _in.src.xw), _blend_overlay_component(_in.dst.yw, _in.src.yw), _blend_overlay_component(_in.dst.zw, _in.src.zw), _in.dst.w + (1.0 - _in.dst.w) * _in.src.w);
     _2_result.xyz = _2_result.xyz + _in.src.xyz * (1.0 - _in.dst.w) + _in.dst.xyz * (1.0 - _in.src.w);
-    _1_blend_overlay = _2_result;
-    _0_blend_hard_light = _1_blend_overlay;
+    _out->sk_FragColor = _2_result;
 
-    _out->sk_FragColor = _0_blend_hard_light;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendHardLightStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendHardLightStandaloneSettings.glsl
index 310e70f..ac6e973 100644
--- a/tests/sksl/blend/golden/BlendHardLightStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendHardLightStandaloneSettings.glsl
@@ -6,13 +6,9 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_hard_light;
-    vec4 _1_blend_overlay;
     vec4 _2_result = vec4(_blend_overlay_component(dst.xw, src.xw), _blend_overlay_component(dst.yw, src.yw), _blend_overlay_component(dst.zw, src.zw), dst.w + (1.0 - dst.w) * src.w);
     _2_result.xyz += src.xyz * (1.0 - dst.w) + dst.xyz * (1.0 - src.w);
-    _1_blend_overlay = _2_result;
-    _0_blend_hard_light = _1_blend_overlay;
+    sk_FragColor = _2_result;
 
-    sk_FragColor = _0_blend_hard_light;
 
 }
diff --git a/tests/sksl/blend/golden/BlendHue.asm.frag b/tests/sksl/blend/golden/BlendHue.asm.frag
index 9f0edce..ea88149 100644
--- a/tests/sksl/blend/golden/BlendHue.asm.frag
+++ b/tests/sksl/blend/golden/BlendHue.asm.frag
@@ -9,20 +9,15 @@
 OpName %dst "dst"
 OpName %_blend_set_color_saturation_helper "_blend_set_color_saturation_helper"
 OpName %main "main"
-OpName %_0_blend_hue "_0_blend_hue"
 OpName %_1_alpha "_1_alpha"
 OpName %_2_sda "_2_sda"
 OpName %_3_dsa "_3_dsa"
 OpName %_4_blend_set_color_saturation "_4_blend_set_color_saturation"
-OpName %_5_blend_color_saturation "_5_blend_color_saturation"
-OpName %_6_sat "_6_sat"
-OpName %_7_blend_set_color_luminance "_7_blend_set_color_luminance"
-OpName %_8_blend_color_luminance "_8_blend_color_luminance"
-OpName %_9_lum "_9_lum"
-OpName %_10_blend_color_luminance "_10_blend_color_luminance"
-OpName %_11_result "_11_result"
-OpName %_12_minComp "_12_minComp"
-OpName %_13_maxComp "_13_maxComp"
+OpName %_5_sat "_5_sat"
+OpName %_7_lum "_7_lum"
+OpName %_8_result "_8_result"
+OpName %_9_minComp "_9_minComp"
+OpName %_10_maxComp "_10_maxComp"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -43,96 +38,91 @@
 OpDecorate %43 RelaxedPrecision
 OpDecorate %44 RelaxedPrecision
 OpDecorate %47 RelaxedPrecision
+OpDecorate %52 RelaxedPrecision
 OpDecorate %54 RelaxedPrecision
 OpDecorate %56 RelaxedPrecision
 OpDecorate %58 RelaxedPrecision
 OpDecorate %60 RelaxedPrecision
-OpDecorate %62 RelaxedPrecision
+OpDecorate %64 RelaxedPrecision
 OpDecorate %66 RelaxedPrecision
-OpDecorate %68 RelaxedPrecision
+OpDecorate %73 RelaxedPrecision
 OpDecorate %75 RelaxedPrecision
 OpDecorate %77 RelaxedPrecision
-OpDecorate %79 RelaxedPrecision
+OpDecorate %81 RelaxedPrecision
 OpDecorate %83 RelaxedPrecision
 OpDecorate %85 RelaxedPrecision
 OpDecorate %87 RelaxedPrecision
-OpDecorate %89 RelaxedPrecision
-OpDecorate %91 RelaxedPrecision
-OpDecorate %92 RelaxedPrecision
-OpDecorate %94 RelaxedPrecision
-OpDecorate %100 RelaxedPrecision
-OpDecorate %102 RelaxedPrecision
-OpDecorate %108 RelaxedPrecision
-OpDecorate %110 RelaxedPrecision
-OpDecorate %113 RelaxedPrecision
-OpDecorate %115 RelaxedPrecision
-OpDecorate %121 RelaxedPrecision
+OpDecorate %88 RelaxedPrecision
+OpDecorate %90 RelaxedPrecision
+OpDecorate %96 RelaxedPrecision
+OpDecorate %98 RelaxedPrecision
+OpDecorate %104 RelaxedPrecision
+OpDecorate %106 RelaxedPrecision
+OpDecorate %109 RelaxedPrecision
+OpDecorate %111 RelaxedPrecision
+OpDecorate %117 RelaxedPrecision
+OpDecorate %120 RelaxedPrecision
 OpDecorate %124 RelaxedPrecision
-OpDecorate %128 RelaxedPrecision
+OpDecorate %127 RelaxedPrecision
 OpDecorate %131 RelaxedPrecision
-OpDecorate %135 RelaxedPrecision
-OpDecorate %137 RelaxedPrecision
-OpDecorate %143 RelaxedPrecision
+OpDecorate %133 RelaxedPrecision
+OpDecorate %139 RelaxedPrecision
+OpDecorate %142 RelaxedPrecision
 OpDecorate %146 RelaxedPrecision
-OpDecorate %150 RelaxedPrecision
-OpDecorate %152 RelaxedPrecision
-OpDecorate %158 RelaxedPrecision
+OpDecorate %148 RelaxedPrecision
+OpDecorate %154 RelaxedPrecision
+OpDecorate %157 RelaxedPrecision
 OpDecorate %161 RelaxedPrecision
-OpDecorate %165 RelaxedPrecision
-OpDecorate %168 RelaxedPrecision
+OpDecorate %164 RelaxedPrecision
+OpDecorate %174 RelaxedPrecision
+OpDecorate %176 RelaxedPrecision
 OpDecorate %179 RelaxedPrecision
+OpDecorate %180 RelaxedPrecision
 OpDecorate %181 RelaxedPrecision
-OpDecorate %185 RelaxedPrecision
 OpDecorate %187 RelaxedPrecision
-OpDecorate %188 RelaxedPrecision
 OpDecorate %189 RelaxedPrecision
-OpDecorate %190 RelaxedPrecision
+OpDecorate %191 RelaxedPrecision
 OpDecorate %196 RelaxedPrecision
 OpDecorate %198 RelaxedPrecision
 OpDecorate %200 RelaxedPrecision
-OpDecorate %205 RelaxedPrecision
+OpDecorate %203 RelaxedPrecision
 OpDecorate %207 RelaxedPrecision
-OpDecorate %209 RelaxedPrecision
-OpDecorate %212 RelaxedPrecision
-OpDecorate %216 RelaxedPrecision
-OpDecorate %217 RelaxedPrecision
+OpDecorate %208 RelaxedPrecision
+OpDecorate %213 RelaxedPrecision
+OpDecorate %214 RelaxedPrecision
+OpDecorate %215 RelaxedPrecision
+OpDecorate %218 RelaxedPrecision
+OpDecorate %220 RelaxedPrecision
+OpDecorate %221 RelaxedPrecision
 OpDecorate %222 RelaxedPrecision
-OpDecorate %223 RelaxedPrecision
-OpDecorate %224 RelaxedPrecision
-OpDecorate %227 RelaxedPrecision
+OpDecorate %228 RelaxedPrecision
 OpDecorate %229 RelaxedPrecision
-OpDecorate %230 RelaxedPrecision
-OpDecorate %231 RelaxedPrecision
-OpDecorate %237 RelaxedPrecision
-OpDecorate %238 RelaxedPrecision
+OpDecorate %233 RelaxedPrecision
+OpDecorate %234 RelaxedPrecision
+OpDecorate %241 RelaxedPrecision
 OpDecorate %242 RelaxedPrecision
 OpDecorate %243 RelaxedPrecision
+OpDecorate %246 RelaxedPrecision
+OpDecorate %247 RelaxedPrecision
+OpDecorate %248 RelaxedPrecision
 OpDecorate %250 RelaxedPrecision
 OpDecorate %251 RelaxedPrecision
 OpDecorate %252 RelaxedPrecision
-OpDecorate %255 RelaxedPrecision
-OpDecorate %256 RelaxedPrecision
 OpDecorate %257 RelaxedPrecision
+OpDecorate %258 RelaxedPrecision
 OpDecorate %259 RelaxedPrecision
-OpDecorate %260 RelaxedPrecision
 OpDecorate %261 RelaxedPrecision
+OpDecorate %262 RelaxedPrecision
+OpDecorate %263 RelaxedPrecision
+OpDecorate %264 RelaxedPrecision
 OpDecorate %266 RelaxedPrecision
 OpDecorate %267 RelaxedPrecision
 OpDecorate %268 RelaxedPrecision
-OpDecorate %269 RelaxedPrecision
-OpDecorate %271 RelaxedPrecision
 OpDecorate %272 RelaxedPrecision
-OpDecorate %273 RelaxedPrecision
 OpDecorate %274 RelaxedPrecision
 OpDecorate %276 RelaxedPrecision
 OpDecorate %277 RelaxedPrecision
 OpDecorate %278 RelaxedPrecision
-OpDecorate %282 RelaxedPrecision
-OpDecorate %284 RelaxedPrecision
-OpDecorate %286 RelaxedPrecision
-OpDecorate %287 RelaxedPrecision
-OpDecorate %288 RelaxedPrecision
-OpDecorate %290 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -151,12 +141,11 @@
 %46 = OpConstantComposite %v3float %float_0 %float_0 %float_0
 %void = OpTypeVoid
 %49 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %float_0_300000012 = OpConstant %float 0.300000012
 %float_0_589999974 = OpConstant %float 0.589999974
 %float_0_109999999 = OpConstant %float 0.109999999
-%175 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
-%184 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
+%170 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
+%178 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
 %false = OpConstantFalse %bool
 %float_1 = OpConstant %float 1
 %_blend_set_color_saturation_helper = OpFunction %v3float None %15
@@ -198,305 +187,290 @@
 OpFunctionEnd
 %main = OpFunction %void None %49
 %50 = OpLabel
-%_0_blend_hue = OpVariable %_ptr_Function_v4float Function
 %_1_alpha = OpVariable %_ptr_Function_float Function
 %_2_sda = OpVariable %_ptr_Function_v3float Function
 %_3_dsa = OpVariable %_ptr_Function_v3float Function
 %_4_blend_set_color_saturation = OpVariable %_ptr_Function_v3float Function
-%_5_blend_color_saturation = OpVariable %_ptr_Function_float Function
-%_6_sat = OpVariable %_ptr_Function_float Function
-%109 = OpVariable %_ptr_Function_v3float Function
-%111 = OpVariable %_ptr_Function_float Function
-%123 = OpVariable %_ptr_Function_v3float Function
-%125 = OpVariable %_ptr_Function_float Function
-%130 = OpVariable %_ptr_Function_v3float Function
-%132 = OpVariable %_ptr_Function_float Function
-%145 = OpVariable %_ptr_Function_v3float Function
-%147 = OpVariable %_ptr_Function_float Function
-%160 = OpVariable %_ptr_Function_v3float Function
-%162 = OpVariable %_ptr_Function_float Function
-%167 = OpVariable %_ptr_Function_v3float Function
-%169 = OpVariable %_ptr_Function_float Function
-%_7_blend_set_color_luminance = OpVariable %_ptr_Function_v3float Function
-%_8_blend_color_luminance = OpVariable %_ptr_Function_float Function
-%_9_lum = OpVariable %_ptr_Function_float Function
-%_10_blend_color_luminance = OpVariable %_ptr_Function_float Function
-%_11_result = OpVariable %_ptr_Function_v3float Function
-%_12_minComp = OpVariable %_ptr_Function_float Function
-%_13_maxComp = OpVariable %_ptr_Function_float Function
-%246 = OpVariable %_ptr_Function_v3float Function
-%54 = OpLoad %v4float %dst
+%_5_sat = OpVariable %_ptr_Function_float Function
+%105 = OpVariable %_ptr_Function_v3float Function
+%107 = OpVariable %_ptr_Function_float Function
+%119 = OpVariable %_ptr_Function_v3float Function
+%121 = OpVariable %_ptr_Function_float Function
+%126 = OpVariable %_ptr_Function_v3float Function
+%128 = OpVariable %_ptr_Function_float Function
+%141 = OpVariable %_ptr_Function_v3float Function
+%143 = OpVariable %_ptr_Function_float Function
+%156 = OpVariable %_ptr_Function_v3float Function
+%158 = OpVariable %_ptr_Function_float Function
+%163 = OpVariable %_ptr_Function_v3float Function
+%165 = OpVariable %_ptr_Function_float Function
+%_7_lum = OpVariable %_ptr_Function_float Function
+%_8_result = OpVariable %_ptr_Function_v3float Function
+%_9_minComp = OpVariable %_ptr_Function_float Function
+%_10_maxComp = OpVariable %_ptr_Function_float Function
+%237 = OpVariable %_ptr_Function_v3float Function
+%52 = OpLoad %v4float %dst
+%53 = OpCompositeExtract %float %52 3
+%54 = OpLoad %v4float %src
 %55 = OpCompositeExtract %float %54 3
-%56 = OpLoad %v4float %src
-%57 = OpCompositeExtract %float %56 3
-%58 = OpFMul %float %55 %57
-OpStore %_1_alpha %58
-%60 = OpLoad %v4float %src
-%61 = OpVectorShuffle %v3float %60 %60 0 1 2
-%62 = OpLoad %v4float %dst
-%63 = OpCompositeExtract %float %62 3
-%64 = OpVectorTimesScalar %v3float %61 %63
-OpStore %_2_sda %64
-%66 = OpLoad %v4float %dst
-%67 = OpVectorShuffle %v3float %66 %66 0 1 2
-%68 = OpLoad %v4float %src
-%69 = OpCompositeExtract %float %68 3
-%70 = OpVectorTimesScalar %v3float %67 %69
-OpStore %_3_dsa %70
+%56 = OpFMul %float %53 %55
+OpStore %_1_alpha %56
+%58 = OpLoad %v4float %src
+%59 = OpVectorShuffle %v3float %58 %58 0 1 2
+%60 = OpLoad %v4float %dst
+%61 = OpCompositeExtract %float %60 3
+%62 = OpVectorTimesScalar %v3float %59 %61
+OpStore %_2_sda %62
+%64 = OpLoad %v4float %dst
+%65 = OpVectorShuffle %v3float %64 %64 0 1 2
+%66 = OpLoad %v4float %src
+%67 = OpCompositeExtract %float %66 3
+%68 = OpVectorTimesScalar %v3float %65 %67
+OpStore %_3_dsa %68
+%73 = OpLoad %v3float %_3_dsa
+%74 = OpCompositeExtract %float %73 0
 %75 = OpLoad %v3float %_3_dsa
-%76 = OpCompositeExtract %float %75 0
+%76 = OpCompositeExtract %float %75 1
+%72 = OpExtInst %float %1 FMax %74 %76
 %77 = OpLoad %v3float %_3_dsa
-%78 = OpCompositeExtract %float %77 1
-%74 = OpExtInst %float %1 FMax %76 %78
-%79 = OpLoad %v3float %_3_dsa
-%80 = OpCompositeExtract %float %79 2
-%73 = OpExtInst %float %1 FMax %74 %80
+%78 = OpCompositeExtract %float %77 2
+%71 = OpExtInst %float %1 FMax %72 %78
+%81 = OpLoad %v3float %_3_dsa
+%82 = OpCompositeExtract %float %81 0
 %83 = OpLoad %v3float %_3_dsa
-%84 = OpCompositeExtract %float %83 0
+%84 = OpCompositeExtract %float %83 1
+%80 = OpExtInst %float %1 FMin %82 %84
 %85 = OpLoad %v3float %_3_dsa
-%86 = OpCompositeExtract %float %85 1
-%82 = OpExtInst %float %1 FMin %84 %86
-%87 = OpLoad %v3float %_3_dsa
-%88 = OpCompositeExtract %float %87 2
-%81 = OpExtInst %float %1 FMin %82 %88
-%89 = OpFSub %float %73 %81
-OpStore %_5_blend_color_saturation %89
-%91 = OpLoad %float %_5_blend_color_saturation
-OpStore %_6_sat %91
-%92 = OpLoad %v3float %_2_sda
-%93 = OpCompositeExtract %float %92 0
-%94 = OpLoad %v3float %_2_sda
-%95 = OpCompositeExtract %float %94 1
-%96 = OpFOrdLessThanEqual %bool %93 %95
-OpSelectionMerge %99 None
-OpBranchConditional %96 %97 %98
-%97 = OpLabel
-%100 = OpLoad %v3float %_2_sda
-%101 = OpCompositeExtract %float %100 1
-%102 = OpLoad %v3float %_2_sda
-%103 = OpCompositeExtract %float %102 2
-%104 = OpFOrdLessThanEqual %bool %101 %103
-OpSelectionMerge %107 None
-OpBranchConditional %104 %105 %106
-%105 = OpLabel
-%108 = OpLoad %v3float %_2_sda
-OpStore %109 %108
-%110 = OpLoad %float %_6_sat
-OpStore %111 %110
-%112 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %109 %111
-OpStore %_4_blend_set_color_saturation %112
-OpBranch %107
-%106 = OpLabel
-%113 = OpLoad %v3float %_2_sda
-%114 = OpCompositeExtract %float %113 0
-%115 = OpLoad %v3float %_2_sda
-%116 = OpCompositeExtract %float %115 2
-%117 = OpFOrdLessThanEqual %bool %114 %116
-OpSelectionMerge %120 None
-OpBranchConditional %117 %118 %119
-%118 = OpLabel
-%121 = OpLoad %v3float %_2_sda
-%122 = OpVectorShuffle %v3float %121 %121 0 2 1
-OpStore %123 %122
-%124 = OpLoad %float %_6_sat
-OpStore %125 %124
-%126 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %123 %125
-%127 = OpVectorShuffle %v3float %126 %126 0 2 1
-OpStore %_4_blend_set_color_saturation %127
-OpBranch %120
-%119 = OpLabel
-%128 = OpLoad %v3float %_2_sda
-%129 = OpVectorShuffle %v3float %128 %128 2 0 1
-OpStore %130 %129
-%131 = OpLoad %float %_6_sat
-OpStore %132 %131
-%133 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %130 %132
-%134 = OpVectorShuffle %v3float %133 %133 1 2 0
-OpStore %_4_blend_set_color_saturation %134
-OpBranch %120
-%120 = OpLabel
-OpBranch %107
-%107 = OpLabel
-OpBranch %99
-%98 = OpLabel
-%135 = OpLoad %v3float %_2_sda
-%136 = OpCompositeExtract %float %135 0
-%137 = OpLoad %v3float %_2_sda
-%138 = OpCompositeExtract %float %137 2
-%139 = OpFOrdLessThanEqual %bool %136 %138
-OpSelectionMerge %142 None
-OpBranchConditional %139 %140 %141
-%140 = OpLabel
-%143 = OpLoad %v3float %_2_sda
-%144 = OpVectorShuffle %v3float %143 %143 1 0 2
-OpStore %145 %144
-%146 = OpLoad %float %_6_sat
-OpStore %147 %146
-%148 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %145 %147
-%149 = OpVectorShuffle %v3float %148 %148 1 0 2
-OpStore %_4_blend_set_color_saturation %149
-OpBranch %142
-%141 = OpLabel
-%150 = OpLoad %v3float %_2_sda
-%151 = OpCompositeExtract %float %150 1
-%152 = OpLoad %v3float %_2_sda
-%153 = OpCompositeExtract %float %152 2
-%154 = OpFOrdLessThanEqual %bool %151 %153
-OpSelectionMerge %157 None
-OpBranchConditional %154 %155 %156
-%155 = OpLabel
-%158 = OpLoad %v3float %_2_sda
-%159 = OpVectorShuffle %v3float %158 %158 1 2 0
-OpStore %160 %159
-%161 = OpLoad %float %_6_sat
-OpStore %162 %161
-%163 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %160 %162
-%164 = OpVectorShuffle %v3float %163 %163 2 0 1
-OpStore %_4_blend_set_color_saturation %164
-OpBranch %157
-%156 = OpLabel
-%165 = OpLoad %v3float %_2_sda
-%166 = OpVectorShuffle %v3float %165 %165 2 1 0
-OpStore %167 %166
-%168 = OpLoad %float %_6_sat
-OpStore %169 %168
-%170 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %167 %169
-%171 = OpVectorShuffle %v3float %170 %170 2 1 0
-OpStore %_4_blend_set_color_saturation %171
-OpBranch %157
-%157 = OpLabel
-OpBranch %142
-%142 = OpLabel
-OpBranch %99
-%99 = OpLabel
-%179 = OpLoad %v3float %_3_dsa
-%174 = OpDot %float %175 %179
-OpStore %_8_blend_color_luminance %174
-%181 = OpLoad %float %_8_blend_color_luminance
-OpStore %_9_lum %181
-%185 = OpLoad %v3float %_4_blend_set_color_saturation
-%183 = OpDot %float %184 %185
-OpStore %_10_blend_color_luminance %183
-%187 = OpLoad %float %_9_lum
-%188 = OpLoad %float %_10_blend_color_luminance
-%189 = OpFSub %float %187 %188
-%190 = OpLoad %v3float %_4_blend_set_color_saturation
-%191 = OpCompositeConstruct %v3float %189 %189 %189
-%192 = OpFAdd %v3float %191 %190
-OpStore %_11_result %192
-%196 = OpLoad %v3float %_11_result
+%86 = OpCompositeExtract %float %85 2
+%79 = OpExtInst %float %1 FMin %80 %86
+%87 = OpFSub %float %71 %79
+OpStore %_5_sat %87
+%88 = OpLoad %v3float %_2_sda
+%89 = OpCompositeExtract %float %88 0
+%90 = OpLoad %v3float %_2_sda
+%91 = OpCompositeExtract %float %90 1
+%92 = OpFOrdLessThanEqual %bool %89 %91
+OpSelectionMerge %95 None
+OpBranchConditional %92 %93 %94
+%93 = OpLabel
+%96 = OpLoad %v3float %_2_sda
+%97 = OpCompositeExtract %float %96 1
+%98 = OpLoad %v3float %_2_sda
+%99 = OpCompositeExtract %float %98 2
+%100 = OpFOrdLessThanEqual %bool %97 %99
+OpSelectionMerge %103 None
+OpBranchConditional %100 %101 %102
+%101 = OpLabel
+%104 = OpLoad %v3float %_2_sda
+OpStore %105 %104
+%106 = OpLoad %float %_5_sat
+OpStore %107 %106
+%108 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %105 %107
+OpStore %_4_blend_set_color_saturation %108
+OpBranch %103
+%102 = OpLabel
+%109 = OpLoad %v3float %_2_sda
+%110 = OpCompositeExtract %float %109 0
+%111 = OpLoad %v3float %_2_sda
+%112 = OpCompositeExtract %float %111 2
+%113 = OpFOrdLessThanEqual %bool %110 %112
+OpSelectionMerge %116 None
+OpBranchConditional %113 %114 %115
+%114 = OpLabel
+%117 = OpLoad %v3float %_2_sda
+%118 = OpVectorShuffle %v3float %117 %117 0 2 1
+OpStore %119 %118
+%120 = OpLoad %float %_5_sat
+OpStore %121 %120
+%122 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %119 %121
+%123 = OpVectorShuffle %v3float %122 %122 0 2 1
+OpStore %_4_blend_set_color_saturation %123
+OpBranch %116
+%115 = OpLabel
+%124 = OpLoad %v3float %_2_sda
+%125 = OpVectorShuffle %v3float %124 %124 2 0 1
+OpStore %126 %125
+%127 = OpLoad %float %_5_sat
+OpStore %128 %127
+%129 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %126 %128
+%130 = OpVectorShuffle %v3float %129 %129 1 2 0
+OpStore %_4_blend_set_color_saturation %130
+OpBranch %116
+%116 = OpLabel
+OpBranch %103
+%103 = OpLabel
+OpBranch %95
+%94 = OpLabel
+%131 = OpLoad %v3float %_2_sda
+%132 = OpCompositeExtract %float %131 0
+%133 = OpLoad %v3float %_2_sda
+%134 = OpCompositeExtract %float %133 2
+%135 = OpFOrdLessThanEqual %bool %132 %134
+OpSelectionMerge %138 None
+OpBranchConditional %135 %136 %137
+%136 = OpLabel
+%139 = OpLoad %v3float %_2_sda
+%140 = OpVectorShuffle %v3float %139 %139 1 0 2
+OpStore %141 %140
+%142 = OpLoad %float %_5_sat
+OpStore %143 %142
+%144 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %141 %143
+%145 = OpVectorShuffle %v3float %144 %144 1 0 2
+OpStore %_4_blend_set_color_saturation %145
+OpBranch %138
+%137 = OpLabel
+%146 = OpLoad %v3float %_2_sda
+%147 = OpCompositeExtract %float %146 1
+%148 = OpLoad %v3float %_2_sda
+%149 = OpCompositeExtract %float %148 2
+%150 = OpFOrdLessThanEqual %bool %147 %149
+OpSelectionMerge %153 None
+OpBranchConditional %150 %151 %152
+%151 = OpLabel
+%154 = OpLoad %v3float %_2_sda
+%155 = OpVectorShuffle %v3float %154 %154 1 2 0
+OpStore %156 %155
+%157 = OpLoad %float %_5_sat
+OpStore %158 %157
+%159 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %156 %158
+%160 = OpVectorShuffle %v3float %159 %159 2 0 1
+OpStore %_4_blend_set_color_saturation %160
+OpBranch %153
+%152 = OpLabel
+%161 = OpLoad %v3float %_2_sda
+%162 = OpVectorShuffle %v3float %161 %161 2 1 0
+OpStore %163 %162
+%164 = OpLoad %float %_5_sat
+OpStore %165 %164
+%166 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %163 %165
+%167 = OpVectorShuffle %v3float %166 %166 2 1 0
+OpStore %_4_blend_set_color_saturation %167
+OpBranch %153
+%153 = OpLabel
+OpBranch %138
+%138 = OpLabel
+OpBranch %95
+%95 = OpLabel
+%174 = OpLoad %v3float %_3_dsa
+%169 = OpDot %float %170 %174
+OpStore %_7_lum %169
+%176 = OpLoad %float %_7_lum
+%179 = OpLoad %v3float %_4_blend_set_color_saturation
+%177 = OpDot %float %178 %179
+%180 = OpFSub %float %176 %177
+%181 = OpLoad %v3float %_4_blend_set_color_saturation
+%182 = OpCompositeConstruct %v3float %180 %180 %180
+%183 = OpFAdd %v3float %182 %181
+OpStore %_8_result %183
+%187 = OpLoad %v3float %_8_result
+%188 = OpCompositeExtract %float %187 0
+%189 = OpLoad %v3float %_8_result
+%190 = OpCompositeExtract %float %189 1
+%186 = OpExtInst %float %1 FMin %188 %190
+%191 = OpLoad %v3float %_8_result
+%192 = OpCompositeExtract %float %191 2
+%185 = OpExtInst %float %1 FMin %186 %192
+OpStore %_9_minComp %185
+%196 = OpLoad %v3float %_8_result
 %197 = OpCompositeExtract %float %196 0
-%198 = OpLoad %v3float %_11_result
+%198 = OpLoad %v3float %_8_result
 %199 = OpCompositeExtract %float %198 1
-%195 = OpExtInst %float %1 FMin %197 %199
-%200 = OpLoad %v3float %_11_result
+%195 = OpExtInst %float %1 FMax %197 %199
+%200 = OpLoad %v3float %_8_result
 %201 = OpCompositeExtract %float %200 2
-%194 = OpExtInst %float %1 FMin %195 %201
-OpStore %_12_minComp %194
-%205 = OpLoad %v3float %_11_result
-%206 = OpCompositeExtract %float %205 0
-%207 = OpLoad %v3float %_11_result
-%208 = OpCompositeExtract %float %207 1
-%204 = OpExtInst %float %1 FMax %206 %208
-%209 = OpLoad %v3float %_11_result
-%210 = OpCompositeExtract %float %209 2
-%203 = OpExtInst %float %1 FMax %204 %210
-OpStore %_13_maxComp %203
-%212 = OpLoad %float %_12_minComp
-%213 = OpFOrdLessThan %bool %212 %float_0
-OpSelectionMerge %215 None
-OpBranchConditional %213 %214 %215
-%214 = OpLabel
-%216 = OpLoad %float %_9_lum
-%217 = OpLoad %float %_12_minComp
-%218 = OpFOrdNotEqual %bool %216 %217
-OpBranch %215
-%215 = OpLabel
-%219 = OpPhi %bool %false %99 %218 %214
-OpSelectionMerge %221 None
-OpBranchConditional %219 %220 %221
-%220 = OpLabel
-%222 = OpLoad %float %_9_lum
-%223 = OpLoad %v3float %_11_result
-%224 = OpLoad %float %_9_lum
-%225 = OpCompositeConstruct %v3float %224 %224 %224
-%226 = OpFSub %v3float %223 %225
-%227 = OpLoad %float %_9_lum
-%228 = OpVectorTimesScalar %v3float %226 %227
-%229 = OpLoad %float %_9_lum
-%230 = OpLoad %float %_12_minComp
-%231 = OpFSub %float %229 %230
-%233 = OpFDiv %float %float_1 %231
-%234 = OpVectorTimesScalar %v3float %228 %233
-%235 = OpCompositeConstruct %v3float %222 %222 %222
-%236 = OpFAdd %v3float %235 %234
-OpStore %_11_result %236
-OpBranch %221
-%221 = OpLabel
-%237 = OpLoad %float %_13_maxComp
-%238 = OpLoad %float %_1_alpha
-%239 = OpFOrdGreaterThan %bool %237 %238
-OpSelectionMerge %241 None
-OpBranchConditional %239 %240 %241
+%194 = OpExtInst %float %1 FMax %195 %201
+OpStore %_10_maxComp %194
+%203 = OpLoad %float %_9_minComp
+%204 = OpFOrdLessThan %bool %203 %float_0
+OpSelectionMerge %206 None
+OpBranchConditional %204 %205 %206
+%205 = OpLabel
+%207 = OpLoad %float %_7_lum
+%208 = OpLoad %float %_9_minComp
+%209 = OpFOrdNotEqual %bool %207 %208
+OpBranch %206
+%206 = OpLabel
+%210 = OpPhi %bool %false %95 %209 %205
+OpSelectionMerge %212 None
+OpBranchConditional %210 %211 %212
+%211 = OpLabel
+%213 = OpLoad %float %_7_lum
+%214 = OpLoad %v3float %_8_result
+%215 = OpLoad %float %_7_lum
+%216 = OpCompositeConstruct %v3float %215 %215 %215
+%217 = OpFSub %v3float %214 %216
+%218 = OpLoad %float %_7_lum
+%219 = OpVectorTimesScalar %v3float %217 %218
+%220 = OpLoad %float %_7_lum
+%221 = OpLoad %float %_9_minComp
+%222 = OpFSub %float %220 %221
+%224 = OpFDiv %float %float_1 %222
+%225 = OpVectorTimesScalar %v3float %219 %224
+%226 = OpCompositeConstruct %v3float %213 %213 %213
+%227 = OpFAdd %v3float %226 %225
+OpStore %_8_result %227
+OpBranch %212
+%212 = OpLabel
+%228 = OpLoad %float %_10_maxComp
+%229 = OpLoad %float %_1_alpha
+%230 = OpFOrdGreaterThan %bool %228 %229
+OpSelectionMerge %232 None
+OpBranchConditional %230 %231 %232
+%231 = OpLabel
+%233 = OpLoad %float %_10_maxComp
+%234 = OpLoad %float %_7_lum
+%235 = OpFOrdNotEqual %bool %233 %234
+OpBranch %232
+%232 = OpLabel
+%236 = OpPhi %bool %false %212 %235 %231
+OpSelectionMerge %240 None
+OpBranchConditional %236 %238 %239
+%238 = OpLabel
+%241 = OpLoad %float %_7_lum
+%242 = OpLoad %v3float %_8_result
+%243 = OpLoad %float %_7_lum
+%244 = OpCompositeConstruct %v3float %243 %243 %243
+%245 = OpFSub %v3float %242 %244
+%246 = OpLoad %float %_1_alpha
+%247 = OpLoad %float %_7_lum
+%248 = OpFSub %float %246 %247
+%249 = OpVectorTimesScalar %v3float %245 %248
+%250 = OpLoad %float %_10_maxComp
+%251 = OpLoad %float %_7_lum
+%252 = OpFSub %float %250 %251
+%253 = OpFDiv %float %float_1 %252
+%254 = OpVectorTimesScalar %v3float %249 %253
+%255 = OpCompositeConstruct %v3float %241 %241 %241
+%256 = OpFAdd %v3float %255 %254
+OpStore %237 %256
+OpBranch %240
+%239 = OpLabel
+%257 = OpLoad %v3float %_8_result
+OpStore %237 %257
+OpBranch %240
 %240 = OpLabel
-%242 = OpLoad %float %_13_maxComp
-%243 = OpLoad %float %_9_lum
-%244 = OpFOrdNotEqual %bool %242 %243
-OpBranch %241
-%241 = OpLabel
-%245 = OpPhi %bool %false %221 %244 %240
-OpSelectionMerge %249 None
-OpBranchConditional %245 %247 %248
-%247 = OpLabel
-%250 = OpLoad %float %_9_lum
-%251 = OpLoad %v3float %_11_result
-%252 = OpLoad %float %_9_lum
-%253 = OpCompositeConstruct %v3float %252 %252 %252
-%254 = OpFSub %v3float %251 %253
-%255 = OpLoad %float %_1_alpha
-%256 = OpLoad %float %_9_lum
-%257 = OpFSub %float %255 %256
-%258 = OpVectorTimesScalar %v3float %254 %257
-%259 = OpLoad %float %_13_maxComp
-%260 = OpLoad %float %_9_lum
-%261 = OpFSub %float %259 %260
-%262 = OpFDiv %float %float_1 %261
-%263 = OpVectorTimesScalar %v3float %258 %262
-%264 = OpCompositeConstruct %v3float %250 %250 %250
-%265 = OpFAdd %v3float %264 %263
-OpStore %246 %265
-OpBranch %249
-%248 = OpLabel
-%266 = OpLoad %v3float %_11_result
-OpStore %246 %266
-OpBranch %249
-%249 = OpLabel
-%267 = OpLoad %v3float %246
-OpStore %_7_blend_set_color_luminance %267
-%268 = OpLoad %v3float %_7_blend_set_color_luminance
-%269 = OpLoad %v4float %dst
-%270 = OpVectorShuffle %v3float %269 %269 0 1 2
-%271 = OpFAdd %v3float %268 %270
-%272 = OpLoad %v3float %_3_dsa
-%273 = OpFSub %v3float %271 %272
-%274 = OpLoad %v4float %src
-%275 = OpVectorShuffle %v3float %274 %274 0 1 2
-%276 = OpFAdd %v3float %273 %275
-%277 = OpLoad %v3float %_2_sda
-%278 = OpFSub %v3float %276 %277
-%279 = OpCompositeExtract %float %278 0
-%280 = OpCompositeExtract %float %278 1
-%281 = OpCompositeExtract %float %278 2
-%282 = OpLoad %v4float %src
-%283 = OpCompositeExtract %float %282 3
-%284 = OpLoad %v4float %dst
-%285 = OpCompositeExtract %float %284 3
-%286 = OpFAdd %float %283 %285
-%287 = OpLoad %float %_1_alpha
-%288 = OpFSub %float %286 %287
-%289 = OpCompositeConstruct %v4float %279 %280 %281 %288
-OpStore %_0_blend_hue %289
-%290 = OpLoad %v4float %_0_blend_hue
-OpStore %sk_FragColor %290
+%258 = OpLoad %v3float %237
+%259 = OpLoad %v4float %dst
+%260 = OpVectorShuffle %v3float %259 %259 0 1 2
+%261 = OpFAdd %v3float %258 %260
+%262 = OpLoad %v3float %_3_dsa
+%263 = OpFSub %v3float %261 %262
+%264 = OpLoad %v4float %src
+%265 = OpVectorShuffle %v3float %264 %264 0 1 2
+%266 = OpFAdd %v3float %263 %265
+%267 = OpLoad %v3float %_2_sda
+%268 = OpFSub %v3float %266 %267
+%269 = OpCompositeExtract %float %268 0
+%270 = OpCompositeExtract %float %268 1
+%271 = OpCompositeExtract %float %268 2
+%272 = OpLoad %v4float %src
+%273 = OpCompositeExtract %float %272 3
+%274 = OpLoad %v4float %dst
+%275 = OpCompositeExtract %float %274 3
+%276 = OpFAdd %float %273 %275
+%277 = OpLoad %float %_1_alpha
+%278 = OpFSub %float %276 %277
+%279 = OpCompositeConstruct %v4float %269 %270 %271 %278
+OpStore %sk_FragColor %279
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendHue.glsl b/tests/sksl/blend/golden/BlendHue.glsl
index de577aa..5444a8c 100644
--- a/tests/sksl/blend/golden/BlendHue.glsl
+++ b/tests/sksl/blend/golden/BlendHue.glsl
@@ -6,48 +6,38 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_hue;
     float _1_alpha = dst.w * src.w;
     vec3 _2_sda = src.xyz * dst.w;
     vec3 _3_dsa = dst.xyz * src.w;
     vec3 _4_blend_set_color_saturation;
-    float _5_blend_color_saturation;
-    _5_blend_color_saturation = max(max(_3_dsa.x, _3_dsa.y), _3_dsa.z) - min(min(_3_dsa.x, _3_dsa.y), _3_dsa.z);
-    float _6_sat = _5_blend_color_saturation;
+    float _5_sat = max(max(_3_dsa.x, _3_dsa.y), _3_dsa.z) - min(min(_3_dsa.x, _3_dsa.y), _3_dsa.z);
 
     if (_2_sda.x <= _2_sda.y) {
         if (_2_sda.y <= _2_sda.z) {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda, _6_sat);
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda, _5_sat);
         } else if (_2_sda.x <= _2_sda.z) {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.xzy, _6_sat).xzy;
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.xzy, _5_sat).xzy;
         } else {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zxy, _6_sat).yzx;
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zxy, _5_sat).yzx;
         }
     } else if (_2_sda.x <= _2_sda.z) {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yxz, _6_sat).yxz;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yxz, _5_sat).yxz;
     } else if (_2_sda.y <= _2_sda.z) {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yzx, _6_sat).zxy;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yzx, _5_sat).zxy;
     } else {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zyx, _6_sat).zyx;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zyx, _5_sat).zyx;
     }
-    vec3 _7_blend_set_color_luminance;
-    float _8_blend_color_luminance;
-    _8_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
-    float _9_lum = _8_blend_color_luminance;
+    float _7_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
 
-    float _10_blend_color_luminance;
-    _10_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation);
-    vec3 _11_result = (_9_lum - _10_blend_color_luminance) + _4_blend_set_color_saturation;
+    vec3 _8_result = (_7_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation)) + _4_blend_set_color_saturation;
 
-    float _12_minComp = min(min(_11_result.x, _11_result.y), _11_result.z);
-    float _13_maxComp = max(max(_11_result.x, _11_result.y), _11_result.z);
-    if (_12_minComp < 0.0 && _9_lum != _12_minComp) {
-        _11_result = _9_lum + ((_11_result - _9_lum) * _9_lum) / (_9_lum - _12_minComp);
+    float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
+    float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
+    if (_9_minComp < 0.0 && _7_lum != _9_minComp) {
+        _8_result = _7_lum + ((_8_result - _7_lum) * _7_lum) / (_7_lum - _9_minComp);
     }
-    _7_blend_set_color_luminance = _13_maxComp > _1_alpha && _13_maxComp != _9_lum ? _9_lum + ((_11_result - _9_lum) * (_1_alpha - _9_lum)) / (_13_maxComp - _9_lum) : _11_result;
-    _0_blend_hue = vec4((((_7_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
+    sk_FragColor = vec4(((((_10_maxComp > _1_alpha && _10_maxComp != _7_lum ? _7_lum + ((_8_result - _7_lum) * (_1_alpha - _7_lum)) / (_10_maxComp - _7_lum) : _8_result) + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
 
 
-    sk_FragColor = _0_blend_hue;
 
 }
diff --git a/tests/sksl/blend/golden/BlendHue.metal b/tests/sksl/blend/golden/BlendHue.metal
index 99185c7..3fc8c16 100644
--- a/tests/sksl/blend/golden/BlendHue.metal
+++ b/tests/sksl/blend/golden/BlendHue.metal
@@ -16,49 +16,39 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_hue;
     float _1_alpha = _in.dst.w * _in.src.w;
     float3 _2_sda = _in.src.xyz * _in.dst.w;
     float3 _3_dsa = _in.dst.xyz * _in.src.w;
     float3 _4_blend_set_color_saturation;
-    float _5_blend_color_saturation;
-    _5_blend_color_saturation = max(max(_3_dsa.x, _3_dsa.y), _3_dsa.z) - min(min(_3_dsa.x, _3_dsa.y), _3_dsa.z);
-    float _6_sat = _5_blend_color_saturation;
+    float _5_sat = max(max(_3_dsa.x, _3_dsa.y), _3_dsa.z) - min(min(_3_dsa.x, _3_dsa.y), _3_dsa.z);
 
     if (_2_sda.x <= _2_sda.y) {
         if (_2_sda.y <= _2_sda.z) {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda, _6_sat);
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda, _5_sat);
         } else if (_2_sda.x <= _2_sda.z) {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.xzy, _6_sat).xzy;
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.xzy, _5_sat).xzy;
         } else {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zxy, _6_sat).yzx;
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zxy, _5_sat).yzx;
         }
     } else if (_2_sda.x <= _2_sda.z) {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yxz, _6_sat).yxz;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yxz, _5_sat).yxz;
     } else if (_2_sda.y <= _2_sda.z) {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yzx, _6_sat).zxy;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yzx, _5_sat).zxy;
     } else {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zyx, _6_sat).zyx;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zyx, _5_sat).zyx;
     }
-    float3 _7_blend_set_color_luminance;
-    float _8_blend_color_luminance;
-    _8_blend_color_luminance = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
-    float _9_lum = _8_blend_color_luminance;
+    float _7_lum = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
 
-    float _10_blend_color_luminance;
-    _10_blend_color_luminance = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation);
-    float3 _11_result = (_9_lum - _10_blend_color_luminance) + _4_blend_set_color_saturation;
+    float3 _8_result = (_7_lum - dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation)) + _4_blend_set_color_saturation;
 
-    float _12_minComp = min(min(_11_result.x, _11_result.y), _11_result.z);
-    float _13_maxComp = max(max(_11_result.x, _11_result.y), _11_result.z);
-    if (_12_minComp < 0.0 && _9_lum != _12_minComp) {
-        _11_result = _9_lum + ((_11_result - _9_lum) * _9_lum) / (_9_lum - _12_minComp);
+    float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
+    float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
+    if (_9_minComp < 0.0 && _7_lum != _9_minComp) {
+        _8_result = _7_lum + ((_8_result - _7_lum) * _7_lum) / (_7_lum - _9_minComp);
     }
-    _7_blend_set_color_luminance = _13_maxComp > _1_alpha && _13_maxComp != _9_lum ? _9_lum + ((_11_result - _9_lum) * (_1_alpha - _9_lum)) / (_13_maxComp - _9_lum) : _11_result;
-    _0_blend_hue = float4((((_7_blend_set_color_luminance + _in.dst.xyz) - _3_dsa) + _in.src.xyz) - _2_sda, (_in.src.w + _in.dst.w) - _1_alpha);
+    _out->sk_FragColor = float4(((((_10_maxComp > _1_alpha && _10_maxComp != _7_lum ? _7_lum + ((_8_result - _7_lum) * (_1_alpha - _7_lum)) / (_10_maxComp - _7_lum) : _8_result) + _in.dst.xyz) - _3_dsa) + _in.src.xyz) - _2_sda, (_in.src.w + _in.dst.w) - _1_alpha);
 
 
-    _out->sk_FragColor = _0_blend_hue;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendHueStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendHueStandaloneSettings.glsl
index 24b6d25..9e05bb6 100644
--- a/tests/sksl/blend/golden/BlendHueStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendHueStandaloneSettings.glsl
@@ -6,48 +6,38 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_hue;
     float _1_alpha = dst.w * src.w;
     vec3 _2_sda = src.xyz * dst.w;
     vec3 _3_dsa = dst.xyz * src.w;
     vec3 _4_blend_set_color_saturation;
-    float _5_blend_color_saturation;
-    _5_blend_color_saturation = max(max(_3_dsa.x, _3_dsa.y), _3_dsa.z) - min(min(_3_dsa.x, _3_dsa.y), _3_dsa.z);
-    float _6_sat = _5_blend_color_saturation;
+    float _5_sat = max(max(_3_dsa.x, _3_dsa.y), _3_dsa.z) - min(min(_3_dsa.x, _3_dsa.y), _3_dsa.z);
 
     if (_2_sda.x <= _2_sda.y) {
         if (_2_sda.y <= _2_sda.z) {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda, _6_sat);
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda, _5_sat);
         } else if (_2_sda.x <= _2_sda.z) {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.xzy, _6_sat).xzy;
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.xzy, _5_sat).xzy;
         } else {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zxy, _6_sat).yzx;
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zxy, _5_sat).yzx;
         }
     } else if (_2_sda.x <= _2_sda.z) {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yxz, _6_sat).yxz;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yxz, _5_sat).yxz;
     } else if (_2_sda.y <= _2_sda.z) {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yzx, _6_sat).zxy;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yzx, _5_sat).zxy;
     } else {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zyx, _6_sat).zyx;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zyx, _5_sat).zyx;
     }
-    vec3 _7_blend_set_color_luminance;
-    float _8_blend_color_luminance;
-    _8_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
-    float _9_lum = _8_blend_color_luminance;
+    float _7_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
 
-    float _10_blend_color_luminance;
-    _10_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation);
-    vec3 _11_result = (_9_lum - _10_blend_color_luminance) + _4_blend_set_color_saturation;
+    vec3 _8_result = (_7_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation)) + _4_blend_set_color_saturation;
 
-    float _12_minComp = min(min(_11_result.x, _11_result.y), _11_result.z);
-    float _13_maxComp = max(max(_11_result.x, _11_result.y), _11_result.z);
-    if (_12_minComp < 0.0 && _9_lum != _12_minComp) {
-        _11_result = _9_lum + ((_11_result - _9_lum) * _9_lum) / (_9_lum - _12_minComp);
+    float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
+    float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
+    if (_9_minComp < 0.0 && _7_lum != _9_minComp) {
+        _8_result = _7_lum + ((_8_result - _7_lum) * _7_lum) / (_7_lum - _9_minComp);
     }
-    _7_blend_set_color_luminance = _13_maxComp > _1_alpha && _13_maxComp != _9_lum ? _9_lum + ((_11_result - _9_lum) * (_1_alpha - _9_lum)) / (_13_maxComp - _9_lum) : _11_result;
-    _0_blend_hue = vec4((((_7_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
+    sk_FragColor = vec4(((((_10_maxComp > _1_alpha && _10_maxComp != _7_lum ? _7_lum + ((_8_result - _7_lum) * (_1_alpha - _7_lum)) / (_10_maxComp - _7_lum) : _8_result) + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
 
 
-    sk_FragColor = _0_blend_hue;
 
 }
diff --git a/tests/sksl/blend/golden/BlendLighten.asm.frag b/tests/sksl/blend/golden/BlendLighten.asm.frag
index 92f815e..d557c49 100644
--- a/tests/sksl/blend/golden/BlendLighten.asm.frag
+++ b/tests/sksl/blend/golden/BlendLighten.asm.frag
@@ -8,9 +8,7 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_lighten "_0_blend_lighten"
-OpName %_1_blend_src_over "_1_blend_src_over"
-OpName %_2_result "_2_result"
+OpName %_1_result "_1_result"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -18,21 +16,19 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
-OpDecorate %19 RelaxedPrecision
-OpDecorate %21 RelaxedPrecision
+OpDecorate %18 RelaxedPrecision
+OpDecorate %20 RelaxedPrecision
+OpDecorate %22 RelaxedPrecision
 OpDecorate %23 RelaxedPrecision
-OpDecorate %24 RelaxedPrecision
-OpDecorate %26 RelaxedPrecision
-OpDecorate %28 RelaxedPrecision
+OpDecorate %25 RelaxedPrecision
+OpDecorate %27 RelaxedPrecision
 OpDecorate %30 RelaxedPrecision
+OpDecorate %32 RelaxedPrecision
 OpDecorate %33 RelaxedPrecision
-OpDecorate %35 RelaxedPrecision
 OpDecorate %36 RelaxedPrecision
-OpDecorate %39 RelaxedPrecision
+OpDecorate %38 RelaxedPrecision
+OpDecorate %40 RelaxedPrecision
 OpDecorate %41 RelaxedPrecision
-OpDecorate %43 RelaxedPrecision
-OpDecorate %44 RelaxedPrecision
-OpDecorate %45 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -50,37 +46,31 @@
 %v3float = OpTypeVector %float 3
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_lighten = OpVariable %_ptr_Function_v4float Function
-%_1_blend_src_over = OpVariable %_ptr_Function_v4float Function
-%_2_result = OpVariable %_ptr_Function_v4float Function
-%19 = OpLoad %v4float %src
-%21 = OpLoad %v4float %src
-%22 = OpCompositeExtract %float %21 3
-%23 = OpFSub %float %float_1 %22
-%24 = OpLoad %v4float %dst
-%25 = OpVectorTimesScalar %v4float %24 %23
-%26 = OpFAdd %v4float %19 %25
-OpStore %_1_blend_src_over %26
-%28 = OpLoad %v4float %_1_blend_src_over
-OpStore %_2_result %28
-%30 = OpLoad %v4float %_2_result
-%31 = OpVectorShuffle %v3float %30 %30 0 1 2
-%33 = OpLoad %v4float %dst
-%34 = OpCompositeExtract %float %33 3
-%35 = OpFSub %float %float_1 %34
-%36 = OpLoad %v4float %src
+%_1_result = OpVariable %_ptr_Function_v4float Function
+%18 = OpLoad %v4float %src
+%20 = OpLoad %v4float %src
+%21 = OpCompositeExtract %float %20 3
+%22 = OpFSub %float %float_1 %21
+%23 = OpLoad %v4float %dst
+%24 = OpVectorTimesScalar %v4float %23 %22
+%25 = OpFAdd %v4float %18 %24
+OpStore %_1_result %25
+%27 = OpLoad %v4float %_1_result
+%28 = OpVectorShuffle %v3float %27 %27 0 1 2
+%30 = OpLoad %v4float %dst
+%31 = OpCompositeExtract %float %30 3
+%32 = OpFSub %float %float_1 %31
+%33 = OpLoad %v4float %src
+%34 = OpVectorShuffle %v3float %33 %33 0 1 2
+%35 = OpVectorTimesScalar %v3float %34 %32
+%36 = OpLoad %v4float %dst
 %37 = OpVectorShuffle %v3float %36 %36 0 1 2
-%38 = OpVectorTimesScalar %v3float %37 %35
-%39 = OpLoad %v4float %dst
-%40 = OpVectorShuffle %v3float %39 %39 0 1 2
-%41 = OpFAdd %v3float %38 %40
-%29 = OpExtInst %v3float %1 FMax %31 %41
-%42 = OpLoad %v4float %_2_result
-%43 = OpVectorShuffle %v4float %42 %29 4 5 6 3
-OpStore %_2_result %43
-%44 = OpLoad %v4float %_2_result
-OpStore %_0_blend_lighten %44
-%45 = OpLoad %v4float %_0_blend_lighten
-OpStore %sk_FragColor %45
+%38 = OpFAdd %v3float %35 %37
+%26 = OpExtInst %v3float %1 FMax %28 %38
+%39 = OpLoad %v4float %_1_result
+%40 = OpVectorShuffle %v4float %39 %26 4 5 6 3
+OpStore %_1_result %40
+%41 = OpLoad %v4float %_1_result
+OpStore %sk_FragColor %41
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendLighten.glsl b/tests/sksl/blend/golden/BlendLighten.glsl
index 8a08097..711f575 100644
--- a/tests/sksl/blend/golden/BlendLighten.glsl
+++ b/tests/sksl/blend/golden/BlendLighten.glsl
@@ -3,13 +3,9 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_lighten;
-    vec4 _1_blend_src_over;
-    _1_blend_src_over = src + (1.0 - src.w) * dst;
-    vec4 _2_result = _1_blend_src_over;
+    vec4 _1_result = src + (1.0 - src.w) * dst;
 
-    _2_result.xyz = max(_2_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
-    _0_blend_lighten = _2_result;
-    sk_FragColor = _0_blend_lighten;
+    _1_result.xyz = max(_1_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
+    sk_FragColor = _1_result;
 
 }
diff --git a/tests/sksl/blend/golden/BlendLighten.metal b/tests/sksl/blend/golden/BlendLighten.metal
index 4e038ed..22042cd 100644
--- a/tests/sksl/blend/golden/BlendLighten.metal
+++ b/tests/sksl/blend/golden/BlendLighten.metal
@@ -13,14 +13,10 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_lighten;
-    float4 _1_blend_src_over;
-    _1_blend_src_over = _in.src + (1.0 - _in.src.w) * _in.dst;
-    float4 _2_result = _1_blend_src_over;
+    float4 _1_result = _in.src + (1.0 - _in.src.w) * _in.dst;
 
-    _2_result.xyz = max(_2_result.xyz, (1.0 - _in.dst.w) * _in.src.xyz + _in.dst.xyz);
-    _0_blend_lighten = _2_result;
-    _out->sk_FragColor = _0_blend_lighten;
+    _1_result.xyz = max(_1_result.xyz, (1.0 - _in.dst.w) * _in.src.xyz + _in.dst.xyz);
+    _out->sk_FragColor = _1_result;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendLightenStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendLightenStandaloneSettings.glsl
index 5c1d732..cdb0429 100644
--- a/tests/sksl/blend/golden/BlendLightenStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendLightenStandaloneSettings.glsl
@@ -3,13 +3,9 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_lighten;
-    vec4 _1_blend_src_over;
-    _1_blend_src_over = src + (1.0 - src.w) * dst;
-    vec4 _2_result = _1_blend_src_over;
+    vec4 _1_result = src + (1.0 - src.w) * dst;
 
-    _2_result.xyz = max(_2_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
-    _0_blend_lighten = _2_result;
-    sk_FragColor = _0_blend_lighten;
+    _1_result.xyz = max(_1_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
+    sk_FragColor = _1_result;
 
 }
diff --git a/tests/sksl/blend/golden/BlendLuminosity.asm.frag b/tests/sksl/blend/golden/BlendLuminosity.asm.frag
index 3a17900..24a1b0a 100644
--- a/tests/sksl/blend/golden/BlendLuminosity.asm.frag
+++ b/tests/sksl/blend/golden/BlendLuminosity.asm.frag
@@ -8,17 +8,13 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_luminosity "_0_blend_luminosity"
 OpName %_1_alpha "_1_alpha"
 OpName %_2_sda "_2_sda"
 OpName %_3_dsa "_3_dsa"
-OpName %_4_blend_set_color_luminance "_4_blend_set_color_luminance"
-OpName %_5_blend_color_luminance "_5_blend_color_luminance"
-OpName %_6_lum "_6_lum"
-OpName %_7_blend_color_luminance "_7_blend_color_luminance"
-OpName %_8_result "_8_result"
-OpName %_9_minComp "_9_minComp"
-OpName %_10_maxComp "_10_maxComp"
+OpName %_5_lum "_5_lum"
+OpName %_6_result "_6_result"
+OpName %_7_minComp "_7_minComp"
+OpName %_8_maxComp "_8_maxComp"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -26,66 +22,62 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
+OpDecorate %18 RelaxedPrecision
 OpDecorate %20 RelaxedPrecision
 OpDecorate %22 RelaxedPrecision
-OpDecorate %24 RelaxedPrecision
+OpDecorate %26 RelaxedPrecision
 OpDecorate %28 RelaxedPrecision
-OpDecorate %30 RelaxedPrecision
+OpDecorate %32 RelaxedPrecision
 OpDecorate %34 RelaxedPrecision
-OpDecorate %36 RelaxedPrecision
-OpDecorate %46 RelaxedPrecision
+OpDecorate %43 RelaxedPrecision
+OpDecorate %45 RelaxedPrecision
 OpDecorate %48 RelaxedPrecision
-OpDecorate %52 RelaxedPrecision
-OpDecorate %54 RelaxedPrecision
-OpDecorate %55 RelaxedPrecision
+OpDecorate %49 RelaxedPrecision
+OpDecorate %50 RelaxedPrecision
 OpDecorate %56 RelaxedPrecision
-OpDecorate %57 RelaxedPrecision
-OpDecorate %63 RelaxedPrecision
+OpDecorate %58 RelaxedPrecision
+OpDecorate %60 RelaxedPrecision
 OpDecorate %65 RelaxedPrecision
 OpDecorate %67 RelaxedPrecision
+OpDecorate %69 RelaxedPrecision
 OpDecorate %72 RelaxedPrecision
-OpDecorate %74 RelaxedPrecision
-OpDecorate %76 RelaxedPrecision
-OpDecorate %79 RelaxedPrecision
+OpDecorate %77 RelaxedPrecision
+OpDecorate %78 RelaxedPrecision
+OpDecorate %83 RelaxedPrecision
 OpDecorate %84 RelaxedPrecision
 OpDecorate %85 RelaxedPrecision
+OpDecorate %88 RelaxedPrecision
 OpDecorate %90 RelaxedPrecision
 OpDecorate %91 RelaxedPrecision
 OpDecorate %92 RelaxedPrecision
-OpDecorate %95 RelaxedPrecision
-OpDecorate %97 RelaxedPrecision
 OpDecorate %98 RelaxedPrecision
 OpDecorate %99 RelaxedPrecision
-OpDecorate %105 RelaxedPrecision
-OpDecorate %106 RelaxedPrecision
-OpDecorate %110 RelaxedPrecision
+OpDecorate %103 RelaxedPrecision
+OpDecorate %104 RelaxedPrecision
 OpDecorate %111 RelaxedPrecision
+OpDecorate %112 RelaxedPrecision
+OpDecorate %113 RelaxedPrecision
+OpDecorate %116 RelaxedPrecision
+OpDecorate %117 RelaxedPrecision
 OpDecorate %118 RelaxedPrecision
-OpDecorate %119 RelaxedPrecision
 OpDecorate %120 RelaxedPrecision
-OpDecorate %123 RelaxedPrecision
-OpDecorate %124 RelaxedPrecision
-OpDecorate %125 RelaxedPrecision
+OpDecorate %121 RelaxedPrecision
+OpDecorate %122 RelaxedPrecision
 OpDecorate %127 RelaxedPrecision
 OpDecorate %128 RelaxedPrecision
 OpDecorate %129 RelaxedPrecision
+OpDecorate %131 RelaxedPrecision
+OpDecorate %132 RelaxedPrecision
+OpDecorate %133 RelaxedPrecision
 OpDecorate %134 RelaxedPrecision
-OpDecorate %135 RelaxedPrecision
 OpDecorate %136 RelaxedPrecision
 OpDecorate %137 RelaxedPrecision
-OpDecorate %139 RelaxedPrecision
-OpDecorate %140 RelaxedPrecision
-OpDecorate %141 RelaxedPrecision
+OpDecorate %138 RelaxedPrecision
 OpDecorate %142 RelaxedPrecision
 OpDecorate %144 RelaxedPrecision
-OpDecorate %145 RelaxedPrecision
 OpDecorate %146 RelaxedPrecision
-OpDecorate %150 RelaxedPrecision
-OpDecorate %152 RelaxedPrecision
-OpDecorate %154 RelaxedPrecision
-OpDecorate %155 RelaxedPrecision
-OpDecorate %156 RelaxedPrecision
-OpDecorate %158 RelaxedPrecision
+OpDecorate %147 RelaxedPrecision
+OpDecorate %148 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -98,178 +90,165 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %_ptr_Function_float = OpTypePointer Function %float
 %v3float = OpTypeVector %float 3
 %_ptr_Function_v3float = OpTypePointer Function %v3float
 %float_0_300000012 = OpConstant %float 0.300000012
 %float_0_589999974 = OpConstant %float 0.589999974
 %float_0_109999999 = OpConstant %float 0.109999999
-%42 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
-%51 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
+%39 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
+%47 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
 %false = OpConstantFalse %bool
 %float_0 = OpConstant %float 0
 %float_1 = OpConstant %float 1
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_luminosity = OpVariable %_ptr_Function_v4float Function
 %_1_alpha = OpVariable %_ptr_Function_float Function
 %_2_sda = OpVariable %_ptr_Function_v3float Function
 %_3_dsa = OpVariable %_ptr_Function_v3float Function
-%_4_blend_set_color_luminance = OpVariable %_ptr_Function_v3float Function
-%_5_blend_color_luminance = OpVariable %_ptr_Function_float Function
-%_6_lum = OpVariable %_ptr_Function_float Function
-%_7_blend_color_luminance = OpVariable %_ptr_Function_float Function
-%_8_result = OpVariable %_ptr_Function_v3float Function
-%_9_minComp = OpVariable %_ptr_Function_float Function
-%_10_maxComp = OpVariable %_ptr_Function_float Function
-%114 = OpVariable %_ptr_Function_v3float Function
-%20 = OpLoad %v4float %dst
+%_5_lum = OpVariable %_ptr_Function_float Function
+%_6_result = OpVariable %_ptr_Function_v3float Function
+%_7_minComp = OpVariable %_ptr_Function_float Function
+%_8_maxComp = OpVariable %_ptr_Function_float Function
+%107 = OpVariable %_ptr_Function_v3float Function
+%18 = OpLoad %v4float %dst
+%19 = OpCompositeExtract %float %18 3
+%20 = OpLoad %v4float %src
 %21 = OpCompositeExtract %float %20 3
-%22 = OpLoad %v4float %src
-%23 = OpCompositeExtract %float %22 3
-%24 = OpFMul %float %21 %23
-OpStore %_1_alpha %24
-%28 = OpLoad %v4float %src
-%29 = OpVectorShuffle %v3float %28 %28 0 1 2
-%30 = OpLoad %v4float %dst
-%31 = OpCompositeExtract %float %30 3
-%32 = OpVectorTimesScalar %v3float %29 %31
-OpStore %_2_sda %32
-%34 = OpLoad %v4float %dst
-%35 = OpVectorShuffle %v3float %34 %34 0 1 2
-%36 = OpLoad %v4float %src
-%37 = OpCompositeExtract %float %36 3
-%38 = OpVectorTimesScalar %v3float %35 %37
-OpStore %_3_dsa %38
-%46 = OpLoad %v3float %_2_sda
-%41 = OpDot %float %42 %46
-OpStore %_5_blend_color_luminance %41
-%48 = OpLoad %float %_5_blend_color_luminance
-OpStore %_6_lum %48
-%52 = OpLoad %v3float %_3_dsa
-%50 = OpDot %float %51 %52
-OpStore %_7_blend_color_luminance %50
-%54 = OpLoad %float %_6_lum
-%55 = OpLoad %float %_7_blend_color_luminance
-%56 = OpFSub %float %54 %55
-%57 = OpLoad %v3float %_3_dsa
-%58 = OpCompositeConstruct %v3float %56 %56 %56
-%59 = OpFAdd %v3float %58 %57
-OpStore %_8_result %59
-%63 = OpLoad %v3float %_8_result
-%64 = OpCompositeExtract %float %63 0
-%65 = OpLoad %v3float %_8_result
-%66 = OpCompositeExtract %float %65 1
-%62 = OpExtInst %float %1 FMin %64 %66
-%67 = OpLoad %v3float %_8_result
-%68 = OpCompositeExtract %float %67 2
-%61 = OpExtInst %float %1 FMin %62 %68
-OpStore %_9_minComp %61
-%72 = OpLoad %v3float %_8_result
-%73 = OpCompositeExtract %float %72 0
-%74 = OpLoad %v3float %_8_result
-%75 = OpCompositeExtract %float %74 1
-%71 = OpExtInst %float %1 FMax %73 %75
-%76 = OpLoad %v3float %_8_result
-%77 = OpCompositeExtract %float %76 2
-%70 = OpExtInst %float %1 FMax %71 %77
-OpStore %_10_maxComp %70
-%79 = OpLoad %float %_9_minComp
-%81 = OpFOrdLessThan %bool %79 %float_0
-OpSelectionMerge %83 None
-OpBranchConditional %81 %82 %83
+%22 = OpFMul %float %19 %21
+OpStore %_1_alpha %22
+%26 = OpLoad %v4float %src
+%27 = OpVectorShuffle %v3float %26 %26 0 1 2
+%28 = OpLoad %v4float %dst
+%29 = OpCompositeExtract %float %28 3
+%30 = OpVectorTimesScalar %v3float %27 %29
+OpStore %_2_sda %30
+%32 = OpLoad %v4float %dst
+%33 = OpVectorShuffle %v3float %32 %32 0 1 2
+%34 = OpLoad %v4float %src
+%35 = OpCompositeExtract %float %34 3
+%36 = OpVectorTimesScalar %v3float %33 %35
+OpStore %_3_dsa %36
+%43 = OpLoad %v3float %_2_sda
+%38 = OpDot %float %39 %43
+OpStore %_5_lum %38
+%45 = OpLoad %float %_5_lum
+%48 = OpLoad %v3float %_3_dsa
+%46 = OpDot %float %47 %48
+%49 = OpFSub %float %45 %46
+%50 = OpLoad %v3float %_3_dsa
+%51 = OpCompositeConstruct %v3float %49 %49 %49
+%52 = OpFAdd %v3float %51 %50
+OpStore %_6_result %52
+%56 = OpLoad %v3float %_6_result
+%57 = OpCompositeExtract %float %56 0
+%58 = OpLoad %v3float %_6_result
+%59 = OpCompositeExtract %float %58 1
+%55 = OpExtInst %float %1 FMin %57 %59
+%60 = OpLoad %v3float %_6_result
+%61 = OpCompositeExtract %float %60 2
+%54 = OpExtInst %float %1 FMin %55 %61
+OpStore %_7_minComp %54
+%65 = OpLoad %v3float %_6_result
+%66 = OpCompositeExtract %float %65 0
+%67 = OpLoad %v3float %_6_result
+%68 = OpCompositeExtract %float %67 1
+%64 = OpExtInst %float %1 FMax %66 %68
+%69 = OpLoad %v3float %_6_result
+%70 = OpCompositeExtract %float %69 2
+%63 = OpExtInst %float %1 FMax %64 %70
+OpStore %_8_maxComp %63
+%72 = OpLoad %float %_7_minComp
+%74 = OpFOrdLessThan %bool %72 %float_0
+OpSelectionMerge %76 None
+OpBranchConditional %74 %75 %76
+%75 = OpLabel
+%77 = OpLoad %float %_5_lum
+%78 = OpLoad %float %_7_minComp
+%79 = OpFOrdNotEqual %bool %77 %78
+OpBranch %76
+%76 = OpLabel
+%80 = OpPhi %bool %false %15 %79 %75
+OpSelectionMerge %82 None
+OpBranchConditional %80 %81 %82
+%81 = OpLabel
+%83 = OpLoad %float %_5_lum
+%84 = OpLoad %v3float %_6_result
+%85 = OpLoad %float %_5_lum
+%86 = OpCompositeConstruct %v3float %85 %85 %85
+%87 = OpFSub %v3float %84 %86
+%88 = OpLoad %float %_5_lum
+%89 = OpVectorTimesScalar %v3float %87 %88
+%90 = OpLoad %float %_5_lum
+%91 = OpLoad %float %_7_minComp
+%92 = OpFSub %float %90 %91
+%94 = OpFDiv %float %float_1 %92
+%95 = OpVectorTimesScalar %v3float %89 %94
+%96 = OpCompositeConstruct %v3float %83 %83 %83
+%97 = OpFAdd %v3float %96 %95
+OpStore %_6_result %97
+OpBranch %82
 %82 = OpLabel
-%84 = OpLoad %float %_6_lum
-%85 = OpLoad %float %_9_minComp
-%86 = OpFOrdNotEqual %bool %84 %85
-OpBranch %83
-%83 = OpLabel
-%87 = OpPhi %bool %false %15 %86 %82
-OpSelectionMerge %89 None
-OpBranchConditional %87 %88 %89
-%88 = OpLabel
-%90 = OpLoad %float %_6_lum
-%91 = OpLoad %v3float %_8_result
-%92 = OpLoad %float %_6_lum
-%93 = OpCompositeConstruct %v3float %92 %92 %92
-%94 = OpFSub %v3float %91 %93
-%95 = OpLoad %float %_6_lum
-%96 = OpVectorTimesScalar %v3float %94 %95
-%97 = OpLoad %float %_6_lum
-%98 = OpLoad %float %_9_minComp
-%99 = OpFSub %float %97 %98
-%101 = OpFDiv %float %float_1 %99
-%102 = OpVectorTimesScalar %v3float %96 %101
-%103 = OpCompositeConstruct %v3float %90 %90 %90
-%104 = OpFAdd %v3float %103 %102
-OpStore %_8_result %104
-OpBranch %89
-%89 = OpLabel
-%105 = OpLoad %float %_10_maxComp
-%106 = OpLoad %float %_1_alpha
-%107 = OpFOrdGreaterThan %bool %105 %106
-OpSelectionMerge %109 None
-OpBranchConditional %107 %108 %109
+%98 = OpLoad %float %_8_maxComp
+%99 = OpLoad %float %_1_alpha
+%100 = OpFOrdGreaterThan %bool %98 %99
+OpSelectionMerge %102 None
+OpBranchConditional %100 %101 %102
+%101 = OpLabel
+%103 = OpLoad %float %_8_maxComp
+%104 = OpLoad %float %_5_lum
+%105 = OpFOrdNotEqual %bool %103 %104
+OpBranch %102
+%102 = OpLabel
+%106 = OpPhi %bool %false %82 %105 %101
+OpSelectionMerge %110 None
+OpBranchConditional %106 %108 %109
 %108 = OpLabel
-%110 = OpLoad %float %_10_maxComp
-%111 = OpLoad %float %_6_lum
-%112 = OpFOrdNotEqual %bool %110 %111
-OpBranch %109
+%111 = OpLoad %float %_5_lum
+%112 = OpLoad %v3float %_6_result
+%113 = OpLoad %float %_5_lum
+%114 = OpCompositeConstruct %v3float %113 %113 %113
+%115 = OpFSub %v3float %112 %114
+%116 = OpLoad %float %_1_alpha
+%117 = OpLoad %float %_5_lum
+%118 = OpFSub %float %116 %117
+%119 = OpVectorTimesScalar %v3float %115 %118
+%120 = OpLoad %float %_8_maxComp
+%121 = OpLoad %float %_5_lum
+%122 = OpFSub %float %120 %121
+%123 = OpFDiv %float %float_1 %122
+%124 = OpVectorTimesScalar %v3float %119 %123
+%125 = OpCompositeConstruct %v3float %111 %111 %111
+%126 = OpFAdd %v3float %125 %124
+OpStore %107 %126
+OpBranch %110
 %109 = OpLabel
-%113 = OpPhi %bool %false %89 %112 %108
-OpSelectionMerge %117 None
-OpBranchConditional %113 %115 %116
-%115 = OpLabel
-%118 = OpLoad %float %_6_lum
-%119 = OpLoad %v3float %_8_result
-%120 = OpLoad %float %_6_lum
-%121 = OpCompositeConstruct %v3float %120 %120 %120
-%122 = OpFSub %v3float %119 %121
-%123 = OpLoad %float %_1_alpha
-%124 = OpLoad %float %_6_lum
-%125 = OpFSub %float %123 %124
-%126 = OpVectorTimesScalar %v3float %122 %125
-%127 = OpLoad %float %_10_maxComp
-%128 = OpLoad %float %_6_lum
-%129 = OpFSub %float %127 %128
-%130 = OpFDiv %float %float_1 %129
-%131 = OpVectorTimesScalar %v3float %126 %130
-%132 = OpCompositeConstruct %v3float %118 %118 %118
-%133 = OpFAdd %v3float %132 %131
-OpStore %114 %133
-OpBranch %117
-%116 = OpLabel
-%134 = OpLoad %v3float %_8_result
-OpStore %114 %134
-OpBranch %117
-%117 = OpLabel
-%135 = OpLoad %v3float %114
-OpStore %_4_blend_set_color_luminance %135
-%136 = OpLoad %v3float %_4_blend_set_color_luminance
-%137 = OpLoad %v4float %dst
-%138 = OpVectorShuffle %v3float %137 %137 0 1 2
-%139 = OpFAdd %v3float %136 %138
-%140 = OpLoad %v3float %_3_dsa
-%141 = OpFSub %v3float %139 %140
+%127 = OpLoad %v3float %_6_result
+OpStore %107 %127
+OpBranch %110
+%110 = OpLabel
+%128 = OpLoad %v3float %107
+%129 = OpLoad %v4float %dst
+%130 = OpVectorShuffle %v3float %129 %129 0 1 2
+%131 = OpFAdd %v3float %128 %130
+%132 = OpLoad %v3float %_3_dsa
+%133 = OpFSub %v3float %131 %132
+%134 = OpLoad %v4float %src
+%135 = OpVectorShuffle %v3float %134 %134 0 1 2
+%136 = OpFAdd %v3float %133 %135
+%137 = OpLoad %v3float %_2_sda
+%138 = OpFSub %v3float %136 %137
+%139 = OpCompositeExtract %float %138 0
+%140 = OpCompositeExtract %float %138 1
+%141 = OpCompositeExtract %float %138 2
 %142 = OpLoad %v4float %src
-%143 = OpVectorShuffle %v3float %142 %142 0 1 2
-%144 = OpFAdd %v3float %141 %143
-%145 = OpLoad %v3float %_2_sda
-%146 = OpFSub %v3float %144 %145
-%147 = OpCompositeExtract %float %146 0
-%148 = OpCompositeExtract %float %146 1
-%149 = OpCompositeExtract %float %146 2
-%150 = OpLoad %v4float %src
-%151 = OpCompositeExtract %float %150 3
-%152 = OpLoad %v4float %dst
-%153 = OpCompositeExtract %float %152 3
-%154 = OpFAdd %float %151 %153
-%155 = OpLoad %float %_1_alpha
-%156 = OpFSub %float %154 %155
-%157 = OpCompositeConstruct %v4float %147 %148 %149 %156
-OpStore %_0_blend_luminosity %157
-%158 = OpLoad %v4float %_0_blend_luminosity
-OpStore %sk_FragColor %158
+%143 = OpCompositeExtract %float %142 3
+%144 = OpLoad %v4float %dst
+%145 = OpCompositeExtract %float %144 3
+%146 = OpFAdd %float %143 %145
+%147 = OpLoad %float %_1_alpha
+%148 = OpFSub %float %146 %147
+%149 = OpCompositeConstruct %v4float %139 %140 %141 %148
+OpStore %sk_FragColor %149
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendLuminosity.glsl b/tests/sksl/blend/golden/BlendLuminosity.glsl
index 5212427..0f7c383 100644
--- a/tests/sksl/blend/golden/BlendLuminosity.glsl
+++ b/tests/sksl/blend/golden/BlendLuminosity.glsl
@@ -3,27 +3,19 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_luminosity;
     float _1_alpha = dst.w * src.w;
     vec3 _2_sda = src.xyz * dst.w;
     vec3 _3_dsa = dst.xyz * src.w;
-    vec3 _4_blend_set_color_luminance;
-    float _5_blend_color_luminance;
-    _5_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda);
-    float _6_lum = _5_blend_color_luminance;
+    float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda);
 
-    float _7_blend_color_luminance;
-    _7_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
-    vec3 _8_result = (_6_lum - _7_blend_color_luminance) + _3_dsa;
+    vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa)) + _3_dsa;
 
-    float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
-    float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
-    if (_9_minComp < 0.0 && _6_lum != _9_minComp) {
-        _8_result = _6_lum + ((_8_result - _6_lum) * _6_lum) / (_6_lum - _9_minComp);
+    float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
+    float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
+    if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
+        _6_result = _5_lum + ((_6_result - _5_lum) * _5_lum) / (_5_lum - _7_minComp);
     }
-    _4_blend_set_color_luminance = _10_maxComp > _1_alpha && _10_maxComp != _6_lum ? _6_lum + ((_8_result - _6_lum) * (_1_alpha - _6_lum)) / (_10_maxComp - _6_lum) : _8_result;
-    _0_blend_luminosity = vec4((((_4_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
+    sk_FragColor = vec4(((((_8_maxComp > _1_alpha && _8_maxComp != _5_lum ? _5_lum + ((_6_result - _5_lum) * (_1_alpha - _5_lum)) / (_8_maxComp - _5_lum) : _6_result) + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
 
-    sk_FragColor = _0_blend_luminosity;
 
 }
diff --git a/tests/sksl/blend/golden/BlendLuminosity.metal b/tests/sksl/blend/golden/BlendLuminosity.metal
index d42be42..f87e597 100644
--- a/tests/sksl/blend/golden/BlendLuminosity.metal
+++ b/tests/sksl/blend/golden/BlendLuminosity.metal
@@ -13,28 +13,20 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_luminosity;
     float _1_alpha = _in.dst.w * _in.src.w;
     float3 _2_sda = _in.src.xyz * _in.dst.w;
     float3 _3_dsa = _in.dst.xyz * _in.src.w;
-    float3 _4_blend_set_color_luminance;
-    float _5_blend_color_luminance;
-    _5_blend_color_luminance = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda);
-    float _6_lum = _5_blend_color_luminance;
+    float _5_lum = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda);
 
-    float _7_blend_color_luminance;
-    _7_blend_color_luminance = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
-    float3 _8_result = (_6_lum - _7_blend_color_luminance) + _3_dsa;
+    float3 _6_result = (_5_lum - dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa)) + _3_dsa;
 
-    float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
-    float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
-    if (_9_minComp < 0.0 && _6_lum != _9_minComp) {
-        _8_result = _6_lum + ((_8_result - _6_lum) * _6_lum) / (_6_lum - _9_minComp);
+    float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
+    float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
+    if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
+        _6_result = _5_lum + ((_6_result - _5_lum) * _5_lum) / (_5_lum - _7_minComp);
     }
-    _4_blend_set_color_luminance = _10_maxComp > _1_alpha && _10_maxComp != _6_lum ? _6_lum + ((_8_result - _6_lum) * (_1_alpha - _6_lum)) / (_10_maxComp - _6_lum) : _8_result;
-    _0_blend_luminosity = float4((((_4_blend_set_color_luminance + _in.dst.xyz) - _3_dsa) + _in.src.xyz) - _2_sda, (_in.src.w + _in.dst.w) - _1_alpha);
+    _out->sk_FragColor = float4(((((_8_maxComp > _1_alpha && _8_maxComp != _5_lum ? _5_lum + ((_6_result - _5_lum) * (_1_alpha - _5_lum)) / (_8_maxComp - _5_lum) : _6_result) + _in.dst.xyz) - _3_dsa) + _in.src.xyz) - _2_sda, (_in.src.w + _in.dst.w) - _1_alpha);
 
-    _out->sk_FragColor = _0_blend_luminosity;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendLuminosityStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendLuminosityStandaloneSettings.glsl
index ec61814..9978164 100644
--- a/tests/sksl/blend/golden/BlendLuminosityStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendLuminosityStandaloneSettings.glsl
@@ -3,27 +3,19 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_luminosity;
     float _1_alpha = dst.w * src.w;
     vec3 _2_sda = src.xyz * dst.w;
     vec3 _3_dsa = dst.xyz * src.w;
-    vec3 _4_blend_set_color_luminance;
-    float _5_blend_color_luminance;
-    _5_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda);
-    float _6_lum = _5_blend_color_luminance;
+    float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda);
 
-    float _7_blend_color_luminance;
-    _7_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
-    vec3 _8_result = (_6_lum - _7_blend_color_luminance) + _3_dsa;
+    vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa)) + _3_dsa;
 
-    float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
-    float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
-    if (_9_minComp < 0.0 && _6_lum != _9_minComp) {
-        _8_result = _6_lum + ((_8_result - _6_lum) * _6_lum) / (_6_lum - _9_minComp);
+    float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
+    float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
+    if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
+        _6_result = _5_lum + ((_6_result - _5_lum) * _5_lum) / (_5_lum - _7_minComp);
     }
-    _4_blend_set_color_luminance = _10_maxComp > _1_alpha && _10_maxComp != _6_lum ? _6_lum + ((_8_result - _6_lum) * (_1_alpha - _6_lum)) / (_10_maxComp - _6_lum) : _8_result;
-    _0_blend_luminosity = vec4((((_4_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
+    sk_FragColor = vec4(((((_8_maxComp > _1_alpha && _8_maxComp != _5_lum ? _5_lum + ((_6_result - _5_lum) * (_1_alpha - _5_lum)) / (_8_maxComp - _5_lum) : _6_result) + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
 
-    sk_FragColor = _0_blend_luminosity;
 
 }
diff --git a/tests/sksl/blend/golden/BlendModulate.asm.frag b/tests/sksl/blend/golden/BlendModulate.asm.frag
index 3d4930b..e589c03 100644
--- a/tests/sksl/blend/golden/BlendModulate.asm.frag
+++ b/tests/sksl/blend/golden/BlendModulate.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_modulate "_0_blend_modulate"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,10 +15,9 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
+OpDecorate %16 RelaxedPrecision
+OpDecorate %17 RelaxedPrecision
 OpDecorate %18 RelaxedPrecision
-OpDecorate %19 RelaxedPrecision
-OpDecorate %20 RelaxedPrecision
-OpDecorate %21 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -32,15 +30,11 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_modulate = OpVariable %_ptr_Function_v4float Function
-%18 = OpLoad %v4float %src
-%19 = OpLoad %v4float %dst
-%20 = OpFMul %v4float %18 %19
-OpStore %_0_blend_modulate %20
-%21 = OpLoad %v4float %_0_blend_modulate
-OpStore %sk_FragColor %21
+%16 = OpLoad %v4float %src
+%17 = OpLoad %v4float %dst
+%18 = OpFMul %v4float %16 %17
+OpStore %sk_FragColor %18
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendModulate.glsl b/tests/sksl/blend/golden/BlendModulate.glsl
index 88ec8d0..419a38d 100644
--- a/tests/sksl/blend/golden/BlendModulate.glsl
+++ b/tests/sksl/blend/golden/BlendModulate.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_modulate;
-    _0_blend_modulate = src * dst;
-    sk_FragColor = _0_blend_modulate;
+    sk_FragColor = src * dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendModulate.metal b/tests/sksl/blend/golden/BlendModulate.metal
index d6463f8..c0d9363 100644
--- a/tests/sksl/blend/golden/BlendModulate.metal
+++ b/tests/sksl/blend/golden/BlendModulate.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_modulate;
-    _0_blend_modulate = _in.src * _in.dst;
-    _out->sk_FragColor = _0_blend_modulate;
+    _out->sk_FragColor = _in.src * _in.dst;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendModulateStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendModulateStandaloneSettings.glsl
index 037f39f..73ebe0c 100644
--- a/tests/sksl/blend/golden/BlendModulateStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendModulateStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_modulate;
-    _0_blend_modulate = src * dst;
-    sk_FragColor = _0_blend_modulate;
+    sk_FragColor = src * dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendMultiply.asm.frag b/tests/sksl/blend/golden/BlendMultiply.asm.frag
index f4c0800..c9d7911 100644
--- a/tests/sksl/blend/golden/BlendMultiply.asm.frag
+++ b/tests/sksl/blend/golden/BlendMultiply.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_multiply "_0_blend_multiply"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,24 +15,23 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
+OpDecorate %17 RelaxedPrecision
 OpDecorate %19 RelaxedPrecision
-OpDecorate %21 RelaxedPrecision
-OpDecorate %22 RelaxedPrecision
+OpDecorate %20 RelaxedPrecision
+OpDecorate %24 RelaxedPrecision
 OpDecorate %26 RelaxedPrecision
-OpDecorate %28 RelaxedPrecision
-OpDecorate %29 RelaxedPrecision
-OpDecorate %32 RelaxedPrecision
+OpDecorate %27 RelaxedPrecision
+OpDecorate %30 RelaxedPrecision
+OpDecorate %31 RelaxedPrecision
 OpDecorate %33 RelaxedPrecision
 OpDecorate %35 RelaxedPrecision
-OpDecorate %37 RelaxedPrecision
-OpDecorate %38 RelaxedPrecision
+OpDecorate %36 RelaxedPrecision
+OpDecorate %40 RelaxedPrecision
 OpDecorate %42 RelaxedPrecision
 OpDecorate %44 RelaxedPrecision
-OpDecorate %46 RelaxedPrecision
+OpDecorate %45 RelaxedPrecision
 OpDecorate %47 RelaxedPrecision
-OpDecorate %49 RelaxedPrecision
-OpDecorate %50 RelaxedPrecision
-OpDecorate %52 RelaxedPrecision
+OpDecorate %48 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -46,46 +44,42 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %float_1 = OpConstant %float 1
 %v3float = OpTypeVector %float 3
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_multiply = OpVariable %_ptr_Function_v4float Function
-%19 = OpLoad %v4float %src
-%20 = OpCompositeExtract %float %19 3
-%21 = OpFSub %float %float_1 %20
-%22 = OpLoad %v4float %dst
-%23 = OpVectorShuffle %v3float %22 %22 0 1 2
-%25 = OpVectorTimesScalar %v3float %23 %21
-%26 = OpLoad %v4float %dst
-%27 = OpCompositeExtract %float %26 3
-%28 = OpFSub %float %float_1 %27
-%29 = OpLoad %v4float %src
-%30 = OpVectorShuffle %v3float %29 %29 0 1 2
-%31 = OpVectorTimesScalar %v3float %30 %28
-%32 = OpFAdd %v3float %25 %31
-%33 = OpLoad %v4float %src
+%17 = OpLoad %v4float %src
+%18 = OpCompositeExtract %float %17 3
+%19 = OpFSub %float %float_1 %18
+%20 = OpLoad %v4float %dst
+%21 = OpVectorShuffle %v3float %20 %20 0 1 2
+%23 = OpVectorTimesScalar %v3float %21 %19
+%24 = OpLoad %v4float %dst
+%25 = OpCompositeExtract %float %24 3
+%26 = OpFSub %float %float_1 %25
+%27 = OpLoad %v4float %src
+%28 = OpVectorShuffle %v3float %27 %27 0 1 2
+%29 = OpVectorTimesScalar %v3float %28 %26
+%30 = OpFAdd %v3float %23 %29
+%31 = OpLoad %v4float %src
+%32 = OpVectorShuffle %v3float %31 %31 0 1 2
+%33 = OpLoad %v4float %dst
 %34 = OpVectorShuffle %v3float %33 %33 0 1 2
-%35 = OpLoad %v4float %dst
-%36 = OpVectorShuffle %v3float %35 %35 0 1 2
-%37 = OpFMul %v3float %34 %36
-%38 = OpFAdd %v3float %32 %37
-%39 = OpCompositeExtract %float %38 0
-%40 = OpCompositeExtract %float %38 1
-%41 = OpCompositeExtract %float %38 2
+%35 = OpFMul %v3float %32 %34
+%36 = OpFAdd %v3float %30 %35
+%37 = OpCompositeExtract %float %36 0
+%38 = OpCompositeExtract %float %36 1
+%39 = OpCompositeExtract %float %36 2
+%40 = OpLoad %v4float %src
+%41 = OpCompositeExtract %float %40 3
 %42 = OpLoad %v4float %src
 %43 = OpCompositeExtract %float %42 3
-%44 = OpLoad %v4float %src
-%45 = OpCompositeExtract %float %44 3
-%46 = OpFSub %float %float_1 %45
-%47 = OpLoad %v4float %dst
-%48 = OpCompositeExtract %float %47 3
-%49 = OpFMul %float %46 %48
-%50 = OpFAdd %float %43 %49
-%51 = OpCompositeConstruct %v4float %39 %40 %41 %50
-OpStore %_0_blend_multiply %51
-%52 = OpLoad %v4float %_0_blend_multiply
-OpStore %sk_FragColor %52
+%44 = OpFSub %float %float_1 %43
+%45 = OpLoad %v4float %dst
+%46 = OpCompositeExtract %float %45 3
+%47 = OpFMul %float %44 %46
+%48 = OpFAdd %float %41 %47
+%49 = OpCompositeConstruct %v4float %37 %38 %39 %48
+OpStore %sk_FragColor %49
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendMultiply.glsl b/tests/sksl/blend/golden/BlendMultiply.glsl
index ce4907e..b2a8bb9 100644
--- a/tests/sksl/blend/golden/BlendMultiply.glsl
+++ b/tests/sksl/blend/golden/BlendMultiply.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_multiply;
-    _0_blend_multiply = vec4(((1.0 - src.w) * dst.xyz + (1.0 - dst.w) * src.xyz) + src.xyz * dst.xyz, src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _0_blend_multiply;
+    sk_FragColor = vec4(((1.0 - src.w) * dst.xyz + (1.0 - dst.w) * src.xyz) + src.xyz * dst.xyz, src.w + (1.0 - src.w) * dst.w);
 
 }
diff --git a/tests/sksl/blend/golden/BlendMultiply.metal b/tests/sksl/blend/golden/BlendMultiply.metal
index 5393a52..c0ef0d9 100644
--- a/tests/sksl/blend/golden/BlendMultiply.metal
+++ b/tests/sksl/blend/golden/BlendMultiply.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_multiply;
-    _0_blend_multiply = float4(((1.0 - _in.src.w) * _in.dst.xyz + (1.0 - _in.dst.w) * _in.src.xyz) + _in.src.xyz * _in.dst.xyz, _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
-    _out->sk_FragColor = _0_blend_multiply;
+    _out->sk_FragColor = float4(((1.0 - _in.src.w) * _in.dst.xyz + (1.0 - _in.dst.w) * _in.src.xyz) + _in.src.xyz * _in.dst.xyz, _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendMultiplyStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendMultiplyStandaloneSettings.glsl
index bd82914..cd5c95e 100644
--- a/tests/sksl/blend/golden/BlendMultiplyStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendMultiplyStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_multiply;
-    _0_blend_multiply = vec4(((1.0 - src.w) * dst.xyz + (1.0 - dst.w) * src.xyz) + src.xyz * dst.xyz, src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _0_blend_multiply;
+    sk_FragColor = vec4(((1.0 - src.w) * dst.xyz + (1.0 - dst.w) * src.xyz) + src.xyz * dst.xyz, src.w + (1.0 - src.w) * dst.w);
 
 }
diff --git a/tests/sksl/blend/golden/BlendOverlay.asm.frag b/tests/sksl/blend/golden/BlendOverlay.asm.frag
index 8aa4817..e6942db 100644
--- a/tests/sksl/blend/golden/BlendOverlay.asm.frag
+++ b/tests/sksl/blend/golden/BlendOverlay.asm.frag
@@ -9,7 +9,6 @@
 OpName %dst "dst"
 OpName %_blend_overlay_component "_blend_overlay_component"
 OpName %main "main"
-OpName %_0_blend_overlay "_0_blend_overlay"
 OpName %_1_result "_1_result"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
@@ -38,31 +37,30 @@
 OpDecorate %54 RelaxedPrecision
 OpDecorate %55 RelaxedPrecision
 OpDecorate %56 RelaxedPrecision
-OpDecorate %63 RelaxedPrecision
-OpDecorate %66 RelaxedPrecision
-OpDecorate %70 RelaxedPrecision
-OpDecorate %73 RelaxedPrecision
-OpDecorate %77 RelaxedPrecision
-OpDecorate %80 RelaxedPrecision
-OpDecorate %84 RelaxedPrecision
-OpDecorate %87 RelaxedPrecision
+OpDecorate %62 RelaxedPrecision
+OpDecorate %65 RelaxedPrecision
+OpDecorate %69 RelaxedPrecision
+OpDecorate %72 RelaxedPrecision
+OpDecorate %76 RelaxedPrecision
+OpDecorate %79 RelaxedPrecision
+OpDecorate %83 RelaxedPrecision
+OpDecorate %86 RelaxedPrecision
+OpDecorate %88 RelaxedPrecision
 OpDecorate %89 RelaxedPrecision
-OpDecorate %90 RelaxedPrecision
+OpDecorate %91 RelaxedPrecision
 OpDecorate %92 RelaxedPrecision
-OpDecorate %93 RelaxedPrecision
+OpDecorate %94 RelaxedPrecision
 OpDecorate %95 RelaxedPrecision
-OpDecorate %96 RelaxedPrecision
-OpDecorate %98 RelaxedPrecision
-OpDecorate %100 RelaxedPrecision
-OpDecorate %102 RelaxedPrecision
-OpDecorate %104 RelaxedPrecision
-OpDecorate %106 RelaxedPrecision
-OpDecorate %108 RelaxedPrecision
+OpDecorate %97 RelaxedPrecision
+OpDecorate %99 RelaxedPrecision
+OpDecorate %101 RelaxedPrecision
+OpDecorate %103 RelaxedPrecision
+OpDecorate %105 RelaxedPrecision
+OpDecorate %107 RelaxedPrecision
+OpDecorate %109 RelaxedPrecision
 OpDecorate %110 RelaxedPrecision
-OpDecorate %111 RelaxedPrecision
+OpDecorate %112 RelaxedPrecision
 OpDecorate %113 RelaxedPrecision
-OpDecorate %114 RelaxedPrecision
-OpDecorate %115 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -132,68 +130,65 @@
 OpFunctionEnd
 %main = OpFunction %void None %58
 %59 = OpLabel
-%_0_blend_overlay = OpVariable %_ptr_Function_v4float Function
 %_1_result = OpVariable %_ptr_Function_v4float Function
-%65 = OpVariable %_ptr_Function_v2float Function
-%68 = OpVariable %_ptr_Function_v2float Function
-%72 = OpVariable %_ptr_Function_v2float Function
-%75 = OpVariable %_ptr_Function_v2float Function
-%79 = OpVariable %_ptr_Function_v2float Function
-%82 = OpVariable %_ptr_Function_v2float Function
-%63 = OpLoad %v4float %src
-%64 = OpVectorShuffle %v2float %63 %63 0 3
-OpStore %65 %64
-%66 = OpLoad %v4float %dst
-%67 = OpVectorShuffle %v2float %66 %66 0 3
-OpStore %68 %67
-%69 = OpFunctionCall %float %_blend_overlay_component %65 %68
-%70 = OpLoad %v4float %src
-%71 = OpVectorShuffle %v2float %70 %70 1 3
-OpStore %72 %71
-%73 = OpLoad %v4float %dst
-%74 = OpVectorShuffle %v2float %73 %73 1 3
-OpStore %75 %74
-%76 = OpFunctionCall %float %_blend_overlay_component %72 %75
-%77 = OpLoad %v4float %src
-%78 = OpVectorShuffle %v2float %77 %77 2 3
-OpStore %79 %78
-%80 = OpLoad %v4float %dst
-%81 = OpVectorShuffle %v2float %80 %80 2 3
-OpStore %82 %81
-%83 = OpFunctionCall %float %_blend_overlay_component %79 %82
-%84 = OpLoad %v4float %src
-%85 = OpCompositeExtract %float %84 3
-%87 = OpLoad %v4float %src
-%88 = OpCompositeExtract %float %87 3
-%89 = OpFSub %float %float_1 %88
-%90 = OpLoad %v4float %dst
-%91 = OpCompositeExtract %float %90 3
-%92 = OpFMul %float %89 %91
-%93 = OpFAdd %float %85 %92
-%94 = OpCompositeConstruct %v4float %69 %76 %83 %93
-OpStore %_1_result %94
-%95 = OpLoad %v4float %_1_result
-%96 = OpVectorShuffle %v3float %95 %95 0 1 2
-%98 = OpLoad %v4float %dst
-%99 = OpVectorShuffle %v3float %98 %98 0 1 2
-%100 = OpLoad %v4float %src
-%101 = OpCompositeExtract %float %100 3
-%102 = OpFSub %float %float_1 %101
-%103 = OpVectorTimesScalar %v3float %99 %102
-%104 = OpLoad %v4float %src
-%105 = OpVectorShuffle %v3float %104 %104 0 1 2
-%106 = OpLoad %v4float %dst
-%107 = OpCompositeExtract %float %106 3
-%108 = OpFSub %float %float_1 %107
-%109 = OpVectorTimesScalar %v3float %105 %108
-%110 = OpFAdd %v3float %103 %109
-%111 = OpFAdd %v3float %96 %110
-%112 = OpLoad %v4float %_1_result
-%113 = OpVectorShuffle %v4float %112 %111 4 5 6 3
-OpStore %_1_result %113
-%114 = OpLoad %v4float %_1_result
-OpStore %_0_blend_overlay %114
-%115 = OpLoad %v4float %_0_blend_overlay
-OpStore %sk_FragColor %115
+%64 = OpVariable %_ptr_Function_v2float Function
+%67 = OpVariable %_ptr_Function_v2float Function
+%71 = OpVariable %_ptr_Function_v2float Function
+%74 = OpVariable %_ptr_Function_v2float Function
+%78 = OpVariable %_ptr_Function_v2float Function
+%81 = OpVariable %_ptr_Function_v2float Function
+%62 = OpLoad %v4float %src
+%63 = OpVectorShuffle %v2float %62 %62 0 3
+OpStore %64 %63
+%65 = OpLoad %v4float %dst
+%66 = OpVectorShuffle %v2float %65 %65 0 3
+OpStore %67 %66
+%68 = OpFunctionCall %float %_blend_overlay_component %64 %67
+%69 = OpLoad %v4float %src
+%70 = OpVectorShuffle %v2float %69 %69 1 3
+OpStore %71 %70
+%72 = OpLoad %v4float %dst
+%73 = OpVectorShuffle %v2float %72 %72 1 3
+OpStore %74 %73
+%75 = OpFunctionCall %float %_blend_overlay_component %71 %74
+%76 = OpLoad %v4float %src
+%77 = OpVectorShuffle %v2float %76 %76 2 3
+OpStore %78 %77
+%79 = OpLoad %v4float %dst
+%80 = OpVectorShuffle %v2float %79 %79 2 3
+OpStore %81 %80
+%82 = OpFunctionCall %float %_blend_overlay_component %78 %81
+%83 = OpLoad %v4float %src
+%84 = OpCompositeExtract %float %83 3
+%86 = OpLoad %v4float %src
+%87 = OpCompositeExtract %float %86 3
+%88 = OpFSub %float %float_1 %87
+%89 = OpLoad %v4float %dst
+%90 = OpCompositeExtract %float %89 3
+%91 = OpFMul %float %88 %90
+%92 = OpFAdd %float %84 %91
+%93 = OpCompositeConstruct %v4float %68 %75 %82 %92
+OpStore %_1_result %93
+%94 = OpLoad %v4float %_1_result
+%95 = OpVectorShuffle %v3float %94 %94 0 1 2
+%97 = OpLoad %v4float %dst
+%98 = OpVectorShuffle %v3float %97 %97 0 1 2
+%99 = OpLoad %v4float %src
+%100 = OpCompositeExtract %float %99 3
+%101 = OpFSub %float %float_1 %100
+%102 = OpVectorTimesScalar %v3float %98 %101
+%103 = OpLoad %v4float %src
+%104 = OpVectorShuffle %v3float %103 %103 0 1 2
+%105 = OpLoad %v4float %dst
+%106 = OpCompositeExtract %float %105 3
+%107 = OpFSub %float %float_1 %106
+%108 = OpVectorTimesScalar %v3float %104 %107
+%109 = OpFAdd %v3float %102 %108
+%110 = OpFAdd %v3float %95 %109
+%111 = OpLoad %v4float %_1_result
+%112 = OpVectorShuffle %v4float %111 %110 4 5 6 3
+OpStore %_1_result %112
+%113 = OpLoad %v4float %_1_result
+OpStore %sk_FragColor %113
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendOverlay.glsl b/tests/sksl/blend/golden/BlendOverlay.glsl
index 14d7803..f605d24 100644
--- a/tests/sksl/blend/golden/BlendOverlay.glsl
+++ b/tests/sksl/blend/golden/BlendOverlay.glsl
@@ -6,10 +6,8 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_overlay;
     vec4 _1_result = vec4(_blend_overlay_component(src.xw, dst.xw), _blend_overlay_component(src.yw, dst.yw), _blend_overlay_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
     _1_result.xyz += dst.xyz * (1.0 - src.w) + src.xyz * (1.0 - dst.w);
-    _0_blend_overlay = _1_result;
-    sk_FragColor = _0_blend_overlay;
+    sk_FragColor = _1_result;
 
 }
diff --git a/tests/sksl/blend/golden/BlendOverlay.metal b/tests/sksl/blend/golden/BlendOverlay.metal
index 9eeb299..b4098c4 100644
--- a/tests/sksl/blend/golden/BlendOverlay.metal
+++ b/tests/sksl/blend/golden/BlendOverlay.metal
@@ -16,11 +16,9 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_overlay;
     float4 _1_result = float4(_blend_overlay_component(_in.src.xw, _in.dst.xw), _blend_overlay_component(_in.src.yw, _in.dst.yw), _blend_overlay_component(_in.src.zw, _in.dst.zw), _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
     _1_result.xyz = _1_result.xyz + _in.dst.xyz * (1.0 - _in.src.w) + _in.src.xyz * (1.0 - _in.dst.w);
-    _0_blend_overlay = _1_result;
-    _out->sk_FragColor = _0_blend_overlay;
+    _out->sk_FragColor = _1_result;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendOverlayStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendOverlayStandaloneSettings.glsl
index 91eb11c..cad4675 100644
--- a/tests/sksl/blend/golden/BlendOverlayStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendOverlayStandaloneSettings.glsl
@@ -6,10 +6,8 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_overlay;
     vec4 _1_result = vec4(_blend_overlay_component(src.xw, dst.xw), _blend_overlay_component(src.yw, dst.yw), _blend_overlay_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
     _1_result.xyz += dst.xyz * (1.0 - src.w) + src.xyz * (1.0 - dst.w);
-    _0_blend_overlay = _1_result;
-    sk_FragColor = _0_blend_overlay;
+    sk_FragColor = _1_result;
 
 }
diff --git a/tests/sksl/blend/golden/BlendPlus.asm.frag b/tests/sksl/blend/golden/BlendPlus.asm.frag
index db71cb6..1c7c8b9 100644
--- a/tests/sksl/blend/golden/BlendPlus.asm.frag
+++ b/tests/sksl/blend/golden/BlendPlus.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_plus "_0_blend_plus"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,11 +15,10 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
+OpDecorate %17 RelaxedPrecision
+OpDecorate %18 RelaxedPrecision
 OpDecorate %19 RelaxedPrecision
-OpDecorate %20 RelaxedPrecision
 OpDecorate %21 RelaxedPrecision
-OpDecorate %23 RelaxedPrecision
-OpDecorate %24 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -33,18 +31,14 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %float_1 = OpConstant %float 1
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_plus = OpVariable %_ptr_Function_v4float Function
-%19 = OpLoad %v4float %src
-%20 = OpLoad %v4float %dst
-%21 = OpFAdd %v4float %19 %20
-%23 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1
-%18 = OpExtInst %v4float %1 FMin %21 %23
-OpStore %_0_blend_plus %18
-%24 = OpLoad %v4float %_0_blend_plus
-OpStore %sk_FragColor %24
+%17 = OpLoad %v4float %src
+%18 = OpLoad %v4float %dst
+%19 = OpFAdd %v4float %17 %18
+%21 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1
+%16 = OpExtInst %v4float %1 FMin %19 %21
+OpStore %sk_FragColor %16
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendPlus.glsl b/tests/sksl/blend/golden/BlendPlus.glsl
index 6a517aa..a55f414 100644
--- a/tests/sksl/blend/golden/BlendPlus.glsl
+++ b/tests/sksl/blend/golden/BlendPlus.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_plus;
-    _0_blend_plus = min(src + dst, 1.0);
-    sk_FragColor = _0_blend_plus;
+    sk_FragColor = min(src + dst, 1.0);
 
 }
diff --git a/tests/sksl/blend/golden/BlendPlus.metal b/tests/sksl/blend/golden/BlendPlus.metal
index 7ed22ac..63e9097 100644
--- a/tests/sksl/blend/golden/BlendPlus.metal
+++ b/tests/sksl/blend/golden/BlendPlus.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_plus;
-    _0_blend_plus = min(_in.src + _in.dst, 1.0);
-    _out->sk_FragColor = _0_blend_plus;
+    _out->sk_FragColor = min(_in.src + _in.dst, 1.0);
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendPlusStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendPlusStandaloneSettings.glsl
index fddee78..51f3b04 100644
--- a/tests/sksl/blend/golden/BlendPlusStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendPlusStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_plus;
-    _0_blend_plus = min(src + dst, 1.0);
-    sk_FragColor = _0_blend_plus;
+    sk_FragColor = min(src + dst, 1.0);
 
 }
diff --git a/tests/sksl/blend/golden/BlendSaturation.asm.frag b/tests/sksl/blend/golden/BlendSaturation.asm.frag
index d41e400..71375eb 100644
--- a/tests/sksl/blend/golden/BlendSaturation.asm.frag
+++ b/tests/sksl/blend/golden/BlendSaturation.asm.frag
@@ -9,20 +9,15 @@
 OpName %dst "dst"
 OpName %_blend_set_color_saturation_helper "_blend_set_color_saturation_helper"
 OpName %main "main"
-OpName %_0_blend_saturation "_0_blend_saturation"
 OpName %_1_alpha "_1_alpha"
 OpName %_2_sda "_2_sda"
 OpName %_3_dsa "_3_dsa"
 OpName %_4_blend_set_color_saturation "_4_blend_set_color_saturation"
-OpName %_5_blend_color_saturation "_5_blend_color_saturation"
-OpName %_6_sat "_6_sat"
-OpName %_7_blend_set_color_luminance "_7_blend_set_color_luminance"
-OpName %_8_blend_color_luminance "_8_blend_color_luminance"
-OpName %_9_lum "_9_lum"
-OpName %_10_blend_color_luminance "_10_blend_color_luminance"
-OpName %_11_result "_11_result"
-OpName %_12_minComp "_12_minComp"
-OpName %_13_maxComp "_13_maxComp"
+OpName %_5_sat "_5_sat"
+OpName %_7_lum "_7_lum"
+OpName %_8_result "_8_result"
+OpName %_9_minComp "_9_minComp"
+OpName %_10_maxComp "_10_maxComp"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -43,96 +38,91 @@
 OpDecorate %43 RelaxedPrecision
 OpDecorate %44 RelaxedPrecision
 OpDecorate %47 RelaxedPrecision
+OpDecorate %52 RelaxedPrecision
 OpDecorate %54 RelaxedPrecision
 OpDecorate %56 RelaxedPrecision
 OpDecorate %58 RelaxedPrecision
 OpDecorate %60 RelaxedPrecision
-OpDecorate %62 RelaxedPrecision
+OpDecorate %64 RelaxedPrecision
 OpDecorate %66 RelaxedPrecision
-OpDecorate %68 RelaxedPrecision
+OpDecorate %73 RelaxedPrecision
 OpDecorate %75 RelaxedPrecision
 OpDecorate %77 RelaxedPrecision
-OpDecorate %79 RelaxedPrecision
+OpDecorate %81 RelaxedPrecision
 OpDecorate %83 RelaxedPrecision
 OpDecorate %85 RelaxedPrecision
 OpDecorate %87 RelaxedPrecision
-OpDecorate %89 RelaxedPrecision
-OpDecorate %91 RelaxedPrecision
-OpDecorate %92 RelaxedPrecision
-OpDecorate %94 RelaxedPrecision
-OpDecorate %100 RelaxedPrecision
-OpDecorate %102 RelaxedPrecision
-OpDecorate %108 RelaxedPrecision
-OpDecorate %110 RelaxedPrecision
-OpDecorate %113 RelaxedPrecision
-OpDecorate %115 RelaxedPrecision
-OpDecorate %121 RelaxedPrecision
+OpDecorate %88 RelaxedPrecision
+OpDecorate %90 RelaxedPrecision
+OpDecorate %96 RelaxedPrecision
+OpDecorate %98 RelaxedPrecision
+OpDecorate %104 RelaxedPrecision
+OpDecorate %106 RelaxedPrecision
+OpDecorate %109 RelaxedPrecision
+OpDecorate %111 RelaxedPrecision
+OpDecorate %117 RelaxedPrecision
+OpDecorate %120 RelaxedPrecision
 OpDecorate %124 RelaxedPrecision
-OpDecorate %128 RelaxedPrecision
+OpDecorate %127 RelaxedPrecision
 OpDecorate %131 RelaxedPrecision
-OpDecorate %135 RelaxedPrecision
-OpDecorate %137 RelaxedPrecision
-OpDecorate %143 RelaxedPrecision
+OpDecorate %133 RelaxedPrecision
+OpDecorate %139 RelaxedPrecision
+OpDecorate %142 RelaxedPrecision
 OpDecorate %146 RelaxedPrecision
-OpDecorate %150 RelaxedPrecision
-OpDecorate %152 RelaxedPrecision
-OpDecorate %158 RelaxedPrecision
+OpDecorate %148 RelaxedPrecision
+OpDecorate %154 RelaxedPrecision
+OpDecorate %157 RelaxedPrecision
 OpDecorate %161 RelaxedPrecision
-OpDecorate %165 RelaxedPrecision
-OpDecorate %168 RelaxedPrecision
+OpDecorate %164 RelaxedPrecision
+OpDecorate %174 RelaxedPrecision
+OpDecorate %176 RelaxedPrecision
 OpDecorate %179 RelaxedPrecision
+OpDecorate %180 RelaxedPrecision
 OpDecorate %181 RelaxedPrecision
-OpDecorate %185 RelaxedPrecision
 OpDecorate %187 RelaxedPrecision
-OpDecorate %188 RelaxedPrecision
 OpDecorate %189 RelaxedPrecision
-OpDecorate %190 RelaxedPrecision
+OpDecorate %191 RelaxedPrecision
 OpDecorate %196 RelaxedPrecision
 OpDecorate %198 RelaxedPrecision
 OpDecorate %200 RelaxedPrecision
-OpDecorate %205 RelaxedPrecision
+OpDecorate %203 RelaxedPrecision
 OpDecorate %207 RelaxedPrecision
-OpDecorate %209 RelaxedPrecision
-OpDecorate %212 RelaxedPrecision
-OpDecorate %216 RelaxedPrecision
-OpDecorate %217 RelaxedPrecision
+OpDecorate %208 RelaxedPrecision
+OpDecorate %213 RelaxedPrecision
+OpDecorate %214 RelaxedPrecision
+OpDecorate %215 RelaxedPrecision
+OpDecorate %218 RelaxedPrecision
+OpDecorate %220 RelaxedPrecision
+OpDecorate %221 RelaxedPrecision
 OpDecorate %222 RelaxedPrecision
-OpDecorate %223 RelaxedPrecision
-OpDecorate %224 RelaxedPrecision
-OpDecorate %227 RelaxedPrecision
+OpDecorate %228 RelaxedPrecision
 OpDecorate %229 RelaxedPrecision
-OpDecorate %230 RelaxedPrecision
-OpDecorate %231 RelaxedPrecision
-OpDecorate %237 RelaxedPrecision
-OpDecorate %238 RelaxedPrecision
+OpDecorate %233 RelaxedPrecision
+OpDecorate %234 RelaxedPrecision
+OpDecorate %241 RelaxedPrecision
 OpDecorate %242 RelaxedPrecision
 OpDecorate %243 RelaxedPrecision
+OpDecorate %246 RelaxedPrecision
+OpDecorate %247 RelaxedPrecision
+OpDecorate %248 RelaxedPrecision
 OpDecorate %250 RelaxedPrecision
 OpDecorate %251 RelaxedPrecision
 OpDecorate %252 RelaxedPrecision
-OpDecorate %255 RelaxedPrecision
-OpDecorate %256 RelaxedPrecision
 OpDecorate %257 RelaxedPrecision
+OpDecorate %258 RelaxedPrecision
 OpDecorate %259 RelaxedPrecision
-OpDecorate %260 RelaxedPrecision
 OpDecorate %261 RelaxedPrecision
+OpDecorate %262 RelaxedPrecision
+OpDecorate %263 RelaxedPrecision
+OpDecorate %264 RelaxedPrecision
 OpDecorate %266 RelaxedPrecision
 OpDecorate %267 RelaxedPrecision
 OpDecorate %268 RelaxedPrecision
-OpDecorate %269 RelaxedPrecision
-OpDecorate %271 RelaxedPrecision
 OpDecorate %272 RelaxedPrecision
-OpDecorate %273 RelaxedPrecision
 OpDecorate %274 RelaxedPrecision
 OpDecorate %276 RelaxedPrecision
 OpDecorate %277 RelaxedPrecision
 OpDecorate %278 RelaxedPrecision
-OpDecorate %282 RelaxedPrecision
-OpDecorate %284 RelaxedPrecision
-OpDecorate %286 RelaxedPrecision
-OpDecorate %287 RelaxedPrecision
-OpDecorate %288 RelaxedPrecision
-OpDecorate %290 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -151,12 +141,11 @@
 %46 = OpConstantComposite %v3float %float_0 %float_0 %float_0
 %void = OpTypeVoid
 %49 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %float_0_300000012 = OpConstant %float 0.300000012
 %float_0_589999974 = OpConstant %float 0.589999974
 %float_0_109999999 = OpConstant %float 0.109999999
-%175 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
-%184 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
+%170 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
+%178 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
 %false = OpConstantFalse %bool
 %float_1 = OpConstant %float 1
 %_blend_set_color_saturation_helper = OpFunction %v3float None %15
@@ -198,305 +187,290 @@
 OpFunctionEnd
 %main = OpFunction %void None %49
 %50 = OpLabel
-%_0_blend_saturation = OpVariable %_ptr_Function_v4float Function
 %_1_alpha = OpVariable %_ptr_Function_float Function
 %_2_sda = OpVariable %_ptr_Function_v3float Function
 %_3_dsa = OpVariable %_ptr_Function_v3float Function
 %_4_blend_set_color_saturation = OpVariable %_ptr_Function_v3float Function
-%_5_blend_color_saturation = OpVariable %_ptr_Function_float Function
-%_6_sat = OpVariable %_ptr_Function_float Function
-%109 = OpVariable %_ptr_Function_v3float Function
-%111 = OpVariable %_ptr_Function_float Function
-%123 = OpVariable %_ptr_Function_v3float Function
-%125 = OpVariable %_ptr_Function_float Function
-%130 = OpVariable %_ptr_Function_v3float Function
-%132 = OpVariable %_ptr_Function_float Function
-%145 = OpVariable %_ptr_Function_v3float Function
-%147 = OpVariable %_ptr_Function_float Function
-%160 = OpVariable %_ptr_Function_v3float Function
-%162 = OpVariable %_ptr_Function_float Function
-%167 = OpVariable %_ptr_Function_v3float Function
-%169 = OpVariable %_ptr_Function_float Function
-%_7_blend_set_color_luminance = OpVariable %_ptr_Function_v3float Function
-%_8_blend_color_luminance = OpVariable %_ptr_Function_float Function
-%_9_lum = OpVariable %_ptr_Function_float Function
-%_10_blend_color_luminance = OpVariable %_ptr_Function_float Function
-%_11_result = OpVariable %_ptr_Function_v3float Function
-%_12_minComp = OpVariable %_ptr_Function_float Function
-%_13_maxComp = OpVariable %_ptr_Function_float Function
-%246 = OpVariable %_ptr_Function_v3float Function
-%54 = OpLoad %v4float %dst
+%_5_sat = OpVariable %_ptr_Function_float Function
+%105 = OpVariable %_ptr_Function_v3float Function
+%107 = OpVariable %_ptr_Function_float Function
+%119 = OpVariable %_ptr_Function_v3float Function
+%121 = OpVariable %_ptr_Function_float Function
+%126 = OpVariable %_ptr_Function_v3float Function
+%128 = OpVariable %_ptr_Function_float Function
+%141 = OpVariable %_ptr_Function_v3float Function
+%143 = OpVariable %_ptr_Function_float Function
+%156 = OpVariable %_ptr_Function_v3float Function
+%158 = OpVariable %_ptr_Function_float Function
+%163 = OpVariable %_ptr_Function_v3float Function
+%165 = OpVariable %_ptr_Function_float Function
+%_7_lum = OpVariable %_ptr_Function_float Function
+%_8_result = OpVariable %_ptr_Function_v3float Function
+%_9_minComp = OpVariable %_ptr_Function_float Function
+%_10_maxComp = OpVariable %_ptr_Function_float Function
+%237 = OpVariable %_ptr_Function_v3float Function
+%52 = OpLoad %v4float %dst
+%53 = OpCompositeExtract %float %52 3
+%54 = OpLoad %v4float %src
 %55 = OpCompositeExtract %float %54 3
-%56 = OpLoad %v4float %src
-%57 = OpCompositeExtract %float %56 3
-%58 = OpFMul %float %55 %57
-OpStore %_1_alpha %58
-%60 = OpLoad %v4float %src
-%61 = OpVectorShuffle %v3float %60 %60 0 1 2
-%62 = OpLoad %v4float %dst
-%63 = OpCompositeExtract %float %62 3
-%64 = OpVectorTimesScalar %v3float %61 %63
-OpStore %_2_sda %64
-%66 = OpLoad %v4float %dst
-%67 = OpVectorShuffle %v3float %66 %66 0 1 2
-%68 = OpLoad %v4float %src
-%69 = OpCompositeExtract %float %68 3
-%70 = OpVectorTimesScalar %v3float %67 %69
-OpStore %_3_dsa %70
+%56 = OpFMul %float %53 %55
+OpStore %_1_alpha %56
+%58 = OpLoad %v4float %src
+%59 = OpVectorShuffle %v3float %58 %58 0 1 2
+%60 = OpLoad %v4float %dst
+%61 = OpCompositeExtract %float %60 3
+%62 = OpVectorTimesScalar %v3float %59 %61
+OpStore %_2_sda %62
+%64 = OpLoad %v4float %dst
+%65 = OpVectorShuffle %v3float %64 %64 0 1 2
+%66 = OpLoad %v4float %src
+%67 = OpCompositeExtract %float %66 3
+%68 = OpVectorTimesScalar %v3float %65 %67
+OpStore %_3_dsa %68
+%73 = OpLoad %v3float %_2_sda
+%74 = OpCompositeExtract %float %73 0
 %75 = OpLoad %v3float %_2_sda
-%76 = OpCompositeExtract %float %75 0
+%76 = OpCompositeExtract %float %75 1
+%72 = OpExtInst %float %1 FMax %74 %76
 %77 = OpLoad %v3float %_2_sda
-%78 = OpCompositeExtract %float %77 1
-%74 = OpExtInst %float %1 FMax %76 %78
-%79 = OpLoad %v3float %_2_sda
-%80 = OpCompositeExtract %float %79 2
-%73 = OpExtInst %float %1 FMax %74 %80
+%78 = OpCompositeExtract %float %77 2
+%71 = OpExtInst %float %1 FMax %72 %78
+%81 = OpLoad %v3float %_2_sda
+%82 = OpCompositeExtract %float %81 0
 %83 = OpLoad %v3float %_2_sda
-%84 = OpCompositeExtract %float %83 0
+%84 = OpCompositeExtract %float %83 1
+%80 = OpExtInst %float %1 FMin %82 %84
 %85 = OpLoad %v3float %_2_sda
-%86 = OpCompositeExtract %float %85 1
-%82 = OpExtInst %float %1 FMin %84 %86
-%87 = OpLoad %v3float %_2_sda
-%88 = OpCompositeExtract %float %87 2
-%81 = OpExtInst %float %1 FMin %82 %88
-%89 = OpFSub %float %73 %81
-OpStore %_5_blend_color_saturation %89
-%91 = OpLoad %float %_5_blend_color_saturation
-OpStore %_6_sat %91
-%92 = OpLoad %v3float %_3_dsa
-%93 = OpCompositeExtract %float %92 0
-%94 = OpLoad %v3float %_3_dsa
-%95 = OpCompositeExtract %float %94 1
-%96 = OpFOrdLessThanEqual %bool %93 %95
-OpSelectionMerge %99 None
-OpBranchConditional %96 %97 %98
-%97 = OpLabel
-%100 = OpLoad %v3float %_3_dsa
-%101 = OpCompositeExtract %float %100 1
-%102 = OpLoad %v3float %_3_dsa
-%103 = OpCompositeExtract %float %102 2
-%104 = OpFOrdLessThanEqual %bool %101 %103
-OpSelectionMerge %107 None
-OpBranchConditional %104 %105 %106
-%105 = OpLabel
-%108 = OpLoad %v3float %_3_dsa
-OpStore %109 %108
-%110 = OpLoad %float %_6_sat
-OpStore %111 %110
-%112 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %109 %111
-OpStore %_4_blend_set_color_saturation %112
-OpBranch %107
-%106 = OpLabel
-%113 = OpLoad %v3float %_3_dsa
-%114 = OpCompositeExtract %float %113 0
-%115 = OpLoad %v3float %_3_dsa
-%116 = OpCompositeExtract %float %115 2
-%117 = OpFOrdLessThanEqual %bool %114 %116
-OpSelectionMerge %120 None
-OpBranchConditional %117 %118 %119
-%118 = OpLabel
-%121 = OpLoad %v3float %_3_dsa
-%122 = OpVectorShuffle %v3float %121 %121 0 2 1
-OpStore %123 %122
-%124 = OpLoad %float %_6_sat
-OpStore %125 %124
-%126 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %123 %125
-%127 = OpVectorShuffle %v3float %126 %126 0 2 1
-OpStore %_4_blend_set_color_saturation %127
-OpBranch %120
-%119 = OpLabel
-%128 = OpLoad %v3float %_3_dsa
-%129 = OpVectorShuffle %v3float %128 %128 2 0 1
-OpStore %130 %129
-%131 = OpLoad %float %_6_sat
-OpStore %132 %131
-%133 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %130 %132
-%134 = OpVectorShuffle %v3float %133 %133 1 2 0
-OpStore %_4_blend_set_color_saturation %134
-OpBranch %120
-%120 = OpLabel
-OpBranch %107
-%107 = OpLabel
-OpBranch %99
-%98 = OpLabel
-%135 = OpLoad %v3float %_3_dsa
-%136 = OpCompositeExtract %float %135 0
-%137 = OpLoad %v3float %_3_dsa
-%138 = OpCompositeExtract %float %137 2
-%139 = OpFOrdLessThanEqual %bool %136 %138
-OpSelectionMerge %142 None
-OpBranchConditional %139 %140 %141
-%140 = OpLabel
-%143 = OpLoad %v3float %_3_dsa
-%144 = OpVectorShuffle %v3float %143 %143 1 0 2
-OpStore %145 %144
-%146 = OpLoad %float %_6_sat
-OpStore %147 %146
-%148 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %145 %147
-%149 = OpVectorShuffle %v3float %148 %148 1 0 2
-OpStore %_4_blend_set_color_saturation %149
-OpBranch %142
-%141 = OpLabel
-%150 = OpLoad %v3float %_3_dsa
-%151 = OpCompositeExtract %float %150 1
-%152 = OpLoad %v3float %_3_dsa
-%153 = OpCompositeExtract %float %152 2
-%154 = OpFOrdLessThanEqual %bool %151 %153
-OpSelectionMerge %157 None
-OpBranchConditional %154 %155 %156
-%155 = OpLabel
-%158 = OpLoad %v3float %_3_dsa
-%159 = OpVectorShuffle %v3float %158 %158 1 2 0
-OpStore %160 %159
-%161 = OpLoad %float %_6_sat
-OpStore %162 %161
-%163 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %160 %162
-%164 = OpVectorShuffle %v3float %163 %163 2 0 1
-OpStore %_4_blend_set_color_saturation %164
-OpBranch %157
-%156 = OpLabel
-%165 = OpLoad %v3float %_3_dsa
-%166 = OpVectorShuffle %v3float %165 %165 2 1 0
-OpStore %167 %166
-%168 = OpLoad %float %_6_sat
-OpStore %169 %168
-%170 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %167 %169
-%171 = OpVectorShuffle %v3float %170 %170 2 1 0
-OpStore %_4_blend_set_color_saturation %171
-OpBranch %157
-%157 = OpLabel
-OpBranch %142
-%142 = OpLabel
-OpBranch %99
-%99 = OpLabel
-%179 = OpLoad %v3float %_3_dsa
-%174 = OpDot %float %175 %179
-OpStore %_8_blend_color_luminance %174
-%181 = OpLoad %float %_8_blend_color_luminance
-OpStore %_9_lum %181
-%185 = OpLoad %v3float %_4_blend_set_color_saturation
-%183 = OpDot %float %184 %185
-OpStore %_10_blend_color_luminance %183
-%187 = OpLoad %float %_9_lum
-%188 = OpLoad %float %_10_blend_color_luminance
-%189 = OpFSub %float %187 %188
-%190 = OpLoad %v3float %_4_blend_set_color_saturation
-%191 = OpCompositeConstruct %v3float %189 %189 %189
-%192 = OpFAdd %v3float %191 %190
-OpStore %_11_result %192
-%196 = OpLoad %v3float %_11_result
+%86 = OpCompositeExtract %float %85 2
+%79 = OpExtInst %float %1 FMin %80 %86
+%87 = OpFSub %float %71 %79
+OpStore %_5_sat %87
+%88 = OpLoad %v3float %_3_dsa
+%89 = OpCompositeExtract %float %88 0
+%90 = OpLoad %v3float %_3_dsa
+%91 = OpCompositeExtract %float %90 1
+%92 = OpFOrdLessThanEqual %bool %89 %91
+OpSelectionMerge %95 None
+OpBranchConditional %92 %93 %94
+%93 = OpLabel
+%96 = OpLoad %v3float %_3_dsa
+%97 = OpCompositeExtract %float %96 1
+%98 = OpLoad %v3float %_3_dsa
+%99 = OpCompositeExtract %float %98 2
+%100 = OpFOrdLessThanEqual %bool %97 %99
+OpSelectionMerge %103 None
+OpBranchConditional %100 %101 %102
+%101 = OpLabel
+%104 = OpLoad %v3float %_3_dsa
+OpStore %105 %104
+%106 = OpLoad %float %_5_sat
+OpStore %107 %106
+%108 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %105 %107
+OpStore %_4_blend_set_color_saturation %108
+OpBranch %103
+%102 = OpLabel
+%109 = OpLoad %v3float %_3_dsa
+%110 = OpCompositeExtract %float %109 0
+%111 = OpLoad %v3float %_3_dsa
+%112 = OpCompositeExtract %float %111 2
+%113 = OpFOrdLessThanEqual %bool %110 %112
+OpSelectionMerge %116 None
+OpBranchConditional %113 %114 %115
+%114 = OpLabel
+%117 = OpLoad %v3float %_3_dsa
+%118 = OpVectorShuffle %v3float %117 %117 0 2 1
+OpStore %119 %118
+%120 = OpLoad %float %_5_sat
+OpStore %121 %120
+%122 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %119 %121
+%123 = OpVectorShuffle %v3float %122 %122 0 2 1
+OpStore %_4_blend_set_color_saturation %123
+OpBranch %116
+%115 = OpLabel
+%124 = OpLoad %v3float %_3_dsa
+%125 = OpVectorShuffle %v3float %124 %124 2 0 1
+OpStore %126 %125
+%127 = OpLoad %float %_5_sat
+OpStore %128 %127
+%129 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %126 %128
+%130 = OpVectorShuffle %v3float %129 %129 1 2 0
+OpStore %_4_blend_set_color_saturation %130
+OpBranch %116
+%116 = OpLabel
+OpBranch %103
+%103 = OpLabel
+OpBranch %95
+%94 = OpLabel
+%131 = OpLoad %v3float %_3_dsa
+%132 = OpCompositeExtract %float %131 0
+%133 = OpLoad %v3float %_3_dsa
+%134 = OpCompositeExtract %float %133 2
+%135 = OpFOrdLessThanEqual %bool %132 %134
+OpSelectionMerge %138 None
+OpBranchConditional %135 %136 %137
+%136 = OpLabel
+%139 = OpLoad %v3float %_3_dsa
+%140 = OpVectorShuffle %v3float %139 %139 1 0 2
+OpStore %141 %140
+%142 = OpLoad %float %_5_sat
+OpStore %143 %142
+%144 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %141 %143
+%145 = OpVectorShuffle %v3float %144 %144 1 0 2
+OpStore %_4_blend_set_color_saturation %145
+OpBranch %138
+%137 = OpLabel
+%146 = OpLoad %v3float %_3_dsa
+%147 = OpCompositeExtract %float %146 1
+%148 = OpLoad %v3float %_3_dsa
+%149 = OpCompositeExtract %float %148 2
+%150 = OpFOrdLessThanEqual %bool %147 %149
+OpSelectionMerge %153 None
+OpBranchConditional %150 %151 %152
+%151 = OpLabel
+%154 = OpLoad %v3float %_3_dsa
+%155 = OpVectorShuffle %v3float %154 %154 1 2 0
+OpStore %156 %155
+%157 = OpLoad %float %_5_sat
+OpStore %158 %157
+%159 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %156 %158
+%160 = OpVectorShuffle %v3float %159 %159 2 0 1
+OpStore %_4_blend_set_color_saturation %160
+OpBranch %153
+%152 = OpLabel
+%161 = OpLoad %v3float %_3_dsa
+%162 = OpVectorShuffle %v3float %161 %161 2 1 0
+OpStore %163 %162
+%164 = OpLoad %float %_5_sat
+OpStore %165 %164
+%166 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %163 %165
+%167 = OpVectorShuffle %v3float %166 %166 2 1 0
+OpStore %_4_blend_set_color_saturation %167
+OpBranch %153
+%153 = OpLabel
+OpBranch %138
+%138 = OpLabel
+OpBranch %95
+%95 = OpLabel
+%174 = OpLoad %v3float %_3_dsa
+%169 = OpDot %float %170 %174
+OpStore %_7_lum %169
+%176 = OpLoad %float %_7_lum
+%179 = OpLoad %v3float %_4_blend_set_color_saturation
+%177 = OpDot %float %178 %179
+%180 = OpFSub %float %176 %177
+%181 = OpLoad %v3float %_4_blend_set_color_saturation
+%182 = OpCompositeConstruct %v3float %180 %180 %180
+%183 = OpFAdd %v3float %182 %181
+OpStore %_8_result %183
+%187 = OpLoad %v3float %_8_result
+%188 = OpCompositeExtract %float %187 0
+%189 = OpLoad %v3float %_8_result
+%190 = OpCompositeExtract %float %189 1
+%186 = OpExtInst %float %1 FMin %188 %190
+%191 = OpLoad %v3float %_8_result
+%192 = OpCompositeExtract %float %191 2
+%185 = OpExtInst %float %1 FMin %186 %192
+OpStore %_9_minComp %185
+%196 = OpLoad %v3float %_8_result
 %197 = OpCompositeExtract %float %196 0
-%198 = OpLoad %v3float %_11_result
+%198 = OpLoad %v3float %_8_result
 %199 = OpCompositeExtract %float %198 1
-%195 = OpExtInst %float %1 FMin %197 %199
-%200 = OpLoad %v3float %_11_result
+%195 = OpExtInst %float %1 FMax %197 %199
+%200 = OpLoad %v3float %_8_result
 %201 = OpCompositeExtract %float %200 2
-%194 = OpExtInst %float %1 FMin %195 %201
-OpStore %_12_minComp %194
-%205 = OpLoad %v3float %_11_result
-%206 = OpCompositeExtract %float %205 0
-%207 = OpLoad %v3float %_11_result
-%208 = OpCompositeExtract %float %207 1
-%204 = OpExtInst %float %1 FMax %206 %208
-%209 = OpLoad %v3float %_11_result
-%210 = OpCompositeExtract %float %209 2
-%203 = OpExtInst %float %1 FMax %204 %210
-OpStore %_13_maxComp %203
-%212 = OpLoad %float %_12_minComp
-%213 = OpFOrdLessThan %bool %212 %float_0
-OpSelectionMerge %215 None
-OpBranchConditional %213 %214 %215
-%214 = OpLabel
-%216 = OpLoad %float %_9_lum
-%217 = OpLoad %float %_12_minComp
-%218 = OpFOrdNotEqual %bool %216 %217
-OpBranch %215
-%215 = OpLabel
-%219 = OpPhi %bool %false %99 %218 %214
-OpSelectionMerge %221 None
-OpBranchConditional %219 %220 %221
-%220 = OpLabel
-%222 = OpLoad %float %_9_lum
-%223 = OpLoad %v3float %_11_result
-%224 = OpLoad %float %_9_lum
-%225 = OpCompositeConstruct %v3float %224 %224 %224
-%226 = OpFSub %v3float %223 %225
-%227 = OpLoad %float %_9_lum
-%228 = OpVectorTimesScalar %v3float %226 %227
-%229 = OpLoad %float %_9_lum
-%230 = OpLoad %float %_12_minComp
-%231 = OpFSub %float %229 %230
-%233 = OpFDiv %float %float_1 %231
-%234 = OpVectorTimesScalar %v3float %228 %233
-%235 = OpCompositeConstruct %v3float %222 %222 %222
-%236 = OpFAdd %v3float %235 %234
-OpStore %_11_result %236
-OpBranch %221
-%221 = OpLabel
-%237 = OpLoad %float %_13_maxComp
-%238 = OpLoad %float %_1_alpha
-%239 = OpFOrdGreaterThan %bool %237 %238
-OpSelectionMerge %241 None
-OpBranchConditional %239 %240 %241
+%194 = OpExtInst %float %1 FMax %195 %201
+OpStore %_10_maxComp %194
+%203 = OpLoad %float %_9_minComp
+%204 = OpFOrdLessThan %bool %203 %float_0
+OpSelectionMerge %206 None
+OpBranchConditional %204 %205 %206
+%205 = OpLabel
+%207 = OpLoad %float %_7_lum
+%208 = OpLoad %float %_9_minComp
+%209 = OpFOrdNotEqual %bool %207 %208
+OpBranch %206
+%206 = OpLabel
+%210 = OpPhi %bool %false %95 %209 %205
+OpSelectionMerge %212 None
+OpBranchConditional %210 %211 %212
+%211 = OpLabel
+%213 = OpLoad %float %_7_lum
+%214 = OpLoad %v3float %_8_result
+%215 = OpLoad %float %_7_lum
+%216 = OpCompositeConstruct %v3float %215 %215 %215
+%217 = OpFSub %v3float %214 %216
+%218 = OpLoad %float %_7_lum
+%219 = OpVectorTimesScalar %v3float %217 %218
+%220 = OpLoad %float %_7_lum
+%221 = OpLoad %float %_9_minComp
+%222 = OpFSub %float %220 %221
+%224 = OpFDiv %float %float_1 %222
+%225 = OpVectorTimesScalar %v3float %219 %224
+%226 = OpCompositeConstruct %v3float %213 %213 %213
+%227 = OpFAdd %v3float %226 %225
+OpStore %_8_result %227
+OpBranch %212
+%212 = OpLabel
+%228 = OpLoad %float %_10_maxComp
+%229 = OpLoad %float %_1_alpha
+%230 = OpFOrdGreaterThan %bool %228 %229
+OpSelectionMerge %232 None
+OpBranchConditional %230 %231 %232
+%231 = OpLabel
+%233 = OpLoad %float %_10_maxComp
+%234 = OpLoad %float %_7_lum
+%235 = OpFOrdNotEqual %bool %233 %234
+OpBranch %232
+%232 = OpLabel
+%236 = OpPhi %bool %false %212 %235 %231
+OpSelectionMerge %240 None
+OpBranchConditional %236 %238 %239
+%238 = OpLabel
+%241 = OpLoad %float %_7_lum
+%242 = OpLoad %v3float %_8_result
+%243 = OpLoad %float %_7_lum
+%244 = OpCompositeConstruct %v3float %243 %243 %243
+%245 = OpFSub %v3float %242 %244
+%246 = OpLoad %float %_1_alpha
+%247 = OpLoad %float %_7_lum
+%248 = OpFSub %float %246 %247
+%249 = OpVectorTimesScalar %v3float %245 %248
+%250 = OpLoad %float %_10_maxComp
+%251 = OpLoad %float %_7_lum
+%252 = OpFSub %float %250 %251
+%253 = OpFDiv %float %float_1 %252
+%254 = OpVectorTimesScalar %v3float %249 %253
+%255 = OpCompositeConstruct %v3float %241 %241 %241
+%256 = OpFAdd %v3float %255 %254
+OpStore %237 %256
+OpBranch %240
+%239 = OpLabel
+%257 = OpLoad %v3float %_8_result
+OpStore %237 %257
+OpBranch %240
 %240 = OpLabel
-%242 = OpLoad %float %_13_maxComp
-%243 = OpLoad %float %_9_lum
-%244 = OpFOrdNotEqual %bool %242 %243
-OpBranch %241
-%241 = OpLabel
-%245 = OpPhi %bool %false %221 %244 %240
-OpSelectionMerge %249 None
-OpBranchConditional %245 %247 %248
-%247 = OpLabel
-%250 = OpLoad %float %_9_lum
-%251 = OpLoad %v3float %_11_result
-%252 = OpLoad %float %_9_lum
-%253 = OpCompositeConstruct %v3float %252 %252 %252
-%254 = OpFSub %v3float %251 %253
-%255 = OpLoad %float %_1_alpha
-%256 = OpLoad %float %_9_lum
-%257 = OpFSub %float %255 %256
-%258 = OpVectorTimesScalar %v3float %254 %257
-%259 = OpLoad %float %_13_maxComp
-%260 = OpLoad %float %_9_lum
-%261 = OpFSub %float %259 %260
-%262 = OpFDiv %float %float_1 %261
-%263 = OpVectorTimesScalar %v3float %258 %262
-%264 = OpCompositeConstruct %v3float %250 %250 %250
-%265 = OpFAdd %v3float %264 %263
-OpStore %246 %265
-OpBranch %249
-%248 = OpLabel
-%266 = OpLoad %v3float %_11_result
-OpStore %246 %266
-OpBranch %249
-%249 = OpLabel
-%267 = OpLoad %v3float %246
-OpStore %_7_blend_set_color_luminance %267
-%268 = OpLoad %v3float %_7_blend_set_color_luminance
-%269 = OpLoad %v4float %dst
-%270 = OpVectorShuffle %v3float %269 %269 0 1 2
-%271 = OpFAdd %v3float %268 %270
-%272 = OpLoad %v3float %_3_dsa
-%273 = OpFSub %v3float %271 %272
-%274 = OpLoad %v4float %src
-%275 = OpVectorShuffle %v3float %274 %274 0 1 2
-%276 = OpFAdd %v3float %273 %275
-%277 = OpLoad %v3float %_2_sda
-%278 = OpFSub %v3float %276 %277
-%279 = OpCompositeExtract %float %278 0
-%280 = OpCompositeExtract %float %278 1
-%281 = OpCompositeExtract %float %278 2
-%282 = OpLoad %v4float %src
-%283 = OpCompositeExtract %float %282 3
-%284 = OpLoad %v4float %dst
-%285 = OpCompositeExtract %float %284 3
-%286 = OpFAdd %float %283 %285
-%287 = OpLoad %float %_1_alpha
-%288 = OpFSub %float %286 %287
-%289 = OpCompositeConstruct %v4float %279 %280 %281 %288
-OpStore %_0_blend_saturation %289
-%290 = OpLoad %v4float %_0_blend_saturation
-OpStore %sk_FragColor %290
+%258 = OpLoad %v3float %237
+%259 = OpLoad %v4float %dst
+%260 = OpVectorShuffle %v3float %259 %259 0 1 2
+%261 = OpFAdd %v3float %258 %260
+%262 = OpLoad %v3float %_3_dsa
+%263 = OpFSub %v3float %261 %262
+%264 = OpLoad %v4float %src
+%265 = OpVectorShuffle %v3float %264 %264 0 1 2
+%266 = OpFAdd %v3float %263 %265
+%267 = OpLoad %v3float %_2_sda
+%268 = OpFSub %v3float %266 %267
+%269 = OpCompositeExtract %float %268 0
+%270 = OpCompositeExtract %float %268 1
+%271 = OpCompositeExtract %float %268 2
+%272 = OpLoad %v4float %src
+%273 = OpCompositeExtract %float %272 3
+%274 = OpLoad %v4float %dst
+%275 = OpCompositeExtract %float %274 3
+%276 = OpFAdd %float %273 %275
+%277 = OpLoad %float %_1_alpha
+%278 = OpFSub %float %276 %277
+%279 = OpCompositeConstruct %v4float %269 %270 %271 %278
+OpStore %sk_FragColor %279
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendSaturation.glsl b/tests/sksl/blend/golden/BlendSaturation.glsl
index 1ecbe2f..accebc0 100644
--- a/tests/sksl/blend/golden/BlendSaturation.glsl
+++ b/tests/sksl/blend/golden/BlendSaturation.glsl
@@ -6,48 +6,38 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_saturation;
     float _1_alpha = dst.w * src.w;
     vec3 _2_sda = src.xyz * dst.w;
     vec3 _3_dsa = dst.xyz * src.w;
     vec3 _4_blend_set_color_saturation;
-    float _5_blend_color_saturation;
-    _5_blend_color_saturation = max(max(_2_sda.x, _2_sda.y), _2_sda.z) - min(min(_2_sda.x, _2_sda.y), _2_sda.z);
-    float _6_sat = _5_blend_color_saturation;
+    float _5_sat = max(max(_2_sda.x, _2_sda.y), _2_sda.z) - min(min(_2_sda.x, _2_sda.y), _2_sda.z);
 
     if (_3_dsa.x <= _3_dsa.y) {
         if (_3_dsa.y <= _3_dsa.z) {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa, _6_sat);
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa, _5_sat);
         } else if (_3_dsa.x <= _3_dsa.z) {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.xzy, _6_sat).xzy;
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.xzy, _5_sat).xzy;
         } else {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zxy, _6_sat).yzx;
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zxy, _5_sat).yzx;
         }
     } else if (_3_dsa.x <= _3_dsa.z) {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yxz, _6_sat).yxz;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yxz, _5_sat).yxz;
     } else if (_3_dsa.y <= _3_dsa.z) {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yzx, _6_sat).zxy;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yzx, _5_sat).zxy;
     } else {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zyx, _6_sat).zyx;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zyx, _5_sat).zyx;
     }
-    vec3 _7_blend_set_color_luminance;
-    float _8_blend_color_luminance;
-    _8_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
-    float _9_lum = _8_blend_color_luminance;
+    float _7_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
 
-    float _10_blend_color_luminance;
-    _10_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation);
-    vec3 _11_result = (_9_lum - _10_blend_color_luminance) + _4_blend_set_color_saturation;
+    vec3 _8_result = (_7_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation)) + _4_blend_set_color_saturation;
 
-    float _12_minComp = min(min(_11_result.x, _11_result.y), _11_result.z);
-    float _13_maxComp = max(max(_11_result.x, _11_result.y), _11_result.z);
-    if (_12_minComp < 0.0 && _9_lum != _12_minComp) {
-        _11_result = _9_lum + ((_11_result - _9_lum) * _9_lum) / (_9_lum - _12_minComp);
+    float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
+    float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
+    if (_9_minComp < 0.0 && _7_lum != _9_minComp) {
+        _8_result = _7_lum + ((_8_result - _7_lum) * _7_lum) / (_7_lum - _9_minComp);
     }
-    _7_blend_set_color_luminance = _13_maxComp > _1_alpha && _13_maxComp != _9_lum ? _9_lum + ((_11_result - _9_lum) * (_1_alpha - _9_lum)) / (_13_maxComp - _9_lum) : _11_result;
-    _0_blend_saturation = vec4((((_7_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
+    sk_FragColor = vec4(((((_10_maxComp > _1_alpha && _10_maxComp != _7_lum ? _7_lum + ((_8_result - _7_lum) * (_1_alpha - _7_lum)) / (_10_maxComp - _7_lum) : _8_result) + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
 
 
-    sk_FragColor = _0_blend_saturation;
 
 }
diff --git a/tests/sksl/blend/golden/BlendSaturation.metal b/tests/sksl/blend/golden/BlendSaturation.metal
index 77e2e08..836f5cb 100644
--- a/tests/sksl/blend/golden/BlendSaturation.metal
+++ b/tests/sksl/blend/golden/BlendSaturation.metal
@@ -16,49 +16,39 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_saturation;
     float _1_alpha = _in.dst.w * _in.src.w;
     float3 _2_sda = _in.src.xyz * _in.dst.w;
     float3 _3_dsa = _in.dst.xyz * _in.src.w;
     float3 _4_blend_set_color_saturation;
-    float _5_blend_color_saturation;
-    _5_blend_color_saturation = max(max(_2_sda.x, _2_sda.y), _2_sda.z) - min(min(_2_sda.x, _2_sda.y), _2_sda.z);
-    float _6_sat = _5_blend_color_saturation;
+    float _5_sat = max(max(_2_sda.x, _2_sda.y), _2_sda.z) - min(min(_2_sda.x, _2_sda.y), _2_sda.z);
 
     if (_3_dsa.x <= _3_dsa.y) {
         if (_3_dsa.y <= _3_dsa.z) {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa, _6_sat);
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa, _5_sat);
         } else if (_3_dsa.x <= _3_dsa.z) {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.xzy, _6_sat).xzy;
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.xzy, _5_sat).xzy;
         } else {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zxy, _6_sat).yzx;
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zxy, _5_sat).yzx;
         }
     } else if (_3_dsa.x <= _3_dsa.z) {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yxz, _6_sat).yxz;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yxz, _5_sat).yxz;
     } else if (_3_dsa.y <= _3_dsa.z) {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yzx, _6_sat).zxy;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yzx, _5_sat).zxy;
     } else {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zyx, _6_sat).zyx;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zyx, _5_sat).zyx;
     }
-    float3 _7_blend_set_color_luminance;
-    float _8_blend_color_luminance;
-    _8_blend_color_luminance = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
-    float _9_lum = _8_blend_color_luminance;
+    float _7_lum = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
 
-    float _10_blend_color_luminance;
-    _10_blend_color_luminance = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation);
-    float3 _11_result = (_9_lum - _10_blend_color_luminance) + _4_blend_set_color_saturation;
+    float3 _8_result = (_7_lum - dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation)) + _4_blend_set_color_saturation;
 
-    float _12_minComp = min(min(_11_result.x, _11_result.y), _11_result.z);
-    float _13_maxComp = max(max(_11_result.x, _11_result.y), _11_result.z);
-    if (_12_minComp < 0.0 && _9_lum != _12_minComp) {
-        _11_result = _9_lum + ((_11_result - _9_lum) * _9_lum) / (_9_lum - _12_minComp);
+    float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
+    float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
+    if (_9_minComp < 0.0 && _7_lum != _9_minComp) {
+        _8_result = _7_lum + ((_8_result - _7_lum) * _7_lum) / (_7_lum - _9_minComp);
     }
-    _7_blend_set_color_luminance = _13_maxComp > _1_alpha && _13_maxComp != _9_lum ? _9_lum + ((_11_result - _9_lum) * (_1_alpha - _9_lum)) / (_13_maxComp - _9_lum) : _11_result;
-    _0_blend_saturation = float4((((_7_blend_set_color_luminance + _in.dst.xyz) - _3_dsa) + _in.src.xyz) - _2_sda, (_in.src.w + _in.dst.w) - _1_alpha);
+    _out->sk_FragColor = float4(((((_10_maxComp > _1_alpha && _10_maxComp != _7_lum ? _7_lum + ((_8_result - _7_lum) * (_1_alpha - _7_lum)) / (_10_maxComp - _7_lum) : _8_result) + _in.dst.xyz) - _3_dsa) + _in.src.xyz) - _2_sda, (_in.src.w + _in.dst.w) - _1_alpha);
 
 
-    _out->sk_FragColor = _0_blend_saturation;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendSaturationStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendSaturationStandaloneSettings.glsl
index fb2062a..55b2865 100644
--- a/tests/sksl/blend/golden/BlendSaturationStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendSaturationStandaloneSettings.glsl
@@ -6,48 +6,38 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_saturation;
     float _1_alpha = dst.w * src.w;
     vec3 _2_sda = src.xyz * dst.w;
     vec3 _3_dsa = dst.xyz * src.w;
     vec3 _4_blend_set_color_saturation;
-    float _5_blend_color_saturation;
-    _5_blend_color_saturation = max(max(_2_sda.x, _2_sda.y), _2_sda.z) - min(min(_2_sda.x, _2_sda.y), _2_sda.z);
-    float _6_sat = _5_blend_color_saturation;
+    float _5_sat = max(max(_2_sda.x, _2_sda.y), _2_sda.z) - min(min(_2_sda.x, _2_sda.y), _2_sda.z);
 
     if (_3_dsa.x <= _3_dsa.y) {
         if (_3_dsa.y <= _3_dsa.z) {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa, _6_sat);
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa, _5_sat);
         } else if (_3_dsa.x <= _3_dsa.z) {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.xzy, _6_sat).xzy;
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.xzy, _5_sat).xzy;
         } else {
-            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zxy, _6_sat).yzx;
+            _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zxy, _5_sat).yzx;
         }
     } else if (_3_dsa.x <= _3_dsa.z) {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yxz, _6_sat).yxz;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yxz, _5_sat).yxz;
     } else if (_3_dsa.y <= _3_dsa.z) {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yzx, _6_sat).zxy;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yzx, _5_sat).zxy;
     } else {
-        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zyx, _6_sat).zyx;
+        _4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zyx, _5_sat).zyx;
     }
-    vec3 _7_blend_set_color_luminance;
-    float _8_blend_color_luminance;
-    _8_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
-    float _9_lum = _8_blend_color_luminance;
+    float _7_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
 
-    float _10_blend_color_luminance;
-    _10_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation);
-    vec3 _11_result = (_9_lum - _10_blend_color_luminance) + _4_blend_set_color_saturation;
+    vec3 _8_result = (_7_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation)) + _4_blend_set_color_saturation;
 
-    float _12_minComp = min(min(_11_result.x, _11_result.y), _11_result.z);
-    float _13_maxComp = max(max(_11_result.x, _11_result.y), _11_result.z);
-    if (_12_minComp < 0.0 && _9_lum != _12_minComp) {
-        _11_result = _9_lum + ((_11_result - _9_lum) * _9_lum) / (_9_lum - _12_minComp);
+    float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
+    float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
+    if (_9_minComp < 0.0 && _7_lum != _9_minComp) {
+        _8_result = _7_lum + ((_8_result - _7_lum) * _7_lum) / (_7_lum - _9_minComp);
     }
-    _7_blend_set_color_luminance = _13_maxComp > _1_alpha && _13_maxComp != _9_lum ? _9_lum + ((_11_result - _9_lum) * (_1_alpha - _9_lum)) / (_13_maxComp - _9_lum) : _11_result;
-    _0_blend_saturation = vec4((((_7_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
+    sk_FragColor = vec4(((((_10_maxComp > _1_alpha && _10_maxComp != _7_lum ? _7_lum + ((_8_result - _7_lum) * (_1_alpha - _7_lum)) / (_10_maxComp - _7_lum) : _8_result) + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
 
 
-    sk_FragColor = _0_blend_saturation;
 
 }
diff --git a/tests/sksl/blend/golden/BlendScreen.asm.frag b/tests/sksl/blend/golden/BlendScreen.asm.frag
index 37186b5..0954d3d 100644
--- a/tests/sksl/blend/golden/BlendScreen.asm.frag
+++ b/tests/sksl/blend/golden/BlendScreen.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_screen "_0_blend_screen"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,12 +15,11 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
+OpDecorate %16 RelaxedPrecision
 OpDecorate %18 RelaxedPrecision
-OpDecorate %20 RelaxedPrecision
+OpDecorate %21 RelaxedPrecision
+OpDecorate %22 RelaxedPrecision
 OpDecorate %23 RelaxedPrecision
-OpDecorate %24 RelaxedPrecision
-OpDecorate %25 RelaxedPrecision
-OpDecorate %26 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -34,20 +32,16 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %float_1 = OpConstant %float 1
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_screen = OpVariable %_ptr_Function_v4float Function
+%16 = OpLoad %v4float %src
 %18 = OpLoad %v4float %src
-%20 = OpLoad %v4float %src
-%21 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1
-%22 = OpFSub %v4float %21 %20
-%23 = OpLoad %v4float %dst
-%24 = OpFMul %v4float %22 %23
-%25 = OpFAdd %v4float %18 %24
-OpStore %_0_blend_screen %25
-%26 = OpLoad %v4float %_0_blend_screen
-OpStore %sk_FragColor %26
+%19 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1
+%20 = OpFSub %v4float %19 %18
+%21 = OpLoad %v4float %dst
+%22 = OpFMul %v4float %20 %21
+%23 = OpFAdd %v4float %16 %22
+OpStore %sk_FragColor %23
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendScreen.glsl b/tests/sksl/blend/golden/BlendScreen.glsl
index ce9bcb4..caa5423 100644
--- a/tests/sksl/blend/golden/BlendScreen.glsl
+++ b/tests/sksl/blend/golden/BlendScreen.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_screen;
-    _0_blend_screen = src + (1.0 - src) * dst;
-    sk_FragColor = _0_blend_screen;
+    sk_FragColor = src + (1.0 - src) * dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendScreen.metal b/tests/sksl/blend/golden/BlendScreen.metal
index ce8b867..4c50ba0 100644
--- a/tests/sksl/blend/golden/BlendScreen.metal
+++ b/tests/sksl/blend/golden/BlendScreen.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_screen;
-    _0_blend_screen = _in.src + (1.0 - _in.src) * _in.dst;
-    _out->sk_FragColor = _0_blend_screen;
+    _out->sk_FragColor = _in.src + (1.0 - _in.src) * _in.dst;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendScreenStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendScreenStandaloneSettings.glsl
index 829b62f..2ebb99d 100644
--- a/tests/sksl/blend/golden/BlendScreenStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendScreenStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_screen;
-    _0_blend_screen = src + (1.0 - src) * dst;
-    sk_FragColor = _0_blend_screen;
+    sk_FragColor = src + (1.0 - src) * dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendSoftLight.asm.frag b/tests/sksl/blend/golden/BlendSoftLight.asm.frag
index 7f0edb0..ea58fca 100644
--- a/tests/sksl/blend/golden/BlendSoftLight.asm.frag
+++ b/tests/sksl/blend/golden/BlendSoftLight.asm.frag
@@ -8,16 +8,13 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %_soft_light_component "_soft_light_component"
-OpName %_7_guarded_divide "_7_guarded_divide"
 OpName %_8_n "_8_n"
 OpName %DSqd "DSqd"
 OpName %DCub "DCub"
 OpName %DaSqd "DaSqd"
 OpName %DaCub "DaCub"
-OpName %_9_guarded_divide "_9_guarded_divide"
 OpName %_10_n "_10_n"
 OpName %main "main"
-OpName %_0_blend_soft_light "_0_blend_soft_light"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -28,123 +25,120 @@
 OpDecorate %21 RelaxedPrecision
 OpDecorate %23 RelaxedPrecision
 OpDecorate %24 RelaxedPrecision
-OpDecorate %33 RelaxedPrecision
-OpDecorate %35 RelaxedPrecision
+OpDecorate %32 RelaxedPrecision
+OpDecorate %34 RelaxedPrecision
+OpDecorate %36 RelaxedPrecision
 OpDecorate %37 RelaxedPrecision
-OpDecorate %38 RelaxedPrecision
-OpDecorate %40 RelaxedPrecision
+OpDecorate %39 RelaxedPrecision
+OpDecorate %41 RelaxedPrecision
 OpDecorate %42 RelaxedPrecision
 OpDecorate %43 RelaxedPrecision
 OpDecorate %44 RelaxedPrecision
 OpDecorate %45 RelaxedPrecision
-OpDecorate %46 RelaxedPrecision
-OpDecorate %48 RelaxedPrecision
+OpDecorate %47 RelaxedPrecision
 OpDecorate %49 RelaxedPrecision
 OpDecorate %51 RelaxedPrecision
-OpDecorate %53 RelaxedPrecision
+OpDecorate %52 RelaxedPrecision
 OpDecorate %54 RelaxedPrecision
+OpDecorate %55 RelaxedPrecision
 OpDecorate %56 RelaxedPrecision
-OpDecorate %57 RelaxedPrecision
+OpDecorate %59 RelaxedPrecision
 OpDecorate %58 RelaxedPrecision
 OpDecorate %61 RelaxedPrecision
-OpDecorate %60 RelaxedPrecision
 OpDecorate %63 RelaxedPrecision
+OpDecorate %64 RelaxedPrecision
 OpDecorate %65 RelaxedPrecision
 OpDecorate %66 RelaxedPrecision
 OpDecorate %67 RelaxedPrecision
-OpDecorate %68 RelaxedPrecision
 OpDecorate %69 RelaxedPrecision
 OpDecorate %71 RelaxedPrecision
-OpDecorate %73 RelaxedPrecision
-OpDecorate %74 RelaxedPrecision
+OpDecorate %72 RelaxedPrecision
+OpDecorate %79 RelaxedPrecision
 OpDecorate %81 RelaxedPrecision
 OpDecorate %83 RelaxedPrecision
 OpDecorate %85 RelaxedPrecision
-OpDecorate %87 RelaxedPrecision
+OpDecorate %86 RelaxedPrecision
 OpDecorate %88 RelaxedPrecision
 OpDecorate %90 RelaxedPrecision
 OpDecorate %92 RelaxedPrecision
 OpDecorate %94 RelaxedPrecision
 OpDecorate %96 RelaxedPrecision
-OpDecorate %98 RelaxedPrecision
+OpDecorate %97 RelaxedPrecision
 OpDecorate %99 RelaxedPrecision
 OpDecorate %101 RelaxedPrecision
+OpDecorate %102 RelaxedPrecision
 OpDecorate %104 RelaxedPrecision
-OpDecorate %105 RelaxedPrecision
 OpDecorate %107 RelaxedPrecision
-OpDecorate %110 RelaxedPrecision
-OpDecorate %112 RelaxedPrecision
+OpDecorate %109 RelaxedPrecision
+OpDecorate %111 RelaxedPrecision
+OpDecorate %113 RelaxedPrecision
 OpDecorate %114 RelaxedPrecision
+OpDecorate %115 RelaxedPrecision
 OpDecorate %116 RelaxedPrecision
 OpDecorate %117 RelaxedPrecision
 OpDecorate %118 RelaxedPrecision
-OpDecorate %119 RelaxedPrecision
 OpDecorate %120 RelaxedPrecision
-OpDecorate %121 RelaxedPrecision
+OpDecorate %122 RelaxedPrecision
 OpDecorate %123 RelaxedPrecision
+OpDecorate %124 RelaxedPrecision
 OpDecorate %125 RelaxedPrecision
-OpDecorate %126 RelaxedPrecision
 OpDecorate %127 RelaxedPrecision
-OpDecorate %128 RelaxedPrecision
+OpDecorate %129 RelaxedPrecision
 OpDecorate %130 RelaxedPrecision
+OpDecorate %131 RelaxedPrecision
 OpDecorate %132 RelaxedPrecision
-OpDecorate %133 RelaxedPrecision
 OpDecorate %134 RelaxedPrecision
 OpDecorate %135 RelaxedPrecision
-OpDecorate %137 RelaxedPrecision
+OpDecorate %136 RelaxedPrecision
 OpDecorate %138 RelaxedPrecision
-OpDecorate %139 RelaxedPrecision
+OpDecorate %140 RelaxedPrecision
 OpDecorate %141 RelaxedPrecision
+OpDecorate %142 RelaxedPrecision
 OpDecorate %143 RelaxedPrecision
 OpDecorate %144 RelaxedPrecision
 OpDecorate %145 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 %154 RelaxedPrecision
-OpDecorate %155 RelaxedPrecision
 OpDecorate %156 RelaxedPrecision
 OpDecorate %158 RelaxedPrecision
+OpDecorate %159 RelaxedPrecision
 OpDecorate %160 RelaxedPrecision
+OpDecorate %161 RelaxedPrecision
 OpDecorate %162 RelaxedPrecision
-OpDecorate %163 RelaxedPrecision
 OpDecorate %164 RelaxedPrecision
-OpDecorate %165 RelaxedPrecision
 OpDecorate %166 RelaxedPrecision
 OpDecorate %168 RelaxedPrecision
 OpDecorate %170 RelaxedPrecision
-OpDecorate %172 RelaxedPrecision
-OpDecorate %174 RelaxedPrecision
+OpDecorate %171 RelaxedPrecision
+OpDecorate %173 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 %185 RelaxedPrecision
-OpDecorate %187 RelaxedPrecision
+OpDecorate %184 RelaxedPrecision
 OpDecorate %188 RelaxedPrecision
-OpDecorate %194 RelaxedPrecision
-OpDecorate %202 RelaxedPrecision
-OpDecorate %203 RelaxedPrecision
-OpDecorate %206 RelaxedPrecision
-OpDecorate %210 RelaxedPrecision
-OpDecorate %213 RelaxedPrecision
-OpDecorate %217 RelaxedPrecision
-OpDecorate %220 RelaxedPrecision
+OpDecorate %197 RelaxedPrecision
+OpDecorate %198 RelaxedPrecision
+OpDecorate %201 RelaxedPrecision
+OpDecorate %205 RelaxedPrecision
+OpDecorate %208 RelaxedPrecision
+OpDecorate %212 RelaxedPrecision
+OpDecorate %215 RelaxedPrecision
+OpDecorate %219 RelaxedPrecision
+OpDecorate %221 RelaxedPrecision
+OpDecorate %223 RelaxedPrecision
 OpDecorate %224 RelaxedPrecision
 OpDecorate %226 RelaxedPrecision
-OpDecorate %228 RelaxedPrecision
+OpDecorate %227 RelaxedPrecision
 OpDecorate %229 RelaxedPrecision
-OpDecorate %231 RelaxedPrecision
-OpDecorate %232 RelaxedPrecision
-OpDecorate %234 RelaxedPrecision
-OpDecorate %235 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -167,20 +161,18 @@
 %float_12 = OpConstant %float 12
 %float_16 = OpConstant %float 16
 %void = OpTypeVoid
-%190 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
+%186 = OpTypeFunction %void
 %float_0 = OpConstant %float 0
+%_ptr_Function_v4float = OpTypePointer Function %v4float
 %_soft_light_component = OpFunction %float None %15
 %17 = OpFunctionParameter %_ptr_Function_v2float
 %18 = OpFunctionParameter %_ptr_Function_v2float
 %19 = OpLabel
-%_7_guarded_divide = OpVariable %_ptr_Function_float Function
 %_8_n = OpVariable %_ptr_Function_float Function
 %DSqd = OpVariable %_ptr_Function_float Function
 %DCub = OpVariable %_ptr_Function_float Function
 %DaSqd = OpVariable %_ptr_Function_float Function
 %DaCub = OpVariable %_ptr_Function_float Function
-%_9_guarded_divide = OpVariable %_ptr_Function_float Function
 %_10_n = OpVariable %_ptr_Function_float Function
 %21 = OpLoad %v2float %17
 %22 = OpCompositeExtract %float %21 0
@@ -191,225 +183,218 @@
 OpSelectionMerge %29 None
 OpBranchConditional %26 %27 %28
 %27 = OpLabel
-%33 = OpLoad %v2float %18
-%34 = OpCompositeExtract %float %33 0
-%35 = OpLoad %v2float %18
-%36 = OpCompositeExtract %float %35 0
-%37 = OpFMul %float %34 %36
-%38 = OpLoad %v2float %17
-%39 = OpCompositeExtract %float %38 1
-%40 = OpLoad %v2float %17
-%41 = OpCompositeExtract %float %40 0
-%42 = OpFMul %float %float_2 %41
-%43 = OpFSub %float %39 %42
-%44 = OpFMul %float %37 %43
-OpStore %_8_n %44
-%45 = OpLoad %float %_8_n
-%46 = OpLoad %v2float %18
-%47 = OpCompositeExtract %float %46 1
-%48 = OpFDiv %float %45 %47
-OpStore %_7_guarded_divide %48
-%49 = OpLoad %float %_7_guarded_divide
-%51 = OpLoad %v2float %18
-%52 = OpCompositeExtract %float %51 1
-%53 = OpFSub %float %float_1 %52
-%54 = OpLoad %v2float %17
-%55 = OpCompositeExtract %float %54 0
-%56 = OpFMul %float %53 %55
-%57 = OpFAdd %float %49 %56
-%58 = OpLoad %v2float %18
-%59 = OpCompositeExtract %float %58 0
+%32 = OpLoad %v2float %18
+%33 = OpCompositeExtract %float %32 0
+%34 = OpLoad %v2float %18
+%35 = OpCompositeExtract %float %34 0
+%36 = OpFMul %float %33 %35
+%37 = OpLoad %v2float %17
+%38 = OpCompositeExtract %float %37 1
+%39 = OpLoad %v2float %17
+%40 = OpCompositeExtract %float %39 0
+%41 = OpFMul %float %float_2 %40
+%42 = OpFSub %float %38 %41
+%43 = OpFMul %float %36 %42
+OpStore %_8_n %43
+%44 = OpLoad %float %_8_n
+%45 = OpLoad %v2float %18
+%46 = OpCompositeExtract %float %45 1
+%47 = OpFDiv %float %44 %46
+%49 = OpLoad %v2float %18
+%50 = OpCompositeExtract %float %49 1
+%51 = OpFSub %float %float_1 %50
+%52 = OpLoad %v2float %17
+%53 = OpCompositeExtract %float %52 0
+%54 = OpFMul %float %51 %53
+%55 = OpFAdd %float %47 %54
+%56 = OpLoad %v2float %18
+%57 = OpCompositeExtract %float %56 0
+%59 = OpLoad %v2float %17
+%60 = OpCompositeExtract %float %59 1
+%58 = OpFNegate %float %60
 %61 = OpLoad %v2float %17
-%62 = OpCompositeExtract %float %61 1
-%60 = OpFNegate %float %62
-%63 = OpLoad %v2float %17
-%64 = OpCompositeExtract %float %63 0
-%65 = OpFMul %float %float_2 %64
-%66 = OpFAdd %float %60 %65
-%67 = OpFAdd %float %66 %float_1
-%68 = OpFMul %float %59 %67
-%69 = OpFAdd %float %57 %68
-OpReturnValue %69
+%62 = OpCompositeExtract %float %61 0
+%63 = OpFMul %float %float_2 %62
+%64 = OpFAdd %float %58 %63
+%65 = OpFAdd %float %64 %float_1
+%66 = OpFMul %float %57 %65
+%67 = OpFAdd %float %55 %66
+OpReturnValue %67
 %28 = OpLabel
-%71 = OpLoad %v2float %18
-%72 = OpCompositeExtract %float %71 0
-%73 = OpFMul %float %float_4 %72
-%74 = OpLoad %v2float %18
-%75 = OpCompositeExtract %float %74 1
-%76 = OpFOrdLessThanEqual %bool %73 %75
-OpSelectionMerge %79 None
-OpBranchConditional %76 %77 %78
-%77 = OpLabel
+%69 = OpLoad %v2float %18
+%70 = OpCompositeExtract %float %69 0
+%71 = OpFMul %float %float_4 %70
+%72 = OpLoad %v2float %18
+%73 = OpCompositeExtract %float %72 1
+%74 = OpFOrdLessThanEqual %bool %71 %73
+OpSelectionMerge %77 None
+OpBranchConditional %74 %75 %76
+%75 = OpLabel
+%79 = OpLoad %v2float %18
+%80 = OpCompositeExtract %float %79 0
 %81 = OpLoad %v2float %18
 %82 = OpCompositeExtract %float %81 0
-%83 = OpLoad %v2float %18
-%84 = OpCompositeExtract %float %83 0
-%85 = OpFMul %float %82 %84
-OpStore %DSqd %85
-%87 = OpLoad %float %DSqd
-%88 = OpLoad %v2float %18
-%89 = OpCompositeExtract %float %88 0
-%90 = OpFMul %float %87 %89
-OpStore %DCub %90
+%83 = OpFMul %float %80 %82
+OpStore %DSqd %83
+%85 = OpLoad %float %DSqd
+%86 = OpLoad %v2float %18
+%87 = OpCompositeExtract %float %86 0
+%88 = OpFMul %float %85 %87
+OpStore %DCub %88
+%90 = OpLoad %v2float %18
+%91 = OpCompositeExtract %float %90 1
 %92 = OpLoad %v2float %18
 %93 = OpCompositeExtract %float %92 1
-%94 = OpLoad %v2float %18
-%95 = OpCompositeExtract %float %94 1
-%96 = OpFMul %float %93 %95
-OpStore %DaSqd %96
-%98 = OpLoad %float %DaSqd
-%99 = OpLoad %v2float %18
-%100 = OpCompositeExtract %float %99 1
-%101 = OpFMul %float %98 %100
-OpStore %DaCub %101
-%104 = OpLoad %float %DaSqd
-%105 = OpLoad %v2float %17
-%106 = OpCompositeExtract %float %105 0
-%107 = OpLoad %v2float %18
-%108 = OpCompositeExtract %float %107 0
-%110 = OpLoad %v2float %17
-%111 = OpCompositeExtract %float %110 1
-%112 = OpFMul %float %float_3 %111
-%114 = OpLoad %v2float %17
-%115 = OpCompositeExtract %float %114 0
-%116 = OpFMul %float %float_6 %115
-%117 = OpFSub %float %112 %116
-%118 = OpFSub %float %117 %float_1
-%119 = OpFMul %float %108 %118
-%120 = OpFSub %float %106 %119
-%121 = OpFMul %float %104 %120
-%123 = OpLoad %v2float %18
-%124 = OpCompositeExtract %float %123 1
-%125 = OpFMul %float %float_12 %124
-%126 = OpLoad %float %DSqd
-%127 = OpFMul %float %125 %126
-%128 = OpLoad %v2float %17
-%129 = OpCompositeExtract %float %128 1
-%130 = OpLoad %v2float %17
-%131 = OpCompositeExtract %float %130 0
-%132 = OpFMul %float %float_2 %131
-%133 = OpFSub %float %129 %132
-%134 = OpFMul %float %127 %133
-%135 = OpFAdd %float %121 %134
-%137 = OpLoad %float %DCub
-%138 = OpFMul %float %float_16 %137
-%139 = OpLoad %v2float %17
-%140 = OpCompositeExtract %float %139 1
-%141 = OpLoad %v2float %17
-%142 = OpCompositeExtract %float %141 0
-%143 = OpFMul %float %float_2 %142
-%144 = OpFSub %float %140 %143
-%145 = OpFMul %float %138 %144
-%146 = OpFSub %float %135 %145
-%147 = OpLoad %float %DaCub
-%148 = OpLoad %v2float %17
-%149 = OpCompositeExtract %float %148 0
-%150 = OpFMul %float %147 %149
-%151 = OpFSub %float %146 %150
-OpStore %_10_n %151
-%152 = OpLoad %float %_10_n
-%153 = OpLoad %float %DaSqd
-%154 = OpFDiv %float %152 %153
-OpStore %_9_guarded_divide %154
-%155 = OpLoad %float %_9_guarded_divide
-OpReturnValue %155
-%78 = OpLabel
-%156 = OpLoad %v2float %18
+%94 = OpFMul %float %91 %93
+OpStore %DaSqd %94
+%96 = OpLoad %float %DaSqd
+%97 = OpLoad %v2float %18
+%98 = OpCompositeExtract %float %97 1
+%99 = OpFMul %float %96 %98
+OpStore %DaCub %99
+%101 = OpLoad %float %DaSqd
+%102 = OpLoad %v2float %17
+%103 = OpCompositeExtract %float %102 0
+%104 = OpLoad %v2float %18
+%105 = OpCompositeExtract %float %104 0
+%107 = OpLoad %v2float %17
+%108 = OpCompositeExtract %float %107 1
+%109 = OpFMul %float %float_3 %108
+%111 = OpLoad %v2float %17
+%112 = OpCompositeExtract %float %111 0
+%113 = OpFMul %float %float_6 %112
+%114 = OpFSub %float %109 %113
+%115 = OpFSub %float %114 %float_1
+%116 = OpFMul %float %105 %115
+%117 = OpFSub %float %103 %116
+%118 = OpFMul %float %101 %117
+%120 = OpLoad %v2float %18
+%121 = OpCompositeExtract %float %120 1
+%122 = OpFMul %float %float_12 %121
+%123 = OpLoad %float %DSqd
+%124 = OpFMul %float %122 %123
+%125 = OpLoad %v2float %17
+%126 = OpCompositeExtract %float %125 1
+%127 = OpLoad %v2float %17
+%128 = OpCompositeExtract %float %127 0
+%129 = OpFMul %float %float_2 %128
+%130 = OpFSub %float %126 %129
+%131 = OpFMul %float %124 %130
+%132 = OpFAdd %float %118 %131
+%134 = OpLoad %float %DCub
+%135 = OpFMul %float %float_16 %134
+%136 = OpLoad %v2float %17
+%137 = OpCompositeExtract %float %136 1
+%138 = OpLoad %v2float %17
+%139 = OpCompositeExtract %float %138 0
+%140 = OpFMul %float %float_2 %139
+%141 = OpFSub %float %137 %140
+%142 = OpFMul %float %135 %141
+%143 = OpFSub %float %132 %142
+%144 = OpLoad %float %DaCub
+%145 = OpLoad %v2float %17
+%146 = OpCompositeExtract %float %145 0
+%147 = OpFMul %float %144 %146
+%148 = OpFSub %float %143 %147
+OpStore %_10_n %148
+%149 = OpLoad %float %_10_n
+%150 = OpLoad %float %DaSqd
+%151 = OpFDiv %float %149 %150
+OpReturnValue %151
+%76 = OpLabel
+%152 = OpLoad %v2float %18
+%153 = OpCompositeExtract %float %152 0
+%154 = OpLoad %v2float %17
+%155 = OpCompositeExtract %float %154 1
+%156 = OpLoad %v2float %17
 %157 = OpCompositeExtract %float %156 0
-%158 = OpLoad %v2float %17
-%159 = OpCompositeExtract %float %158 1
-%160 = OpLoad %v2float %17
-%161 = OpCompositeExtract %float %160 0
-%162 = OpFMul %float %float_2 %161
-%163 = OpFSub %float %159 %162
-%164 = OpFAdd %float %163 %float_1
-%165 = OpFMul %float %157 %164
-%166 = OpLoad %v2float %17
-%167 = OpCompositeExtract %float %166 0
-%168 = OpFAdd %float %165 %167
-%170 = OpLoad %v2float %18
-%171 = OpCompositeExtract %float %170 1
-%172 = OpLoad %v2float %18
-%173 = OpCompositeExtract %float %172 0
-%174 = OpFMul %float %171 %173
-%169 = OpExtInst %float %1 Sqrt %174
-%175 = OpLoad %v2float %17
-%176 = OpCompositeExtract %float %175 1
-%177 = OpLoad %v2float %17
-%178 = OpCompositeExtract %float %177 0
-%179 = OpFMul %float %float_2 %178
-%180 = OpFSub %float %176 %179
-%181 = OpFMul %float %169 %180
-%182 = OpFSub %float %168 %181
-%183 = OpLoad %v2float %18
-%184 = OpCompositeExtract %float %183 1
-%185 = OpLoad %v2float %17
-%186 = OpCompositeExtract %float %185 0
-%187 = OpFMul %float %184 %186
-%188 = OpFSub %float %182 %187
-OpReturnValue %188
-%79 = OpLabel
+%158 = OpFMul %float %float_2 %157
+%159 = OpFSub %float %155 %158
+%160 = OpFAdd %float %159 %float_1
+%161 = OpFMul %float %153 %160
+%162 = OpLoad %v2float %17
+%163 = OpCompositeExtract %float %162 0
+%164 = OpFAdd %float %161 %163
+%166 = OpLoad %v2float %18
+%167 = OpCompositeExtract %float %166 1
+%168 = OpLoad %v2float %18
+%169 = OpCompositeExtract %float %168 0
+%170 = OpFMul %float %167 %169
+%165 = OpExtInst %float %1 Sqrt %170
+%171 = OpLoad %v2float %17
+%172 = OpCompositeExtract %float %171 1
+%173 = OpLoad %v2float %17
+%174 = OpCompositeExtract %float %173 0
+%175 = OpFMul %float %float_2 %174
+%176 = OpFSub %float %172 %175
+%177 = OpFMul %float %165 %176
+%178 = OpFSub %float %164 %177
+%179 = OpLoad %v2float %18
+%180 = OpCompositeExtract %float %179 1
+%181 = OpLoad %v2float %17
+%182 = OpCompositeExtract %float %181 0
+%183 = OpFMul %float %180 %182
+%184 = OpFSub %float %178 %183
+OpReturnValue %184
+%77 = OpLabel
 OpBranch %29
 %29 = OpLabel
 OpUnreachable
 OpFunctionEnd
-%main = OpFunction %void None %190
-%191 = OpLabel
-%_0_blend_soft_light = OpVariable %_ptr_Function_v4float Function
-%198 = OpVariable %_ptr_Function_v4float Function
-%205 = OpVariable %_ptr_Function_v2float Function
-%208 = OpVariable %_ptr_Function_v2float Function
-%212 = OpVariable %_ptr_Function_v2float Function
-%215 = OpVariable %_ptr_Function_v2float Function
-%219 = OpVariable %_ptr_Function_v2float Function
-%222 = OpVariable %_ptr_Function_v2float Function
-%194 = OpLoad %v4float %dst
-%195 = OpCompositeExtract %float %194 3
-%197 = OpFOrdEqual %bool %195 %float_0
-OpSelectionMerge %201 None
-OpBranchConditional %197 %199 %200
-%199 = OpLabel
-%202 = OpLoad %v4float %src
-OpStore %198 %202
-OpBranch %201
-%200 = OpLabel
-%203 = OpLoad %v4float %src
-%204 = OpVectorShuffle %v2float %203 %203 0 3
-OpStore %205 %204
-%206 = OpLoad %v4float %dst
-%207 = OpVectorShuffle %v2float %206 %206 0 3
-OpStore %208 %207
-%209 = OpFunctionCall %float %_soft_light_component %205 %208
-%210 = OpLoad %v4float %src
-%211 = OpVectorShuffle %v2float %210 %210 1 3
-OpStore %212 %211
-%213 = OpLoad %v4float %dst
-%214 = OpVectorShuffle %v2float %213 %213 1 3
-OpStore %215 %214
-%216 = OpFunctionCall %float %_soft_light_component %212 %215
-%217 = OpLoad %v4float %src
-%218 = OpVectorShuffle %v2float %217 %217 2 3
-OpStore %219 %218
-%220 = OpLoad %v4float %dst
-%221 = OpVectorShuffle %v2float %220 %220 2 3
-OpStore %222 %221
-%223 = OpFunctionCall %float %_soft_light_component %219 %222
-%224 = OpLoad %v4float %src
+%main = OpFunction %void None %186
+%187 = OpLabel
+%192 = OpVariable %_ptr_Function_v4float Function
+%200 = OpVariable %_ptr_Function_v2float Function
+%203 = OpVariable %_ptr_Function_v2float Function
+%207 = OpVariable %_ptr_Function_v2float Function
+%210 = OpVariable %_ptr_Function_v2float Function
+%214 = OpVariable %_ptr_Function_v2float Function
+%217 = OpVariable %_ptr_Function_v2float Function
+%188 = OpLoad %v4float %dst
+%189 = OpCompositeExtract %float %188 3
+%191 = OpFOrdEqual %bool %189 %float_0
+OpSelectionMerge %196 None
+OpBranchConditional %191 %194 %195
+%194 = OpLabel
+%197 = OpLoad %v4float %src
+OpStore %192 %197
+OpBranch %196
+%195 = OpLabel
+%198 = OpLoad %v4float %src
+%199 = OpVectorShuffle %v2float %198 %198 0 3
+OpStore %200 %199
+%201 = OpLoad %v4float %dst
+%202 = OpVectorShuffle %v2float %201 %201 0 3
+OpStore %203 %202
+%204 = OpFunctionCall %float %_soft_light_component %200 %203
+%205 = OpLoad %v4float %src
+%206 = OpVectorShuffle %v2float %205 %205 1 3
+OpStore %207 %206
+%208 = OpLoad %v4float %dst
+%209 = OpVectorShuffle %v2float %208 %208 1 3
+OpStore %210 %209
+%211 = OpFunctionCall %float %_soft_light_component %207 %210
+%212 = OpLoad %v4float %src
+%213 = OpVectorShuffle %v2float %212 %212 2 3
+OpStore %214 %213
+%215 = OpLoad %v4float %dst
+%216 = OpVectorShuffle %v2float %215 %215 2 3
+OpStore %217 %216
+%218 = OpFunctionCall %float %_soft_light_component %214 %217
+%219 = OpLoad %v4float %src
+%220 = OpCompositeExtract %float %219 3
+%221 = OpLoad %v4float %src
+%222 = OpCompositeExtract %float %221 3
+%223 = OpFSub %float %float_1 %222
+%224 = OpLoad %v4float %dst
 %225 = OpCompositeExtract %float %224 3
-%226 = OpLoad %v4float %src
-%227 = OpCompositeExtract %float %226 3
-%228 = OpFSub %float %float_1 %227
-%229 = OpLoad %v4float %dst
-%230 = OpCompositeExtract %float %229 3
-%231 = OpFMul %float %228 %230
-%232 = OpFAdd %float %225 %231
-%233 = OpCompositeConstruct %v4float %209 %216 %223 %232
-OpStore %198 %233
-OpBranch %201
-%201 = OpLabel
-%234 = OpLoad %v4float %198
-OpStore %_0_blend_soft_light %234
-%235 = OpLoad %v4float %_0_blend_soft_light
-OpStore %sk_FragColor %235
+%226 = OpFMul %float %223 %225
+%227 = OpFAdd %float %220 %226
+%228 = OpCompositeConstruct %v4float %204 %211 %218 %227
+OpStore %192 %228
+OpBranch %196
+%196 = OpLabel
+%229 = OpLoad %v4float %192
+OpStore %sk_FragColor %229
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendSoftLight.glsl b/tests/sksl/blend/golden/BlendSoftLight.glsl
index 4eb4d7f..f1fe11d 100644
--- a/tests/sksl/blend/golden/BlendSoftLight.glsl
+++ b/tests/sksl/blend/golden/BlendSoftLight.glsl
@@ -2,20 +2,16 @@
 out vec4 sk_FragColor;
 float _soft_light_component(vec2 s, vec2 d) {
     if (2.0 * s.x <= s.y) {
-        float _7_guarded_divide;
         float _8_n = (d.x * d.x) * (s.y - 2.0 * s.x);
-        _7_guarded_divide = _8_n / d.y;
-        return (_7_guarded_divide + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
+        return (_8_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
 
     } else if (4.0 * d.x <= d.y) {
         float DSqd = d.x * d.x;
         float DCub = DSqd * d.x;
         float DaSqd = d.y * d.y;
         float DaCub = DaSqd * d.y;
-        float _9_guarded_divide;
         float _10_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
-        _9_guarded_divide = _10_n / DaSqd;
-        return _9_guarded_divide;
+        return _10_n / DaSqd;
 
     } else {
         return ((d.x * ((s.y - 2.0 * s.x) + 1.0) + s.x) - sqrt(d.y * d.x) * (s.y - 2.0 * s.x)) - d.y * s.x;
@@ -24,8 +20,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_soft_light;
-    _0_blend_soft_light = dst.w == 0.0 ? src : vec4(_soft_light_component(src.xw, dst.xw), _soft_light_component(src.yw, dst.yw), _soft_light_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _0_blend_soft_light;
+    sk_FragColor = dst.w == 0.0 ? src : vec4(_soft_light_component(src.xw, dst.xw), _soft_light_component(src.yw, dst.yw), _soft_light_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
 }
diff --git a/tests/sksl/blend/golden/BlendSoftLight.metal b/tests/sksl/blend/golden/BlendSoftLight.metal
index 6c232db..50505df 100644
--- a/tests/sksl/blend/golden/BlendSoftLight.metal
+++ b/tests/sksl/blend/golden/BlendSoftLight.metal
@@ -10,20 +10,16 @@
 };
 float _soft_light_component(float2 s, float2 d) {
     if (2.0 * s.x <= s.y) {
-        float _7_guarded_divide;
         float _8_n = (d.x * d.x) * (s.y - 2.0 * s.x);
-        _7_guarded_divide = _8_n / d.y;
-        return (_7_guarded_divide + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
+        return (_8_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
 
     } else if (4.0 * d.x <= d.y) {
         float DSqd = d.x * d.x;
         float DCub = DSqd * d.x;
         float DaSqd = d.y * d.y;
         float DaCub = DaSqd * d.y;
-        float _9_guarded_divide;
         float _10_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
-        _9_guarded_divide = _10_n / DaSqd;
-        return _9_guarded_divide;
+        return _10_n / DaSqd;
 
     } else {
         return ((d.x * ((s.y - 2.0 * s.x) + 1.0) + s.x) - sqrt(d.y * d.x) * (s.y - 2.0 * s.x)) - d.y * s.x;
@@ -34,9 +30,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_soft_light;
-    _0_blend_soft_light = _in.dst.w == 0.0 ? _in.src : float4(_soft_light_component(_in.src.xw, _in.dst.xw), _soft_light_component(_in.src.yw, _in.dst.yw), _soft_light_component(_in.src.zw, _in.dst.zw), _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
-    _out->sk_FragColor = _0_blend_soft_light;
+    _out->sk_FragColor = _in.dst.w == 0.0 ? _in.src : float4(_soft_light_component(_in.src.xw, _in.dst.xw), _soft_light_component(_in.src.yw, _in.dst.yw), _soft_light_component(_in.src.zw, _in.dst.zw), _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendSoftLightStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendSoftLightStandaloneSettings.glsl
index 808683a..83bffee 100644
--- a/tests/sksl/blend/golden/BlendSoftLightStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendSoftLightStandaloneSettings.glsl
@@ -2,20 +2,16 @@
 out vec4 sk_FragColor;
 float _soft_light_component(vec2 s, vec2 d) {
     if (2.0 * s.x <= s.y) {
-        float _7_guarded_divide;
         float _8_n = (d.x * d.x) * (s.y - 2.0 * s.x);
-        _7_guarded_divide = _8_n / d.y;
-        return (_7_guarded_divide + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
+        return (_8_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
 
     } else if (4.0 * d.x <= d.y) {
         float DSqd = d.x * d.x;
         float DCub = DSqd * d.x;
         float DaSqd = d.y * d.y;
         float DaCub = DaSqd * d.y;
-        float _9_guarded_divide;
         float _10_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
-        _9_guarded_divide = _10_n / DaSqd;
-        return _9_guarded_divide;
+        return _10_n / DaSqd;
 
     } else {
         return ((d.x * ((s.y - 2.0 * s.x) + 1.0) + s.x) - sqrt(d.y * d.x) * (s.y - 2.0 * s.x)) - d.y * s.x;
@@ -24,8 +20,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_soft_light;
-    _0_blend_soft_light = dst.w == 0.0 ? src : vec4(_soft_light_component(src.xw, dst.xw), _soft_light_component(src.yw, dst.yw), _soft_light_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _0_blend_soft_light;
+    sk_FragColor = dst.w == 0.0 ? src : vec4(_soft_light_component(src.xw, dst.xw), _soft_light_component(src.yw, dst.yw), _soft_light_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
 }
diff --git a/tests/sksl/blend/golden/BlendSrc.asm.frag b/tests/sksl/blend/golden/BlendSrc.asm.frag
index 8f8ee09..3012e21 100644
--- a/tests/sksl/blend/golden/BlendSrc.asm.frag
+++ b/tests/sksl/blend/golden/BlendSrc.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_src "_0_blend_src"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,8 +15,7 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
-OpDecorate %18 RelaxedPrecision
-OpDecorate %19 RelaxedPrecision
+OpDecorate %16 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -30,13 +28,9 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_src = OpVariable %_ptr_Function_v4float Function
-%18 = OpLoad %v4float %src
-OpStore %_0_blend_src %18
-%19 = OpLoad %v4float %_0_blend_src
-OpStore %sk_FragColor %19
+%16 = OpLoad %v4float %src
+OpStore %sk_FragColor %16
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendSrc.glsl b/tests/sksl/blend/golden/BlendSrc.glsl
index 9a154b6..7972bb3 100644
--- a/tests/sksl/blend/golden/BlendSrc.glsl
+++ b/tests/sksl/blend/golden/BlendSrc.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_src;
-    _0_blend_src = src;
-    sk_FragColor = _0_blend_src;
+    sk_FragColor = src;
 
 }
diff --git a/tests/sksl/blend/golden/BlendSrc.metal b/tests/sksl/blend/golden/BlendSrc.metal
index a0bb565..2a300f1 100644
--- a/tests/sksl/blend/golden/BlendSrc.metal
+++ b/tests/sksl/blend/golden/BlendSrc.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_src;
-    _0_blend_src = _in.src;
-    _out->sk_FragColor = _0_blend_src;
+    _out->sk_FragColor = _in.src;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendSrcAtop.asm.frag b/tests/sksl/blend/golden/BlendSrcAtop.asm.frag
index fa36e6c..8d849c9 100644
--- a/tests/sksl/blend/golden/BlendSrcAtop.asm.frag
+++ b/tests/sksl/blend/golden/BlendSrcAtop.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_src_atop "_0_blend_src_atop"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,13 +15,12 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
+OpDecorate %16 RelaxedPrecision
 OpDecorate %18 RelaxedPrecision
-OpDecorate %20 RelaxedPrecision
+OpDecorate %21 RelaxedPrecision
 OpDecorate %23 RelaxedPrecision
-OpDecorate %25 RelaxedPrecision
+OpDecorate %24 RelaxedPrecision
 OpDecorate %26 RelaxedPrecision
-OpDecorate %28 RelaxedPrecision
-OpDecorate %29 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -35,23 +33,19 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %float_1 = OpConstant %float 1
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_src_atop = OpVariable %_ptr_Function_v4float Function
-%18 = OpLoad %v4float %dst
-%19 = OpCompositeExtract %float %18 3
-%20 = OpLoad %v4float %src
-%21 = OpVectorTimesScalar %v4float %20 %19
-%23 = OpLoad %v4float %src
-%24 = OpCompositeExtract %float %23 3
-%25 = OpFSub %float %float_1 %24
-%26 = OpLoad %v4float %dst
-%27 = OpVectorTimesScalar %v4float %26 %25
-%28 = OpFAdd %v4float %21 %27
-OpStore %_0_blend_src_atop %28
-%29 = OpLoad %v4float %_0_blend_src_atop
-OpStore %sk_FragColor %29
+%16 = OpLoad %v4float %dst
+%17 = OpCompositeExtract %float %16 3
+%18 = OpLoad %v4float %src
+%19 = OpVectorTimesScalar %v4float %18 %17
+%21 = OpLoad %v4float %src
+%22 = OpCompositeExtract %float %21 3
+%23 = OpFSub %float %float_1 %22
+%24 = OpLoad %v4float %dst
+%25 = OpVectorTimesScalar %v4float %24 %23
+%26 = OpFAdd %v4float %19 %25
+OpStore %sk_FragColor %26
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendSrcAtop.glsl b/tests/sksl/blend/golden/BlendSrcAtop.glsl
index f777682..7e4f7fe 100644
--- a/tests/sksl/blend/golden/BlendSrcAtop.glsl
+++ b/tests/sksl/blend/golden/BlendSrcAtop.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_src_atop;
-    _0_blend_src_atop = dst.w * src + (1.0 - src.w) * dst;
-    sk_FragColor = _0_blend_src_atop;
+    sk_FragColor = dst.w * src + (1.0 - src.w) * dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendSrcAtop.metal b/tests/sksl/blend/golden/BlendSrcAtop.metal
index c4b64ee..970b2f7 100644
--- a/tests/sksl/blend/golden/BlendSrcAtop.metal
+++ b/tests/sksl/blend/golden/BlendSrcAtop.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_src_atop;
-    _0_blend_src_atop = _in.dst.w * _in.src + (1.0 - _in.src.w) * _in.dst;
-    _out->sk_FragColor = _0_blend_src_atop;
+    _out->sk_FragColor = _in.dst.w * _in.src + (1.0 - _in.src.w) * _in.dst;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendSrcAtopStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendSrcAtopStandaloneSettings.glsl
index 335e953..69cac42 100644
--- a/tests/sksl/blend/golden/BlendSrcAtopStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendSrcAtopStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_src_atop;
-    _0_blend_src_atop = dst.w * src + (1.0 - src.w) * dst;
-    sk_FragColor = _0_blend_src_atop;
+    sk_FragColor = dst.w * src + (1.0 - src.w) * dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendSrcIn.asm.frag b/tests/sksl/blend/golden/BlendSrcIn.asm.frag
index f32a271..b03811a 100644
--- a/tests/sksl/blend/golden/BlendSrcIn.asm.frag
+++ b/tests/sksl/blend/golden/BlendSrcIn.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_src_in "_0_blend_src_in"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,9 +15,8 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
-OpDecorate %18 RelaxedPrecision
-OpDecorate %19 RelaxedPrecision
-OpDecorate %22 RelaxedPrecision
+OpDecorate %16 RelaxedPrecision
+OpDecorate %17 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -31,16 +29,12 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_src_in = OpVariable %_ptr_Function_v4float Function
-%18 = OpLoad %v4float %src
-%19 = OpLoad %v4float %dst
-%20 = OpCompositeExtract %float %19 3
-%21 = OpVectorTimesScalar %v4float %18 %20
-OpStore %_0_blend_src_in %21
-%22 = OpLoad %v4float %_0_blend_src_in
-OpStore %sk_FragColor %22
+%16 = OpLoad %v4float %src
+%17 = OpLoad %v4float %dst
+%18 = OpCompositeExtract %float %17 3
+%19 = OpVectorTimesScalar %v4float %16 %18
+OpStore %sk_FragColor %19
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendSrcIn.glsl b/tests/sksl/blend/golden/BlendSrcIn.glsl
index c003bbc..41824ae 100644
--- a/tests/sksl/blend/golden/BlendSrcIn.glsl
+++ b/tests/sksl/blend/golden/BlendSrcIn.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_src_in;
-    _0_blend_src_in = src * dst.w;
-    sk_FragColor = _0_blend_src_in;
+    sk_FragColor = src * dst.w;
 
 }
diff --git a/tests/sksl/blend/golden/BlendSrcIn.metal b/tests/sksl/blend/golden/BlendSrcIn.metal
index ebaf6b9..0b28a93 100644
--- a/tests/sksl/blend/golden/BlendSrcIn.metal
+++ b/tests/sksl/blend/golden/BlendSrcIn.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_src_in;
-    _0_blend_src_in = _in.src * _in.dst.w;
-    _out->sk_FragColor = _0_blend_src_in;
+    _out->sk_FragColor = _in.src * _in.dst.w;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendSrcInStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendSrcInStandaloneSettings.glsl
index 9073c85..7b86c91 100644
--- a/tests/sksl/blend/golden/BlendSrcInStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendSrcInStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_src_in;
-    _0_blend_src_in = src * dst.w;
-    sk_FragColor = _0_blend_src_in;
+    sk_FragColor = src * dst.w;
 
 }
diff --git a/tests/sksl/blend/golden/BlendSrcOut.asm.frag b/tests/sksl/blend/golden/BlendSrcOut.asm.frag
index 7fabe2a..45004b8 100644
--- a/tests/sksl/blend/golden/BlendSrcOut.asm.frag
+++ b/tests/sksl/blend/golden/BlendSrcOut.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_src_out "_0_blend_src_out"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,10 +15,9 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
+OpDecorate %17 RelaxedPrecision
 OpDecorate %19 RelaxedPrecision
-OpDecorate %21 RelaxedPrecision
-OpDecorate %22 RelaxedPrecision
-OpDecorate %24 RelaxedPrecision
+OpDecorate %20 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -32,18 +30,14 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %float_1 = OpConstant %float 1
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_src_out = OpVariable %_ptr_Function_v4float Function
-%19 = OpLoad %v4float %dst
-%20 = OpCompositeExtract %float %19 3
-%21 = OpFSub %float %float_1 %20
-%22 = OpLoad %v4float %src
-%23 = OpVectorTimesScalar %v4float %22 %21
-OpStore %_0_blend_src_out %23
-%24 = OpLoad %v4float %_0_blend_src_out
-OpStore %sk_FragColor %24
+%17 = OpLoad %v4float %dst
+%18 = OpCompositeExtract %float %17 3
+%19 = OpFSub %float %float_1 %18
+%20 = OpLoad %v4float %src
+%21 = OpVectorTimesScalar %v4float %20 %19
+OpStore %sk_FragColor %21
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendSrcOut.glsl b/tests/sksl/blend/golden/BlendSrcOut.glsl
index f504709..8c808b4 100644
--- a/tests/sksl/blend/golden/BlendSrcOut.glsl
+++ b/tests/sksl/blend/golden/BlendSrcOut.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_src_out;
-    _0_blend_src_out = (1.0 - dst.w) * src;
-    sk_FragColor = _0_blend_src_out;
+    sk_FragColor = (1.0 - dst.w) * src;
 
 }
diff --git a/tests/sksl/blend/golden/BlendSrcOut.metal b/tests/sksl/blend/golden/BlendSrcOut.metal
index 2263a19..698b3c5 100644
--- a/tests/sksl/blend/golden/BlendSrcOut.metal
+++ b/tests/sksl/blend/golden/BlendSrcOut.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_src_out;
-    _0_blend_src_out = (1.0 - _in.dst.w) * _in.src;
-    _out->sk_FragColor = _0_blend_src_out;
+    _out->sk_FragColor = (1.0 - _in.dst.w) * _in.src;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendSrcOutStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendSrcOutStandaloneSettings.glsl
index e5ef12f..c515bf4 100644
--- a/tests/sksl/blend/golden/BlendSrcOutStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendSrcOutStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_src_out;
-    _0_blend_src_out = (1.0 - dst.w) * src;
-    sk_FragColor = _0_blend_src_out;
+    sk_FragColor = (1.0 - dst.w) * src;
 
 }
diff --git a/tests/sksl/blend/golden/BlendSrcOver.asm.frag b/tests/sksl/blend/golden/BlendSrcOver.asm.frag
index e613758..87d185b 100644
--- a/tests/sksl/blend/golden/BlendSrcOver.asm.frag
+++ b/tests/sksl/blend/golden/BlendSrcOver.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_src_over "_0_blend_src_over"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,12 +15,11 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
+OpDecorate %16 RelaxedPrecision
 OpDecorate %18 RelaxedPrecision
 OpDecorate %20 RelaxedPrecision
-OpDecorate %22 RelaxedPrecision
+OpDecorate %21 RelaxedPrecision
 OpDecorate %23 RelaxedPrecision
-OpDecorate %25 RelaxedPrecision
-OpDecorate %26 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -34,20 +32,16 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %float_1 = OpConstant %float 1
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_src_over = OpVariable %_ptr_Function_v4float Function
+%16 = OpLoad %v4float %src
 %18 = OpLoad %v4float %src
-%20 = OpLoad %v4float %src
-%21 = OpCompositeExtract %float %20 3
-%22 = OpFSub %float %float_1 %21
-%23 = OpLoad %v4float %dst
-%24 = OpVectorTimesScalar %v4float %23 %22
-%25 = OpFAdd %v4float %18 %24
-OpStore %_0_blend_src_over %25
-%26 = OpLoad %v4float %_0_blend_src_over
-OpStore %sk_FragColor %26
+%19 = OpCompositeExtract %float %18 3
+%20 = OpFSub %float %float_1 %19
+%21 = OpLoad %v4float %dst
+%22 = OpVectorTimesScalar %v4float %21 %20
+%23 = OpFAdd %v4float %16 %22
+OpStore %sk_FragColor %23
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendSrcOver.glsl b/tests/sksl/blend/golden/BlendSrcOver.glsl
index 253f36d..15c5c55 100644
--- a/tests/sksl/blend/golden/BlendSrcOver.glsl
+++ b/tests/sksl/blend/golden/BlendSrcOver.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_src_over;
-    _0_blend_src_over = src + (1.0 - src.w) * dst;
-    sk_FragColor = _0_blend_src_over;
+    sk_FragColor = src + (1.0 - src.w) * dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendSrcOver.metal b/tests/sksl/blend/golden/BlendSrcOver.metal
index b891d23..59d4cd1 100644
--- a/tests/sksl/blend/golden/BlendSrcOver.metal
+++ b/tests/sksl/blend/golden/BlendSrcOver.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_src_over;
-    _0_blend_src_over = _in.src + (1.0 - _in.src.w) * _in.dst;
-    _out->sk_FragColor = _0_blend_src_over;
+    _out->sk_FragColor = _in.src + (1.0 - _in.src.w) * _in.dst;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendSrcOverStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendSrcOverStandaloneSettings.glsl
index dc0186f..53d507f 100644
--- a/tests/sksl/blend/golden/BlendSrcOverStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendSrcOverStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_src_over;
-    _0_blend_src_over = src + (1.0 - src.w) * dst;
-    sk_FragColor = _0_blend_src_over;
+    sk_FragColor = src + (1.0 - src.w) * dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendSrcStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendSrcStandaloneSettings.glsl
index 6512201..3798a7e 100644
--- a/tests/sksl/blend/golden/BlendSrcStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendSrcStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_src;
-    _0_blend_src = src;
-    sk_FragColor = _0_blend_src;
+    sk_FragColor = src;
 
 }
diff --git a/tests/sksl/blend/golden/BlendXor.asm.frag b/tests/sksl/blend/golden/BlendXor.asm.frag
index 47da591..458cc51 100644
--- a/tests/sksl/blend/golden/BlendXor.asm.frag
+++ b/tests/sksl/blend/golden/BlendXor.asm.frag
@@ -8,7 +8,6 @@
 OpName %src "src"
 OpName %dst "dst"
 OpName %main "main"
-OpName %_0_blend_xor "_0_blend_xor"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,14 +15,13 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %src RelaxedPrecision
 OpDecorate %dst RelaxedPrecision
+OpDecorate %17 RelaxedPrecision
 OpDecorate %19 RelaxedPrecision
-OpDecorate %21 RelaxedPrecision
+OpDecorate %20 RelaxedPrecision
 OpDecorate %22 RelaxedPrecision
 OpDecorate %24 RelaxedPrecision
-OpDecorate %26 RelaxedPrecision
+OpDecorate %25 RelaxedPrecision
 OpDecorate %27 RelaxedPrecision
-OpDecorate %29 RelaxedPrecision
-OpDecorate %30 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -36,24 +34,20 @@
 %dst = OpVariable %_ptr_Input_v4float Input
 %void = OpTypeVoid
 %14 = OpTypeFunction %void
-%_ptr_Function_v4float = OpTypePointer Function %v4float
 %float_1 = OpConstant %float 1
 %main = OpFunction %void None %14
 %15 = OpLabel
-%_0_blend_xor = OpVariable %_ptr_Function_v4float Function
-%19 = OpLoad %v4float %dst
-%20 = OpCompositeExtract %float %19 3
-%21 = OpFSub %float %float_1 %20
+%17 = OpLoad %v4float %dst
+%18 = OpCompositeExtract %float %17 3
+%19 = OpFSub %float %float_1 %18
+%20 = OpLoad %v4float %src
+%21 = OpVectorTimesScalar %v4float %20 %19
 %22 = OpLoad %v4float %src
-%23 = OpVectorTimesScalar %v4float %22 %21
-%24 = OpLoad %v4float %src
-%25 = OpCompositeExtract %float %24 3
-%26 = OpFSub %float %float_1 %25
-%27 = OpLoad %v4float %dst
-%28 = OpVectorTimesScalar %v4float %27 %26
-%29 = OpFAdd %v4float %23 %28
-OpStore %_0_blend_xor %29
-%30 = OpLoad %v4float %_0_blend_xor
-OpStore %sk_FragColor %30
+%23 = OpCompositeExtract %float %22 3
+%24 = OpFSub %float %float_1 %23
+%25 = OpLoad %v4float %dst
+%26 = OpVectorTimesScalar %v4float %25 %24
+%27 = OpFAdd %v4float %21 %26
+OpStore %sk_FragColor %27
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/blend/golden/BlendXor.glsl b/tests/sksl/blend/golden/BlendXor.glsl
index 7d7f363..b078e1c 100644
--- a/tests/sksl/blend/golden/BlendXor.glsl
+++ b/tests/sksl/blend/golden/BlendXor.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_xor;
-    _0_blend_xor = (1.0 - dst.w) * src + (1.0 - src.w) * dst;
-    sk_FragColor = _0_blend_xor;
+    sk_FragColor = (1.0 - dst.w) * src + (1.0 - src.w) * dst;
 
 }
diff --git a/tests/sksl/blend/golden/BlendXor.metal b/tests/sksl/blend/golden/BlendXor.metal
index c7f555d..60bf6e9 100644
--- a/tests/sksl/blend/golden/BlendXor.metal
+++ b/tests/sksl/blend/golden/BlendXor.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float4 _0_blend_xor;
-    _0_blend_xor = (1.0 - _in.dst.w) * _in.src + (1.0 - _in.src.w) * _in.dst;
-    _out->sk_FragColor = _0_blend_xor;
+    _out->sk_FragColor = (1.0 - _in.dst.w) * _in.src + (1.0 - _in.src.w) * _in.dst;
 
     return *_out;
 }
diff --git a/tests/sksl/blend/golden/BlendXorStandaloneSettings.glsl b/tests/sksl/blend/golden/BlendXorStandaloneSettings.glsl
index 43930bf..933ebad 100644
--- a/tests/sksl/blend/golden/BlendXorStandaloneSettings.glsl
+++ b/tests/sksl/blend/golden/BlendXorStandaloneSettings.glsl
@@ -3,8 +3,6 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_xor;
-    _0_blend_xor = (1.0 - dst.w) * src + (1.0 - src.w) * dst;
-    sk_FragColor = _0_blend_xor;
+    sk_FragColor = (1.0 - dst.w) * src + (1.0 - src.w) * dst;
 
 }
diff --git a/tests/sksl/fp/golden/GrInlinedFunction.cpp b/tests/sksl/fp/golden/GrInlinedFunction.cpp
index 7840c76..173d465 100644
--- a/tests/sksl/fp/golden/GrInlinedFunction.cpp
+++ b/tests/sksl/fp/golden/GrInlinedFunction.cpp
@@ -21,9 +21,7 @@
         (void) _outer;
         colorVar = args.fUniformHandler->addUniform(&_outer, kFragment_GrShaderFlag, kHalf4_GrSLType, "color");
         fragBuilder->codeAppendf(
-R"SkSL(half4 _0_flip;
-_0_flip = %s.wzyx;
-return _0_flip;
+R"SkSL(return %s.wzyx;
 
 )SkSL"
 , args.fUniformHandler->getUniformCStr(colorVar));
diff --git a/tests/sksl/inliner/golden/DoWhileBodyMustBeInlinedIntoAScope.glsl b/tests/sksl/inliner/golden/DoWhileBodyMustBeInlinedIntoAScope.glsl
index de179b9..7d314e1 100644
--- a/tests/sksl/inliner/golden/DoWhileBodyMustBeInlinedIntoAScope.glsl
+++ b/tests/sksl/inliner/golden/DoWhileBodyMustBeInlinedIntoAScope.glsl
@@ -3,8 +3,6 @@
 void main() {
     sk_FragColor = vec4(0.0);
     do {
-        vec4 _0_adjust;
-        _0_adjust = sk_FragColor + vec4(0.125);
-        sk_FragColor = _0_adjust;
+        sk_FragColor = sk_FragColor + vec4(0.125);
     } while (sk_FragColor.x < 0.5);
 }
diff --git a/tests/sksl/inliner/golden/ForBodyMustBeInlinedIntoAScope.glsl b/tests/sksl/inliner/golden/ForBodyMustBeInlinedIntoAScope.glsl
index 7b34054..4e1ac2d 100644
--- a/tests/sksl/inliner/golden/ForBodyMustBeInlinedIntoAScope.glsl
+++ b/tests/sksl/inliner/golden/ForBodyMustBeInlinedIntoAScope.glsl
@@ -3,8 +3,6 @@
 void main() {
     sk_FragColor = vec4(0.0);
     for (int x = 0;x < 4; ++x) {
-        vec4 _0_adjust;
-        _0_adjust = sk_FragColor + vec4(0.125);
-        sk_FragColor = _0_adjust;
+        sk_FragColor = sk_FragColor + vec4(0.125);
     }
 }
diff --git a/tests/sksl/inliner/golden/ForWithoutReturnInsideCanBeInlined.glsl b/tests/sksl/inliner/golden/ForWithoutReturnInsideCanBeInlined.glsl
index f3fbd08..70f3059 100644
--- a/tests/sksl/inliner/golden/ForWithoutReturnInsideCanBeInlined.glsl
+++ b/tests/sksl/inliner/golden/ForWithoutReturnInsideCanBeInlined.glsl
@@ -2,12 +2,10 @@
 out vec4 sk_FragColor;
 uniform int value;
 void main() {
-    vec4 _0_loopy;
     vec4 _1_result = vec4(1.0);
     for (int _2_x = 0;_2_x < 5; ++_2_x) {
         if (_2_x == value) _1_result = vec4(0.5);
     }
-    _0_loopy = _1_result;
-    sk_FragColor = _0_loopy;
+    sk_FragColor = _1_result;
 
 }
diff --git a/tests/sksl/inliner/golden/IfBodyMustBeInlinedIntoAScope.glsl b/tests/sksl/inliner/golden/IfBodyMustBeInlinedIntoAScope.glsl
index 95b649d..14f6735 100644
--- a/tests/sksl/inliner/golden/IfBodyMustBeInlinedIntoAScope.glsl
+++ b/tests/sksl/inliner/golden/IfBodyMustBeInlinedIntoAScope.glsl
@@ -4,9 +4,7 @@
 void main() {
     vec4 c = color;
     if (c.x >= 0.5) {
-        vec4 _0_ifBody;
-        _0_ifBody = color + vec4(0.125);
-        c = _0_ifBody;
+        c = color + vec4(0.125);
     }
     sk_FragColor = c;
 }
diff --git a/tests/sksl/inliner/golden/IfElseBodyMustBeInlinedIntoAScope.glsl b/tests/sksl/inliner/golden/IfElseBodyMustBeInlinedIntoAScope.glsl
index d19f1d4..a1e4dc3 100644
--- a/tests/sksl/inliner/golden/IfElseBodyMustBeInlinedIntoAScope.glsl
+++ b/tests/sksl/inliner/golden/IfElseBodyMustBeInlinedIntoAScope.glsl
@@ -5,9 +5,7 @@
     vec4 c = color;
     if (c.x >= 0.5) {
     } else {
-        vec4 _0_elseBody;
-        _0_elseBody = color + vec4(0.125);
-        c = _0_elseBody;
+        c = color + vec4(0.125);
     }
     sk_FragColor = c;
 }
diff --git a/tests/sksl/inliner/golden/IfTestCanBeInlined.glsl b/tests/sksl/inliner/golden/IfTestCanBeInlined.glsl
index 450207d..70e0a89 100644
--- a/tests/sksl/inliner/golden/IfTestCanBeInlined.glsl
+++ b/tests/sksl/inliner/golden/IfTestCanBeInlined.glsl
@@ -2,8 +2,6 @@
 out vec4 sk_FragColor;
 uniform vec4 color;
 void main() {
-    bool _0_ifTest;
-    _0_ifTest = color.x >= 0.5;
-    if (_0_ifTest) sk_FragColor = vec4(1.0); else sk_FragColor = vec4(0.5);
+    if (color.x >= 0.5) sk_FragColor = vec4(1.0); else sk_FragColor = vec4(0.5);
 
 }
diff --git a/tests/sksl/inliner/golden/InlineWithModifiedArgument.glsl b/tests/sksl/inliner/golden/InlineWithModifiedArgument.glsl
index 19304bf..22dee4a 100644
--- a/tests/sksl/inliner/golden/InlineWithModifiedArgument.glsl
+++ b/tests/sksl/inliner/golden/InlineWithModifiedArgument.glsl
@@ -1,10 +1,8 @@
 
 out vec4 sk_FragColor;
 void main() {
-    float _0_parameterWrite;
     float _1_x = 1.0;
     _1_x *= 2.0;
-    _0_parameterWrite = _1_x;
-    sk_FragColor.x = _0_parameterWrite;
+    sk_FragColor.x = _1_x;
 
 }
diff --git a/tests/sksl/inliner/golden/InlinerAvoidsVariableNameOverlap.glsl b/tests/sksl/inliner/golden/InlinerAvoidsVariableNameOverlap.glsl
index 5c8cf04..553a7e7 100644
--- a/tests/sksl/inliner/golden/InlinerAvoidsVariableNameOverlap.glsl
+++ b/tests/sksl/inliner/golden/InlinerAvoidsVariableNameOverlap.glsl
@@ -1,13 +1,9 @@
 
 in vec2 x;
 vec4 main() {
-    vec2 _2_InlineA;
     vec2 _3_reusedName = x + vec2(1.0, 2.0);
-    vec2 _4_InlineB;
     vec2 _5_reusedName = _3_reusedName + vec2(3.0, 4.0);
-    _4_InlineB = _5_reusedName;
-    _2_InlineA = _4_InlineB;
 
-    return _2_InlineA.xyxy;
+    return _5_reusedName.xyxy;
 
 }
diff --git a/tests/sksl/inliner/golden/InlinerCanBeDisabled.glsl b/tests/sksl/inliner/golden/InlinerCanBeDisabled.glsl
index ba18776..cfaca49 100644
--- a/tests/sksl/inliner/golden/InlinerCanBeDisabled.glsl
+++ b/tests/sksl/inliner/golden/InlinerCanBeDisabled.glsl
@@ -4,19 +4,13 @@
     return src * dst.w;
 }
 vec4 blend_dst_in(vec4 src, vec4 dst) {
-    vec4 _0_blend_src_in;
-    _0_blend_src_in = dst * src.w;
-    return _0_blend_src_in;
+    return dst * src.w;
 
 }
 vec3 _blend_set_color_luminance(vec3 hueSatColor, float alpha, vec3 lumColor) {
-    float _11_blend_color_luminance;
-    _11_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor);
-    float lum = _11_blend_color_luminance;
+    float lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor);
 
-    float _12_blend_color_luminance;
-    _12_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor);
-    vec3 result = (lum - _12_blend_color_luminance) + hueSatColor;
+    vec3 result = (lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor;
 
     float minComp = min(min(result.x, result.y), result.z);
     float maxComp = max(max(result.x, result.y), result.z);
@@ -29,9 +23,7 @@
     return minMidMax.x < minMidMax.z ? vec3(0.0, (sat * (minMidMax.y - minMidMax.x)) / (minMidMax.z - minMidMax.x), sat) : vec3(0.0);
 }
 vec3 _blend_set_color_saturation(vec3 hueLumColor, vec3 satColor) {
-    float _13_blend_color_saturation;
-    _13_blend_color_saturation = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z);
-    float sat = _13_blend_color_saturation;
+    float sat = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z);
 
     if (hueLumColor.x <= hueLumColor.y) {
         if (hueLumColor.y <= hueLumColor.z) {
diff --git a/tests/sksl/inliner/golden/InlinerCanBeDisabledStandaloneSettings.glsl b/tests/sksl/inliner/golden/InlinerCanBeDisabledStandaloneSettings.glsl
index d8a5540..33159b7 100644
--- a/tests/sksl/inliner/golden/InlinerCanBeDisabledStandaloneSettings.glsl
+++ b/tests/sksl/inliner/golden/InlinerCanBeDisabledStandaloneSettings.glsl
@@ -1,13 +1,9 @@
 
 out vec4 sk_FragColor;
 vec3 _blend_set_color_luminance(vec3 hueSatColor, float alpha, vec3 lumColor) {
-    float _11_blend_color_luminance;
-    _11_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor);
-    float lum = _11_blend_color_luminance;
+    float lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor);
 
-    float _12_blend_color_luminance;
-    _12_blend_color_luminance = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor);
-    vec3 result = (lum - _12_blend_color_luminance) + hueSatColor;
+    vec3 result = (lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor;
 
     float minComp = min(min(result.x, result.y), result.z);
     float maxComp = max(max(result.x, result.y), result.z);
@@ -20,9 +16,7 @@
     return minMidMax.x < minMidMax.z ? vec3(0.0, (sat * (minMidMax.y - minMidMax.x)) / (minMidMax.z - minMidMax.x), sat) : vec3(0.0);
 }
 vec3 _blend_set_color_saturation(vec3 hueLumColor, vec3 satColor) {
-    float _13_blend_color_saturation;
-    _13_blend_color_saturation = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z);
-    float sat = _13_blend_color_saturation;
+    float sat = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z);
 
     if (hueLumColor.x <= hueLumColor.y) {
         if (hueLumColor.y <= hueLumColor.z) {
@@ -48,29 +42,16 @@
 }
 uniform vec4 color;
 void main() {
-    float _1_fma;
-    float _2_mul;
-    _2_mul = color.x * color.y;
-    float _7_add;
-    float _8_c = _2_mul + color.z;
-    _7_add = _8_c;
-    _1_fma = _7_add;
+    float _7_a = color.x * color.y;
+    float _8_c = _7_a + color.z;
+    sk_FragColor = vec4(_8_c);
 
 
-    sk_FragColor = vec4(_1_fma);
-
     sk_FragColor *= 1.25;
 
-    vec4 _4_blend_src_in;
-    _4_blend_src_in = color.xxyy * color.w;
-    sk_FragColor *= _4_blend_src_in;
+    sk_FragColor *= color.xxyy * color.w;
 
-    vec4 _5_blend_dst_in;
-    vec4 _6_blend_src_in;
-    _6_blend_src_in = color.zzww * color.y;
-    _5_blend_dst_in = _6_blend_src_in;
-
-    sk_FragColor *= _5_blend_dst_in;
+    sk_FragColor *= color.zzww * color.y;
 
     sk_FragColor *= blend_hue(color, color.wwww);
     sk_FragColor *= blend_hue(color, color.wzyx);
diff --git a/tests/sksl/inliner/golden/InlinerManglesNames.glsl b/tests/sksl/inliner/golden/InlinerManglesNames.glsl
index e232077..c4ef195 100644
--- a/tests/sksl/inliner/golden/InlinerManglesNames.glsl
+++ b/tests/sksl/inliner/golden/InlinerManglesNames.glsl
@@ -1,46 +1,23 @@
 
 uniform vec4 color;
 vec4 main() {
-    float _1_fma;
-    float _2_mul;
-    _2_mul = color.x * color.y;
-    float _8_add;
-    float _9_c = _2_mul + color.z;
-    _8_add = _9_c;
-    _1_fma = _8_add;
+    float _9_a = color.x * color.y;
+    float _10_c = _9_a + color.z;
+    float a = _10_c;
 
 
-    float a = _1_fma;
-
-    float _3_fma;
-    float _4_mul;
-    _4_mul = color.y * color.z;
-    float _10_add;
-    float _11_c = _4_mul + color.w;
-    _10_add = _11_c;
-    _3_fma = _10_add;
+    float _12_a = color.y * color.z;
+    float _13_c = _12_a + color.w;
+    float b = _13_c;
 
 
-    float b = _3_fma;
-
-    float _5_fma;
-    float _6_mul;
-    _6_mul = color.z * color.w;
-    float _12_add;
-    float _13_c = _6_mul + color.x;
-    _12_add = _13_c;
-    _5_fma = _12_add;
+    float _15_a = color.z * color.w;
+    float _16_c = _15_a + color.x;
+    float c = _16_c;
 
 
-    float c = _5_fma;
-
-    float _7_mul;
-    _7_mul = c * c;
-    float _14_mul;
-    _14_mul = b * c;
-    float _15_mul;
-    _15_mul = a * _14_mul;
-    return vec4(a, b, _7_mul, _15_mul);
+    float _19_b = b * c;
+    return vec4(a, b, c * c, a * _19_b);
 
 
 
diff --git a/tests/sksl/inliner/golden/ShortCircuitEvaluationsCannotInlineRightHandSide.glsl b/tests/sksl/inliner/golden/ShortCircuitEvaluationsCannotInlineRightHandSide.glsl
index 7cb166b..042870e 100644
--- a/tests/sksl/inliner/golden/ShortCircuitEvaluationsCannotInlineRightHandSide.glsl
+++ b/tests/sksl/inliner/golden/ShortCircuitEvaluationsCannotInlineRightHandSide.glsl
@@ -9,15 +9,11 @@
 }
 void main() {
     sk_FragColor = vec4(0.0);
-    bool _0_testA;
-    _0_testA = color.x <= 0.5;
-    if (_0_testA && testB(color)) {
+    if (color.x <= 0.5 && testB(color)) {
         sk_FragColor = vec4(0.5);
     }
 
-    bool _1_testB;
-    _1_testB = color.x > 0.5;
-    if (_1_testB || testA(color)) {
+    if (color.x > 0.5 || testA(color)) {
         sk_FragColor = vec4(1.0);
     }
 
diff --git a/tests/sksl/inliner/golden/SwitchWithCastCanBeInlined.glsl b/tests/sksl/inliner/golden/SwitchWithCastCanBeInlined.glsl
index 9047605..3b57969 100644
--- a/tests/sksl/inliner/golden/SwitchWithCastCanBeInlined.glsl
+++ b/tests/sksl/inliner/golden/SwitchWithCastCanBeInlined.glsl
@@ -2,7 +2,6 @@
 out vec4 sk_FragColor;
 uniform vec4 color;
 void main() {
-    vec4 _0_switchy;
     vec4 _1_result;
     switch (int(color.x)) {
         case 1:
@@ -12,7 +11,6 @@
             _1_result = color.zzzz;
             break;
     }
-    _0_switchy = _1_result;
-    sk_FragColor = _0_switchy;
+    sk_FragColor = _1_result;
 
 }
diff --git a/tests/sksl/inliner/golden/SwitchWithoutReturnInsideCanBeInlined.glsl b/tests/sksl/inliner/golden/SwitchWithoutReturnInsideCanBeInlined.glsl
index 887a166..46d8298 100644
--- a/tests/sksl/inliner/golden/SwitchWithoutReturnInsideCanBeInlined.glsl
+++ b/tests/sksl/inliner/golden/SwitchWithoutReturnInsideCanBeInlined.glsl
@@ -2,13 +2,11 @@
 out vec4 sk_FragColor;
 uniform int value;
 void main() {
-    vec4 _0_switchy;
     vec4 _1_result = vec4(1.0);
     switch (value) {
         case 0:
             _1_result = vec4(0.5);
     }
-    _0_switchy = _1_result;
-    sk_FragColor = _0_switchy;
+    sk_FragColor = _1_result;
 
 }
diff --git a/tests/sksl/inliner/golden/SwizzleCanBeInlinedDirectly.glsl b/tests/sksl/inliner/golden/SwizzleCanBeInlinedDirectly.glsl
index 4089cc3..4bd1a03 100644
--- a/tests/sksl/inliner/golden/SwizzleCanBeInlinedDirectly.glsl
+++ b/tests/sksl/inliner/golden/SwizzleCanBeInlinedDirectly.glsl
@@ -4,9 +4,7 @@
 void main() {
     vec4 color = inColor;
     sk_FragColor = color.yzyx;
-    vec4 _0_flip;
-    _0_flip = color.yzyx;
-    sk_FragColor = _0_flip;
+    sk_FragColor = color.yzyx;
 
     color = color.wzyx;
 
diff --git a/tests/sksl/inliner/golden/TernaryTestCanBeInlined.glsl b/tests/sksl/inliner/golden/TernaryTestCanBeInlined.glsl
index 6b92873..9f193fd 100644
--- a/tests/sksl/inliner/golden/TernaryTestCanBeInlined.glsl
+++ b/tests/sksl/inliner/golden/TernaryTestCanBeInlined.glsl
@@ -2,8 +2,6 @@
 out vec4 sk_FragColor;
 uniform vec4 color;
 void main() {
-    bool _0_test;
-    _0_test = color.x <= 0.5;
-    sk_FragColor = _0_test ? vec4(0.5) : vec4(1.0);
+    sk_FragColor = color.x <= 0.5 ? vec4(0.5) : vec4(1.0);
 
 }
diff --git a/tests/sksl/inliner/golden/WhileBodyMustBeInlinedIntoAScope.glsl b/tests/sksl/inliner/golden/WhileBodyMustBeInlinedIntoAScope.glsl
index 15a17c3..dbebdc0 100644
--- a/tests/sksl/inliner/golden/WhileBodyMustBeInlinedIntoAScope.glsl
+++ b/tests/sksl/inliner/golden/WhileBodyMustBeInlinedIntoAScope.glsl
@@ -3,8 +3,6 @@
 void main() {
     sk_FragColor = vec4(0.0);
     while (sk_FragColor.x < 0.5) {
-        vec4 _0_adjust;
-        _0_adjust = sk_FragColor + vec4(0.125);
-        sk_FragColor = _0_adjust;
+        sk_FragColor = sk_FragColor + vec4(0.125);
     }
 }
diff --git a/tests/sksl/intrinsics/golden/Cross.asm.frag b/tests/sksl/intrinsics/golden/Cross.asm.frag
index eda05f9..6c0f5db 100644
--- a/tests/sksl/intrinsics/golden/Cross.asm.frag
+++ b/tests/sksl/intrinsics/golden/Cross.asm.frag
@@ -8,7 +8,6 @@
 OpName %a "a"
 OpName %b "b"
 OpName %main "main"
-OpName %_0_cross "_0_cross"
 OpDecorate %sk_FragColor RelaxedPrecision
 OpDecorate %sk_FragColor Location 0
 OpDecorate %sk_FragColor Index 0
@@ -16,14 +15,13 @@
 OpDecorate %sk_Clockwise BuiltIn FrontFacing
 OpDecorate %a RelaxedPrecision
 OpDecorate %b RelaxedPrecision
+OpDecorate %17 RelaxedPrecision
 OpDecorate %19 RelaxedPrecision
 OpDecorate %21 RelaxedPrecision
-OpDecorate %23 RelaxedPrecision
+OpDecorate %22 RelaxedPrecision
 OpDecorate %24 RelaxedPrecision
 OpDecorate %26 RelaxedPrecision
-OpDecorate %28 RelaxedPrecision
-OpDecorate %29 RelaxedPrecision
-OpDecorate %30 RelaxedPrecision
+OpDecorate %27 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -37,27 +35,23 @@
 %b = OpVariable %_ptr_Input_v2float Input
 %void = OpTypeVoid
 %15 = OpTypeFunction %void
-%_ptr_Function_float = OpTypePointer Function %float
 %_ptr_Output_float = OpTypePointer Output %float
 %int = OpTypeInt 32 1
 %int_0 = OpConstant %int 0
 %main = OpFunction %void None %15
 %16 = OpLabel
-%_0_cross = OpVariable %_ptr_Function_float Function
-%19 = OpLoad %v2float %a
-%20 = OpCompositeExtract %float %19 0
-%21 = OpLoad %v2float %b
-%22 = OpCompositeExtract %float %21 1
-%23 = OpFMul %float %20 %22
-%24 = OpLoad %v2float %a
-%25 = OpCompositeExtract %float %24 1
-%26 = OpLoad %v2float %b
-%27 = OpCompositeExtract %float %26 0
-%28 = OpFMul %float %25 %27
-%29 = OpFSub %float %23 %28
-OpStore %_0_cross %29
-%30 = OpLoad %float %_0_cross
-%31 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
-OpStore %31 %30
+%17 = OpLoad %v2float %a
+%18 = OpCompositeExtract %float %17 0
+%19 = OpLoad %v2float %b
+%20 = OpCompositeExtract %float %19 1
+%21 = OpFMul %float %18 %20
+%22 = OpLoad %v2float %a
+%23 = OpCompositeExtract %float %22 1
+%24 = OpLoad %v2float %b
+%25 = OpCompositeExtract %float %24 0
+%26 = OpFMul %float %23 %25
+%27 = OpFSub %float %21 %26
+%28 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
+OpStore %28 %27
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/intrinsics/golden/Cross.glsl b/tests/sksl/intrinsics/golden/Cross.glsl
index b438212..4e2691a 100644
--- a/tests/sksl/intrinsics/golden/Cross.glsl
+++ b/tests/sksl/intrinsics/golden/Cross.glsl
@@ -3,8 +3,6 @@
 in vec2 a;
 in vec2 b;
 void main() {
-    float _0_cross;
-    _0_cross = a.x * b.y - a.y * b.x;
-    sk_FragColor.x = _0_cross;
+    sk_FragColor.x = a.x * b.y - a.y * b.x;
 
 }
diff --git a/tests/sksl/intrinsics/golden/Cross.metal b/tests/sksl/intrinsics/golden/Cross.metal
index 4bbffd9..8a12cda 100644
--- a/tests/sksl/intrinsics/golden/Cross.metal
+++ b/tests/sksl/intrinsics/golden/Cross.metal
@@ -13,9 +13,7 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float _0_cross;
-    _0_cross = _in.a.x * _in.b.y - _in.a.y * _in.b.x;
-    _out->sk_FragColor.x = _0_cross;
+    _out->sk_FragColor.x = _in.a.x * _in.b.y - _in.a.y * _in.b.x;
 
     return *_out;
 }
diff --git a/tests/sksl/shared/golden/GaussianBlur.asm.frag b/tests/sksl/shared/golden/GaussianBlur.asm.frag
index fc9d2b6..57a3bc9 100644
--- a/tests/sksl/shared/golden/GaussianBlur.asm.frag
+++ b/tests/sksl/shared/golden/GaussianBlur.asm.frag
@@ -23,7 +23,6 @@
 OpName %uTextureSampler_0_Stage1 "uTextureSampler_0_Stage1"
 OpName %vLocalCoord_Stage0 "vLocalCoord_Stage0"
 OpName %MatrixEffect_Stage1_c0_c0 "MatrixEffect_Stage1_c0_c0"
-OpName %_0_TextureEffect_Stage1_c0_c0_c0 "_0_TextureEffect_Stage1_c0_c0_c0"
 OpName %_1_coords "_1_coords"
 OpName %_2_inCoord "_2_inCoord"
 OpName %_3_subsetCoord "_3_subsetCoord"
@@ -32,7 +31,6 @@
 OpName %_6_snappedX "_6_snappedX"
 OpName %main "main"
 OpName %output_Stage1 "output_Stage1"
-OpName %_7_GaussianConvolution_Stage1_c0 "_7_GaussianConvolution_Stage1_c0"
 OpName %_8_output "_8_output"
 OpName %_9_coord "_9_coord"
 OpName %_10_coordSampled "_10_coordSampled"
@@ -60,114 +58,112 @@
 OpDecorate %uTextureSampler_0_Stage1 RelaxedPrecision
 OpDecorate %uTextureSampler_0_Stage1 Binding 0
 OpDecorate %vLocalCoord_Stage0 Location 0
-OpDecorate %68 RelaxedPrecision
+OpDecorate %67 RelaxedPrecision
+OpDecorate %100 RelaxedPrecision
 OpDecorate %101 RelaxedPrecision
-OpDecorate %102 RelaxedPrecision
-OpDecorate %103 RelaxedPrecision
-OpDecorate %117 RelaxedPrecision
-OpDecorate %123 RelaxedPrecision
+OpDecorate %114 RelaxedPrecision
+OpDecorate %120 RelaxedPrecision
+OpDecorate %129 RelaxedPrecision
 OpDecorate %132 RelaxedPrecision
 OpDecorate %135 RelaxedPrecision
 OpDecorate %138 RelaxedPrecision
-OpDecorate %141 RelaxedPrecision
+OpDecorate %145 RelaxedPrecision
 OpDecorate %148 RelaxedPrecision
 OpDecorate %151 RelaxedPrecision
 OpDecorate %154 RelaxedPrecision
-OpDecorate %157 RelaxedPrecision
+OpDecorate %161 RelaxedPrecision
 OpDecorate %164 RelaxedPrecision
 OpDecorate %167 RelaxedPrecision
 OpDecorate %170 RelaxedPrecision
-OpDecorate %173 RelaxedPrecision
+OpDecorate %177 RelaxedPrecision
 OpDecorate %180 RelaxedPrecision
 OpDecorate %183 RelaxedPrecision
 OpDecorate %186 RelaxedPrecision
-OpDecorate %189 RelaxedPrecision
+OpDecorate %193 RelaxedPrecision
 OpDecorate %196 RelaxedPrecision
 OpDecorate %199 RelaxedPrecision
 OpDecorate %202 RelaxedPrecision
-OpDecorate %205 RelaxedPrecision
+OpDecorate %209 RelaxedPrecision
 OpDecorate %212 RelaxedPrecision
 OpDecorate %215 RelaxedPrecision
 OpDecorate %218 RelaxedPrecision
-OpDecorate %221 RelaxedPrecision
+OpDecorate %225 RelaxedPrecision
 OpDecorate %228 RelaxedPrecision
 OpDecorate %231 RelaxedPrecision
 OpDecorate %234 RelaxedPrecision
-OpDecorate %237 RelaxedPrecision
+OpDecorate %241 RelaxedPrecision
 OpDecorate %244 RelaxedPrecision
 OpDecorate %247 RelaxedPrecision
 OpDecorate %250 RelaxedPrecision
-OpDecorate %253 RelaxedPrecision
+OpDecorate %257 RelaxedPrecision
 OpDecorate %260 RelaxedPrecision
 OpDecorate %263 RelaxedPrecision
 OpDecorate %266 RelaxedPrecision
-OpDecorate %269 RelaxedPrecision
+OpDecorate %273 RelaxedPrecision
 OpDecorate %276 RelaxedPrecision
 OpDecorate %279 RelaxedPrecision
 OpDecorate %282 RelaxedPrecision
-OpDecorate %285 RelaxedPrecision
+OpDecorate %289 RelaxedPrecision
 OpDecorate %292 RelaxedPrecision
 OpDecorate %295 RelaxedPrecision
 OpDecorate %298 RelaxedPrecision
-OpDecorate %301 RelaxedPrecision
+OpDecorate %305 RelaxedPrecision
 OpDecorate %308 RelaxedPrecision
 OpDecorate %311 RelaxedPrecision
 OpDecorate %314 RelaxedPrecision
-OpDecorate %317 RelaxedPrecision
+OpDecorate %321 RelaxedPrecision
 OpDecorate %324 RelaxedPrecision
 OpDecorate %327 RelaxedPrecision
 OpDecorate %330 RelaxedPrecision
-OpDecorate %333 RelaxedPrecision
+OpDecorate %337 RelaxedPrecision
 OpDecorate %340 RelaxedPrecision
 OpDecorate %343 RelaxedPrecision
 OpDecorate %346 RelaxedPrecision
-OpDecorate %349 RelaxedPrecision
+OpDecorate %353 RelaxedPrecision
 OpDecorate %356 RelaxedPrecision
 OpDecorate %359 RelaxedPrecision
 OpDecorate %362 RelaxedPrecision
-OpDecorate %365 RelaxedPrecision
+OpDecorate %369 RelaxedPrecision
 OpDecorate %372 RelaxedPrecision
 OpDecorate %375 RelaxedPrecision
 OpDecorate %378 RelaxedPrecision
-OpDecorate %381 RelaxedPrecision
+OpDecorate %385 RelaxedPrecision
 OpDecorate %388 RelaxedPrecision
 OpDecorate %391 RelaxedPrecision
 OpDecorate %394 RelaxedPrecision
-OpDecorate %397 RelaxedPrecision
+OpDecorate %401 RelaxedPrecision
 OpDecorate %404 RelaxedPrecision
 OpDecorate %407 RelaxedPrecision
 OpDecorate %410 RelaxedPrecision
-OpDecorate %413 RelaxedPrecision
+OpDecorate %417 RelaxedPrecision
 OpDecorate %420 RelaxedPrecision
 OpDecorate %423 RelaxedPrecision
 OpDecorate %426 RelaxedPrecision
-OpDecorate %429 RelaxedPrecision
+OpDecorate %433 RelaxedPrecision
 OpDecorate %436 RelaxedPrecision
 OpDecorate %439 RelaxedPrecision
 OpDecorate %442 RelaxedPrecision
-OpDecorate %445 RelaxedPrecision
+OpDecorate %449 RelaxedPrecision
 OpDecorate %452 RelaxedPrecision
 OpDecorate %455 RelaxedPrecision
 OpDecorate %458 RelaxedPrecision
-OpDecorate %461 RelaxedPrecision
+OpDecorate %465 RelaxedPrecision
 OpDecorate %468 RelaxedPrecision
 OpDecorate %471 RelaxedPrecision
 OpDecorate %474 RelaxedPrecision
-OpDecorate %477 RelaxedPrecision
+OpDecorate %481 RelaxedPrecision
 OpDecorate %484 RelaxedPrecision
 OpDecorate %487 RelaxedPrecision
 OpDecorate %490 RelaxedPrecision
-OpDecorate %493 RelaxedPrecision
+OpDecorate %497 RelaxedPrecision
 OpDecorate %500 RelaxedPrecision
 OpDecorate %503 RelaxedPrecision
 OpDecorate %506 RelaxedPrecision
-OpDecorate %509 RelaxedPrecision
+OpDecorate %513 RelaxedPrecision
 OpDecorate %516 RelaxedPrecision
 OpDecorate %519 RelaxedPrecision
+OpDecorate %521 RelaxedPrecision
 OpDecorate %522 RelaxedPrecision
-OpDecorate %524 RelaxedPrecision
-OpDecorate %525 RelaxedPrecision
-OpDecorate %526 RelaxedPrecision
 %float = OpTypeFloat 32
 %v4float = OpTypeVector %float 4
 %v2float = OpTypeVector %float 2
@@ -207,641 +203,635 @@
 %int_5 = OpConstant %int 5
 %int_4 = OpConstant %int 4
 %void = OpTypeVoid
-%105 = OpTypeFunction %void
+%103 = OpTypeFunction %void
 %float_0 = OpConstant %float 0
-%110 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+%107 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
 %float_12 = OpConstant %float 12
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
-%121 = OpConstantComposite %v2float %float_0 %float_0
+%118 = OpConstantComposite %v2float %float_0 %float_0
 %float_1_0 = OpConstant %float 1
-%124 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%121 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
 %int_2 = OpConstant %int 2
-%142 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%158 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%174 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%190 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%206 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%222 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%238 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%254 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%270 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%286 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%302 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%318 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%334 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%350 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%366 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%382 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%398 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%414 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%430 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%446 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%462 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%478 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%494 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
-%510 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%139 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%155 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%171 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%187 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%203 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%219 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%235 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%251 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%267 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%283 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%299 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%315 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%331 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%347 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%363 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%379 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%395 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%411 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%427 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%443 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%459 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%475 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%491 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
+%507 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
 %MatrixEffect_Stage1_c0_c0 = OpFunction %v4float None %26
 %29 = OpFunctionParameter %_ptr_Function_v4float
 %30 = OpFunctionParameter %_ptr_Function_v2float
 %31 = OpLabel
-%_0_TextureEffect_Stage1_c0_c0_c0 = OpVariable %_ptr_Function_v4float Function
 %_1_coords = OpVariable %_ptr_Function_v2float Function
 %_2_inCoord = OpVariable %_ptr_Function_v2float Function
 %_3_subsetCoord = OpVariable %_ptr_Function_v2float Function
 %_4_clampedCoord = OpVariable %_ptr_Function_v2float Function
 %_5_textureColor = OpVariable %_ptr_Function_v4float Function
 %_6_snappedX = OpVariable %_ptr_Function_float Function
-%35 = OpAccessChain %_ptr_Uniform_mat3v3float %4 %int_3
-%37 = OpLoad %mat3v3float %35
-%38 = OpLoad %v2float %30
-%39 = OpCompositeExtract %float %38 0
-%40 = OpCompositeExtract %float %38 1
-%42 = OpCompositeConstruct %v3float %39 %40 %float_1
-%43 = OpMatrixTimesVector %v3float %37 %42
-%44 = OpVectorShuffle %v2float %43 %43 0 1
-OpStore %_1_coords %44
-%46 = OpLoad %v2float %_1_coords
-OpStore %_2_inCoord %46
-%47 = OpLoad %v2float %_2_inCoord
-%49 = OpAccessChain %_ptr_Uniform_v4float %4 %int_6
-%51 = OpLoad %v4float %49
-%52 = OpVectorShuffle %v2float %51 %51 0 1
-%53 = OpFMul %v2float %47 %52
-OpStore %_2_inCoord %53
-%55 = OpLoad %v2float %_2_inCoord
-%56 = OpCompositeExtract %float %55 0
-%57 = OpAccessChain %_ptr_Function_float %_3_subsetCoord %int_0
-OpStore %57 %56
-%60 = OpLoad %v2float %_2_inCoord
-%61 = OpCompositeExtract %float %60 1
-%62 = OpAccessChain %_ptr_Function_float %_3_subsetCoord %int_1
-OpStore %62 %61
-%65 = OpLoad %v2float %_3_subsetCoord
-OpStore %_4_clampedCoord %65
-%68 = OpLoad %22 %uTextureSampler_0_Stage1
-%69 = OpLoad %v2float %_4_clampedCoord
-%70 = OpAccessChain %_ptr_Uniform_v4float %4 %int_6
-%71 = OpLoad %v4float %70
-%72 = OpVectorShuffle %v2float %71 %71 2 3
-%73 = OpFMul %v2float %69 %72
-%67 = OpImageSampleImplicitLod %v4float %68 %73
-OpStore %_5_textureColor %67
-%76 = OpLoad %v2float %_2_inCoord
-%77 = OpCompositeExtract %float %76 0
-%79 = OpFAdd %float %77 %float_0_00100000005
-%75 = OpExtInst %float %1 Floor %79
-%81 = OpFAdd %float %75 %float_0_5
-OpStore %_6_snappedX %81
-%83 = OpLoad %float %_6_snappedX
-%85 = OpAccessChain %_ptr_Uniform_v4float %4 %int_5
-%86 = OpLoad %v4float %85
-%87 = OpCompositeExtract %float %86 0
-%88 = OpFOrdLessThan %bool %83 %87
-OpSelectionMerge %90 None
-OpBranchConditional %88 %90 %89
+%34 = OpAccessChain %_ptr_Uniform_mat3v3float %4 %int_3
+%36 = OpLoad %mat3v3float %34
+%37 = OpLoad %v2float %30
+%38 = OpCompositeExtract %float %37 0
+%39 = OpCompositeExtract %float %37 1
+%41 = OpCompositeConstruct %v3float %38 %39 %float_1
+%42 = OpMatrixTimesVector %v3float %36 %41
+%43 = OpVectorShuffle %v2float %42 %42 0 1
+OpStore %_1_coords %43
+%45 = OpLoad %v2float %_1_coords
+OpStore %_2_inCoord %45
+%46 = OpLoad %v2float %_2_inCoord
+%48 = OpAccessChain %_ptr_Uniform_v4float %4 %int_6
+%50 = OpLoad %v4float %48
+%51 = OpVectorShuffle %v2float %50 %50 0 1
+%52 = OpFMul %v2float %46 %51
+OpStore %_2_inCoord %52
+%54 = OpLoad %v2float %_2_inCoord
+%55 = OpCompositeExtract %float %54 0
+%56 = OpAccessChain %_ptr_Function_float %_3_subsetCoord %int_0
+OpStore %56 %55
+%59 = OpLoad %v2float %_2_inCoord
+%60 = OpCompositeExtract %float %59 1
+%61 = OpAccessChain %_ptr_Function_float %_3_subsetCoord %int_1
+OpStore %61 %60
+%64 = OpLoad %v2float %_3_subsetCoord
+OpStore %_4_clampedCoord %64
+%67 = OpLoad %22 %uTextureSampler_0_Stage1
+%68 = OpLoad %v2float %_4_clampedCoord
+%69 = OpAccessChain %_ptr_Uniform_v4float %4 %int_6
+%70 = OpLoad %v4float %69
+%71 = OpVectorShuffle %v2float %70 %70 2 3
+%72 = OpFMul %v2float %68 %71
+%66 = OpImageSampleImplicitLod %v4float %67 %72
+OpStore %_5_textureColor %66
+%75 = OpLoad %v2float %_2_inCoord
+%76 = OpCompositeExtract %float %75 0
+%78 = OpFAdd %float %76 %float_0_00100000005
+%74 = OpExtInst %float %1 Floor %78
+%80 = OpFAdd %float %74 %float_0_5
+OpStore %_6_snappedX %80
+%82 = OpLoad %float %_6_snappedX
+%84 = OpAccessChain %_ptr_Uniform_v4float %4 %int_5
+%85 = OpLoad %v4float %84
+%86 = OpCompositeExtract %float %85 0
+%87 = OpFOrdLessThan %bool %82 %86
+OpSelectionMerge %89 None
+OpBranchConditional %87 %89 %88
+%88 = OpLabel
+%90 = OpLoad %float %_6_snappedX
+%91 = OpAccessChain %_ptr_Uniform_v4float %4 %int_5
+%92 = OpLoad %v4float %91
+%93 = OpCompositeExtract %float %92 2
+%94 = OpFOrdGreaterThan %bool %90 %93
+OpBranch %89
 %89 = OpLabel
-%91 = OpLoad %float %_6_snappedX
-%92 = OpAccessChain %_ptr_Uniform_v4float %4 %int_5
-%93 = OpLoad %v4float %92
-%94 = OpCompositeExtract %float %93 2
-%95 = OpFOrdGreaterThan %bool %91 %94
-OpBranch %90
-%90 = OpLabel
-%96 = OpPhi %bool %true %31 %95 %89
-OpSelectionMerge %98 None
-OpBranchConditional %96 %97 %98
+%95 = OpPhi %bool %true %31 %94 %88
+OpSelectionMerge %97 None
+OpBranchConditional %95 %96 %97
+%96 = OpLabel
+%99 = OpAccessChain %_ptr_Uniform_v4float %4 %int_4
+%100 = OpLoad %v4float %99
+OpStore %_5_textureColor %100
+OpBranch %97
 %97 = OpLabel
-%100 = OpAccessChain %_ptr_Uniform_v4float %4 %int_4
-%101 = OpLoad %v4float %100
-OpStore %_5_textureColor %101
-OpBranch %98
-%98 = OpLabel
-%102 = OpLoad %v4float %_5_textureColor
-OpStore %_0_TextureEffect_Stage1_c0_c0_c0 %102
-%103 = OpLoad %v4float %_0_TextureEffect_Stage1_c0_c0_c0
-OpReturnValue %103
+%101 = OpLoad %v4float %_5_textureColor
+OpReturnValue %101
 OpFunctionEnd
-%main = OpFunction %void None %105
-%106 = OpLabel
+%main = OpFunction %void None %103
+%104 = OpLabel
 %output_Stage1 = OpVariable %_ptr_Function_v4float Function
-%_7_GaussianConvolution_Stage1_c0 = OpVariable %_ptr_Function_v4float Function
 %_8_output = OpVariable %_ptr_Function_v4float Function
 %_9_coord = OpVariable %_ptr_Function_v2float Function
 %_10_coordSampled = OpVariable %_ptr_Function_v2float Function
-%126 = OpVariable %_ptr_Function_v4float Function
-%128 = OpVariable %_ptr_Function_v2float Function
-%143 = OpVariable %_ptr_Function_v4float Function
-%145 = OpVariable %_ptr_Function_v2float Function
-%159 = OpVariable %_ptr_Function_v4float Function
-%161 = OpVariable %_ptr_Function_v2float Function
-%175 = OpVariable %_ptr_Function_v4float Function
-%177 = OpVariable %_ptr_Function_v2float Function
-%191 = OpVariable %_ptr_Function_v4float Function
-%193 = OpVariable %_ptr_Function_v2float Function
-%207 = OpVariable %_ptr_Function_v4float Function
-%209 = OpVariable %_ptr_Function_v2float Function
-%223 = OpVariable %_ptr_Function_v4float Function
-%225 = OpVariable %_ptr_Function_v2float Function
-%239 = OpVariable %_ptr_Function_v4float Function
-%241 = OpVariable %_ptr_Function_v2float Function
-%255 = OpVariable %_ptr_Function_v4float Function
-%257 = OpVariable %_ptr_Function_v2float Function
-%271 = OpVariable %_ptr_Function_v4float Function
-%273 = OpVariable %_ptr_Function_v2float Function
-%287 = OpVariable %_ptr_Function_v4float Function
-%289 = OpVariable %_ptr_Function_v2float Function
-%303 = OpVariable %_ptr_Function_v4float Function
-%305 = OpVariable %_ptr_Function_v2float Function
-%319 = OpVariable %_ptr_Function_v4float Function
-%321 = OpVariable %_ptr_Function_v2float Function
-%335 = OpVariable %_ptr_Function_v4float Function
-%337 = OpVariable %_ptr_Function_v2float Function
-%351 = OpVariable %_ptr_Function_v4float Function
-%353 = OpVariable %_ptr_Function_v2float Function
-%367 = OpVariable %_ptr_Function_v4float Function
-%369 = OpVariable %_ptr_Function_v2float Function
-%383 = OpVariable %_ptr_Function_v4float Function
-%385 = OpVariable %_ptr_Function_v2float Function
-%399 = OpVariable %_ptr_Function_v4float Function
-%401 = OpVariable %_ptr_Function_v2float Function
-%415 = OpVariable %_ptr_Function_v4float Function
-%417 = OpVariable %_ptr_Function_v2float Function
-%431 = OpVariable %_ptr_Function_v4float Function
-%433 = OpVariable %_ptr_Function_v2float Function
-%447 = OpVariable %_ptr_Function_v4float Function
-%449 = OpVariable %_ptr_Function_v2float Function
-%463 = OpVariable %_ptr_Function_v4float Function
-%465 = OpVariable %_ptr_Function_v2float Function
-%479 = OpVariable %_ptr_Function_v4float Function
-%481 = OpVariable %_ptr_Function_v2float Function
-%495 = OpVariable %_ptr_Function_v4float Function
-%497 = OpVariable %_ptr_Function_v2float Function
-%511 = OpVariable %_ptr_Function_v4float Function
-%513 = OpVariable %_ptr_Function_v2float Function
-OpStore %_8_output %110
-%113 = OpLoad %v2float %vLocalCoord_Stage0
-%115 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%117 = OpLoad %v2float %115
-%118 = OpVectorTimesScalar %v2float %117 %float_12
-%119 = OpFSub %v2float %113 %118
-OpStore %_9_coord %119
-OpStore %_10_coordSampled %121
-%122 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %122
-%123 = OpLoad %v4float %_8_output
-OpStore %126 %124
-%127 = OpLoad %v2float %_10_coordSampled
-OpStore %128 %127
-%129 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %126 %128
-%131 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
-%132 = OpLoad %v4float %131
-%133 = OpCompositeExtract %float %132 0
-%134 = OpVectorTimesScalar %v4float %129 %133
-%135 = OpFAdd %v4float %123 %134
-OpStore %_8_output %135
-%136 = OpLoad %v2float %_9_coord
-%137 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%138 = OpLoad %v2float %137
-%139 = OpFAdd %v2float %136 %138
-OpStore %_9_coord %139
-%140 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %140
-%141 = OpLoad %v4float %_8_output
-OpStore %143 %142
-%144 = OpLoad %v2float %_10_coordSampled
-OpStore %145 %144
-%146 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %143 %145
-%147 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
-%148 = OpLoad %v4float %147
-%149 = OpCompositeExtract %float %148 1
-%150 = OpVectorTimesScalar %v4float %146 %149
-%151 = OpFAdd %v4float %141 %150
-OpStore %_8_output %151
-%152 = OpLoad %v2float %_9_coord
-%153 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%154 = OpLoad %v2float %153
-%155 = OpFAdd %v2float %152 %154
-OpStore %_9_coord %155
-%156 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %156
-%157 = OpLoad %v4float %_8_output
-OpStore %159 %158
-%160 = OpLoad %v2float %_10_coordSampled
-OpStore %161 %160
-%162 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %159 %161
-%163 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
-%164 = OpLoad %v4float %163
-%165 = OpCompositeExtract %float %164 2
-%166 = OpVectorTimesScalar %v4float %162 %165
-%167 = OpFAdd %v4float %157 %166
-OpStore %_8_output %167
-%168 = OpLoad %v2float %_9_coord
-%169 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%170 = OpLoad %v2float %169
-%171 = OpFAdd %v2float %168 %170
-OpStore %_9_coord %171
-%172 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %172
-%173 = OpLoad %v4float %_8_output
-OpStore %175 %174
-%176 = OpLoad %v2float %_10_coordSampled
-OpStore %177 %176
-%178 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %175 %177
-%179 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
-%180 = OpLoad %v4float %179
-%181 = OpCompositeExtract %float %180 3
-%182 = OpVectorTimesScalar %v4float %178 %181
-%183 = OpFAdd %v4float %173 %182
-OpStore %_8_output %183
-%184 = OpLoad %v2float %_9_coord
-%185 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%186 = OpLoad %v2float %185
-%187 = OpFAdd %v2float %184 %186
-OpStore %_9_coord %187
-%188 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %188
-%189 = OpLoad %v4float %_8_output
-OpStore %191 %190
-%192 = OpLoad %v2float %_10_coordSampled
-OpStore %193 %192
-%194 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %191 %193
-%195 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
-%196 = OpLoad %v4float %195
-%197 = OpCompositeExtract %float %196 0
-%198 = OpVectorTimesScalar %v4float %194 %197
-%199 = OpFAdd %v4float %189 %198
-OpStore %_8_output %199
-%200 = OpLoad %v2float %_9_coord
-%201 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%202 = OpLoad %v2float %201
-%203 = OpFAdd %v2float %200 %202
-OpStore %_9_coord %203
-%204 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %204
-%205 = OpLoad %v4float %_8_output
-OpStore %207 %206
-%208 = OpLoad %v2float %_10_coordSampled
-OpStore %209 %208
-%210 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %207 %209
-%211 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
-%212 = OpLoad %v4float %211
-%213 = OpCompositeExtract %float %212 1
-%214 = OpVectorTimesScalar %v4float %210 %213
-%215 = OpFAdd %v4float %205 %214
-OpStore %_8_output %215
-%216 = OpLoad %v2float %_9_coord
-%217 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%218 = OpLoad %v2float %217
-%219 = OpFAdd %v2float %216 %218
-OpStore %_9_coord %219
-%220 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %220
-%221 = OpLoad %v4float %_8_output
-OpStore %223 %222
-%224 = OpLoad %v2float %_10_coordSampled
-OpStore %225 %224
-%226 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %223 %225
-%227 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
-%228 = OpLoad %v4float %227
-%229 = OpCompositeExtract %float %228 2
-%230 = OpVectorTimesScalar %v4float %226 %229
-%231 = OpFAdd %v4float %221 %230
-OpStore %_8_output %231
-%232 = OpLoad %v2float %_9_coord
-%233 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%234 = OpLoad %v2float %233
-%235 = OpFAdd %v2float %232 %234
-OpStore %_9_coord %235
-%236 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %236
-%237 = OpLoad %v4float %_8_output
-OpStore %239 %238
-%240 = OpLoad %v2float %_10_coordSampled
-OpStore %241 %240
-%242 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %239 %241
-%243 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
-%244 = OpLoad %v4float %243
-%245 = OpCompositeExtract %float %244 3
-%246 = OpVectorTimesScalar %v4float %242 %245
-%247 = OpFAdd %v4float %237 %246
-OpStore %_8_output %247
-%248 = OpLoad %v2float %_9_coord
-%249 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%250 = OpLoad %v2float %249
-%251 = OpFAdd %v2float %248 %250
-OpStore %_9_coord %251
-%252 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %252
-%253 = OpLoad %v4float %_8_output
-OpStore %255 %254
-%256 = OpLoad %v2float %_10_coordSampled
-OpStore %257 %256
-%258 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %255 %257
-%259 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
-%260 = OpLoad %v4float %259
-%261 = OpCompositeExtract %float %260 0
-%262 = OpVectorTimesScalar %v4float %258 %261
-%263 = OpFAdd %v4float %253 %262
-OpStore %_8_output %263
-%264 = OpLoad %v2float %_9_coord
-%265 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%266 = OpLoad %v2float %265
-%267 = OpFAdd %v2float %264 %266
-OpStore %_9_coord %267
-%268 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %268
-%269 = OpLoad %v4float %_8_output
-OpStore %271 %270
-%272 = OpLoad %v2float %_10_coordSampled
-OpStore %273 %272
-%274 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %271 %273
-%275 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
-%276 = OpLoad %v4float %275
-%277 = OpCompositeExtract %float %276 1
-%278 = OpVectorTimesScalar %v4float %274 %277
-%279 = OpFAdd %v4float %269 %278
-OpStore %_8_output %279
-%280 = OpLoad %v2float %_9_coord
-%281 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%282 = OpLoad %v2float %281
-%283 = OpFAdd %v2float %280 %282
-OpStore %_9_coord %283
-%284 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %284
-%285 = OpLoad %v4float %_8_output
-OpStore %287 %286
-%288 = OpLoad %v2float %_10_coordSampled
-OpStore %289 %288
-%290 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %287 %289
-%291 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
-%292 = OpLoad %v4float %291
-%293 = OpCompositeExtract %float %292 2
-%294 = OpVectorTimesScalar %v4float %290 %293
-%295 = OpFAdd %v4float %285 %294
-OpStore %_8_output %295
-%296 = OpLoad %v2float %_9_coord
-%297 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%298 = OpLoad %v2float %297
-%299 = OpFAdd %v2float %296 %298
-OpStore %_9_coord %299
-%300 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %300
-%301 = OpLoad %v4float %_8_output
-OpStore %303 %302
-%304 = OpLoad %v2float %_10_coordSampled
-OpStore %305 %304
-%306 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %303 %305
-%307 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
-%308 = OpLoad %v4float %307
-%309 = OpCompositeExtract %float %308 3
-%310 = OpVectorTimesScalar %v4float %306 %309
-%311 = OpFAdd %v4float %301 %310
-OpStore %_8_output %311
-%312 = OpLoad %v2float %_9_coord
-%313 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%314 = OpLoad %v2float %313
-%315 = OpFAdd %v2float %312 %314
-OpStore %_9_coord %315
-%316 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %316
-%317 = OpLoad %v4float %_8_output
-OpStore %319 %318
-%320 = OpLoad %v2float %_10_coordSampled
-OpStore %321 %320
-%322 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %319 %321
-%323 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
-%324 = OpLoad %v4float %323
-%325 = OpCompositeExtract %float %324 0
-%326 = OpVectorTimesScalar %v4float %322 %325
-%327 = OpFAdd %v4float %317 %326
-OpStore %_8_output %327
-%328 = OpLoad %v2float %_9_coord
-%329 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%330 = OpLoad %v2float %329
-%331 = OpFAdd %v2float %328 %330
-OpStore %_9_coord %331
-%332 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %332
-%333 = OpLoad %v4float %_8_output
-OpStore %335 %334
-%336 = OpLoad %v2float %_10_coordSampled
-OpStore %337 %336
-%338 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %335 %337
-%339 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
-%340 = OpLoad %v4float %339
-%341 = OpCompositeExtract %float %340 1
-%342 = OpVectorTimesScalar %v4float %338 %341
-%343 = OpFAdd %v4float %333 %342
-OpStore %_8_output %343
-%344 = OpLoad %v2float %_9_coord
-%345 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%346 = OpLoad %v2float %345
-%347 = OpFAdd %v2float %344 %346
-OpStore %_9_coord %347
-%348 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %348
-%349 = OpLoad %v4float %_8_output
-OpStore %351 %350
-%352 = OpLoad %v2float %_10_coordSampled
-OpStore %353 %352
-%354 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %351 %353
-%355 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
-%356 = OpLoad %v4float %355
-%357 = OpCompositeExtract %float %356 2
-%358 = OpVectorTimesScalar %v4float %354 %357
-%359 = OpFAdd %v4float %349 %358
-OpStore %_8_output %359
-%360 = OpLoad %v2float %_9_coord
-%361 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%362 = OpLoad %v2float %361
-%363 = OpFAdd %v2float %360 %362
-OpStore %_9_coord %363
-%364 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %364
-%365 = OpLoad %v4float %_8_output
-OpStore %367 %366
-%368 = OpLoad %v2float %_10_coordSampled
-OpStore %369 %368
-%370 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %367 %369
-%371 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
-%372 = OpLoad %v4float %371
-%373 = OpCompositeExtract %float %372 3
-%374 = OpVectorTimesScalar %v4float %370 %373
-%375 = OpFAdd %v4float %365 %374
-OpStore %_8_output %375
-%376 = OpLoad %v2float %_9_coord
-%377 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%378 = OpLoad %v2float %377
-%379 = OpFAdd %v2float %376 %378
-OpStore %_9_coord %379
-%380 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %380
-%381 = OpLoad %v4float %_8_output
-OpStore %383 %382
-%384 = OpLoad %v2float %_10_coordSampled
-OpStore %385 %384
-%386 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %383 %385
-%387 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
-%388 = OpLoad %v4float %387
-%389 = OpCompositeExtract %float %388 0
-%390 = OpVectorTimesScalar %v4float %386 %389
-%391 = OpFAdd %v4float %381 %390
-OpStore %_8_output %391
-%392 = OpLoad %v2float %_9_coord
-%393 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%394 = OpLoad %v2float %393
-%395 = OpFAdd %v2float %392 %394
-OpStore %_9_coord %395
-%396 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %396
-%397 = OpLoad %v4float %_8_output
-OpStore %399 %398
-%400 = OpLoad %v2float %_10_coordSampled
-OpStore %401 %400
-%402 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %399 %401
-%403 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
-%404 = OpLoad %v4float %403
-%405 = OpCompositeExtract %float %404 1
-%406 = OpVectorTimesScalar %v4float %402 %405
-%407 = OpFAdd %v4float %397 %406
-OpStore %_8_output %407
-%408 = OpLoad %v2float %_9_coord
-%409 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%410 = OpLoad %v2float %409
-%411 = OpFAdd %v2float %408 %410
-OpStore %_9_coord %411
-%412 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %412
-%413 = OpLoad %v4float %_8_output
-OpStore %415 %414
-%416 = OpLoad %v2float %_10_coordSampled
-OpStore %417 %416
-%418 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %415 %417
-%419 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
-%420 = OpLoad %v4float %419
-%421 = OpCompositeExtract %float %420 2
-%422 = OpVectorTimesScalar %v4float %418 %421
-%423 = OpFAdd %v4float %413 %422
-OpStore %_8_output %423
-%424 = OpLoad %v2float %_9_coord
-%425 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%426 = OpLoad %v2float %425
-%427 = OpFAdd %v2float %424 %426
-OpStore %_9_coord %427
-%428 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %428
-%429 = OpLoad %v4float %_8_output
-OpStore %431 %430
-%432 = OpLoad %v2float %_10_coordSampled
-OpStore %433 %432
-%434 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %431 %433
-%435 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
-%436 = OpLoad %v4float %435
-%437 = OpCompositeExtract %float %436 3
-%438 = OpVectorTimesScalar %v4float %434 %437
-%439 = OpFAdd %v4float %429 %438
-OpStore %_8_output %439
-%440 = OpLoad %v2float %_9_coord
-%441 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%442 = OpLoad %v2float %441
-%443 = OpFAdd %v2float %440 %442
-OpStore %_9_coord %443
-%444 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %444
-%445 = OpLoad %v4float %_8_output
-OpStore %447 %446
-%448 = OpLoad %v2float %_10_coordSampled
-OpStore %449 %448
-%450 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %447 %449
-%451 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
-%452 = OpLoad %v4float %451
-%453 = OpCompositeExtract %float %452 0
-%454 = OpVectorTimesScalar %v4float %450 %453
-%455 = OpFAdd %v4float %445 %454
-OpStore %_8_output %455
-%456 = OpLoad %v2float %_9_coord
-%457 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%458 = OpLoad %v2float %457
-%459 = OpFAdd %v2float %456 %458
-OpStore %_9_coord %459
-%460 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %460
-%461 = OpLoad %v4float %_8_output
-OpStore %463 %462
-%464 = OpLoad %v2float %_10_coordSampled
-OpStore %465 %464
-%466 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %463 %465
-%467 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
-%468 = OpLoad %v4float %467
-%469 = OpCompositeExtract %float %468 1
-%470 = OpVectorTimesScalar %v4float %466 %469
-%471 = OpFAdd %v4float %461 %470
-OpStore %_8_output %471
-%472 = OpLoad %v2float %_9_coord
-%473 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%474 = OpLoad %v2float %473
-%475 = OpFAdd %v2float %472 %474
-OpStore %_9_coord %475
-%476 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %476
-%477 = OpLoad %v4float %_8_output
-OpStore %479 %478
-%480 = OpLoad %v2float %_10_coordSampled
-OpStore %481 %480
-%482 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %479 %481
-%483 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
-%484 = OpLoad %v4float %483
-%485 = OpCompositeExtract %float %484 2
-%486 = OpVectorTimesScalar %v4float %482 %485
-%487 = OpFAdd %v4float %477 %486
-OpStore %_8_output %487
-%488 = OpLoad %v2float %_9_coord
-%489 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%490 = OpLoad %v2float %489
-%491 = OpFAdd %v2float %488 %490
-OpStore %_9_coord %491
-%492 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %492
-%493 = OpLoad %v4float %_8_output
-OpStore %495 %494
-%496 = OpLoad %v2float %_10_coordSampled
-OpStore %497 %496
-%498 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %495 %497
-%499 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
-%500 = OpLoad %v4float %499
-%501 = OpCompositeExtract %float %500 3
-%502 = OpVectorTimesScalar %v4float %498 %501
-%503 = OpFAdd %v4float %493 %502
-OpStore %_8_output %503
-%504 = OpLoad %v2float %_9_coord
-%505 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%506 = OpLoad %v2float %505
-%507 = OpFAdd %v2float %504 %506
-OpStore %_9_coord %507
-%508 = OpLoad %v2float %_9_coord
-OpStore %_10_coordSampled %508
-%509 = OpLoad %v4float %_8_output
-OpStore %511 %510
-%512 = OpLoad %v2float %_10_coordSampled
-OpStore %513 %512
-%514 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %511 %513
-%515 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_6
-%516 = OpLoad %v4float %515
-%517 = OpCompositeExtract %float %516 0
-%518 = OpVectorTimesScalar %v4float %514 %517
-%519 = OpFAdd %v4float %509 %518
-OpStore %_8_output %519
-%520 = OpLoad %v2float %_9_coord
-%521 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
-%522 = OpLoad %v2float %521
-%523 = OpFAdd %v2float %520 %522
-OpStore %_9_coord %523
-%524 = OpLoad %v4float %_8_output
-OpStore %_7_GaussianConvolution_Stage1_c0 %524
-%525 = OpLoad %v4float %_7_GaussianConvolution_Stage1_c0
-OpStore %output_Stage1 %525
-%526 = OpLoad %v4float %output_Stage1
-OpStore %sk_FragColor %526
+%123 = OpVariable %_ptr_Function_v4float Function
+%125 = OpVariable %_ptr_Function_v2float Function
+%140 = OpVariable %_ptr_Function_v4float Function
+%142 = OpVariable %_ptr_Function_v2float Function
+%156 = OpVariable %_ptr_Function_v4float Function
+%158 = OpVariable %_ptr_Function_v2float Function
+%172 = OpVariable %_ptr_Function_v4float Function
+%174 = OpVariable %_ptr_Function_v2float Function
+%188 = OpVariable %_ptr_Function_v4float Function
+%190 = OpVariable %_ptr_Function_v2float Function
+%204 = OpVariable %_ptr_Function_v4float Function
+%206 = OpVariable %_ptr_Function_v2float Function
+%220 = OpVariable %_ptr_Function_v4float Function
+%222 = OpVariable %_ptr_Function_v2float Function
+%236 = OpVariable %_ptr_Function_v4float Function
+%238 = OpVariable %_ptr_Function_v2float Function
+%252 = OpVariable %_ptr_Function_v4float Function
+%254 = OpVariable %_ptr_Function_v2float Function
+%268 = OpVariable %_ptr_Function_v4float Function
+%270 = OpVariable %_ptr_Function_v2float Function
+%284 = OpVariable %_ptr_Function_v4float Function
+%286 = OpVariable %_ptr_Function_v2float Function
+%300 = OpVariable %_ptr_Function_v4float Function
+%302 = OpVariable %_ptr_Function_v2float Function
+%316 = OpVariable %_ptr_Function_v4float Function
+%318 = OpVariable %_ptr_Function_v2float Function
+%332 = OpVariable %_ptr_Function_v4float Function
+%334 = OpVariable %_ptr_Function_v2float Function
+%348 = OpVariable %_ptr_Function_v4float Function
+%350 = OpVariable %_ptr_Function_v2float Function
+%364 = OpVariable %_ptr_Function_v4float Function
+%366 = OpVariable %_ptr_Function_v2float Function
+%380 = OpVariable %_ptr_Function_v4float Function
+%382 = OpVariable %_ptr_Function_v2float Function
+%396 = OpVariable %_ptr_Function_v4float Function
+%398 = OpVariable %_ptr_Function_v2float Function
+%412 = OpVariable %_ptr_Function_v4float Function
+%414 = OpVariable %_ptr_Function_v2float Function
+%428 = OpVariable %_ptr_Function_v4float Function
+%430 = OpVariable %_ptr_Function_v2float Function
+%444 = OpVariable %_ptr_Function_v4float Function
+%446 = OpVariable %_ptr_Function_v2float Function
+%460 = OpVariable %_ptr_Function_v4float Function
+%462 = OpVariable %_ptr_Function_v2float Function
+%476 = OpVariable %_ptr_Function_v4float Function
+%478 = OpVariable %_ptr_Function_v2float Function
+%492 = OpVariable %_ptr_Function_v4float Function
+%494 = OpVariable %_ptr_Function_v2float Function
+%508 = OpVariable %_ptr_Function_v4float Function
+%510 = OpVariable %_ptr_Function_v2float Function
+OpStore %_8_output %107
+%110 = OpLoad %v2float %vLocalCoord_Stage0
+%112 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%114 = OpLoad %v2float %112
+%115 = OpVectorTimesScalar %v2float %114 %float_12
+%116 = OpFSub %v2float %110 %115
+OpStore %_9_coord %116
+OpStore %_10_coordSampled %118
+%119 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %119
+%120 = OpLoad %v4float %_8_output
+OpStore %123 %121
+%124 = OpLoad %v2float %_10_coordSampled
+OpStore %125 %124
+%126 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %123 %125
+%128 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
+%129 = OpLoad %v4float %128
+%130 = OpCompositeExtract %float %129 0
+%131 = OpVectorTimesScalar %v4float %126 %130
+%132 = OpFAdd %v4float %120 %131
+OpStore %_8_output %132
+%133 = OpLoad %v2float %_9_coord
+%134 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%135 = OpLoad %v2float %134
+%136 = OpFAdd %v2float %133 %135
+OpStore %_9_coord %136
+%137 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %137
+%138 = OpLoad %v4float %_8_output
+OpStore %140 %139
+%141 = OpLoad %v2float %_10_coordSampled
+OpStore %142 %141
+%143 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %140 %142
+%144 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
+%145 = OpLoad %v4float %144
+%146 = OpCompositeExtract %float %145 1
+%147 = OpVectorTimesScalar %v4float %143 %146
+%148 = OpFAdd %v4float %138 %147
+OpStore %_8_output %148
+%149 = OpLoad %v2float %_9_coord
+%150 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%151 = OpLoad %v2float %150
+%152 = OpFAdd %v2float %149 %151
+OpStore %_9_coord %152
+%153 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %153
+%154 = OpLoad %v4float %_8_output
+OpStore %156 %155
+%157 = OpLoad %v2float %_10_coordSampled
+OpStore %158 %157
+%159 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %156 %158
+%160 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
+%161 = OpLoad %v4float %160
+%162 = OpCompositeExtract %float %161 2
+%163 = OpVectorTimesScalar %v4float %159 %162
+%164 = OpFAdd %v4float %154 %163
+OpStore %_8_output %164
+%165 = OpLoad %v2float %_9_coord
+%166 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%167 = OpLoad %v2float %166
+%168 = OpFAdd %v2float %165 %167
+OpStore %_9_coord %168
+%169 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %169
+%170 = OpLoad %v4float %_8_output
+OpStore %172 %171
+%173 = OpLoad %v2float %_10_coordSampled
+OpStore %174 %173
+%175 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %172 %174
+%176 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
+%177 = OpLoad %v4float %176
+%178 = OpCompositeExtract %float %177 3
+%179 = OpVectorTimesScalar %v4float %175 %178
+%180 = OpFAdd %v4float %170 %179
+OpStore %_8_output %180
+%181 = OpLoad %v2float %_9_coord
+%182 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%183 = OpLoad %v2float %182
+%184 = OpFAdd %v2float %181 %183
+OpStore %_9_coord %184
+%185 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %185
+%186 = OpLoad %v4float %_8_output
+OpStore %188 %187
+%189 = OpLoad %v2float %_10_coordSampled
+OpStore %190 %189
+%191 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %188 %190
+%192 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
+%193 = OpLoad %v4float %192
+%194 = OpCompositeExtract %float %193 0
+%195 = OpVectorTimesScalar %v4float %191 %194
+%196 = OpFAdd %v4float %186 %195
+OpStore %_8_output %196
+%197 = OpLoad %v2float %_9_coord
+%198 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%199 = OpLoad %v2float %198
+%200 = OpFAdd %v2float %197 %199
+OpStore %_9_coord %200
+%201 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %201
+%202 = OpLoad %v4float %_8_output
+OpStore %204 %203
+%205 = OpLoad %v2float %_10_coordSampled
+OpStore %206 %205
+%207 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %204 %206
+%208 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
+%209 = OpLoad %v4float %208
+%210 = OpCompositeExtract %float %209 1
+%211 = OpVectorTimesScalar %v4float %207 %210
+%212 = OpFAdd %v4float %202 %211
+OpStore %_8_output %212
+%213 = OpLoad %v2float %_9_coord
+%214 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%215 = OpLoad %v2float %214
+%216 = OpFAdd %v2float %213 %215
+OpStore %_9_coord %216
+%217 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %217
+%218 = OpLoad %v4float %_8_output
+OpStore %220 %219
+%221 = OpLoad %v2float %_10_coordSampled
+OpStore %222 %221
+%223 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %220 %222
+%224 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
+%225 = OpLoad %v4float %224
+%226 = OpCompositeExtract %float %225 2
+%227 = OpVectorTimesScalar %v4float %223 %226
+%228 = OpFAdd %v4float %218 %227
+OpStore %_8_output %228
+%229 = OpLoad %v2float %_9_coord
+%230 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%231 = OpLoad %v2float %230
+%232 = OpFAdd %v2float %229 %231
+OpStore %_9_coord %232
+%233 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %233
+%234 = OpLoad %v4float %_8_output
+OpStore %236 %235
+%237 = OpLoad %v2float %_10_coordSampled
+OpStore %238 %237
+%239 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %236 %238
+%240 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
+%241 = OpLoad %v4float %240
+%242 = OpCompositeExtract %float %241 3
+%243 = OpVectorTimesScalar %v4float %239 %242
+%244 = OpFAdd %v4float %234 %243
+OpStore %_8_output %244
+%245 = OpLoad %v2float %_9_coord
+%246 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%247 = OpLoad %v2float %246
+%248 = OpFAdd %v2float %245 %247
+OpStore %_9_coord %248
+%249 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %249
+%250 = OpLoad %v4float %_8_output
+OpStore %252 %251
+%253 = OpLoad %v2float %_10_coordSampled
+OpStore %254 %253
+%255 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %252 %254
+%256 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
+%257 = OpLoad %v4float %256
+%258 = OpCompositeExtract %float %257 0
+%259 = OpVectorTimesScalar %v4float %255 %258
+%260 = OpFAdd %v4float %250 %259
+OpStore %_8_output %260
+%261 = OpLoad %v2float %_9_coord
+%262 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%263 = OpLoad %v2float %262
+%264 = OpFAdd %v2float %261 %263
+OpStore %_9_coord %264
+%265 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %265
+%266 = OpLoad %v4float %_8_output
+OpStore %268 %267
+%269 = OpLoad %v2float %_10_coordSampled
+OpStore %270 %269
+%271 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %268 %270
+%272 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
+%273 = OpLoad %v4float %272
+%274 = OpCompositeExtract %float %273 1
+%275 = OpVectorTimesScalar %v4float %271 %274
+%276 = OpFAdd %v4float %266 %275
+OpStore %_8_output %276
+%277 = OpLoad %v2float %_9_coord
+%278 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%279 = OpLoad %v2float %278
+%280 = OpFAdd %v2float %277 %279
+OpStore %_9_coord %280
+%281 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %281
+%282 = OpLoad %v4float %_8_output
+OpStore %284 %283
+%285 = OpLoad %v2float %_10_coordSampled
+OpStore %286 %285
+%287 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %284 %286
+%288 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
+%289 = OpLoad %v4float %288
+%290 = OpCompositeExtract %float %289 2
+%291 = OpVectorTimesScalar %v4float %287 %290
+%292 = OpFAdd %v4float %282 %291
+OpStore %_8_output %292
+%293 = OpLoad %v2float %_9_coord
+%294 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%295 = OpLoad %v2float %294
+%296 = OpFAdd %v2float %293 %295
+OpStore %_9_coord %296
+%297 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %297
+%298 = OpLoad %v4float %_8_output
+OpStore %300 %299
+%301 = OpLoad %v2float %_10_coordSampled
+OpStore %302 %301
+%303 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %300 %302
+%304 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
+%305 = OpLoad %v4float %304
+%306 = OpCompositeExtract %float %305 3
+%307 = OpVectorTimesScalar %v4float %303 %306
+%308 = OpFAdd %v4float %298 %307
+OpStore %_8_output %308
+%309 = OpLoad %v2float %_9_coord
+%310 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%311 = OpLoad %v2float %310
+%312 = OpFAdd %v2float %309 %311
+OpStore %_9_coord %312
+%313 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %313
+%314 = OpLoad %v4float %_8_output
+OpStore %316 %315
+%317 = OpLoad %v2float %_10_coordSampled
+OpStore %318 %317
+%319 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %316 %318
+%320 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
+%321 = OpLoad %v4float %320
+%322 = OpCompositeExtract %float %321 0
+%323 = OpVectorTimesScalar %v4float %319 %322
+%324 = OpFAdd %v4float %314 %323
+OpStore %_8_output %324
+%325 = OpLoad %v2float %_9_coord
+%326 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%327 = OpLoad %v2float %326
+%328 = OpFAdd %v2float %325 %327
+OpStore %_9_coord %328
+%329 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %329
+%330 = OpLoad %v4float %_8_output
+OpStore %332 %331
+%333 = OpLoad %v2float %_10_coordSampled
+OpStore %334 %333
+%335 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %332 %334
+%336 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
+%337 = OpLoad %v4float %336
+%338 = OpCompositeExtract %float %337 1
+%339 = OpVectorTimesScalar %v4float %335 %338
+%340 = OpFAdd %v4float %330 %339
+OpStore %_8_output %340
+%341 = OpLoad %v2float %_9_coord
+%342 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%343 = OpLoad %v2float %342
+%344 = OpFAdd %v2float %341 %343
+OpStore %_9_coord %344
+%345 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %345
+%346 = OpLoad %v4float %_8_output
+OpStore %348 %347
+%349 = OpLoad %v2float %_10_coordSampled
+OpStore %350 %349
+%351 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %348 %350
+%352 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
+%353 = OpLoad %v4float %352
+%354 = OpCompositeExtract %float %353 2
+%355 = OpVectorTimesScalar %v4float %351 %354
+%356 = OpFAdd %v4float %346 %355
+OpStore %_8_output %356
+%357 = OpLoad %v2float %_9_coord
+%358 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%359 = OpLoad %v2float %358
+%360 = OpFAdd %v2float %357 %359
+OpStore %_9_coord %360
+%361 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %361
+%362 = OpLoad %v4float %_8_output
+OpStore %364 %363
+%365 = OpLoad %v2float %_10_coordSampled
+OpStore %366 %365
+%367 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %364 %366
+%368 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
+%369 = OpLoad %v4float %368
+%370 = OpCompositeExtract %float %369 3
+%371 = OpVectorTimesScalar %v4float %367 %370
+%372 = OpFAdd %v4float %362 %371
+OpStore %_8_output %372
+%373 = OpLoad %v2float %_9_coord
+%374 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%375 = OpLoad %v2float %374
+%376 = OpFAdd %v2float %373 %375
+OpStore %_9_coord %376
+%377 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %377
+%378 = OpLoad %v4float %_8_output
+OpStore %380 %379
+%381 = OpLoad %v2float %_10_coordSampled
+OpStore %382 %381
+%383 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %380 %382
+%384 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
+%385 = OpLoad %v4float %384
+%386 = OpCompositeExtract %float %385 0
+%387 = OpVectorTimesScalar %v4float %383 %386
+%388 = OpFAdd %v4float %378 %387
+OpStore %_8_output %388
+%389 = OpLoad %v2float %_9_coord
+%390 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%391 = OpLoad %v2float %390
+%392 = OpFAdd %v2float %389 %391
+OpStore %_9_coord %392
+%393 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %393
+%394 = OpLoad %v4float %_8_output
+OpStore %396 %395
+%397 = OpLoad %v2float %_10_coordSampled
+OpStore %398 %397
+%399 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %396 %398
+%400 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
+%401 = OpLoad %v4float %400
+%402 = OpCompositeExtract %float %401 1
+%403 = OpVectorTimesScalar %v4float %399 %402
+%404 = OpFAdd %v4float %394 %403
+OpStore %_8_output %404
+%405 = OpLoad %v2float %_9_coord
+%406 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%407 = OpLoad %v2float %406
+%408 = OpFAdd %v2float %405 %407
+OpStore %_9_coord %408
+%409 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %409
+%410 = OpLoad %v4float %_8_output
+OpStore %412 %411
+%413 = OpLoad %v2float %_10_coordSampled
+OpStore %414 %413
+%415 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %412 %414
+%416 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
+%417 = OpLoad %v4float %416
+%418 = OpCompositeExtract %float %417 2
+%419 = OpVectorTimesScalar %v4float %415 %418
+%420 = OpFAdd %v4float %410 %419
+OpStore %_8_output %420
+%421 = OpLoad %v2float %_9_coord
+%422 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%423 = OpLoad %v2float %422
+%424 = OpFAdd %v2float %421 %423
+OpStore %_9_coord %424
+%425 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %425
+%426 = OpLoad %v4float %_8_output
+OpStore %428 %427
+%429 = OpLoad %v2float %_10_coordSampled
+OpStore %430 %429
+%431 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %428 %430
+%432 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
+%433 = OpLoad %v4float %432
+%434 = OpCompositeExtract %float %433 3
+%435 = OpVectorTimesScalar %v4float %431 %434
+%436 = OpFAdd %v4float %426 %435
+OpStore %_8_output %436
+%437 = OpLoad %v2float %_9_coord
+%438 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%439 = OpLoad %v2float %438
+%440 = OpFAdd %v2float %437 %439
+OpStore %_9_coord %440
+%441 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %441
+%442 = OpLoad %v4float %_8_output
+OpStore %444 %443
+%445 = OpLoad %v2float %_10_coordSampled
+OpStore %446 %445
+%447 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %444 %446
+%448 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
+%449 = OpLoad %v4float %448
+%450 = OpCompositeExtract %float %449 0
+%451 = OpVectorTimesScalar %v4float %447 %450
+%452 = OpFAdd %v4float %442 %451
+OpStore %_8_output %452
+%453 = OpLoad %v2float %_9_coord
+%454 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%455 = OpLoad %v2float %454
+%456 = OpFAdd %v2float %453 %455
+OpStore %_9_coord %456
+%457 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %457
+%458 = OpLoad %v4float %_8_output
+OpStore %460 %459
+%461 = OpLoad %v2float %_10_coordSampled
+OpStore %462 %461
+%463 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %460 %462
+%464 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
+%465 = OpLoad %v4float %464
+%466 = OpCompositeExtract %float %465 1
+%467 = OpVectorTimesScalar %v4float %463 %466
+%468 = OpFAdd %v4float %458 %467
+OpStore %_8_output %468
+%469 = OpLoad %v2float %_9_coord
+%470 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%471 = OpLoad %v2float %470
+%472 = OpFAdd %v2float %469 %471
+OpStore %_9_coord %472
+%473 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %473
+%474 = OpLoad %v4float %_8_output
+OpStore %476 %475
+%477 = OpLoad %v2float %_10_coordSampled
+OpStore %478 %477
+%479 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %476 %478
+%480 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
+%481 = OpLoad %v4float %480
+%482 = OpCompositeExtract %float %481 2
+%483 = OpVectorTimesScalar %v4float %479 %482
+%484 = OpFAdd %v4float %474 %483
+OpStore %_8_output %484
+%485 = OpLoad %v2float %_9_coord
+%486 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%487 = OpLoad %v2float %486
+%488 = OpFAdd %v2float %485 %487
+OpStore %_9_coord %488
+%489 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %489
+%490 = OpLoad %v4float %_8_output
+OpStore %492 %491
+%493 = OpLoad %v2float %_10_coordSampled
+OpStore %494 %493
+%495 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %492 %494
+%496 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
+%497 = OpLoad %v4float %496
+%498 = OpCompositeExtract %float %497 3
+%499 = OpVectorTimesScalar %v4float %495 %498
+%500 = OpFAdd %v4float %490 %499
+OpStore %_8_output %500
+%501 = OpLoad %v2float %_9_coord
+%502 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%503 = OpLoad %v2float %502
+%504 = OpFAdd %v2float %501 %503
+OpStore %_9_coord %504
+%505 = OpLoad %v2float %_9_coord
+OpStore %_10_coordSampled %505
+%506 = OpLoad %v4float %_8_output
+OpStore %508 %507
+%509 = OpLoad %v2float %_10_coordSampled
+OpStore %510 %509
+%511 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %508 %510
+%512 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_6
+%513 = OpLoad %v4float %512
+%514 = OpCompositeExtract %float %513 0
+%515 = OpVectorTimesScalar %v4float %511 %514
+%516 = OpFAdd %v4float %506 %515
+OpStore %_8_output %516
+%517 = OpLoad %v2float %_9_coord
+%518 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
+%519 = OpLoad %v2float %518
+%520 = OpFAdd %v2float %517 %519
+OpStore %_9_coord %520
+%521 = OpLoad %v4float %_8_output
+OpStore %output_Stage1 %521
+%522 = OpLoad %v4float %output_Stage1
+OpStore %sk_FragColor %522
 OpReturn
 OpFunctionEnd
 
diff --git a/tests/sksl/shared/golden/GaussianBlur.glsl b/tests/sksl/shared/golden/GaussianBlur.glsl
index 2a2d96f..fe50980 100644
--- a/tests/sksl/shared/golden/GaussianBlur.glsl
+++ b/tests/sksl/shared/golden/GaussianBlur.glsl
@@ -12,7 +12,6 @@
 };
 layout (location = 0) in vec2 vLocalCoord_Stage0;
 vec4 MatrixEffect_Stage1_c0_c0(vec4 _input, vec2 _coords) {
-    vec4 _0_TextureEffect_Stage1_c0_c0_c0;
     vec2 _1_coords = (umatrix_Stage1_c0_c0 * vec3(_coords, 1.0)).xy;
     vec2 _2_inCoord = _1_coords;
     _2_inCoord *= unorm_Stage1_c0_c0_c0.xy;
@@ -26,13 +25,11 @@
     if (_6_snappedX < usubset_Stage1_c0_c0_c0.x || _6_snappedX > usubset_Stage1_c0_c0_c0.z) {
         _5_textureColor = uborder_Stage1_c0_c0_c0;
     }
-    _0_TextureEffect_Stage1_c0_c0_c0 = _5_textureColor;
-    return _0_TextureEffect_Stage1_c0_c0_c0;
+    return _5_textureColor;
 
 }
 void main() {
     vec4 output_Stage1;
-    vec4 _7_GaussianConvolution_Stage1_c0;
     vec4 _8_output;
     _8_output = vec4(0.0, 0.0, 0.0, 0.0);
     vec2 _9_coord = vLocalCoord_Stage0 - 12.0 * uIncrement_Stage1_c0;
@@ -112,8 +109,7 @@
     _10_coordSampled = _9_coord;
     _8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[6].x;
     _9_coord += uIncrement_Stage1_c0;
-    _7_GaussianConvolution_Stage1_c0 = _8_output;
-    output_Stage1 = _7_GaussianConvolution_Stage1_c0;
+    output_Stage1 = _8_output;
 
     {
         sk_FragColor = output_Stage1;
diff --git a/tests/sksl/shared/golden/GaussianBlur.metal b/tests/sksl/shared/golden/GaussianBlur.metal
index 38455f0..e6d7f63 100644
--- a/tests/sksl/shared/golden/GaussianBlur.metal
+++ b/tests/sksl/shared/golden/GaussianBlur.metal
@@ -25,7 +25,6 @@
 
 
 float4 MatrixEffect_Stage1_c0_c0(thread Globals* _globals, float4 _input, float2 _coords) {
-    float4 _0_TextureEffect_Stage1_c0_c0_c0;
     float2 _1_coords = (_globals->_anonInterface0->umatrix_Stage1_c0_c0 * float3(_coords, 1.0)).xy;
     float2 _2_inCoord = _1_coords;
     _2_inCoord *= _globals->_anonInterface0->unorm_Stage1_c0_c0_c0.xy;
@@ -39,8 +38,7 @@
     if (_6_snappedX < _globals->_anonInterface0->usubset_Stage1_c0_c0_c0.x || _6_snappedX > _globals->_anonInterface0->usubset_Stage1_c0_c0_c0.z) {
         _5_textureColor = _globals->_anonInterface0->uborder_Stage1_c0_c0_c0;
     }
-    _0_TextureEffect_Stage1_c0_c0_c0 = _5_textureColor;
-    return _0_TextureEffect_Stage1_c0_c0_c0;
+    return _5_textureColor;
 
 }
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], texture2d<float> uTextureSampler_0_Stage1[[texture(0)]], sampler uTextureSampler_0_Stage1Smplr[[sampler(0)]], constant uniformBuffer& _anonInterface0 [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
@@ -50,7 +48,6 @@
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
     float4 output_Stage1;
-    float4 _7_GaussianConvolution_Stage1_c0;
     float4 _8_output;
     _8_output = float4(0.0, 0.0, 0.0, 0.0);
     float2 _9_coord = _in.vLocalCoord_Stage0 - 12.0 * _globals->_anonInterface0->uIncrement_Stage1_c0;
@@ -130,8 +127,7 @@
     _10_coordSampled = _9_coord;
     _8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals->_anonInterface0->uKernel_Stage1_c0[6].x;
     _9_coord += _globals->_anonInterface0->uIncrement_Stage1_c0;
-    _7_GaussianConvolution_Stage1_c0 = _8_output;
-    output_Stage1 = _7_GaussianConvolution_Stage1_c0;
+    output_Stage1 = _8_output;
 
     {
         _out->sk_FragColor = output_Stage1;
diff --git a/tests/sksl/shared/golden/GeometricIntrinsics.asm.frag b/tests/sksl/shared/golden/GeometricIntrinsics.asm.frag
index 1aeebf8..24f2475 100644
--- a/tests/sksl/shared/golden/GeometricIntrinsics.asm.frag
+++ b/tests/sksl/shared/golden/GeometricIntrinsics.asm.frag
@@ -6,10 +6,8 @@
 OpName %sk_FragColor "sk_FragColor"
 OpName %sk_Clockwise "sk_Clockwise"
 OpName %main "main"
-OpName %_0_scalar "_0_scalar"
 OpName %_1_x "_1_x"
 OpName %x "x"
-OpName %_2_vector "_2_vector"
 OpName %_3_x "_3_x"
 OpName %y "y"
 OpDecorate %sk_FragColor RelaxedPrecision
@@ -31,61 +29,55 @@
 %float_2 = OpConstant %float 2
 %v2float = OpTypeVector %float 2
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-%32 = OpConstantComposite %v2float %float_1 %float_2
-%34 = OpConstantComposite %v2float %float_1 %float_2
+%29 = OpConstantComposite %v2float %float_1 %float_2
+%31 = OpConstantComposite %v2float %float_1 %float_2
 %float_3 = OpConstant %float 3
 %float_4 = OpConstant %float 4
-%38 = OpConstantComposite %v2float %float_3 %float_4
-%44 = OpConstantComposite %v2float %float_3 %float_4
+%35 = OpConstantComposite %v2float %float_3 %float_4
+%41 = OpConstantComposite %v2float %float_3 %float_4
 %float_1_0 = OpConstant %float 1
 %main = OpFunction %void None %11
 %12 = OpLabel
-%_0_scalar = OpVariable %_ptr_Function_float Function
 %_1_x = OpVariable %_ptr_Function_float Function
 %x = OpVariable %_ptr_Function_float Function
-%_2_vector = OpVariable %_ptr_Function_v2float Function
 %_3_x = OpVariable %_ptr_Function_v2float Function
 %y = OpVariable %_ptr_Function_v2float Function
 OpStore %_1_x %float_1
-%17 = OpExtInst %float %1 Length %float_1
+%16 = OpExtInst %float %1 Length %float_1
+OpStore %_1_x %16
+%18 = OpLoad %float %_1_x
+%17 = OpExtInst %float %1 Distance %18 %float_2
 OpStore %_1_x %17
-%19 = OpLoad %float %_1_x
-%18 = OpExtInst %float %1 Distance %19 %float_2
-OpStore %_1_x %18
-%22 = OpLoad %float %_1_x
-%21 = OpFMul %float %22 %float_2
-OpStore %_1_x %21
-%24 = OpLoad %float %_1_x
-%23 = OpExtInst %float %1 Normalize %24
-OpStore %_1_x %23
+%21 = OpLoad %float %_1_x
+%20 = OpFMul %float %21 %float_2
+OpStore %_1_x %20
+%23 = OpLoad %float %_1_x
+%22 = OpExtInst %float %1 Normalize %23
+OpStore %_1_x %22
 %25 = OpLoad %float %_1_x
-OpStore %_0_scalar %25
-%27 = OpLoad %float %_0_scalar
-OpStore %x %27
+OpStore %x %25
+OpStore %_3_x %29
+%30 = OpExtInst %float %1 Length %31
+%32 = OpCompositeConstruct %v2float %30 %30
 OpStore %_3_x %32
-%33 = OpExtInst %float %1 Length %34
-%35 = OpCompositeConstruct %v2float %33 %33
-OpStore %_3_x %35
-%37 = OpLoad %v2float %_3_x
-%36 = OpExtInst %float %1 Distance %37 %38
-%41 = OpCompositeConstruct %v2float %36 %36
-OpStore %_3_x %41
-%43 = OpLoad %v2float %_3_x
-%42 = OpDot %float %43 %44
-%45 = OpCompositeConstruct %v2float %42 %42
-OpStore %_3_x %45
-%47 = OpLoad %v2float %_3_x
-%46 = OpExtInst %v2float %1 Normalize %47
-OpStore %_3_x %46
-%48 = OpLoad %v2float %_3_x
-OpStore %_2_vector %48
-%50 = OpLoad %v2float %_2_vector
-OpStore %y %50
-%51 = OpLoad %float %x
-%52 = OpLoad %v2float %y
-%53 = OpCompositeExtract %float %52 0
-%54 = OpCompositeExtract %float %52 1
-%56 = OpCompositeConstruct %v4float %51 %53 %54 %float_1_0
-OpStore %sk_FragColor %56
+%34 = OpLoad %v2float %_3_x
+%33 = OpExtInst %float %1 Distance %34 %35
+%38 = OpCompositeConstruct %v2float %33 %33
+OpStore %_3_x %38
+%40 = OpLoad %v2float %_3_x
+%39 = OpDot %float %40 %41
+%42 = OpCompositeConstruct %v2float %39 %39
+OpStore %_3_x %42
+%44 = OpLoad %v2float %_3_x
+%43 = OpExtInst %v2float %1 Normalize %44
+OpStore %_3_x %43
+%46 = OpLoad %v2float %_3_x
+OpStore %y %46
+%47 = OpLoad %float %x
+%48 = OpLoad %v2float %y
+%49 = OpCompositeExtract %float %48 0
+%50 = OpCompositeExtract %float %48 1
+%52 = OpCompositeConstruct %v4float %47 %49 %50 %float_1_0
+OpStore %sk_FragColor %52
 OpReturn
 OpFunctionEnd
diff --git a/tests/sksl/shared/golden/GeometricIntrinsics.glsl b/tests/sksl/shared/golden/GeometricIntrinsics.glsl
index 0c7bb96..f9cc635 100644
--- a/tests/sksl/shared/golden/GeometricIntrinsics.glsl
+++ b/tests/sksl/shared/golden/GeometricIntrinsics.glsl
@@ -1,23 +1,19 @@
 
 out vec4 sk_FragColor;
 void main() {
-    float _0_scalar;
     float _1_x = 1.0;
     _1_x = length(1.0);
     _1_x = distance(_1_x, 2.0);
     _1_x = dot(_1_x, 2.0);
     _1_x = normalize(_1_x);
-    _0_scalar = _1_x;
-    float x = _0_scalar;
+    float x = _1_x;
 
-    vec2 _2_vector;
     vec2 _3_x = vec2(1.0, 2.0);
     _3_x = vec2(length(vec2(1.0, 2.0)));
     _3_x = vec2(distance(_3_x, vec2(3.0, 4.0)));
     _3_x = vec2(dot(_3_x, vec2(3.0, 4.0)));
     _3_x = normalize(_3_x);
-    _2_vector = _3_x;
-    vec2 y = _2_vector;
+    vec2 y = _3_x;
 
     sk_FragColor = vec4(x, y, 1.0);
 }
diff --git a/tests/sksl/shared/golden/GeometricIntrinsics.metal b/tests/sksl/shared/golden/GeometricIntrinsics.metal
index 22556a2..3e9aa2c 100644
--- a/tests/sksl/shared/golden/GeometricIntrinsics.metal
+++ b/tests/sksl/shared/golden/GeometricIntrinsics.metal
@@ -9,23 +9,19 @@
 fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
     Outputs _outputStruct;
     thread Outputs* _out = &_outputStruct;
-    float _0_scalar;
     float _1_x = 1.0;
     _1_x = abs(1.0);
     _1_x = abs(_1_x - 2.0);
     _1_x = (_1_x * 2.0);
     _1_x = sign(_1_x);
-    _0_scalar = _1_x;
-    float x = _0_scalar;
+    float x = _1_x;
 
-    float2 _2_vector;
     float2 _3_x = float2(1.0, 2.0);
     _3_x = float2(length(float2(1.0, 2.0)));
     _3_x = float2(distance(_3_x, float2(3.0, 4.0)));
     _3_x = float2(dot(_3_x, float2(3.0, 4.0)));
     _3_x = normalize(_3_x);
-    _2_vector = _3_x;
-    float2 y = _2_vector;
+    float2 y = _3_x;
 
     _out->sk_FragColor = float4(x, y, 1.0);
     return *_out;
diff --git a/tests/sksl/workarounds/golden/BlendGuardedDivide.glsl b/tests/sksl/workarounds/golden/BlendGuardedDivide.glsl
index 115d8d6..a704ff5 100644
--- a/tests/sksl/workarounds/golden/BlendGuardedDivide.glsl
+++ b/tests/sksl/workarounds/golden/BlendGuardedDivide.glsl
@@ -8,10 +8,8 @@
         if (delta == 0.0) {
             return (s.y * d.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         } else {
-            float _3_guarded_divide;
             float _4_n = d.x * s.y;
-            _3_guarded_divide = _4_n / (delta + 9.9999999392252903e-09);
-            delta = min(d.y, _3_guarded_divide);
+            delta = min(d.y, _4_n / (delta + 9.9999999392252903e-09));
 
             return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         }
@@ -23,30 +21,24 @@
     } else if (s.x == 0.0) {
         return d.x * (1.0 - s.y);
     } else {
-        float _5_guarded_divide;
         float _6_n = (d.y - d.x) * s.y;
-        _5_guarded_divide = _6_n / (s.x + 9.9999999392252903e-09);
-        float delta = max(0.0, d.y - _5_guarded_divide);
+        float delta = max(0.0, d.y - _6_n / (s.x + 9.9999999392252903e-09));
 
         return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
     }
 }
 float _soft_light_component(vec2 s, vec2 d) {
     if (2.0 * s.x <= s.y) {
-        float _7_guarded_divide;
         float _8_n = (d.x * d.x) * (s.y - 2.0 * s.x);
-        _7_guarded_divide = _8_n / (d.y + 9.9999999392252903e-09);
-        return (_7_guarded_divide + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
+        return (_8_n / (d.y + 9.9999999392252903e-09) + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
 
     } else if (4.0 * d.x <= d.y) {
         float DSqd = d.x * d.x;
         float DCub = DSqd * d.x;
         float DaSqd = d.y * d.y;
         float DaCub = DaSqd * d.y;
-        float _9_guarded_divide;
         float _10_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
-        _9_guarded_divide = _10_n / (DaSqd + 9.9999999392252903e-09);
-        return _9_guarded_divide;
+        return _10_n / (DaSqd + 9.9999999392252903e-09);
 
     } else {
         return ((d.x * ((s.y - 2.0 * s.x) + 1.0) + s.x) - sqrt(d.y * d.x) * (s.y - 2.0 * s.x)) - d.y * s.x;
@@ -55,16 +47,10 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_color_dodge;
-    _0_blend_color_dodge = vec4(_color_dodge_component(src.xw, dst.xw), _color_dodge_component(src.yw, dst.yw), _color_dodge_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _0_blend_color_dodge;
+    sk_FragColor = vec4(_color_dodge_component(src.xw, dst.xw), _color_dodge_component(src.yw, dst.yw), _color_dodge_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
-    vec4 _1_blend_color_burn;
-    _1_blend_color_burn = vec4(_color_burn_component(src.xw, dst.xw), _color_burn_component(src.yw, dst.yw), _color_burn_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _1_blend_color_burn;
+    sk_FragColor = vec4(_color_burn_component(src.xw, dst.xw), _color_burn_component(src.yw, dst.yw), _color_burn_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
-    vec4 _2_blend_soft_light;
-    _2_blend_soft_light = dst.w == 0.0 ? src : vec4(_soft_light_component(src.xw, dst.xw), _soft_light_component(src.yw, dst.yw), _soft_light_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _2_blend_soft_light;
+    sk_FragColor = dst.w == 0.0 ? src : vec4(_soft_light_component(src.xw, dst.xw), _soft_light_component(src.yw, dst.yw), _soft_light_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
 }
diff --git a/tests/sksl/workarounds/golden/BlendGuardedDivideStandaloneSettings.glsl b/tests/sksl/workarounds/golden/BlendGuardedDivideStandaloneSettings.glsl
index b908471..60a4fea 100644
--- a/tests/sksl/workarounds/golden/BlendGuardedDivideStandaloneSettings.glsl
+++ b/tests/sksl/workarounds/golden/BlendGuardedDivideStandaloneSettings.glsl
@@ -8,10 +8,8 @@
         if (delta == 0.0) {
             return (s.y * d.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         } else {
-            float _3_guarded_divide;
             float _4_n = d.x * s.y;
-            _3_guarded_divide = _4_n / delta;
-            delta = min(d.y, _3_guarded_divide);
+            delta = min(d.y, _4_n / delta);
 
             return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
         }
@@ -23,30 +21,24 @@
     } else if (s.x == 0.0) {
         return d.x * (1.0 - s.y);
     } else {
-        float _5_guarded_divide;
         float _6_n = (d.y - d.x) * s.y;
-        _5_guarded_divide = _6_n / s.x;
-        float delta = max(0.0, d.y - _5_guarded_divide);
+        float delta = max(0.0, d.y - _6_n / s.x);
 
         return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
     }
 }
 float _soft_light_component(vec2 s, vec2 d) {
     if (2.0 * s.x <= s.y) {
-        float _7_guarded_divide;
         float _8_n = (d.x * d.x) * (s.y - 2.0 * s.x);
-        _7_guarded_divide = _8_n / d.y;
-        return (_7_guarded_divide + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
+        return (_8_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
 
     } else if (4.0 * d.x <= d.y) {
         float DSqd = d.x * d.x;
         float DCub = DSqd * d.x;
         float DaSqd = d.y * d.y;
         float DaCub = DaSqd * d.y;
-        float _9_guarded_divide;
         float _10_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
-        _9_guarded_divide = _10_n / DaSqd;
-        return _9_guarded_divide;
+        return _10_n / DaSqd;
 
     } else {
         return ((d.x * ((s.y - 2.0 * s.x) + 1.0) + s.x) - sqrt(d.y * d.x) * (s.y - 2.0 * s.x)) - d.y * s.x;
@@ -55,16 +47,10 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_color_dodge;
-    _0_blend_color_dodge = vec4(_color_dodge_component(src.xw, dst.xw), _color_dodge_component(src.yw, dst.yw), _color_dodge_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _0_blend_color_dodge;
+    sk_FragColor = vec4(_color_dodge_component(src.xw, dst.xw), _color_dodge_component(src.yw, dst.yw), _color_dodge_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
-    vec4 _1_blend_color_burn;
-    _1_blend_color_burn = vec4(_color_burn_component(src.xw, dst.xw), _color_burn_component(src.yw, dst.yw), _color_burn_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _1_blend_color_burn;
+    sk_FragColor = vec4(_color_burn_component(src.xw, dst.xw), _color_burn_component(src.yw, dst.yw), _color_burn_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
-    vec4 _2_blend_soft_light;
-    _2_blend_soft_light = dst.w == 0.0 ? src : vec4(_soft_light_component(src.xw, dst.xw), _soft_light_component(src.yw, dst.yw), _soft_light_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
-    sk_FragColor = _2_blend_soft_light;
+    sk_FragColor = dst.w == 0.0 ? src : vec4(_soft_light_component(src.xw, dst.xw), _soft_light_component(src.yw, dst.yw), _soft_light_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
 
 }
diff --git a/tests/sksl/workarounds/golden/BlendModesAllZeroVec.glsl b/tests/sksl/workarounds/golden/BlendModesAllZeroVec.glsl
index c7ae19e..93fd796 100644
--- a/tests/sksl/workarounds/golden/BlendModesAllZeroVec.glsl
+++ b/tests/sksl/workarounds/golden/BlendModesAllZeroVec.glsl
@@ -3,15 +3,8 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_src_in;
-    _0_blend_src_in = src == vec4(0.0) ? vec4(0.0) : src * dst.w;
-    sk_FragColor = _0_blend_src_in;
+    sk_FragColor = src == vec4(0.0) ? vec4(0.0) : src * dst.w;
 
-    vec4 _1_blend_dst_in;
-    vec4 _2_blend_src_in;
-    _2_blend_src_in = dst == vec4(0.0) ? vec4(0.0) : dst * src.w;
-    _1_blend_dst_in = _2_blend_src_in;
-
-    sk_FragColor = _1_blend_dst_in;
+    sk_FragColor = dst == vec4(0.0) ? vec4(0.0) : dst * src.w;
 
 }
diff --git a/tests/sksl/workarounds/golden/BlendModesAllZeroVecStandaloneSettings.glsl b/tests/sksl/workarounds/golden/BlendModesAllZeroVecStandaloneSettings.glsl
index 347bc87..91fc4fc 100644
--- a/tests/sksl/workarounds/golden/BlendModesAllZeroVecStandaloneSettings.glsl
+++ b/tests/sksl/workarounds/golden/BlendModesAllZeroVecStandaloneSettings.glsl
@@ -3,15 +3,8 @@
 in vec4 src;
 in vec4 dst;
 void main() {
-    vec4 _0_blend_src_in;
-    _0_blend_src_in = src * dst.w;
-    sk_FragColor = _0_blend_src_in;
+    sk_FragColor = src * dst.w;
 
-    vec4 _1_blend_dst_in;
-    vec4 _2_blend_src_in;
-    _2_blend_src_in = dst * src.w;
-    _1_blend_dst_in = _2_blend_src_in;
-
-    sk_FragColor = _1_blend_dst_in;
+    sk_FragColor = dst * src.w;
 
 }