Emit trace_scope ops from SkVM code generation.

These will give the debugger enough information to discard variables as
they fall out of scope.

Change-Id: Ia400e82a3ca9cf0a51a72d819f897d346979226c
Bug: skia:12741
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/484556
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
This commit is contained in:
John Stiles 2021-12-14 18:43:35 -05:00 committed by SkCQ
parent d337cf94a0
commit 71f7880bb6
10 changed files with 2490 additions and 1975 deletions

View File

@ -212,11 +212,14 @@ private:
void writeToSlot(int slot, skvm::Val value);
/**
* Emits an trace_line opcode. writeStatement already does this, but statements that alter
* control flow may need to explicitly add additional traces.
* Emits an trace_line opcode. writeStatement does this, and statements that alter control flow
* may need to explicitly add additional traces.
*/
void emitTraceLine(int line);
/** Emits an trace_scope opcode, which alters the SkSL variable-scope depth. */
void emitTraceScope(skvm::I32 executionMask, int delta);
/** Initializes uniforms and global variables at the start of main(). */
void setupGlobals(SkSpan<skvm::Val> uniforms, skvm::Coord device);
@ -1795,9 +1798,14 @@ skvm::Val SkVMGenerator::writeConditionalStore(skvm::Val lhs, skvm::Val rhs, skv
}
void SkVMGenerator::writeBlock(const Block& b) {
skvm::I32 mask = this->mask();
this->emitTraceScope(mask, +1);
for (const std::unique_ptr<Statement>& stmt : b.children()) {
this->writeStatement(*stmt);
}
this->emitTraceScope(mask, -1);
}
void SkVMGenerator::writeBreakStatement() {
@ -1828,17 +1836,26 @@ void SkVMGenerator::writeForStatement(const ForStatement& f) {
const Type::NumberKind indexKind = base_number_kind(loop.fIndex->type());
for (int i = 0; i < loop.fCount; ++i) {
this->writeToSlot(indexSlot, (indexKind == Type::NumberKind::kFloat)
? fBuilder->splat(static_cast<float>(val)).id
: fBuilder->splat(static_cast<int>(val)).id);
// We want the loop index to disappear at the end of the loop, so wrap the for statement in a
// trace scope.
if (loop.fCount > 0) {
skvm::I32 mask = this->mask();
this->emitTraceScope(mask, +1);
fContinueMask = zero;
this->writeStatement(*f.statement());
fLoopMask |= fContinueMask;
for (int i = 0; i < loop.fCount; ++i) {
this->writeToSlot(indexSlot, (indexKind == Type::NumberKind::kFloat)
? fBuilder->splat(static_cast<float>(val)).id
: fBuilder->splat(static_cast<int>(val)).id);
this->emitTraceLine(f.test() ? f.test()->fLine : f.fLine);
val += loop.fDelta;
fContinueMask = zero;
this->writeStatement(*f.statement());
fLoopMask |= fContinueMask;
this->emitTraceLine(f.test() ? f.test()->fLine : f.fLine);
val += loop.fDelta;
}
this->emitTraceScope(mask, -1);
}
fLoopMask = oldLoopMask;
@ -1931,6 +1948,12 @@ void SkVMGenerator::emitTraceLine(int line) {
}
}
void SkVMGenerator::emitTraceScope(skvm::I32 executionMask, int delta) {
if (fDebugTrace) {
fBuilder->trace_scope(fTraceHookID, executionMask, fTraceMask, delta);
}
}
void SkVMGenerator::writeStatement(const Statement& s) {
this->emitTraceLine(s.fLine);

View File

@ -575,14 +575,16 @@ F0 = half4 main(float2 p)
enter half4 main(float2 p)
p.x = 0.5
p.y = 1.5
line 3
val.x = 0
val.y = 1
line 4
[main].result.x = 0
[main].result.y = 1
[main].result.z = 0
[main].result.w = 1
scope +1
line 3
val.x = 0
val.y = 1
line 4
[main].result.x = 0
[main].result.y = 1
[main].result.z = 0
[main].result.w = 1
scope -1
exit half4 main(float2 p)
)",
"Trace output does not match expectation:\n%.*s\n",

View File

@ -1047,101 +1047,123 @@ F0 = int main()
F1 = bool less_than(float left, int right)
enter int main()
line 11
a[0].x = 0
a[0].y = 0
a[1].x = 0
a[1].y = 0
line 12
loop = 10
line 13
v.x = 10
v.y = 11
v.z = 12
v.w = 13
line 14
m[0][0] = 10
m[0][1] = 11
m[1][0] = 12
m[1][1] = 13
line 15
a[0].x = 10
a[0].y = 11
line 15
a[1].x = 12
a[1].y = 13
line 16
enter bool less_than(float left, int right)
left = 10
right = 20
line 2
comparison = true
line 3
line 4
[less_than].result = true
exit bool less_than(float left, int right)
function_result = true
line 12
loop = 20
line 13
v.x = 20
v.y = 21
v.z = 22
v.w = 23
line 14
m[0][0] = 20
m[0][1] = 21
m[1][0] = 22
m[1][1] = 23
line 15
a[0].x = 20
a[0].y = 21
line 15
a[1].x = 22
a[1].y = 23
line 16
enter bool less_than(float left, int right)
left = 20
right = 20
line 2
comparison = false
line 3
line 6
[less_than].result = false
exit bool less_than(float left, int right)
function_result = false
line 12
loop = 30
line 13
v.x = 30
v.y = 31
v.z = 32
v.w = 33
line 14
m[0][0] = 30
m[0][1] = 31
m[1][0] = 32
m[1][1] = 33
line 15
a[0].x = 30
a[0].y = 31
line 15
a[1].x = 32
a[1].y = 33
line 16
enter bool less_than(float left, int right)
left = 30
right = 20
line 2
comparison = false
line 3
line 6
[less_than].result = false
exit bool less_than(float left, int right)
function_result = false
line 12
line 18
[main].result = 40
scope +1
line 11
a[0].x = 0
a[0].y = 0
a[1].x = 0
a[1].y = 0
line 12
scope +1
loop = 10
scope +1
line 13
v.x = 10
v.y = 11
v.z = 12
v.w = 13
line 14
m[0][0] = 10
m[0][1] = 11
m[1][0] = 12
m[1][1] = 13
line 15
a[0].x = 10
a[0].y = 11
line 15
a[1].x = 12
a[1].y = 13
line 16
enter bool less_than(float left, int right)
left = 10
right = 20
scope +1
line 2
comparison = true
line 3
scope +1
line 4
[less_than].result = true
scope -1
scope -1
exit bool less_than(float left, int right)
function_result = true
scope -1
line 12
loop = 20
scope +1
line 13
v.x = 20
v.y = 21
v.z = 22
v.w = 23
line 14
m[0][0] = 20
m[0][1] = 21
m[1][0] = 22
m[1][1] = 23
line 15
a[0].x = 20
a[0].y = 21
line 15
a[1].x = 22
a[1].y = 23
line 16
enter bool less_than(float left, int right)
left = 20
right = 20
scope +1
line 2
comparison = false
line 3
scope +1
line 6
[less_than].result = false
scope -1
scope -1
exit bool less_than(float left, int right)
function_result = false
scope -1
line 12
loop = 30
scope +1
line 13
v.x = 30
v.y = 31
v.z = 32
v.w = 33
line 14
m[0][0] = 30
m[0][1] = 31
m[1][0] = 32
m[1][1] = 33
line 15
a[0].x = 30
a[0].y = 31
line 15
a[1].x = 32
a[1].y = 33
line 16
enter bool less_than(float left, int right)
left = 30
right = 20
scope +1
line 2
comparison = false
line 3
scope +1
line 6
[less_than].result = false
scope -1
scope -1
exit bool less_than(float left, int right)
function_result = false
scope -1
line 12
scope -1
line 18
[main].result = 40
scope -1
exit int main()
)", "Trace output does not match expectation:\n%.*s\n", (int)trace.size(), trace.data());
}

