Improve redundant trace_var elimination.

Previously, we would avoid emitting redundant trace_vars by checking to
see if the slot is being assigned to the exact same Var.ID. However,
this had the potential to eliminate useful trace_vars:

- At the start of execution, slots all contain 0. Code which explicitly
  assigned a zero into a slot would not be shown in a trace. (So things
  like `color = half4(0,1,0,1)` would only emit traces for color.ga.)
- A function call's parameter slots are reused every time it is called,
  so calling a function twice would only emit traces for the parameters
  that aren't the same Val.ID as the previous call.
- A VarDeclaration inside a loop reuses its slot each time through the
  loop, even though conceptually it's a "new" variable.

We now track a slot's "written-to" status. At the start of execution,
no slots have been "written-to". These slots will always emit a
trace_var opcode (fixing the first issue). Also, issuing a function
call or declaring a variable will reset the "written-to" status of the
associated slots (fixing the second and third issues).

When the debugger is not in use, the written-to field is unused.

Change-Id: I482a86cb6e90d0f85dd2a161e984f212782a7b4d
Bug: skia:12614
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/473776
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
diff --git a/src/sksl/codegen/SkSLVMCodeGenerator.cpp b/src/sksl/codegen/SkSLVMCodeGenerator.cpp
index 6ccad47..9ae8cca 100644
--- a/src/sksl/codegen/SkSLVMCodeGenerator.cpp
+++ b/src/sksl/codegen/SkSLVMCodeGenerator.cpp
@@ -268,7 +268,8 @@
     const SampleBlenderFn fSampleBlender;
 
     struct Slot {
-        skvm::Val         val;
+        skvm::Val  val;
+        bool       writtenTo = false;
     };
     std::vector<Slot> fSlots;
 
@@ -469,6 +470,7 @@
                nslots    = p->type().slotCount();
 
         for (size_t i = 0; i < nslots; ++i) {
+            fSlots[paramSlot + i].writtenTo = false;
             this->writeToSlot(paramSlot + i, arguments[argIdx + i]);
         }
         argIdx += nslots;
@@ -500,7 +502,7 @@
 }
 
 void SkVMGenerator::writeToSlot(int slot, skvm::Val value) {
-    if (fDebugInfo && fSlots[slot].val != value) {
+    if (fDebugInfo && (!fSlots[slot].writtenTo || fSlots[slot].val != value)) {
         if (fDebugInfo->fSlotInfo[slot].numberKind == Type::NumberKind::kFloat) {
             fBuilder->trace_var(this->traceMask(), slot, f32(value));
         } else if (fDebugInfo->fSlotInfo[slot].numberKind == Type::NumberKind::kBoolean) {
@@ -508,6 +510,7 @@
         } else {
             fBuilder->trace_var(this->traceMask(), slot, i32(value));
         }
+        fSlots[slot].writtenTo = true;
     }
 
     fSlots[slot].val = value;
@@ -1764,6 +1767,7 @@
 
     Value val = decl.value() ? this->writeExpression(*decl.value()) : Value{};
     for (size_t i = 0; i < nslots; ++i) {
+        fSlots[slot + i].writtenTo = false;
         this->writeToSlot(slot + i, val ? val[i] : fBuilder->splat(0.0f).id);
     }
 }
diff --git a/tests/SkSLInterpreterTest.cpp b/tests/SkSLInterpreterTest.cpp
index c6bb5cc..bf06257 100644
--- a/tests/SkSLInterpreterTest.cpp
+++ b/tests/SkSLInterpreterTest.cpp
@@ -984,7 +984,11 @@
     constexpr const char kSrc[] =
 R"(bool less_than(int left, int right) {
     bool comparison = left < right;
-    return comparison;
+    if (comparison) {
+        return true;
+    } else {
+        return false;
+    }
 }
 
 int main() {
@@ -1034,37 +1038,44 @@
     REPORTER_ASSERT(r, result == 40);
     REPORTER_ASSERT(r, hook.fTrace ==
 R"(enter int main()
-line 7
+line 11
 loop = 10
-line 8
+line 12
 enter bool less_than(int left, int right)
 left = 10
 right = 20
 line 2
 comparison = 1
 line 3
+line 4
 exit bool less_than(int left, int right)
 function_result = 1
-line 7
+line 11
 loop = 20
-line 8
+line 12
 enter bool less_than(int left, int right)
 left = 20
+right = 20
 line 2
 comparison = 0
 line 3
+line 6
 exit bool less_than(int left, int right)
 function_result = 0
-line 7
+line 11
 loop = 30
-line 8
+line 12
 enter bool less_than(int left, int right)
 left = 30
+right = 20
 line 2
+comparison = 0
 line 3
+line 6
 exit bool less_than(int left, int right)
-line 7
-line 10
+function_result = 0
+line 11
+line 14
 exit int main()
 )", "Trace output does not match expectation:\n%s\n", hook.fTrace.c_str());
 }
diff --git a/tests/sksl/runtime/ArrayIndexing.skvm b/tests/sksl/runtime/ArrayIndexing.skvm
index 3b251d3..3c857c0 100644
--- a/tests/sksl/runtime/ArrayIndexing.skvm
+++ b/tests/sksl/runtime/ArrayIndexing.skvm
@@ -40,7 +40,7 @@
 F3 = float index_by_complex_loop()
 F4 = float index_out_of_bounds_checked()
 
-54 registers, 168 instructions:
+54 registers, 171 instructions:
 0	r0 = splat 42C90000 (100.5)
 1	r1 = uniform32 ptr0 0
 2	r2 = uniform32 ptr0 4
@@ -134,79 +134,82 @@
 89	    trace_call r53 F1 (exit)
 90	    trace_call r53 F2 (enter)
 91	    trace_line r53 L10
-92	    trace_line r53 L11
-93	    trace_var r53 $31 = r32 (I32)
-94	    trace_line r53 L12
-95	    trace_var r53 $30 = r9 (F32)
-96	    trace_line r53 L11
-97	    trace_var r53 $31 = r33 (I32)
-98	    trace_line r53 L12
-99	    trace_var r53 $30 = r34 (F32)
-100	    trace_line r53 L11
-101	    trace_var r53 $31 = r35 (I32)
-102	    trace_line r53 L12
-103	    trace_var r53 $30 = r36 (F32)
-104	    trace_line r53 L11
-105	    trace_var r53 $31 = r30 (I32)
-106	    trace_line r53 L12
-107	    trace_var r53 $30 = r37 (F32)
-108	    trace_line r53 L11
-109	    trace_line r53 L14
-110	    trace_call r53 F2 (exit)
-111	    trace_call r53 F3 (enter)
-112	    trace_line r53 L19
-113	    trace_var r53 $32 = r38 (F32)
-114	    trace_line r53 L20
-115	    trace_line r53 L21
-116	    trace_var r53 $32 = r10 (F32)
-117	    trace_line r53 L20
-118	    trace_var r53 $33 = r35 (I32)
-119	    trace_line r53 L21
-120	    trace_var r53 $32 = r39 (F32)
-121	    trace_line r53 L20
-122	    trace_var r53 $33 = r33 (I32)
-123	    trace_line r53 L21
-124	    trace_var r53 $32 = r40 (F32)
-125	    trace_line r53 L20
-126	    trace_var r53 $33 = r32 (I32)
-127	    trace_line r53 L21
-128	    trace_var r53 $32 = r41 (F32)
-129	    trace_line r53 L20
-130	    trace_line r53 L23
-131	    trace_call r53 F3 (exit)
-132	    trace_call r53 F4 (enter)
-133	    trace_line r53 L28
-134	    trace_line r53 L29
-135	    trace_var r53 $35 = r42 (F32)
-136	    trace_line r53 L30
+92	    trace_var r53 $30 = r30 (F32)
+93	    trace_line r53 L11
+94	    trace_var r53 $31 = r32 (I32)
+95	    trace_line r53 L12
+96	    trace_var r53 $30 = r9 (F32)
+97	    trace_line r53 L11
+98	    trace_var r53 $31 = r33 (I32)
+99	    trace_line r53 L12
+100	    trace_var r53 $30 = r34 (F32)
+101	    trace_line r53 L11
+102	    trace_var r53 $31 = r35 (I32)
+103	    trace_line r53 L12
+104	    trace_var r53 $30 = r36 (F32)
+105	    trace_line r53 L11
+106	    trace_var r53 $31 = r30 (I32)
+107	    trace_line r53 L12
+108	    trace_var r53 $30 = r37 (F32)
+109	    trace_line r53 L11
+110	    trace_line r53 L14
+111	    trace_call r53 F2 (exit)
+112	    trace_call r53 F3 (enter)
+113	    trace_line r53 L19
+114	    trace_var r53 $32 = r38 (F32)
+115	    trace_line r53 L20
+116	    trace_var r53 $33 = r30 (I32)
+117	    trace_line r53 L21
+118	    trace_var r53 $32 = r10 (F32)
+119	    trace_line r53 L20
+120	    trace_var r53 $33 = r35 (I32)
+121	    trace_line r53 L21
+122	    trace_var r53 $32 = r39 (F32)
+123	    trace_line r53 L20
+124	    trace_var r53 $33 = r33 (I32)
+125	    trace_line r53 L21
+126	    trace_var r53 $32 = r40 (F32)
+127	    trace_line r53 L20
+128	    trace_var r53 $33 = r32 (I32)
+129	    trace_line r53 L21
+130	    trace_var r53 $32 = r41 (F32)
+131	    trace_line r53 L20
+132	    trace_line r53 L23
+133	    trace_call r53 F3 (exit)
+134	    trace_call r53 F4 (enter)
+135	    trace_line r53 L28
+136	    trace_var r53 $34 = r30 (F32)
 137	    trace_line r53 L29
-138	    trace_var r53 $35 = r43 (F32)
+138	    trace_var r53 $35 = r42 (F32)
 139	    trace_line r53 L30
-140	    trace_line r53 L31
-141	    trace_var r53 $34 = r44 (F32)
-142	    trace_line r53 L29
-143	    trace_var r53 $35 = r45 (F32)
-144	    trace_line r53 L30
-145	    trace_line r53 L31
-146	    trace_var r53 $34 = r46 (F32)
-147	    trace_line r53 L29
-148	    trace_var r53 $35 = r47 (F32)
-149	    trace_line r53 L30
-150	    trace_line r53 L31
-151	    trace_var r53 $34 = r48 (F32)
-152	    trace_line r53 L29
-153	    trace_var r53 $35 = r49 (F32)
-154	    trace_line r53 L30
-155	    trace_line r53 L31
-156	    trace_var r53 $34 = r50 (F32)
-157	    trace_line r53 L29
-158	    trace_var r53 $35 = r51 (F32)
-159	    trace_line r53 L30
+140	    trace_line r53 L29
+141	    trace_var r53 $35 = r43 (F32)
+142	    trace_line r53 L30
+143	    trace_line r53 L31
+144	    trace_var r53 $34 = r44 (F32)
+145	    trace_line r53 L29
+146	    trace_var r53 $35 = r45 (F32)
+147	    trace_line r53 L30
+148	    trace_line r53 L31
+149	    trace_var r53 $34 = r46 (F32)
+150	    trace_line r53 L29
+151	    trace_var r53 $35 = r47 (F32)
+152	    trace_line r53 L30
+153	    trace_line r53 L31
+154	    trace_var r53 $34 = r48 (F32)
+155	    trace_line r53 L29
+156	    trace_var r53 $35 = r49 (F32)
+157	    trace_line r53 L30
+158	    trace_line r53 L31
+159	    trace_var r53 $34 = r50 (F32)
 160	    trace_line r53 L29
-161	    trace_line r53 L34
-162	    trace_call r53 F4 (exit)
-163	    trace_call r53 F0 (exit)
-164	    store32 ptr1 r2
-165	    store32 ptr2 r37
-166	    store32 ptr3 r41
-167	    store32 ptr4 r50
+161	    trace_var r53 $35 = r51 (F32)
+162	    trace_line r53 L30
+163	    trace_line r53 L29
+164	    trace_line r53 L34
+165	    trace_call r53 F4 (exit)
+166	    trace_call r53 F0 (exit)
+167	    store32 ptr1 r2
+168	    store32 ptr2 r37
+169	    store32 ptr3 r41
+170	    store32 ptr4 r50
diff --git a/tests/sksl/runtime/LoopFloat.skvm b/tests/sksl/runtime/LoopFloat.skvm
index 5d4e8b3..9d2b624 100644
--- a/tests/sksl/runtime/LoopFloat.skvm
+++ b/tests/sksl/runtime/LoopFloat.skvm
@@ -64,7 +64,7 @@
 F9 = bool loop_operator_eq()
 F10 = bool loop_operator_ne()
 
-43 registers, 792 instructions:
+43 registers, 799 instructions:
 0	r0 = splat 42C90000 (100.5)
 1	r1 = uniform32 ptr0 0
 2	r2 = uniform32 ptr0 4
@@ -110,751 +110,758 @@
 41	    trace_var r34 $5 = r7 (F32)
 42	    trace_var r34 $6 = r8 (F32)
 43	    trace_var r34 $7 = r9 (F32)
