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