View File

@ -48,7 +48,7 @@ F2 = float index_by_loop()
F3 = float index_by_complex_loop()
F4 = float index_out_of_bounds_checked()
54 registers, 179 instructions:
54 registers, 231 instructions:
0 r0 = uniform32 ptr0 0
1 r1 = uniform32 ptr0 4
2 r2 = uniform32 ptr0 8
@ -136,96 +136,148 @@ loop:
83 trace_enter 0 r53 r53 F0
84 trace_var 0 r53 r53 $32 = r52
85 trace_var 0 r53 r53 $33 = r0
86 trace_line 0 r53 r53 L38
87 trace_enter 0 r53 r53 F1
88 trace_line 0 r53 r53 L5
89 trace_var 0 r53 r53 $34 = r1
90 trace_exit 0 r53 r53 F1
91 trace_enter 0 r53 r53 F2
92 trace_line 0 r53 r53 L10
93 trace_var 0 r53 r53 $36 = r29
94 trace_line 0 r53 r53 L11
95 trace_var 0 r53 r53 $37 = r32
96 trace_line 0 r53 r53 L12
97 trace_var 0 r53 r53 $36 = r8
86 trace_scope 0 r53 r53 1
87 trace_line 0 r53 r53 L38
88 trace_enter 0 r53 r53 F1
89 trace_scope 0 r53 r53 1
90 trace_line 0 r53 r53 L5
91 trace_var 0 r53 r53 $34 = r1
92 trace_scope 0 r53 r53 -1
93 trace_exit 0 r53 r53 F1
94 trace_enter 0 r53 r53 F2
95 trace_scope 0 r53 r53 1
96 trace_line 0 r53 r53 L10
97 trace_var 0 r53 r53 $36 = r29
98 trace_line 0 r53 r53 L11
99 trace_var 0 r53 r53 $37 = r33
100 trace_line 0 r53 r53 L12
101 trace_var 0 r53 r53 $36 = r34
102 trace_line 0 r53 r53 L11
103 trace_var 0 r53 r53 $37 = r35
104 trace_line 0 r53 r53 L12
105 trace_var 0 r53 r53 $36 = r36
106 trace_line 0 r53 r53 L11
107 trace_var 0 r53 r53 $37 = r29
99 trace_scope 0 r53 r53 1
100 trace_var 0 r53 r53 $37 = r32
101 trace_scope 0 r53 r53 1
102 trace_line 0 r53 r53 L12
103 trace_var 0 r53 r53 $36 = r8
104 trace_scope 0 r53 r53 -1
105 trace_line 0 r53 r53 L11
106 trace_var 0 r53 r53 $37 = r33
107 trace_scope 0 r53 r53 1
108 trace_line 0 r53 r53 L12
109 trace_var 0 r53 r53 $36 = r37
110 trace_line 0 r53 r53 L11
111 trace_line 0 r53 r53 L14
112 trace_var 0 r53 r53 $35 = r37
113 trace_exit 0 r53 r53 F2
114 trace_enter 0 r53 r53 F3
115 trace_line 0 r53 r53 L19
116 trace_var 0 r53 r53 $39 = r38
117 trace_line 0 r53 r53 L20
118 trace_var 0 r53 r53 $40 = r29
119 trace_line 0 r53 r53 L21
120 trace_var 0 r53 r53 $39 = r9
121 trace_line 0 r53 r53 L20
122 trace_var 0 r53 r53 $40 = r35
123 trace_line 0 r53 r53 L21
124 trace_var 0 r53 r53 $39 = r39
125 trace_line 0 r53 r53 L20
126 trace_var 0 r53 r53 $40 = r33
127 trace_line 0 r53 r53 L21
128 trace_var 0 r53 r53 $39 = r40
129 trace_line 0 r53 r53 L20
130 trace_var 0 r53 r53 $40 = r32
131 trace_line 0 r53 r53 L21
132 trace_var 0 r53 r53 $39 = r41
109 trace_var 0 r53 r53 $36 = r34
110 trace_scope 0 r53 r53 -1
111 trace_line 0 r53 r53 L11
112 trace_var 0 r53 r53 $37 = r35
113 trace_scope 0 r53 r53 1
114 trace_line 0 r53 r53 L12
115 trace_var 0 r53 r53 $36 = r36
116 trace_scope 0 r53 r53 -1
117 trace_line 0 r53 r53 L11
118 trace_var 0 r53 r53 $37 = r29
119 trace_scope 0 r53 r53 1
120 trace_line 0 r53 r53 L12
121 trace_var 0 r53 r53 $36 = r37
122 trace_scope 0 r53 r53 -1
123 trace_line 0 r53 r53 L11
124 trace_scope 0 r53 r53 -1
125 trace_line 0 r53 r53 L14
126 trace_var 0 r53 r53 $35 = r37
127 trace_scope 0 r53 r53 -1
128 trace_exit 0 r53 r53 F2
129 trace_enter 0 r53 r53 F3
130 trace_scope 0 r53 r53 1
131 trace_line 0 r53 r53 L19
132 trace_var 0 r53 r53 $39 = r38
133 trace_line 0 r53 r53 L20
134 trace_line 0 r53 r53 L23
135 trace_var 0 r53 r53 $38 = r41
136 trace_exit 0 r53 r53 F3
137 trace_enter 0 r53 r53 F4
138 trace_line 0 r53 r53 L28
139 trace_var 0 r53 r53 $42 = r29
140 trace_line 0 r53 r53 L29
141 trace_var 0 r53 r53 $43 = r42
142 trace_line 0 r53 r53 L30
143 trace_line 0 r53 r53 L29
144 trace_var 0 r53 r53 $43 = r43
145 trace_line 0 r53 r53 L30
146 trace_line 0 r53 r53 L31
147 trace_var 0 r53 r53 $42 = r44
148 trace_line 0 r53 r53 L29
149 trace_var 0 r53 r53 $43 = r45
150 trace_line 0 r53 r53 L30
151 trace_line 0 r53 r53 L31
152 trace_var 0 r53 r53 $42 = r46
153 trace_line 0 r53 r53 L29
154 trace_var 0 r53 r53 $43 = r47
155 trace_line 0 r53 r53 L30
156 trace_line 0 r53 r53 L31
157 trace_var 0 r53 r53 $42 = r48
158 trace_line 0 r53 r53 L29
159 trace_var 0 r53 r53 $43 = r49
160 trace_line 0 r53 r53 L30
161 trace_line 0 r53 r53 L31
162 trace_var 0 r53 r53 $42 = r50
163 trace_line 0 r53 r53 L29
164 trace_var 0 r53 r53 $43 = r51
165 trace_line 0 r53 r53 L30
166 trace_line 0 r53 r53 L29
167 trace_line 0 r53 r53 L34
168 trace_var 0 r53 r53 $41 = r50
169 trace_exit 0 r53 r53 F4
170 trace_var 0 r53 r53 $28 = r1
171 trace_var 0 r53 r53 $29 = r37
172 trace_var 0 r53 r53 $30 = r41
173 trace_var 0 r53 r53 $31 = r50
174 trace_exit 0 r53 r53 F0
175 store32 ptr1 r1
176 store32 ptr2 r37
177 store32 ptr3 r41
178 store32 ptr4 r50
134 trace_scope 0 r53 r53 1
135 trace_var 0 r53 r53 $40 = r29
136 trace_scope 0 r53 r53 1
137 trace_line 0 r53 r53 L21
138 trace_var 0 r53 r53 $39 = r9
139 trace_scope 0 r53 r53 -1
140 trace_line 0 r53 r53 L20
141 trace_var 0 r53 r53 $40 = r35
142 trace_scope 0 r53 r53 1
143 trace_line 0 r53 r53 L21
144 trace_var 0 r53 r53 $39 = r39
145 trace_scope 0 r53 r53 -1
146 trace_line 0 r53 r53 L20
147 trace_var 0 r53 r53 $40 = r33
148 trace_scope 0 r53 r53 1
149 trace_line 0 r53 r53 L21
150 trace_var 0 r53 r53 $39 = r40
151 trace_scope 0 r53 r53 -1
152 trace_line 0 r53 r53 L20
153 trace_var 0 r53 r53 $40 = r32
154 trace_scope 0 r53 r53 1
155 trace_line 0 r53 r53 L21
156 trace_var 0 r53 r53 $39 = r41
157 trace_scope 0 r53 r53 -1
158 trace_line 0 r53 r53 L20
159 trace_scope 0 r53 r53 -1
160 trace_line 0 r53 r53 L23
161 trace_var 0 r53 r53 $38 = r41
162 trace_scope 0 r53 r53 -1
163 trace_exit 0 r53 r53 F3
164 trace_enter 0 r53 r53 F4
165 trace_scope 0 r53 r53 1
166 trace_line 0 r53 r53 L28
167 trace_var 0 r53 r53 $42 = r29
168 trace_line 0 r53 r53 L29
169 trace_scope 0 r53 r53 1
170 trace_var 0 r53 r53 $43 = r42
171 trace_scope 0 r53 r53 1
172 trace_line 0 r53 r53 L30
173 trace_scope 0 r53 r53 -1
174 trace_line 0 r53 r53 L29
175 trace_var 0 r53 r53 $43 = r43
176 trace_scope 0 r53 r53 1
177 trace_line 0 r53 r53 L30
178 trace_scope 0 r53 r53 1
179 trace_line 0 r53 r53 L31
180 trace_var 0 r53 r53 $42 = r44
181 trace_scope 0 r53 r53 -1
182 trace_scope 0 r53 r53 -1
183 trace_line 0 r53 r53 L29
184 trace_var 0 r53 r53 $43 = r45
185 trace_scope 0 r53 r53 1
186 trace_line 0 r53 r53 L30
187 trace_scope 0 r53 r53 1
188 trace_line 0 r53 r53 L31
189 trace_var 0 r53 r53 $42 = r46
190 trace_scope 0 r53 r53 -1
191 trace_scope 0 r53 r53 -1
192 trace_line 0 r53 r53 L29
193 trace_var 0 r53 r53 $43 = r47
194 trace_scope 0 r53 r53 1
195 trace_line 0 r53 r53 L30
196 trace_scope 0 r53 r53 1
197 trace_line 0 r53 r53 L31
198 trace_var 0 r53 r53 $42 = r48
199 trace_scope 0 r53 r53 -1
200 trace_scope 0 r53 r53 -1
201 trace_line 0 r53 r53 L29
202 trace_var 0 r53 r53 $43 = r49
203 trace_scope 0 r53 r53 1
204 trace_line 0 r53 r53 L30
205 trace_scope 0 r53 r53 1
206 trace_line 0 r53 r53 L31
207 trace_var 0 r53 r53 $42 = r50
208 trace_scope 0 r53 r53 -1
209 trace_scope 0 r53 r53 -1
210 trace_line 0 r53 r53 L29
211 trace_var 0 r53 r53 $43 = r51
212 trace_scope 0 r53 r53 1
213 trace_line 0 r53 r53 L30
214 trace_scope 0 r53 r53 -1
215 trace_line 0 r53 r53 L29
216 trace_scope 0 r53 r53 -1
217 trace_line 0 r53 r53 L34
218 trace_var 0 r53 r53 $41 = r50
219 trace_scope 0 r53 r53 -1
220 trace_exit 0 r53 r53 F4
221 trace_var 0 r53 r53 $28 = r1
222 trace_var 0 r53 r53 $29 = r37
223 trace_var 0 r53 r53 $30 = r41
224 trace_var 0 r53 r53 $31 = r50
225 trace_scope 0 r53 r53 -1
226 trace_exit 0 r53 r53 F0
227 store32 ptr1 r1
228 store32 ptr2 r37
229 store32 ptr3 r41
230 store32 ptr4 r50