-44	    trace_var r34 $9 = r13 (F32)
-45	    trace_call r34 F0 (enter)
-46	    trace_var r34 $10 = r33 (F32)
-47	    trace_var r34 $11 = r1 (F32)
-48	    trace_line r34 L116
-49	    r33 = min_f32 r33 r9
-50	    r33 = max_f32 r7 r33
-51	    r33 = mul_f32 r33 r14
-52	    trace_var r34 $12 = r33 (F32)
-53	    trace_line r34 L117
-54	    trace_call r34 F1 (enter)
-55	    trace_var r34 $13 = r33 (F32)
-56	    trace_line r34 L8
-57	    trace_line r34 L9
-58	    r35 = eq_f32 r10 r33
-59	    r36 = bit_and r34 r35
-60	    trace_line r36 L9
-61	    r36 = bit_xor r11 r35
-62	    r37 = bit_and r34 r36
-63	    trace_line r37 L8
-64	    trace_var r37 $14 = r15 (F32)
-65	    trace_line r37 L9
-66	    r37 = eq_f32 r33 r15
-67	    r37 = bit_and r36 r37
-68	    r36 = bit_and r34 r37
-69	    trace_line r36 L9
-70	    r36 = bit_and r15 r37
-71	    r37 = bit_or r35 r37
-72	    r35 = bit_xor r11 r37
-73	    r38 = bit_and r34 r35
-74	    trace_line r38 L8
-75	    trace_var r38 $14 = r16 (F32)
-76	    trace_line r38 L9
-77	    r38 = eq_f32 r33 r16
-78	    r38 = bit_and r35 r38
-79	    r35 = bit_and r34 r38
-80	    trace_line r35 L9
-81	    r36 = select r38 r16 r36
-82	    r38 = bit_or r37 r38
-83	    r37 = bit_xor r11 r38
-84	    r35 = bit_and r34 r37
-85	    trace_line r35 L8
-86	    trace_var r35 $14 = r17 (F32)
-87	    trace_line r35 L9
-88	    r35 = eq_f32 r33 r17
-89	    r35 = bit_and r37 r35
-90	    r37 = bit_and r34 r35
-91	    trace_line r37 L9
-92	    r36 = select r35 r17 r36
-93	    r35 = bit_or r38 r35
-94	    r38 = bit_xor r11 r35
-95	    r37 = bit_and r34 r38
-96	    trace_line r37 L8
-97	    trace_var r37 $14 = r18 (F32)
-98	    trace_line r37 L9
-99	    r37 = eq_f32 r33 r18
-100	    r37 = bit_and r38 r37
-101	    r38 = bit_and r34 r37
-102	    trace_line r38 L9
-103	    r36 = select r37 r18 r36
-104	    r37 = bit_or r35 r37
-105	    r35 = bit_xor r11 r37
-106	    r38 = bit_and r34 r35
-107	    trace_line r38 L8
-108	    trace_var r38 $14 = r14 (F32)
-109	    trace_line r38 L9
-110	    r38 = eq_f32 r14 r33
-111	    r38 = bit_and r35 r38
-112	    r35 = bit_and r34 r38
-113	    trace_line r35 L9
-114	    r36 = select r38 r14 r36
-115	    r38 = bit_or r37 r38
-116	    r37 = bit_xor r11 r38
-117	    r35 = bit_and r34 r37
-118	    trace_line r35 L8
-119	    trace_var r35 $14 = r19 (F32)
-120	    trace_line r35 L9
-121	    r35 = eq_f32 r33 r19
-122	    r35 = bit_and r37 r35
-123	    r37 = bit_and r34 r35
-124	    trace_line r37 L9
-125	    r36 = select r35 r19 r36
-126	    r35 = bit_or r38 r35
-127	    r38 = bit_xor r11 r35
-128	    r37 = bit_and r34 r38
-129	    trace_line r37 L8
-130	    trace_var r37 $14 = r20 (F32)
-131	    trace_line r37 L9
-132	    r37 = eq_f32 r33 r20
-133	    r37 = bit_and r38 r37
-134	    r38 = bit_and r34 r37
-135	    trace_line r38 L9
-136	    r36 = select r37 r20 r36
-137	    r37 = bit_or r35 r37
-138	    r35 = bit_xor r11 r37
-139	    r38 = bit_and r34 r35
-140	    trace_line r38 L8
-141	    trace_var r38 $14 = r21 (F32)
-142	    trace_line r38 L9
-143	    r38 = eq_f32 r33 r21
-144	    r38 = bit_and r35 r38
-145	    r35 = bit_and r34 r38
-146	    trace_line r35 L9
-147	    r36 = select r38 r21 r36
-148	    r38 = bit_or r37 r38
-149	    r37 = bit_xor r11 r38
-150	    r35 = bit_and r34 r37
-151	    trace_line r35 L8
-152	    trace_var r35 $14 = r22 (F32)
-153	    trace_line r35 L9
-154	    r35 = eq_f32 r33 r22
-155	    r35 = bit_and r37 r35
-156	    r37 = bit_and r34 r35
-157	    trace_line r37 L9
-158	    r36 = select r35 r22 r36
-159	    r35 = bit_or r38 r35
-160	    r35 = bit_xor r11 r35
-161	    r38 = bit_and r34 r35
-162	    trace_line r38 L8
-163	    trace_line r38 L11
-164	    r35 = bit_clear r36 r35
-165	    trace_call r34 F1 (exit)
-166	    r35 = eq_f32 r14 r35
-167	    r36 = bit_and r34 r35
-168	    trace_call r36 F2 (enter)
-169	    trace_var r36 $15 = r33 (F32)
-170	    trace_line r36 L17
-171	    trace_line r36 L18
-172	    trace_line r36 L19
-173	    r38 = gt_f32 r33 r10
-174	    r38 = bit_and r35 r38
-175	    r37 = bit_and r34 r38
-176	    trace_line r37 L19
-177	    r37 = bit_xor r11 r38
-178	    r39 = bit_and r35 r37
-179	    r39 = bit_and r34 r39
-180	    trace_line r39 L20
-181	    r37 = bit_or r38 r37
-182	    r38 = bit_and r35 r37
-183	    r38 = bit_and r34 r38
-184	    trace_line r38 L18
-185	    trace_var r38 $17 = r15 (F32)
-186	    trace_line r38 L19
-187	    r38 = gt_f32 r33 r15
-188	    r38 = bit_and r35 r38
-189	    r38 = bit_and r37 r38
-190	    r39 = bit_and r34 r38
-191	    trace_line r39 L19
-192	    r39 = bit_xor r11 r38
-193	    r39 = bit_and r37 r39
-194	    r37 = bit_and r35 r39
-195	    r40 = bit_and r34 r37
-196	    trace_line r40 L20
-197	    r37 = bit_and r15 r37
-198	    trace_var r40 $16 = r37 (F32)
-199	    r39 = bit_or r38 r39
-200	    r38 = bit_and r35 r39
-201	    r38 = bit_and r34 r38
-202	    trace_line r38 L18
-203	    trace_var r38 $17 = r16 (F32)
-204	    trace_line r38 L19
-205	    r38 = gt_f32 r33 r16
-206	    r38 = bit_and r35 r38
-207	    r38 = bit_and r39 r38
-208	    r40 = bit_and r34 r38
-209	    trace_line r40 L19
-210	    r40 = bit_xor r11 r38
-211	    r40 = bit_and r39 r40
-212	    r39 = bit_and r35 r40
-213	    r41 = bit_and r34 r39
-214	    trace_line r41 L20
-215	    r42 = add_f32 r16 r37
-216	    r37 = select r39 r42 r37
-217	    trace_var r41 $16 = r37 (F32)
-218	    r40 = bit_or r38 r40
-219	    r38 = bit_and r35 r40
-220	    r38 = bit_and r34 r38
-221	    trace_line r38 L18
-222	    trace_var r38 $17 = r17 (F32)
-223	    trace_line r38 L19
-224	    r38 = gt_f32 r33 r17
-225	    r38 = bit_and r35 r38
-226	    r38 = bit_and r40 r38
-227	    r41 = bit_and r34 r38
-228	    trace_line r41 L19
-229	    r41 = bit_xor r11 r38
-230	    r41 = bit_and r40 r41
-231	    r40 = bit_and r35 r41
-232	    r42 = bit_and r34 r40
-233	    trace_line r42 L20
-234	    r39 = add_f32 r17 r37
-235	    r37 = select r40 r39 r37
-236	    trace_var r42 $16 = r37 (F32)
-237	    r41 = bit_or r38 r41
-238	    r38 = bit_and r35 r41
-239	    r38 = bit_and r34 r38
-240	    trace_line r38 L18
-241	    trace_var r38 $17 = r18 (F32)
-242	    trace_line r38 L19
-243	    r38 = gt_f32 r33 r18
-244	    r38 = bit_and r35 r38
-245	    r38 = bit_and r41 r38
-246	    r42 = bit_and r34 r38
-247	    trace_line r42 L19
-248	    r42 = bit_xor r11 r38
-249	    r42 = bit_and r41 r42
-250	    r41 = bit_and r35 r42
-251	    r39 = bit_and r34 r41
-252	    trace_line r39 L20
-253	    r40 = add_f32 r18 r37
-254	    r37 = select r41 r40 r37
-255	    trace_var r39 $16 = r37 (F32)
-256	    r42 = bit_or r38 r42
-257	    r38 = bit_and r35 r42
-258	    r38 = bit_and r34 r38
-259	    trace_line r38 L18
-260	    trace_var r38 $17 = r14 (F32)
-261	    trace_line r38 L19
-262	    r38 = gt_f32 r33 r14
-263	    r38 = bit_and r35 r38
-264	    r38 = bit_and r42 r38
-265	    r39 = bit_and r34 r38
-266	    trace_line r39 L19
-267	    r39 = bit_xor r11 r38
-268	    r39 = bit_and r42 r39
-269	    r42 = bit_and r35 r39
-270	    r40 = bit_and r34 r42
-271	    trace_line r40 L20
-272	    r41 = add_f32 r14 r37
-273	    r37 = select r42 r41 r37
-274	    trace_var r40 $16 = r37 (F32)
-275	    r39 = bit_or r38 r39
-276	    r38 = bit_and r35 r39
-277	    r38 = bit_and r34 r38
-278	    trace_line r38 L18
-279	    trace_var r38 $17 = r19 (F32)
-280	    trace_line r38 L19
-281	    r38 = gt_f32 r33 r19
-282	    r38 = bit_and r35 r38
-283	    r38 = bit_and r39 r38
-284	    r40 = bit_and r34 r38
-285	    trace_line r40 L19
-286	    r40 = bit_xor r11 r38
-287	    r40 = bit_and r39 r40
-288	    r39 = bit_and r35 r40
-289	    r41 = bit_and r34 r39
-290	    trace_line r41 L20
-291	    r42 = add_f32 r19 r37
-292	    r37 = select r39 r42 r37
-293	    trace_var r41 $16 = r37 (F32)
-294	    r40 = bit_or r38 r40
-295	    r38 = bit_and r35 r40
-296	    r38 = bit_and r34 r38
-297	    trace_line r38 L18
-298	    trace_var r38 $17 = r20 (F32)
-299	    trace_line r38 L19
-300	    r38 = gt_f32 r33 r20
-301	    r38 = bit_and r35 r38
-302	    r38 = bit_and r40 r38
-303	    r41 = bit_and r34 r38
-304	    trace_line r41 L19
-305	    r41 = bit_xor r11 r38
-306	    r41 = bit_and r40 r41
-307	    r40 = bit_and r35 r41
-308	    r42 = bit_and r34 r40
-309	    trace_line r42 L20
-310	    r39 = add_f32 r20 r37
-311	    r37 = select r40 r39 r37
-312	    trace_var r42 $16 = r37 (F32)
-313	    r41 = bit_or r38 r41
-314	    r38 = bit_and r35 r41
-315	    r38 = bit_and r34 r38
-316	    trace_line r38 L18
-317	    trace_var r38 $17 = r21 (F32)
-318	    trace_line r38 L19
-319	    r38 = gt_f32 r33 r21
-320	    r38 = bit_and r35 r38
-321	    r38 = bit_and r41 r38
-322	    r42 = bit_and r34 r38
-323	    trace_line r42 L19
-324	    r42 = bit_xor r11 r38
-325	    r42 = bit_and r41 r42
-326	    r41 = bit_and r35 r42
-327	    r39 = bit_and r34 r41
-328	    trace_line r39 L20
-329	    r40 = add_f32 r21 r37
-330	    r37 = select r41 r40 r37
-331	    trace_var r39 $16 = r37 (F32)
-332	    r42 = bit_or r38 r42
-333	    r38 = bit_and r35 r42
-334	    r38 = bit_and r34 r38
-335	    trace_line r38 L18
-336	    trace_var r38 $17 = r22 (F32)
-337	    trace_line r38 L19
-338	    r38 = gt_f32 r33 r22
-339	    r38 = bit_and r35 r38
-340	    r38 = bit_and r42 r38
-341	    r39 = bit_and r34 r38
-342	    trace_line r39 L19
-343	    r39 = bit_xor r11 r38
-344	    r39 = bit_and r42 r39
-345	    r42 = bit_and r35 r39
-346	    r40 = bit_and r34 r42
-347	    trace_line r40 L20
-348	    r41 = add_f32 r22 r37
-349	    r37 = select r42 r41 r37
-350	    trace_var r40 $16 = r37 (F32)
-351	    r39 = bit_or r38 r39
-352	    r39 = bit_and r35 r39
-353	    r39 = bit_and r34 r39
-354	    trace_line r39 L18
-355	    trace_line r36 L22
-356	    r37 = bit_and r35 r37
-357	    trace_call r36 F2 (exit)
-358	    r37 = eq_f32 r37 r23
-359	    r37 = bit_and r35 r37
-360	    r35 = bit_and r34 r37
-361	    trace_call r35 F3 (enter)
-362	    trace_var r35 $18 = r33 (F32)
-363	    trace_line r35 L27
-364	    trace_line r35 L28
-365	    trace_var r35 $20 = r15 (F32)
-366	    trace_line r35 L29
-367	    trace_line r35 L30
-368	    r36 = gt_f32 r10 r33
-369	    r36 = bit_and r37 r36
-370	    r39 = bit_and r34 r36
-371	    trace_line r39 L30
-372	    r36 = bit_xor r11 r36
-373	    r39 = bit_and r37 r36
-374	    r39 = bit_and r34 r39
-375	    trace_line r39 L31
-376	    trace_line r39 L29
-377	    trace_var r39 $21 = r15 (F32)
-378	    trace_line r39 L30
-379	    r39 = gt_f32 r15 r33
-380	    r39 = bit_and r37 r39
-381	    r39 = bit_and r36 r39
-382	    r38 = bit_and r34 r39
-383	    trace_line r38 L30
-384	    r39 = bit_xor r11 r39
-385	    r39 = bit_and r36 r39
-386	    r36 = bit_and r37 r39
-387	    r38 = bit_and r34 r36
-388	    trace_line r38 L31
-389	    r36 = bit_and r15 r36
-390	    trace_var r38 $19 = r36 (F32)
-391	    trace_line r38 L29
-392	    trace_var r38 $21 = r16 (F32)
-393	    trace_line r38 L30
-394	    r38 = gt_f32 r16 r33
-395	    r38 = bit_and r37 r38
-396	    r38 = bit_and r39 r38
-397	    r40 = bit_and r34 r38
-398	    trace_line r40 L30
-399	    r38 = bit_xor r11 r38
-400	    r38 = bit_and r39 r38
-401	    r39 = bit_and r37 r38
-402	    r40 = bit_and r34 r39
-403	    trace_line r40 L31
-404	    r41 = add_f32 r16 r36
-405	    r36 = select r39 r41 r36
-406	    trace_var r40 $19 = r36 (F32)
-407	    trace_line r40 L29
-408	    trace_var r40 $21 = r17 (F32)
-409	    trace_line r40 L30
-410	    r40 = gt_f32 r17 r33
-411	    r40 = bit_and r37 r40
-412	    r40 = bit_and r38 r40
-413	    r41 = bit_and r34 r40
-414	    trace_line r41 L30
-415	    r40 = bit_xor r11 r40
-416	    r40 = bit_and r38 r40
-417	    r38 = bit_and r37 r40
-418	    r41 = bit_and r34 r38
-419	    trace_line r41 L31
-420	    r39 = add_f32 r17 r36
-421	    r36 = select r38 r39 r36
-422	    trace_var r41 $19 = r36 (F32)
-423	    trace_line r41 L29
-424	    trace_var r41 $21 = r18 (F32)
-425	    trace_line r41 L30
-426	    r41 = gt_f32 r18 r33
-427	    r41 = bit_and r37 r41
-428	    r41 = bit_and r40 r41
-429	    r39 = bit_and r34 r41
-430	    trace_line r39 L30
-431	    r41 = bit_xor r11 r41
-432	    r41 = bit_and r40 r41
-433	    r40 = bit_and r37 r41
-434	    r39 = bit_and r34 r40
-435	    trace_line r39 L31
-436	    r38 = add_f32 r18 r36
-437	    r36 = select r40 r38 r36
-438	    trace_var r39 $19 = r36 (F32)
-439	    trace_line r39 L29
-440	    trace_var r39 $21 = r14 (F32)
-441	    trace_line r39 L30
-442	    r39 = gt_f32 r14 r33
-443	    r39 = bit_and r37 r39
-444	    r39 = bit_and r41 r39
-445	    r38 = bit_and r34 r39
-446	    trace_line r38 L30
-447	    r39 = bit_xor r11 r39
-448	    r39 = bit_and r41 r39
-449	    r41 = bit_and r37 r39
-450	    r38 = bit_and r34 r41
-451	    trace_line r38 L31
-452	    r40 = add_f32 r14 r36
-453	    r36 = select r41 r40 r36
-454	    trace_var r38 $19 = r36 (F32)
-455	    trace_line r38 L29
-456	    trace_var r38 $21 = r19 (F32)
-457	    trace_line r38 L30
-458	    r38 = gt_f32 r19 r33
-459	    r38 = bit_and r37 r38
-460	    r38 = bit_and r39 r38
-461	    r40 = bit_and r34 r38
-462	    trace_line r40 L30
-463	    r38 = bit_xor r11 r38
-464	    r38 = bit_and r39 r38
-465	    r39 = bit_and r37 r38
-466	    r40 = bit_and r34 r39
-467	    trace_line r40 L31
-468	    r41 = add_f32 r19 r36
-469	    r36 = select r39 r41 r36
-470	    trace_var r40 $19 = r36 (F32)
-471	    trace_line r40 L29
-472	    trace_var r40 $21 = r20 (F32)
-473	    trace_line r40 L30
-474	    r40 = gt_f32 r20 r33
-475	    r40 = bit_and r37 r40
-476	    r40 = bit_and r38 r40
-477	    r41 = bit_and r34 r40
-478	    trace_line r41 L30
-479	    r40 = bit_xor r11 r40
-480	    r40 = bit_and r38 r40
-481	    r38 = bit_and r37 r40
-482	    r41 = bit_and r34 r38
-483	    trace_line r41 L31
-484	    r39 = add_f32 r20 r36
-485	    r36 = select r38 r39 r36
-486	    trace_var r41 $19 = r36 (F32)
-487	    trace_line r41 L29
-488	    trace_var r41 $21 = r21 (F32)
-489	    trace_line r41 L30
-490	    r41 = gt_f32 r21 r33
-491	    r41 = bit_and r37 r41
-492	    r41 = bit_and r40 r41
-493	    r39 = bit_and r34 r41
-494	    trace_line r39 L30
-495	    r41 = bit_xor r11 r41
-496	    r41 = bit_and r40 r41
-497	    r40 = bit_and r37 r41
-498	    r39 = bit_and r34 r40
-499	    trace_line r39 L31
-500	    r38 = add_f32 r21 r36
-501	    r36 = select r40 r38 r36
-502	    trace_var r39 $19 = r36 (F32)
-503	    trace_line r39 L29
-504	    trace_var r39 $21 = r22 (F32)
-505	    trace_line r39 L30
-506	    r33 = gt_f32 r22 r33
-507	    r33 = bit_and r37 r33
-508	    r33 = bit_and r41 r33
-509	    r39 = bit_and r34 r33
-510	    trace_line r39 L30
-511	    r33 = bit_xor r11 r33
-512	    r33 = bit_and r41 r33
+44	    trace_var r34 $8 = r10 (F32)
+45	    trace_var r34 $9 = r13 (F32)
+46	    trace_call r34 F0 (enter)
+47	    trace_var r34 $10 = r33 (F32)
+48	    trace_var r34 $11 = r1 (F32)
+49	    trace_line r34 L116
+50	    r33 = min_f32 r33 r9
+51	    r33 = max_f32 r7 r33
+52	    r33 = mul_f32 r33 r14
+53	    trace_var r34 $12 = r33 (F32)
+54	    trace_line r34 L117
+55	    trace_call r34 F1 (enter)
+56	    trace_var r34 $13 = r33 (F32)
+57	    trace_line r34 L8
+58	    trace_var r34 $14 = r10 (F32)
+59	    trace_line r34 L9
+60	    r35 = eq_f32 r10 r33
+61	    r36 = bit_and r34 r35
+62	    trace_line r36 L9
+63	    r36 = bit_xor r11 r35
+64	    r37 = bit_and r34 r36
+65	    trace_line r37 L8
+66	    trace_var r37 $14 = r15 (F32)
+67	    trace_line r37 L9
+68	    r37 = eq_f32 r33 r15
+69	    r37 = bit_and r36 r37
+70	    r36 = bit_and r34 r37
+71	    trace_line r36 L9
+72	    r36 = bit_and r15 r37
+73	    r37 = bit_or r35 r37
+74	    r35 = bit_xor r11 r37
+75	    r38 = bit_and r34 r35
+76	    trace_line r38 L8
+77	    trace_var r38 $14 = r16 (F32)
+78	    trace_line r38 L9
+79	    r38 = eq_f32 r33 r16
+80	    r38 = bit_and r35 r38
+81	    r35 = bit_and r34 r38
+82	    trace_line r35 L9
+83	    r36 = select r38 r16 r36
+84	    r38 = bit_or r37 r38
+85	    r37 = bit_xor r11 r38
+86	    r35 = bit_and r34 r37
+87	    trace_line r35 L8
+88	    trace_var r35 $14 = r17 (F32)
+89	    trace_line r35 L9
+90	    r35 = eq_f32 r33 r17
+91	    r35 = bit_and r37 r35
+92	    r37 = bit_and r34 r35
+93	    trace_line r37 L9
+94	    r36 = select r35 r17 r36
+95	    r35 = bit_or r38 r35
+96	    r38 = bit_xor r11 r35
+97	    r37 = bit_and r34 r38
+98	    trace_line r37 L8
+99	    trace_var r37 $14 = r18 (F32)
+100	    trace_line r37 L9
+101	    r37 = eq_f32 r33 r18
+102	    r37 = bit_and r38 r37
+103	    r38 = bit_and r34 r37
+104	    trace_line r38 L9
+105	    r36 = select r37 r18 r36
+106	    r37 = bit_or r35 r37
+107	    r35 = bit_xor r11 r37
+108	    r38 = bit_and r34 r35
+109	    trace_line r38 L8
+110	    trace_var r38 $14 = r14 (F32)
+111	    trace_line r38 L9
+112	    r38 = eq_f32 r14 r33
+113	    r38 = bit_and r35 r38
+114	    r35 = bit_and r34 r38
+115	    trace_line r35 L9
+116	    r36 = select r38 r14 r36
+117	    r38 = bit_or r37 r38
+118	    r37 = bit_xor r11 r38
+119	    r35 = bit_and r34 r37
+120	    trace_line r35 L8
+121	    trace_var r35 $14 = r19 (F32)
+122	    trace_line r35 L9
+123	    r35 = eq_f32 r33 r19
+124	    r35 = bit_and r37 r35
+125	    r37 = bit_and r34 r35
+126	    trace_line r37 L9
+127	    r36 = select r35 r19 r36
+128	    r35 = bit_or r38 r35
+129	    r38 = bit_xor r11 r35
+130	    r37 = bit_and r34 r38
+131	    trace_line r37 L8
+132	    trace_var r37 $14 = r20 (F32)
+133	    trace_line r37 L9
+134	    r37 = eq_f32 r33 r20
+135	    r37 = bit_and r38 r37
+136	    r38 = bit_and r34 r37
+137	    trace_line r38 L9
+138	    r36 = select r37 r20 r36
+139	    r37 = bit_or r35 r37
+140	    r35 = bit_xor r11 r37
+141	    r38 = bit_and r34 r35
+142	    trace_line r38 L8
+143	    trace_var r38 $14 = r21 (F32)
+144	    trace_line r38 L9
+145	    r38 = eq_f32 r33 r21
+146	    r38 = bit_and r35 r38
+147	    r35 = bit_and r34 r38
+148	    trace_line r35 L9
+149	    r36 = select r38 r21 r36
+150	    r38 = bit_or r37 r38
+151	    r37 = bit_xor r11 r38
+152	    r35 = bit_and r34 r37
+153	    trace_line r35 L8
+154	    trace_var r35 $14 = r22 (F32)
+155	    trace_line r35 L9
+156	    r35 = eq_f32 r33 r22
+157	    r35 = bit_and r37 r35
+158	    r37 = bit_and r34 r35
+159	    trace_line r37 L9
+160	    r36 = select r35 r22 r36
+161	    r35 = bit_or r38 r35
+162	    r35 = bit_xor r11 r35
+163	    r38 = bit_and r34 r35
+164	    trace_line r38 L8
+165	    trace_line r38 L11
+166	    r35 = bit_clear r36 r35
+167	    trace_call r34 F1 (exit)
+168	    r35 = eq_f32 r14 r35
+169	    r36 = bit_and r34 r35
+170	    trace_call r36 F2 (enter)
+171	    trace_var r36 $15 = r33 (F32)
+172	    trace_line r36 L17
+173	    trace_var r36 $16 = r10 (F32)
+174	    trace_line r36 L18
+175	    trace_var r36 $17 = r10 (F32)
+176	    trace_line r36 L19
+177	    r38 = gt_f32 r33 r10
+178	    r38 = bit_and r35 r38
+179	    r37 = bit_and r34 r38
+180	    trace_line r37 L19
+181	    r37 = bit_xor r11 r38
+182	    r39 = bit_and r35 r37
+183	    r39 = bit_and r34 r39
+184	    trace_line r39 L20
+185	    r37 = bit_or r38 r37
+186	    r38 = bit_and r35 r37
+187	    r38 = bit_and r34 r38
+188	    trace_line r38 L18
+189	    trace_var r38 $17 = r15 (F32)
+190	    trace_line r38 L19
+191	    r38 = gt_f32 r33 r15
+192	    r38 = bit_and r35 r38
+193	    r38 = bit_and r37 r38
+194	    r39 = bit_and r34 r38
+195	    trace_line r39 L19
+196	    r39 = bit_xor r11 r38
+197	    r39 = bit_and r37 r39
+198	    r37 = bit_and r35 r39
+199	    r40 = bit_and r34 r37
+200	    trace_line r40 L20
+201	    r37 = bit_and r15 r37
+202	    trace_var r40 $16 = r37 (F32)
+203	    r39 = bit_or r38 r39
+204	    r38 = bit_and r35 r39
+205	    r38 = bit_and r34 r38
+206	    trace_line r38 L18
+207	    trace_var r38 $17 = r16 (F32)
+208	    trace_line r38 L19
+209	    r38 = gt_f32 r33 r16
+210	    r38 = bit_and r35 r38
+211	    r38 = bit_and r39 r38
+212	    r40 = bit_and r34 r38
+213	    trace_line r40 L19
+214	    r40 = bit_xor r11 r38
+215	    r40 = bit_and r39 r40
+216	    r39 = bit_and r35 r40
+217	    r41 = bit_and r34 r39
+218	    trace_line r41 L20
+219	    r42 = add_f32 r16 r37
+220	    r37 = select r39 r42 r37
+221	    trace_var r41 $16 = r37 (F32)
+222	    r40 = bit_or r38 r40
+223	    r38 = bit_and r35 r40
+224	    r38 = bit_and r34 r38
+225	    trace_line r38 L18
+226	    trace_var r38 $17 = r17 (F32)
+227	    trace_line r38 L19
+228	    r38 = gt_f32 r33 r17
+229	    r38 = bit_and r35 r38
+230	    r38 = bit_and r40 r38
+231	    r41 = bit_and r34 r38
+232	    trace_line r41 L19
+233	    r41 = bit_xor r11 r38
+234	    r41 = bit_and r40 r41
+235	    r40 = bit_and r35 r41
+236	    r42 = bit_and r34 r40
+237	    trace_line r42 L20
+238	    r39 = add_f32 r17 r37
+239	    r37 = select r40 r39 r37
+240	    trace_var r42 $16 = r37 (F32)
+241	    r41 = bit_or r38 r41
+242	    r38 = bit_and r35 r41
+243	    r38 = bit_and r34 r38
+244	    trace_line r38 L18
+245	    trace_var r38 $17 = r18 (F32)
+246	    trace_line r38 L19
+247	    r38 = gt_f32 r33 r18
+248	    r38 = bit_and r35 r38
+249	    r38 = bit_and r41 r38
+250	    r42 = bit_and r34 r38
+251	    trace_line r42 L19
+252	    r42 = bit_xor r11 r38
+253	    r42 = bit_and r41 r42
+254	    r41 = bit_and r35 r42
+255	    r39 = bit_and r34 r41
+256	    trace_line r39 L20
+257	    r40 = add_f32 r18 r37
+258	    r37 = select r41 r40 r37
+259	    trace_var r39 $16 = r37 (F32)
+260	    r42 = bit_or r38 r42
+261	    r38 = bit_and r35 r42
+262	    r38 = bit_and r34 r38
+263	    trace_line r38 L18
+264	    trace_var r38 $17 = r14 (F32)
+265	    trace_line r38 L19
+266	    r38 = gt_f32 r33 r14
+267	    r38 = bit_and r35 r38
+268	    r38 = bit_and r42 r38
+269	    r39 = bit_and r34 r38
+270	    trace_line r39 L19
+271	    r39 = bit_xor r11 r38
+272	    r39 = bit_and r42 r39
+273	    r42 = bit_and r35 r39
+274	    r40 = bit_and r34 r42
+275	    trace_line r40 L20
+276	    r41 = add_f32 r14 r37
+277	    r37 = select r42 r41 r37
+278	    trace_var r40 $16 = r37 (F32)
+279	    r39 = bit_or r38 r39
+280	    r38 = bit_and r35 r39
+281	    r38 = bit_and r34 r38
+282	    trace_line r38 L18
+283	    trace_var r38 $17 = r19 (F32)
+284	    trace_line r38 L19
+285	    r38 = gt_f32 r33 r19
+286	    r38 = bit_and r35 r38
+287	    r38 = bit_and r39 r38
+288	    r40 = bit_and r34 r38
+289	    trace_line r40 L19
+290	    r40 = bit_xor r11 r38
+291	    r40 = bit_and r39 r40
+292	    r39 = bit_and r35 r40
+293	    r41 = bit_and r34 r39
+294	    trace_line r41 L20
+295	    r42 = add_f32 r19 r37
+296	    r37 = select r39 r42 r37
+297	    trace_var r41 $16 = r37 (F32)
+298	    r40 = bit_or r38 r40
+299	    r38 = bit_and r35 r40
+300	    r38 = bit_and r34 r38
+301	    trace_line r38 L18
+302	    trace_var r38 $17 = r20 (F32)
+303	    trace_line r38 L19
+304	    r38 = gt_f32 r33 r20
+305	    r38 = bit_and r35 r38
+306	    r38 = bit_and r40 r38
+307	    r41 = bit_and r34 r38
+308	    trace_line r41 L19
+309	    r41 = bit_xor r11 r38
+310	    r41 = bit_and r40 r41
+311	    r40 = bit_and r35 r41
+312	    r42 = bit_and r34 r40
+313	    trace_line r42 L20
+314	    r39 = add_f32 r20 r37
+315	    r37 = select r40 r39 r37
+316	    trace_var r42 $16 = r37 (F32)
+317	    r41 = bit_or r38 r41
+318	    r38 = bit_and r35 r41
+319	    r38 = bit_and r34 r38
+320	    trace_line r38 L18
+321	    trace_var r38 $17 = r21 (F32)
+322	    trace_line r38 L19
+323	    r38 = gt_f32 r33 r21
+324	    r38 = bit_and r35 r38
+325	    r38 = bit_and r41 r38
+326	    r42 = bit_and r34 r38
+327	    trace_line r42 L19
+328	    r42 = bit_xor r11 r38
+329	    r42 = bit_and r41 r42
+330	    r41 = bit_and r35 r42
+331	    r39 = bit_and r34 r41
+332	    trace_line r39 L20
+333	    r40 = add_f32 r21 r37
+334	    r37 = select r41 r40 r37
+335	    trace_var r39 $16 = r37 (F32)
+336	    r42 = bit_or r38 r42
+337	    r38 = bit_and r35 r42
+338	    r38 = bit_and r34 r38
+339	    trace_line r38 L18
+340	    trace_var r38 $17 = r22 (F32)
+341	    trace_line r38 L19
+342	    r38 = gt_f32 r33 r22
+343	    r38 = bit_and r35 r38
+344	    r38 = bit_and r42 r38
+345	    r39 = bit_and r34 r38
+346	    trace_line r39 L19
+347	    r39 = bit_xor r11 r38
+348	    r39 = bit_and r42 r39
+349	    r42 = bit_and r35 r39
+350	    r40 = bit_and r34 r42
+351	    trace_line r40 L20
+352	    r41 = add_f32 r22 r37
+353	    r37 = select r42 r41 r37
+354	    trace_var r40 $16 = r37 (F32)
+355	    r39 = bit_or r38 r39
+356	    r39 = bit_and r35 r39
+357	    r39 = bit_and r34 r39
+358	    trace_line r39 L18
+359	    trace_line r36 L22
+360	    r37 = bit_and r35 r37
+361	    trace_call r36 F2 (exit)
+362	    r37 = eq_f32 r37 r23
+363	    r37 = bit_and r35 r37
+364	    r35 = bit_and r34 r37
+365	    trace_call r35 F3 (enter)
+366	    trace_var r35 $18 = r33 (F32)
+367	    trace_line r35 L27
+368	    trace_var r35 $19 = r10 (F32)
+369	    trace_line r35 L28
+370	    trace_var r35 $20 = r15 (F32)
+371	    trace_line r35 L29
+372	    trace_var r35 $21 = r10 (F32)
+373	    trace_line r35 L30
+374	    r36 = gt_f32 r10 r33
+375	    r36 = bit_and r37 r36
+376	    r39 = bit_and r34 r36
+377	    trace_line r39 L30
+378	    r36 = bit_xor r11 r36
+379	    r39 = bit_and r37 r36
+380	    r39 = bit_and r34 r39
+381	    trace_line r39 L31
+382	    trace_line r39 L29
+383	    trace_var r39 $21 = r15 (F32)
+384	    trace_line r39 L30
+385	    r39 = gt_f32 r15 r33
+386	    r39 = bit_and r37 r39
+387	    r39 = bit_and r36 r39
+388	    r38 = bit_and r34 r39
+389	    trace_line r38 L30
+390	    r39 = bit_xor r11 r39
+391	    r39 = bit_and r36 r39
+392	    r36 = bit_and r37 r39
+393	    r38 = bit_and r34 r36
+394	    trace_line r38 L31
+395	    r36 = bit_and r15 r36
+396	    trace_var r38 $19 = r36 (F32)
+397	    trace_line r38 L29
+398	    trace_var r38 $21 = r16 (F32)
+399	    trace_line r38 L30
+400	    r38 = gt_f32 r16 r33
+401	    r38 = bit_and r37 r38
+402	    r38 = bit_and r39 r38
+403	    r40 = bit_and r34 r38
+404	    trace_line r40 L30
+405	    r38 = bit_xor r11 r38
+406	    r38 = bit_and r39 r38
+407	    r39 = bit_and r37 r38
+408	    r40 = bit_and r34 r39
+409	    trace_line r40 L31
+410	    r41 = add_f32 r16 r36
+411	    r36 = select r39 r41 r36
+412	    trace_var r40 $19 = r36 (F32)
+413	    trace_line r40 L29
+414	    trace_var r40 $21 = r17 (F32)
+415	    trace_line r40 L30
+416	    r40 = gt_f32 r17 r33
+417	    r40 = bit_and r37 r40
+418	    r40 = bit_and r38 r40
+419	    r41 = bit_and r34 r40
+420	    trace_line r41 L30
+421	    r40 = bit_xor r11 r40
+422	    r40 = bit_and r38 r40
+423	    r38 = bit_and r37 r40
+424	    r41 = bit_and r34 r38
+425	    trace_line r41 L31
+426	    r39 = add_f32 r17 r36
+427	    r36 = select r38 r39 r36
+428	    trace_var r41 $19 = r36 (F32)
+429	    trace_line r41 L29
+430	    trace_var r41 $21 = r18 (F32)
+431	    trace_line r41 L30
+432	    r41 = gt_f32 r18 r33
+433	    r41 = bit_and r37 r41
+434	    r41 = bit_and r40 r41
+435	    r39 = bit_and r34 r41
+436	    trace_line r39 L30
+437	    r41 = bit_xor r11 r41
+438	    r41 = bit_and r40 r41
+439	    r40 = bit_and r37 r41
+440	    r39 = bit_and r34 r40
+441	    trace_line r39 L31
+442	    r38 = add_f32 r18 r36
+443	    r36 = select r40 r38 r36
+444	    trace_var r39 $19 = r36 (F32)
+445	    trace_line r39 L29
+446	    trace_var r39 $21 = r14 (F32)
+447	    trace_line r39 L30
+448	    r39 = gt_f32 r14 r33
+449	    r39 = bit_and r37 r39
+450	    r39 = bit_and r41 r39
+451	    r38 = bit_and r34 r39
+452	    trace_line r38 L30
+453	    r39 = bit_xor r11 r39
+454	    r39 = bit_and r41 r39
+455	    r41 = bit_and r37 r39
+456	    r38 = bit_and r34 r41
+457	    trace_line r38 L31
+458	    r40 = add_f32 r14 r36
+459	    r36 = select r41 r40 r36
+460	    trace_var r38 $19 = r36 (F32)
+461	    trace_line r38 L29
+462	    trace_var r38 $21 = r19 (F32)
+463	    trace_line r38 L30
+464	    r38 = gt_f32 r19 r33
+465	    r38 = bit_and r37 r38
+466	    r38 = bit_and r39 r38
+467	    r40 = bit_and r34 r38
+468	    trace_line r40 L30
+469	    r38 = bit_xor r11 r38
+470	    r38 = bit_and r39 r38
+471	    r39 = bit_and r37 r38
+472	    r40 = bit_and r34 r39
+473	    trace_line r40 L31
+474	    r41 = add_f32 r19 r36
+475	    r36 = select r39 r41 r36
+476	    trace_var r40 $19 = r36 (F32)
+477	    trace_line r40 L29
+478	    trace_var r40 $21 = r20 (F32)
+479	    trace_line r40 L30
+480	    r40 = gt_f32 r20 r33
+481	    r40 = bit_and r37 r40
+482	    r40 = bit_and r38 r40
+483	    r41 = bit_and r34 r40
+484	    trace_line r41 L30
+485	    r40 = bit_xor r11 r40
+486	    r40 = bit_and r38 r40
+487	    r38 = bit_and r37 r40
+488	    r41 = bit_and r34 r38
+489	    trace_line r41 L31
+490	    r39 = add_f32 r20 r36
+491	    r36 = select r38 r39 r36
+492	    trace_var r41 $19 = r36 (F32)
+493	    trace_line r41 L29
+494	    trace_var r41 $21 = r21 (F32)
+495	    trace_line r41 L30
+496	    r41 = gt_f32 r21 r33
+497	    r41 = bit_and r37 r41
+498	    r41 = bit_and r40 r41
+499	    r39 = bit_and r34 r41
+500	    trace_line r39 L30
+501	    r41 = bit_xor r11 r41
+502	    r41 = bit_and r40 r41
+503	    r40 = bit_and r37 r41
+504	    r39 = bit_and r34 r40
+505	    trace_line r39 L31
+506	    r38 = add_f32 r21 r36
+507	    r36 = select r40 r38 r36
+508	    trace_var r39 $19 = r36 (F32)
+509	    trace_line r39 L29
+510	    trace_var r39 $21 = r22 (F32)
+511	    trace_line r39 L30
+512	    r33 = gt_f32 r22 r33
 513	    r33 = bit_and r37 r33
