Add instruction count to the top of SkRP dumps.

At one point, the instruction count was 1:1 with the number of lines
in the dump, but labels and immutable data cost zero instructions,
so having an explicit count can be beneficial.

Change-Id: I556912e8080b81bcf246c98e37891cd22700487d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/726256
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
diff --git a/src/core/SkRuntimeEffect.cpp b/src/core/SkRuntimeEffect.cpp
index f49a9ce..f5233e0 100644
--- a/src/core/SkRuntimeEffect.cpp
+++ b/src/core/SkRuntimeEffect.cpp
@@ -225,7 +225,7 @@
             if (fRPProgram) {
                 SkDebugf("-----\n\n");
                 SkDebugfStream stream;
-                fRPProgram->dump(&stream);
+                fRPProgram->dump(&stream, /*writeInstructionCount=*/true);
                 SkDebugf("\n-----\n\n");
             } else {
                 SkDebugf("----- RP unsupported -----\n\n");
diff --git a/src/sksl/codegen/SkSLRasterPipelineBuilder.cpp b/src/sksl/codegen/SkSLRasterPipelineBuilder.cpp
index f2293b2..38e31ec 100644
--- a/src/sksl/codegen/SkSLRasterPipelineBuilder.cpp
+++ b/src/sksl/codegen/SkSLRasterPipelineBuilder.cpp
@@ -2351,7 +2351,7 @@
 public:
     Dumper(const Program& p) : fProgram(p) {}
 
-    void dump(SkWStream* out);
+    void dump(SkWStream* out, bool writeInstructionCount);
 
     // Finds the labels in the program, and keeps track of their offsets.
     void buildLabelToStageMap() {
@@ -2764,7 +2764,9 @@
     SkSpan<float> fUniforms;
 };
 
-void Program::Dumper::dump(SkWStream* out) {
+void Program::Dumper::dump(SkWStream* out, bool writeInstructionCount) {
+    using POp = ProgramOp;
+
     // Allocate memory for the slot and uniform data, even though the program won't ever be
     // executed. The program requires pointer ranges for managing its data, and ASAN will report
     // errors if those pointers are pointing at unallocated memory.
@@ -2780,6 +2782,39 @@
     this->buildLabelToStageMap();
     this->buildUniqueSlotNameList();
 
+    // Emit the program's instruction count.
+    if (writeInstructionCount) {
+        int invocationCount = 0, instructionCount = 0;
+        for (const Stage& stage : fStages) {
+            switch (stage.op) {
+                case POp::label:
+                    // consumes zero instructions
+                    break;
+
+                case POp::invoke_shader:
+                case POp::invoke_color_filter:
+                case POp::invoke_blender:
+                case POp::invoke_to_linear_srgb:
+                case POp::invoke_from_linear_srgb:
+                    ++invocationCount;
+                    break;
+
+                default:
+                    ++instructionCount;
+                    break;
+            }
+        }
+
+        out->writeText(std::to_string(instructionCount).c_str());
+        out->writeText(" instructions");
+        if (invocationCount > 0) {
+            out->writeText(", ");
+            out->writeText(std::to_string(invocationCount).c_str());
+            out->writeText(" invocations");
+        }
+        out->writeText("\n\n");
+    }
+
     // Emit all of the program's immutable data.
     const char* header = "[immutable slots]\n";
     const char* footer = "";
@@ -2803,7 +2838,6 @@
         const Stage& stage = fStages[index];
 
         std::string opArg1, opArg2, opArg3, opSwizzle;
-        using POp = ProgramOp;
         switch (stage.op) {
             case POp::label:
             case POp::invoke_shader:
@@ -3661,8 +3695,8 @@
     }
 }
 
-void Program::dump(SkWStream* out) const {
-    Dumper(*this).dump(out);
+void Program::dump(SkWStream* out, bool writeInstructionCount) const {
+    Dumper(*this).dump(out, writeInstructionCount);
 }
 
 }  // namespace SkSL::RP
diff --git a/src/sksl/codegen/SkSLRasterPipelineBuilder.h b/src/sksl/codegen/SkSLRasterPipelineBuilder.h
index fb5d4c0..7ab468c 100644
--- a/src/sksl/codegen/SkSLRasterPipelineBuilder.h
+++ b/src/sksl/codegen/SkSLRasterPipelineBuilder.h
@@ -166,7 +166,7 @@
                       Callbacks* callbacks,
                       SkSpan<const float> uniforms) const;
 
-    void dump(SkWStream* out) const;
+    void dump(SkWStream* out, bool writeInstructionCount = false) const;
 
     int numUniforms() const { return fNumUniformSlots; }
 
diff --git a/tests/sksl/folding/ArrayFolding.skrp b/tests/sksl/folding/ArrayFolding.skrp
index 5c2ffc6..c08eac1 100644
--- a/tests/sksl/folding/ArrayFolding.skrp
+++ b/tests/sksl/folding/ArrayFolding.skrp
@@ -1,3 +1,5 @@
+42 instructions
+
 [immutable slots]
 i0 = 0x00000001 (1.401298e-45)
 i1 = 0x00000003 (4.203895e-45)
diff --git a/tests/sksl/folding/ArraySizeFolding.skrp b/tests/sksl/folding/ArraySizeFolding.skrp
index 20812ef..cf1cf1f 100644
--- a/tests/sksl/folding/ArraySizeFolding.skrp
+++ b/tests/sksl/folding/ArraySizeFolding.skrp
@@ -1,3 +1,5 @@
+61 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_4_constants              f[0], f[1], f[2], g[0] = 0
diff --git a/tests/sksl/folding/AssignmentOps.skrp b/tests/sksl/folding/AssignmentOps.skrp
index 1384844..881dbd4 100644
--- a/tests/sksl/folding/AssignmentOps.skrp
+++ b/tests/sksl/folding/AssignmentOps.skrp
@@ -1,3 +1,5 @@
+75 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  ok = 0xFFFFFFFF
diff --git a/tests/sksl/folding/BoolFolding.skrp b/tests/sksl/folding/BoolFolding.skrp
index f62b731..d1a41e6 100644
--- a/tests/sksl/folding/BoolFolding.skrp
+++ b/tests/sksl/folding/BoolFolding.skrp
@@ -1,3 +1,5 @@
+8 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  $4 = 0xFFFFFFFF
diff --git a/tests/sksl/folding/CastFolding.skrp b/tests/sksl/folding/CastFolding.skrp
index c2ef94f..d57922f 100644
--- a/tests/sksl/folding/CastFolding.skrp
+++ b/tests/sksl/folding/CastFolding.skrp
@@ -1,3 +1,5 @@
+8 instructions
+
 [immutable slots]
 i0 = 0xFFFFFFFF
 
diff --git a/tests/sksl/folding/FloatFolding.skrp b/tests/sksl/folding/FloatFolding.skrp
index db5be5f..ad65916 100644
--- a/tests/sksl/folding/FloatFolding.skrp
+++ b/tests/sksl/folding/FloatFolding.skrp
@@ -1,3 +1,5 @@
+184 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   _0_unknown = unknownInput
diff --git a/tests/sksl/folding/IntFoldingES2.skrp b/tests/sksl/folding/IntFoldingES2.skrp
index 7fbb9df..88a80b7 100644
--- a/tests/sksl/folding/IntFoldingES2.skrp
+++ b/tests/sksl/folding/IntFoldingES2.skrp
@@ -1,3 +1,5 @@
+184 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $0 = unknownInput
diff --git a/tests/sksl/folding/IntFoldingES3.skrp b/tests/sksl/folding/IntFoldingES3.skrp
index 9da8d4c..2119743 100644
--- a/tests/sksl/folding/IntFoldingES3.skrp
+++ b/tests/sksl/folding/IntFoldingES3.skrp
@@ -1,3 +1,5 @@
+43 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  _0_ok = 0xFFFFFFFF
diff --git a/tests/sksl/folding/LogicalNot.skrp b/tests/sksl/folding/LogicalNot.skrp
index 28bfe91..2e45f29 100644
--- a/tests/sksl/folding/LogicalNot.skrp
+++ b/tests/sksl/folding/LogicalNot.skrp
@@ -1,3 +1,5 @@
+47 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  ok = 0xFFFFFFFF
diff --git a/tests/sksl/folding/MatrixFoldingES2.skrp b/tests/sksl/folding/MatrixFoldingES2.skrp
index 15f2cdc..3704229 100644
--- a/tests/sksl/folding/MatrixFoldingES2.skrp
+++ b/tests/sksl/folding/MatrixFoldingES2.skrp
@@ -1,3 +1,5 @@
+135 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/folding/MatrixFoldingES3.skrp b/tests/sksl/folding/MatrixFoldingES3.skrp
index e2adeb3..682e599 100644
--- a/tests/sksl/folding/MatrixFoldingES3.skrp
+++ b/tests/sksl/folding/MatrixFoldingES3.skrp
@@ -1,3 +1,5 @@
+55 instructions
+
 [immutable slots]
 i0 = 0xFFFFFFFF
 
diff --git a/tests/sksl/folding/MatrixNoOpFolding.skrp b/tests/sksl/folding/MatrixNoOpFolding.skrp
index 8375c68..b1d29a3 100644
--- a/tests/sksl/folding/MatrixNoOpFolding.skrp
+++ b/tests/sksl/folding/MatrixNoOpFolding.skrp
@@ -1,3 +1,5 @@
+190 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0
diff --git a/tests/sksl/folding/MatrixScalarNoOpFolding.skrp b/tests/sksl/folding/MatrixScalarNoOpFolding.skrp
index b8391d2..3aef838 100644
--- a/tests/sksl/folding/MatrixScalarNoOpFolding.skrp
+++ b/tests/sksl/folding/MatrixScalarNoOpFolding.skrp
@@ -1,3 +1,5 @@
+865 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0
diff --git a/tests/sksl/folding/MatrixVectorNoOpFolding.skrp b/tests/sksl/folding/MatrixVectorNoOpFolding.skrp
index 815bb84..81dc13c 100644
--- a/tests/sksl/folding/MatrixVectorNoOpFolding.skrp
+++ b/tests/sksl/folding/MatrixVectorNoOpFolding.skrp
@@ -1,3 +1,5 @@
+450 instructions
+
 [immutable slots]
 i0 = 0xBF800000 (-1.0)
 i1 = 0xBF800000 (-1.0)
diff --git a/tests/sksl/folding/Negation.skrp b/tests/sksl/folding/Negation.skrp
index 2fc5e99..778c86f 100644
--- a/tests/sksl/folding/Negation.skrp
+++ b/tests/sksl/folding/Negation.skrp
@@ -1,3 +1,5 @@
+38 instructions
+
 [immutable slots]
 i0 = 0xFFFFFFFF
 i1 = 0x00000001 (1.401298e-45)
diff --git a/tests/sksl/folding/PreserveSideEffects.skrp b/tests/sksl/folding/PreserveSideEffects.skrp
index 537ce26..db2b86d 100644
--- a/tests/sksl/folding/PreserveSideEffects.skrp
+++ b/tests/sksl/folding/PreserveSideEffects.skrp
@@ -1,3 +1,5 @@
+397 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0
diff --git a/tests/sksl/folding/SelfAssignment.skrp b/tests/sksl/folding/SelfAssignment.skrp
index b669c1b..89578dc 100644
--- a/tests/sksl/folding/SelfAssignment.skrp
+++ b/tests/sksl/folding/SelfAssignment.skrp
@@ -1,3 +1,5 @@
+21 instructions
+
 [immutable slots]
 i0 = 0x40400000 (3.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/folding/ShortCircuitBoolFolding.skrp b/tests/sksl/folding/ShortCircuitBoolFolding.skrp
index 711c72c..83c97d3 100644
--- a/tests/sksl/folding/ShortCircuitBoolFolding.skrp
+++ b/tests/sksl/folding/ShortCircuitBoolFolding.skrp
@@ -1,3 +1,5 @@
+238 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  $0 = 0
diff --git a/tests/sksl/folding/StructFieldFolding.skrp b/tests/sksl/folding/StructFieldFolding.skrp
index 7a99595..460c46c 100644
--- a/tests/sksl/folding/StructFieldFolding.skrp
+++ b/tests/sksl/folding/StructFieldFolding.skrp
@@ -1,3 +1,5 @@
+9 instructions
+
 [immutable slots]
 i0 = 0x00000002 (2.802597e-45)
 
diff --git a/tests/sksl/folding/StructFieldNoFolding.skrp b/tests/sksl/folding/StructFieldNoFolding.skrp
index 2b1e2ed..c6fba10 100644
--- a/tests/sksl/folding/StructFieldNoFolding.skrp
+++ b/tests/sksl/folding/StructFieldNoFolding.skrp
@@ -1,3 +1,5 @@
+50 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  numSideEffects = 0
diff --git a/tests/sksl/folding/SwitchCaseFolding.skrp b/tests/sksl/folding/SwitchCaseFolding.skrp
index 8487aae..b395a7e 100644
--- a/tests/sksl/folding/SwitchCaseFolding.skrp
+++ b/tests/sksl/folding/SwitchCaseFolding.skrp
@@ -1,3 +1,5 @@
+41 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_4_uniforms                color = colorRed
diff --git a/tests/sksl/folding/SwizzleFolding.skrp b/tests/sksl/folding/SwizzleFolding.skrp
index ddcefb0..2ac531c 100644
--- a/tests/sksl/folding/SwizzleFolding.skrp
+++ b/tests/sksl/folding/SwizzleFolding.skrp
@@ -1,3 +1,5 @@
+16 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  _2_ok = 0xFFFFFFFF
diff --git a/tests/sksl/folding/TernaryFolding.skrp b/tests/sksl/folding/TernaryFolding.skrp
index 81c123d..13d9f83 100644
--- a/tests/sksl/folding/TernaryFolding.skrp
+++ b/tests/sksl/folding/TernaryFolding.skrp
@@ -1,3 +1,5 @@
+19 instructions
+
 [immutable slots]
 i0 = 0xFFFFFFFF
 
diff --git a/tests/sksl/folding/VectorScalarFolding.skrp b/tests/sksl/folding/VectorScalarFolding.skrp
index aed8b78..5e77d05 100644
--- a/tests/sksl/folding/VectorScalarFolding.skrp
+++ b/tests/sksl/folding/VectorScalarFolding.skrp
@@ -1,3 +1,5 @@
+685 instructions
+
 [immutable slots]
 i0 = 0x40C00000 (6.0)
 i1 = 0x40C00000 (6.0)
diff --git a/tests/sksl/folding/VectorVectorFolding.skrp b/tests/sksl/folding/VectorVectorFolding.skrp
index 2f75f7d..1a6ea31 100644
--- a/tests/sksl/folding/VectorVectorFolding.skrp
+++ b/tests/sksl/folding/VectorVectorFolding.skrp
@@ -1,3 +1,5 @@
+134 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   _0_unknown = unknownInput
diff --git a/tests/sksl/intrinsics/AbsFloat.skrp b/tests/sksl/intrinsics/AbsFloat.skrp
index 10ad13c..93fb319 100644
--- a/tests/sksl/intrinsics/AbsFloat.skrp
+++ b/tests/sksl/intrinsics/AbsFloat.skrp
@@ -1,3 +1,5 @@
+50 instructions
+
 [immutable slots]
 i0 = 0x3FA00000 (1.25)
 i1 = 0
diff --git a/tests/sksl/intrinsics/AbsInt.skrp b/tests/sksl/intrinsics/AbsInt.skrp
index bfee9ed..97dad23 100644
--- a/tests/sksl/intrinsics/AbsInt.skrp
+++ b/tests/sksl/intrinsics/AbsInt.skrp
@@ -1,3 +1,5 @@
+54 instructions
+
 [immutable slots]
 i0 = 0x00000001 (1.401298e-45)
 i1 = 0
diff --git a/tests/sksl/intrinsics/Acos.skrp b/tests/sksl/intrinsics/Acos.skrp
index 591e1f8..09ae96d 100644
--- a/tests/sksl/intrinsics/Acos.skrp
+++ b/tests/sksl/intrinsics/Acos.skrp
@@ -1,3 +1,5 @@
+57 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $4 = inputVal(0)
diff --git a/tests/sksl/intrinsics/All.skrp b/tests/sksl/intrinsics/All.skrp
index a90ae55..ad05f69 100644
--- a/tests/sksl/intrinsics/All.skrp
+++ b/tests/sksl/intrinsics/All.skrp
@@ -1,3 +1,5 @@
+41 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_4_uniforms                $0..3 = colorRed
diff --git a/tests/sksl/intrinsics/Any.skrp b/tests/sksl/intrinsics/Any.skrp
index a4e705a..9a93c9b 100644
--- a/tests/sksl/intrinsics/Any.skrp
+++ b/tests/sksl/intrinsics/Any.skrp
@@ -1,3 +1,5 @@
+40 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_4_uniforms                $0..3 = colorGreen
diff --git a/tests/sksl/intrinsics/Asin.skrp b/tests/sksl/intrinsics/Asin.skrp
index 00a1f8f..bbf8442 100644
--- a/tests/sksl/intrinsics/Asin.skrp
+++ b/tests/sksl/intrinsics/Asin.skrp
@@ -1,3 +1,5 @@
+57 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $4 = inputVal(0)
diff --git a/tests/sksl/intrinsics/Atan.skrp b/tests/sksl/intrinsics/Atan.skrp
index b94b665..c049b2d 100644
--- a/tests/sksl/intrinsics/Atan.skrp
+++ b/tests/sksl/intrinsics/Atan.skrp
@@ -1,3 +1,5 @@
+106 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/intrinsics/Ceil.skrp b/tests/sksl/intrinsics/Ceil.skrp
index f6bc887..fbff58e 100644
--- a/tests/sksl/intrinsics/Ceil.skrp
+++ b/tests/sksl/intrinsics/Ceil.skrp
@@ -1,3 +1,5 @@
+50 instructions
+
 [immutable slots]
 i0 = 0xBF800000 (-1.0)
 i1 = 0
diff --git a/tests/sksl/intrinsics/ClampFloat.skrp b/tests/sksl/intrinsics/ClampFloat.skrp
index db4eed0..827ff54 100644
--- a/tests/sksl/intrinsics/ClampFloat.skrp
+++ b/tests/sksl/intrinsics/ClampFloat.skrp
@@ -1,3 +1,5 @@
+114 instructions
+
 [immutable slots]
 i0 = 0xBF800000 (-1.0)
 i1 = 0
diff --git a/tests/sksl/intrinsics/ClampInt.skrp b/tests/sksl/intrinsics/ClampInt.skrp
index ac42481..7fce499 100644
--- a/tests/sksl/intrinsics/ClampInt.skrp
+++ b/tests/sksl/intrinsics/ClampInt.skrp
@@ -1,3 +1,5 @@
+123 instructions
+
 [immutable slots]
 i0 = 0xFFFFFF9C
 i1 = 0
diff --git a/tests/sksl/intrinsics/ClampUInt.skrp b/tests/sksl/intrinsics/ClampUInt.skrp
index dfdce33..1368e48 100644
--- a/tests/sksl/intrinsics/ClampUInt.skrp
+++ b/tests/sksl/intrinsics/ClampUInt.skrp
@@ -1,3 +1,5 @@
+125 instructions
+
 [immutable slots]
 i0 = 0x00000064 (1.401298e-43)
 i1 = 0x000000C8 (2.802597e-43)
diff --git a/tests/sksl/intrinsics/Cos.skrp b/tests/sksl/intrinsics/Cos.skrp
index efc71f6..e31ac92 100644
--- a/tests/sksl/intrinsics/Cos.skrp
+++ b/tests/sksl/intrinsics/Cos.skrp
@@ -1,3 +1,5 @@
+57 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $4 = inputVal(0)
diff --git a/tests/sksl/intrinsics/Cross.skrp b/tests/sksl/intrinsics/Cross.skrp
index 76926e7..eae718c 100644
--- a/tests/sksl/intrinsics/Cross.skrp
+++ b/tests/sksl/intrinsics/Cross.skrp
@@ -1,3 +1,5 @@
+40 instructions
+
 [immutable slots]
 i0 = 0xC0400000 (-3.0)
 i1 = 0x40C00000 (6.0)
diff --git a/tests/sksl/intrinsics/Degrees.skrp b/tests/sksl/intrinsics/Degrees.skrp
index d94f572..e7358ae 100644
--- a/tests/sksl/intrinsics/Degrees.skrp
+++ b/tests/sksl/intrinsics/Degrees.skrp
@@ -1,3 +1,5 @@
+44 instructions
+
 [immutable slots]
 i0 = 0xC28F3D4D (-71.61973)
 i1 = 0
diff --git a/tests/sksl/intrinsics/Distance.skrp b/tests/sksl/intrinsics/Distance.skrp
index e4caaae..5f9ee6d 100644
--- a/tests/sksl/intrinsics/Distance.skrp
+++ b/tests/sksl/intrinsics/Distance.skrp
@@ -1,3 +1,5 @@
+48 instructions
+
 [immutable slots]
 i0 = 0x40400000 (3.0)
 i1 = 0x40400000 (3.0)
diff --git a/tests/sksl/intrinsics/Dot.skrp b/tests/sksl/intrinsics/Dot.skrp
index f278590..e92567e 100644
--- a/tests/sksl/intrinsics/Dot.skrp
+++ b/tests/sksl/intrinsics/Dot.skrp
@@ -1,3 +1,5 @@
+40 instructions
+
 [immutable slots]
 i0 = 0x40A00000 (5.0)
 i1 = 0x41880000 (17.0)
diff --git a/tests/sksl/intrinsics/Exp.skrp b/tests/sksl/intrinsics/Exp.skrp
index 319a246..0967373 100644
--- a/tests/sksl/intrinsics/Exp.skrp
+++ b/tests/sksl/intrinsics/Exp.skrp
@@ -1,3 +1,5 @@
+57 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $4 = inputVal(0)
diff --git a/tests/sksl/intrinsics/Exp2.skrp b/tests/sksl/intrinsics/Exp2.skrp
index f50403d..5d93090 100644
--- a/tests/sksl/intrinsics/Exp2.skrp
+++ b/tests/sksl/intrinsics/Exp2.skrp
@@ -1,3 +1,5 @@
+57 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/intrinsics/FaceForward.skrp b/tests/sksl/intrinsics/FaceForward.skrp
index 8b3b2e4..c1201bf 100644
--- a/tests/sksl/intrinsics/FaceForward.skrp
+++ b/tests/sksl/intrinsics/FaceForward.skrp
@@ -1,3 +1,5 @@
+77 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/intrinsics/FloatBitsToInt.skrp b/tests/sksl/intrinsics/FloatBitsToInt.skrp
index 8061748..7238596 100644
--- a/tests/sksl/intrinsics/FloatBitsToInt.skrp
+++ b/tests/sksl/intrinsics/FloatBitsToInt.skrp
@@ -1,3 +1,5 @@
+30 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/intrinsics/FloatBitsToUint.skrp b/tests/sksl/intrinsics/FloatBitsToUint.skrp
index 8061748..7238596 100644
--- a/tests/sksl/intrinsics/FloatBitsToUint.skrp
+++ b/tests/sksl/intrinsics/FloatBitsToUint.skrp
@@ -1,3 +1,5 @@
+30 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/intrinsics/Floor.skrp b/tests/sksl/intrinsics/Floor.skrp
index d9cf5e3..54312aa 100644
--- a/tests/sksl/intrinsics/Floor.skrp
+++ b/tests/sksl/intrinsics/Floor.skrp
@@ -1,3 +1,5 @@
+50 instructions
+
 [immutable slots]
 i0 = 0xC0000000 (-2.0)
 i1 = 0
diff --git a/tests/sksl/intrinsics/Fract.skrp b/tests/sksl/intrinsics/Fract.skrp
index 51a71dc..3eee4f4 100644
--- a/tests/sksl/intrinsics/Fract.skrp
+++ b/tests/sksl/intrinsics/Fract.skrp
@@ -1,3 +1,5 @@
+38 instructions
+
 [immutable slots]
 i0 = 0x3F400000 (0.75)
 i1 = 0
diff --git a/tests/sksl/intrinsics/IntBitsToFloat.skrp b/tests/sksl/intrinsics/IntBitsToFloat.skrp
index 2c46a26..208fc96 100644
--- a/tests/sksl/intrinsics/IntBitsToFloat.skrp
+++ b/tests/sksl/intrinsics/IntBitsToFloat.skrp
@@ -1,3 +1,5 @@
+30 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/intrinsics/Inverse.skrp b/tests/sksl/intrinsics/Inverse.skrp
index 8c98ea2..65827ad 100644
--- a/tests/sksl/intrinsics/Inverse.skrp
+++ b/tests/sksl/intrinsics/Inverse.skrp
@@ -1,3 +1,5 @@
+52 instructions
+
 [immutable slots]
 i0 = 0xC0000000 (-2.0)
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/intrinsics/Inversesqrt.skrp b/tests/sksl/intrinsics/Inversesqrt.skrp
index 6253fba..4716cba 100644
--- a/tests/sksl/intrinsics/Inversesqrt.skrp
+++ b/tests/sksl/intrinsics/Inversesqrt.skrp
@@ -1,3 +1,5 @@
+76 instructions
+
 [immutable slots]
 i0 = 0xBF800000 (-1.0)
 i1 = 0xC0800000 (-4.0)
diff --git a/tests/sksl/intrinsics/Length.skrp b/tests/sksl/intrinsics/Length.skrp
index b9dc5c1..bb186a4 100644
--- a/tests/sksl/intrinsics/Length.skrp
+++ b/tests/sksl/intrinsics/Length.skrp
@@ -1,3 +1,5 @@
+60 instructions
+
 [immutable slots]
 i0 = 0x40000000 (2.0)
 i1 = 0xC0000000 (-2.0)
diff --git a/tests/sksl/intrinsics/Log.skrp b/tests/sksl/intrinsics/Log.skrp
index 36d9271..b8daa14 100644
--- a/tests/sksl/intrinsics/Log.skrp
+++ b/tests/sksl/intrinsics/Log.skrp
@@ -1,3 +1,5 @@
+57 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $4 = inputVal(0)
diff --git a/tests/sksl/intrinsics/Log2.skrp b/tests/sksl/intrinsics/Log2.skrp
index 6edec79..bdc6d95 100644
--- a/tests/sksl/intrinsics/Log2.skrp
+++ b/tests/sksl/intrinsics/Log2.skrp
@@ -1,3 +1,5 @@
+57 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/intrinsics/MatrixCompMultES2.skrp b/tests/sksl/intrinsics/MatrixCompMultES2.skrp
index e8b510a..daf6da8 100644
--- a/tests/sksl/intrinsics/MatrixCompMultES2.skrp
+++ b/tests/sksl/intrinsics/MatrixCompMultES2.skrp
@@ -1,3 +1,5 @@
+46 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x40A00000 (5.0)
diff --git a/tests/sksl/intrinsics/MatrixCompMultES3.skrp b/tests/sksl/intrinsics/MatrixCompMultES3.skrp
index 01f8cf5..a51acd8 100644
--- a/tests/sksl/intrinsics/MatrixCompMultES3.skrp
+++ b/tests/sksl/intrinsics/MatrixCompMultES3.skrp
@@ -1,3 +1,5 @@
+50 instructions
+
 [immutable slots]
 i0 = 0x41100000 (9.0)
 i1 = 0x41100000 (9.0)
diff --git a/tests/sksl/intrinsics/MaxFloat.skrp b/tests/sksl/intrinsics/MaxFloat.skrp
index ad5c7c2..6146dce 100644
--- a/tests/sksl/intrinsics/MaxFloat.skrp
+++ b/tests/sksl/intrinsics/MaxFloat.skrp
@@ -1,3 +1,5 @@
+101 instructions
+
 [immutable slots]
 i0 = 0x3F000000 (0.5)
 i1 = 0x3F000000 (0.5)
diff --git a/tests/sksl/intrinsics/MaxInt.skrp b/tests/sksl/intrinsics/MaxInt.skrp
index 723cda7..5759faa 100644
--- a/tests/sksl/intrinsics/MaxInt.skrp
+++ b/tests/sksl/intrinsics/MaxInt.skrp
@@ -1,3 +1,5 @@
+112 instructions
+
 [immutable slots]
 i0 = 0x00000032 (7.006492e-44)
 i1 = 0x00000032 (7.006492e-44)
diff --git a/tests/sksl/intrinsics/MaxUint.skrp b/tests/sksl/intrinsics/MaxUint.skrp
index e8ac2ae..68fa6d0 100644
--- a/tests/sksl/intrinsics/MaxUint.skrp
+++ b/tests/sksl/intrinsics/MaxUint.skrp
@@ -1,3 +1,5 @@
+113 instructions
+
 [immutable slots]
 i0 = 0x0000007D (1.751623e-43)
 i1 = 0x00000050 (1.121039e-43)
diff --git a/tests/sksl/intrinsics/MinFloat.skrp b/tests/sksl/intrinsics/MinFloat.skrp
index 371dea5..e14d940 100644
--- a/tests/sksl/intrinsics/MinFloat.skrp
+++ b/tests/sksl/intrinsics/MinFloat.skrp
@@ -1,3 +1,5 @@
+101 instructions
+
 [immutable slots]
 i0 = 0xBFA00000 (-1.25)
 i1 = 0
diff --git a/tests/sksl/intrinsics/MinInt.skrp b/tests/sksl/intrinsics/MinInt.skrp
index cbd2cbc..a9d7ac1 100644
--- a/tests/sksl/intrinsics/MinInt.skrp
+++ b/tests/sksl/intrinsics/MinInt.skrp
@@ -1,3 +1,5 @@
+112 instructions
+
 [immutable slots]
 i0 = 0xFFFFFF83
 i1 = 0
diff --git a/tests/sksl/intrinsics/MinUint.skrp b/tests/sksl/intrinsics/MinUint.skrp
index 023c0ba..30282c4 100644
--- a/tests/sksl/intrinsics/MinUint.skrp
+++ b/tests/sksl/intrinsics/MinUint.skrp
@@ -1,3 +1,5 @@
+113 instructions
+
 [immutable slots]
 i0 = 0x00000032 (7.006492e-44)
 i1 = 0
diff --git a/tests/sksl/intrinsics/MixFloatES2.skrp b/tests/sksl/intrinsics/MixFloatES2.skrp
index c201d6a..2dc84c8 100644
--- a/tests/sksl/intrinsics/MixFloatES2.skrp
+++ b/tests/sksl/intrinsics/MixFloatES2.skrp
@@ -1,3 +1,5 @@
+146 instructions
+
 [immutable slots]
 i0 = 0x3F000000 (0.5)
 i1 = 0x3F000000 (0.5)
diff --git a/tests/sksl/intrinsics/MixFloatES3.skrp b/tests/sksl/intrinsics/MixFloatES3.skrp
index 97efcfd..00da48e 100644
--- a/tests/sksl/intrinsics/MixFloatES3.skrp
+++ b/tests/sksl/intrinsics/MixFloatES3.skrp
@@ -1,3 +1,5 @@
+90 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_4_uniforms                $0..3 = colorGreen
diff --git a/tests/sksl/intrinsics/Mod.skrp b/tests/sksl/intrinsics/Mod.skrp
index 30fd06b..99e236e 100644
--- a/tests/sksl/intrinsics/Mod.skrp
+++ b/tests/sksl/intrinsics/Mod.skrp
@@ -1,3 +1,5 @@
+102 instructions
+
 [immutable slots]
 i0 = 0x3F400000 (0.75)
 i1 = 0
diff --git a/tests/sksl/intrinsics/Normalize.skrp b/tests/sksl/intrinsics/Normalize.skrp
index 75ff957..a481a8b 100644
--- a/tests/sksl/intrinsics/Normalize.skrp
+++ b/tests/sksl/intrinsics/Normalize.skrp
@@ -1,3 +1,5 @@
+69 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0
diff --git a/tests/sksl/intrinsics/Not.skrp b/tests/sksl/intrinsics/Not.skrp
index 53dd570..7e979be 100644
--- a/tests/sksl/intrinsics/Not.skrp
+++ b/tests/sksl/intrinsics/Not.skrp
@@ -1,3 +1,5 @@
+50 instructions
+
 [immutable slots]
 i0 = 0xFFFFFFFF
 i1 = 0
diff --git a/tests/sksl/intrinsics/Pow.skrp b/tests/sksl/intrinsics/Pow.skrp
index e38c17e..dc2b9bd 100644
--- a/tests/sksl/intrinsics/Pow.skrp
+++ b/tests/sksl/intrinsics/Pow.skrp
@@ -1,3 +1,5 @@
+54 instructions
+
 [immutable slots]
 i0 = 0xBFC80000 (-1.5625)
 i1 = 0
diff --git a/tests/sksl/intrinsics/Radians.skrp b/tests/sksl/intrinsics/Radians.skrp
index eebf3a8..60c4548 100644
--- a/tests/sksl/intrinsics/Radians.skrp
+++ b/tests/sksl/intrinsics/Radians.skrp
@@ -1,3 +1,5 @@
+44 instructions
+
 [immutable slots]
 i0 = 0xBCB2B8C2 (-0.021816615)
 i1 = 0
diff --git a/tests/sksl/intrinsics/Reflect.skrp b/tests/sksl/intrinsics/Reflect.skrp
index 0b53b81..487b762 100644
--- a/tests/sksl/intrinsics/Reflect.skrp
+++ b/tests/sksl/intrinsics/Reflect.skrp
@@ -1,3 +1,5 @@
+75 instructions
+
 [immutable slots]
 i0 = 0xC2440000 (-49.0)
 i1 = 0xC3290000 (-169.0)
diff --git a/tests/sksl/intrinsics/Refract.skrp b/tests/sksl/intrinsics/Refract.skrp
index 785a0ce..45bb100 100644
--- a/tests/sksl/intrinsics/Refract.skrp
+++ b/tests/sksl/intrinsics/Refract.skrp
@@ -1,3 +1,5 @@
+20 instructions
+
 [immutable slots]
 i0 = 0x3F000000 (0.5)
 i1 = 0xBF5DB3D7 (-0.8660254)
diff --git a/tests/sksl/intrinsics/Saturate.skrp b/tests/sksl/intrinsics/Saturate.skrp
index 77d1d76..b773385 100644
--- a/tests/sksl/intrinsics/Saturate.skrp
+++ b/tests/sksl/intrinsics/Saturate.skrp
@@ -1,3 +1,5 @@
+60 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0
diff --git a/tests/sksl/intrinsics/SignFloat.skrp b/tests/sksl/intrinsics/SignFloat.skrp
index 181c158..f1713e9 100644
--- a/tests/sksl/intrinsics/SignFloat.skrp
+++ b/tests/sksl/intrinsics/SignFloat.skrp
@@ -1,3 +1,5 @@
+67 instructions
+
 [immutable slots]
 i0 = 0xBF800000 (-1.0)
 i1 = 0
diff --git a/tests/sksl/intrinsics/SignInt.skrp b/tests/sksl/intrinsics/SignInt.skrp
index ddcbd71..376a99f 100644
--- a/tests/sksl/intrinsics/SignInt.skrp
+++ b/tests/sksl/intrinsics/SignInt.skrp
@@ -1,3 +1,5 @@
+66 instructions
+
 [immutable slots]
 i0 = 0xFFFFFFFF
 i1 = 0
diff --git a/tests/sksl/intrinsics/Sin.skrp b/tests/sksl/intrinsics/Sin.skrp
index 2fc9aea..9d44a53 100644
--- a/tests/sksl/intrinsics/Sin.skrp
+++ b/tests/sksl/intrinsics/Sin.skrp
@@ -1,3 +1,5 @@
+57 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $4 = inputVal(0)
diff --git a/tests/sksl/intrinsics/Smoothstep.skrp b/tests/sksl/intrinsics/Smoothstep.skrp
index 1295801..2258b5d 100644
--- a/tests/sksl/intrinsics/Smoothstep.skrp
+++ b/tests/sksl/intrinsics/Smoothstep.skrp
@@ -1,3 +1,5 @@
+136 instructions
+
 [immutable slots]
 i0 = 0xBFA00000 (-1.25)
 i1 = 0
diff --git a/tests/sksl/intrinsics/Sqrt.skrp b/tests/sksl/intrinsics/Sqrt.skrp
index 2f297e2..cce2021 100644
--- a/tests/sksl/intrinsics/Sqrt.skrp
+++ b/tests/sksl/intrinsics/Sqrt.skrp
@@ -1,3 +1,5 @@
+57 instructions
+
 [immutable slots]
 i0 = 0xBF800000 (-1.0)
 i1 = 0xC0800000 (-4.0)
diff --git a/tests/sksl/intrinsics/Step.skrp b/tests/sksl/intrinsics/Step.skrp
index 419577d..c06e438 100644
--- a/tests/sksl/intrinsics/Step.skrp
+++ b/tests/sksl/intrinsics/Step.skrp
@@ -1,3 +1,5 @@
+161 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/intrinsics/Tan.skrp b/tests/sksl/intrinsics/Tan.skrp
index 33214e1..b93a324 100644
--- a/tests/sksl/intrinsics/Tan.skrp
+++ b/tests/sksl/intrinsics/Tan.skrp
@@ -1,3 +1,5 @@
+57 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $4 = inputVal(0)
diff --git a/tests/sksl/intrinsics/Transpose.skrp b/tests/sksl/intrinsics/Transpose.skrp
index 6f83f9b..5503528 100644
--- a/tests/sksl/intrinsics/Transpose.skrp
+++ b/tests/sksl/intrinsics/Transpose.skrp
@@ -1,3 +1,5 @@
+36 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/intrinsics/Trunc.skrp b/tests/sksl/intrinsics/Trunc.skrp
index e4a9e24..8319d35 100644
--- a/tests/sksl/intrinsics/Trunc.skrp
+++ b/tests/sksl/intrinsics/Trunc.skrp
@@ -1,3 +1,5 @@
+34 instructions
+
 [immutable slots]
 i0 = 0xBF800000 (-1.0)
 i1 = 0
diff --git a/tests/sksl/intrinsics/UintBitsToFloat.skrp b/tests/sksl/intrinsics/UintBitsToFloat.skrp
index 2c46a26..208fc96 100644
--- a/tests/sksl/intrinsics/UintBitsToFloat.skrp
+++ b/tests/sksl/intrinsics/UintBitsToFloat.skrp
@@ -1,3 +1,5 @@
+30 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/realistic/BlueNeurons.skrp b/tests/sksl/realistic/BlueNeurons.skrp
index de94eff..cea2113 100644
--- a/tests/sksl/realistic/BlueNeurons.skrp
+++ b/tests/sksl/realistic/BlueNeurons.skrp
@@ -1,3 +1,5 @@
+68 instructions
+
 [immutable slots]
 i0 = 0x40000000 (2.0)
 i1 = 0x40A00000 (5.0)
diff --git a/tests/sksl/realistic/HSLColorFilter.skrp b/tests/sksl/realistic/HSLColorFilter.skrp
index feb5bcd..6033077 100644
--- a/tests/sksl/realistic/HSLColorFilter.skrp
+++ b/tests/sksl/realistic/HSLColorFilter.skrp
@@ -1,3 +1,5 @@
+41 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x3F2AAAAB (0.6666667)
diff --git a/tests/sksl/realistic/HighContrastFilter.skrp b/tests/sksl/realistic/HighContrastFilter.skrp
index f685b30..7e91e7a 100644
--- a/tests/sksl/realistic/HighContrastFilter.skrp
+++ b/tests/sksl/realistic/HighContrastFilter.skrp
@@ -1,3 +1,5 @@
+168 instructions
+
 [immutable slots]
 i0 = 0x3E59B3D0 (0.2126)
 i1 = 0x3F371759 (0.7152)
diff --git a/tests/sksl/realistic/RippleShader.skrp b/tests/sksl/realistic/RippleShader.skrp
index 1074ffb..6edabdf 100644
--- a/tests/sksl/realistic/RippleShader.skrp
+++ b/tests/sksl/realistic/RippleShader.skrp
@@ -1,3 +1,5 @@
+498 instructions, 1 invocations
+
 [immutable slots]
 i0 = 0x40490FDB (3.14159274)
 i1 = 0x3F4CCCCD (0.8)
diff --git a/tests/sksl/runtime/AllowNarrowingConversions.skrp b/tests/sksl/runtime/AllowNarrowingConversions.skrp
index b83ebb7..ea03f1d 100644
--- a/tests/sksl/runtime/AllowNarrowingConversions.skrp
+++ b/tests/sksl/runtime/AllowNarrowingConversions.skrp
@@ -1,3 +1,5 @@
+9 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/runtime/ArrayIndexing.skrp b/tests/sksl/runtime/ArrayIndexing.skrp
index 726d15e..8410463 100644
--- a/tests/sksl/runtime/ArrayIndexing.skrp
+++ b/tests/sksl/runtime/ArrayIndexing.skrp
@@ -1,3 +1,5 @@
+190 instructions
+
 store_device_xy01              $12..15 = DeviceCoords.xy01
 splat_2_constants              $14..15 = 0x3F000000 (0.5)
 cmpeq_2_floats                 $12..13 = equal($12..13, $14..15)
diff --git a/tests/sksl/runtime/ArrayNarrowingConversions.skrp b/tests/sksl/runtime/ArrayNarrowingConversions.skrp
index 02e2518..01c59d2 100644
--- a/tests/sksl/runtime/ArrayNarrowingConversions.skrp
+++ b/tests/sksl/runtime/ArrayNarrowingConversions.skrp
@@ -1,3 +1,5 @@
+38 instructions
+
 [immutable slots]
 i0 = 0x00000001 (1.401298e-45)
 i1 = 0x00000002 (2.802597e-45)
diff --git a/tests/sksl/runtime/Blend.skrp b/tests/sksl/runtime/Blend.skrp
index e91563d..3406c86 100644
--- a/tests/sksl/runtime/Blend.skrp
+++ b/tests/sksl/runtime/Blend.skrp
@@ -1,3 +1,5 @@
+14 instructions
+
 store_src                      src = src.rgba
 store_dst                      dst = dst.rgba
 init_lane_masks                CondMask = LoopMask = RetMask = true
diff --git a/tests/sksl/runtime/ChildEffects.skrp b/tests/sksl/runtime/ChildEffects.skrp
index c2be937..7ab3ae4 100644
--- a/tests/sksl/runtime/ChildEffects.skrp
+++ b/tests/sksl/runtime/ChildEffects.skrp
@@ -1,3 +1,5 @@
+10 instructions, 5 invocations
+
 store_src_rg                   xy = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_2_slots_unmasked          $0..1 = xy
diff --git a/tests/sksl/runtime/ColorConversion.skrp b/tests/sksl/runtime/ColorConversion.skrp
index 61b2f82..b1e57d2 100644
--- a/tests/sksl/runtime/ColorConversion.skrp
+++ b/tests/sksl/runtime/ColorConversion.skrp
@@ -1,3 +1,5 @@
+16 instructions, 3 invocations
+
 store_src_rg                   xy = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_2_slots_unmasked          $0..1 = xy
diff --git a/tests/sksl/runtime/Commutative.skrp b/tests/sksl/runtime/Commutative.skrp
index 16c3247..830d88a 100644
--- a/tests/sksl/runtime/Commutative.skrp
+++ b/tests/sksl/runtime/Commutative.skrp
@@ -1,3 +1,5 @@
+211 instructions
+
 store_device_xy01              $13..16 = DeviceCoords.xy01
 splat_2_constants              $15..16 = 0x3F000000 (0.5)
 cmpeq_2_floats                 $13..14 = equal($13..14, $15..16)
diff --git a/tests/sksl/runtime/ConstPreservation.skrp b/tests/sksl/runtime/ConstPreservation.skrp
index 273725a..b507ba4 100644
--- a/tests/sksl/runtime/ConstPreservation.skrp
+++ b/tests/sksl/runtime/ConstPreservation.skrp
@@ -1,3 +1,5 @@
+10 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/runtime/ConversionConstructors.skrp b/tests/sksl/runtime/ConversionConstructors.skrp
index 98db2e4..a4efeeb 100644
--- a/tests/sksl/runtime/ConversionConstructors.skrp
+++ b/tests/sksl/runtime/ConversionConstructors.skrp
@@ -1,3 +1,5 @@
+26 instructions
+
 store_src_rg                   xy = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_3_constants              f, i, b = 0
diff --git a/tests/sksl/runtime/DivideByZero.skrp b/tests/sksl/runtime/DivideByZero.skrp
index fede0b9..2f9cdf9 100644
--- a/tests/sksl/runtime/DivideByZero.skrp
+++ b/tests/sksl/runtime/DivideByZero.skrp
@@ -1,3 +1,5 @@
+21 instructions
+
 store_src_rg                   xy = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $0 = colorGreen(1)
diff --git a/tests/sksl/runtime/GLSLTypeNames.skrp b/tests/sksl/runtime/GLSLTypeNames.skrp
index 5330dca..34168e4 100644
--- a/tests/sksl/runtime/GLSLTypeNames.skrp
+++ b/tests/sksl/runtime/GLSLTypeNames.skrp
@@ -1,3 +1,5 @@
+7 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  f = 0
diff --git a/tests/sksl/runtime/GlobalVariables.skrp b/tests/sksl/runtime/GlobalVariables.skrp
index 46c0786..b87f33b 100644
--- a/tests/sksl/runtime/GlobalVariables.skrp
+++ b/tests/sksl/runtime/GlobalVariables.skrp
@@ -1,3 +1,5 @@
+39 instructions
+
 store_device_xy01              $3..6 = DeviceCoords.xy01
 splat_2_constants              $5..6 = 0x3F000000 (0.5)
 cmpeq_2_floats                 $3..4 = equal($3..4, $5..6)
diff --git a/tests/sksl/runtime/LargeProgram_BlocklessLoops.skrp b/tests/sksl/runtime/LargeProgram_BlocklessLoops.skrp
index 2322c25..c3bdc5a 100644
--- a/tests/sksl/runtime/LargeProgram_BlocklessLoops.skrp
+++ b/tests/sksl/runtime/LargeProgram_BlocklessLoops.skrp
@@ -1,3 +1,5 @@
+29 instructions
+
 store_src_rg                   xy = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_2_constants              i, a = 0
diff --git a/tests/sksl/runtime/LargeProgram_FlatLoop.skrp b/tests/sksl/runtime/LargeProgram_FlatLoop.skrp
index cdc8abb..13e7443 100644
--- a/tests/sksl/runtime/LargeProgram_FlatLoop.skrp
+++ b/tests/sksl/runtime/LargeProgram_FlatLoop.skrp
@@ -1,3 +1,5 @@
+500 instructions
+
 store_src_rg                   xy = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_2_constants              i, a = 0
diff --git a/tests/sksl/runtime/LargeProgram_Functions.skrp b/tests/sksl/runtime/LargeProgram_Functions.skrp
index 1c1a3a2..a1b0a0a 100644
--- a/tests/sksl/runtime/LargeProgram_Functions.skrp
+++ b/tests/sksl/runtime/LargeProgram_Functions.skrp
@@ -1,3 +1,5 @@
+12253 instructions
+
 store_src_rg                   xy = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  i = 0
diff --git a/tests/sksl/runtime/LargeProgram_NestedLoops.skrp b/tests/sksl/runtime/LargeProgram_NestedLoops.skrp
index 2322c25..c3bdc5a 100644
--- a/tests/sksl/runtime/LargeProgram_NestedLoops.skrp
+++ b/tests/sksl/runtime/LargeProgram_NestedLoops.skrp
@@ -1,3 +1,5 @@
+29 instructions
+
 store_src_rg                   xy = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_2_constants              i, a = 0
diff --git a/tests/sksl/runtime/LargeProgram_SplitLoops.skrp b/tests/sksl/runtime/LargeProgram_SplitLoops.skrp
index 7f33c17..d04f10e 100644
--- a/tests/sksl/runtime/LargeProgram_SplitLoops.skrp
+++ b/tests/sksl/runtime/LargeProgram_SplitLoops.skrp
@@ -1,3 +1,5 @@
+38 instructions
+
 store_src_rg                   xy = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  i = 0
diff --git a/tests/sksl/runtime/LargeProgram_StackDepth.skrp b/tests/sksl/runtime/LargeProgram_StackDepth.skrp
index 8123e5e..9dd06e2 100644
--- a/tests/sksl/runtime/LargeProgram_StackDepth.skrp
+++ b/tests/sksl/runtime/LargeProgram_StackDepth.skrp
@@ -1,3 +1,5 @@
+6 instructions
+
 store_src_rg                   xy = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_4_constants              color = 0
diff --git a/tests/sksl/runtime/LargeProgram_ZeroIterFor.skrp b/tests/sksl/runtime/LargeProgram_ZeroIterFor.skrp
index 2ab20e4..fe09d97 100644
--- a/tests/sksl/runtime/LargeProgram_ZeroIterFor.skrp
+++ b/tests/sksl/runtime/LargeProgram_ZeroIterFor.skrp
@@ -1,3 +1,5 @@
+6 instructions
+
 [immutable slots]
 i0 = 0
 
diff --git a/tests/sksl/runtime/LoopFloat.skrp b/tests/sksl/runtime/LoopFloat.skrp
index 8ec486d..ec4fd55 100644
--- a/tests/sksl/runtime/LoopFloat.skrp
+++ b/tests/sksl/runtime/LoopFloat.skrp
@@ -1,3 +1,5 @@
+614 instructions
+
 [immutable slots]
 i0 = 0x41100000 (9.0)
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/runtime/LoopInt.skrp b/tests/sksl/runtime/LoopInt.skrp
index 0a6a267..9d5ace7 100644
--- a/tests/sksl/runtime/LoopInt.skrp
+++ b/tests/sksl/runtime/LoopInt.skrp
@@ -1,3 +1,5 @@
+563 instructions
+
 [immutable slots]
 i0 = 0x00000009 (1.261169e-44)
 i1 = 0x00000001 (1.401298e-45)
diff --git a/tests/sksl/runtime/MultipleCallsInOneStatement.skrp b/tests/sksl/runtime/MultipleCallsInOneStatement.skrp
index 611d1b3..70d7330 100644
--- a/tests/sksl/runtime/MultipleCallsInOneStatement.skrp
+++ b/tests/sksl/runtime/MultipleCallsInOneStatement.skrp
@@ -1,3 +1,5 @@
+72 instructions
+
 store_device_xy01              $13..16 = DeviceCoords.xy01
 splat_2_constants              $15..16 = 0x3F000000 (0.5)
 cmpeq_2_floats                 $13..14 = equal($13..14, $15..16)
diff --git a/tests/sksl/runtime/Ossfuzz52603.skrp b/tests/sksl/runtime/Ossfuzz52603.skrp
index b81e214..266b477 100644
--- a/tests/sksl/runtime/Ossfuzz52603.skrp
+++ b/tests/sksl/runtime/Ossfuzz52603.skrp
@@ -1,3 +1,5 @@
+4 instructions
+
 store_src_rg                   v0..1 = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_4_uniforms                $0..3 = colorGreen
diff --git a/tests/sksl/runtime/PrecisionQualifiers.skrp b/tests/sksl/runtime/PrecisionQualifiers.skrp
index ec46f53..92e6c67 100644
--- a/tests/sksl/runtime/PrecisionQualifiers.skrp
+++ b/tests/sksl/runtime/PrecisionQualifiers.skrp
@@ -1,3 +1,5 @@
+382 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/runtime/QualifierOrder.skrp b/tests/sksl/runtime/QualifierOrder.skrp
index 38d4202..8a32ac1 100644
--- a/tests/sksl/runtime/QualifierOrder.skrp
+++ b/tests/sksl/runtime/QualifierOrder.skrp
@@ -1,3 +1,5 @@
+9 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_2_slots_unmasked          x = coords
diff --git a/tests/sksl/runtime/RecursiveComparison_Arrays.skrp b/tests/sksl/runtime/RecursiveComparison_Arrays.skrp
index 5ad091a..e7b15ee 100644
--- a/tests/sksl/runtime/RecursiveComparison_Arrays.skrp
+++ b/tests/sksl/runtime/RecursiveComparison_Arrays.skrp
@@ -1,3 +1,5 @@
+402 instructions
+
 [immutable slots]
 i0 = 0xFFFFFFFF
 i1 = 0
diff --git a/tests/sksl/runtime/RecursiveComparison_Structs.skrp b/tests/sksl/runtime/RecursiveComparison_Structs.skrp
index b8636a4..1729918 100644
--- a/tests/sksl/runtime/RecursiveComparison_Structs.skrp
+++ b/tests/sksl/runtime/RecursiveComparison_Structs.skrp
@@ -1,3 +1,5 @@
+499 instructions
+
 [immutable slots]
 i0 = 0xFFFFFFFF
 i1 = 0
diff --git a/tests/sksl/runtime/RecursiveComparison_Types.skrp b/tests/sksl/runtime/RecursiveComparison_Types.skrp
index 1666f0a..0ea2282 100644
--- a/tests/sksl/runtime/RecursiveComparison_Types.skrp
+++ b/tests/sksl/runtime/RecursiveComparison_Types.skrp
@@ -1,3 +1,5 @@
+722 instructions
+
 [immutable slots]
 i0 = 0xFFFFFFFF
 i1 = 0
diff --git a/tests/sksl/runtime/RecursiveComparison_Vectors.skrp b/tests/sksl/runtime/RecursiveComparison_Vectors.skrp
index c24da38..30ccb0f 100644
--- a/tests/sksl/runtime/RecursiveComparison_Vectors.skrp
+++ b/tests/sksl/runtime/RecursiveComparison_Vectors.skrp
@@ -1,3 +1,5 @@
+376 instructions
+
 [immutable slots]
 i0 = 0xFFFFFFFF
 i1 = 0
diff --git a/tests/sksl/runtime/SampleWithExplicitCoord.skrp b/tests/sksl/runtime/SampleWithExplicitCoord.skrp
index 769e4a1..75f85b2 100644
--- a/tests/sksl/runtime/SampleWithExplicitCoord.skrp
+++ b/tests/sksl/runtime/SampleWithExplicitCoord.skrp
@@ -1,3 +1,5 @@
+5 instructions, 1 invocations
+
 store_src_rg                   p = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_2_slots_unmasked          $0..1 = p
diff --git a/tests/sksl/runtime/Switch.skrp b/tests/sksl/runtime/Switch.skrp
index 97efb3e..d4877f6 100644
--- a/tests/sksl/runtime/Switch.skrp
+++ b/tests/sksl/runtime/Switch.skrp
@@ -1,3 +1,5 @@
+29 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_4_constants              color = 0
diff --git a/tests/sksl/runtime/SwitchDefaultOnly.skrp b/tests/sksl/runtime/SwitchDefaultOnly.skrp
index 1e04d06..48c55bf 100644
--- a/tests/sksl/runtime/SwitchDefaultOnly.skrp
+++ b/tests/sksl/runtime/SwitchDefaultOnly.skrp
@@ -1,3 +1,5 @@
+14 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 store_loop_mask                $0 = LoopMask
diff --git a/tests/sksl/runtime/SwitchWithFallthrough.skrp b/tests/sksl/runtime/SwitchWithFallthrough.skrp
index 03b46c4..d451b8b 100644
--- a/tests/sksl/runtime/SwitchWithFallthrough.skrp
+++ b/tests/sksl/runtime/SwitchWithFallthrough.skrp
@@ -1,3 +1,5 @@
+62 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $0 = colorGreen(1)
diff --git a/tests/sksl/runtime/SwitchWithLoops.skrp b/tests/sksl/runtime/SwitchWithLoops.skrp
index 412a8a9..738604b 100644
--- a/tests/sksl/runtime/SwitchWithLoops.skrp
+++ b/tests/sksl/runtime/SwitchWithLoops.skrp
@@ -1,3 +1,5 @@
+127 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $0 = colorGreen(1)
diff --git a/tests/sksl/runtime/VectorIndexing.skrp b/tests/sksl/runtime/VectorIndexing.skrp
index e64a8c4..bc24728 100644
--- a/tests/sksl/runtime/VectorIndexing.skrp
+++ b/tests/sksl/runtime/VectorIndexing.skrp
@@ -1,3 +1,5 @@
+52 instructions
+
 store_src_rg                   xy = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_2_constants              _0_sum, _1_i = 0
diff --git a/tests/sksl/shared/ArrayCast.skrp b/tests/sksl/shared/ArrayCast.skrp
index 018977a..1d7ea3a 100644
--- a/tests/sksl/shared/ArrayCast.skrp
+++ b/tests/sksl/shared/ArrayCast.skrp
@@ -1,3 +1,5 @@
+72 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/ArrayComparison.skrp b/tests/sksl/shared/ArrayComparison.skrp
index ce08403..5239fcd 100644
--- a/tests/sksl/shared/ArrayComparison.skrp
+++ b/tests/sksl/shared/ArrayComparison.skrp
@@ -1,3 +1,5 @@
+175 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/ArrayConstructors.skrp b/tests/sksl/shared/ArrayConstructors.skrp
index 5b45bf6..d48e7e7 100644
--- a/tests/sksl/shared/ArrayConstructors.skrp
+++ b/tests/sksl/shared/ArrayConstructors.skrp
@@ -1,3 +1,5 @@
+15 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/ArrayFollowedByScalar.skrp b/tests/sksl/shared/ArrayFollowedByScalar.skrp
index 6e04c57..ab49428 100644
--- a/tests/sksl/shared/ArrayFollowedByScalar.skrp
+++ b/tests/sksl/shared/ArrayFollowedByScalar.skrp
@@ -1,3 +1,5 @@
+9 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_4_constants              rgb[0], rgb[1], rgb[2], a = 0
diff --git a/tests/sksl/shared/ArrayNarrowingConversions.skrp b/tests/sksl/shared/ArrayNarrowingConversions.skrp
index 02e2518..01c59d2 100644
--- a/tests/sksl/shared/ArrayNarrowingConversions.skrp
+++ b/tests/sksl/shared/ArrayNarrowingConversions.skrp
@@ -1,3 +1,5 @@
+38 instructions
+
 [immutable slots]
 i0 = 0x00000001 (1.401298e-45)
 i1 = 0x00000002 (2.802597e-45)
diff --git a/tests/sksl/shared/ArrayTypes.skrp b/tests/sksl/shared/ArrayTypes.skrp
index 1e0b8ec..cd189db 100644
--- a/tests/sksl/shared/ArrayTypes.skrp
+++ b/tests/sksl/shared/ArrayTypes.skrp
@@ -1,3 +1,5 @@
+39 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0
diff --git a/tests/sksl/shared/Assignment.skrp b/tests/sksl/shared/Assignment.skrp
index fc88f40..39611e5 100644
--- a/tests/sksl/shared/Assignment.skrp
+++ b/tests/sksl/shared/Assignment.skrp
@@ -1,3 +1,5 @@
+92 instructions
+
 [immutable slots]
 i0 = 0x00000001 (1.401298e-45)
 i1 = 0x00000002 (2.802597e-45)
diff --git a/tests/sksl/shared/CastsRoundTowardZero.skrp b/tests/sksl/shared/CastsRoundTowardZero.skrp
index 9bffada..dc6bbf3 100644
--- a/tests/sksl/shared/CastsRoundTowardZero.skrp
+++ b/tests/sksl/shared/CastsRoundTowardZero.skrp
@@ -1,3 +1,5 @@
+7 instructions
+
 [immutable slots]
 i0 = 0xFFFFFFFF
 
diff --git a/tests/sksl/shared/CommaMixedTypes.skrp b/tests/sksl/shared/CommaMixedTypes.skrp
index 423f9694..44187e0 100644
--- a/tests/sksl/shared/CommaMixedTypes.skrp
+++ b/tests/sksl/shared/CommaMixedTypes.skrp
@@ -1,3 +1,5 @@
+6 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_4_constants              result = 0
diff --git a/tests/sksl/shared/CommaSideEffects.skrp b/tests/sksl/shared/CommaSideEffects.skrp
index 79888ac..7e066f4 100644
--- a/tests/sksl/shared/CommaSideEffects.skrp
+++ b/tests/sksl/shared/CommaSideEffects.skrp
@@ -1,3 +1,5 @@
+55 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_4_constants              a = 0
diff --git a/tests/sksl/shared/CompileTimeConstantVariables.skrp b/tests/sksl/shared/CompileTimeConstantVariables.skrp
index 2d2df49..00633ce 100644
--- a/tests/sksl/shared/CompileTimeConstantVariables.skrp
+++ b/tests/sksl/shared/CompileTimeConstantVariables.skrp
@@ -1,3 +1,5 @@
+47 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x00000001 (1.401298e-45)
diff --git a/tests/sksl/shared/ConstArray.skrp b/tests/sksl/shared/ConstArray.skrp
index 4caeeaf..4a9d29a 100644
--- a/tests/sksl/shared/ConstArray.skrp
+++ b/tests/sksl/shared/ConstArray.skrp
@@ -1,3 +1,5 @@
+4 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/shared/ConstGlobal.skrp b/tests/sksl/shared/ConstGlobal.skrp
index 615bd45..cd4e0d4 100644
--- a/tests/sksl/shared/ConstGlobal.skrp
+++ b/tests/sksl/shared/ConstGlobal.skrp
@@ -1,3 +1,5 @@
+32 instructions
+
 [immutable slots]
 i0 = 0x00000007 (9.809089e-45)
 i1 = 0x0000000A (1.401298e-44)
diff --git a/tests/sksl/shared/ConstVariableComparison.skrp b/tests/sksl/shared/ConstVariableComparison.skrp
index eb63838..441fd46 100644
--- a/tests/sksl/shared/ConstVariableComparison.skrp
+++ b/tests/sksl/shared/ConstVariableComparison.skrp
@@ -1,3 +1,5 @@
+4 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_4_uniforms                $0..3 = colorGreen
diff --git a/tests/sksl/shared/ConstantCompositeAccessViaConstantIndex.skrp b/tests/sksl/shared/ConstantCompositeAccessViaConstantIndex.skrp
index a5cdecb..61f0eb6 100644
--- a/tests/sksl/shared/ConstantCompositeAccessViaConstantIndex.skrp
+++ b/tests/sksl/shared/ConstantCompositeAccessViaConstantIndex.skrp
@@ -1,3 +1,5 @@
+49 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/shared/ConstantCompositeAccessViaDynamicIndex.skrp b/tests/sksl/shared/ConstantCompositeAccessViaDynamicIndex.skrp
index c2d4b05..c398be5 100644
--- a/tests/sksl/shared/ConstantCompositeAccessViaDynamicIndex.skrp
+++ b/tests/sksl/shared/ConstantCompositeAccessViaDynamicIndex.skrp
@@ -1,3 +1,5 @@
+20 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/shared/ConstantIf.skrp b/tests/sksl/shared/ConstantIf.skrp
index d3e2125..9dc9fd1 100644
--- a/tests/sksl/shared/ConstantIf.skrp
+++ b/tests/sksl/shared/ConstantIf.skrp
@@ -1,3 +1,5 @@
+22 instructions
+
 [immutable slots]
 i0 = 0
 
diff --git a/tests/sksl/shared/DeadGlobals.skrp b/tests/sksl/shared/DeadGlobals.skrp
index b81e214..266b477 100644
--- a/tests/sksl/shared/DeadGlobals.skrp
+++ b/tests/sksl/shared/DeadGlobals.skrp
@@ -1,3 +1,5 @@
+4 instructions
+
 store_src_rg                   v0..1 = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_4_uniforms                $0..3 = colorGreen
diff --git a/tests/sksl/shared/DeadIfStatement.skrp b/tests/sksl/shared/DeadIfStatement.skrp
index 6ddb685..65e091b 100644
--- a/tests/sksl/shared/DeadIfStatement.skrp
+++ b/tests/sksl/shared/DeadIfStatement.skrp
@@ -1,3 +1,5 @@
+6 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_4_uniforms                $0..3 = colorGreen
diff --git a/tests/sksl/shared/DeadLoopVariable.skrp b/tests/sksl/shared/DeadLoopVariable.skrp
index 773b009..fb60285 100644
--- a/tests/sksl/shared/DeadLoopVariable.skrp
+++ b/tests/sksl/shared/DeadLoopVariable.skrp
@@ -1,3 +1,5 @@
+14 instructions
+
 [immutable slots]
 i0 = 0
 
diff --git a/tests/sksl/shared/DeadReturn.skrp b/tests/sksl/shared/DeadReturn.skrp
index 50e4a5d..7c28512 100644
--- a/tests/sksl/shared/DeadReturn.skrp
+++ b/tests/sksl/shared/DeadReturn.skrp
@@ -1,3 +1,5 @@
+94 instructions
+
 store_src_rg                   xy = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  scratchVar = 0
diff --git a/tests/sksl/shared/DeadReturnES3.skrp b/tests/sksl/shared/DeadReturnES3.skrp
index adffdf3..40f48b7 100644
--- a/tests/sksl/shared/DeadReturnES3.skrp
+++ b/tests/sksl/shared/DeadReturnES3.skrp
@@ -1,3 +1,5 @@
+157 instructions
+
 store_src_rg                   xy = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 store_condition_mask           $12 = CondMask
diff --git a/tests/sksl/shared/DeadStripFunctions.skrp b/tests/sksl/shared/DeadStripFunctions.skrp
index 8868647..e2a6d06 100644
--- a/tests/sksl/shared/DeadStripFunctions.skrp
+++ b/tests/sksl/shared/DeadStripFunctions.skrp
@@ -1,3 +1,5 @@
+33 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_4_constants              a = 0
diff --git a/tests/sksl/shared/DependentInitializers.skrp b/tests/sksl/shared/DependentInitializers.skrp
index fffb3e1..c093bf3 100644
--- a/tests/sksl/shared/DependentInitializers.skrp
+++ b/tests/sksl/shared/DependentInitializers.skrp
@@ -1,3 +1,5 @@
+11 instructions
+
 [immutable slots]
 i0 = 0x3F000000 (0.5)
 
diff --git a/tests/sksl/shared/DoWhileControlFlow.skrp b/tests/sksl/shared/DoWhileControlFlow.skrp
index 83d0840..81acb58 100644
--- a/tests/sksl/shared/DoWhileControlFlow.skrp
+++ b/tests/sksl/shared/DoWhileControlFlow.skrp
@@ -1,3 +1,5 @@
+43 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_4_constants              x = 0x3F800000 (1.0)
diff --git a/tests/sksl/shared/DoubleNegation.skrp b/tests/sksl/shared/DoubleNegation.skrp
index add45ff..a90d8ee 100644
--- a/tests/sksl/shared/DoubleNegation.skrp
+++ b/tests/sksl/shared/DoubleNegation.skrp
@@ -1,3 +1,5 @@
+7 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $0 = colorGreen(0)
diff --git a/tests/sksl/shared/EmptyBlocksES2.skrp b/tests/sksl/shared/EmptyBlocksES2.skrp
index 0c0ae73..48b6ec1 100644
--- a/tests/sksl/shared/EmptyBlocksES2.skrp
+++ b/tests/sksl/shared/EmptyBlocksES2.skrp
@@ -1,3 +1,5 @@
+14 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_4_constants              color = 0
diff --git a/tests/sksl/shared/EmptyBlocksES3.skrp b/tests/sksl/shared/EmptyBlocksES3.skrp
index a45d10c..80e6b3d 100644
--- a/tests/sksl/shared/EmptyBlocksES3.skrp
+++ b/tests/sksl/shared/EmptyBlocksES3.skrp
@@ -1,3 +1,5 @@
+29 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_4_constants              color = 0
diff --git a/tests/sksl/shared/ForLoopControlFlow.skrp b/tests/sksl/shared/ForLoopControlFlow.skrp
index 962cdc1..a387691 100644
--- a/tests/sksl/shared/ForLoopControlFlow.skrp
+++ b/tests/sksl/shared/ForLoopControlFlow.skrp
@@ -1,3 +1,5 @@
+53 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_4_uniforms                x = colorWhite
diff --git a/tests/sksl/shared/ForLoopMultipleInit.skrp b/tests/sksl/shared/ForLoopMultipleInit.skrp
index f0d4ea9..b121623 100644
--- a/tests/sksl/shared/ForLoopMultipleInit.skrp
+++ b/tests/sksl/shared/ForLoopMultipleInit.skrp
@@ -1,3 +1,5 @@
+75 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x41200000 (10.0)
diff --git a/tests/sksl/shared/FragCoords.skrp b/tests/sksl/shared/FragCoords.skrp
index e8c6478..03e0ab0 100644
--- a/tests/sksl/shared/FragCoords.skrp
+++ b/tests/sksl/shared/FragCoords.skrp
@@ -1,3 +1,5 @@
+7 instructions
+
 store_src_rg                   v0..1 = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 store_device_xy01              sk_FragCoord = DeviceCoords.xy01
diff --git a/tests/sksl/shared/FunctionAnonymousParameters.skrp b/tests/sksl/shared/FunctionAnonymousParameters.skrp
index d26863c..3f45f84 100644
--- a/tests/sksl/shared/FunctionAnonymousParameters.skrp
+++ b/tests/sksl/shared/FunctionAnonymousParameters.skrp
@@ -1,3 +1,5 @@
+14 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $4 = colorGreen(1)
diff --git a/tests/sksl/shared/FunctionArgTypeMatch.skrp b/tests/sksl/shared/FunctionArgTypeMatch.skrp
index f8dd191..f47d5b0 100644
--- a/tests/sksl/shared/FunctionArgTypeMatch.skrp
+++ b/tests/sksl/shared/FunctionArgTypeMatch.skrp
@@ -1,3 +1,5 @@
+217 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 store_condition_mask           $12 = CondMask
diff --git a/tests/sksl/shared/FunctionPrototype.skrp b/tests/sksl/shared/FunctionPrototype.skrp
index 63deedf..38fc71a 100644
--- a/tests/sksl/shared/FunctionPrototype.skrp
+++ b/tests/sksl/shared/FunctionPrototype.skrp
@@ -1,3 +1,5 @@
+9 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_4_uniforms                $0..3 = colorGreen
diff --git a/tests/sksl/shared/FunctionReturnTypeMatch.skrp b/tests/sksl/shared/FunctionReturnTypeMatch.skrp
index f33678b..0f6072f 100644
--- a/tests/sksl/shared/FunctionReturnTypeMatch.skrp
+++ b/tests/sksl/shared/FunctionReturnTypeMatch.skrp
@@ -1,3 +1,5 @@
+283 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/Functions.skrp b/tests/sksl/shared/Functions.skrp
index fc5782d..f5a0f04 100644
--- a/tests/sksl/shared/Functions.skrp
+++ b/tests/sksl/shared/Functions.skrp
@@ -1,3 +1,5 @@
+21 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  x = 0x41200000 (10.0)
diff --git a/tests/sksl/shared/GeometricIntrinsics.skrp b/tests/sksl/shared/GeometricIntrinsics.skrp
index 2cd5942..cf0ed6d 100644
--- a/tests/sksl/shared/GeometricIntrinsics.skrp
+++ b/tests/sksl/shared/GeometricIntrinsics.skrp
@@ -1,3 +1,5 @@
+42 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/HelloWorld.skrp b/tests/sksl/shared/HelloWorld.skrp
index 60c2995..caed4ca 100644
--- a/tests/sksl/shared/HelloWorld.skrp
+++ b/tests/sksl/shared/HelloWorld.skrp
@@ -1,3 +1,5 @@
+4 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/shared/Hex.skrp b/tests/sksl/shared/Hex.skrp
index 112b738..2c8f707 100644
--- a/tests/sksl/shared/Hex.skrp
+++ b/tests/sksl/shared/Hex.skrp
@@ -1,3 +1,5 @@
+14 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  i1 = 0
diff --git a/tests/sksl/shared/HexUnsigned.skrp b/tests/sksl/shared/HexUnsigned.skrp
index 929f84c..8727737 100644
--- a/tests/sksl/shared/HexUnsigned.skrp
+++ b/tests/sksl/shared/HexUnsigned.skrp
@@ -1,3 +1,5 @@
+14 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  u1 = 0
diff --git a/tests/sksl/shared/InoutParameters.skrp b/tests/sksl/shared/InoutParameters.skrp
index 0db8f75..8a096ad 100644
--- a/tests/sksl/shared/InoutParameters.skrp
+++ b/tests/sksl/shared/InoutParameters.skrp
@@ -1,3 +1,5 @@
+24 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_4_constants              c = 0
diff --git a/tests/sksl/shared/InoutParamsAreDistinct.skrp b/tests/sksl/shared/InoutParamsAreDistinct.skrp
index 8058d40..cbe178d 100644
--- a/tests/sksl/shared/InoutParamsAreDistinct.skrp
+++ b/tests/sksl/shared/InoutParamsAreDistinct.skrp
@@ -1,3 +1,5 @@
+19 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  x = 0
diff --git a/tests/sksl/shared/IntegerDivisionES3.skrp b/tests/sksl/shared/IntegerDivisionES3.skrp
index 4341d3c..5273893 100644
--- a/tests/sksl/shared/IntegerDivisionES3.skrp
+++ b/tests/sksl/shared/IntegerDivisionES3.skrp
@@ -1,3 +1,5 @@
+70 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $0 = colorGreen(0)
diff --git a/tests/sksl/shared/LogicalAndShortCircuit.skrp b/tests/sksl/shared/LogicalAndShortCircuit.skrp
index 1bc3f67..9315487 100644
--- a/tests/sksl/shared/LogicalAndShortCircuit.skrp
+++ b/tests/sksl/shared/LogicalAndShortCircuit.skrp
@@ -1,3 +1,5 @@
+116 instructions
+
 [immutable slots]
 i0 = 0x00000001 (1.401298e-45)
 
diff --git a/tests/sksl/shared/LogicalOrShortCircuit.skrp b/tests/sksl/shared/LogicalOrShortCircuit.skrp
index c2dc506..bc8aae2 100644
--- a/tests/sksl/shared/LogicalOrShortCircuit.skrp
+++ b/tests/sksl/shared/LogicalOrShortCircuit.skrp
@@ -1,3 +1,5 @@
+105 instructions
+
 [immutable slots]
 i0 = 0x00000001 (1.401298e-45)
 
diff --git a/tests/sksl/shared/Matrices.skrp b/tests/sksl/shared/Matrices.skrp
index f243e8a..5cafbac 100644
--- a/tests/sksl/shared/Matrices.skrp
+++ b/tests/sksl/shared/Matrices.skrp
@@ -1,3 +1,5 @@
+256 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/MatricesNonsquare.skrp b/tests/sksl/shared/MatricesNonsquare.skrp
index 7e0ec91..00ac6a6 100644
--- a/tests/sksl/shared/MatricesNonsquare.skrp
+++ b/tests/sksl/shared/MatricesNonsquare.skrp
@@ -1,3 +1,5 @@
+311 instructions
+
 [immutable slots]
 i0 = 0x40000000 (2.0)
 i1 = 0
diff --git a/tests/sksl/shared/MatrixConstructorsES2.skrp b/tests/sksl/shared/MatrixConstructorsES2.skrp
index 3e3cb22..4d98ed1 100644
--- a/tests/sksl/shared/MatrixConstructorsES2.skrp
+++ b/tests/sksl/shared/MatrixConstructorsES2.skrp
@@ -1,3 +1,5 @@
+47 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/MatrixConstructorsES3.skrp b/tests/sksl/shared/MatrixConstructorsES3.skrp
index c2a5897..0fde8af 100644
--- a/tests/sksl/shared/MatrixConstructorsES3.skrp
+++ b/tests/sksl/shared/MatrixConstructorsES3.skrp
@@ -1,3 +1,5 @@
+70 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/MatrixEquality.skrp b/tests/sksl/shared/MatrixEquality.skrp
index 72079ce..11ba43f 100644
--- a/tests/sksl/shared/MatrixEquality.skrp
+++ b/tests/sksl/shared/MatrixEquality.skrp
@@ -1,3 +1,5 @@
+421 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/MatrixIndexLookup.skrp b/tests/sksl/shared/MatrixIndexLookup.skrp
index a2c3246..56bdaf7 100644
--- a/tests/sksl/shared/MatrixIndexLookup.skrp
+++ b/tests/sksl/shared/MatrixIndexLookup.skrp
@@ -1,3 +1,5 @@
+91 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/MatrixIndexStore.skrp b/tests/sksl/shared/MatrixIndexStore.skrp
index bb1cdb5..a897787 100644
--- a/tests/sksl/shared/MatrixIndexStore.skrp
+++ b/tests/sksl/shared/MatrixIndexStore.skrp
@@ -1,3 +1,5 @@
+176 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/MatrixOpEqualsES2.skrp b/tests/sksl/shared/MatrixOpEqualsES2.skrp
index 728d4bc..0850a98 100644
--- a/tests/sksl/shared/MatrixOpEqualsES2.skrp
+++ b/tests/sksl/shared/MatrixOpEqualsES2.skrp
@@ -1,3 +1,5 @@
+529 instructions
+
 [immutable slots]
 i0 = 0x40800000 (4.0)
 i1 = 0x40800000 (4.0)
diff --git a/tests/sksl/shared/MatrixOpEqualsES3.skrp b/tests/sksl/shared/MatrixOpEqualsES3.skrp
index 7bbf417..31340a1 100644
--- a/tests/sksl/shared/MatrixOpEqualsES3.skrp
+++ b/tests/sksl/shared/MatrixOpEqualsES3.skrp
@@ -1,3 +1,5 @@
+434 instructions
+
 [immutable slots]
 i0 = 0x40800000 (4.0)
 i1 = 0x40800000 (4.0)
diff --git a/tests/sksl/shared/MatrixScalarMath.skrp b/tests/sksl/shared/MatrixScalarMath.skrp
index 9565208..9d104e1 100644
--- a/tests/sksl/shared/MatrixScalarMath.skrp
+++ b/tests/sksl/shared/MatrixScalarMath.skrp
@@ -1,3 +1,5 @@
+366 instructions
+
 [immutable slots]
 i0 = 0x00000002 (2.802597e-45)
 i1 = 0x00000003 (4.203895e-45)
diff --git a/tests/sksl/shared/MatrixSwizzleStore.skrp b/tests/sksl/shared/MatrixSwizzleStore.skrp
index 32c2780..8e811fb 100644
--- a/tests/sksl/shared/MatrixSwizzleStore.skrp
+++ b/tests/sksl/shared/MatrixSwizzleStore.skrp
@@ -1,3 +1,5 @@
+87 instructions
+
 [immutable slots]
 i0 = 0x40400000 (3.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/MatrixToVectorCast.skrp b/tests/sksl/shared/MatrixToVectorCast.skrp
index 2663980..9995fdb 100644
--- a/tests/sksl/shared/MatrixToVectorCast.skrp
+++ b/tests/sksl/shared/MatrixToVectorCast.skrp
@@ -1,3 +1,5 @@
+40 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/MultipleAssignments.skrp b/tests/sksl/shared/MultipleAssignments.skrp
index e696a67..fc4cd98 100644
--- a/tests/sksl/shared/MultipleAssignments.skrp
+++ b/tests/sksl/shared/MultipleAssignments.skrp
@@ -1,3 +1,5 @@
+17 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_2_constants              x, y = 0
diff --git a/tests/sksl/shared/NumberCasts.skrp b/tests/sksl/shared/NumberCasts.skrp
index d506dca..9029be0 100644
--- a/tests/sksl/shared/NumberCasts.skrp
+++ b/tests/sksl/shared/NumberCasts.skrp
@@ -1,3 +1,5 @@
+26 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_3_constants              B = 0
diff --git a/tests/sksl/shared/Octal.skrp b/tests/sksl/shared/Octal.skrp
index 0e2b798..83e3590 100644
--- a/tests/sksl/shared/Octal.skrp
+++ b/tests/sksl/shared/Octal.skrp
@@ -1,3 +1,5 @@
+18 instructions
+
 [immutable slots]
 i0 = 0x00000001 (1.401298e-45)
 i1 = 0x00053977 (4.79792e-40)
diff --git a/tests/sksl/shared/OperatorsES2.skrp b/tests/sksl/shared/OperatorsES2.skrp
index 45c1724..befcb2b 100644
--- a/tests/sksl/shared/OperatorsES2.skrp
+++ b/tests/sksl/shared/OperatorsES2.skrp
@@ -1,3 +1,5 @@
+97 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  x = 0x3F800000 (1.0)
diff --git a/tests/sksl/shared/Ossfuzz36852.skrp b/tests/sksl/shared/Ossfuzz36852.skrp
index 1785f9a..ba35301 100644
--- a/tests/sksl/shared/Ossfuzz36852.skrp
+++ b/tests/sksl/shared/Ossfuzz36852.skrp
@@ -1,3 +1,5 @@
+7 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/shared/Ossfuzz37677.skrp b/tests/sksl/shared/Ossfuzz37677.skrp
index eb63838..441fd46 100644
--- a/tests/sksl/shared/Ossfuzz37677.skrp
+++ b/tests/sksl/shared/Ossfuzz37677.skrp
@@ -1,3 +1,5 @@
+4 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_4_uniforms                $0..3 = colorGreen
diff --git a/tests/sksl/shared/Ossfuzz58483.skrp b/tests/sksl/shared/Ossfuzz58483.skrp
index 0f8f5ea..7345b4b 100644
--- a/tests/sksl/shared/Ossfuzz58483.skrp
+++ b/tests/sksl/shared/Ossfuzz58483.skrp
@@ -1,3 +1,5 @@
+8 instructions
+
 store_src_rg                   p = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_2_slots_unmasked          $0..1 = p
diff --git a/tests/sksl/shared/Ossfuzz60077.skrp b/tests/sksl/shared/Ossfuzz60077.skrp
index 48be0df..3cc833c 100644
--- a/tests/sksl/shared/Ossfuzz60077.skrp
+++ b/tests/sksl/shared/Ossfuzz60077.skrp
@@ -1,3 +1,5 @@
+12 instructions
+
 [immutable slots]
 i0 = 0x00000004 (5.605194e-45)
 
diff --git a/tests/sksl/shared/OutParams.skrp b/tests/sksl/shared/OutParams.skrp
index 43db0ce..a0d8fab 100644
--- a/tests/sksl/shared/OutParams.skrp
+++ b/tests/sksl/shared/OutParams.skrp
@@ -1,3 +1,5 @@
+252 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  h = 0
diff --git a/tests/sksl/shared/OutParamsAreDistinct.skrp b/tests/sksl/shared/OutParamsAreDistinct.skrp
index b0ca748..f4afbae 100644
--- a/tests/sksl/shared/OutParamsAreDistinct.skrp
+++ b/tests/sksl/shared/OutParamsAreDistinct.skrp
@@ -1,3 +1,5 @@
+17 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  x = 0
diff --git a/tests/sksl/shared/OutParamsAreDistinctFromGlobal.skrp b/tests/sksl/shared/OutParamsAreDistinctFromGlobal.skrp
index a4d3df4..5c06414 100644
--- a/tests/sksl/shared/OutParamsAreDistinctFromGlobal.skrp
+++ b/tests/sksl/shared/OutParamsAreDistinctFromGlobal.skrp
@@ -1,3 +1,5 @@
+15 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  x = 0x3F800000 (1.0)
diff --git a/tests/sksl/shared/OutParamsDoubleSwizzle.skrp b/tests/sksl/shared/OutParamsDoubleSwizzle.skrp
index 232cb08..4ce3094 100644
--- a/tests/sksl/shared/OutParamsDoubleSwizzle.skrp
+++ b/tests/sksl/shared/OutParamsDoubleSwizzle.skrp
@@ -1,3 +1,5 @@
+30 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/shared/OutParamsFunctionCallInArgument.skrp b/tests/sksl/shared/OutParamsFunctionCallInArgument.skrp
index b73c529..4005335 100644
--- a/tests/sksl/shared/OutParamsFunctionCallInArgument.skrp
+++ b/tests/sksl/shared/OutParamsFunctionCallInArgument.skrp
@@ -1,3 +1,5 @@
+22 instructions
+
 store_src_rg                   c = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_2_constants              testArray[0], testArray[1] = 0
diff --git a/tests/sksl/shared/Overflow.skrp b/tests/sksl/shared/Overflow.skrp
index 327229c..b8830ad 100644
--- a/tests/sksl/shared/Overflow.skrp
+++ b/tests/sksl/shared/Overflow.skrp
@@ -1,3 +1,5 @@
+252 instructions
+
 [immutable slots]
 i0 = 0x00000002 (2.802597e-45)
 i1 = 0x00000002 (2.802597e-45)
diff --git a/tests/sksl/shared/PostfixExpressions.skrp b/tests/sksl/shared/PostfixExpressions.skrp
index f97854e..ecaae37 100644
--- a/tests/sksl/shared/PostfixExpressions.skrp
+++ b/tests/sksl/shared/PostfixExpressions.skrp
@@ -1,3 +1,5 @@
+133 instructions
+
 store_src_rg                   c = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  ok = 0xFFFFFFFF
diff --git a/tests/sksl/shared/PrefixExpressionsES2.skrp b/tests/sksl/shared/PrefixExpressionsES2.skrp
index 03f8f48..ddab046 100644
--- a/tests/sksl/shared/PrefixExpressionsES2.skrp
+++ b/tests/sksl/shared/PrefixExpressionsES2.skrp
@@ -1,3 +1,5 @@
+161 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0xBF800000 (-1.0)
diff --git a/tests/sksl/shared/PrefixExpressionsES3.skrp b/tests/sksl/shared/PrefixExpressionsES3.skrp
index 110c089..5be13f4 100644
--- a/tests/sksl/shared/PrefixExpressionsES3.skrp
+++ b/tests/sksl/shared/PrefixExpressionsES3.skrp
@@ -1,3 +1,5 @@
+32 instructions
+
 store_src_rg                   v0..1 = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  ok = 0xFFFFFFFF
diff --git a/tests/sksl/shared/ResizeMatrix.skrp b/tests/sksl/shared/ResizeMatrix.skrp
index b29003f..8a78e34 100644
--- a/tests/sksl/shared/ResizeMatrix.skrp
+++ b/tests/sksl/shared/ResizeMatrix.skrp
@@ -1,3 +1,5 @@
+30 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0
diff --git a/tests/sksl/shared/ResizeMatrixNonsquare.skrp b/tests/sksl/shared/ResizeMatrixNonsquare.skrp
index dd5340e..18bfdec 100644
--- a/tests/sksl/shared/ResizeMatrixNonsquare.skrp
+++ b/tests/sksl/shared/ResizeMatrixNonsquare.skrp
@@ -1,3 +1,5 @@
+30 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0
diff --git a/tests/sksl/shared/ReturnColorFromMain.skrp b/tests/sksl/shared/ReturnColorFromMain.skrp
index 17edfaf..726f77d 100644
--- a/tests/sksl/shared/ReturnColorFromMain.skrp
+++ b/tests/sksl/shared/ReturnColorFromMain.skrp
@@ -1,3 +1,5 @@
+4 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/ReturnsValueOnEveryPathES2.skrp b/tests/sksl/shared/ReturnsValueOnEveryPathES2.skrp
index fd6342f..2eebdf0 100644
--- a/tests/sksl/shared/ReturnsValueOnEveryPathES2.skrp
+++ b/tests/sksl/shared/ReturnsValueOnEveryPathES2.skrp
@@ -1,3 +1,5 @@
+123 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 store_condition_mask           $12 = CondMask
diff --git a/tests/sksl/shared/ReturnsValueOnEveryPathES3.skrp b/tests/sksl/shared/ReturnsValueOnEveryPathES3.skrp
index 1391480..90d875e 100644
--- a/tests/sksl/shared/ReturnsValueOnEveryPathES3.skrp
+++ b/tests/sksl/shared/ReturnsValueOnEveryPathES3.skrp
@@ -1,3 +1,5 @@
+303 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 store_condition_mask           $12 = CondMask
diff --git a/tests/sksl/shared/ScalarConversionConstructorsES2.skrp b/tests/sksl/shared/ScalarConversionConstructorsES2.skrp
index 94f12445..1a7cb87 100644
--- a/tests/sksl/shared/ScalarConversionConstructorsES2.skrp
+++ b/tests/sksl/shared/ScalarConversionConstructorsES2.skrp
@@ -1,3 +1,5 @@
+58 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   f = colorGreen(1)
diff --git a/tests/sksl/shared/ScalarConversionConstructorsES3.skrp b/tests/sksl/shared/ScalarConversionConstructorsES3.skrp
index 0ed0927..33f82e9 100644
--- a/tests/sksl/shared/ScalarConversionConstructorsES3.skrp
+++ b/tests/sksl/shared/ScalarConversionConstructorsES3.skrp
@@ -1,3 +1,5 @@
+94 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   f = colorGreen(1)
diff --git a/tests/sksl/shared/ScopedSymbol.skrp b/tests/sksl/shared/ScopedSymbol.skrp
index 5270110..159e782 100644
--- a/tests/sksl/shared/ScopedSymbol.skrp
+++ b/tests/sksl/shared/ScopedSymbol.skrp
@@ -1,3 +1,5 @@
+39 instructions
+
 [immutable slots]
 i0 = 0xFFFFFFFF
 i1 = 0x00000001 (1.401298e-45)
diff --git a/tests/sksl/shared/StackingVectorCasts.skrp b/tests/sksl/shared/StackingVectorCasts.skrp
index eb63838..441fd46 100644
--- a/tests/sksl/shared/StackingVectorCasts.skrp
+++ b/tests/sksl/shared/StackingVectorCasts.skrp
@@ -1,3 +1,5 @@
+4 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_4_uniforms                $0..3 = colorGreen
diff --git a/tests/sksl/shared/StaticSwitch.skrp b/tests/sksl/shared/StaticSwitch.skrp
index 6c29e2f..139878b 100644
--- a/tests/sksl/shared/StaticSwitch.skrp
+++ b/tests/sksl/shared/StaticSwitch.skrp
@@ -1,3 +1,5 @@
+4 instructions
+
 store_src_rg                   xy = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_4_uniforms                $0..3 = colorGreen
diff --git a/tests/sksl/shared/StructArrayFollowedByScalar.skrp b/tests/sksl/shared/StructArrayFollowedByScalar.skrp
index 51dced3..cad15b6 100644
--- a/tests/sksl/shared/StructArrayFollowedByScalar.skrp
+++ b/tests/sksl/shared/StructArrayFollowedByScalar.skrp
@@ -1,3 +1,5 @@
+9 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_4_constants              s.rgb[0], s.rgb[1], s.rgb[2], s.a = 0
diff --git a/tests/sksl/shared/StructComparison.skrp b/tests/sksl/shared/StructComparison.skrp
index bc2519a..45d1463 100644
--- a/tests/sksl/shared/StructComparison.skrp
+++ b/tests/sksl/shared/StructComparison.skrp
@@ -1,3 +1,5 @@
+68 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/StructIndexLookup.skrp b/tests/sksl/shared/StructIndexLookup.skrp
index 66aa91d..818881f 100644
--- a/tests/sksl/shared/StructIndexLookup.skrp
+++ b/tests/sksl/shared/StructIndexLookup.skrp
@@ -1,3 +1,5 @@
+107 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x41200000 (10.0)
diff --git a/tests/sksl/shared/StructIndexStore.skrp b/tests/sksl/shared/StructIndexStore.skrp
index 9f6a6c6..03009d0 100644
--- a/tests/sksl/shared/StructIndexStore.skrp
+++ b/tests/sksl/shared/StructIndexStore.skrp
@@ -1,3 +1,5 @@
+106 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x41200000 (10.0)
diff --git a/tests/sksl/shared/StructsInFunctions.skrp b/tests/sksl/shared/StructsInFunctions.skrp
index ef947e1..30eda35 100644
--- a/tests/sksl/shared/StructsInFunctions.skrp
+++ b/tests/sksl/shared/StructsInFunctions.skrp
@@ -1,3 +1,5 @@
+166 instructions
+
 [immutable slots]
 i0 = 0x40000000 (2.0)
 i1 = 0x00000003 (4.203895e-45)
diff --git a/tests/sksl/shared/SwitchWithEarlyReturn.skrp b/tests/sksl/shared/SwitchWithEarlyReturn.skrp
index 744ff90..005fd69 100644
--- a/tests/sksl/shared/SwitchWithEarlyReturn.skrp
+++ b/tests/sksl/shared/SwitchWithEarlyReturn.skrp
@@ -1,3 +1,5 @@
+430 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $0 = colorGreen(1)
diff --git a/tests/sksl/shared/SwizzleAsLValue.skrp b/tests/sksl/shared/SwizzleAsLValue.skrp
index d101ae3..ffeab42 100644
--- a/tests/sksl/shared/SwizzleAsLValue.skrp
+++ b/tests/sksl/shared/SwizzleAsLValue.skrp
@@ -1,3 +1,5 @@
+72 instructions
+
 [immutable slots]
 i0 = 0x3E800000 (0.25)
 i1 = 0
diff --git a/tests/sksl/shared/SwizzleAsLValueES3.skrp b/tests/sksl/shared/SwizzleAsLValueES3.skrp
index 43ac3c1..f1105e9 100644
--- a/tests/sksl/shared/SwizzleAsLValueES3.skrp
+++ b/tests/sksl/shared/SwizzleAsLValueES3.skrp
@@ -1,3 +1,5 @@
+86 instructions
+
 [immutable slots]
 i0 = 0x3E800000 (0.25)
 i1 = 0
diff --git a/tests/sksl/shared/SwizzleBoolConstants.skrp b/tests/sksl/shared/SwizzleBoolConstants.skrp
index 18f79db..ad93f88 100644
--- a/tests/sksl/shared/SwizzleBoolConstants.skrp
+++ b/tests/sksl/shared/SwizzleBoolConstants.skrp
@@ -1,3 +1,5 @@
+89 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $0 = colorGreen(1)
diff --git a/tests/sksl/shared/SwizzleByConstantIndex.skrp b/tests/sksl/shared/SwizzleByConstantIndex.skrp
index dfbdaeb..0678c2d 100644
--- a/tests/sksl/shared/SwizzleByConstantIndex.skrp
+++ b/tests/sksl/shared/SwizzleByConstantIndex.skrp
@@ -1,3 +1,5 @@
+29 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/shared/SwizzleByIndex.skrp b/tests/sksl/shared/SwizzleByIndex.skrp
index 69c25a4..175206f 100644
--- a/tests/sksl/shared/SwizzleByIndex.skrp
+++ b/tests/sksl/shared/SwizzleByIndex.skrp
@@ -1,3 +1,5 @@
+28 instructions
+
 [immutable slots]
 i0 = 0xBFA00000 (-1.25)
 i1 = 0xBFA00000 (-1.25)
diff --git a/tests/sksl/shared/SwizzleConstants.skrp b/tests/sksl/shared/SwizzleConstants.skrp
index 82abfa2..26eb064 100644
--- a/tests/sksl/shared/SwizzleConstants.skrp
+++ b/tests/sksl/shared/SwizzleConstants.skrp
@@ -1,3 +1,5 @@
+54 instructions
+
 [immutable slots]
 i0 = 0
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/shared/SwizzleIndexLookup.skrp b/tests/sksl/shared/SwizzleIndexLookup.skrp
index 14bae05..44eb3de 100644
--- a/tests/sksl/shared/SwizzleIndexLookup.skrp
+++ b/tests/sksl/shared/SwizzleIndexLookup.skrp
@@ -1,3 +1,5 @@
+116 instructions
+
 [immutable slots]
 i0 = 0x40400000 (3.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/SwizzleIndexStore.skrp b/tests/sksl/shared/SwizzleIndexStore.skrp
index db906e0..56b07a3 100644
--- a/tests/sksl/shared/SwizzleIndexStore.skrp
+++ b/tests/sksl/shared/SwizzleIndexStore.skrp
@@ -1,3 +1,5 @@
+117 instructions
+
 [immutable slots]
 i0 = 0x40400000 (3.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/SwizzleLTRB.skrp b/tests/sksl/shared/SwizzleLTRB.skrp
index d3fc253..135b0ce 100644
--- a/tests/sksl/shared/SwizzleLTRB.skrp
+++ b/tests/sksl/shared/SwizzleLTRB.skrp
@@ -1,3 +1,5 @@
+5 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_4_uniforms                $0..3 = colorRed
diff --git a/tests/sksl/shared/SwizzleOpt.skrp b/tests/sksl/shared/SwizzleOpt.skrp
index 16b6e01..efc0c58 100644
--- a/tests/sksl/shared/SwizzleOpt.skrp
+++ b/tests/sksl/shared/SwizzleOpt.skrp
@@ -1,3 +1,5 @@
+185 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/shared/SwizzleScalar.skrp b/tests/sksl/shared/SwizzleScalar.skrp
index 50e0ef7..96dff22 100644
--- a/tests/sksl/shared/SwizzleScalar.skrp
+++ b/tests/sksl/shared/SwizzleScalar.skrp
@@ -1,3 +1,5 @@
+20 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $0 = unknownInput
diff --git a/tests/sksl/shared/SwizzleScalarBool.skrp b/tests/sksl/shared/SwizzleScalarBool.skrp
index 63ca583..bbcaf24 100644
--- a/tests/sksl/shared/SwizzleScalarBool.skrp
+++ b/tests/sksl/shared/SwizzleScalarBool.skrp
@@ -1,3 +1,5 @@
+23 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $0 = unknownInput
diff --git a/tests/sksl/shared/SwizzleScalarInt.skrp b/tests/sksl/shared/SwizzleScalarInt.skrp
index 026539f..0fd59a2 100644
--- a/tests/sksl/shared/SwizzleScalarInt.skrp
+++ b/tests/sksl/shared/SwizzleScalarInt.skrp
@@ -1,3 +1,5 @@
+23 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_uniform                   $0 = unknownInput
diff --git a/tests/sksl/shared/TemporaryIndexLookup.skrp b/tests/sksl/shared/TemporaryIndexLookup.skrp
index 4c1a165..e07ed07 100644
--- a/tests/sksl/shared/TemporaryIndexLookup.skrp
+++ b/tests/sksl/shared/TemporaryIndexLookup.skrp
@@ -1,3 +1,5 @@
+51 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_2_constants              expected, i = 0
diff --git a/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.skrp b/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.skrp
index 822808b..7a313ca 100644
--- a/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.skrp
+++ b/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.skrp
@@ -1,3 +1,5 @@
+9 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_2_constants              r, g = 0
diff --git a/tests/sksl/shared/TernaryAsLValueFoldableTest.skrp b/tests/sksl/shared/TernaryAsLValueFoldableTest.skrp
index 094cf26..01735a4 100644
--- a/tests/sksl/shared/TernaryAsLValueFoldableTest.skrp
+++ b/tests/sksl/shared/TernaryAsLValueFoldableTest.skrp
@@ -1,3 +1,5 @@
+12 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_2_constants              r, g = 0
diff --git a/tests/sksl/shared/TernaryComplexNesting.skrp b/tests/sksl/shared/TernaryComplexNesting.skrp
index 2f84ea0..8265e1c 100644
--- a/tests/sksl/shared/TernaryComplexNesting.skrp
+++ b/tests/sksl/shared/TernaryComplexNesting.skrp
@@ -1,3 +1,5 @@
+93 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_2_constants              colorBlue(0..1) = 0
diff --git a/tests/sksl/shared/TernaryExpression.skrp b/tests/sksl/shared/TernaryExpression.skrp
index 9dd10b0..44d9bce 100644
--- a/tests/sksl/shared/TernaryExpression.skrp
+++ b/tests/sksl/shared/TernaryExpression.skrp
@@ -1,3 +1,5 @@
+48 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  check = 0
diff --git a/tests/sksl/shared/TernaryNesting.skrp b/tests/sksl/shared/TernaryNesting.skrp
index 061f08a..6521aab 100644
--- a/tests/sksl/shared/TernaryNesting.skrp
+++ b/tests/sksl/shared/TernaryNesting.skrp
@@ -1,3 +1,5 @@
+66 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_2_constants              colorBlue(0..1) = 0
diff --git a/tests/sksl/shared/TernarySideEffects.skrp b/tests/sksl/shared/TernarySideEffects.skrp
index f7c5793..d20e23d 100644
--- a/tests/sksl/shared/TernarySideEffects.skrp
+++ b/tests/sksl/shared/TernarySideEffects.skrp
@@ -1,3 +1,5 @@
+119 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_2_constants              x, y = 0x3F800000 (1.0)
diff --git a/tests/sksl/shared/TernaryTrueFalseOptimization.skrp b/tests/sksl/shared/TernaryTrueFalseOptimization.skrp
index c84a190..1373a5f 100644
--- a/tests/sksl/shared/TernaryTrueFalseOptimization.skrp
+++ b/tests/sksl/shared/TernaryTrueFalseOptimization.skrp
@@ -1,3 +1,5 @@
+53 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  ok = 0xFFFFFFFF
diff --git a/tests/sksl/shared/UnaryPositiveNegative.skrp b/tests/sksl/shared/UnaryPositiveNegative.skrp
index 06f61fd..3f583d1 100644
--- a/tests/sksl/shared/UnaryPositiveNegative.skrp
+++ b/tests/sksl/shared/UnaryPositiveNegative.skrp
@@ -1,3 +1,5 @@
+203 instructions
+
 [immutable slots]
 i0 = 0xBF800000 (-1.0)
 i1 = 0xC0000000 (-2.0)
diff --git a/tests/sksl/shared/UniformArray.skrp b/tests/sksl/shared/UniformArray.skrp
index 1679c7b..c711bda 100644
--- a/tests/sksl/shared/UniformArray.skrp
+++ b/tests/sksl/shared/UniformArray.skrp
@@ -1,3 +1,5 @@
+30 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 copy_constant                  index = 0
diff --git a/tests/sksl/shared/UniformMatrixResize.skrp b/tests/sksl/shared/UniformMatrixResize.skrp
index 4bf8034..f409637 100644
--- a/tests/sksl/shared/UniformMatrixResize.skrp
+++ b/tests/sksl/shared/UniformMatrixResize.skrp
@@ -1,3 +1,5 @@
+37 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/UnusedVariables.skrp b/tests/sksl/shared/UnusedVariables.skrp
index ce60e58..6485fa6 100644
--- a/tests/sksl/shared/UnusedVariables.skrp
+++ b/tests/sksl/shared/UnusedVariables.skrp
@@ -1,3 +1,5 @@
+55 instructions
+
 [immutable slots]
 i0 = 0x40400000 (3.0)
 
diff --git a/tests/sksl/shared/VectorConstructors.skrp b/tests/sksl/shared/VectorConstructors.skrp
index 14736dd..4ef0c53 100644
--- a/tests/sksl/shared/VectorConstructors.skrp
+++ b/tests/sksl/shared/VectorConstructors.skrp
@@ -1,3 +1,5 @@
+79 instructions
+
 [immutable slots]
 i0 = 0x3F800000 (1.0)
 i1 = 0x3F800000 (1.0)
diff --git a/tests/sksl/shared/VectorScalarMath.skrp b/tests/sksl/shared/VectorScalarMath.skrp
index befb3fc..6834349 100644
--- a/tests/sksl/shared/VectorScalarMath.skrp
+++ b/tests/sksl/shared/VectorScalarMath.skrp
@@ -1,3 +1,5 @@
+412 instructions
+
 [immutable slots]
 i0 = 0x40400000 (3.0)
 i1 = 0x40000000 (2.0)
diff --git a/tests/sksl/shared/VectorToMatrixCast.skrp b/tests/sksl/shared/VectorToMatrixCast.skrp
index 0e3b08e..b955c35 100644
--- a/tests/sksl/shared/VectorToMatrixCast.skrp
+++ b/tests/sksl/shared/VectorToMatrixCast.skrp
@@ -1,3 +1,5 @@
+88 instructions
+
 [immutable slots]
 i0 = 0xBFA00000 (-1.25)
 i1 = 0
diff --git a/tests/sksl/shared/WhileLoopControlFlow.skrp b/tests/sksl/shared/WhileLoopControlFlow.skrp
index edca7fa..73bb34a 100644
--- a/tests/sksl/shared/WhileLoopControlFlow.skrp
+++ b/tests/sksl/shared/WhileLoopControlFlow.skrp
@@ -1,3 +1,5 @@
+45 instructions
+
 store_src_rg                   coords = src.rg
 init_lane_masks                CondMask = LoopMask = RetMask = true
 splat_4_constants              x = 0x3F800000 (1.0)
diff --git a/tools/skslc/Main.cpp b/tools/skslc/Main.cpp
index 7170270..256aedc 100644
--- a/tools/skslc/Main.cpp
+++ b/tools/skslc/Main.cpp
@@ -657,7 +657,7 @@
                         compiler.errorReporter().error({}, "code is not supported");
                         return false;
                     }
-                    rasterProg->dump(as_SkWStream(out).get());
+                    rasterProg->dump(as_SkWStream(out).get(), /*writeInstructionCount=*/true);
                     return true;
                 });
 #endif