View File

@ -37,7 +37,7 @@ $35 = c_mul_d (float, L43)
$36 = d_mul_c (float, L44)
F0 = half4 main(float2 xy)
13 registers, 60 instructions:
13 registers, 62 instructions:
0 r0 = uniform32 ptr0 0
1 r1 = uniform32 ptr0 4
2 r2 = uniform32 ptr0 8
@ -65,37 +65,39 @@ loop:
23 r4 = eq_f32 r4 r11
24 r4 = bit_and r4 r0
25 trace_enter 0 r4 r4 F0
26 trace_line 0 r4 r4 L9
27 trace_line 0 r4 r4 L11
28 trace_line 0 r4 r4 L12
29 trace_line 0 r4 r4 L13
30 trace_line 0 r4 r4 L15
31 trace_line 0 r4 r4 L16
32 trace_line 0 r4 r4 L17
33 trace_line 0 r4 r4 L19
34 trace_line 0 r4 r4 L20
35 trace_line 0 r4 r4 L21
36 trace_line 0 r4 r4 L23
37 trace_line 0 r4 r4 L24
38 trace_line 0 r4 r4 L25
39 trace_line 0 r4 r4 L27
40 trace_line 0 r4 r4 L28
41 trace_line 0 r4 r4 L29
42 trace_line 0 r4 r4 L31
43 trace_line 0 r4 r4 L32
44 trace_line 0 r4 r4 L33
45 trace_line 0 r4 r4 L35
46 trace_line 0 r4 r4 L36
47 trace_line 0 r4 r4 L37
48 trace_line 0 r4 r4 L39
49 trace_line 0 r4 r4 L40
50 trace_line 0 r4 r4 L41
51 trace_line 0 r4 r4 L43
52 trace_line 0 r4 r4 L44
53 trace_line 0 r4 r4 L45
54 trace_line 0 r4 r4 L47
55 trace_exit 0 r4 r4 F0
56 store32 ptr1 r5
57 store32 ptr2 r6
58 store32 ptr3 r7
59 store32 ptr4 r8
26 trace_scope 0 r4 r4 1
27 trace_line 0 r4 r4 L9
28 trace_line 0 r4 r4 L11
29 trace_line 0 r4 r4 L12
30 trace_line 0 r4 r4 L13
31 trace_line 0 r4 r4 L15
32 trace_line 0 r4 r4 L16
33 trace_line 0 r4 r4 L17
34 trace_line 0 r4 r4 L19
35 trace_line 0 r4 r4 L20
36 trace_line 0 r4 r4 L21
37 trace_line 0 r4 r4 L23
38 trace_line 0 r4 r4 L24
39 trace_line 0 r4 r4 L25
40 trace_line 0 r4 r4 L27
41 trace_line 0 r4 r4 L28
42 trace_line 0 r4 r4 L29
43 trace_line 0 r4 r4 L31
44 trace_line 0 r4 r4 L32
45 trace_line 0 r4 r4 L33
46 trace_line 0 r4 r4 L35
47 trace_line 0 r4 r4 L36
48 trace_line 0 r4 r4 L37
49 trace_line 0 r4 r4 L39
50 trace_line 0 r4 r4 L40
51 trace_line 0 r4 r4 L41
52 trace_line 0 r4 r4 L43
53 trace_line 0 r4 r4 L44
54 trace_line 0 r4 r4 L45
55 trace_line 0 r4 r4 L47
56 trace_scope 0 r4 r4 -1
57 trace_exit 0 r4 r4 F0
58 store32 ptr1 r5
59 store32 ptr2 r6
60 store32 ptr3 r7
61 store32 ptr4 r8

View File