-514	    r41 = bit_and r34 r33
-515	    trace_line r41 L31
-516	    r39 = add_f32 r22 r36
-517	    r36 = select r33 r39 r36
-518	    trace_var r41 $19 = r36 (F32)
-519	    trace_line r41 L29
-520	    trace_line r35 L33
-521	    r36 = bit_and r37 r36
-522	    trace_call r35 F3 (exit)
-523	    r36 = eq_f32 r36 r24
-524	    r36 = bit_and r37 r36
-525	    r37 = bit_and r34 r36
-526	    trace_call r37 F4 (enter)
-527	    trace_line r37 L38
-528	    trace_line r37 L39
-529	    trace_var r37 $23 = r25 (F32)
-530	    trace_line r37 L40
-531	    r35 = bit_and r36 r25
-532	    trace_var r37 $22 = r35 (F32)
-533	    trace_line r37 L39
-534	    trace_var r37 $23 = r26 (F32)
-535	    trace_line r37 L40
-536	    r41 = add_f32 r35 r26
-537	    r35 = select r36 r41 r35
-538	    trace_var r37 $22 = r35 (F32)
-539	    trace_line r37 L39
-540	    trace_var r37 $23 = r27 (F32)
-541	    trace_line r37 L40
-542	    r41 = add_f32 r35 r27
-543	    r35 = select r36 r41 r35
-544	    trace_var r37 $22 = r35 (F32)
-545	    trace_line r37 L39
-546	    trace_var r37 $23 = r28 (F32)
-547	    trace_line r37 L40
-548	    r41 = add_f32 r35 r28
-549	    r35 = select r36 r41 r35
-550	    trace_var r37 $22 = r35 (F32)
-551	    trace_line r37 L39
-552	    trace_var r37 $23 = r29 (F32)
-553	    trace_line r37 L40
-554	    r41 = add_f32 r35 r29
-555	    r35 = select r36 r41 r35
-556	    trace_var r37 $22 = r35 (F32)
-557	    trace_line r37 L39
-558	    trace_line r37 L42
-559	    r35 = sub_f32 r35 r30
-560	    r35 = bit_and r36 r35
-561	    trace_call r37 F4 (exit)
-562	    r35 = bit_and r35 r31
-563	    r35 = gt_f32 r32 r35
-564	    r35 = bit_and r36 r35
-565	    r36 = bit_and r34 r35
-566	    trace_call r36 F5 (enter)
-567	    trace_line r36 L47
-568	    trace_line r36 L48
-569	    trace_line r36 L50
-570	    trace_var r36 $24 = r22 (F32)
-571	    trace_var r36 $25 = r22 (F32)
-572	    trace_var r36 $26 = r22 (F32)
-573	    trace_var r36 $27 = r22 (F32)
-574	    trace_line r36 L51
-575	    trace_var r36 $28 = r15 (F32)
-576	    trace_line r36 L52
-577	    r37 = select r35 r15 r22
-578	    trace_var r36 $27 = r37 (F32)
-579	    trace_line r36 L51
-580	    trace_var r36 $28 = r16 (F32)
-581	    trace_line r36 L52
-582	    r41 = select r35 r37 r22
-583	    trace_var r36 $26 = r41 (F32)
-584	    r37 = select r35 r16 r37
+514	    r33 = bit_and r41 r33
+515	    r39 = bit_and r34 r33
+516	    trace_line r39 L30
+517	    r33 = bit_xor r11 r33
+518	    r33 = bit_and r41 r33
+519	    r33 = bit_and r37 r33
+520	    r41 = bit_and r34 r33
+521	    trace_line r41 L31
+522	    r39 = add_f32 r22 r36
+523	    r36 = select r33 r39 r36
+524	    trace_var r41 $19 = r36 (F32)
+525	    trace_line r41 L29
+526	    trace_line r35 L33
+527	    r36 = bit_and r37 r36
+528	    trace_call r35 F3 (exit)
+529	    r36 = eq_f32 r36 r24
+530	    r36 = bit_and r37 r36
+531	    r37 = bit_and r34 r36
+532	    trace_call r37 F4 (enter)
+533	    trace_line r37 L38
+534	    trace_var r37 $22 = r10 (F32)
+535	    trace_line r37 L39
+536	    trace_var r37 $23 = r25 (F32)
+537	    trace_line r37 L40
+538	    r35 = bit_and r36 r25
+539	    trace_var r37 $22 = r35 (F32)
+540	    trace_line r37 L39
+541	    trace_var r37 $23 = r26 (F32)
+542	    trace_line r37 L40
+543	    r41 = add_f32 r35 r26
+544	    r35 = select r36 r41 r35
+545	    trace_var r37 $22 = r35 (F32)
+546	    trace_line r37 L39
+547	    trace_var r37 $23 = r27 (F32)
+548	    trace_line r37 L40
+549	    r41 = add_f32 r35 r27
+550	    r35 = select r36 r41 r35
+551	    trace_var r37 $22 = r35 (F32)
+552	    trace_line r37 L39
+553	    trace_var r37 $23 = r28 (F32)
+554	    trace_line r37 L40
+555	    r41 = add_f32 r35 r28
+556	    r35 = select r36 r41 r35
+557	    trace_var r37 $22 = r35 (F32)
+558	    trace_line r37 L39
+559	    trace_var r37 $23 = r29 (F32)
+560	    trace_line r37 L40
+561	    r41 = add_f32 r35 r29
+562	    r35 = select r36 r41 r35
+563	    trace_var r37 $22 = r35 (F32)
+564	    trace_line r37 L39
+565	    trace_line r37 L42
+566	    r35 = sub_f32 r35 r30
+567	    r35 = bit_and r36 r35
+568	    trace_call r37 F4 (exit)
+569	    r35 = bit_and r35 r31
+570	    r35 = gt_f32 r32 r35
+571	    r35 = bit_and r36 r35
+572	    r36 = bit_and r34 r35
+573	    trace_call r36 F5 (enter)
+574	    trace_line r36 L47
+575	    trace_line r36 L48
+576	    trace_line r36 L50
+577	    trace_var r36 $24 = r22 (F32)
+578	    trace_var r36 $25 = r22 (F32)
+579	    trace_var r36 $26 = r22 (F32)
+580	    trace_var r36 $27 = r22 (F32)
+581	    trace_line r36 L51
+582	    trace_var r36 $28 = r15 (F32)
+583	    trace_line r36 L52
+584	    r37 = select r35 r15 r22
 585	    trace_var r36 $27 = r37 (F32)
 586	    trace_line r36 L51
-587	    trace_var r36 $28 = r17 (F32)
+587	    trace_var r36 $28 = r16 (F32)
 588	    trace_line r36 L52
