Update opcode canonicalization logic in SkVM.

Previously, our ID canonicalization was simply "lower ID numbers before
higher ID numbers" and was done separately at every opcode by taking
the min and max of (x.id, y.id).

Now, this logic is factored out into a helper function
`canonicalizeIdOrder` and has two rules:
- Immediate values go last; that is, "x + 1" instead of "1 + x".
- If both/neither are immediate, lower IDs before higher IDs (as
  before)

This change lets us remove a lot of simplification logic. We no longer
need to check for both `x + 0` and `0 + x` when removing no-op
arithmetic; now we can be certain that the immediate will always come
last, so just checking for `x + 0` is sufficient.

Change-Id: I66cc5c23bba414041c0bc556521d3db57fac504d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/524222
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
This commit is contained in:
John Stiles 2022-03-24 14:33:48 -04:00 committed by SkCQ
parent 3b238ceae9
commit 8318cc9928
13 changed files with 408 additions and 383 deletions

View File

@ -763,6 +763,23 @@ namespace skvm {
I32 Builder::splat(int n) { return {this, push(Op::splat, NA,NA,NA,NA, n) }; }
template <typename F32_or_I32>
void Builder::canonicalizeIdOrder(F32_or_I32& x, F32_or_I32& y) {
bool immX = fProgram[x.id].op == Op::splat;
bool immY = fProgram[y.id].op == Op::splat;
if (immX != immY) {
if (immX) {
// Prefer (val, imm) over (imm, val).
std::swap(x, y);
}
return;
}
if (x.id > y.id) {
// Prefer (lower-ID, higher-ID) over (higher-ID, lower-ID).
std::swap(x, y);
}
}
// Be careful peepholing float math! Transformations you might expect to
// be legal can fail in the face of NaN/Inf, e.g. 0*x is not always 0.
// Float peepholes must pass this equivalence test for all ~4B floats:
@ -780,8 +797,8 @@ namespace skvm {
F32 Builder::add(F32 x, F32 y) {
if (float X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X+Y); }
this->canonicalizeIdOrder(x, y);
if (this->isImm(y.id, 0.0f)) { return x; } // x+0 == x
if (this->isImm(x.id, 0.0f)) { return y; } // 0+y == y
if (fFeatures.fma) {
if (fProgram[x.id].op == Op::mul_f32) {
@ -791,7 +808,7 @@ namespace skvm {
return {this, this->push(Op::fma_f32, fProgram[y.id].x, fProgram[y.id].y, x.id)};
}
}
return {this, this->push(Op::add_f32, std::min(x.id, y.id), std::max(x.id, y.id))};
return {this, this->push(Op::add_f32, x.id, y.id)};
}
F32 Builder::sub(F32 x, F32 y) {
@ -810,9 +827,9 @@ namespace skvm {
F32 Builder::mul(F32 x, F32 y) {
if (float X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X*Y); }
this->canonicalizeIdOrder(x, y);
if (this->isImm(y.id, 1.0f)) { return x; } // x*1 == x
if (this->isImm(x.id, 1.0f)) { return y; } // 1*y == y
return {this, this->push(Op::mul_f32, std::min(x.id, y.id), std::max(x.id, y.id))};
return {this, this->push(Op::mul_f32, x.id, y.id)};
}
F32 Builder::fast_mul(F32 x, F32 y) {
@ -1011,9 +1028,9 @@ namespace skvm {
SK_ATTRIBUTE(no_sanitize("signed-integer-overflow"))
I32 Builder::add(I32 x, I32 y) {
if (int X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X+Y); }
if (this->isImm(x.id, 0)) { return y; }
if (this->isImm(y.id, 0)) { return x; }
return {this, this->push(Op::add_i32, std::min(x.id, y.id), std::max(x.id, y.id))};
this->canonicalizeIdOrder(x, y);
if (this->isImm(y.id, 0)) { return x; } // x+0 == x
return {this, this->push(Op::add_i32, x.id, y.id)};
}
SK_ATTRIBUTE(no_sanitize("signed-integer-overflow"))
I32 Builder::sub(I32 x, I32 y) {
@ -1024,11 +1041,10 @@ namespace skvm {
SK_ATTRIBUTE(no_sanitize("signed-integer-overflow"))
I32 Builder::mul(I32 x, I32 y) {
if (int X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X*Y); }
if (this->isImm(x.id, 0)) { return splat(0); }
if (this->isImm(y.id, 0)) { return splat(0); }
if (this->isImm(x.id, 1)) { return y; }
if (this->isImm(y.id, 1)) { return x; }
return {this, this->push(Op::mul_i32, std::min(x.id, y.id), std::max(x.id, y.id))};
this->canonicalizeIdOrder(x, y);
if (this->isImm(y.id, 0)) { return splat(0); } // x*0 == 0
if (this->isImm(y.id, 1)) { return x; } // x*1 == x
return {this, this->push(Op::mul_i32, x.id, y.id)};
}
SK_ATTRIBUTE(no_sanitize("shift"))
@ -1050,11 +1066,13 @@ namespace skvm {
I32 Builder:: eq(F32 x, F32 y) {
if (float X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X==Y ? ~0 : 0); }
return {this, this->push(Op::eq_f32, std::min(x.id, y.id), std::max(x.id, y.id))};
this->canonicalizeIdOrder(x, y);
return {this, this->push(Op::eq_f32, x.id, y.id)};
}
I32 Builder::neq(F32 x, F32 y) {
if (float X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X!=Y ? ~0 : 0); }
return {this, this->push(Op::neq_f32, std::min(x.id, y.id), std::max(x.id, y.id))};
this->canonicalizeIdOrder(x, y);
return {this, this->push(Op::neq_f32, x.id, y.id)};
}
I32 Builder::lt(F32 x, F32 y) {
if (float X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(Y> X ? ~0 : 0); }
@ -1076,7 +1094,8 @@ namespace skvm {
I32 Builder:: eq(I32 x, I32 y) {
if (x.id == y.id) { return splat(~0); }
if (int X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X==Y ? ~0 : 0); }
return {this, this->push(Op:: eq_i32, std::min(x.id, y.id), std::max(x.id, y.id))};
this->canonicalizeIdOrder(x, y);
return {this, this->push(Op:: eq_i32, x.id, y.id)};
}
I32 Builder::neq(I32 x, I32 y) {
if (int X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X!=Y ? ~0 : 0); }
@ -1097,27 +1116,25 @@ namespace skvm {
I32 Builder::bit_and(I32 x, I32 y) {
if (x.id == y.id) { return x; }
if (int X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X&Y); }
this->canonicalizeIdOrder(x, y);
if (this->isImm(y.id, 0)) { return splat(0); } // (x & false) == false
if (this->isImm(x.id, 0)) { return splat(0); } // (false & y) == false
if (this->isImm(y.id,~0)) { return x; } // (x & true) == x
if (this->isImm(x.id,~0)) { return y; } // (true & y) == y
return {this, this->push(Op::bit_and, std::min(x.id, y.id), std::max(x.id, y.id))};
return {this, this->push(Op::bit_and, x.id, y.id)};
}
I32 Builder::bit_or(I32 x, I32 y) {
if (x.id == y.id) { return x; }
if (int X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X|Y); }
this->canonicalizeIdOrder(x, y);
if (this->isImm(y.id, 0)) { return x; } // (x | false) == x
if (this->isImm(x.id, 0)) { return y; } // (false | y) == y
if (this->isImm(y.id,~0)) { return splat(~0); } // (x | true) == true
if (this->isImm(x.id,~0)) { return splat(~0); } // (true | y) == true
return {this, this->push(Op::bit_or, std::min(x.id, y.id), std::max(x.id, y.id))};
return {this, this->push(Op::bit_or, x.id, y.id)};
}
I32 Builder::bit_xor(I32 x, I32 y) {
if (x.id == y.id) { return splat(0); }
if (int X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X^Y); }
this->canonicalizeIdOrder(x, y);
if (this->isImm(y.id, 0)) { return x; } // (x ^ false) == x
if (this->isImm(x.id, 0)) { return y; } // (false ^ y) == y
return {this, this->push(Op::bit_xor, std::min(x.id, y.id), std::max(x.id, y.id))};
return {this, this->push(Op::bit_xor, x.id, y.id)};
}
I32 Builder::bit_clear(I32 x, I32 y) {

View File

@ -1008,6 +1008,14 @@ namespace skvm {
return this->allImm(id, &imm) && imm == want;
}
// `canonicalizeIdOrder` and has two rules:
// - Immediate values go last; that is, `x + 1` is preferred over `1 + x`.
// - If both/neither of x and y are immediate, lower IDs go before higher IDs.
// Canonicalizing the IDs helps with opcode deduplication. Putting immediates in a
// consistent position makes it easier to detect no-op arithmetic like `x + 0`.
template <typename F32_or_I32>
void canonicalizeIdOrder(F32_or_I32& x, F32_or_I32& y);
SkTHashMap<Instruction, Val, InstructionHash> fIndex;
std::vector<Instruction> fProgram;
std::vector<TraceHook*> fTraceHooks;

View File

@ -24,11 +24,11 @@ loop:
21 r6 = add_i32 r6 r0
22 r6 = shl_i32 r6 2
23 r11 = gather32 ptr0 10 r6
24 r12 = add_i32 r3 r6
24 r12 = add_i32 r6 r3
25 r12 = gather32 ptr0 10 r12
26 r13 = add_i32 r4 r6
26 r13 = add_i32 r6 r4
27 r13 = gather32 ptr0 10 r13
28 r6 = add_i32 r5 r6
28 r6 = add_i32 r6 r5
29 r6 = gather32 ptr0 10 r6
30 r14 = sub_f32 r2 r7
31 r11 = mul_f32 r11 r14

View File

@ -10,11 +10,11 @@
8 r7 = to_f32 r1
9 r7 = select r5 r6 r7
10 r3 = eq_i32 r1 r3
11 r3 = bit_xor r4 r3
12 r4 = splat 1 (1.4012985e-45)
13 r4 = bit_and r2 r4
11 r4 = bit_xor r3 r4
12 r3 = splat 1 (1.4012985e-45)
13 r3 = bit_and r2 r3
14 r0 = trunc r0
15 r0 = select r3 r4 r0
15 r0 = select r4 r3 r0
16 r0 = to_f32 r0
17 r0 = mul_f32 r7 r0
loop:

View File

@ -144,13 +144,13 @@ loop:
61 trace_var 0 r34 r34 $19 = r9
62 trace_scope 0 r34 r34 1
63 trace_line 0 r34 r34 L9
64 r35 = eq_f32 r9 r33
64 r35 = eq_f32 r33 r9
65 trace_scope 0 r35 r34 1
66 trace_line 0 r35 r34 L9
67 trace_var 0 r35 r34 $17 = r9
68 trace_scope 0 r35 r34 -1
69 trace_scope 0 r34 r34 -1
70 r36 = bit_xor r10 r35
70 r36 = bit_xor r35 r10
71 trace_line 0 r36 r34 L8
72 trace_var 0 r36 r34 $19 = r15
73 trace_scope 0 r36 r34 1
@ -159,12 +159,12 @@ loop:
76 r37 = bit_and r36 r37
77 trace_scope 0 r37 r34 1
78 trace_line 0 r37 r34 L9
79 r38 = bit_and r15 r37
79 r38 = bit_and r37 r15
80 trace_var 0 r37 r34 $17 = r38
81 r35 = bit_or r35 r37
82 trace_scope 0 r37 r34 -1
83 trace_scope 0 r36 r34 -1
84 r36 = bit_xor r10 r35
84 r36 = bit_xor r35 r10
85 trace_line 0 r36 r34 L8
86 trace_var 0 r36 r34 $19 = r16
87 trace_scope 0 r36 r34 1
@ -178,7 +178,7 @@ loop:
95 r35 = bit_or r35 r37
96 trace_scope 0 r37 r34 -1
97 trace_scope 0 r36 r34 -1
98 r36 = bit_xor r10 r35
98 r36 = bit_xor r35 r10
99 trace_line 0 r36 r34 L8
100 trace_var 0 r36 r34 $19 = r17
101 trace_scope 0 r36 r34 1
@ -192,7 +192,7 @@ loop:
109 r35 = bit_or r35 r37
110 trace_scope 0 r37 r34 -1
111 trace_scope 0 r36 r34 -1
112 r36 = bit_xor r10 r35
112 r36 = bit_xor r35 r10
113 trace_line 0 r36 r34 L8
114 trace_var 0 r36 r34 $19 = r18
115 trace_scope 0 r36 r34 1
@ -206,12 +206,12 @@ loop:
123 r35 = bit_or r35 r37
124 trace_scope 0 r37 r34 -1
125 trace_scope 0 r36 r34 -1
126 r36 = bit_xor r10 r35
126 r36 = bit_xor r35 r10
127 trace_line 0 r36 r34 L8
128 trace_var 0 r36 r34 $19 = r14
129 trace_scope 0 r36 r34 1
130 trace_line 0 r36 r34 L9
131 r37 = eq_f32 r14 r33
131 r37 = eq_f32 r33 r14
132 r37 = bit_and r36 r37
133 trace_scope 0 r37 r34 1
134 trace_line 0 r37 r34 L9
@ -220,7 +220,7 @@ loop:
137 r35 = bit_or r35 r37
138 trace_scope 0 r37 r34 -1
139 trace_scope 0 r36 r34 -1
140 r36 = bit_xor r10 r35
140 r36 = bit_xor r35 r10
141 trace_line 0 r36 r34 L8
142 trace_var 0 r36 r34 $19 = r19
143 trace_scope 0 r36 r34 1
@ -234,7 +234,7 @@ loop:
151 r35 = bit_or r35 r37
152 trace_scope 0 r37 r34 -1
153 trace_scope 0 r36 r34 -1
154 r36 = bit_xor r10 r35
154 r36 = bit_xor r35 r10
155 trace_line 0 r36 r34 L8
156 trace_var 0 r36 r34 $19 = r20
157 trace_scope 0 r36 r34 1
@ -248,7 +248,7 @@ loop:
165 r35 = bit_or r35 r37
166 trace_scope 0 r37 r34 -1
167 trace_scope 0 r36 r34 -1
168 r36 = bit_xor r10 r35
168 r36 = bit_xor r35 r10
169 trace_line 0 r36 r34 L8
170 trace_var 0 r36 r34 $19 = r21
171 trace_scope 0 r36 r34 1
@ -262,7 +262,7 @@ loop:
179 r35 = bit_or r35 r37
180 trace_scope 0 r37 r34 -1
181 trace_scope 0 r36 r34 -1
182 r36 = bit_xor r10 r35
182 r36 = bit_xor r35 r10
183 trace_line 0 r36 r34 L8
184 trace_var 0 r36 r34 $19 = r22
185 trace_scope 0 r36 r34 1
@ -276,7 +276,7 @@ loop:
193 r35 = bit_or r35 r37
194 trace_scope 0 r37 r34 -1
195 trace_scope 0 r36 r34 -1
196 r35 = bit_xor r10 r35
196 r35 = bit_xor r35 r10
197 trace_line 0 r35 r34 L8
198 trace_scope 0 r34 r34 -1
199 trace_line 0 r35 r34 L11
@ -284,7 +284,7 @@ loop:
201 trace_var 0 r35 r34 $17 = r38
202 trace_scope 0 r34 r34 -1
203 trace_exit 0 r34 r34 F1
204 r38 = eq_f32 r14 r38
204 r38 = eq_f32 r38 r14
205 trace_enter 0 r38 r34 F2
206 trace_var 0 r38 r34 $21 = r33
207 trace_scope 0 r38 r34 1
@ -299,7 +299,7 @@ loop:
216 r35 = bit_and r38 r35
217 trace_scope 0 r35 r34 1
218 trace_line 0 r35 r34 L19
219 r36 = bit_xor r10 r35
219 r36 = bit_xor r35 r10
220 trace_scope 0 r35 r34 -1
221 r37 = bit_and r38 r36
222 trace_line 0 r37 r34 L20
@ -315,12 +315,12 @@ loop:
232 r37 = bit_and r36 r37
233 trace_scope 0 r37 r34 1
234 trace_line 0 r37 r34 L19
235 r39 = bit_xor r10 r37
235 r39 = bit_xor r37 r10
236 r39 = bit_and r36 r39
237 trace_scope 0 r37 r34 -1
238 r36 = bit_and r38 r39
239 trace_line 0 r36 r34 L20
240 r40 = bit_and r15 r36
240 r40 = bit_and r36 r15
241 trace_var 0 r36 r34 $22 = r40
242 trace_scope 0 r35 r34 -1
243 r39 = bit_or r37 r39
@ -334,12 +334,12 @@ loop:
251 r35 = bit_and r39 r35
252 trace_scope 0 r35 r34 1
253 trace_line 0 r35 r34 L19
254 r36 = bit_xor r10 r35
254 r36 = bit_xor r35 r10
255 r36 = bit_and r39 r36
256 trace_scope 0 r35 r34 -1
257 r39 = bit_and r38 r36
258 trace_line 0 r39 r34 L20
259 r41 = add_f32 r16 r40
259 r41 = add_f32 r40 r16
260 r40 = select r39 r41 r40
261 trace_var 0 r39 r34 $22 = r40
262 trace_scope 0 r37 r34 -1
@ -354,12 +354,12 @@ loop:
271 r37 = bit_and r36 r37
272 trace_scope 0 r37 r34 1
273 trace_line 0 r37 r34 L19
274 r39 = bit_xor r10 r37
274 r39 = bit_xor r37 r10
275 r39 = bit_and r36 r39
276 trace_scope 0 r37 r34 -1
277 r36 = bit_and r38 r39
278 trace_line 0 r36 r34 L20
279 r41 = add_f32 r17 r40
279 r41 = add_f32 r40 r17
280 r40 = select r36 r41 r40
281 trace_var 0 r36 r34 $22 = r40
282 trace_scope 0 r35 r34 -1
@ -374,12 +374,12 @@ loop:
291 r35 = bit_and r39 r35
292 trace_scope 0 r35 r34 1
293 trace_line 0 r35 r34 L19
294 r36 = bit_xor r10 r35
294 r36 = bit_xor r35 r10
295 r36 = bit_and r39 r36
296 trace_scope 0 r35 r34 -1
297 r39 = bit_and r38 r36
298 trace_line 0 r39 r34 L20
299 r41 = add_f32 r18 r40
299 r41 = add_f32 r40 r18
300 r40 = select r39 r41 r40
301 trace_var 0 r39 r34 $22 = r40
302 trace_scope 0 r37 r34 -1
@ -394,12 +394,12 @@ loop:
311 r37 = bit_and r36 r37
312 trace_scope 0 r37 r34 1
313 trace_line 0 r37 r34 L19
314 r39 = bit_xor r10 r37
314 r39 = bit_xor r37 r10
315 r39 = bit_and r36 r39
316 trace_scope 0 r37 r34 -1
317 r36 = bit_and r38 r39
318 trace_line 0 r36 r34 L20
319 r41 = add_f32 r14 r40
319 r41 = add_f32 r40 r14
320 r40 = select r36 r41 r40
321 trace_var 0 r36 r34 $22 = r40
322 trace_scope 0 r35 r34 -1
@ -414,12 +414,12 @@ loop:
331 r35 = bit_and r39 r35
332 trace_scope 0 r35 r34 1
333 trace_line 0 r35 r34 L19
334 r36 = bit_xor r10 r35
334 r36 = bit_xor r35 r10
335 r36 = bit_and r39 r36
336 trace_scope 0 r35 r34 -1
337 r39 = bit_and r38 r36
338 trace_line 0 r39 r34 L20
339 r41 = add_f32 r19 r40
339 r41 = add_f32 r40 r19
340 r40 = select r39 r41 r40
341 trace_var 0 r39 r34 $22 = r40
342 trace_scope 0 r37 r34 -1
@ -434,12 +434,12 @@ loop:
351 r37 = bit_and r36 r37
352 trace_scope 0 r37 r34 1
353 trace_line 0 r37 r34 L19
354 r39 = bit_xor r10 r37
354 r39 = bit_xor r37 r10
355 r39 = bit_and r36 r39
356 trace_scope 0 r37 r34 -1
357 r36 = bit_and r38 r39
358 trace_line 0 r36 r34 L20
359 r41 = add_f32 r20 r40
359 r41 = add_f32 r40 r20
360 r40 = select r36 r41 r40
361 trace_var 0 r36 r34 $22 = r40
362 trace_scope 0 r35 r34 -1
@ -454,12 +454,12 @@ loop:
371 r35 = bit_and r39 r35
372 trace_scope 0 r35 r34 1
373 trace_line 0 r35 r34 L19
374 r36 = bit_xor r10 r35
374 r36 = bit_xor r35 r10
375 r36 = bit_and r39 r36
376 trace_scope 0 r35 r34 -1
377 r39 = bit_and r38 r36
378 trace_line 0 r39 r34 L20
379 r41 = add_f32 r21 r40
379 r41 = add_f32 r40 r21
380 r40 = select r39 r41 r40
381 trace_var 0 r39 r34 $22 = r40
382 trace_scope 0 r37 r34 -1
@ -474,12 +474,12 @@ loop:
391 r37 = bit_and r36 r37
392 trace_scope 0 r37 r34 1
393 trace_line 0 r37 r34 L19
394 r39 = bit_xor r10 r37
394 r39 = bit_xor r37 r10
395 r39 = bit_and r36 r39
396 trace_scope 0 r37 r34 -1
397 r36 = bit_and r38 r39
398 trace_line 0 r36 r34 L20
399 r41 = add_f32 r22 r40
399 r41 = add_f32 r40 r22
400 r40 = select r36 r41 r40
401 trace_var 0 r36 r34 $22 = r40
402 trace_scope 0 r35 r34 -1
@ -510,7 +510,7 @@ loop:
427 r38 = bit_and r40 r38
428 trace_scope 0 r38 r34 1
429 trace_line 0 r38 r34 L30
430 r39 = bit_xor r10 r38
430 r39 = bit_xor r38 r10
431 trace_scope 0 r38 r34 -1
432 r38 = bit_and r40 r39
433 trace_line 0 r38 r34 L31
@ -524,12 +524,12 @@ loop:
441 r37 = bit_and r39 r37
442 trace_scope 0 r37 r34 1
443 trace_line 0 r37 r34 L30
444 r35 = bit_xor r10 r37
444 r35 = bit_xor r37 r10
445 r35 = bit_and r39 r35
446 trace_scope 0 r37 r34 -1
447 r37 = bit_and r40 r35
448 trace_line 0 r37 r34 L31
449 r39 = bit_and r15 r37
449 r39 = bit_and r37 r15
450 trace_var 0 r37 r34 $26 = r39
451 trace_scope 0 r38 r34 -1
452 trace_line 0 r37 r34 L29
@ -541,12 +541,12 @@ loop:
458 r38 = bit_and r35 r38
459 trace_scope 0 r38 r34 1
460 trace_line 0 r38 r34 L30
461 r36 = bit_xor r10 r38
461 r36 = bit_xor r38 r10
462 r36 = bit_and r35 r36
463 trace_scope 0 r38 r34 -1
464 r38 = bit_and r40 r36
465 trace_line 0 r38 r34 L31
466 r35 = add_f32 r16 r39
466 r35 = add_f32 r39 r16
467 r39 = select r38 r35 r39
468 trace_var 0 r38 r34 $26 = r39
469 trace_scope 0 r37 r34 -1
@ -559,12 +559,12 @@ loop:
476 r37 = bit_and r36 r37
477 trace_scope 0 r37 r34 1
478 trace_line 0 r37 r34 L30
479 r35 = bit_xor r10 r37
479 r35 = bit_xor r37 r10
480 r35 = bit_and r36 r35
481 trace_scope 0 r37 r34 -1
482 r37 = bit_and r40 r35
483 trace_line 0 r37 r34 L31
484 r36 = add_f32 r17 r39
484 r36 = add_f32 r39 r17
485 r39 = select r37 r36 r39
486 trace_var 0 r37 r34 $26 = r39
487 trace_scope 0 r38 r34 -1
@ -577,12 +577,12 @@ loop:
494 r38 = bit_and r35 r38
495 trace_scope 0 r38 r34 1
496 trace_line 0 r38 r34 L30
497 r36 = bit_xor r10 r38
497 r36 = bit_xor r38 r10
498 r36 = bit_and r35 r36
499 trace_scope 0 r38 r34 -1
500 r38 = bit_and r40 r36
501 trace_line 0 r38 r34 L31
502 r35 = add_f32 r18 r39
502 r35 = add_f32 r39 r18
503 r39 = select r38 r35 r39
504 trace_var 0 r38 r34 $26 = r39
505 trace_scope 0 r37 r34 -1
@ -595,12 +595,12 @@ loop:
512 r37 = bit_and r36 r37
513 trace_scope 0 r37 r34 1
514 trace_line 0 r37 r34 L30
515 r35 = bit_xor r10 r37
515 r35 = bit_xor r37 r10
516 r35 = bit_and r36 r35
517 trace_scope 0 r37 r34 -1
518 r37 = bit_and r40 r35
519 trace_line 0 r37 r34 L31
520 r36 = add_f32 r14 r39
520 r36 = add_f32 r39 r14
521 r39 = select r37 r36 r39
522 trace_var 0 r37 r34 $26 = r39
523 trace_scope 0 r38 r34 -1
@ -613,12 +613,12 @@ loop:
530 r38 = bit_and r35 r38
531 trace_scope 0 r38 r34 1
532 trace_line 0 r38 r34 L30
533 r36 = bit_xor r10 r38
533 r36 = bit_xor r38 r10
534 r36 = bit_and r35 r36
535 trace_scope 0 r38 r34 -1
536 r38 = bit_and r40 r36
537 trace_line 0 r38 r34 L31
538 r35 = add_f32 r19 r39
538 r35 = add_f32 r39 r19
539 r39 = select r38 r35 r39
540 trace_var 0 r38 r34 $26 = r39
541 trace_scope 0 r37 r34 -1
@ -631,12 +631,12 @@ loop:
548 r37 = bit_and r36 r37
549 trace_scope 0 r37 r34 1
550 trace_line 0 r37 r34 L30
551 r35 = bit_xor r10 r37
551 r35 = bit_xor r37 r10
552 r35 = bit_and r36 r35
553 trace_scope 0 r37 r34 -1
554 r37 = bit_and r40 r35
555 trace_line 0 r37 r34 L31
556 r36 = add_f32 r20 r39
556 r36 = add_f32 r39 r20
557 r39 = select r37 r36 r39
558 trace_var 0 r37 r34 $26 = r39
559 trace_scope 0 r38 r34 -1
@ -649,12 +649,12 @@ loop:
566 r38 = bit_and r35 r38
567 trace_scope 0 r38 r34 1
568 trace_line 0 r38 r34 L30
569 r36 = bit_xor r10 r38
569 r36 = bit_xor r38 r10
570 r36 = bit_and r35 r36
571 trace_scope 0 r38 r34 -1
572 r38 = bit_and r40 r36
573 trace_line 0 r38 r34 L31
574 r35 = add_f32 r21 r39
574 r35 = add_f32 r39 r21
575 r39 = select r38 r35 r39
576 trace_var 0 r38 r34 $26 = r39
577 trace_scope 0 r37 r34 -1
@ -667,12 +667,12 @@ loop:
584 r33 = bit_and r36 r33
585 trace_scope 0 r33 r34 1
586 trace_line 0 r33 r34 L30
587 r37 = bit_xor r10 r33
587 r37 = bit_xor r33 r10
588 r37 = bit_and r36 r37
589 trace_scope 0 r33 r34 -1
590 r37 = bit_and r40 r37
591 trace_line 0 r37 r34 L31
592 r33 = add_f32 r22 r39
592 r33 = add_f32 r39 r22
593 r39 = select r37 r33 r39
594 trace_var 0 r37 r34 $26 = r39
595 trace_scope 0 r38 r34 -1
@ -780,9 +780,9 @@ loop:
697 trace_line 0 r40 r34 L51
698 trace_scope 0 r40 r34 -1
699 trace_line 0 r40 r34 L54
700 r38 = eq_f32 r15 r38
701 r37 = eq_f32 r16 r37
702 r39 = eq_f32 r17 r39
700 r38 = eq_f32 r38 r15
701 r37 = eq_f32 r37 r16
702 r39 = eq_f32 r39 r17
703 r37 = bit_and r38 r37
704 r37 = bit_and r39 r37
705 r37 = bit_and r40 r37
@ -830,9 +830,9 @@ loop:
747 trace_line 0 r37 r34 L63
748 trace_scope 0 r37 r34 -1
749 trace_line 0 r37 r34 L66
750 r38 = eq_f32 r15 r38
751 r39 = eq_f32 r16 r39
752 r40 = eq_f32 r17 r40
750 r38 = eq_f32 r38 r15
751 r39 = eq_f32 r39 r16
752 r40 = eq_f32 r40 r17
753 r39 = bit_and r38 r39
754 r39 = bit_and r40 r39
755 r39 = bit_and r37 r39
@ -880,9 +880,9 @@ loop:
797 trace_line 0 r39 r34 L75
798 trace_scope 0 r39 r34 -1
799 trace_line 0 r39 r34 L78
800 r38 = eq_f32 r17 r38
801 r40 = eq_f32 r16 r40
802 r37 = eq_f32 r15 r37
800 r38 = eq_f32 r38 r17
801 r40 = eq_f32 r40 r16
802 r37 = eq_f32 r37 r15
803 r40 = bit_and r38 r40
804 r40 = bit_and r37 r40
805 r40 = bit_and r39 r40
@ -930,9 +930,9 @@ loop:
847 trace_line 0 r40 r34 L87
848 trace_scope 0 r40 r34 -1
849 trace_line 0 r40 r34 L90
850 r38 = eq_f32 r17 r38
851 r37 = eq_f32 r16 r37
852 r39 = eq_f32 r15 r39
850 r38 = eq_f32 r38 r17
851 r37 = eq_f32 r37 r16
852 r39 = eq_f32 r39 r15
853 r37 = bit_and r38 r37
854 r37 = bit_and r39 r37
855 r37 = bit_and r40 r37
@ -959,7 +959,7 @@ loop:
876 trace_line 0 r37 r34 L109
877 trace_scope 0 r37 r34 -1
878 trace_line 0 r37 r34 L112
879 r40 = eq_f32 r15 r40
879 r40 = eq_f32 r40 r15
880 r40 = bit_and r37 r40
881 trace_var 0 r37 r34 $56 = r40
882 trace_scope 0 r37 r34 -1
@ -1004,9 +1004,9 @@ loop:
921 trace_line 0 r40 r34 L98
922 trace_scope 0 r40 r34 -1
923 trace_line 0 r40 r34 L101
924 r38 = eq_f32 r15 r38
925 r39 = eq_f32 r16 r39
926 r37 = eq_f32 r17 r37
924 r38 = eq_f32 r38 r15
925 r39 = eq_f32 r39 r16
926 r37 = eq_f32 r37 r17
927 r39 = bit_and r38 r39
928 r39 = bit_and r37 r39
929 r39 = bit_and r40 r39

View File

@ -133,13 +133,13 @@ loop:
54 trace_var 0 r26 r26 $19 = r9
55 trace_scope 0 r26 r26 1
56 trace_line 0 r26 r26 L9
57 r27 = eq_i32 r9 r25
57 r27 = eq_i32 r25 r9
58 trace_scope 0 r27 r26 1
59 trace_line 0 r27 r26 L9
60 trace_var 0 r27 r26 $17 = r9
61 trace_scope 0 r27 r26 -1
62 trace_scope 0 r26 r26 -1
63 r28 = bit_xor r10 r27
63 r28 = bit_xor r27 r10
64 trace_line 0 r28 r26 L8
65 trace_var 0 r28 r26 $19 = r15
66 trace_scope 0 r28 r26 1
@ -148,12 +148,12 @@ loop:
69 r29 = bit_and r28 r29
70 trace_scope 0 r29 r26 1
71 trace_line 0 r29 r26 L9
72 r30 = bit_and r15 r29
72 r30 = bit_and r29 r15
73 trace_var 0 r29 r26 $17 = r30
74 r27 = bit_or r27 r29
75 trace_scope 0 r29 r26 -1
76 trace_scope 0 r28 r26 -1
77 r28 = bit_xor r10 r27
77 r28 = bit_xor r27 r10
78 trace_line 0 r28 r26 L8
79 trace_var 0 r28 r26 $19 = r16
80 trace_scope 0 r28 r26 1
@ -167,7 +167,7 @@ loop:
88 r27 = bit_or r27 r29
89 trace_scope 0 r29 r26 -1
90 trace_scope 0 r28 r26 -1
91 r28 = bit_xor r10 r27
91 r28 = bit_xor r27 r10
92 trace_line 0 r28 r26 L8
93 trace_var 0 r28 r26 $19 = r17
94 trace_scope 0 r28 r26 1
@ -181,7 +181,7 @@ loop:
102 r27 = bit_or r27 r29
103 trace_scope 0 r29 r26 -1
104 trace_scope 0 r28 r26 -1
105 r28 = bit_xor r10 r27
105 r28 = bit_xor r27 r10
106 trace_line 0 r28 r26 L8
107 trace_var 0 r28 r26 $19 = r18
108 trace_scope 0 r28 r26 1
@ -195,12 +195,12 @@ loop:
116 r27 = bit_or r27 r29
117 trace_scope 0 r29 r26 -1
118 trace_scope 0 r28 r26 -1
119 r28 = bit_xor r10 r27
119 r28 = bit_xor r27 r10
120 trace_line 0 r28 r26 L8
121 trace_var 0 r28 r26 $19 = r14
122 trace_scope 0 r28 r26 1
123 trace_line 0 r28 r26 L9
124 r29 = eq_i32 r14 r25
124 r29 = eq_i32 r25 r14
125 r29 = bit_and r28 r29
126 trace_scope 0 r29 r26 1
127 trace_line 0 r29 r26 L9
@ -209,7 +209,7 @@ loop:
130 r27 = bit_or r27 r29
131 trace_scope 0 r29 r26 -1
132 trace_scope 0 r28 r26 -1
133 r28 = bit_xor r10 r27
133 r28 = bit_xor r27 r10
134 trace_line 0 r28 r26 L8
135 trace_var 0 r28 r26 $19 = r19
136 trace_scope 0 r28 r26 1
@ -223,7 +223,7 @@ loop:
144 r27 = bit_or r27 r29
145 trace_scope 0 r29 r26 -1
146 trace_scope 0 r28 r26 -1
147 r28 = bit_xor r10 r27
147 r28 = bit_xor r27 r10
148 trace_line 0 r28 r26 L8
149 trace_var 0 r28 r26 $19 = r20
150 trace_scope 0 r28 r26 1
@ -237,7 +237,7 @@ loop:
158 r27 = bit_or r27 r29
159 trace_scope 0 r29 r26 -1
160 trace_scope 0 r28 r26 -1
161 r28 = bit_xor r10 r27
161 r28 = bit_xor r27 r10
162 trace_line 0 r28 r26 L8
163 trace_var 0 r28 r26 $19 = r21
164 trace_scope 0 r28 r26 1
@ -251,7 +251,7 @@ loop:
172 r27 = bit_or r27 r29
173 trace_scope 0 r29 r26 -1
174 trace_scope 0 r28 r26 -1
175 r28 = bit_xor r10 r27
175 r28 = bit_xor r27 r10
176 trace_line 0 r28 r26 L8
177 trace_var 0 r28 r26 $19 = r22
178 trace_scope 0 r28 r26 1
@ -265,7 +265,7 @@ loop:
186 r27 = bit_or r27 r29
187 trace_scope 0 r29 r26 -1
188 trace_scope 0 r28 r26 -1
189 r27 = bit_xor r10 r27
189 r27 = bit_xor r27 r10
190 trace_line 0 r27 r26 L8
191 trace_scope 0 r26 r26 -1
192 trace_line 0 r27 r26 L11
@ -273,7 +273,7 @@ loop:
194 trace_var 0 r27 r26 $17 = r30
195 trace_scope 0 r26 r26 -1
196 trace_exit 0 r26 r26 F1
197 r30 = eq_i32 r14 r30
197 r30 = eq_i32 r30 r14
198 trace_enter 0 r30 r26 F2
199 trace_var 0 r30 r26 $21 = r25
200 trace_scope 0 r30 r26 1
@ -288,7 +288,7 @@ loop:
209 r27 = bit_and r30 r27
210 trace_scope 0 r27 r26 1
211 trace_line 0 r27 r26 L19
212 r28 = bit_xor r10 r27
212 r28 = bit_xor r27 r10
213 trace_scope 0 r27 r26 -1
214 r29 = bit_and r30 r28
215 trace_line 0 r29 r26 L20
@ -304,12 +304,12 @@ loop:
225 r29 = bit_and r28 r29
226 trace_scope 0 r29 r26 1
227 trace_line 0 r29 r26 L19
228 r31 = bit_xor r10 r29
228 r31 = bit_xor r29 r10
229 r31 = bit_and r28 r31
230 trace_scope 0 r29 r26 -1
231 r28 = bit_and r30 r31
232 trace_line 0 r28 r26 L20
233 r32 = bit_and r15 r28
233 r32 = bit_and r28 r15
234 trace_var 0 r28 r26 $22 = r32
235 trace_scope 0 r27 r26 -1
236 r31 = bit_or r29 r31
@ -323,12 +323,12 @@ loop:
244 r27 = bit_and r31 r27
245 trace_scope 0 r27 r26 1
246 trace_line 0 r27 r26 L19
247 r28 = bit_xor r10 r27
247 r28 = bit_xor r27 r10
248 r28 = bit_and r31 r28
249 trace_scope 0 r27 r26 -1
250 r31 = bit_and r30 r28
251 trace_line 0 r31 r26 L20
252 r33 = add_i32 r16 r32
252 r33 = add_i32 r32 r16
253 r32 = select r31 r33 r32
254 trace_var 0 r31 r26 $22 = r32
255 trace_scope 0 r29 r26 -1
@ -343,12 +343,12 @@ loop:
264 r29 = bit_and r28 r29
265 trace_scope 0 r29 r26 1
266 trace_line 0 r29 r26 L19
267 r31 = bit_xor r10 r29
267 r31 = bit_xor r29 r10
268 r31 = bit_and r28 r31
269 trace_scope 0 r29 r26 -1
270 r28 = bit_and r30 r31
271 trace_line 0 r28 r26 L20
272 r33 = add_i32 r17 r32
272 r33 = add_i32 r32 r17
273 r32 = select r28 r33 r32
274 trace_var 0 r28 r26 $22 = r32
275 trace_scope 0 r27 r26 -1
@ -363,12 +363,12 @@ loop:
284 r27 = bit_and r31 r27
285 trace_scope 0 r27 r26 1
286 trace_line 0 r27 r26 L19
287 r28 = bit_xor r10 r27
287 r28 = bit_xor r27 r10
288 r28 = bit_and r31 r28
289 trace_scope 0 r27 r26 -1
290 r31 = bit_and r30 r28
291 trace_line 0 r31 r26 L20
292 r33 = add_i32 r18 r32
292 r33 = add_i32 r32 r18
293 r32 = select r31 r33 r32
294 trace_var 0 r31 r26 $22 = r32
295 trace_scope 0 r29 r26 -1
@ -383,12 +383,12 @@ loop:
304 r29 = bit_and r28 r29
305 trace_scope 0 r29 r26 1
306 trace_line 0 r29 r26 L19
307 r31 = bit_xor r10 r29
307 r31 = bit_xor r29 r10
308 r31 = bit_and r28 r31
309 trace_scope 0 r29 r26 -1
310 r28 = bit_and r30 r31
311 trace_line 0 r28 r26 L20
312 r33 = add_i32 r14 r32
312 r33 = add_i32 r32 r14
313 r32 = select r28 r33 r32
314 trace_var 0 r28 r26 $22 = r32
315 trace_scope 0 r27 r26 -1
@ -403,12 +403,12 @@ loop:
324 r27 = bit_and r31 r27
325 trace_scope 0 r27 r26 1
326 trace_line 0 r27 r26 L19
327 r28 = bit_xor r10 r27
327 r28 = bit_xor r27 r10
328 r28 = bit_and r31 r28
329 trace_scope 0 r27 r26 -1
330 r31 = bit_and r30 r28
331 trace_line 0 r31 r26 L20
332 r33 = add_i32 r19 r32
332 r33 = add_i32 r32 r19
333 r32 = select r31 r33 r32
334 trace_var 0 r31 r26 $22 = r32
335 trace_scope 0 r29 r26 -1
@ -423,12 +423,12 @@ loop:
344 r29 = bit_and r28 r29
345 trace_scope 0 r29 r26 1
346 trace_line 0 r29 r26 L19
347 r31 = bit_xor r10 r29
347 r31 = bit_xor r29 r10
348 r31 = bit_and r28 r31
349 trace_scope 0 r29 r26 -1
350 r28 = bit_and r30 r31
351 trace_line 0 r28 r26 L20
352 r33 = add_i32 r20 r32
352 r33 = add_i32 r32 r20
353 r32 = select r28 r33 r32
354 trace_var 0 r28 r26 $22 = r32
355 trace_scope 0 r27 r26 -1
@ -443,12 +443,12 @@ loop:
364 r27 = bit_and r31 r27
365 trace_scope 0 r27 r26 1
366 trace_line 0 r27 r26 L19
367 r28 = bit_xor r10 r27
367 r28 = bit_xor r27 r10
368 r28 = bit_and r31 r28
369 trace_scope 0 r27 r26 -1
370 r31 = bit_and r30 r28
371 trace_line 0 r31 r26 L20
372 r33 = add_i32 r21 r32
372 r33 = add_i32 r32 r21
373 r32 = select r31 r33 r32
374 trace_var 0 r31 r26 $22 = r32
375 trace_scope 0 r29 r26 -1
@ -463,12 +463,12 @@ loop:
384 r25 = bit_and r28 r25
385 trace_scope 0 r25 r26 1
386 trace_line 0 r25 r26 L19
387 r29 = bit_xor r10 r25
387 r29 = bit_xor r25 r10
388 r29 = bit_and r28 r29
389 trace_scope 0 r25 r26 -1
390 r28 = bit_and r30 r29
391 trace_line 0 r28 r26 L20
392 r31 = add_i32 r22 r32
392 r31 = add_i32 r32 r22
393 r32 = select r28 r31 r32
394 trace_var 0 r28 r26 $22 = r32
395 trace_scope 0 r27 r26 -1
@ -502,7 +502,7 @@ loop:
423 trace_scope 0 r32 r26 1
424 trace_line 0 r32 r26 L30
425 trace_line 0 r32 r26 L31
426 r30 = bit_and r15 r32
426 r30 = bit_and r32 r15
427 trace_var 0 r32 r26 $26 = r30
428 trace_scope 0 r32 r26 -1
429 trace_line 0 r32 r26 L29
@ -510,7 +510,7 @@ loop:
431 trace_scope 0 r32 r26 1
432 trace_line 0 r32 r26 L30
433 trace_line 0 r32 r26 L31
434 r29 = add_i32 r16 r30
434 r29 = add_i32 r30 r16
435 r30 = select r32 r29 r30
436 trace_var 0 r32 r26 $26 = r30
437 trace_scope 0 r32 r26 -1
@ -519,7 +519,7 @@ loop:
440 trace_scope 0 r32 r26 1
441 trace_line 0 r32 r26 L30
442 trace_line 0 r32 r26 L31
443 r29 = add_i32 r17 r30
443 r29 = add_i32 r30 r17
444 r30 = select r32 r29 r30
445 trace_var 0 r32 r26 $26 = r30
446 trace_scope 0 r32 r26 -1
@ -528,7 +528,7 @@ loop:
449 trace_scope 0 r32 r26 1
450 trace_line 0 r32 r26 L30
451 trace_line 0 r32 r26 L31
452 r29 = add_i32 r18 r30
452 r29 = add_i32 r30 r18
453 r30 = select r32 r29 r30
454 trace_var 0 r32 r26 $26 = r30
455 trace_scope 0 r32 r26 -1
@ -537,7 +537,7 @@ loop:
458 trace_scope 0 r32 r26 1
459 trace_line 0 r32 r26 L30
460 trace_line 0 r32 r26 L31
461 r29 = add_i32 r14 r30
461 r29 = add_i32 r30 r14
462 r30 = select r32 r29 r30
463 trace_var 0 r32 r26 $26 = r30
464 trace_scope 0 r32 r26 -1
@ -547,11 +547,11 @@ loop:
468 trace_line 0 r32 r26 L30
469 trace_scope 0 r32 r26 1
470 trace_line 0 r32 r26 L30
471 r29 = bit_xor r10 r32
471 r29 = bit_xor r32 r10
472 trace_scope 0 r32 r26 -1
473 r25 = bit_and r32 r29
474 trace_line 0 r25 r26 L31
475 r27 = add_i32 r19 r30
475 r27 = add_i32 r30 r19
476 r30 = select r25 r27 r30
477 trace_var 0 r25 r26 $26 = r30
478 trace_scope 0 r32 r26 -1
@ -561,12 +561,12 @@ loop:
482 trace_line 0 r25 r26 L30
483 trace_scope 0 r25 r26 1
484 trace_line 0 r25 r26 L30
485 r27 = bit_xor r10 r25
485 r27 = bit_xor r25 r10
486 r27 = bit_and r29 r27
487 trace_scope 0 r25 r26 -1
488 r29 = bit_and r32 r27
489 trace_line 0 r29 r26 L31
490 r28 = add_i32 r20 r30
490 r28 = add_i32 r30 r20
491 r30 = select r29 r28 r30
492 trace_var 0 r29 r26 $26 = r30
493 trace_scope 0 r25 r26 -1
@ -576,12 +576,12 @@ loop:
497 trace_line 0 r29 r26 L30
498 trace_scope 0 r29 r26 1
499 trace_line 0 r29 r26 L30
500 r25 = bit_xor r10 r29
500 r25 = bit_xor r29 r10
501 r25 = bit_and r27 r25
502 trace_scope 0 r29 r26 -1
503 r27 = bit_and r32 r25
504 trace_line 0 r27 r26 L31
505 r28 = add_i32 r21 r30
505 r28 = add_i32 r30 r21
506 r30 = select r27 r28 r30
507 trace_var 0 r27 r26 $26 = r30
508 trace_scope 0 r29 r26 -1
@ -591,12 +591,12 @@ loop:
512 trace_line 0 r27 r26 L30
513 trace_scope 0 r27 r26 1
514 trace_line 0 r27 r26 L30
515 r29 = bit_xor r10 r27
515 r29 = bit_xor r27 r10
516 r29 = bit_and r25 r29
517 trace_scope 0 r27 r26 -1
518 r29 = bit_and r32 r29
519 trace_line 0 r29 r26 L31
520 r25 = add_i32 r22 r30
520 r25 = add_i32 r30 r22
521 r30 = select r29 r25 r30
522 trace_var 0 r29 r26 $26 = r30
523 trace_scope 0 r27 r26 -1
@ -649,9 +649,9 @@ loop:
570 trace_line 0 r30 r26 L42
571 trace_scope 0 r30 r26 -1
572 trace_line 0 r30 r26 L45
573 r27 = eq_i32 r15 r27
574 r29 = eq_i32 r16 r29
575 r32 = eq_i32 r17 r32
573 r27 = eq_i32 r27 r15
574 r29 = eq_i32 r29 r16
575 r32 = eq_i32 r32 r17
576 r29 = bit_and r27 r29
577 r29 = bit_and r32 r29
578 r29 = bit_and r30 r29
@ -699,9 +699,9 @@ loop:
620 trace_line 0 r29 r26 L54
621 trace_scope 0 r29 r26 -1
622 trace_line 0 r29 r26 L57
623 r27 = eq_i32 r15 r27
624 r32 = eq_i32 r16 r32
625 r30 = eq_i32 r17 r30
623 r27 = eq_i32 r27 r15
624 r32 = eq_i32 r32 r16
625 r30 = eq_i32 r30 r17
626 r32 = bit_and r27 r32
627 r32 = bit_and r30 r32
628 r32 = bit_and r29 r32
@ -749,9 +749,9 @@ loop:
670 trace_line 0 r32 r26 L66
671 trace_scope 0 r32 r26 -1
672 trace_line 0 r32 r26 L69
673 r27 = eq_i32 r17 r27
674 r30 = eq_i32 r16 r30
675 r29 = eq_i32 r15 r29
673 r27 = eq_i32 r27 r17
674 r30 = eq_i32 r30 r16
675 r29 = eq_i32 r29 r15
676 r30 = bit_and r27 r30
677 r30 = bit_and r29 r30
678 r30 = bit_and r32 r30
@ -799,9 +799,9 @@ loop:
720 trace_line 0 r30 r26 L78
721 trace_scope 0 r30 r26 -1
722 trace_line 0 r30 r26 L81
723 r27 = eq_i32 r17 r27
724 r29 = eq_i32 r16 r29
725 r32 = eq_i32 r15 r32
723 r27 = eq_i32 r27 r17
724 r29 = eq_i32 r29 r16
725 r32 = eq_i32 r32 r15
726 r29 = bit_and r27 r29
727 r29 = bit_and r32 r29
728 r29 = bit_and r30 r29
@ -828,7 +828,7 @@ loop:
749 trace_line 0 r29 r26 L100
750 trace_scope 0 r29 r26 -1
751 trace_line 0 r29 r26 L103
752 r30 = eq_i32 r15 r30
752 r30 = eq_i32 r30 r15
753 r30 = bit_and r29 r30
754 trace_var 0 r29 r26 $53 = r30
755 trace_scope 0 r29 r26 -1
@ -873,9 +873,9 @@ loop:
794 trace_line 0 r30 r26 L89
795 trace_scope 0 r30 r26 -1
796 trace_line 0 r30 r26 L92
797 r27 = eq_i32 r15 r27
798 r32 = eq_i32 r16 r32
799 r29 = eq_i32 r17 r29
797 r27 = eq_i32 r27 r15
798 r32 = eq_i32 r32 r16
799 r29 = eq_i32 r29 r17
800 r32 = bit_and r27 r32
801 r32 = bit_and r29 r32
802 r32 = bit_and r30 r32

View File

@ -42,7 +42,7 @@
40 r18 = bit_or r24 r18
41 r18 = bit_or r19 r18
42 r18 = bit_and r21 r18
43 r18 = bit_xor r9 r18
43 r18 = bit_xor r18 r9
44 r18 = bit_and r21 r18
45 r21 = bit_and r13 r18
46 r19 = bit_and r10 r18
@ -71,7 +71,7 @@
69 r20 = bit_and r17 r20
70 r20 = bit_and r16 r20
71 r20 = bit_and r22 r20
72 r20 = bit_xor r9 r20
72 r20 = bit_xor r20 r9
73 r20 = bit_and r22 r20
74 r22 = splat 40000000 (2)
75 r22 = add_f32 r0 r22
@ -100,7 +100,7 @@
98 r23 = bit_and r25 r23
99 r23 = bit_and r15 r23
100 r23 = bit_and r24 r23
101 r23 = bit_xor r9 r23
101 r23 = bit_xor r23 r9
102 r23 = bit_and r24 r23
103 r24 = bit_and r10 r23
104 r15 = bit_and r8 r23
@ -127,12 +127,12 @@
125 r22 = bit_and r14 r22
126 r22 = bit_and r12 r22
127 r22 = bit_and r20 r22
128 r22 = bit_xor r9 r22
129 r22 = bit_and r20 r22
130 r4 = select r22 r0 r4
131 r5 = select r22 r1 r5
132 r6 = select r22 r2 r6
133 r7 = select r22 r3 r7
128 r9 = bit_xor r22 r9
129 r9 = bit_and r20 r9
130 r4 = select r9 r0 r4
131 r5 = select r9 r1 r5
132 r6 = select r9 r2 r6
133 r7 = select r9 r3 r7
loop:
134 store32 ptr1 r4
135 store32 ptr2 r5

View File

@ -42,7 +42,7 @@
40 r18 = bit_or r24 r18
41 r18 = bit_or r19 r18
42 r18 = bit_and r21 r18
43 r18 = bit_xor r9 r18
43 r18 = bit_xor r18 r9
44 r18 = bit_and r21 r18
45 r21 = bit_and r13 r18
46 r19 = bit_and r10 r18
@ -71,7 +71,7 @@
69 r20 = bit_and r17 r20
70 r20 = bit_and r16 r20
71 r20 = bit_and r22 r20
72 r20 = bit_xor r9 r20
72 r20 = bit_xor r20 r9
73 r20 = bit_and r22 r20
74 r22 = splat 40000000 (2)
75 r22 = add_f32 r0 r22
@ -100,7 +100,7 @@
98 r23 = bit_and r25 r23
99 r23 = bit_and r15 r23
100 r23 = bit_and r24 r23
101 r23 = bit_xor r9 r23
101 r23 = bit_xor r23 r9
102 r23 = bit_and r24 r23
103 r24 = bit_and r10 r23
104 r15 = bit_and r8 r23
@ -127,12 +127,12 @@
125 r22 = bit_and r14 r22
126 r22 = bit_and r12 r22
127 r22 = bit_and r20 r22
128 r22 = bit_xor r9 r22
129 r22 = bit_and r20 r22
130 r4 = select r22 r0 r4
131 r5 = select r22 r1 r5
132 r6 = select r22 r2 r6
133 r7 = select r22 r3 r7
128 r9 = bit_xor r22 r9
129 r9 = bit_and r20 r9
130 r4 = select r9 r0 r4
131 r5 = select r9 r1 r5
132 r6 = select r9 r2 r6
133 r7 = select r9 r3 r7
loop:
134 store32 ptr1 r4
135 store32 ptr2 r5

View File

@ -69,7 +69,7 @@
67 r21 = bit_or r35 r21
68 r21 = bit_or r36 r21
69 r21 = bit_and r27 r21
70 r21 = bit_xor r9 r21
70 r21 = bit_xor r21 r9
71 r21 = bit_and r27 r21
72 r27 = bit_and r13 r21
73 r36 = bit_and r10 r21
@ -122,7 +122,7 @@
120 r26 = bit_and r24 r26
121 r26 = bit_and r25 r26
122 r26 = bit_and r28 r26
123 r26 = bit_xor r9 r26
123 r26 = bit_xor r26 r9
124 r26 = bit_and r28 r26
125 r28 = splat 40000000 (2)
126 r28 = add_f32 r0 r28
@ -178,7 +178,7 @@
176 r32 = bit_and r34 r32
177 r32 = bit_and r18 r32
178 r32 = bit_and r21 r32
179 r32 = bit_xor r9 r32
179 r32 = bit_xor r32 r9
180 r32 = bit_and r21 r32
181 r21 = bit_and r10 r32
182 r18 = bit_and r8 r32
@ -230,12 +230,12 @@
228 r35 = bit_and r11 r35
229 r35 = bit_and r15 r35
230 r35 = bit_and r29 r35
231 r35 = bit_xor r9 r35
232 r35 = bit_and r29 r35
233 r4 = select r35 r0 r4
234 r5 = select r35 r1 r5
235 r6 = select r35 r2 r6
236 r7 = select r35 r3 r7
231 r9 = bit_xor r35 r9
232 r9 = bit_and r29 r9
233 r4 = select r9 r0 r4
234 r5 = select r9 r1 r5
235 r6 = select r9 r2 r6
236 r7 = select r9 r3 r7
loop:
237 store32 ptr1 r4
238 store32 ptr2 r5

View File

@ -43,7 +43,7 @@
41 r19 = bit_or r20 r19
42 r19 = bit_or r21 r19
43 r19 = bit_and r23 r19
44 r19 = bit_xor r9 r19
44 r19 = bit_xor r19 r9
45 r19 = bit_and r23 r19
46 r23 = mul_f32 r10 r17
47 r17 = mul_f32 r11 r17
@ -60,7 +60,7 @@
58 r23 = bit_and r19 r23
59 r23 = bit_and r19 r23
60 r20 = bit_and r20 r23
61 r20 = bit_xor r9 r20
61 r20 = bit_xor r20 r9
62 r20 = bit_and r23 r20
63 r23 = splat 40000000 (2)
64 r23 = add_f32 r0 r23
@ -85,7 +85,7 @@
83 r21 = bit_and r20 r21
84 r21 = bit_and r20 r21
85 r25 = bit_and r25 r21
86 r25 = bit_xor r9 r25
86 r25 = bit_xor r25 r9
87 r25 = bit_and r21 r25
88 r21 = mul_f32 r10 r23
89 r20 = mul_f32 r8 r23
@ -105,12 +105,12 @@
103 r20 = bit_and r25 r20
104 r20 = bit_and r25 r20
105 r17 = bit_and r17 r20
106 r17 = bit_xor r9 r17
107 r17 = bit_and r20 r17
108 r4 = select r17 r0 r4
109 r5 = select r17 r1 r5
110 r6 = select r17 r2 r6
111 r7 = select r17 r3 r7
106 r9 = bit_xor r17 r9
107 r9 = bit_and r20 r9
108 r4 = select r9 r0 r4
109 r5 = select r9 r1 r5
110 r6 = select r9 r2 r6
111 r7 = select r9 r3 r7
loop:
112 store32 ptr1 r4
113 store32 ptr2 r5

View File

@ -10,12 +10,12 @@
8 r8 = splat 0 (0)
9 r9 = splat FFFFFFFF (nan)
10 r10 = trunc r1
11 r8 = eq_i32 r8 r10
11 r8 = eq_i32 r10 r8
12 r11 = bit_and r4 r8
13 r12 = bit_and r5 r8
14 r13 = bit_and r6 r8
15 r14 = bit_and r7 r8
16 r15 = bit_xor r9 r8
16 r15 = bit_xor r8 r9
17 r8 = bit_and r8 r15
18 r16 = splat 1 (1.4012985e-45)
19 r16 = eq_i32 r10 r16
@ -25,12 +25,12 @@
23 r12 = select r16 r1 r12
24 r13 = select r16 r2 r13
25 r14 = select r16 r3 r14
26 r16 = bit_xor r9 r16
27 r16 = bit_and r15 r16
28 r11 = select r16 r4 r11
29 r12 = select r16 r5 r12
30 r13 = select r16 r6 r13
31 r14 = select r16 r7 r14
26 r9 = bit_xor r16 r9
27 r9 = bit_and r15 r9
28 r11 = select r9 r4 r11
29 r12 = select r9 r5 r12
30 r13 = select r9 r6 r13
31 r14 = select r9 r7 r14
loop:
32 store32 ptr1 r11
33 store32 ptr2 r12

View File

@ -12,18 +12,18 @@
10 r10 = trunc r1
11 r11 = splat 2 (2.8025969e-45)
12 r11 = eq_i32 r10 r11
13 r12 = bit_xor r9 r11
13 r12 = bit_xor r11 r9
14 r13 = bit_and r11 r12
15 r14 = splat 1 (1.4012985e-45)
16 r14 = eq_i32 r10 r14
17 r15 = bit_or r13 r14
18 r15 = bit_and r12 r15
19 r13 = select r15 r9 r13
20 r8 = eq_i32 r8 r10
20 r8 = eq_i32 r10 r8
21 r13 = bit_or r13 r8
22 r13 = bit_and r12 r13
23 r8 = bit_and r8 r13
24 r12 = bit_xor r9 r8
24 r12 = bit_xor r8 r9
25 r8 = bit_and r8 r12
26 r14 = bit_or r14 r8
27 r14 = bit_and r13 r14

View File

@ -11,280 +11,280 @@
9 r9 = trunc r1
10 r10 = splat 1 (1.4012985e-45)
11 r9 = eq_i32 r9 r10
12 r11 = bit_and r10 r9
13 r12 = bit_xor r8 r9
14 r13 = add_i32 r10 r11
12 r11 = bit_and r9 r10
13 r12 = bit_xor r9 r8
14 r13 = add_i32 r11 r10
15 r14 = bit_and r9 r12
16 r11 = select r14 r13 r11
17 r13 = add_i32 r10 r11
17 r13 = add_i32 r11 r10
18 r11 = select r14 r13 r11
19 r14 = bit_xor r8 r14
19 r14 = bit_xor r14 r8
20 r14 = bit_and r12 r14
21 r12 = add_i32 r10 r11
21 r12 = add_i32 r11 r10
22 r13 = bit_and r9 r14
23 r11 = select r13 r12 r11
24 r12 = splat 2 (2.8025969e-45)
25 r15 = add_i32 r10 r11
25 r15 = add_i32 r11 r10
26 r11 = select r13 r15 r11
27 r13 = bit_xor r8 r13
27 r13 = bit_xor r13 r8
28 r13 = bit_and r14 r13
29 r14 = add_i32 r10 r11
29 r14 = add_i32 r11 r10
30 r15 = bit_and r9 r13
31 r11 = select r15 r14 r11
32 r14 = add_i32 r10 r11
32 r14 = add_i32 r11 r10
33 r11 = select r15 r14 r11
34 r15 = bit_xor r8 r15
34 r15 = bit_xor r15 r8
35 r15 = bit_and r13 r15
36 r13 = add_i32 r10 r11
36 r13 = add_i32 r11 r10
37 r14 = bit_and r9 r15
38 r11 = select r14 r13 r11
39 r13 = add_i32 r10 r11
39 r13 = add_i32 r11 r10
40 r11 = select r14 r13 r11
41 r14 = bit_xor r8 r14
41 r14 = bit_xor r14 r8
42 r14 = bit_and r15 r14
43 r15 = add_i32 r10 r11
43 r15 = add_i32 r11 r10
44 r13 = bit_and r9 r14
45 r11 = select r13 r15 r11
46 r15 = add_i32 r10 r11
46 r15 = add_i32 r11 r10
47 r11 = select r13 r15 r11
48 r13 = bit_xor r8 r13
48 r13 = bit_xor r13 r8
49 r13 = bit_and r14 r13
50 r14 = add_i32 r10 r11
50 r14 = add_i32 r11 r10
51 r15 = bit_and r9 r13
52 r11 = select r15 r14 r11
53 r14 = add_i32 r10 r11
53 r14 = add_i32 r11 r10
54 r11 = select r15 r14 r11
55 r15 = bit_xor r8 r15
55 r15 = bit_xor r15 r8
56 r15 = bit_and r13 r15
57 r13 = add_i32 r10 r11
57 r13 = add_i32 r11 r10
58 r14 = bit_and r9 r15
59 r11 = select r14 r13 r11
60 r13 = add_i32 r10 r11
60 r13 = add_i32 r11 r10
61 r11 = select r14 r13 r11
62 r14 = bit_xor r8 r14
62 r14 = bit_xor r14 r8
63 r14 = bit_and r15 r14
64 r15 = add_i32 r10 r11
64 r15 = add_i32 r11 r10
65 r13 = bit_and r9 r14
66 r11 = select r13 r15 r11
67 r15 = add_i32 r10 r11
67 r15 = add_i32 r11 r10
68 r11 = select r13 r15 r11
69 r13 = bit_xor r8 r13
69 r13 = bit_xor r13 r8
70 r13 = bit_and r14 r13
71 r14 = add_i32 r10 r11
71 r14 = add_i32 r11 r10
72 r15 = bit_and r9 r13
73 r11 = select r15 r14 r11
74 r14 = add_i32 r10 r11
74 r14 = add_i32 r11 r10
75 r11 = select r15 r14 r11
76 r15 = bit_xor r8 r15
76 r15 = bit_xor r15 r8
77 r15 = bit_and r13 r15
78 r13 = add_i32 r10 r11
78 r13 = add_i32 r11 r10
79 r15 = bit_and r9 r15
80 r11 = select r15 r13 r11
81 r11 = add_i32 r10 r11
82 r11 = eq_i32 r12 r11
83 r12 = bit_and r9 r11
84 r13 = bit_and r10 r12
85 r15 = bit_xor r8 r12
86 r14 = add_i32 r10 r13
87 r16 = bit_and r12 r15
81 r11 = add_i32 r11 r10
82 r12 = eq_i32 r11 r12
83 r11 = bit_and r9 r12
84 r13 = bit_and r11 r10
85 r15 = bit_xor r11 r8
86 r14 = add_i32 r13 r10
87 r16 = bit_and r11 r15
88 r13 = select r16 r14 r13
89 r15 = bit_or r12 r15
90 r14 = bit_and r12 r15
91 r16 = add_i32 r10 r13
89 r15 = bit_or r11 r15
90 r14 = bit_and r11 r15
91 r16 = add_i32 r13 r10
92 r13 = select r14 r16 r13
93 r16 = bit_xor r8 r14
93 r16 = bit_xor r14 r8
94 r16 = bit_and r15 r16
95 r15 = add_i32 r10 r13
96 r17 = bit_and r12 r16
95 r15 = add_i32 r13 r10
96 r17 = bit_and r11 r16
97 r13 = select r17 r15 r13
98 r16 = bit_or r14 r16
99 r14 = bit_and r12 r16
100 r15 = add_i32 r10 r13
99 r14 = bit_and r11 r16
100 r15 = add_i32 r13 r10
101 r13 = select r14 r15 r13
102 r15 = bit_xor r8 r14
102 r15 = bit_xor r14 r8
103 r15 = bit_and r16 r15
104 r16 = add_i32 r10 r13
105 r17 = bit_and r12 r15
104 r16 = add_i32 r13 r10
105 r17 = bit_and r11 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
108 r14 = bit_and r11 r15
109 r16 = add_i32 r13 r10
110 r13 = select r14 r16 r13
111 r16 = bit_xor r8 r14
111 r16 = bit_xor r14 r8
112 r16 = bit_and r15 r16
113 r15 = add_i32 r10 r13
114 r17 = bit_and r12 r16
113 r15 = add_i32 r13 r10
114 r17 = bit_and r11 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
117 r14 = bit_and r11 r16
118 r15 = add_i32 r13 r10
119 r13 = select r14 r15 r13
120 r15 = bit_xor r8 r14
120 r15 = bit_xor r14 r8
121 r15 = bit_and r16 r15
122 r16 = add_i32 r10 r13
123 r17 = bit_and r12 r15
122 r16 = add_i32 r13 r10
123 r17 = bit_and r11 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
126 r14 = bit_and r11 r15
127 r16 = add_i32 r13 r10
128 r13 = select r14 r16 r13
129 r16 = bit_xor r8 r14
129 r16 = bit_xor r14 r8
130 r16 = bit_and r15 r16
131 r15 = add_i32 r10 r13
132 r17 = bit_and r12 r16
131 r15 = add_i32 r13 r10
132 r17 = bit_and r11 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
135 r14 = bit_and r11 r16
136 r15 = add_i32 r13 r10
137 r13 = select r14 r15 r13
138 r15 = bit_xor r8 r14
138 r15 = bit_xor r14 r8
139 r15 = bit_and r16 r15
140 r16 = add_i32 r10 r13
141 r17 = bit_and r12 r15
140 r16 = add_i32 r13 r10
141 r17 = bit_and r11 r15
142 r13 = select r17 r16 r13
143 r15 = bit_or r14 r15
144 r14 = bit_and r12 r15
145 r16 = add_i32 r10 r13
144 r14 = bit_and r11 r15
145 r16 = add_i32 r13 r10
146 r13 = select r14 r16 r13
147 r16 = bit_xor r8 r14
147 r16 = bit_xor r14 r8
148 r16 = bit_and r15 r16
149 r15 = add_i32 r10 r13
150 r17 = bit_and r12 r16
149 r15 = add_i32 r13 r10
150 r17 = bit_and r11 r16
151 r13 = select r17 r15 r13
152 r16 = bit_or r14 r16
153 r14 = bit_and r12 r16
154 r15 = add_i32 r10 r13
153 r14 = bit_and r11 r16
154 r15 = add_i32 r13 r10
155 r13 = select r14 r15 r13
156 r15 = bit_xor r8 r14
156 r15 = bit_xor r14 r8
157 r15 = bit_and r16 r15
158 r16 = add_i32 r10 r13
159 r17 = bit_and r12 r15
158 r16 = add_i32 r13 r10
159 r17 = bit_and r11 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
162 r14 = bit_and r11 r15
163 r16 = add_i32 r13 r10
164 r13 = select r14 r16 r13
165 r14 = bit_xor r8 r14
165 r14 = bit_xor r14 r8
166 r14 = bit_and r15 r14
167 r15 = add_i32 r10 r13
168 r14 = bit_and r12 r14
167 r15 = add_i32 r13 r10
168 r14 = bit_and r11 r14
169 r13 = select r14 r15 r13
170 r15 = add_i32 r10 r13
171 r13 = select r11 r15 r13
170 r15 = add_i32 r13 r10
171 r13 = select r12 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
174 r15 = bit_and r12 r15
175 r15 = bit_and r12 r15
176 r9 = bit_and r9 r15
177 r11 = bit_and r10 r9
178 r13 = bit_xor r8 r9
177 r12 = bit_and r9 r10
178 r13 = bit_xor r9 r8
179 r13 = bit_and r15 r13
180 r14 = add_i32 r10 r11
181 r12 = bit_xor r8 r13
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
180 r14 = add_i32 r12 r10
181 r11 = bit_xor r13 r8
182 r16 = bit_and r15 r11
183 r12 = select r16 r14 r12
184 r14 = bit_and r9 r11
185 r16 = add_i32 r12 r10
186 r12 = select r14 r16 r12
187 r14 = bit_xor r14 r8
188 r14 = bit_and r15 r14
189 r14 = bit_and r12 r14
189 r14 = bit_and r11 r14
190 r14 = bit_or r13 r14
191 r13 = add_i32 r10 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
191 r13 = add_i32 r12 r10
192 r11 = bit_xor r14 r8
193 r16 = bit_and r15 r11
194 r12 = select r16 r13 r12
195 r13 = bit_and r9 r11
196 r16 = add_i32 r12 r10
197 r12 = select r13 r16 r12
198 r13 = bit_xor r13 r8
199 r13 = bit_and r15 r13
200 r13 = bit_and r12 r13
200 r13 = bit_and r11 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
202 r14 = add_i32 r12 r10
203 r11 = bit_xor r13 r8
204 r16 = bit_and r15 r11
205 r12 = select r16 r14 r12
206 r14 = bit_and r9 r11
207 r16 = add_i32 r12 r10
208 r12 = select r14 r16 r12
209 r14 = bit_xor r14 r8
210 r14 = bit_and r15 r14
211 r14 = bit_and r12 r14
211 r14 = bit_and r11 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
213 r13 = add_i32 r12 r10
214 r11 = bit_xor r14 r8
215 r16 = bit_and r15 r11
216 r12 = select r16 r13 r12
217 r13 = bit_and r9 r11
218 r16 = add_i32 r12 r10
219 r12 = select r13 r16 r12
220 r13 = bit_xor r13 r8
221 r13 = bit_and r15 r13
222 r13 = bit_and r12 r13
222 r13 = bit_and r11 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
224 r14 = add_i32 r12 r10
225 r11 = bit_xor r13 r8
226 r16 = bit_and r15 r11
227 r12 = select r16 r14 r12
228 r14 = bit_and r9 r11
229 r16 = add_i32 r12 r10
230 r12 = select r14 r16 r12
231 r14 = bit_xor r14 r8
232 r14 = bit_and r15 r14
233 r14 = bit_and r12 r14
233 r14 = bit_and r11 r14
234 r14 = bit_or r13 r14
235 r13 = add_i32 r10 r11
236 r12 = bit_xor r8 r14
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
235 r13 = add_i32 r12 r10
236 r11 = bit_xor r14 r8
237 r16 = bit_and r15 r11
238 r12 = select r16 r13 r12
239 r13 = bit_and r9 r11
240 r16 = add_i32 r12 r10
241 r12 = select r13 r16 r12
242 r13 = bit_xor r13 r8
243 r13 = bit_and r15 r13
244 r13 = bit_and r12 r13
244 r13 = bit_and r11 r13
245 r13 = bit_or r14 r13
246 r14 = add_i32 r10 r11
247 r12 = bit_xor r8 r13
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
246 r14 = add_i32 r12 r10
247 r11 = bit_xor r13 r8
248 r16 = bit_and r15 r11
249 r12 = select r16 r14 r12
250 r14 = bit_and r9 r11
251 r16 = add_i32 r12 r10
252 r12 = select r14 r16 r12
253 r14 = bit_xor r14 r8
254 r14 = bit_and r15 r14
255 r14 = bit_and r12 r14
255 r14 = bit_and r11 r14
256 r14 = bit_or r13 r14
257 r13 = add_i32 r10 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
257 r13 = add_i32 r12 r10
258 r11 = bit_xor r14 r8
259 r16 = bit_and r15 r11
260 r12 = select r16 r13 r12
261 r13 = bit_and r9 r11
262 r16 = add_i32 r12 r10
263 r12 = select r13 r16 r12
264 r13 = bit_xor r13 r8
265 r13 = bit_and r15 r13
266 r13 = bit_and r12 r13
266 r13 = bit_and r11 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
268 r14 = add_i32 r12 r10
269 r11 = bit_xor r13 r8
270 r16 = bit_and r15 r11
271 r12 = select r16 r14 r12
272 r9 = bit_and r9 r11
273 r14 = add_i32 r12 r10
274 r12 = select r9 r14 r12
275 r9 = bit_xor r9 r8
276 r9 = bit_and r15 r9
277 r9 = bit_and r12 r9
277 r9 = bit_and r11 r9
278 r9 = bit_or r13 r9
279 r10 = add_i32 r10 r11
280 r9 = bit_xor r8 r9
281 r9 = bit_and r15 r9
282 r11 = select r9 r10 r11
279 r10 = add_i32 r12 r10
280 r8 = bit_xor r9 r8
281 r8 = bit_and r15 r8
282 r12 = select r8 r10 r12
283 r10 = splat 14 (2.8025969e-44)
284 r10 = eq_i32 r11 r10
285 r10 = bit_and r9 r10
284 r10 = eq_i32 r12 r10
285 r10 = bit_and r8 r10
286 r10 = bit_and r15 r10
287 r4 = select r10 r0 r4
288 r5 = select r10 r1 r5