@ -10,7 +10,7 @@ $8 = xy (float2 : slot 2/2, L11)
F0 = float4 main(float2 xy)
F1 = void init_globals()
8 registers, 29 instructions:
8 registers, 33 instructions:
0 r0 = uniform32 ptr0 0
1 r1 = splat 0 (0)
2 r2 = splat 3F000000 (0.5)
@ -26,18 +26,22 @@ loop:
11 trace_enter 0 r7 r7 F0
12 trace_var 0 r7 r7 $7 = r6
13 trace_var 0 r7 r7 $8 = r0
14 trace_line 0 r7 r7 L12
15 trace_enter 0 r7 r7 F1
16 trace_line 0 r7 r7 L8
17 trace_var 0 r7 r7 $2 = r5
18 trace_exit 0 r7 r7 F1
19 trace_line 0 r7 r7 L13
20 trace_var 0 r7 r7 $3 = r1
21 trace_var 0 r7 r7 $4 = r5
22 trace_var 0 r7 r7 $5 = r1
23 trace_var 0 r7 r7 $6 = r5
24 trace_exit 0 r7 r7 F0
25 store32 ptr1 r1
26 store32 ptr2 r5
27 store32 ptr3 r1
28 store32 ptr4 r5
14 trace_scope 0 r7 r7 1
15 trace_line 0 r7 r7 L12
16 trace_enter 0 r7 r7 F1
17 trace_scope 0 r7 r7 1
18 trace_line 0 r7 r7 L8
19 trace_var 0 r7 r7 $2 = r5
20 trace_scope 0 r7 r7 -1
21 trace_exit 0 r7 r7 F1
22 trace_line 0 r7 r7 L13
23 trace_var 0 r7 r7 $3 = r1
24 trace_var 0 r7 r7 $4 = r5
25 trace_var 0 r7 r7 $5 = r1
26 trace_var 0 r7 r7 $6 = r5
27 trace_scope 0 r7 r7 -1
28 trace_exit 0 r7 r7 F0
29 store32 ptr1 r1
30 store32 ptr2 r5
31 store32 ptr3 r1
32 store32 ptr4 r5

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -155,7 +155,7 @@ F5 = bool highp_param(float value)
F6 = bool mediump_param(half value)
F7 = bool lowp_param(half value)
22 registers, 245 instructions:
22 registers, 261 instructions:
0 r0 = uniform32 ptr0 0
1 r1 = uniform32 ptr0 4
2 r2 = uniform32 ptr0 8
@ -191,214 +191,230 @@ loop:
31 trace_enter 0 r21 r21 F0
32 trace_var 0 r21 r21 $12 = r20
33 trace_var 0 r21 r21 $13 = r0
34 trace_line 0 r21 r21 L58
35 trace_var 0 r21 r21 $14 = r9
36 trace_var 0 r21 r21 $15 = r9
37 trace_var 0 r21 r21 $16 = r9
38 trace_var 0 r21 r21 $17 = r9
39 trace_line 0 r21 r21 L59
40 trace_var 0 r21 r21 $18 = r13
41 trace_var 0 r21 r21 $19 = r13
42 trace_var 0 r21 r21 $20 = r13
43 trace_var 0 r21 r21 $21 = r13
44 trace_line 0 r21 r21 L60
45 trace_var 0 r21 r21 $22 = r1
46 trace_var 0 r21 r21 $23 = r2
47 trace_var 0 r21 r21 $24 = r3
48 trace_var 0 r21 r21 $25 = r4
49 trace_line 0 r21 r21 L61
50 trace_line 0 r21 r21 L63
51 trace_var 0 r21 r21 $26 = r5
52 trace_var 0 r21 r21 $27 = r6
53 trace_var 0 r21 r21 $28 = r7
54 trace_var 0 r21 r21 $29 = r8
55 trace_line 0 r21 r21 L64
56 trace_line 0 r21 r21 L66
57 trace_enter 0 r21 r21 F1
58 trace_line 0 r21 r21 L6
59 trace_var 0 r21 r21 $31 = r11
60 trace_line 0 r21 r21 L7
61 trace_var 0 r21 r21 $32 = r11
62 trace_line 0 r21 r21 L8
63 trace_var 0 r21 r21 $33 = r14
64 trace_line 0 r21 r21 L9
65 trace_var 0 r21 r21 $34 = r14
66 trace_line 0 r21 r21 L11
67 trace_var 0 r21 r21 $30 = r10
68 trace_exit 0 r21 r21 F1
69 trace_enter 0 r21 r21 F2
70 trace_line 0 r21 r21 L15
71 trace_var 0 r21 r21 $36 = r15
72 trace_var 0 r21 r21 $37 = r15
73 trace_line 0 r21 r21 L16
74 trace_var 0 r21 r21 $38 = r15
75 trace_var 0 r21 r21 $39 = r15
76 trace_line 0 r21 r21 L17
77 trace_var 0 r21 r21 $40 = r16
78 trace_var 0 r21 r21 $41 = r16
79 trace_var 0 r21 r21 $42 = r16
80 trace_line 0 r21 r21 L18
81 trace_var 0 r21 r21 $43 = r16
82 trace_var 0 r21 r21 $44 = r16
83 trace_var 0 r21 r21 $45 = r16
84 trace_line 0 r21 r21 L19
85 trace_var 0 r21 r21 $46 = r17
86 trace_var 0 r21 r21 $47 = r17
87 trace_var 0 r21 r21 $48 = r17
88 trace_var 0 r21 r21 $49 = r17
89 trace_line 0 r21 r21 L20
90 trace_var 0 r21 r21 $50 = r17
91 trace_var 0 r21 r21 $51 = r17
92 trace_var 0 r21 r21 $52 = r17
93 trace_var 0 r21 r21 $53 = r17
94 trace_line 0 r21 r21 L22
95 trace_var 0 r21 r21 $54 = r14
96 trace_var 0 r21 r21 $55 = r14
97 trace_line 0 r21 r21 L23
98 trace_var 0 r21 r21 $56 = r14
99 trace_var 0 r21 r21 $57 = r14
100 trace_line 0 r21 r21 L24
101 trace_var 0 r21 r21 $58 = r18
102 trace_var 0 r21 r21 $59 = r18
103 trace_var 0 r21 r21 $60 = r18
104 trace_line 0 r21 r21 L25
105 trace_var 0 r21 r21 $61 = r18
106 trace_var 0 r21 r21 $62 = r18
107 trace_var 0 r21 r21 $63 = r18
108 trace_line 0 r21 r21 L26
109 trace_var 0 r21 r21 $64 = r19
110 trace_var 0 r21 r21 $65 = r19
111 trace_var 0 r21 r21 $66 = r19
112 trace_var 0 r21 r21 $67 = r19
113 trace_line 0 r21 r21 L27
114 trace_var 0 r21 r21 $68 = r19
115 trace_var 0 r21 r21 $69 = r19
116 trace_var 0 r21 r21 $70 = r19
117 trace_var 0 r21 r21 $71 = r19
118 trace_line 0 r21 r21 L29
119 trace_var 0 r21 r21 $35 = r10
120 trace_exit 0 r21 r21 F2
121 trace_enter 0 r21 r21 F3
122 trace_line 0 r21 r21 L34
123 trace_var 0 r21 r21 $73 = r15
124 trace_var 0 r21 r21 $74 = r9
125 trace_var 0 r21 r21 $75 = r9
126 trace_var 0 r21 r21 $76 = r15
127 trace_line 0 r21 r21 L35
128 trace_var 0 r21 r21 $77 = r15
129 trace_var 0 r21 r21 $78 = r9
130 trace_var 0 r21 r21 $79 = r9
131 trace_var 0 r21 r21 $80 = r15
132 trace_line 0 r21 r21 L36
133 trace_var 0 r21 r21 $81 = r16
134 trace_var 0 r21 r21 $82 = r9
135 trace_var 0 r21 r21 $83 = r9
136 trace_var 0 r21 r21 $84 = r9
137 trace_var 0 r21 r21 $85 = r16
138 trace_var 0 r21 r21 $86 = r9
139 trace_var 0 r21 r21 $87 = r9
140 trace_var 0 r21 r21 $88 = r9
141 trace_var 0 r21 r21 $89 = r16
142 trace_line 0 r21 r21 L37
143 trace_var 0 r21 r21 $90 = r16
144 trace_var 0 r21 r21 $91 = r9
145 trace_var 0 r21 r21 $92 = r9
146 trace_var 0 r21 r21 $93 = r9
147 trace_var 0 r21 r21 $94 = r16
148 trace_var 0 r21 r21 $95 = r9
149 trace_var 0 r21 r21 $96 = r9
150 trace_var 0 r21 r21 $97 = r9
151 trace_var 0 r21 r21 $98 = r16
152 trace_line 0 r21 r21 L38
153 trace_var 0 r21 r21 $99 = r17
154 trace_var 0 r21 r21 $100 = r9
155 trace_var 0 r21 r21 $101 = r9
156 trace_var 0 r21 r21 $102 = r9
157 trace_var 0 r21 r21 $103 = r9
158 trace_var 0 r21 r21 $104 = r17
159 trace_var 0 r21 r21 $105 = r9
160 trace_var 0 r21 r21 $106 = r9
161 trace_var 0 r21 r21 $107 = r9
162 trace_var 0 r21 r21 $108 = r9
163 trace_var 0 r21 r21 $109 = r17
164 trace_var 0 r21 r21 $110 = r9
165 trace_var 0 r21 r21 $111 = r9
166 trace_var 0 r21 r21 $112 = r9
167 trace_var 0 r21 r21 $113 = r9
168 trace_var 0 r21 r21 $114 = r17
169 trace_line 0 r21 r21 L39
170 trace_var 0 r21 r21 $115 = r17
171 trace_var 0 r21 r21 $116 = r9
172 trace_var 0 r21 r21 $117 = r9
173 trace_var 0 r21 r21 $118 = r9
174 trace_var 0 r21 r21 $119 = r9
175 trace_var 0 r21 r21 $120 = r17
176 trace_var 0 r21 r21 $121 = r9
177 trace_var 0 r21 r21 $122 = r9
178 trace_var 0 r21 r21 $123 = r9
179 trace_var 0 r21 r21 $124 = r9
180 trace_var 0 r21 r21 $125 = r17
181 trace_var 0 r21 r21 $126 = r9
182 trace_var 0 r21 r21 $127 = r9
183 trace_var 0 r21 r21 $128 = r9
184 trace_var 0 r21 r21 $129 = r9
185 trace_var 0 r21 r21 $130 = r17
186 trace_line 0 r21 r21 L41
187 trace_var 0 r21 r21 $72 = r10
188 trace_exit 0 r21 r21 F3
189 trace_enter 0 r21 r21 F4
190 trace_line 0 r21 r21 L45
191 trace_var 0 r21 r21 $132 = r9
192 trace_line 0 r21 r21 L45
193 trace_var 0 r21 r21 $132 = r13
194 trace_line 0 r21 r21 L46
195 trace_var 0 r21 r21 $133 = r9
196 trace_line 0 r21 r21 L46
197 trace_var 0 r21 r21 $133 = r13
198 trace_line 0 r21 r21 L47
199 trace_var 0 r21 r21 $134 = r9
200 trace_var 0 r21 r21 $135 = r9
201 trace_var 0 r21 r21 $136 = r9
202 trace_var 0 r21 r21 $137 = r9
203 trace_line 0 r21 r21 L47
204 trace_var 0 r21 r21 $135 = r13
205 trace_line 0 r21 r21 L47
206 trace_var 0 r21 r21 $136 = r15
207 trace_var 0 r21 r21 $137 = r16
208 trace_line 0 r21 r21 L48
209 trace_var 0 r21 r21 $138 = r9
210 trace_var 0 r21 r21 $139 = r9
211 trace_var 0 r21 r21 $140 = r9
212 trace_var 0 r21 r21 $141 = r9
213 trace_line 0 r21 r21 L48
214 trace_var 0 r21 r21 $139 = r13
215 trace_line 0 r21 r21 L48
216 trace_var 0 r21 r21 $140 = r15
217 trace_var 0 r21 r21 $141 = r16
218 trace_line 0 r21 r21 L50
219 trace_var 0 r21 r21 $131 = r10
220 trace_exit 0 r21 r21 F4
221 trace_enter 0 r21 r21 F5
222 trace_var 0 r21 r21 $143 = r13
223 trace_line 0 r21 r21 L53
224 trace_var 0 r21 r21 $142 = r10
225 trace_exit 0 r21 r21 F5
226 trace_enter 0 r21 r21 F6
227 trace_var 0 r21 r21 $145 = r15
228 trace_line 0 r21 r21 L54
229 trace_var 0 r21 r21 $144 = r10
230 trace_exit 0 r21 r21 F6
231 trace_enter 0 r21 r21 F7
232 trace_var 0 r21 r21 $147 = r16
233 trace_line 0 r21 r21 L55
234 trace_var 0 r21 r21 $146 = r10
235 trace_exit 0 r21 r21 F7
236 trace_var 0 r21 r21 $8 = r1
237 trace_var 0 r21 r21 $9 = r2
238 trace_var 0 r21 r21 $10 = r3
239 trace_var 0 r21 r21 $11 = r4
240 trace_exit 0 r21 r21 F0
241 store32 ptr1 r1
242 store32 ptr2 r2
243 store32 ptr3 r3
244 store32 ptr4 r4
34 trace_scope 0 r21 r21 1
35 trace_line 0 r21 r21 L58
36 trace_var 0 r21 r21 $14 = r9
37 trace_var 0 r21 r21 $15 = r9
38 trace_var 0 r21 r21 $16 = r9
39 trace_var 0 r21 r21 $17 = r9
40 trace_line 0 r21 r21 L59
41 trace_var 0 r21 r21 $18 = r13
42 trace_var 0 r21 r21 $19 = r13
43 trace_var 0 r21 r21 $20 = r13
44 trace_var 0 r21 r21 $21 = r13
45 trace_line 0 r21 r21 L60
46 trace_var 0 r21 r21 $22 = r1
47 trace_var 0 r21 r21 $23 = r2
48 trace_var 0 r21 r21 $24 = r3
49 trace_var 0 r21 r21 $25 = r4
50 trace_line 0 r21 r21 L61
51 trace_line 0 r21 r21 L63
52 trace_var 0 r21 r21 $26 = r5
53 trace_var 0 r21 r21 $27 = r6
54 trace_var 0 r21 r21 $28 = r7
55 trace_var 0 r21 r21 $29 = r8
56 trace_line 0 r21 r21 L64
57 trace_line 0 r21 r21 L66
58 trace_enter 0 r21 r21 F1
59 trace_scope 0 r21 r21 1
60 trace_line 0 r21 r21 L6
61 trace_var 0 r21 r21 $31 = r11
62 trace_line 0 r21 r21 L7
63 trace_var 0 r21 r21 $32 = r11
64 trace_line 0 r21 r21 L8
65 trace_var 0 r21 r21 $33 = r14
66 trace_line 0 r21 r21 L9
67 trace_var 0 r21 r21 $34 = r14
68 trace_line 0 r21 r21 L11
69 trace_var 0 r21 r21 $30 = r10
70 trace_scope 0 r21 r21 -1
71 trace_exit 0 r21 r21 F1
72 trace_enter 0 r21 r21 F2
73 trace_scope 0 r21 r21 1
74 trace_line 0 r21 r21 L15
75 trace_var 0 r21 r21 $36 = r15
76 trace_var 0 r21 r21 $37 = r15
77 trace_line 0 r21 r21 L16
78 trace_var 0 r21 r21 $38 = r15
79 trace_var 0 r21 r21 $39 = r15
80 trace_line 0 r21 r21 L17
81 trace_var 0 r21 r21 $40 = r16
82 trace_var 0 r21 r21 $41 = r16
83 trace_var 0 r21 r21 $42 = r16
84 trace_line 0 r21 r21 L18
85 trace_var 0 r21 r21 $43 = r16
86 trace_var 0 r21 r21 $44 = r16
87 trace_var 0 r21 r21 $45 = r16
88 trace_line 0 r21 r21 L19
89 trace_var 0 r21 r21 $46 = r17
90 trace_var 0 r21 r21 $47 = r17
91 trace_var 0 r21 r21 $48 = r17
92 trace_var 0 r21 r21 $49 = r17
93 trace_line 0 r21 r21 L20
94 trace_var 0 r21 r21 $50 = r17
95 trace_var 0 r21 r21 $51 = r17
96 trace_var 0 r21 r21 $52 = r17
97 trace_var 0 r21 r21 $53 = r17
98 trace_line 0 r21 r21 L22
99 trace_var 0 r21 r21 $54 = r14
100 trace_var 0 r21 r21 $55 = r14
101 trace_line 0 r21 r21 L23
102 trace_var 0 r21 r21 $56 = r14
103 trace_var 0 r21 r21 $57 = r14
104 trace_line 0 r21 r21 L24
105 trace_var 0 r21 r21 $58 = r18
106 trace_var 0 r21 r21 $59 = r18
107 trace_var 0 r21 r21 $60 = r18
108 trace_line 0 r21 r21 L25
109 trace_var 0 r21 r21 $61 = r18
110 trace_var 0 r21 r21 $62 = r18
111 trace_var 0 r21 r21 $63 = r18
112 trace_line 0 r21 r21 L26
113 trace_var 0 r21 r21 $64 = r19
114 trace_var 0 r21 r21 $65 = r19
115 trace_var 0 r21 r21 $66 = r19
116 trace_var 0 r21 r21 $67 = r19
117 trace_line 0 r21 r21 L27
118 trace_var 0 r21 r21 $68 = r19
119 trace_var 0 r21 r21 $69 = r19
120 trace_var 0 r21 r21 $70 = r19
121 trace_var 0 r21 r21 $71 = r19
122 trace_line 0 r21 r21 L29
123 trace_var 0 r21 r21 $35 = r10
124 trace_scope 0 r21 r21 -1
125 trace_exit 0 r21 r21 F2
126 trace_enter 0 r21 r21 F3
127 trace_scope 0 r21 r21 1
128 trace_line 0 r21 r21 L34
129 trace_var 0 r21 r21 $73 = r15
130 trace_var 0 r21 r21 $74 = r9
131 trace_var 0 r21 r21 $75 = r9
132 trace_var 0 r21 r21 $76 = r15
133 trace_line 0 r21 r21 L35
134 trace_var 0 r21 r21 $77 = r15
135 trace_var 0 r21 r21 $78 = r9
136 trace_var 0 r21 r21 $79 = r9
137 trace_var 0 r21 r21 $80 = r15
138 trace_line 0 r21 r21 L36
139 trace_var 0 r21 r21 $81 = r16
140 trace_var 0 r21 r21 $82 = r9
141 trace_var 0 r21 r21 $83 = r9
142 trace_var 0 r21 r21 $84 = r9
143 trace_var 0 r21 r21 $85 = r16
144 trace_var 0 r21 r21 $86 = r9
145 trace_var 0 r21 r21 $87 = r9
146 trace_var 0 r21 r21 $88 = r9
147 trace_var 0 r21 r21 $89 = r16
148 trace_line 0 r21 r21 L37
149 trace_var 0 r21 r21 $90 = r16
150 trace_var 0 r21 r21 $91 = r9
151 trace_var 0 r21 r21 $92 = r9
152 trace_var 0 r21 r21 $93 = r9
153 trace_var 0 r21 r21 $94 = r16
154 trace_var 0 r21 r21 $95 = r9
155 trace_var 0 r21 r21 $96 = r9
156 trace_var 0 r21 r21 $97 = r9
157 trace_var 0 r21 r21 $98 = r16
158 trace_line 0 r21 r21 L38
159 trace_var 0 r21 r21 $99 = r17
160 trace_var 0 r21 r21 $100 = r9
161 trace_var 0 r21 r21 $101 = r9
162 trace_var 0 r21 r21 $102 = r9
163 trace_var 0 r21 r21 $103 = r9
164 trace_var 0 r21 r21 $104 = r17
165 trace_var 0 r21 r21 $105 = r9
166 trace_var 0 r21 r21 $106 = r9
167 trace_var 0 r21 r21 $107 = r9
168 trace_var 0 r21 r21 $108 = r9
169 trace_var 0 r21 r21 $109 = r17
170 trace_var 0 r21 r21 $110 = r9
171 trace_var 0 r21 r21 $111 = r9
172 trace_var 0 r21 r21 $112 = r9
173 trace_var 0 r21 r21 $113 = r9
174 trace_var 0 r21 r21 $114 = r17
175 trace_line 0 r21 r21 L39
176 trace_var 0 r21 r21 $115 = r17
177 trace_var 0 r21 r21 $116 = r9
178 trace_var 0 r21 r21 $117 = r9
179 trace_var 0 r21 r21 $118 = r9
180 trace_var 0 r21 r21 $119 = r9
181 trace_var 0 r21 r21 $120 = r17
182 trace_var 0 r21 r21 $121 = r9
183 trace_var 0 r21 r21 $122 = r9
184 trace_var 0 r21 r21 $123 = r9
185 trace_var 0 r21 r21 $124 = r9
186 trace_var 0 r21 r21 $125 = r17
187 trace_var 0 r21 r21 $126 = r9
188 trace_var 0 r21 r21 $127 = r9
189 trace_var 0 r21 r21 $128 = r9
190 trace_var 0 r21 r21 $129 = r9
191 trace_var 0 r21 r21 $130 = r17
192 trace_line 0 r21 r21 L41
193 trace_var 0 r21 r21 $72 = r10
194 trace_scope 0 r21 r21 -1
195 trace_exit 0 r21 r21 F3
196 trace_enter 0 r21 r21 F4
197 trace_scope 0 r21 r21 1
198 trace_line 0 r21 r21 L45
199 trace_var 0 r21 r21 $132 = r9
200 trace_line 0 r21 r21 L45
201 trace_var 0 r21 r21 $132 = r13
202 trace_line 0 r21 r21 L46
203 trace_var 0 r21 r21 $133 = r9
204 trace_line 0 r21 r21 L46
205 trace_var 0 r21 r21 $133 = r13
206 trace_line 0 r21 r21 L47
207 trace_var 0 r21 r21 $134 = r9
208 trace_var 0 r21 r21 $135 = r9
209 trace_var 0 r21 r21 $136 = r9
210 trace_var 0 r21 r21 $137 = r9
211 trace_line 0 r21 r21 L47
212 trace_var 0 r21 r21 $135 = r13
213 trace_line 0 r21 r21 L47
214 trace_var 0 r21 r21 $136 = r15
215 trace_var 0 r21 r21 $137 = r16
216 trace_line 0 r21 r21 L48
217 trace_var 0 r21 r21 $138 = r9
218 trace_var 0 r21 r21 $139 = r9
219 trace_var 0 r21 r21 $140 = r9
220 trace_var 0 r21 r21 $141 = r9
221 trace_line 0 r21 r21 L48
222 trace_var 0 r21 r21 $139 = r13
223 trace_line 0 r21 r21 L48
224 trace_var 0 r21 r21 $140 = r15
225 trace_var 0 r21 r21 $141 = r16
226 trace_line 0 r21 r21 L50
227 trace_var 0 r21 r21 $131 = r10
228 trace_scope 0 r21 r21 -1
229 trace_exit 0 r21 r21 F4
230 trace_enter 0 r21 r21 F5
231 trace_var 0 r21 r21 $143 = r13
232 trace_scope 0 r21 r21 1
233 trace_line 0 r21 r21 L53
234 trace_var 0 r21 r21 $142 = r10
235 trace_scope 0 r21 r21 -1
236 trace_exit 0 r21 r21 F5
237 trace_enter 0 r21 r21 F6
238 trace_var 0 r21 r21 $145 = r15
239 trace_scope 0 r21 r21 1
240 trace_line 0 r21 r21 L54
241 trace_var 0 r21 r21 $144 = r10
242 trace_scope 0 r21 r21 -1
243 trace_exit 0 r21 r21 F6
244 trace_enter 0 r21 r21 F7
245 trace_var 0 r21 r21 $147 = r16
246 trace_scope 0 r21 r21 1
247 trace_line 0 r21 r21 L55
248 trace_var 0 r21 r21 $146 = r10
249 trace_scope 0 r21 r21 -1
250 trace_exit 0 r21 r21 F7
251 trace_var 0 r21 r21 $8 = r1
252 trace_var 0 r21 r21 $9 = r2
253 trace_var 0 r21 r21 $10 = r3
254 trace_var 0 r21 r21 $11 = r4
255 trace_scope 0 r21 r21 -1
256 trace_exit 0 r21 r21 F0
257 store32 ptr1 r1
258 store32 ptr2 r2
259 store32 ptr3 r3
260 store32 ptr4 r4