-589	    r39 = select r35 r41 r22
-590	    trace_var r36 $25 = r39 (F32)
-591	    r41 = select r35 r37 r41
-592	    trace_var r36 $26 = r41 (F32)
-593	    r37 = select r35 r17 r37
-594	    trace_var r36 $27 = r37 (F32)
-595	    trace_line r36 L51
-596	    trace_line r36 L54
-597	    r39 = eq_f32 r15 r39
-598	    r41 = eq_f32 r16 r41
-599	    r37 = eq_f32 r17 r37
-600	    r41 = bit_and r39 r41
-601	    r41 = bit_and r37 r41
-602	    r41 = bit_and r35 r41
-603	    trace_call r36 F5 (exit)
-604	    r41 = bit_and r35 r41
-605	    r35 = bit_and r34 r41
-606	    trace_call r35 F6 (enter)
-607	    trace_line r35 L59
-608	    trace_line r35 L60
-609	    trace_line r35 L62
-610	    trace_var r35 $29 = r22 (F32)
-611	    trace_var r35 $30 = r22 (F32)
-612	    trace_var r35 $31 = r22 (F32)
-613	    trace_var r35 $32 = r22 (F32)
-614	    trace_line r35 L63
-615	    trace_var r35 $33 = r15 (F32)
-616	    trace_line r35 L64
-617	    r36 = select r41 r15 r22
-618	    trace_var r35 $32 = r36 (F32)
-619	    trace_line r35 L63
-620	    trace_var r35 $33 = r16 (F32)
-621	    trace_line r35 L64
-622	    r37 = select r41 r36 r22
-623	    trace_var r35 $31 = r37 (F32)
-624	    r36 = select r41 r16 r36
+589	    r41 = select r35 r37 r22
+590	    trace_var r36 $26 = r41 (F32)
+591	    r37 = select r35 r16 r37
+592	    trace_var r36 $27 = r37 (F32)
+593	    trace_line r36 L51
+594	    trace_var r36 $28 = r17 (F32)
+595	    trace_line r36 L52
+596	    r39 = select r35 r41 r22
+597	    trace_var r36 $25 = r39 (F32)
+598	    r41 = select r35 r37 r41
+599	    trace_var r36 $26 = r41 (F32)
+600	    r37 = select r35 r17 r37
+601	    trace_var r36 $27 = r37 (F32)
+602	    trace_line r36 L51
+603	    trace_line r36 L54
+604	    r39 = eq_f32 r15 r39
+605	    r41 = eq_f32 r16 r41
+606	    r37 = eq_f32 r17 r37
+607	    r41 = bit_and r39 r41
+608	    r41 = bit_and r37 r41
+609	    r41 = bit_and r35 r41
+610	    trace_call r36 F5 (exit)
+611	    r41 = bit_and r35 r41
+612	    r35 = bit_and r34 r41
+613	    trace_call r35 F6 (enter)
+614	    trace_line r35 L59
+615	    trace_line r35 L60
+616	    trace_line r35 L62
+617	    trace_var r35 $29 = r22 (F32)
+618	    trace_var r35 $30 = r22 (F32)
+619	    trace_var r35 $31 = r22 (F32)
+620	    trace_var r35 $32 = r22 (F32)
+621	    trace_line r35 L63
+622	    trace_var r35 $33 = r15 (F32)
+623	    trace_line r35 L64
+624	    r36 = select r41 r15 r22
 625	    trace_var r35 $32 = r36 (F32)
 626	    trace_line r35 L63
-627	    trace_var r35 $33 = r17 (F32)
+627	    trace_var r35 $33 = r16 (F32)
 628	    trace_line r35 L64
-629	    r39 = select r41 r37 r22
-630	    trace_var r35 $30 = r39 (F32)
-631	    r37 = select r41 r36 r37
-632	    trace_var r35 $31 = r37 (F32)
-633	    r36 = select r41 r17 r36
-634	    trace_var r35 $32 = r36 (F32)
-635	    trace_line r35 L63
-636	    trace_line r35 L66
-637	    r39 = eq_f32 r15 r39
-638	    r37 = eq_f32 r16 r37
-639	    r36 = eq_f32 r17 r36
-640	    r37 = bit_and r39 r37
-641	    r37 = bit_and r36 r37
-642	    r37 = bit_and r41 r37
-643	    trace_call r35 F6 (exit)
-644	    r37 = bit_and r41 r37
-645	    r41 = bit_and r34 r37
-646	    trace_call r41 F7 (enter)
-647	    trace_line r41 L71
-648	    trace_line r41 L72
-649	    trace_line r41 L74
-650	    trace_var r41 $34 = r22 (F32)
-651	    trace_var r41 $35 = r22 (F32)
-652	    trace_var r41 $36 = r22 (F32)
-653	    trace_var r41 $37 = r22 (F32)
-654	    trace_line r41 L75
-655	    trace_var r41 $38 = r17 (F32)
-656	    trace_line r41 L76
-657	    r35 = select r37 r17 r22
-658	    trace_var r41 $37 = r35 (F32)
-659	    trace_line r41 L75
-660	    trace_var r41 $38 = r16 (F32)
-661	    trace_line r41 L76
-662	    r36 = select r37 r35 r22
-663	    trace_var r41 $36 = r36 (F32)
-664	    r35 = select r37 r16 r35
+629	    r37 = select r41 r36 r22
+630	    trace_var r35 $31 = r37 (F32)
+631	    r36 = select r41 r16 r36
+632	    trace_var r35 $32 = r36 (F32)
+633	    trace_line r35 L63
+634	    trace_var r35 $33 = r17 (F32)
+635	    trace_line r35 L64
+636	    r39 = select r41 r37 r22
+637	    trace_var r35 $30 = r39 (F32)
+638	    r37 = select r41 r36 r37
+639	    trace_var r35 $31 = r37 (F32)
+640	    r36 = select r41 r17 r36
+641	    trace_var r35 $32 = r36 (F32)
+642	    trace_line r35 L63
+643	    trace_line r35 L66
+644	    r39 = eq_f32 r15 r39
+645	    r37 = eq_f32 r16 r37
+646	    r36 = eq_f32 r17 r36
+647	    r37 = bit_and r39 r37
+648	    r37 = bit_and r36 r37
+649	    r37 = bit_and r41 r37
+650	    trace_call r35 F6 (exit)
+651	    r37 = bit_and r41 r37
+652	    r41 = bit_and r34 r37
+653	    trace_call r41 F7 (enter)
+654	    trace_line r41 L71
+655	    trace_line r41 L72
+656	    trace_line r41 L74
+657	    trace_var r41 $34 = r22 (F32)
+658	    trace_var r41 $35 = r22 (F32)
+659	    trace_var r41 $36 = r22 (F32)
+660	    trace_var r41 $37 = r22 (F32)
+661	    trace_line r41 L75
+662	    trace_var r41 $38 = r17 (F32)
+663	    trace_line r41 L76
+664	    r35 = select r37 r17 r22
 665	    trace_var r41 $37 = r35 (F32)
 666	    trace_line r41 L75
-667	    trace_var r41 $38 = r15 (F32)
+667	    trace_var r41 $38 = r16 (F32)
 668	    trace_line r41 L76
-669	    r39 = select r37 r36 r22
-670	    trace_var r41 $35 = r39 (F32)
-671	    r36 = select r37 r35 r36
-672	    trace_var r41 $36 = r36 (F32)
-673	    r35 = select r37 r15 r35
-674	    trace_var r41 $37 = r35 (F32)
-675	    trace_line r41 L75
-676	    trace_line r41 L78
-677	    r39 = eq_f32 r17 r39
-678	    r36 = eq_f32 r16 r36
-679	    r35 = eq_f32 r15 r35
-680	    r36 = bit_and r39 r36
-681	    r36 = bit_and r35 r36
-682	    r36 = bit_and r37 r36
-683	    trace_call r41 F7 (exit)
-684	    r36 = bit_and r37 r36
-685	    r37 = bit_and r34 r36
-686	    trace_call r37 F8 (enter)
-687	    trace_line r37 L83
-688	    trace_line r37 L84
-689	    trace_line r37 L86
-690	    trace_var r37 $39 = r22 (F32)
-691	    trace_var r37 $40 = r22 (F32)
-692	    trace_var r37 $41 = r22 (F32)
-693	    trace_var r37 $42 = r22 (F32)
-694	    trace_line r37 L87
-695	    trace_var r37 $43 = r17 (F32)
-696	    trace_line r37 L88
-697	    r41 = select r36 r17 r22
-698	    trace_var r37 $42 = r41 (F32)
-699	    trace_line r37 L87
-700	    trace_var r37 $43 = r16 (F32)
-701	    trace_line r37 L88
-702	    r35 = select r36 r41 r22
-703	    trace_var r37 $41 = r35 (F32)
-704	    r41 = select r36 r16 r41
+669	    r36 = select r37 r35 r22
+670	    trace_var r41 $36 = r36 (F32)
+671	    r35 = select r37 r16 r35
+672	    trace_var r41 $37 = r35 (F32)
+673	    trace_line r41 L75
+674	    trace_var r41 $38 = r15 (F32)
+675	    trace_line r41 L76
+676	    r39 = select r37 r36 r22
+677	    trace_var r41 $35 = r39 (F32)
+678	    r36 = select r37 r35 r36
+679	    trace_var r41 $36 = r36 (F32)
+680	    r35 = select r37 r15 r35
+681	    trace_var r41 $37 = r35 (F32)
+682	    trace_line r41 L75
+683	    trace_line r41 L78
+684	    r39 = eq_f32 r17 r39
+685	    r36 = eq_f32 r16 r36
+686	    r35 = eq_f32 r15 r35
+687	    r36 = bit_and r39 r36
+688	    r36 = bit_and r35 r36
+689	    r36 = bit_and r37 r36
+690	    trace_call r41 F7 (exit)
+691	    r36 = bit_and r37 r36
+692	    r37 = bit_and r34 r36
+693	    trace_call r37 F8 (enter)
+694	    trace_line r37 L83
+695	    trace_line r37 L84
+696	    trace_line r37 L86
+697	    trace_var r37 $39 = r22 (F32)
+698	    trace_var r37 $40 = r22 (F32)
+699	    trace_var r37 $41 = r22 (F32)
+700	    trace_var r37 $42 = r22 (F32)
+701	    trace_line r37 L87
+702	    trace_var r37 $43 = r17 (F32)
+703	    trace_line r37 L88
+704	    r41 = select r36 r17 r22
 705	    trace_var r37 $42 = r41 (F32)
 706	    trace_line r37 L87
-707	    trace_var r37 $43 = r15 (F32)
+707	    trace_var r37 $43 = r16 (F32)
 708	    trace_line r37 L88
-709	    r39 = select r36 r35 r22
-710	    trace_var r37 $40 = r39 (F32)
-711	    r35 = select r36 r41 r35
-712	    trace_var r37 $41 = r35 (F32)
-713	    r41 = select r36 r15 r41
-714	    trace_var r37 $42 = r41 (F32)
-715	    trace_line r37 L87
-716	    trace_line r37 L90
-717	    r39 = eq_f32 r17 r39
-718	    r35 = eq_f32 r16 r35
-719	    r41 = eq_f32 r15 r41
-720	    r35 = bit_and r39 r35
-721	    r35 = bit_and r41 r35
-722	    r35 = bit_and r36 r35
-723	    trace_call r37 F8 (exit)
-724	    r35 = bit_and r36 r35
-725	    r36 = bit_and r34 r35
-726	    trace_call r36 F9 (enter)
-727	    trace_line r36 L106
-728	    trace_line r36 L108
-729	    trace_var r36 $44 = r22 (F32)
-730	    trace_var r36 $45 = r22 (F32)
-731	    trace_var r36 $46 = r22 (F32)
-732	    trace_var r36 $47 = r22 (F32)
-733	    trace_line r36 L109
-734	    trace_var r36 $48 = r15 (F32)
-735	    trace_line r36 L110
-736	    r37 = select r35 r15 r22
-737	    trace_var r36 $47 = r37 (F32)
-738	    trace_line r36 L109
-739	    trace_line r36 L112
-740	    r37 = eq_f32 r15 r37
-741	    r37 = bit_and r35 r37
-742	    trace_call r36 F9 (exit)
-743	    r37 = bit_and r35 r37
-744	    r35 = bit_and r34 r37
-745	    trace_call r35 F10 (enter)
-746	    trace_line r35 L95
-747	    trace_line r35 L97
-748	    trace_var r35 $49 = r22 (F32)
-749	    trace_var r35 $50 = r22 (F32)
-750	    trace_var r35 $51 = r22 (F32)
-751	    trace_var r35 $52 = r22 (F32)
-752	    trace_line r35 L98
-753	    trace_var r35 $53 = r15 (F32)
-754	    trace_line r35 L99
-755	    r36 = select r37 r15 r22
-756	    trace_var r35 $52 = r36 (F32)
-757	    trace_line r35 L98
-758	    trace_var r35 $53 = r16 (F32)
-759	    trace_line r35 L99
-760	    r41 = select r37 r36 r22
-761	    trace_var r35 $51 = r41 (F32)
-762	    r36 = select r37 r16 r36
+709	    r35 = select r36 r41 r22
+710	    trace_var r37 $41 = r35 (F32)
+711	    r41 = select r36 r16 r41
+712	    trace_var r37 $42 = r41 (F32)
+713	    trace_line r37 L87
+714	    trace_var r37 $43 = r15 (F32)
+715	    trace_line r37 L88
+716	    r39 = select r36 r35 r22
+717	    trace_var r37 $40 = r39 (F32)
+718	    r35 = select r36 r41 r35
+719	    trace_var r37 $41 = r35 (F32)
+720	    r41 = select r36 r15 r41
+721	    trace_var r37 $42 = r41 (F32)
+722	    trace_line r37 L87
+723	    trace_line r37 L90
+724	    r39 = eq_f32 r17 r39
+725	    r35 = eq_f32 r16 r35
+726	    r41 = eq_f32 r15 r41
+727	    r35 = bit_and r39 r35
+728	    r35 = bit_and r41 r35
+729	    r35 = bit_and r36 r35
+730	    trace_call r37 F8 (exit)
+731	    r35 = bit_and r36 r35
+732	    r36 = bit_and r34 r35
+733	    trace_call r36 F9 (enter)
+734	    trace_line r36 L106
+735	    trace_line r36 L108
+736	    trace_var r36 $44 = r22 (F32)
+737	    trace_var r36 $45 = r22 (F32)
+738	    trace_var r36 $46 = r22 (F32)
+739	    trace_var r36 $47 = r22 (F32)
+740	    trace_line r36 L109
+741	    trace_var r36 $48 = r15 (F32)
+742	    trace_line r36 L110
+743	    r37 = select r35 r15 r22
+744	    trace_var r36 $47 = r37 (F32)
+745	    trace_line r36 L109
+746	    trace_line r36 L112
+747	    r37 = eq_f32 r15 r37
+748	    r37 = bit_and r35 r37
+749	    trace_call r36 F9 (exit)
+750	    r37 = bit_and r35 r37
+751	    r35 = bit_and r34 r37
+752	    trace_call r35 F10 (enter)
+753	    trace_line r35 L95
+754	    trace_line r35 L97
+755	    trace_var r35 $49 = r22 (F32)
+756	    trace_var r35 $50 = r22 (F32)
+757	    trace_var r35 $51 = r22 (F32)
+758	    trace_var r35 $52 = r22 (F32)
+759	    trace_line r35 L98
+760	    trace_var r35 $53 = r15 (F32)
+761	    trace_line r35 L99
+762	    r36 = select r37 r15 r22
 763	    trace_var r35 $52 = r36 (F32)
 764	    trace_line r35 L98
-765	    trace_var r35 $53 = r17 (F32)
+765	    trace_var r35 $53 = r16 (F32)
 766	    trace_line r35 L99
-767	    r39 = select r37 r41 r22
-768	    trace_var r35 $50 = r39 (F32)
-769	    r41 = select r37 r36 r41
-770	    trace_var r35 $51 = r41 (F32)
-771	    r36 = select r37 r17 r36
-772	    trace_var r35 $52 = r36 (F32)
-773	    trace_line r35 L98
-774	    trace_line r35 L101
-775	    r39 = eq_f32 r15 r39
-776	    r41 = eq_f32 r16 r41
-777	    r36 = eq_f32 r17 r36
-778	    r41 = bit_and r39 r41
-779	    r41 = bit_and r36 r41
-780	    r41 = bit_and r37 r41
-781	    trace_call r35 F10 (exit)
-782	    r41 = bit_and r37 r41
-783	    r37 = select r41 r6 r2
-784	    r35 = select r41 r7 r3
-785	    r36 = select r41 r8 r4
-786	    r41 = select r41 r9 r5
-787	    trace_call r34 F0 (exit)
-788	    store32 ptr1 r37
-789	    store32 ptr2 r35
-790	    store32 ptr3 r36
-791	    store32 ptr4 r41
+767	    r41 = select r37 r36 r22
+768	    trace_var r35 $51 = r41 (F32)
+769	    r36 = select r37 r16 r36
+770	    trace_var r35 $52 = r36 (F32)
+771	    trace_line r35 L98
+772	    trace_var r35 $53 = r17 (F32)
+773	    trace_line r35 L99
+774	    r39 = select r37 r41 r22
+775	    trace_var r35 $50 = r39 (F32)
+776	    r41 = select r37 r36 r41
+777	    trace_var r35 $51 = r41 (F32)
+778	    r36 = select r37 r17 r36
+779	    trace_var r35 $52 = r36 (F32)
+780	    trace_line r35 L98
+781	    trace_line r35 L101
+782	    r39 = eq_f32 r15 r39
+783	    r41 = eq_f32 r16 r41
+784	    r36 = eq_f32 r17 r36
+785	    r41 = bit_and r39 r41
+786	    r41 = bit_and r36 r41
+787	    r41 = bit_and r37 r41
+788	    trace_call r35 F10 (exit)
+789	    r41 = bit_and r37 r41
+790	    r37 = select r41 r6 r2
+791	    r35 = select r41 r7 r3
+792	    r36 = select r41 r8 r4
+793	    r41 = select r41 r9 r5
+794	    trace_call r34 F0 (exit)
+795	    store32 ptr1 r37
+796	    store32 ptr2 r35
+797	    store32 ptr3 r36
+798	    store32 ptr4 r41
diff --git a/tests/sksl/runtime/LoopInt.skvm b/tests/sksl/runtime/LoopInt.skvm
index 4df4302..a696a70 100644
--- a/tests/sksl/runtime/LoopInt.skvm
+++ b/tests/sksl/runtime/LoopInt.skvm
@@ -61,7 +61,7 @@
 F8 = bool loop_operator_eq()
 F9 = bool loop_operator_ne()
 
-35 registers, 745 instructions:
+35 registers, 751 instructions:
 0	r0 = splat 42C90000 (100.5)
 1	r1 = uniform32 ptr0 0
 2	r2 = uniform32 ptr0 4
@@ -99,712 +99,718 @@
 33	    trace_var r26 $5 = r7 (F32)
 34	    trace_var r26 $6 = r8 (F32)
 35	    trace_var r26 $7 = r9 (F32)
-36	    trace_var r26 $9 = r13 (I32)
-37	    trace_call r26 F0 (enter)
-38	    trace_var r26 $10 = r25 (F32)
-39	    trace_var r26 $11 = r1 (F32)
-40	    trace_line r26 L107
-41	    r25 = min_f32 r25 r9
-42	    r25 = max_f32 r7 r25
-43	    r25 = trunc r25
-44	    r25 = mul_i32 r25 r14
-45	    trace_var r26 $12 = r25 (I32)
-46	    trace_line r26 L108
-47	    trace_call r26 F1 (enter)
-48	    trace_var r26 $13 = r25 (I32)
-49	    trace_line r26 L8
-50	    trace_line r26 L9
-51	    r27 = eq_i32 r10 r25
-52	    r28 = bit_and r26 r27
-53	    trace_line r28 L9
-54	    r28 = bit_xor r11 r27
-55	    r29 = bit_and r26 r28
-56	    trace_line r29 L8
-57	    trace_var r29 $14 = r15 (I32)
-58	    trace_line r29 L9
-59	    r29 = eq_i32 r25 r15
-60	    r29 = bit_and r28 r29
-61	    r28 = bit_and r26 r29
-62	    trace_line r28 L9
-63	    r28 = bit_and r15 r29
-64	    r29 = bit_or r27 r29
-65	    r27 = bit_xor r11 r29
-66	    r30 = bit_and r26 r27
-67	    trace_line r30 L8
-68	    trace_var r30 $14 = r16 (I32)
-69	    trace_line r30 L9
-70	    r30 = eq_i32 r25 r16
-71	    r30 = bit_and r27 r30
-72	    r27 = bit_and r26 r30
-73	    trace_line r27 L9
-74	    r28 = select r30 r16 r28
-75	    r30 = bit_or r29 r30
-76	    r29 = bit_xor r11 r30
-77	    r27 = bit_and r26 r29
-78	    trace_line r27 L8
-79	    trace_var r27 $14 = r17 (I32)
-80	    trace_line r27 L9
-81	    r27 = eq_i32 r25 r17
-82	    r27 = bit_and r29 r27
-83	    r29 = bit_and r26 r27
-84	    trace_line r29 L9
-85	    r28 = select r27 r17 r28
-86	    r27 = bit_or r30 r27
-87	    r30 = bit_xor r11 r27
-88	    r29 = bit_and r26 r30
-89	    trace_line r29 L8
-90	    trace_var r29 $14 = r18 (I32)
-91	    trace_line r29 L9
-92	    r29 = eq_i32 r25 r18
-93	    r29 = bit_and r30 r29
-94	    r30 = bit_and r26 r29
-95	    trace_line r30 L9
-96	    r28 = select r29 r18 r28
-97	    r29 = bit_or r27 r29
-98	    r27 = bit_xor r11 r29
-99	    r30 = bit_and r26 r27
-100	    trace_line r30 L8
-101	    trace_var r30 $14 = r14 (I32)
-102	    trace_line r30 L9
-103	    r30 = eq_i32 r14 r25
-104	    r30 = bit_and r27 r30
-105	    r27 = bit_and r26 r30
-106	    trace_line r27 L9
-107	    r28 = select r30 r14 r28
-108	    r30 = bit_or r29 r30
-109	    r29 = bit_xor r11 r30
-110	    r27 = bit_and r26 r29
-111	    trace_line r27 L8
-112	    trace_var r27 $14 = r19 (I32)
-113	    trace_line r27 L9
-114	    r27 = eq_i32 r25 r19
-115	    r27 = bit_and r29 r27
-116	    r29 = bit_and r26 r27
-117	    trace_line r29 L9
-118	    r28 = select r27 r19 r28
-119	    r27 = bit_or r30 r27
-120	    r30 = bit_xor r11 r27
-121	    r29 = bit_and r26 r30
-122	    trace_line r29 L8
-123	    trace_var r29 $14 = r20 (I32)
-124	    trace_line r29 L9
-125	    r29 = eq_i32 r25 r20
-126	    r29 = bit_and r30 r29
-127	    r30 = bit_and r26 r29
-128	    trace_line r30 L9
-129	    r28 = select r29 r20 r28
-130	    r29 = bit_or r27 r29
-131	    r27 = bit_xor r11 r29
-132	    r30 = bit_and r26 r27
-133	    trace_line r30 L8
-134	    trace_var r30 $14 = r21 (I32)
-135	    trace_line r30 L9
-136	    r30 = eq_i32 r25 r21
-137	    r30 = bit_and r27 r30
-138	    r27 = bit_and r26 r30
-139	    trace_line r27 L9
-140	    r28 = select r30 r21 r28
-141	    r30 = bit_or r29 r30
-142	    r29 = bit_xor r11 r30
-143	    r27 = bit_and r26 r29
-144	    trace_line r27 L8
-145	    trace_var r27 $14 = r22 (I32)
-146	    trace_line r27 L9
-147	    r27 = eq_i32 r25 r22
-148	    r27 = bit_and r29 r27
-149	    r29 = bit_and r26 r27
-150	    trace_line r29 L9
-151	    r28 = select r27 r22 r28
-152	    r27 = bit_or r30 r27
-153	    r27 = bit_xor r11 r27
-154	    r30 = bit_and r26 r27
-155	    trace_line r30 L8
-156	    trace_line r30 L11
-157	    r27 = bit_clear r28 r27
-158	    trace_call r26 F1 (exit)
-159	    r27 = eq_i32 r14 r27
-160	    r28 = bit_and r26 r27
-161	    trace_call r28 F2 (enter)
-162	    trace_var r28 $15 = r25 (I32)
-163	    trace_line r28 L17
-164	    trace_line r28 L18
-165	    trace_line r28 L19
-166	    r30 = gt_i32 r25 r10
-167	    r30 = bit_and r27 r30
-168	    r29 = bit_and r26 r30
-169	    trace_line r29 L19
-170	    r29 = bit_xor r11 r30
-171	    r31 = bit_and r27 r29
-172	    r31 = bit_and r26 r31
-173	    trace_line r31 L20
-174	    r29 = bit_or r30 r29
-175	    r30 = bit_and r27 r29
-176	    r30 = bit_and r26 r30
-177	    trace_line r30 L18
-178	    trace_var r30 $17 = r15 (I32)
-179	    trace_line r30 L19
-180	    r30 = gt_i32 r25 r15
-181	    r30 = bit_and r27 r30
-182	    r30 = bit_and r29 r30
-183	    r31 = bit_and r26 r30
-184	    trace_line r31 L19
-185	    r31 = bit_xor r11 r30
-186	    r31 = bit_and r29 r31
-187	    r29 = bit_and r27 r31
-188	    r32 = bit_and r26 r29
-189	    trace_line r32 L20
-190	    r29 = bit_and r15 r29
-191	    trace_var r32 $16 = r29 (I32)
-192	    r31 = bit_or r30 r31
-193	    r30 = bit_and r27 r31
-194	    r30 = bit_and r26 r30
-195	    trace_line r30 L18
-196	    trace_var r30 $17 = r16 (I32)
-197	    trace_line r30 L19
-198	    r30 = gt_i32 r25 r16
-199	    r30 = bit_and r27 r30
-200	    r30 = bit_and r31 r30
-201	    r32 = bit_and r26 r30
-202	    trace_line r32 L19
-203	    r32 = bit_xor r11 r30
-204	    r32 = bit_and r31 r32
-205	    r31 = bit_and r27 r32
-206	    r33 = bit_and r26 r31
-207	    trace_line r33 L20
-208	    r34 = add_i32 r16 r29
-209	    r29 = select r31 r34 r29
-210	    trace_var r33 $16 = r29 (I32)
-211	    r32 = bit_or r30 r32
-212	    r30 = bit_and r27 r32
-213	    r30 = bit_and r26 r30
-214	    trace_line r30 L18
-215	    trace_var r30 $17 = r17 (I32)
-216	    trace_line r30 L19
-217	    r30 = gt_i32 r25 r17
-218	    r30 = bit_and r27 r30
-219	    r30 = bit_and r32 r30
-220	    r33 = bit_and r26 r30
-221	    trace_line r33 L19
-222	    r33 = bit_xor r11 r30
-223	    r33 = bit_and r32 r33
-224	    r32 = bit_and r27 r33
-225	    r34 = bit_and r26 r32
-226	    trace_line r34 L20
-227	    r31 = add_i32 r17 r29
-228	    r29 = select r32 r31 r29
-229	    trace_var r34 $16 = r29 (I32)
-230	    r33 = bit_or r30 r33
-231	    r30 = bit_and r27 r33
-232	    r30 = bit_and r26 r30
-233	    trace_line r30 L18
-234	    trace_var r30 $17 = r18 (I32)
-235	    trace_line r30 L19
-236	    r30 = gt_i32 r25 r18
-237	    r30 = bit_and r27 r30
-238	    r30 = bit_and r33 r30
-239	    r34 = bit_and r26 r30
-240	    trace_line r34 L19
-241	    r34 = bit_xor r11 r30
-242	    r34 = bit_and r33 r34
-243	    r33 = bit_and r27 r34
-244	    r31 = bit_and r26 r33
-245	    trace_line r31 L20
-246	    r32 = add_i32 r18 r29
-247	    r29 = select r33 r32 r29
-248	    trace_var r31 $16 = r29 (I32)
-249	    r34 = bit_or r30 r34
-250	    r30 = bit_and r27 r34
-251	    r30 = bit_and r26 r30
-252	    trace_line r30 L18
-253	    trace_var r30 $17 = r14 (I32)
-254	    trace_line r30 L19
-255	    r30 = gt_i32 r25 r14
-256	    r30 = bit_and r27 r30
-257	    r30 = bit_and r34 r30
-258	    r31 = bit_and r26 r30
-259	    trace_line r31 L19
-260	    r31 = bit_xor r11 r30
-261	    r31 = bit_and r34 r31
-262	    r34 = bit_and r27 r31
-263	    r32 = bit_and r26 r34
-264	    trace_line r32 L20
-265	    r33 = add_i32 r14 r29
-266	    r29 = select r34 r33 r29
-267	    trace_var r32 $16 = r29 (I32)
-268	    r31 = bit_or r30 r31
-269	    r30 = bit_and r27 r31
-270	    r30 = bit_and r26 r30
-271	    trace_line r30 L18
-272	    trace_var r30 $17 = r19 (I32)
-273	    trace_line r30 L19
-274	    r30 = gt_i32 r25 r19
-275	    r30 = bit_and r27 r30
-276	    r30 = bit_and r31 r30
-277	    r32 = bit_and r26 r30
-278	    trace_line r32 L19
-279	    r32 = bit_xor r11 r30
-280	    r32 = bit_and r31 r32
-281	    r31 = bit_and r27 r32
-282	    r33 = bit_and r26 r31
-283	    trace_line r33 L20
-284	    r34 = add_i32 r19 r29
-285	    r29 = select r31 r34 r29
-286	    trace_var r33 $16 = r29 (I32)
-287	    r32 = bit_or r30 r32
-288	    r30 = bit_and r27 r32
-289	    r30 = bit_and r26 r30
-290	    trace_line r30 L18
-291	    trace_var r30 $17 = r20 (I32)
-292	    trace_line r30 L19
-293	    r30 = gt_i32 r25 r20
-294	    r30 = bit_and r27 r30
-295	    r30 = bit_and r32 r30
-296	    r33 = bit_and r26 r30
-297	    trace_line r33 L19
-298	    r33 = bit_xor r11 r30
-299	    r33 = bit_and r32 r33
-300	    r32 = bit_and r27 r33
-301	    r34 = bit_and r26 r32
-302	    trace_line r34 L20
-303	    r31 = add_i32 r20 r29
-304	    r29 = select r32 r31 r29
-305	    trace_var r34 $16 = r29 (I32)
-306	    r33 = bit_or r30 r33
-307	    r30 = bit_and r27 r33
-308	    r30 = bit_and r26 r30
-309	    trace_line r30 L18
-310	    trace_var r30 $17 = r21 (I32)
-311	    trace_line r30 L19
-312	    r30 = gt_i32 r25 r21
-313	    r30 = bit_and r27 r30
-314	    r30 = bit_and r33 r30
-315	    r34 = bit_and r26 r30
-316	    trace_line r34 L19
-317	    r34 = bit_xor r11 r30
-318	    r34 = bit_and r33 r34
-319	    r33 = bit_and r27 r34
-320	    r31 = bit_and r26 r33
-321	    trace_line r31 L20
-322	    r32 = add_i32 r21 r29
-323	    r29 = select r33 r32 r29
-324	    trace_var r31 $16 = r29 (I32)
-325	    r34 = bit_or r30 r34
-326	    r30 = bit_and r27 r34
-327	    r30 = bit_and r26 r30
-328	    trace_line r30 L18
-329	    trace_var r30 $17 = r22 (I32)
-330	    trace_line r30 L19
-331	    r30 = gt_i32 r25 r22
-332	    r30 = bit_and r27 r30
-333	    r30 = bit_and r34 r30
-334	    r31 = bit_and r26 r30
-335	    trace_line r31 L19
-336	    r31 = bit_xor r11 r30
-337	    r31 = bit_and r34 r31
-338	    r34 = bit_and r27 r31
-339	    r32 = bit_and r26 r34
-340	    trace_line r32 L20
-341	    r33 = add_i32 r22 r29
-342	    r29 = select r34 r33 r29
-343	    trace_var r32 $16 = r29 (I32)
-344	    r31 = bit_or r30 r31
-345	    r31 = bit_and r27 r31
-346	    r31 = bit_and r26 r31
-347	    trace_line r31 L18
-348	    trace_line r28 L22
-349	    r29 = bit_and r27 r29
-350	    trace_call r28 F2 (exit)
-351	    r29 = eq_i32 r29 r23
-352	    r29 = bit_and r27 r29
-353	    r27 = bit_and r26 r29
-354	    trace_call r27 F3 (enter)
-355	    trace_var r27 $18 = r25 (I32)
-356	    trace_line r27 L27
-357	    trace_line r27 L28
-358	    trace_var r27 $20 = r15 (I32)
-359	    trace_line r27 L29
-360	    trace_line r27 L30
-361	    r28 = gt_i32 r10 r25
-362	    r28 = bit_and r29 r28
-363	    r31 = bit_and r26 r28
-364	    trace_line r31 L30
-365	    r28 = bit_xor r11 r28
-366	    r31 = bit_and r29 r28
-367	    r31 = bit_and r26 r31
-368	    trace_line r31 L31
-369	    trace_line r31 L29
-370	    trace_var r31 $21 = r15 (I32)
-371	    trace_line r31 L30
-372	    r31 = gt_i32 r15 r25
-373	    r31 = bit_and r29 r31
-374	    r31 = bit_and r28 r31
-375	    r30 = bit_and r26 r31
-376	    trace_line r30 L30
-377	    r31 = bit_xor r11 r31
-378	    r31 = bit_and r28 r31
-379	    r28 = bit_and r29 r31
-380	    r30 = bit_and r26 r28
-381	    trace_line r30 L31
-382	    r28 = bit_and r15 r28
-383	    trace_var r30 $19 = r28 (I32)
-384	    trace_line r30 L29
-385	    trace_var r30 $21 = r16 (I32)
-386	    trace_line r30 L30
-387	    r30 = gt_i32 r16 r25
-388	    r30 = bit_and r29 r30
-389	    r30 = bit_and r31 r30
-390	    r32 = bit_and r26 r30
-391	    trace_line r32 L30
-392	    r30 = bit_xor r11 r30
-393	    r30 = bit_and r31 r30
-394	    r31 = bit_and r29 r30
-395	    r32 = bit_and r26 r31
-396	    trace_line r32 L31
-397	    r33 = add_i32 r16 r28
-398	    r28 = select r31 r33 r28
-399	    trace_var r32 $19 = r28 (I32)
-400	    trace_line r32 L29
-401	    trace_var r32 $21 = r17 (I32)
-402	    trace_line r32 L30
-403	    r32 = gt_i32 r17 r25
-404	    r32 = bit_and r29 r32
-405	    r32 = bit_and r30 r32
-406	    r33 = bit_and r26 r32
-407	    trace_line r33 L30
-408	    r32 = bit_xor r11 r32
-409	    r32 = bit_and r30 r32
-410	    r30 = bit_and r29 r32
-411	    r33 = bit_and r26 r30
-412	    trace_line r33 L31
-413	    r31 = add_i32 r17 r28
-414	    r28 = select r30 r31 r28
-415	    trace_var r33 $19 = r28 (I32)
-416	    trace_line r33 L29
-417	    trace_var r33 $21 = r18 (I32)
-418	    trace_line r33 L30
-419	    r33 = gt_i32 r18 r25
-420	    r33 = bit_and r29 r33
-421	    r33 = bit_and r32 r33
-422	    r31 = bit_and r26 r33
-423	    trace_line r31 L30
-424	    r33 = bit_xor r11 r33
-425	    r33 = bit_and r32 r33
-426	    r32 = bit_and r29 r33
-427	    r31 = bit_and r26 r32
-428	    trace_line r31 L31
-429	    r30 = add_i32 r18 r28
-430	    r28 = select r32 r30 r28
-431	    trace_var r31 $19 = r28 (I32)
-432	    trace_line r31 L29
-433	    trace_var r31 $21 = r14 (I32)
-434	    trace_line r31 L30
-435	    r31 = gt_i32 r14 r25
-436	    r31 = bit_and r29 r31
-437	    r31 = bit_and r33 r31
-438	    r30 = bit_and r26 r31
-439	    trace_line r30 L30
-440	    r31 = bit_xor r11 r31
-441	    r31 = bit_and r33 r31
-442	    r33 = bit_and r29 r31
-443	    r30 = bit_and r26 r33
-444	    trace_line r30 L31
-445	    r32 = add_i32 r14 r28
-446	    r28 = select r33 r32 r28
-447	    trace_var r30 $19 = r28 (I32)
-448	    trace_line r30 L29
-449	    trace_var r30 $21 = r19 (I32)
-450	    trace_line r30 L30
-451	    r30 = gt_i32 r19 r25
-452	    r30 = bit_and r29 r30
-453	    r30 = bit_and r31 r30
-454	    r32 = bit_and r26 r30
-455	    trace_line r32 L30
-456	    r30 = bit_xor r11 r30
-457	    r30 = bit_and r31 r30
-458	    r31 = bit_and r29 r30
-459	    r32 = bit_and r26 r31
-460	    trace_line r32 L31
-461	    r33 = add_i32 r19 r28
-462	    r28 = select r31 r33 r28
-463	    trace_var r32 $19 = r28 (I32)
-464	    trace_line r32 L29
-465	    trace_var r32 $21 = r20 (I32)
-466	    trace_line r32 L30
-467	    r32 = gt_i32 r20 r25
-468	    r32 = bit_and r29 r32
-469	    r32 = bit_and r30 r32
-470	    r33 = bit_and r26 r32
-471	    trace_line r33 L30
-472	    r32 = bit_xor r11 r32
-473	    r32 = bit_and r30 r32
-474	    r30 = bit_and r29 r32
-475	    r33 = bit_and r26 r30
-476	    trace_line r33 L31
-477	    r31 = add_i32 r20 r28
-478	    r28 = select r30 r31 r28
-479	    trace_var r33 $19 = r28 (I32)
-480	    trace_line r33 L29
-481	    trace_var r33 $21 = r21 (I32)
-482	    trace_line r33 L30
-483	    r33 = gt_i32 r21 r25
-484	    r33 = bit_and r29 r33
-485	    r33 = bit_and r32 r33
-486	    r31 = bit_and r26 r33
-487	    trace_line r31 L30
-488	    r33 = bit_xor r11 r33
-489	    r33 = bit_and r32 r33
-490	    r32 = bit_and r29 r33
-491	    r31 = bit_and r26 r32
-492	    trace_line r31 L31
-493	    r30 = add_i32 r21 r28
-494	    r28 = select r32 r30 r28
-495	    trace_var r31 $19 = r28 (I32)
-496	    trace_line r31 L29
-497	    trace_var r31 $21 = r22 (I32)
-498	    trace_line r31 L30
-499	    r25 = gt_i32 r22 r25
-500	    r25 = bit_and r29 r25
-501	    r25 = bit_and r33 r25
-502	    r31 = bit_and r26 r25
-503	    trace_line r31 L30
-504	    r25 = bit_xor r11 r25
-505	    r25 = bit_and r33 r25
+36	    trace_var r26 $8 = r10 (I32)
+37	    trace_var r26 $9 = r13 (I32)
+38	    trace_call r26 F0 (enter)
+39	    trace_var r26 $10 = r25 (F32)
+40	    trace_var r26 $11 = r1 (F32)
+41	    trace_line r26 L107
+42	    r25 = min_f32 r25 r9
+43	    r25 = max_f32 r7 r25
+44	    r25 = trunc r25
+45	    r25 = mul_i32 r25 r14
+46	    trace_var r26 $12 = r25 (I32)
+47	    trace_line r26 L108
+48	    trace_call r26 F1 (enter)
+49	    trace_var r26 $13 = r25 (I32)
+50	    trace_line r26 L8
+51	    trace_var r26 $14 = r10 (I32)
+52	    trace_line r26 L9
+53	    r27 = eq_i32 r10 r25
+54	    r28 = bit_and r26 r27
+55	    trace_line r28 L9
+56	    r28 = bit_xor r11 r27
+57	    r29 = bit_and r26 r28
+58	    trace_line r29 L8
+59	    trace_var r29 $14 = r15 (I32)
+60	    trace_line r29 L9
+61	    r29 = eq_i32 r25 r15
+62	    r29 = bit_and r28 r29
+63	    r28 = bit_and r26 r29
+64	    trace_line r28 L9
+65	    r28 = bit_and r15 r29
+66	    r29 = bit_or r27 r29
+67	    r27 = bit_xor r11 r29
+68	    r30 = bit_and r26 r27
+69	    trace_line r30 L8
+70	    trace_var r30 $14 = r16 (I32)
+71	    trace_line r30 L9
+72	    r30 = eq_i32 r25 r16
+73	    r30 = bit_and r27 r30
+74	    r27 = bit_and r26 r30
+75	    trace_line r27 L9
+76	    r28 = select r30 r16 r28
+77	    r30 = bit_or r29 r30
+78	    r29 = bit_xor r11 r30
+79	    r27 = bit_and r26 r29
+80	    trace_line r27 L8
+81	    trace_var r27 $14 = r17 (I32)
+82	    trace_line r27 L9
+83	    r27 = eq_i32 r25 r17
+84	    r27 = bit_and r29 r27
+85	    r29 = bit_and r26 r27
+86	    trace_line r29 L9
+87	    r28 = select r27 r17 r28
+88	    r27 = bit_or r30 r27
+89	    r30 = bit_xor r11 r27
+90	    r29 = bit_and r26 r30
+91	    trace_line r29 L8
+92	    trace_var r29 $14 = r18 (I32)
+93	    trace_line r29 L9
+94	    r29 = eq_i32 r25 r18
+95	    r29 = bit_and r30 r29
+96	    r30 = bit_and r26 r29
+97	    trace_line r30 L9
+98	    r28 = select r29 r18 r28
+99	    r29 = bit_or r27 r29
+100	    r27 = bit_xor r11 r29
+101	    r30 = bit_and r26 r27
+102	    trace_line r30 L8
+103	    trace_var r30 $14 = r14 (I32)
+104	    trace_line r30 L9
+105	    r30 = eq_i32 r14 r25
+106	    r30 = bit_and r27 r30
+107	    r27 = bit_and r26 r30
+108	    trace_line r27 L9
+109	    r28 = select r30 r14 r28
+110	    r30 = bit_or r29 r30
+111	    r29 = bit_xor r11 r30
+112	    r27 = bit_and r26 r29
+113	    trace_line r27 L8
+114	    trace_var r27 $14 = r19 (I32)
+115	    trace_line r27 L9
+116	    r27 = eq_i32 r25 r19
+117	    r27 = bit_and r29 r27
+118	    r29 = bit_and r26 r27
+119	    trace_line r29 L9
+120	    r28 = select r27 r19 r28
+121	    r27 = bit_or r30 r27
+122	    r30 = bit_xor r11 r27
+123	    r29 = bit_and r26 r30
+124	    trace_line r29 L8
+125	    trace_var r29 $14 = r20 (I32)
+126	    trace_line r29 L9
+127	    r29 = eq_i32 r25 r20
+128	    r29 = bit_and r30 r29
+129	    r30 = bit_and r26 r29
+130	    trace_line r30 L9
+131	    r28 = select r29 r20 r28
+132	    r29 = bit_or r27 r29
+133	    r27 = bit_xor r11 r29
+134	    r30 = bit_and r26 r27
+135	    trace_line r30 L8
+136	    trace_var r30 $14 = r21 (I32)
+137	    trace_line r30 L9
+138	    r30 = eq_i32 r25 r21
+139	    r30 = bit_and r27 r30
+140	    r27 = bit_and r26 r30
+141	    trace_line r27 L9
+142	    r28 = select r30 r21 r28
+143	    r30 = bit_or r29 r30
+144	    r29 = bit_xor r11 r30
+145	    r27 = bit_and r26 r29
+146	    trace_line r27 L8
+147	    trace_var r27 $14 = r22 (I32)
+148	    trace_line r27 L9
+149	    r27 = eq_i32 r25 r22
+150	    r27 = bit_and r29 r27
+151	    r29 = bit_and r26 r27
+152	    trace_line r29 L9
+153	    r28 = select r27 r22 r28
+154	    r27 = bit_or r30 r27
+155	    r27 = bit_xor r11 r27
+156	    r30 = bit_and r26 r27
+157	    trace_line r30 L8
+158	    trace_line r30 L11
+159	    r27 = bit_clear r28 r27
+160	    trace_call r26 F1 (exit)
+161	    r27 = eq_i32 r14 r27
+162	    r28 = bit_and r26 r27
+163	    trace_call r28 F2 (enter)
+164	    trace_var r28 $15 = r25 (I32)
+165	    trace_line r28 L17
+166	    trace_var r28 $16 = r10 (I32)
+167	    trace_line r28 L18
+168	    trace_var r28 $17 = r10 (I32)
+169	    trace_line r28 L19
+170	    r30 = gt_i32 r25 r10
+171	    r30 = bit_and r27 r30
+172	    r29 = bit_and r26 r30
+173	    trace_line r29 L19
+174	    r29 = bit_xor r11 r30
+175	    r31 = bit_and r27 r29
+176	    r31 = bit_and r26 r31
+177	    trace_line r31 L20
+178	    r29 = bit_or r30 r29
+179	    r30 = bit_and r27 r29
+180	    r30 = bit_and r26 r30
+181	    trace_line r30 L18
+182	    trace_var r30 $17 = r15 (I32)
+183	    trace_line r30 L19
+184	    r30 = gt_i32 r25 r15
+185	    r30 = bit_and r27 r30
+186	    r30 = bit_and r29 r30
+187	    r31 = bit_and r26 r30
+188	    trace_line r31 L19
+189	    r31 = bit_xor r11 r30
+190	    r31 = bit_and r29 r31
+191	    r29 = bit_and r27 r31
+192	    r32 = bit_and r26 r29
+193	    trace_line r32 L20
+194	    r29 = bit_and r15 r29
+195	    trace_var r32 $16 = r29 (I32)
+196	    r31 = bit_or r30 r31
+197	    r30 = bit_and r27 r31
+198	    r30 = bit_and r26 r30
+199	    trace_line r30 L18
+200	    trace_var r30 $17 = r16 (I32)
+201	    trace_line r30 L19
+202	    r30 = gt_i32 r25 r16
+203	    r30 = bit_and r27 r30
+204	    r30 = bit_and r31 r30
+205	    r32 = bit_and r26 r30
+206	    trace_line r32 L19
+207	    r32 = bit_xor r11 r30
+208	    r32 = bit_and r31 r32
+209	    r31 = bit_and r27 r32
+210	    r33 = bit_and r26 r31
+211	    trace_line r33 L20
+212	    r34 = add_i32 r16 r29
+213	    r29 = select r31 r34 r29
+214	    trace_var r33 $16 = r29 (I32)
+215	    r32 = bit_or r30 r32
+216	    r30 = bit_and r27 r32
+217	    r30 = bit_and r26 r30
+218	    trace_line r30 L18
+219	    trace_var r30 $17 = r17 (I32)
+220	    trace_line r30 L19
+221	    r30 = gt_i32 r25 r17
+222	    r30 = bit_and r27 r30
+223	    r30 = bit_and r32 r30
+224	    r33 = bit_and r26 r30
+225	    trace_line r33 L19
+226	    r33 = bit_xor r11 r30
+227	    r33 = bit_and r32 r33
+228	    r32 = bit_and r27 r33
+229	    r34 = bit_and r26 r32
+230	    trace_line r34 L20
+231	    r31 = add_i32 r17 r29
+232	    r29 = select r32 r31 r29
+233	    trace_var r34 $16 = r29 (I32)
+234	    r33 = bit_or r30 r33
+235	    r30 = bit_and r27 r33
+236	    r30 = bit_and r26 r30
+237	    trace_line r30 L18
+238	    trace_var r30 $17 = r18 (I32)
+239	    trace_line r30 L19
+240	    r30 = gt_i32 r25 r18
+241	    r30 = bit_and r27 r30
+242	    r30 = bit_and r33 r30
+243	    r34 = bit_and r26 r30
+244	    trace_line r34 L19
+245	    r34 = bit_xor r11 r30
+246	    r34 = bit_and r33 r34
+247	    r33 = bit_and r27 r34
+248	    r31 = bit_and r26 r33
+249	    trace_line r31 L20
+250	    r32 = add_i32 r18 r29
+251	    r29 = select r33 r32 r29
+252	    trace_var r31 $16 = r29 (I32)
+253	    r34 = bit_or r30 r34
+254	    r30 = bit_and r27 r34
+255	    r30 = bit_and r26 r30
+256	    trace_line r30 L18
+257	    trace_var r30 $17 = r14 (I32)
+258	    trace_line r30 L19
+259	    r30 = gt_i32 r25 r14
+260	    r30 = bit_and r27 r30
+261	    r30 = bit_and r34 r30
+262	    r31 = bit_and r26 r30
+263	    trace_line r31 L19
+264	    r31 = bit_xor r11 r30
+265	    r31 = bit_and r34 r31
+266	    r34 = bit_and r27 r31
+267	    r32 = bit_and r26 r34
+268	    trace_line r32 L20
+269	    r33 = add_i32 r14 r29
+270	    r29 = select r34 r33 r29
+271	    trace_var r32 $16 = r29 (I32)
+272	    r31 = bit_or r30 r31
+273	    r30 = bit_and r27 r31
+274	    r30 = bit_and r26 r30
+275	    trace_line r30 L18
+276	    trace_var r30 $17 = r19 (I32)
+277	    trace_line r30 L19
+278	    r30 = gt_i32 r25 r19
+279	    r30 = bit_and r27 r30
+280	    r30 = bit_and r31 r30
+281	    r32 = bit_and r26 r30
+282	    trace_line r32 L19
+283	    r32 = bit_xor r11 r30
+284	    r32 = bit_and r31 r32
+285	    r31 = bit_and r27 r32
+286	    r33 = bit_and r26 r31
+287	    trace_line r33 L20
+288	    r34 = add_i32 r19 r29
+289	    r29 = select r31 r34 r29
+290	    trace_var r33 $16 = r29 (I32)
+291	    r32 = bit_or r30 r32
+292	    r30 = bit_and r27 r32
+293	    r30 = bit_and r26 r30
+294	    trace_line r30 L18
+295	    trace_var r30 $17 = r20 (I32)
+296	    trace_line r30 L19
+297	    r30 = gt_i32 r25 r20
+298	    r30 = bit_and r27 r30
+299	    r30 = bit_and r32 r30
+300	    r33 = bit_and r26 r30
+301	    trace_line r33 L19
+302	    r33 = bit_xor r11 r30
+303	    r33 = bit_and r32 r33
+304	    r32 = bit_and r27 r33
+305	    r34 = bit_and r26 r32
+306	    trace_line r34 L20
+307	    r31 = add_i32 r20 r29
+308	    r29 = select r32 r31 r29
+309	    trace_var r34 $16 = r29 (I32)
+310	    r33 = bit_or r30 r33
+311	    r30 = bit_and r27 r33
+312	    r30 = bit_and r26 r30
+313	    trace_line r30 L18
+314	    trace_var r30 $17 = r21 (I32)
+315	    trace_line r30 L19
+316	    r30 = gt_i32 r25 r21
+317	    r30 = bit_and r27 r30
+318	    r30 = bit_and r33 r30
+319	    r34 = bit_and r26 r30
+320	    trace_line r34 L19
+321	    r34 = bit_xor r11 r30
+322	    r34 = bit_and r33 r34
+323	    r33 = bit_and r27 r34
+324	    r31 = bit_and r26 r33
+325	    trace_line r31 L20
+326	    r32 = add_i32 r21 r29
+327	    r29 = select r33 r32 r29
+328	    trace_var r31 $16 = r29 (I32)
+329	    r34 = bit_or r30 r34
+330	    r30 = bit_and r27 r34
+331	    r30 = bit_and r26 r30
+332	    trace_line r30 L18
+333	    trace_var r30 $17 = r22 (I32)
+334	    trace_line r30 L19
+335	    r30 = gt_i32 r25 r22
+336	    r30 = bit_and r27 r30
+337	    r30 = bit_and r34 r30
+338	    r31 = bit_and r26 r30
+339	    trace_line r31 L19
+340	    r31 = bit_xor r11 r30
+341	    r31 = bit_and r34 r31
+342	    r34 = bit_and r27 r31
+343	    r32 = bit_and r26 r34
+344	    trace_line r32 L20
+345	    r33 = add_i32 r22 r29
+346	    r29 = select r34 r33 r29
+347	    trace_var r32 $16 = r29 (I32)
+348	    r31 = bit_or r30 r31
+349	    r31 = bit_and r27 r31
+350	    r31 = bit_and r26 r31
+351	    trace_line r31 L18
+352	    trace_line r28 L22
+353	    r29 = bit_and r27 r29
+354	    trace_call r28 F2 (exit)
+355	    r29 = eq_i32 r29 r23
+356	    r29 = bit_and r27 r29
+357	    r27 = bit_and r26 r29
+358	    trace_call r27 F3 (enter)
+359	    trace_var r27 $18 = r25 (I32)
+360	    trace_line r27 L27
+361	    trace_var r27 $19 = r10 (I32)
+362	    trace_line r27 L28
+363	    trace_var r27 $20 = r15 (I32)
+364	    trace_line r27 L29
+365	    trace_var r27 $21 = r10 (I32)
+366	    trace_line r27 L30
+367	    r28 = gt_i32 r10 r25
+368	    r28 = bit_and r29 r28
+369	    r31 = bit_and r26 r28
+370	    trace_line r31 L30
+371	    r28 = bit_xor r11 r28
+372	    r31 = bit_and r29 r28
+373	    r31 = bit_and r26 r31
+374	    trace_line r31 L31
+375	    trace_line r31 L29
+376	    trace_var r31 $21 = r15 (I32)
+377	    trace_line r31 L30
+378	    r31 = gt_i32 r15 r25
+379	    r31 = bit_and r29 r31
+380	    r31 = bit_and r28 r31
+381	    r30 = bit_and r26 r31
+382	    trace_line r30 L30
+383	    r31 = bit_xor r11 r31
+384	    r31 = bit_and r28 r31
+385	    r28 = bit_and r29 r31
+386	    r30 = bit_and r26 r28
+387	    trace_line r30 L31
+388	    r28 = bit_and r15 r28
+389	    trace_var r30 $19 = r28 (I32)
+390	    trace_line r30 L29
+391	    trace_var r30 $21 = r16 (I32)
+392	    trace_line r30 L30
+393	    r30 = gt_i32 r16 r25
+394	    r30 = bit_and r29 r30
+395	    r30 = bit_and r31 r30
+396	    r32 = bit_and r26 r30
+397	    trace_line r32 L30
+398	    r30 = bit_xor r11 r30
+399	    r30 = bit_and r31 r30
+400	    r31 = bit_and r29 r30
+401	    r32 = bit_and r26 r31
+402	    trace_line r32 L31
+403	    r33 = add_i32 r16 r28
+404	    r28 = select r31 r33 r28
+405	    trace_var r32 $19 = r28 (I32)
+406	    trace_line r32 L29
+407	    trace_var r32 $21 = r17 (I32)
+408	    trace_line r32 L30
+409	    r32 = gt_i32 r17 r25
+410	    r32 = bit_and r29 r32
+411	    r32 = bit_and r30 r32
+412	    r33 = bit_and r26 r32
+413	    trace_line r33 L30
+414	    r32 = bit_xor r11 r32
+415	    r32 = bit_and r30 r32
+416	    r30 = bit_and r29 r32
+417	    r33 = bit_and r26 r30
+418	    trace_line r33 L31
+419	    r31 = add_i32 r17 r28
+420	    r28 = select r30 r31 r28
+421	    trace_var r33 $19 = r28 (I32)
+422	    trace_line r33 L29
+423	    trace_var r33 $21 = r18 (I32)
+424	    trace_line r33 L30
+425	    r33 = gt_i32 r18 r25
+426	    r33 = bit_and r29 r33
+427	    r33 = bit_and r32 r33
+428	    r31 = bit_and r26 r33
+429	    trace_line r31 L30
+430	    r33 = bit_xor r11 r33
+431	    r33 = bit_and r32 r33
+432	    r32 = bit_and r29 r33
+433	    r31 = bit_and r26 r32
+434	    trace_line r31 L31
+435	    r30 = add_i32 r18 r28
+436	    r28 = select r32 r30 r28
+437	    trace_var r31 $19 = r28 (I32)
+438	    trace_line r31 L29
+439	    trace_var r31 $21 = r14 (I32)
+440	    trace_line r31 L30
+441	    r31 = gt_i32 r14 r25
+442	    r31 = bit_and r29 r31
+443	    r31 = bit_and r33 r31
+444	    r30 = bit_and r26 r31
+445	    trace_line r30 L30
+446	    r31 = bit_xor r11 r31
+447	    r31 = bit_and r33 r31
+448	    r33 = bit_and r29 r31
+449	    r30 = bit_and r26 r33
+450	    trace_line r30 L31
+451	    r32 = add_i32 r14 r28
+452	    r28 = select r33 r32 r28
+453	    trace_var r30 $19 = r28 (I32)
+454	    trace_line r30 L29
+455	    trace_var r30 $21 = r19 (I32)
+456	    trace_line r30 L30
+457	    r30 = gt_i32 r19 r25
+458	    r30 = bit_and r29 r30
+459	    r30 = bit_and r31 r30
+460	    r32 = bit_and r26 r30
+461	    trace_line r32 L30
+462	    r30 = bit_xor r11 r30
+463	    r30 = bit_and r31 r30
+464	    r31 = bit_and r29 r30
+465	    r32 = bit_and r26 r31
+466	    trace_line r32 L31
+467	    r33 = add_i32 r19 r28
+468	    r28 = select r31 r33 r28
+469	    trace_var r32 $19 = r28 (I32)
+470	    trace_line r32 L29
+471	    trace_var r32 $21 = r20 (I32)
+472	    trace_line r32 L30
+473	    r32 = gt_i32 r20 r25
+474	    r32 = bit_and r29 r32
+475	    r32 = bit_and r30 r32
+476	    r33 = bit_and r26 r32
+477	    trace_line r33 L30
+478	    r32 = bit_xor r11 r32
+479	    r32 = bit_and r30 r32
+480	    r30 = bit_and r29 r32
+481	    r33 = bit_and r26 r30
+482	    trace_line r33 L31
+483	    r31 = add_i32 r20 r28
+484	    r28 = select r30 r31 r28
+485	    trace_var r33 $19 = r28 (I32)
+486	    trace_line r33 L29
+487	    trace_var r33 $21 = r21 (I32)
+488	    trace_line r33 L30
+489	    r33 = gt_i32 r21 r25
+490	    r33 = bit_and r29 r33
+491	    r33 = bit_and r32 r33
+492	    r31 = bit_and r26 r33
+493	    trace_line r31 L30
+494	    r33 = bit_xor r11 r33
+495	    r33 = bit_and r32 r33
+496	    r32 = bit_and r29 r33
+497	    r31 = bit_and r26 r32
+498	    trace_line r31 L31
+499	    r30 = add_i32 r21 r28
+500	    r28 = select r32 r30 r28
+501	    trace_var r31 $19 = r28 (I32)
+502	    trace_line r31 L29
+503	    trace_var r31 $21 = r22 (I32)
+504	    trace_line r31 L30
+505	    r25 = gt_i32 r22 r25
 506	    r25 = bit_and r29 r25