View File

@ -89,53 +89,53 @@
87 r16 = bit_and r12 r15
88 r13 = select r16 r14 r13
89 r15 = bit_or r12 r15
90 r14 = add_i32 r10 r13
91 r16 = bit_and r12 r15
92 r13 = select r16 r14 r13
93 r14 = bit_xor r8 r16
94 r14 = bit_and r15 r14
90 r14 = bit_and r12 r15
91 r16 = add_i32 r10 r13
92 r13 = select r14 r16 r13
93 r16 = bit_xor r8 r14
94 r16 = bit_and r15 r16
95 r15 = add_i32 r10 r13
96 r17 = bit_and r12 r14
96 r17 = bit_and r12 r16
97 r13 = select r17 r15 r13
98 r14 = bit_or r16 r14
99 r16 = add_i32 r10 r13
100 r15 = bit_and r12 r14
101 r13 = select r15 r16 r13
102 r16 = bit_xor r8 r15
103 r16 = bit_and r14 r16
104 r14 = add_i32 r10 r13
105 r17 = bit_and r12 r16
106 r13 = select r17 r14 r13
107 r16 = bit_or r15 r16
108 r15 = add_i32 r10 r13
109 r14 = bit_and r12 r16
110 r13 = select r14 r15 r13
111 r15 = bit_xor r8 r14
112 r15 = bit_and r16 r15
113 r16 = add_i32 r10 r13
114 r17 = bit_and r12 r15
115 r13 = select r17 r16 r13
116 r15 = bit_or r14 r15
117 r14 = add_i32 r10 r13
118 r16 = bit_and r12 r15
119 r13 = select r16 r14 r13
120 r14 = bit_xor r8 r16
121 r14 = bit_and r15 r14
122 r15 = add_i32 r10 r13
123 r17 = bit_and r12 r14
124 r13 = select r17 r15 r13
125 r14 = bit_or r16 r14
126 r16 = add_i32 r10 r13
127 r15 = bit_and r12 r14
128 r13 = select r15 r16 r13
129 r16 = bit_xor r8 r15
130 r16 = bit_and r14 r16
131 r14 = add_i32 r10 r13
98 r16 = bit_or r14 r16
99 r14 = bit_and r12 r16
100 r15 = add_i32 r10 r13
101 r13 = select r14 r15 r13
102 r15 = bit_xor r8 r14
103 r15 = bit_and r16 r15
104 r16 = add_i32 r10 r13
105 r17 = bit_and r12 r15
106 r13 = select r17 r16 r13
107 r15 = bit_or r14 r15
108 r14 = bit_and r12 r15
109 r16 = add_i32 r10 r13
110 r13 = select r14 r16 r13
111 r16 = bit_xor r8 r14
112 r16 = bit_and r15 r16
113 r15 = add_i32 r10 r13
114 r17 = bit_and r12 r16
115 r13 = select r17 r15 r13
116 r16 = bit_or r14 r16
117 r14 = bit_and r12 r16
118 r15 = add_i32 r10 r13
119 r13 = select r14 r15 r13
120 r15 = bit_xor r8 r14
121 r15 = bit_and r16 r15
122 r16 = add_i32 r10 r13
123 r17 = bit_and r12 r15
124 r13 = select r17 r16 r13
125 r15 = bit_or r14 r15
126 r14 = bit_and r12 r15
127 r16 = add_i32 r10 r13
128 r13 = select r14 r16 r13
129 r16 = bit_xor r8 r14
130 r16 = bit_and r15 r16
131 r15 = add_i32 r10 r13
132 r17 = bit_and r12 r16
133 r13 = select r17 r14 r13
134 r16 = bit_or r15 r16
135 r15 = add_i32 r10 r13
136 r14 = bit_and r12 r16
133 r13 = select r17 r15 r13
134 r16 = bit_or r14 r16
135 r14 = bit_and r12 r16
136 r15 = add_i32 r10 r13
137 r13 = select r14 r15 r13
138 r15 = bit_xor r8 r14
139 r15 = bit_and r16 r15
@ -143,149 +143,149 @@
141 r17 = bit_and r12 r15
142 r13 = select r17 r16 r13
143 r15 = bit_or r14 r15
144 r14 = add_i32 r10 r13
145 r16 = bit_and r12 r15
146 r13 = select r16 r14 r13
147 r14 = bit_xor r8 r16
148 r14 = bit_and r15 r14
144 r14 = bit_and r12 r15
145 r16 = add_i32 r10 r13
146 r13 = select r14 r16 r13
147 r16 = bit_xor r8 r14
148 r16 = bit_and r15 r16
149 r15 = add_i32 r10 r13
150 r17 = bit_and r12 r14
150 r17 = bit_and r12 r16
151 r13 = select r17 r15 r13
152 r14 = bit_or r16 r14
153 r16 = add_i32 r10 r13
154 r15 = bit_and r12 r14
155 r13 = select r15 r16 r13
156 r16 = bit_xor r8 r15
157 r16 = bit_and r14 r16
158 r14 = add_i32 r10 r13
159 r17 = bit_and r12 r16
160 r13 = select r17 r14 r13
161 r16 = bit_or r15 r16
162 r15 = add_i32 r10 r13
163 r14 = bit_and r12 r16
164 r13 = select r14 r15 r13
152 r16 = bit_or r14 r16
153 r14 = bit_and r12 r16
154 r15 = add_i32 r10 r13
155 r13 = select r14 r15 r13
156 r15 = bit_xor r8 r14
157 r15 = bit_and r16 r15
158 r16 = add_i32 r10 r13
159 r17 = bit_and r12 r15
160 r13 = select r17 r16 r13
161 r15 = bit_or r14 r15
162 r14 = bit_and r12 r15
163 r16 = add_i32 r10 r13
164 r13 = select r14 r16 r13
165 r14 = bit_xor r8 r14
166 r14 = bit_and r16 r14
167 r16 = add_i32 r10 r13
166 r14 = bit_and r15 r14
167 r15 = add_i32 r10 r13
168 r14 = bit_and r12 r14
169 r13 = select r14 r16 r13
170 r16 = add_i32 r10 r13
171 r13 = select r11 r16 r13
172 r16 = splat B (1.5414283e-44)
173 r16 = eq_i32 r13 r16
174 r16 = bit_and r11 r16
175 r16 = bit_and r11 r16
176 r9 = bit_and r9 r16
169 r13 = select r14 r15 r13
170 r15 = add_i32 r10 r13
171 r13 = select r11 r15 r13
172 r15 = splat B (1.5414283e-44)
173 r15 = eq_i32 r13 r15
174 r15 = bit_and r11 r15
175 r15 = bit_and r11 r15
176 r9 = bit_and r9 r15
177 r11 = bit_and r10 r9
178 r13 = bit_xor r8 r9
179 r13 = bit_and r16 r13
179 r13 = bit_and r15 r13
180 r14 = add_i32 r10 r11
181 r12 = bit_xor r8 r13
182 r15 = bit_and r16 r12
183 r11 = select r15 r14 r11
184 r14 = add_i32 r10 r11
185 r15 = bit_and r9 r12
186 r11 = select r15 r14 r11
187 r15 = bit_xor r8 r15
188 r15 = bit_and r16 r15
189 r15 = bit_and r12 r15
190 r15 = bit_or r13 r15
182 r16 = bit_and r15 r12
183 r11 = select r16 r14 r11
184 r14 = bit_and r9 r12
185 r16 = add_i32 r10 r11
186 r11 = select r14 r16 r11
187 r14 = bit_xor r8 r14
188 r14 = bit_and r15 r14
189 r14 = bit_and r12 r14
190 r14 = bit_or r13 r14
191 r13 = add_i32 r10 r11
192 r12 = bit_xor r8 r15
193 r14 = bit_and r16 r12
194 r11 = select r14 r13 r11
195 r13 = add_i32 r10 r11
196 r14 = bit_and r9 r12
197 r11 = select r14 r13 r11
198 r14 = bit_xor r8 r14
199 r14 = bit_and r16 r14
200 r14 = bit_and r12 r14
201 r14 = bit_or r15 r14
202 r15 = add_i32 r10 r11
203 r12 = bit_xor r8 r14
204 r13 = bit_and r16 r12
205 r11 = select r13 r15 r11
206 r15 = add_i32 r10 r11
207 r13 = bit_and r9 r12
208 r11 = select r13 r15 r11
209 r13 = bit_xor r8 r13
210 r13 = bit_and r16 r13
211 r13 = bit_and r12 r13
212 r13 = bit_or r14 r13
213 r14 = add_i32 r10 r11
214 r12 = bit_xor r8 r13
215 r15 = bit_and r16 r12
216 r11 = select r15 r14 r11
217 r14 = add_i32 r10 r11
218 r15 = bit_and r9 r12
219 r11 = select r15 r14 r11
220 r15 = bit_xor r8 r15
221 r15 = bit_and r16 r15
222 r15 = bit_and r12 r15
223 r15 = bit_or r13 r15
224 r13 = add_i32 r10 r11
225 r12 = bit_xor r8 r15
226 r14 = bit_and r16 r12
227 r11 = select r14 r13 r11
228 r13 = add_i32 r10 r11
229 r14 = bit_and r9 r12
230 r11 = select r14 r13 r11
192 r12 = bit_xor r8 r14
193 r16 = bit_and r15 r12
194 r11 = select r16 r13 r11
195 r13 = bit_and r9 r12
196 r16 = add_i32 r10 r11
197 r11 = select r13 r16 r11
198 r13 = bit_xor r8 r13
199 r13 = bit_and r15 r13
200 r13 = bit_and r12 r13
201 r13 = bit_or r14 r13
202 r14 = add_i32 r10 r11
203 r12 = bit_xor r8 r13
204 r16 = bit_and r15 r12
205 r11 = select r16 r14 r11
206 r14 = bit_and r9 r12
207 r16 = add_i32 r10 r11
208 r11 = select r14 r16 r11
209 r14 = bit_xor r8 r14
210 r14 = bit_and r15 r14
211 r14 = bit_and r12 r14
212 r14 = bit_or r13 r14
213 r13 = add_i32 r10 r11
214 r12 = bit_xor r8 r14
215 r16 = bit_and r15 r12
216 r11 = select r16 r13 r11
217 r13 = bit_and r9 r12
218 r16 = add_i32 r10 r11
219 r11 = select r13 r16 r11
220 r13 = bit_xor r8 r13
221 r13 = bit_and r15 r13
222 r13 = bit_and r12 r13
223 r13 = bit_or r14 r13
224 r14 = add_i32 r10 r11
225 r12 = bit_xor r8 r13
226 r16 = bit_and r15 r12
227 r11 = select r16 r14 r11
228 r14 = bit_and r9 r12
229 r16 = add_i32 r10 r11
230 r11 = select r14 r16 r11
231 r14 = bit_xor r8 r14
232 r14 = bit_and r16 r14
232 r14 = bit_and r15 r14
233 r14 = bit_and r12 r14
234 r14 = bit_or r15 r14
235 r15 = add_i32 r10 r11
234 r14 = bit_or r13 r14
235 r13 = add_i32 r10 r11
236 r12 = bit_xor r8 r14
237 r13 = bit_and r16 r12
238 r11 = select r13 r15 r11
239 r15 = add_i32 r10 r11
240 r13 = bit_and r9 r12
241 r11 = select r13 r15 r11
237 r16 = bit_and r15 r12
238 r11 = select r16 r13 r11
239 r13 = bit_and r9 r12
240 r16 = add_i32 r10 r11
241 r11 = select r13 r16 r11
242 r13 = bit_xor r8 r13
243 r13 = bit_and r16 r13
243 r13 = bit_and r15 r13
244 r13 = bit_and r12 r13
245 r13 = bit_or r14 r13
246 r14 = add_i32 r10 r11
247 r12 = bit_xor r8 r13
248 r15 = bit_and r16 r12
249 r11 = select r15 r14 r11
250 r14 = add_i32 r10 r11
251 r15 = bit_and r9 r12
252 r11 = select r15 r14 r11
253 r15 = bit_xor r8 r15
254 r15 = bit_and r16 r15
255 r15 = bit_and r12 r15
256 r15 = bit_or r13 r15
248 r16 = bit_and r15 r12
249 r11 = select r16 r14 r11
250 r14 = bit_and r9 r12
251 r16 = add_i32 r10 r11
252 r11 = select r14 r16 r11
253 r14 = bit_xor r8 r14
254 r14 = bit_and r15 r14
255 r14 = bit_and r12 r14
256 r14 = bit_or r13 r14
257 r13 = add_i32 r10 r11
258 r12 = bit_xor r8 r15
259 r14 = bit_and r16 r12
260 r11 = select r14 r13 r11
261 r13 = add_i32 r10 r11
262 r14 = bit_and r9 r12
263 r11 = select r14 r13 r11
264 r14 = bit_xor r8 r14
265 r14 = bit_and r16 r14
266 r14 = bit_and r12 r14
267 r14 = bit_or r15 r14
268 r15 = add_i32 r10 r11
269 r12 = bit_xor r8 r14
270 r13 = bit_and r16 r12
271 r11 = select r13 r15 r11
272 r15 = add_i32 r10 r11
273 r9 = bit_and r9 r12
274 r11 = select r9 r15 r11
258 r12 = bit_xor r8 r14
259 r16 = bit_and r15 r12
260 r11 = select r16 r13 r11
261 r13 = bit_and r9 r12
262 r16 = add_i32 r10 r11
263 r11 = select r13 r16 r11
264 r13 = bit_xor r8 r13
265 r13 = bit_and r15 r13
266 r13 = bit_and r12 r13
267 r13 = bit_or r14 r13
268 r14 = add_i32 r10 r11
269 r12 = bit_xor r8 r13
270 r16 = bit_and r15 r12
271 r11 = select r16 r14 r11
272 r9 = bit_and r9 r12
273 r14 = add_i32 r10 r11
274 r11 = select r9 r14 r11
275 r9 = bit_xor r8 r9
276 r9 = bit_and r16 r9
276 r9 = bit_and r15 r9
277 r9 = bit_and r12 r9
278 r9 = bit_or r14 r9
278 r9 = bit_or r13 r9
279 r10 = add_i32 r10 r11
280 r9 = bit_xor r8 r9
281 r9 = bit_and r16 r9
281 r9 = bit_and r15 r9
282 r11 = select r9 r10 r11
283 r10 = splat 14 (2.8025969e-44)
284 r10 = eq_i32 r11 r10
285 r10 = bit_and r9 r10
286 r10 = bit_and r16 r10
286 r10 = bit_and r15 r10
287 r4 = select r10 r0 r4
288 r5 = select r10 r1 r5
289 r6 = select r10 r2 r6