-507	    r33 = bit_and r26 r25
-508	    trace_line r33 L31
-509	    r31 = add_i32 r22 r28
-510	    r28 = select r25 r31 r28
-511	    trace_var r33 $19 = r28 (I32)
-512	    trace_line r33 L29
-513	    trace_line r27 L33
-514	    r28 = bit_and r29 r28
-515	    trace_call r27 F3 (exit)
-516	    r28 = eq_i32 r28 r24
-517	    r28 = bit_and r29 r28
-518	    r29 = bit_and r26 r28
-519	    trace_call r29 F4 (enter)
-520	    trace_line r29 L38
-521	    trace_line r29 L39
-522	    trace_line r29 L41
-523	    trace_var r29 $22 = r22 (I32)
-524	    trace_var r29 $23 = r22 (I32)
-525	    trace_var r29 $24 = r22 (I32)
-526	    trace_var r29 $25 = r22 (I32)
-527	    trace_line r29 L42
-528	    trace_var r29 $26 = r15 (I32)
-529	    trace_line r29 L43
-530	    r27 = select r28 r15 r22
-531	    trace_var r29 $25 = r27 (I32)
-532	    trace_line r29 L42
-533	    trace_var r29 $26 = r16 (I32)
-534	    trace_line r29 L43
-535	    r33 = select r28 r27 r22
-536	    trace_var r29 $24 = r33 (I32)
-537	    r27 = select r28 r16 r27
-538	    trace_var r29 $25 = r27 (I32)
-539	    trace_line r29 L42
-540	    trace_var r29 $26 = r17 (I32)
-541	    trace_line r29 L43
-542	    r31 = select r28 r33 r22
-543	    trace_var r29 $23 = r31 (I32)
-544	    r33 = select r28 r27 r33
-545	    trace_var r29 $24 = r33 (I32)
-546	    r27 = select r28 r17 r27
-547	    trace_var r29 $25 = r27 (I32)
-548	    trace_line r29 L42
-549	    trace_line r29 L45
-550	    r31 = eq_i32 r15 r31
-551	    r33 = eq_i32 r16 r33
-552	    r27 = eq_i32 r17 r27
-553	    r33 = bit_and r31 r33
-554	    r33 = bit_and r27 r33
-555	    r33 = bit_and r28 r33
-556	    trace_call r29 F4 (exit)
-557	    r33 = bit_and r28 r33
-558	    r28 = bit_and r26 r33
-559	    trace_call r28 F5 (enter)
-560	    trace_line r28 L50
-561	    trace_line r28 L51
-562	    trace_line r28 L53
-563	    trace_var r28 $27 = r22 (I32)
-564	    trace_var r28 $28 = r22 (I32)
-565	    trace_var r28 $29 = r22 (I32)
-566	    trace_var r28 $30 = r22 (I32)
-567	    trace_line r28 L54
-568	    trace_var r28 $31 = r15 (I32)
-569	    trace_line r28 L55
-570	    r29 = select r33 r15 r22
-571	    trace_var r28 $30 = r29 (I32)
-572	    trace_line r28 L54
-573	    trace_var r28 $31 = r16 (I32)
-574	    trace_line r28 L55
-575	    r27 = select r33 r29 r22
-576	    trace_var r28 $29 = r27 (I32)
-577	    r29 = select r33 r16 r29
-578	    trace_var r28 $30 = r29 (I32)
-579	    trace_line r28 L54
-580	    trace_var r28 $31 = r17 (I32)
-581	    trace_line r28 L55
-582	    r31 = select r33 r27 r22
-583	    trace_var r28 $28 = r31 (I32)
-584	    r27 = select r33 r29 r27
-585	    trace_var r28 $29 = r27 (I32)
-586	    r29 = select r33 r17 r29
-587	    trace_var r28 $30 = r29 (I32)
-588	    trace_line r28 L54
-589	    trace_line r28 L57
-590	    r31 = eq_i32 r15 r31
-591	    r27 = eq_i32 r16 r27
-592	    r29 = eq_i32 r17 r29
-593	    r27 = bit_and r31 r27
-594	    r27 = bit_and r29 r27
-595	    r27 = bit_and r33 r27
-596	    trace_call r28 F5 (exit)
-597	    r27 = bit_and r33 r27
-598	    r33 = bit_and r26 r27
-599	    trace_call r33 F6 (enter)
-600	    trace_line r33 L62
-601	    trace_line r33 L63
-602	    trace_line r33 L65
-603	    trace_var r33 $32 = r22 (I32)
-604	    trace_var r33 $33 = r22 (I32)
-605	    trace_var r33 $34 = r22 (I32)
-606	    trace_var r33 $35 = r22 (I32)
-607	    trace_line r33 L66
-608	    trace_var r33 $36 = r17 (I32)
-609	    trace_line r33 L67
-610	    r28 = select r27 r17 r22
-611	    trace_var r33 $35 = r28 (I32)
-612	    trace_line r33 L66
-613	    trace_var r33 $36 = r16 (I32)
-614	    trace_line r33 L67
-615	    r29 = select r27 r28 r22
-616	    trace_var r33 $34 = r29 (I32)
-617	    r28 = select r27 r16 r28
-618	    trace_var r33 $35 = r28 (I32)
-619	    trace_line r33 L66
-620	    trace_var r33 $36 = r15 (I32)
-621	    trace_line r33 L67
-622	    r31 = select r27 r29 r22
-623	    trace_var r33 $33 = r31 (I32)
-624	    r29 = select r27 r28 r29
-625	    trace_var r33 $34 = r29 (I32)
-626	    r28 = select r27 r15 r28
-627	    trace_var r33 $35 = r28 (I32)
-628	    trace_line r33 L66
-629	    trace_line r33 L69
-630	    r31 = eq_i32 r17 r31
-631	    r29 = eq_i32 r16 r29
-632	    r28 = eq_i32 r15 r28
-633	    r29 = bit_and r31 r29
-634	    r29 = bit_and r28 r29
-635	    r29 = bit_and r27 r29
-636	    trace_call r33 F6 (exit)
-637	    r29 = bit_and r27 r29
-638	    r27 = bit_and r26 r29
-639	    trace_call r27 F7 (enter)
-640	    trace_line r27 L74
-641	    trace_line r27 L75
-642	    trace_line r27 L77
-643	    trace_var r27 $37 = r22 (I32)
-644	    trace_var r27 $38 = r22 (I32)
-645	    trace_var r27 $39 = r22 (I32)
-646	    trace_var r27 $40 = r22 (I32)
-647	    trace_line r27 L78
-648	    trace_var r27 $41 = r17 (I32)
-649	    trace_line r27 L79
-650	    r33 = select r29 r17 r22
-651	    trace_var r27 $40 = r33 (I32)
-652	    trace_line r27 L78
-653	    trace_var r27 $41 = r16 (I32)
-654	    trace_line r27 L79
-655	    r28 = select r29 r33 r22
-656	    trace_var r27 $39 = r28 (I32)
-657	    r33 = select r29 r16 r33
-658	    trace_var r27 $40 = r33 (I32)
-659	    trace_line r27 L78
-660	    trace_var r27 $41 = r15 (I32)
-661	    trace_line r27 L79
-662	    r31 = select r29 r28 r22
-663	    trace_var r27 $38 = r31 (I32)
-664	    r28 = select r29 r33 r28
-665	    trace_var r27 $39 = r28 (I32)
-666	    r33 = select r29 r15 r33
-667	    trace_var r27 $40 = r33 (I32)
-668	    trace_line r27 L78
-669	    trace_line r27 L81
-670	    r31 = eq_i32 r17 r31
-671	    r28 = eq_i32 r16 r28
-672	    r33 = eq_i32 r15 r33
-673	    r28 = bit_and r31 r28
-674	    r28 = bit_and r33 r28
-675	    r28 = bit_and r29 r28
-676	    trace_call r27 F7 (exit)
-677	    r28 = bit_and r29 r28
-678	    r29 = bit_and r26 r28
-679	    trace_call r29 F8 (enter)
-680	    trace_line r29 L97
-681	    trace_line r29 L99
-682	    trace_var r29 $42 = r22 (I32)
-683	    trace_var r29 $43 = r22 (I32)
-684	    trace_var r29 $44 = r22 (I32)
-685	    trace_var r29 $45 = r22 (I32)
-686	    trace_line r29 L100
-687	    trace_var r29 $46 = r15 (I32)
-688	    trace_line r29 L101
-689	    r27 = select r28 r15 r22
-690	    trace_var r29 $45 = r27 (I32)
-691	    trace_line r29 L100
-692	    trace_line r29 L103
-693	    r27 = eq_i32 r15 r27
-694	    r27 = bit_and r28 r27
-695	    trace_call r29 F8 (exit)
-696	    r27 = bit_and r28 r27
-697	    r28 = bit_and r26 r27
-698	    trace_call r28 F9 (enter)
-699	    trace_line r28 L86
-700	    trace_line r28 L88
-701	    trace_var r28 $47 = r22 (I32)
-702	    trace_var r28 $48 = r22 (I32)
-703	    trace_var r28 $49 = r22 (I32)
-704	    trace_var r28 $50 = r22 (I32)
-705	    trace_line r28 L89
-706	    trace_var r28 $51 = r15 (I32)
-707	    trace_line r28 L90
-708	    r29 = select r27 r15 r22
-709	    trace_var r28 $50 = r29 (I32)
-710	    trace_line r28 L89
-711	    trace_var r28 $51 = r16 (I32)
-712	    trace_line r28 L90
-713	    r33 = select r27 r29 r22
-714	    trace_var r28 $49 = r33 (I32)
-715	    r29 = select r27 r16 r29
-716	    trace_var r28 $50 = r29 (I32)
-717	    trace_line r28 L89
-718	    trace_var r28 $51 = r17 (I32)
-719	    trace_line r28 L90
-720	    r31 = select r27 r33 r22
-721	    trace_var r28 $48 = r31 (I32)
-722	    r33 = select r27 r29 r33
-723	    trace_var r28 $49 = r33 (I32)
-724	    r29 = select r27 r17 r29
-725	    trace_var r28 $50 = r29 (I32)
-726	    trace_line r28 L89
-727	    trace_line r28 L92
-728	    r31 = eq_i32 r15 r31
-729	    r33 = eq_i32 r16 r33
-730	    r29 = eq_i32 r17 r29
-731	    r33 = bit_and r31 r33
-732	    r33 = bit_and r29 r33
-733	    r33 = bit_and r27 r33
-734	    trace_call r28 F9 (exit)
-735	    r33 = bit_and r27 r33
-736	    r27 = select r33 r6 r2
-737	    r28 = select r33 r7 r3
-738	    r29 = select r33 r8 r4
-739	    r33 = select r33 r9 r5
-740	    trace_call r26 F0 (exit)
-741	    store32 ptr1 r27
-742	    store32 ptr2 r28
-743	    store32 ptr3 r29
-744	    store32 ptr4 r33
+507	    r25 = bit_and r33 r25
+508	    r31 = bit_and r26 r25
+509	    trace_line r31 L30
+510	    r25 = bit_xor r11 r25
+511	    r25 = bit_and r33 r25
+512	    r25 = bit_and r29 r25
+513	    r33 = bit_and r26 r25
+514	    trace_line r33 L31
+515	    r31 = add_i32 r22 r28
+516	    r28 = select r25 r31 r28
+517	    trace_var r33 $19 = r28 (I32)
+518	    trace_line r33 L29
+519	    trace_line r27 L33
+520	    r28 = bit_and r29 r28
+521	    trace_call r27 F3 (exit)
+522	    r28 = eq_i32 r28 r24
+523	    r28 = bit_and r29 r28
+524	    r29 = bit_and r26 r28
+525	    trace_call r29 F4 (enter)
+526	    trace_line r29 L38
+527	    trace_line r29 L39
+528	    trace_line r29 L41
+529	    trace_var r29 $22 = r22 (I32)
+530	    trace_var r29 $23 = r22 (I32)
+531	    trace_var r29 $24 = r22 (I32)
+532	    trace_var r29 $25 = r22 (I32)
+533	    trace_line r29 L42
+534	    trace_var r29 $26 = r15 (I32)
+535	    trace_line r29 L43
+536	    r27 = select r28 r15 r22
+537	    trace_var r29 $25 = r27 (I32)
+538	    trace_line r29 L42
+539	    trace_var r29 $26 = r16 (I32)
+540	    trace_line r29 L43
+541	    r33 = select r28 r27 r22
+542	    trace_var r29 $24 = r33 (I32)
+543	    r27 = select r28 r16 r27
+544	    trace_var r29 $25 = r27 (I32)
+545	    trace_line r29 L42
+546	    trace_var r29 $26 = r17 (I32)
+547	    trace_line r29 L43
+548	    r31 = select r28 r33 r22
+549	    trace_var r29 $23 = r31 (I32)
+550	    r33 = select r28 r27 r33
+551	    trace_var r29 $24 = r33 (I32)
+552	    r27 = select r28 r17 r27
+553	    trace_var r29 $25 = r27 (I32)
+554	    trace_line r29 L42
+555	    trace_line r29 L45
+556	    r31 = eq_i32 r15 r31
+557	    r33 = eq_i32 r16 r33
+558	    r27 = eq_i32 r17 r27
+559	    r33 = bit_and r31 r33
+560	    r33 = bit_and r27 r33
+561	    r33 = bit_and r28 r33
+562	    trace_call r29 F4 (exit)
+563	    r33 = bit_and r28 r33
+564	    r28 = bit_and r26 r33
+565	    trace_call r28 F5 (enter)
+566	    trace_line r28 L50
+567	    trace_line r28 L51
+568	    trace_line r28 L53
+569	    trace_var r28 $27 = r22 (I32)
+570	    trace_var r28 $28 = r22 (I32)
+571	    trace_var r28 $29 = r22 (I32)
+572	    trace_var r28 $30 = r22 (I32)
+573	    trace_line r28 L54
+574	    trace_var r28 $31 = r15 (I32)
+575	    trace_line r28 L55
+576	    r29 = select r33 r15 r22
+577	    trace_var r28 $30 = r29 (I32)
+578	    trace_line r28 L54
+579	    trace_var r28 $31 = r16 (I32)
+580	    trace_line r28 L55
+581	    r27 = select r33 r29 r22
+582	    trace_var r28 $29 = r27 (I32)
+583	    r29 = select r33 r16 r29
+584	    trace_var r28 $30 = r29 (I32)
+585	    trace_line r28 L54
+586	    trace_var r28 $31 = r17 (I32)
+587	    trace_line r28 L55
+588	    r31 = select r33 r27 r22
+589	    trace_var r28 $28 = r31 (I32)
+590	    r27 = select r33 r29 r27
+591	    trace_var r28 $29 = r27 (I32)
+592	    r29 = select r33 r17 r29
+593	    trace_var r28 $30 = r29 (I32)
+594	    trace_line r28 L54
+595	    trace_line r28 L57
+596	    r31 = eq_i32 r15 r31
+597	    r27 = eq_i32 r16 r27
+598	    r29 = eq_i32 r17 r29
+599	    r27 = bit_and r31 r27
+600	    r27 = bit_and r29 r27
+601	    r27 = bit_and r33 r27
+602	    trace_call r28 F5 (exit)
+603	    r27 = bit_and r33 r27
+604	    r33 = bit_and r26 r27
+605	    trace_call r33 F6 (enter)
+606	    trace_line r33 L62
+607	    trace_line r33 L63
+608	    trace_line r33 L65
+609	    trace_var r33 $32 = r22 (I32)
+610	    trace_var r33 $33 = r22 (I32)
+611	    trace_var r33 $34 = r22 (I32)
+612	    trace_var r33 $35 = r22 (I32)
+613	    trace_line r33 L66
+614	    trace_var r33 $36 = r17 (I32)
+615	    trace_line r33 L67
+616	    r28 = select r27 r17 r22
+617	    trace_var r33 $35 = r28 (I32)
+618	    trace_line r33 L66
+619	    trace_var r33 $36 = r16 (I32)
+620	    trace_line r33 L67
+621	    r29 = select r27 r28 r22
+622	    trace_var r33 $34 = r29 (I32)
+623	    r28 = select r27 r16 r28
+624	    trace_var r33 $35 = r28 (I32)
+625	    trace_line r33 L66
+626	    trace_var r33 $36 = r15 (I32)
+627	    trace_line r33 L67
+628	    r31 = select r27 r29 r22
+629	    trace_var r33 $33 = r31 (I32)
+630	    r29 = select r27 r28 r29
+631	    trace_var r33 $34 = r29 (I32)
+632	    r28 = select r27 r15 r28
+633	    trace_var r33 $35 = r28 (I32)
+634	    trace_line r33 L66
+635	    trace_line r33 L69
+636	    r31 = eq_i32 r17 r31
+637	    r29 = eq_i32 r16 r29
+638	    r28 = eq_i32 r15 r28
+639	    r29 = bit_and r31 r29
+640	    r29 = bit_and r28 r29
+641	    r29 = bit_and r27 r29
+642	    trace_call r33 F6 (exit)
+643	    r29 = bit_and r27 r29
+644	    r27 = bit_and r26 r29
+645	    trace_call r27 F7 (enter)
+646	    trace_line r27 L74
+647	    trace_line r27 L75
+648	    trace_line r27 L77
+649	    trace_var r27 $37 = r22 (I32)
+650	    trace_var r27 $38 = r22 (I32)
+651	    trace_var r27 $39 = r22 (I32)
+652	    trace_var r27 $40 = r22 (I32)
+653	    trace_line r27 L78
+654	    trace_var r27 $41 = r17 (I32)
+655	    trace_line r27 L79
+656	    r33 = select r29 r17 r22
+657	    trace_var r27 $40 = r33 (I32)
+658	    trace_line r27 L78
+659	    trace_var r27 $41 = r16 (I32)
+660	    trace_line r27 L79
+661	    r28 = select r29 r33 r22
+662	    trace_var r27 $39 = r28 (I32)
+663	    r33 = select r29 r16 r33
+664	    trace_var r27 $40 = r33 (I32)
+665	    trace_line r27 L78
+666	    trace_var r27 $41 = r15 (I32)
+667	    trace_line r27 L79
+668	    r31 = select r29 r28 r22
+669	    trace_var r27 $38 = r31 (I32)
+670	    r28 = select r29 r33 r28
+671	    trace_var r27 $39 = r28 (I32)
+672	    r33 = select r29 r15 r33
+673	    trace_var r27 $40 = r33 (I32)
+674	    trace_line r27 L78
+675	    trace_line r27 L81
+676	    r31 = eq_i32 r17 r31
+677	    r28 = eq_i32 r16 r28
+678	    r33 = eq_i32 r15 r33
+679	    r28 = bit_and r31 r28
+680	    r28 = bit_and r33 r28
+681	    r28 = bit_and r29 r28
+682	    trace_call r27 F7 (exit)
+683	    r28 = bit_and r29 r28
+684	    r29 = bit_and r26 r28
+685	    trace_call r29 F8 (enter)
+686	    trace_line r29 L97
+687	    trace_line r29 L99
+688	    trace_var r29 $42 = r22 (I32)
+689	    trace_var r29 $43 = r22 (I32)
+690	    trace_var r29 $44 = r22 (I32)
+691	    trace_var r29 $45 = r22 (I32)
+692	    trace_line r29 L100
+693	    trace_var r29 $46 = r15 (I32)
+694	    trace_line r29 L101
+695	    r27 = select r28 r15 r22
+696	    trace_var r29 $45 = r27 (I32)
+697	    trace_line r29 L100
+698	    trace_line r29 L103
+699	    r27 = eq_i32 r15 r27
+700	    r27 = bit_and r28 r27
+701	    trace_call r29 F8 (exit)
+702	    r27 = bit_and r28 r27
+703	    r28 = bit_and r26 r27
+704	    trace_call r28 F9 (enter)
+705	    trace_line r28 L86
+706	    trace_line r28 L88
+707	    trace_var r28 $47 = r22 (I32)
+708	    trace_var r28 $48 = r22 (I32)
+709	    trace_var r28 $49 = r22 (I32)
+710	    trace_var r28 $50 = r22 (I32)
+711	    trace_line r28 L89
+712	    trace_var r28 $51 = r15 (I32)
+713	    trace_line r28 L90
+714	    r29 = select r27 r15 r22
+715	    trace_var r28 $50 = r29 (I32)
+716	    trace_line r28 L89
+717	    trace_var r28 $51 = r16 (I32)
+718	    trace_line r28 L90
+719	    r33 = select r27 r29 r22
+720	    trace_var r28 $49 = r33 (I32)
+721	    r29 = select r27 r16 r29
+722	    trace_var r28 $50 = r29 (I32)
+723	    trace_line r28 L89
+724	    trace_var r28 $51 = r17 (I32)
+725	    trace_line r28 L90
+726	    r31 = select r27 r33 r22
+727	    trace_var r28 $48 = r31 (I32)
+728	    r33 = select r27 r29 r33
+729	    trace_var r28 $49 = r33 (I32)
+730	    r29 = select r27 r17 r29
+731	    trace_var r28 $50 = r29 (I32)
+732	    trace_line r28 L89
+733	    trace_line r28 L92
+734	    r31 = eq_i32 r15 r31
+735	    r33 = eq_i32 r16 r33
+736	    r29 = eq_i32 r17 r29
+737	    r33 = bit_and r31 r33
+738	    r33 = bit_and r29 r33
+739	    r33 = bit_and r27 r33
+740	    trace_call r28 F9 (exit)
+741	    r33 = bit_and r27 r33
+742	    r27 = select r33 r6 r2
+743	    r28 = select r33 r7 r3
+744	    r29 = select r33 r8 r4
+745	    r33 = select r33 r9 r5
+746	    trace_call r26 F0 (exit)
+747	    store32 ptr1 r27
+748	    store32 ptr2 r28
+749	    store32 ptr3 r29
+750	    store32 ptr4 r33
diff --git a/tests/sksl/runtime/PrecisionQualifiers.skvm b/tests/sksl/runtime/PrecisionQualifiers.skvm
index 37bde8c..a041bf5 100644
--- a/tests/sksl/runtime/PrecisionQualifiers.skvm
+++ b/tests/sksl/runtime/PrecisionQualifiers.skvm
@@ -144,7 +144,7 @@
 F6 = bool mediump_param(half value)
 F7 = bool lowp_param(half value)
 
-21 registers, 175 instructions:
+22 registers, 234 instructions:
 0	r0 = splat 3F000000 (0.5)
 1	r1 = splat 42C90000 (100.5)
 2	r2 = uniform32 ptr0 0
@@ -156,168 +156,227 @@
 8	r8 = uniform32 ptr0 18
 9	r9 = uniform32 ptr0 1C
 10	r10 = uniform32 ptr0 20
-11	r11 = eq_f32 r1 r2
-12	r12 = splat 3F800000 (1)
-13	r13 = splat 2 (2.8025969e-45)
-14	r14 = splat 40000000 (2)
-15	r15 = splat 40400000 (3)
-16	r16 = splat 40800000 (4)
-17	r17 = splat 3 (4.2038954e-45)
-18	r18 = splat 4 (5.6051939e-45)
+11	r11 = splat 0 (0)
+12	r12 = eq_f32 r1 r2
+13	r13 = splat 3F800000 (1)
+14	r14 = splat 2 (2.8025969e-45)
+15	r15 = splat 40000000 (2)
+16	r16 = splat 40400000 (3)
+17	r17 = splat 40800000 (4)
+18	r18 = splat 3 (4.2038954e-45)
+19	r19 = splat 4 (5.6051939e-45)
 loop:
-19	    r19 = index
-20	    r20 = eq_f32 r1 r19
-21	    r20 = bit_and r20 r11
-22	    trace_var r20 $0 = r3 (F32)
-23	    trace_var r20 $1 = r4 (F32)
-24	    trace_var r20 $2 = r5 (F32)
-25	    trace_var r20 $3 = r6 (F32)
-26	    trace_var r20 $4 = r7 (F32)
-27	    trace_var r20 $5 = r8 (F32)
-28	    trace_var r20 $6 = r9 (F32)
-29	    trace_var r20 $7 = r10 (F32)
-30	    trace_call r20 F0 (enter)
-31	    trace_var r20 $8 = r19 (F32)
-32	    trace_var r20 $9 = r2 (F32)
-33	    trace_line r20 L58
-34	    trace_line r20 L59
-35	    trace_var r20 $14 = r12 (F32)
-36	    trace_var r20 $15 = r12 (F32)
-37	    trace_var r20 $16 = r12 (F32)
-38	    trace_var r20 $17 = r12 (F32)
-39	    trace_line r20 L60
-40	    trace_var r20 $18 = r3 (F32)
-41	    trace_var r20 $19 = r4 (F32)
-42	    trace_var r20 $20 = r5 (F32)
-43	    trace_var r20 $21 = r6 (F32)
-44	    trace_line r20 L61
-45	    trace_line r20 L63
-46	    trace_var r20 $22 = r7 (F32)
-47	    trace_var r20 $23 = r8 (F32)
-48	    trace_var r20 $24 = r9 (F32)
-49	    trace_var r20 $25 = r10 (F32)
-50	    trace_line r20 L64
-51	    trace_line r20 L66
-52	    trace_call r20 F1 (enter)
-53	    trace_line r20 L6
-54	    trace_var r20 $26 = r0 (F32)
-55	    trace_line r20 L7
-56	    trace_var r20 $27 = r0 (F32)
-57	    trace_line r20 L8
-58	    trace_var r20 $28 = r13 (I32)
-59	    trace_line r20 L9
-60	    trace_var r20 $29 = r13 (I32)
-61	    trace_line r20 L11
-62	    trace_call r20 F1 (exit)
-63	    trace_call r20 F2 (enter)
-64	    trace_line r20 L15
-65	    trace_var r20 $30 = r14 (F32)
-66	    trace_var r20 $31 = r14 (F32)
-67	    trace_line r20 L16
-68	    trace_var r20 $32 = r14 (F32)
-69	    trace_var r20 $33 = r14 (F32)
-70	    trace_line r20 L17
-71	    trace_var r20 $34 = r15 (F32)
-72	    trace_var r20 $35 = r15 (F32)
-73	    trace_var r20 $36 = r15 (F32)
-74	    trace_line r20 L18
-75	    trace_var r20 $37 = r15 (F32)
-76	    trace_var r20 $38 = r15 (F32)
-77	    trace_var r20 $39 = r15 (F32)
-78	    trace_line r20 L19
-79	    trace_var r20 $40 = r16 (F32)
-80	    trace_var r20 $41 = r16 (F32)
-81	    trace_var r20 $42 = r16 (F32)
-82	    trace_var r20 $43 = r16 (F32)
-83	    trace_line r20 L20
-84	    trace_var r20 $44 = r16 (F32)
-85	    trace_var r20 $45 = r16 (F32)
-86	    trace_var r20 $46 = r16 (F32)
-87	    trace_var r20 $47 = r16 (F32)
-88	    trace_line r20 L22
-89	    trace_var r20 $48 = r13 (I32)
-90	    trace_var r20 $49 = r13 (I32)
-91	    trace_line r20 L23
-92	    trace_var r20 $50 = r13 (I32)
-93	    trace_var r20 $51 = r13 (I32)
-94	    trace_line r20 L24
-95	    trace_var r20 $52 = r17 (I32)
-96	    trace_var r20 $53 = r17 (I32)
-97	    trace_var r20 $54 = r17 (I32)
-98	    trace_line r20 L25
-99	    trace_var r20 $55 = r17 (I32)
-100	    trace_var r20 $56 = r17 (I32)
-101	    trace_var r20 $57 = r17 (I32)
-102	    trace_line r20 L26
-103	    trace_var r20 $58 = r18 (I32)
-104	    trace_var r20 $59 = r18 (I32)
-105	    trace_var r20 $60 = r18 (I32)
-106	    trace_var r20 $61 = r18 (I32)
-107	    trace_line r20 L27
-108	    trace_var r20 $62 = r18 (I32)
-109	    trace_var r20 $63 = r18 (I32)
-110	    trace_var r20 $64 = r18 (I32)
-111	    trace_var r20 $65 = r18 (I32)
-112	    trace_line r20 L29
-113	    trace_call r20 F2 (exit)
-114	    trace_call r20 F3 (enter)
-115	    trace_line r20 L34
-116	    trace_var r20 $66 = r14 (F32)
-117	    trace_var r20 $69 = r14 (F32)
-118	    trace_line r20 L35
-119	    trace_var r20 $70 = r14 (F32)
-120	    trace_var r20 $73 = r14 (F32)
-121	    trace_line r20 L36
-122	    trace_var r20 $74 = r15 (F32)
-123	    trace_var r20 $78 = r15 (F32)
-124	    trace_var r20 $82 = r15 (F32)
-125	    trace_line r20 L37
-126	    trace_var r20 $83 = r15 (F32)
-127	    trace_var r20 $87 = r15 (F32)
-128	    trace_var r20 $91 = r15 (F32)
-129	    trace_line r20 L38
-130	    trace_var r20 $92 = r16 (F32)
-131	    trace_var r20 $97 = r16 (F32)
-132	    trace_var r20 $102 = r16 (F32)
-133	    trace_var r20 $107 = r16 (F32)
-134	    trace_line r20 L39
-135	    trace_var r20 $108 = r16 (F32)
-136	    trace_var r20 $113 = r16 (F32)
-137	    trace_var r20 $118 = r16 (F32)
-138	    trace_var r20 $123 = r16 (F32)
-139	    trace_line r20 L41
-140	    trace_call r20 F3 (exit)
-141	    trace_call r20 F4 (enter)
-142	    trace_line r20 L45
-143	    trace_var r20 $124 = r12 (F32)
-144	    trace_line r20 L46
-145	    trace_var r20 $125 = r12 (F32)
-146	    trace_line r20 L47
-147	    trace_var r20 $127 = r12 (F32)
-148	    trace_line r20 L47
-149	    trace_var r20 $128 = r14 (F32)
-150	    trace_var r20 $129 = r15 (F32)
-151	    trace_line r20 L48
-152	    trace_var r20 $131 = r12 (F32)
-153	    trace_line r20 L48
-154	    trace_var r20 $132 = r14 (F32)
-155	    trace_var r20 $133 = r15 (F32)
-156	    trace_line r20 L50
-157	    trace_call r20 F4 (exit)
-158	    trace_call r20 F5 (enter)
-159	    trace_var r20 $134 = r12 (F32)
-160	    trace_line r20 L53
-161	    trace_call r20 F5 (exit)
-162	    trace_call r20 F6 (enter)
-163	    trace_var r20 $135 = r14 (F32)
-164	    trace_line r20 L54
-165	    trace_call r20 F6 (exit)
-166	    trace_call r20 F7 (enter)
-167	    trace_var r20 $136 = r15 (F32)
-168	    trace_line r20 L55
-169	    trace_call r20 F7 (exit)
-170	    trace_call r20 F0 (exit)
-171	    store32 ptr1 r3
-172	    store32 ptr2 r4
-173	    store32 ptr3 r5
-174	    store32 ptr4 r6
+20	    r20 = index
+21	    r21 = eq_f32 r1 r20
+22	    r21 = bit_and r21 r12
+23	    trace_var r21 $0 = r3 (F32)
+24	    trace_var r21 $1 = r4 (F32)
+25	    trace_var r21 $2 = r5 (F32)
+26	    trace_var r21 $3 = r6 (F32)
+27	    trace_var r21 $4 = r7 (F32)
+28	    trace_var r21 $5 = r8 (F32)
+29	    trace_var r21 $6 = r9 (F32)
+30	    trace_var r21 $7 = r10 (F32)
+31	    trace_call r21 F0 (enter)
+32	    trace_var r21 $8 = r20 (F32)
+33	    trace_var r21 $9 = r2 (F32)
+34	    trace_line r21 L58
+35	    trace_var r21 $10 = r11 (F32)
+36	    trace_var r21 $11 = r11 (F32)
+37	    trace_var r21 $12 = r11 (F32)
+38	    trace_var r21 $13 = r11 (F32)
+39	    trace_line r21 L59
+40	    trace_var r21 $14 = r13 (F32)
+41	    trace_var r21 $15 = r13 (F32)
+42	    trace_var r21 $16 = r13 (F32)
+43	    trace_var r21 $17 = r13 (F32)
+44	    trace_line r21 L60
+45	    trace_var r21 $18 = r3 (F32)
+46	    trace_var r21 $19 = r4 (F32)
+47	    trace_var r21 $20 = r5 (F32)
+48	    trace_var r21 $21 = r6 (F32)
+49	    trace_line r21 L61
+50	    trace_line r21 L63
+51	    trace_var r21 $22 = r7 (F32)
+52	    trace_var r21 $23 = r8 (F32)
+53	    trace_var r21 $24 = r9 (F32)
+54	    trace_var r21 $25 = r10 (F32)
+55	    trace_line r21 L64
+56	    trace_line r21 L66
+57	    trace_call r21 F1 (enter)
+58	    trace_line r21 L6
+59	    trace_var r21 $26 = r0 (F32)
+60	    trace_line r21 L7
+61	    trace_var r21 $27 = r0 (F32)
+62	    trace_line r21 L8
+63	    trace_var r21 $28 = r14 (I32)
+64	    trace_line r21 L9
+65	    trace_var r21 $29 = r14 (I32)
+66	    trace_line r21 L11
+67	    trace_call r21 F1 (exit)
+68	    trace_call r21 F2 (enter)
+69	    trace_line r21 L15
+70	    trace_var r21 $30 = r15 (F32)
+71	    trace_var r21 $31 = r15 (F32)
+72	    trace_line r21 L16
+73	    trace_var r21 $32 = r15 (F32)
+74	    trace_var r21 $33 = r15 (F32)
+75	    trace_line r21 L17
+76	    trace_var r21 $34 = r16 (F32)
+77	    trace_var r21 $35 = r16 (F32)
+78	    trace_var r21 $36 = r16 (F32)
+79	    trace_line r21 L18
+80	    trace_var r21 $37 = r16 (F32)
+81	    trace_var r21 $38 = r16 (F32)
+82	    trace_var r21 $39 = r16 (F32)
+83	    trace_line r21 L19
+84	    trace_var r21 $40 = r17 (F32)
+85	    trace_var r21 $41 = r17 (F32)
+86	    trace_var r21 $42 = r17 (F32)
+87	    trace_var r21 $43 = r17 (F32)
+88	    trace_line r21 L20
+89	    trace_var r21 $44 = r17 (F32)
+90	    trace_var r21 $45 = r17 (F32)
+91	    trace_var r21 $46 = r17 (F32)
+92	    trace_var r21 $47 = r17 (F32)
+93	    trace_line r21 L22
+94	    trace_var r21 $48 = r14 (I32)
+95	    trace_var r21 $49 = r14 (I32)
+96	    trace_line r21 L23
+97	    trace_var r21 $50 = r14 (I32)
+98	    trace_var r21 $51 = r14 (I32)
+99	    trace_line r21 L24
+100	    trace_var r21 $52 = r18 (I32)
+101	    trace_var r21 $53 = r18 (I32)
+102	    trace_var r21 $54 = r18 (I32)
+103	    trace_line r21 L25
+104	    trace_var r21 $55 = r18 (I32)
+105	    trace_var r21 $56 = r18 (I32)
+106	    trace_var r21 $57 = r18 (I32)
+107	    trace_line r21 L26
+108	    trace_var r21 $58 = r19 (I32)
+109	    trace_var r21 $59 = r19 (I32)
+110	    trace_var r21 $60 = r19 (I32)
+111	    trace_var r21 $61 = r19 (I32)
+112	    trace_line r21 L27
+113	    trace_var r21 $62 = r19 (I32)
+114	    trace_var r21 $63 = r19 (I32)
+115	    trace_var r21 $64 = r19 (I32)
+116	    trace_var r21 $65 = r19 (I32)
+117	    trace_line r21 L29
+118	    trace_call r21 F2 (exit)
+119	    trace_call r21 F3 (enter)
+120	    trace_line r21 L34
+121	    trace_var r21 $66 = r15 (F32)
+122	    trace_var r21 $67 = r11 (F32)
+123	    trace_var r21 $68 = r11 (F32)
+124	    trace_var r21 $69 = r15 (F32)
+125	    trace_line r21 L35
+126	    trace_var r21 $70 = r15 (F32)
+127	    trace_var r21 $71 = r11 (F32)
+128	    trace_var r21 $72 = r11 (F32)
+129	    trace_var r21 $73 = r15 (F32)
+130	    trace_line r21 L36
+131	    trace_var r21 $74 = r16 (F32)
+132	    trace_var r21 $75 = r11 (F32)
+133	    trace_var r21 $76 = r11 (F32)
+134	    trace_var r21 $77 = r11 (F32)
+135	    trace_var r21 $78 = r16 (F32)
+136	    trace_var r21 $79 = r11 (F32)
+137	    trace_var r21 $80 = r11 (F32)
+138	    trace_var r21 $81 = r11 (F32)
+139	    trace_var r21 $82 = r16 (F32)
+140	    trace_line r21 L37
+141	    trace_var r21 $83 = r16 (F32)
+142	    trace_var r21 $84 = r11 (F32)
+143	    trace_var r21 $85 = r11 (F32)
+144	    trace_var r21 $86 = r11 (F32)
+145	    trace_var r21 $87 = r16 (F32)
+146	    trace_var r21 $88 = r11 (F32)
+147	    trace_var r21 $89 = r11 (F32)
+148	    trace_var r21 $90 = r11 (F32)
+149	    trace_var r21 $91 = r16 (F32)
+150	    trace_line r21 L38
+151	    trace_var r21 $92 = r17 (F32)
+152	    trace_var r21 $93 = r11 (F32)
+153	    trace_var r21 $94 = r11 (F32)
+154	    trace_var r21 $95 = r11 (F32)
+155	    trace_var r21 $96 = r11 (F32)
+156	    trace_var r21 $97 = r17 (F32)
+157	    trace_var r21 $98 = r11 (F32)
+158	    trace_var r21 $99 = r11 (F32)
+159	    trace_var r21 $100 = r11 (F32)
+160	    trace_var r21 $101 = r11 (F32)
+161	    trace_var r21 $102 = r17 (F32)
+162	    trace_var r21 $103 = r11 (F32)
+163	    trace_var r21 $104 = r11 (F32)
+164	    trace_var r21 $105 = r11 (F32)
+165	    trace_var r21 $106 = r11 (F32)
+166	    trace_var r21 $107 = r17 (F32)
+167	    trace_line r21 L39
+168	    trace_var r21 $108 = r17 (F32)
+169	    trace_var r21 $109 = r11 (F32)
+170	    trace_var r21 $110 = r11 (F32)
+171	    trace_var r21 $111 = r11 (F32)
+172	    trace_var r21 $112 = r11 (F32)
+173	    trace_var r21 $113 = r17 (F32)
+174	    trace_var r21 $114 = r11 (F32)
+175	    trace_var r21 $115 = r11 (F32)
+176	    trace_var r21 $116 = r11 (F32)
+177	    trace_var r21 $117 = r11 (F32)
+178	    trace_var r21 $118 = r17 (F32)
+179	    trace_var r21 $119 = r11 (F32)
+180	    trace_var r21 $120 = r11 (F32)
+181	    trace_var r21 $121 = r11 (F32)
+182	    trace_var r21 $122 = r11 (F32)
+183	    trace_var r21 $123 = r17 (F32)
+184	    trace_line r21 L41
+185	    trace_call r21 F3 (exit)
+186	    trace_call r21 F4 (enter)
+187	    trace_line r21 L45
+188	    trace_var r21 $124 = r11 (F32)
+189	    trace_line r21 L45
+190	    trace_var r21 $124 = r13 (F32)
+191	    trace_line r21 L46
+192	    trace_var r21 $125 = r11 (F32)
+193	    trace_line r21 L46
+194	    trace_var r21 $125 = r13 (F32)
+195	    trace_line r21 L47
+196	    trace_var r21 $126 = r11 (F32)
+197	    trace_var r21 $127 = r11 (F32)
+198	    trace_var r21 $128 = r11 (F32)
+199	    trace_var r21 $129 = r11 (F32)
+200	    trace_line r21 L47
+201	    trace_var r21 $127 = r13 (F32)
+202	    trace_line r21 L47
+203	    trace_var r21 $128 = r15 (F32)
+204	    trace_var r21 $129 = r16 (F32)
+205	    trace_line r21 L48
+206	    trace_var r21 $130 = r11 (F32)
+207	    trace_var r21 $131 = r11 (F32)
+208	    trace_var r21 $132 = r11 (F32)
+209	    trace_var r21 $133 = r11 (F32)
+210	    trace_line r21 L48
+211	    trace_var r21 $131 = r13 (F32)
+212	    trace_line r21 L48
+213	    trace_var r21 $132 = r15 (F32)
+214	    trace_var r21 $133 = r16 (F32)
+215	    trace_line r21 L50
+216	    trace_call r21 F4 (exit)
+217	    trace_call r21 F5 (enter)
+218	    trace_var r21 $134 = r13 (F32)
+219	    trace_line r21 L53
+220	    trace_call r21 F5 (exit)
+221	    trace_call r21 F6 (enter)
+222	    trace_var r21 $135 = r15 (F32)
+223	    trace_line r21 L54
+224	    trace_call r21 F6 (exit)
+225	    trace_call r21 F7 (enter)
+226	    trace_var r21 $136 = r16 (F32)
+227	    trace_line r21 L55
+228	    trace_call r21 F7 (exit)
+229	    trace_call r21 F0 (exit)
+230	    store32 ptr1 r3
+231	    store32 ptr2 r4
+232	    store32 ptr3 r5
+233	    store32 ptr4 r6