skia2/tests/sksl/runtime/LoopFloat.skvm
John Stiles 059d34594e Optimize SkVM bit-clears.
SkVM has a `bit_clear` opcode dedicated to the operation `x & ~y`, but
the optimizer was not smart enough to combine a bit-and with a bit-not
and replace it with a bit-clear. Now, it can.

Change-Id: Ida5345c3def0a4bf7afa08bb7f7835e1e2e37677
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/524225
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Arman Uguray <armansito@google.com>
2022-03-24 21:04:23 +00:00

1013 lines
32 KiB
Plaintext

$0 = colorRed (float4 : slot 1/4, L3)
$1 = colorRed (float4 : slot 2/4, L3)
$2 = colorRed (float4 : slot 3/4, L3)
$3 = colorRed (float4 : slot 4/4, L3)
$4 = colorGreen (float4 : slot 1/4, L3)
$5 = colorGreen (float4 : slot 2/4, L3)
$6 = colorGreen (float4 : slot 3/4, L3)
$7 = colorGreen (float4 : slot 4/4, L3)
$8 = kZero (float, L6)
$9 = kTen (float, L15)
$10 = [main].result (float4 : slot 1/4, L115)
$11 = [main].result (float4 : slot 2/4, L115)
$12 = [main].result (float4 : slot 3/4, L115)
$13 = [main].result (float4 : slot 4/4, L115)
$14 = pos (float2 : slot 1/2, L115)
$15 = pos (float2 : slot 2/2, L115)
$16 = five (float, L116)
$17 = [return_loop].result (float, L7)
$18 = five (float, L7)
$19 = i (float, L8)
$20 = [continue_loop].result (float, L16)
$21 = five (float, L16)
$22 = sum (float, L17)
$23 = i (float, L18)
$24 = [break_loop].result (float, L26)
$25 = five (float, L26)
$26 = sum (float, L27)
$27 = kOne (float, L28)
$28 = i (float, L29)
$29 = [float_loop].result (float, L37)
$30 = sum (float, L38)
$31 = i (float, L39)
$32 = [loop_operator_le].result (bool, L45)
$33 = result (float4 : slot 1/4, L50)
$34 = result (float4 : slot 2/4, L50)
$35 = result (float4 : slot 3/4, L50)
$36 = result (float4 : slot 4/4, L50)
$37 = i (float, L51)
$38 = [loop_operator_lt].result (bool, L57)
$39 = result (float4 : slot 1/4, L62)
$40 = result (float4 : slot 2/4, L62)
$41 = result (float4 : slot 3/4, L62)
$42 = result (float4 : slot 4/4, L62)
$43 = i (float, L63)
$44 = [loop_operator_ge].result (bool, L69)
$45 = result (float4 : slot 1/4, L74)
$46 = result (float4 : slot 2/4, L74)
$47 = result (float4 : slot 3/4, L74)
$48 = result (float4 : slot 4/4, L74)
$49 = i (float, L75)
$50 = [loop_operator_gt].result (bool, L81)
$51 = result (float4 : slot 1/4, L86)
$52 = result (float4 : slot 2/4, L86)
$53 = result (float4 : slot 3/4, L86)
$54 = result (float4 : slot 4/4, L86)
$55 = i (float, L87)
$56 = [loop_operator_eq].result (bool, L104)
$57 = result (float4 : slot 1/4, L108)
$58 = result (float4 : slot 2/4, L108)
$59 = result (float4 : slot 3/4, L108)
$60 = result (float4 : slot 4/4, L108)
$61 = i (float, L109)
$62 = [loop_operator_ne].result (bool, L93)
$63 = result (float4 : slot 1/4, L97)
$64 = result (float4 : slot 2/4, L97)
$65 = result (float4 : slot 3/4, L97)
$66 = result (float4 : slot 4/4, L97)
$67 = i (float, L98)
F0 = half4 main(float2 pos)
F1 = float return_loop(float five)
F2 = float continue_loop(float five)
F3 = float break_loop(float five)
F4 = float float_loop()
F5 = bool loop_operator_le()
F6 = bool loop_operator_lt()
F7 = bool loop_operator_ge()
F8 = bool loop_operator_gt()
F9 = bool loop_operator_eq()
F10 = bool loop_operator_ne()
42 registers, 930 instructions:
0 r0 = uniform32 ptr0 0
1 r1 = uniform32 ptr0 4
2 r2 = uniform32 ptr0 8
3 r3 = uniform32 ptr0 C
4 r4 = uniform32 ptr0 10
5 r5 = uniform32 ptr0 14
6 r6 = uniform32 ptr0 18
7 r7 = uniform32 ptr0 1C
8 r8 = uniform32 ptr0 20
9 r9 = splat 0 (0)
10 r10 = splat FFFFFFFF (nan)
11 r11 = splat 3F000000 (0.5)
12 r12 = eq_f32 r0 r11
13 r13 = splat 41200000 (10)
14 r14 = splat 40A00000 (5)
15 r15 = splat 3F800000 (1)
16 r16 = splat 40000000 (2)
17 r17 = splat 40400000 (3)
18 r18 = splat 40800000 (4)
19 r19 = splat 40C00000 (6)
20 r20 = splat 40E00000 (7)
21 r21 = splat 41000000 (8)
22 r22 = splat 41100000 (9)
23 r23 = splat 420C0000 (35)
24 r24 = splat 41700000 (15)
25 r25 = splat 3DFBE76D (0.123)
26 r26 = splat 3E6F9DB2 (0.234)
27 r27 = splat 3EB0A3D7 (0.345)
28 r28 = splat 3EE978D5 (0.456)
29 r29 = splat 3F1126EA (0.56700003)
30 r30 = splat 3FDCCCCD (1.725)
31 r31 = splat 7FFFFFFF (nan)
32 r32 = splat 3CCCCCCD (0.025)
loop:
33 r33 = index
34 r34 = eq_f32 r33 r11
35 r34 = bit_and r34 r12
36 trace_var 0 r34 r34 $0 = r1
37 trace_var 0 r34 r34 $1 = r2
38 trace_var 0 r34 r34 $2 = r3
39 trace_var 0 r34 r34 $3 = r4
40 trace_var 0 r34 r34 $4 = r5
41 trace_var 0 r34 r34 $5 = r6
42 trace_var 0 r34 r34 $6 = r7
43 trace_var 0 r34 r34 $7 = r8
44 trace_var 0 r34 r34 $8 = r9
45 trace_var 0 r34 r34 $9 = r13
46 trace_enter 0 r34 r34 F0
47 trace_var 0 r34 r34 $14 = r33
48 trace_var 0 r34 r34 $15 = r0
49 trace_scope 0 r34 r34 1
50 trace_line 0 r34 r34 L116
51 r33 = min_f32 r33 r8
52 r33 = max_f32 r6 r33
53 r33 = mul_f32 r33 r14
54 trace_var 0 r34 r34 $16 = r33
55 trace_line 0 r34 r34 L117
56 trace_enter 0 r34 r34 F1
57 trace_var 0 r34 r34 $18 = r33
58 trace_scope 0 r34 r34 1
59 trace_line 0 r34 r34 L8
60 trace_scope 0 r34 r34 1
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 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 r35 r10
71 trace_line 0 r36 r34 L8
72 trace_var 0 r36 r34 $19 = r15
73 trace_scope 0 r36 r34 1
74 trace_line 0 r36 r34 L9
75 r37 = eq_f32 r33 r15
76 r37 = bit_clear r37 r35
77 trace_scope 0 r37 r34 1
78 trace_line 0 r37 r34 L9
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 r35 r10
85 trace_line 0 r36 r34 L8
86 trace_var 0 r36 r34 $19 = r16
87 trace_scope 0 r36 r34 1
88 trace_line 0 r36 r34 L9
89 r37 = eq_f32 r33 r16
90 r37 = bit_clear r37 r35
91 trace_scope 0 r37 r34 1
92 trace_line 0 r37 r34 L9
93 r38 = select r37 r16 r38
94 trace_var 0 r37 r34 $17 = r38
95 r35 = bit_or r35 r37
96 trace_scope 0 r37 r34 -1
97 trace_scope 0 r36 r34 -1
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
102 trace_line 0 r36 r34 L9
103 r37 = eq_f32 r33 r17
104 r37 = bit_clear r37 r35
105 trace_scope 0 r37 r34 1
106 trace_line 0 r37 r34 L9
107 r38 = select r37 r17 r38
108 trace_var 0 r37 r34 $17 = r38
109 r35 = bit_or r35 r37
110 trace_scope 0 r37 r34 -1
111 trace_scope 0 r36 r34 -1
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
116 trace_line 0 r36 r34 L9
117 r37 = eq_f32 r33 r18
118 r37 = bit_clear r37 r35
119 trace_scope 0 r37 r34 1
120 trace_line 0 r37 r34 L9
121 r38 = select r37 r18 r38
122 trace_var 0 r37 r34 $17 = r38
123 r35 = bit_or r35 r37
124 trace_scope 0 r37 r34 -1
125 trace_scope 0 r36 r34 -1
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 r33 r14
132 r37 = bit_clear r37 r35
133 trace_scope 0 r37 r34 1
134 trace_line 0 r37 r34 L9
135 r38 = select r37 r14 r38
136 trace_var 0 r37 r34 $17 = r38
137 r35 = bit_or r35 r37
138 trace_scope 0 r37 r34 -1
139 trace_scope 0 r36 r34 -1
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
144 trace_line 0 r36 r34 L9
145 r37 = eq_f32 r33 r19
146 r37 = bit_clear r37 r35
147 trace_scope 0 r37 r34 1
148 trace_line 0 r37 r34 L9
149 r38 = select r37 r19 r38
150 trace_var 0 r37 r34 $17 = r38
151 r35 = bit_or r35 r37
152 trace_scope 0 r37 r34 -1
153 trace_scope 0 r36 r34 -1
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
158 trace_line 0 r36 r34 L9
159 r37 = eq_f32 r33 r20
160 r37 = bit_clear r37 r35
161 trace_scope 0 r37 r34 1
162 trace_line 0 r37 r34 L9
163 r38 = select r37 r20 r38
164 trace_var 0 r37 r34 $17 = r38
165 r35 = bit_or r35 r37
166 trace_scope 0 r37 r34 -1
167 trace_scope 0 r36 r34 -1
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
172 trace_line 0 r36 r34 L9
173 r37 = eq_f32 r33 r21
174 r37 = bit_clear r37 r35
175 trace_scope 0 r37 r34 1
176 trace_line 0 r37 r34 L9
177 r38 = select r37 r21 r38
178 trace_var 0 r37 r34 $17 = r38
179 r35 = bit_or r35 r37
180 trace_scope 0 r37 r34 -1
181 trace_scope 0 r36 r34 -1
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
186 trace_line 0 r36 r34 L9
187 r37 = eq_f32 r33 r22
188 r37 = bit_clear r37 r35
189 trace_scope 0 r37 r34 1
190 trace_line 0 r37 r34 L9
191 r38 = select r37 r22 r38
192 trace_var 0 r37 r34 $17 = r38
193 r35 = bit_or r35 r37
194 trace_scope 0 r37 r34 -1
195 trace_scope 0 r36 r34 -1
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
200 r38 = bit_clear r38 r35
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 r38 r14
205 trace_enter 0 r38 r34 F2
206 trace_var 0 r38 r34 $21 = r33
207 trace_scope 0 r38 r34 1
208 trace_line 0 r38 r34 L17
209 trace_var 0 r38 r34 $22 = r9
210 trace_line 0 r38 r34 L18
211 trace_scope 0 r38 r34 1
212 trace_var 0 r38 r34 $23 = r9
213 trace_scope 0 r38 r34 1
214 trace_line 0 r38 r34 L19
215 r35 = gt_f32 r33 r9
216 r35 = bit_and r38 r35
217 trace_scope 0 r35 r34 1
218 trace_line 0 r35 r34 L19
219 r36 = bit_xor r35 r10
220 trace_scope 0 r35 r34 -1
221 r37 = bit_clear r38 r35
222 trace_line 0 r37 r34 L20
223 trace_scope 0 r38 r34 -1
224 r36 = bit_or r35 r36
225 r35 = bit_and r38 r36
226 trace_line 0 r35 r34 L18
227 trace_var 0 r35 r34 $23 = r15
228 trace_scope 0 r35 r34 1
229 trace_line 0 r35 r34 L19
230 r37 = gt_f32 r33 r15
231 r37 = bit_and r38 r37
232 r37 = bit_and r36 r37
233 trace_scope 0 r37 r34 1
234 trace_line 0 r37 r34 L19
235 r36 = bit_clear r36 r37
236 trace_scope 0 r37 r34 -1
237 r39 = bit_and r38 r36
238 trace_line 0 r39 r34 L20
239 r40 = bit_and r39 r15
240 trace_var 0 r39 r34 $22 = r40
241 trace_scope 0 r35 r34 -1
242 r36 = bit_or r37 r36
243 r37 = bit_and r38 r36
244 trace_line 0 r37 r34 L18
245 trace_var 0 r37 r34 $23 = r16
246 trace_scope 0 r37 r34 1
247 trace_line 0 r37 r34 L19
248 r35 = gt_f32 r33 r16
249 r35 = bit_and r38 r35
250 r35 = bit_and r36 r35
251 trace_scope 0 r35 r34 1
252 trace_line 0 r35 r34 L19
253 r36 = bit_clear r36 r35
254 trace_scope 0 r35 r34 -1
255 r39 = bit_and r38 r36
256 trace_line 0 r39 r34 L20
257 r41 = add_f32 r40 r16
258 r40 = select r39 r41 r40
259 trace_var 0 r39 r34 $22 = r40
260 trace_scope 0 r37 r34 -1
261 r36 = bit_or r35 r36
262 r35 = bit_and r38 r36
263 trace_line 0 r35 r34 L18
264 trace_var 0 r35 r34 $23 = r17
265 trace_scope 0 r35 r34 1
266 trace_line 0 r35 r34 L19
267 r37 = gt_f32 r33 r17
268 r37 = bit_and r38 r37
269 r37 = bit_and r36 r37
270 trace_scope 0 r37 r34 1
271 trace_line 0 r37 r34 L19
272 r36 = bit_clear r36 r37
273 trace_scope 0 r37 r34 -1
274 r39 = bit_and r38 r36
275 trace_line 0 r39 r34 L20
276 r41 = add_f32 r40 r17
277 r40 = select r39 r41 r40
278 trace_var 0 r39 r34 $22 = r40
279 trace_scope 0 r35 r34 -1
280 r36 = bit_or r37 r36
281 r37 = bit_and r38 r36
282 trace_line 0 r37 r34 L18
283 trace_var 0 r37 r34 $23 = r18
284 trace_scope 0 r37 r34 1
285 trace_line 0 r37 r34 L19
286 r35 = gt_f32 r33 r18
287 r35 = bit_and r38 r35
288 r35 = bit_and r36 r35
289 trace_scope 0 r35 r34 1
290 trace_line 0 r35 r34 L19
291 r36 = bit_clear r36 r35
292 trace_scope 0 r35 r34 -1
293 r39 = bit_and r38 r36
294 trace_line 0 r39 r34 L20
295 r41 = add_f32 r40 r18
296 r40 = select r39 r41 r40
297 trace_var 0 r39 r34 $22 = r40
298 trace_scope 0 r37 r34 -1
299 r36 = bit_or r35 r36
300 r35 = bit_and r38 r36
301 trace_line 0 r35 r34 L18
302 trace_var 0 r35 r34 $23 = r14
303 trace_scope 0 r35 r34 1
304 trace_line 0 r35 r34 L19
305 r37 = gt_f32 r33 r14
306 r37 = bit_and r38 r37
307 r37 = bit_and r36 r37
308 trace_scope 0 r37 r34 1
309 trace_line 0 r37 r34 L19
310 r36 = bit_clear r36 r37
311 trace_scope 0 r37 r34 -1
312 r39 = bit_and r38 r36
313 trace_line 0 r39 r34 L20
314 r41 = add_f32 r40 r14
315 r40 = select r39 r41 r40
316 trace_var 0 r39 r34 $22 = r40
317 trace_scope 0 r35 r34 -1
318 r36 = bit_or r37 r36
319 r37 = bit_and r38 r36
320 trace_line 0 r37 r34 L18
321 trace_var 0 r37 r34 $23 = r19
322 trace_scope 0 r37 r34 1
323 trace_line 0 r37 r34 L19
324 r35 = gt_f32 r33 r19
325 r35 = bit_and r38 r35
326 r35 = bit_and r36 r35
327 trace_scope 0 r35 r34 1
328 trace_line 0 r35 r34 L19
329 r36 = bit_clear r36 r35
330 trace_scope 0 r35 r34 -1
331 r39 = bit_and r38 r36
332 trace_line 0 r39 r34 L20
333 r41 = add_f32 r40 r19
334 r40 = select r39 r41 r40
335 trace_var 0 r39 r34 $22 = r40
336 trace_scope 0 r37 r34 -1
337 r36 = bit_or r35 r36
338 r35 = bit_and r38 r36
339 trace_line 0 r35 r34 L18
340 trace_var 0 r35 r34 $23 = r20
341 trace_scope 0 r35 r34 1
342 trace_line 0 r35 r34 L19
343 r37 = gt_f32 r33 r20
344 r37 = bit_and r38 r37
345 r37 = bit_and r36 r37
346 trace_scope 0 r37 r34 1
347 trace_line 0 r37 r34 L19
348 r36 = bit_clear r36 r37
349 trace_scope 0 r37 r34 -1
350 r39 = bit_and r38 r36
351 trace_line 0 r39 r34 L20
352 r41 = add_f32 r40 r20
353 r40 = select r39 r41 r40
354 trace_var 0 r39 r34 $22 = r40
355 trace_scope 0 r35 r34 -1
356 r36 = bit_or r37 r36
357 r37 = bit_and r38 r36
358 trace_line 0 r37 r34 L18
359 trace_var 0 r37 r34 $23 = r21
360 trace_scope 0 r37 r34 1
361 trace_line 0 r37 r34 L19
362 r35 = gt_f32 r33 r21
363 r35 = bit_and r38 r35
364 r35 = bit_and r36 r35
365 trace_scope 0 r35 r34 1
366 trace_line 0 r35 r34 L19
367 r36 = bit_clear r36 r35
368 trace_scope 0 r35 r34 -1
369 r39 = bit_and r38 r36
370 trace_line 0 r39 r34 L20
371 r41 = add_f32 r40 r21
372 r40 = select r39 r41 r40
373 trace_var 0 r39 r34 $22 = r40
374 trace_scope 0 r37 r34 -1
375 r36 = bit_or r35 r36
376 r35 = bit_and r38 r36
377 trace_line 0 r35 r34 L18
378 trace_var 0 r35 r34 $23 = r22
379 trace_scope 0 r35 r34 1
380 trace_line 0 r35 r34 L19
381 r37 = gt_f32 r33 r22
382 r37 = bit_and r38 r37
383 r37 = bit_and r36 r37
384 trace_scope 0 r37 r34 1
385 trace_line 0 r37 r34 L19
386 r36 = bit_clear r36 r37
387 trace_scope 0 r37 r34 -1
388 r39 = bit_and r38 r36
389 trace_line 0 r39 r34 L20
390 r41 = add_f32 r40 r22
391 r40 = select r39 r41 r40
392 trace_var 0 r39 r34 $22 = r40
393 trace_scope 0 r35 r34 -1
394 r36 = bit_or r37 r36
395 r36 = bit_and r38 r36
396 trace_line 0 r36 r34 L18
397 trace_scope 0 r38 r34 -1
398 trace_line 0 r38 r34 L22
399 r40 = bit_and r38 r40
400 trace_var 0 r38 r34 $20 = r40
401 trace_scope 0 r38 r34 -1
402 trace_exit 0 r38 r34 F2
403 r40 = eq_f32 r40 r23
404 r40 = bit_and r38 r40
405 trace_enter 0 r40 r34 F3
406 trace_var 0 r40 r34 $25 = r33
407 trace_scope 0 r40 r34 1
408 trace_line 0 r40 r34 L27
409 trace_var 0 r40 r34 $26 = r9
410 trace_line 0 r40 r34 L28
411 trace_var 0 r40 r34 $27 = r15
412 trace_line 0 r40 r34 L29
413 trace_scope 0 r40 r34 1
414 trace_var 0 r40 r34 $28 = r9
415 trace_scope 0 r40 r34 1
416 trace_line 0 r40 r34 L30
417 r38 = gt_f32 r9 r33
418 r38 = bit_and r40 r38
419 trace_scope 0 r38 r34 1
420 trace_line 0 r38 r34 L30
421 trace_scope 0 r38 r34 -1
422 r36 = bit_clear r40 r38
423 trace_line 0 r36 r34 L31
424 trace_scope 0 r40 r34 -1
425 trace_line 0 r36 r34 L29
426 trace_var 0 r36 r34 $28 = r15
427 trace_scope 0 r36 r34 1
428 trace_line 0 r36 r34 L30
429 r37 = gt_f32 r15 r33
430 r37 = bit_and r40 r37
431 r37 = bit_clear r37 r38
432 trace_scope 0 r37 r34 1
433 trace_line 0 r37 r34 L30
434 r35 = bit_xor r37 r10
435 r38 = bit_clear r35 r38
436 trace_scope 0 r37 r34 -1
437 r37 = bit_and r40 r38
438 trace_line 0 r37 r34 L31
439 r35 = bit_and r37 r15
440 trace_var 0 r37 r34 $26 = r35
441 trace_scope 0 r36 r34 -1
442 trace_line 0 r37 r34 L29
443 trace_var 0 r37 r34 $28 = r16
444 trace_scope 0 r37 r34 1
445 trace_line 0 r37 r34 L30
446 r36 = gt_f32 r16 r33
447 r36 = bit_and r40 r36
448 r36 = bit_and r38 r36
449 trace_scope 0 r36 r34 1
450 trace_line 0 r36 r34 L30
451 r38 = bit_clear r38 r36
452 trace_scope 0 r36 r34 -1
453 r36 = bit_and r40 r38
454 trace_line 0 r36 r34 L31
455 r39 = add_f32 r35 r16
456 r35 = select r36 r39 r35
457 trace_var 0 r36 r34 $26 = r35
458 trace_scope 0 r37 r34 -1
459 trace_line 0 r36 r34 L29
460 trace_var 0 r36 r34 $28 = r17
461 trace_scope 0 r36 r34 1
462 trace_line 0 r36 r34 L30
463 r37 = gt_f32 r17 r33
464 r37 = bit_and r40 r37
465 r37 = bit_and r38 r37
466 trace_scope 0 r37 r34 1
467 trace_line 0 r37 r34 L30
468 r38 = bit_clear r38 r37
469 trace_scope 0 r37 r34 -1
470 r37 = bit_and r40 r38
471 trace_line 0 r37 r34 L31
472 r39 = add_f32 r35 r17
473 r35 = select r37 r39 r35
474 trace_var 0 r37 r34 $26 = r35
475 trace_scope 0 r36 r34 -1
476 trace_line 0 r37 r34 L29
477 trace_var 0 r37 r34 $28 = r18
478 trace_scope 0 r37 r34 1
479 trace_line 0 r37 r34 L30
480 r36 = gt_f32 r18 r33
481 r36 = bit_and r40 r36
482 r36 = bit_and r38 r36
483 trace_scope 0 r36 r34 1
484 trace_line 0 r36 r34 L30
485 r38 = bit_clear r38 r36
486 trace_scope 0 r36 r34 -1
487 r36 = bit_and r40 r38
488 trace_line 0 r36 r34 L31
489 r39 = add_f32 r35 r18
490 r35 = select r36 r39 r35
491 trace_var 0 r36 r34 $26 = r35
492 trace_scope 0 r37 r34 -1
493 trace_line 0 r36 r34 L29
494 trace_var 0 r36 r34 $28 = r14
495 trace_scope 0 r36 r34 1
496 trace_line 0 r36 r34 L30
497 r37 = gt_f32 r14 r33
498 r37 = bit_and r40 r37
499 r37 = bit_and r38 r37
500 trace_scope 0 r37 r34 1
501 trace_line 0 r37 r34 L30
502 r38 = bit_clear r38 r37
503 trace_scope 0 r37 r34 -1
504 r37 = bit_and r40 r38
505 trace_line 0 r37 r34 L31
506 r39 = add_f32 r35 r14
507 r35 = select r37 r39 r35
508 trace_var 0 r37 r34 $26 = r35
509 trace_scope 0 r36 r34 -1
510 trace_line 0 r37 r34 L29
511 trace_var 0 r37 r34 $28 = r19
512 trace_scope 0 r37 r34 1
513 trace_line 0 r37 r34 L30
514 r36 = gt_f32 r19 r33
515 r36 = bit_and r40 r36
516 r36 = bit_and r38 r36
517 trace_scope 0 r36 r34 1
518 trace_line 0 r36 r34 L30
519 r38 = bit_clear r38 r36
520 trace_scope 0 r36 r34 -1
521 r36 = bit_and r40 r38
522 trace_line 0 r36 r34 L31
523 r39 = add_f32 r35 r19
524 r35 = select r36 r39 r35
525 trace_var 0 r36 r34 $26 = r35
526 trace_scope 0 r37 r34 -1
527 trace_line 0 r36 r34 L29
528 trace_var 0 r36 r34 $28 = r20
529 trace_scope 0 r36 r34 1
530 trace_line 0 r36 r34 L30
531 r37 = gt_f32 r20 r33
532 r37 = bit_and r40 r37
533 r37 = bit_and r38 r37
534 trace_scope 0 r37 r34 1
535 trace_line 0 r37 r34 L30
536 r38 = bit_clear r38 r37
537 trace_scope 0 r37 r34 -1
538 r37 = bit_and r40 r38
539 trace_line 0 r37 r34 L31
540 r39 = add_f32 r35 r20
541 r35 = select r37 r39 r35
542 trace_var 0 r37 r34 $26 = r35
543 trace_scope 0 r36 r34 -1
544 trace_line 0 r37 r34 L29
545 trace_var 0 r37 r34 $28 = r21
546 trace_scope 0 r37 r34 1
547 trace_line 0 r37 r34 L30
548 r36 = gt_f32 r21 r33
549 r36 = bit_and r40 r36
550 r36 = bit_and r38 r36
551 trace_scope 0 r36 r34 1
552 trace_line 0 r36 r34 L30
553 r38 = bit_clear r38 r36
554 trace_scope 0 r36 r34 -1
555 r36 = bit_and r40 r38
556 trace_line 0 r36 r34 L31
557 r39 = add_f32 r35 r21
558 r35 = select r36 r39 r35
559 trace_var 0 r36 r34 $26 = r35
560 trace_scope 0 r37 r34 -1
561 trace_line 0 r36 r34 L29
562 trace_var 0 r36 r34 $28 = r22
563 trace_scope 0 r36 r34 1
564 trace_line 0 r36 r34 L30
565 r33 = gt_f32 r22 r33
566 r33 = bit_and r40 r33
567 r33 = bit_and r38 r33
568 trace_scope 0 r33 r34 1
569 trace_line 0 r33 r34 L30
570 r38 = bit_clear r38 r33
571 trace_scope 0 r33 r34 -1
572 r38 = bit_and r40 r38
573 trace_line 0 r38 r34 L31
574 r33 = add_f32 r35 r22
575 r35 = select r38 r33 r35
576 trace_var 0 r38 r34 $26 = r35
577 trace_scope 0 r36 r34 -1
578 trace_line 0 r38 r34 L29
579 trace_scope 0 r40 r34 -1
580 trace_line 0 r40 r34 L33
581 r35 = bit_and r40 r35
582 trace_var 0 r40 r34 $24 = r35
583 trace_scope 0 r40 r34 -1
584 trace_exit 0 r40 r34 F3
585 r35 = eq_f32 r35 r24
586 r35 = bit_and r40 r35
587 trace_enter 0 r35 r34 F4
588 trace_scope 0 r35 r34 1
589 trace_line 0 r35 r34 L38
590 trace_var 0 r35 r34 $30 = r9
591 trace_line 0 r35 r34 L39
592 trace_scope 0 r35 r34 1
593 trace_var 0 r35 r34 $31 = r25
594 trace_scope 0 r35 r34 1
595 trace_line 0 r35 r34 L40
596 r40 = bit_and r35 r25
597 trace_var 0 r35 r34 $30 = r40
598 trace_scope 0 r35 r34 -1
599 trace_line 0 r35 r34 L39
600 trace_var 0 r35 r34 $31 = r26
601 trace_scope 0 r35 r34 1
602 trace_line 0 r35 r34 L40
603 r38 = add_f32 r40 r26
604 r40 = select r35 r38 r40
605 trace_var 0 r35 r34 $30 = r40
606 trace_scope 0 r35 r34 -1
607 trace_line 0 r35 r34 L39
608 trace_var 0 r35 r34 $31 = r27
609 trace_scope 0 r35 r34 1
610 trace_line 0 r35 r34 L40
611 r38 = add_f32 r40 r27
612 r40 = select r35 r38 r40
613 trace_var 0 r35 r34 $30 = r40
614 trace_scope 0 r35 r34 -1
615 trace_line 0 r35 r34 L39
616 trace_var 0 r35 r34 $31 = r28
617 trace_scope 0 r35 r34 1
618 trace_line 0 r35 r34 L40
619 r38 = add_f32 r40 r28
620 r40 = select r35 r38 r40
621 trace_var 0 r35 r34 $30 = r40
622 trace_scope 0 r35 r34 -1
623 trace_line 0 r35 r34 L39
624 trace_var 0 r35 r34 $31 = r29
625 trace_scope 0 r35 r34 1
626 trace_line 0 r35 r34 L40
627 r38 = add_f32 r40 r29
628 r40 = select r35 r38 r40
629 trace_var 0 r35 r34 $30 = r40
630 trace_scope 0 r35 r34 -1
631 trace_line 0 r35 r34 L39
632 trace_scope 0 r35 r34 -1
633 trace_line 0 r35 r34 L42
634 r40 = sub_f32 r40 r30
635 r40 = bit_and r35 r40
636 trace_var 0 r35 r34 $29 = r40
637 trace_scope 0 r35 r34 -1
638 trace_exit 0 r35 r34 F4
639 r40 = bit_and r40 r31
640 r40 = gt_f32 r32 r40
641 r40 = bit_and r35 r40
642 trace_enter 0 r40 r34 F5
643 trace_scope 0 r40 r34 1
644 trace_line 0 r40 r34 L47
645 trace_line 0 r40 r34 L48
646 trace_line 0 r40 r34 L50
647 trace_var 0 r40 r34 $33 = r22
648 trace_var 0 r40 r34 $34 = r22
649 trace_var 0 r40 r34 $35 = r22
650 trace_var 0 r40 r34 $36 = r22
651 trace_line 0 r40 r34 L51
652 trace_scope 0 r40 r34 1
653 trace_var 0 r40 r34 $37 = r15
654 trace_scope 0 r40 r34 1
655 trace_line 0 r40 r34 L52
656 r35 = select r40 r15 r22
657 trace_var 0 r40 r34 $36 = r35
658 trace_scope 0 r40 r34 -1
659 trace_line 0 r40 r34 L51
660 trace_var 0 r40 r34 $37 = r16
661 trace_scope 0 r40 r34 1
662 trace_line 0 r40 r34 L52
663 r38 = select r40 r35 r22
664 trace_var 0 r40 r34 $35 = r38
665 r35 = select r40 r16 r35
666 trace_var 0 r40 r34 $36 = r35
667 trace_scope 0 r40 r34 -1
668 trace_line 0 r40 r34 L51
669 trace_var 0 r40 r34 $37 = r17
670 trace_scope 0 r40 r34 1
671 trace_line 0 r40 r34 L52
672 r36 = select r40 r38 r22
673 trace_var 0 r40 r34 $34 = r36
674 r38 = select r40 r35 r38
675 trace_var 0 r40 r34 $35 = r38
676 r35 = select r40 r17 r35
677 trace_var 0 r40 r34 $36 = r35
678 trace_scope 0 r40 r34 -1
679 trace_line 0 r40 r34 L51
680 trace_scope 0 r40 r34 -1
681 trace_line 0 r40 r34 L54
682 r36 = eq_f32 r36 r15
683 r38 = eq_f32 r38 r16
684 r35 = eq_f32 r35 r17
685 r38 = bit_and r36 r38
686 r38 = bit_and r35 r38
687 r38 = bit_and r40 r38
688 trace_var 0 r40 r34 $32 = r38
689 trace_scope 0 r40 r34 -1
690 trace_exit 0 r40 r34 F5
691 r38 = bit_and r40 r38
692 trace_enter 0 r38 r34 F6
693 trace_scope 0 r38 r34 1
694 trace_line 0 r38 r34 L59
695 trace_line 0 r38 r34 L60
696 trace_line 0 r38 r34 L62
697 trace_var 0 r38 r34 $39 = r22
698 trace_var 0 r38 r34 $40 = r22
699 trace_var 0 r38 r34 $41 = r22
700 trace_var 0 r38 r34 $42 = r22
701 trace_line 0 r38 r34 L63
702 trace_scope 0 r38 r34 1
703 trace_var 0 r38 r34 $43 = r15
704 trace_scope 0 r38 r34 1
705 trace_line 0 r38 r34 L64
706 r40 = select r38 r15 r22
707 trace_var 0 r38 r34 $42 = r40
708 trace_scope 0 r38 r34 -1
709 trace_line 0 r38 r34 L63
710 trace_var 0 r38 r34 $43 = r16
711 trace_scope 0 r38 r34 1
712 trace_line 0 r38 r34 L64
713 r35 = select r38 r40 r22
714 trace_var 0 r38 r34 $41 = r35
715 r40 = select r38 r16 r40
716 trace_var 0 r38 r34 $42 = r40
717 trace_scope 0 r38 r34 -1
718 trace_line 0 r38 r34 L63
719 trace_var 0 r38 r34 $43 = r17
720 trace_scope 0 r38 r34 1
721 trace_line 0 r38 r34 L64
722 r36 = select r38 r35 r22
723 trace_var 0 r38 r34 $40 = r36
724 r35 = select r38 r40 r35
725 trace_var 0 r38 r34 $41 = r35
726 r40 = select r38 r17 r40
727 trace_var 0 r38 r34 $42 = r40
728 trace_scope 0 r38 r34 -1
729 trace_line 0 r38 r34 L63
730 trace_scope 0 r38 r34 -1
731 trace_line 0 r38 r34 L66
732 r36 = eq_f32 r36 r15
733 r35 = eq_f32 r35 r16
734 r40 = eq_f32 r40 r17
735 r35 = bit_and r36 r35
736 r35 = bit_and r40 r35
737 r35 = bit_and r38 r35
738 trace_var 0 r38 r34 $38 = r35
739 trace_scope 0 r38 r34 -1
740 trace_exit 0 r38 r34 F6
741 r35 = bit_and r38 r35
742 trace_enter 0 r35 r34 F7
743 trace_scope 0 r35 r34 1
744 trace_line 0 r35 r34 L71
745 trace_line 0 r35 r34 L72
746 trace_line 0 r35 r34 L74
747 trace_var 0 r35 r34 $45 = r22
748 trace_var 0 r35 r34 $46 = r22
749 trace_var 0 r35 r34 $47 = r22
750 trace_var 0 r35 r34 $48 = r22
751 trace_line 0 r35 r34 L75
752 trace_scope 0 r35 r34 1
753 trace_var 0 r35 r34 $49 = r17
754 trace_scope 0 r35 r34 1
755 trace_line 0 r35 r34 L76
756 r38 = select r35 r17 r22
757 trace_var 0 r35 r34 $48 = r38
758 trace_scope 0 r35 r34 -1
759 trace_line 0 r35 r34 L75
760 trace_var 0 r35 r34 $49 = r16
761 trace_scope 0 r35 r34 1
762 trace_line 0 r35 r34 L76
763 r40 = select r35 r38 r22
764 trace_var 0 r35 r34 $47 = r40
765 r38 = select r35 r16 r38
766 trace_var 0 r35 r34 $48 = r38
767 trace_scope 0 r35 r34 -1
768 trace_line 0 r35 r34 L75
769 trace_var 0 r35 r34 $49 = r15
770 trace_scope 0 r35 r34 1
771 trace_line 0 r35 r34 L76
772 r36 = select r35 r40 r22
773 trace_var 0 r35 r34 $46 = r36
774 r40 = select r35 r38 r40
775 trace_var 0 r35 r34 $47 = r40
776 r38 = select r35 r15 r38
777 trace_var 0 r35 r34 $48 = r38
778 trace_scope 0 r35 r34 -1
779 trace_line 0 r35 r34 L75
780 trace_scope 0 r35 r34 -1
781 trace_line 0 r35 r34 L78
782 r36 = eq_f32 r36 r17
783 r40 = eq_f32 r40 r16
784 r38 = eq_f32 r38 r15
785 r40 = bit_and r36 r40
786 r40 = bit_and r38 r40
787 r40 = bit_and r35 r40
788 trace_var 0 r35 r34 $44 = r40
789 trace_scope 0 r35 r34 -1
790 trace_exit 0 r35 r34 F7
791 r40 = bit_and r35 r40
792 trace_enter 0 r40 r34 F8
793 trace_scope 0 r40 r34 1
794 trace_line 0 r40 r34 L83
795 trace_line 0 r40 r34 L84
796 trace_line 0 r40 r34 L86
797 trace_var 0 r40 r34 $51 = r22
798 trace_var 0 r40 r34 $52 = r22
799 trace_var 0 r40 r34 $53 = r22
800 trace_var 0 r40 r34 $54 = r22
801 trace_line 0 r40 r34 L87
802 trace_scope 0 r40 r34 1
803 trace_var 0 r40 r34 $55 = r17
804 trace_scope 0 r40 r34 1
805 trace_line 0 r40 r34 L88
806 r35 = select r40 r17 r22
807 trace_var 0 r40 r34 $54 = r35
808 trace_scope 0 r40 r34 -1
809 trace_line 0 r40 r34 L87
810 trace_var 0 r40 r34 $55 = r16
811 trace_scope 0 r40 r34 1
812 trace_line 0 r40 r34 L88
813 r38 = select r40 r35 r22
814 trace_var 0 r40 r34 $53 = r38
815 r35 = select r40 r16 r35
816 trace_var 0 r40 r34 $54 = r35
817 trace_scope 0 r40 r34 -1
818 trace_line 0 r40 r34 L87
819 trace_var 0 r40 r34 $55 = r15
820 trace_scope 0 r40 r34 1
821 trace_line 0 r40 r34 L88
822 r36 = select r40 r38 r22
823 trace_var 0 r40 r34 $52 = r36
824 r38 = select r40 r35 r38
825 trace_var 0 r40 r34 $53 = r38
826 r35 = select r40 r15 r35
827 trace_var 0 r40 r34 $54 = r35
828 trace_scope 0 r40 r34 -1
829 trace_line 0 r40 r34 L87
830 trace_scope 0 r40 r34 -1
831 trace_line 0 r40 r34 L90
832 r36 = eq_f32 r36 r17
833 r38 = eq_f32 r38 r16
834 r35 = eq_f32 r35 r15
835 r38 = bit_and r36 r38
836 r38 = bit_and r35 r38
837 r38 = bit_and r40 r38
838 trace_var 0 r40 r34 $50 = r38
839 trace_scope 0 r40 r34 -1
840 trace_exit 0 r40 r34 F8
841 r38 = bit_and r40 r38
842 trace_enter 0 r38 r34 F9
843 trace_scope 0 r38 r34 1
844 trace_line 0 r38 r34 L106
845 trace_line 0 r38 r34 L108
846 trace_var 0 r38 r34 $57 = r22
847 trace_var 0 r38 r34 $58 = r22
848 trace_var 0 r38 r34 $59 = r22
849 trace_var 0 r38 r34 $60 = r22
850 trace_line 0 r38 r34 L109
851 trace_scope 0 r38 r34 1
852 trace_var 0 r38 r34 $61 = r15
853 trace_scope 0 r38 r34 1
854 trace_line 0 r38 r34 L110
855 r40 = select r38 r15 r22
856 trace_var 0 r38 r34 $60 = r40
857 trace_scope 0 r38 r34 -1
858 trace_line 0 r38 r34 L109
859 trace_scope 0 r38 r34 -1
860 trace_line 0 r38 r34 L112
861 r40 = eq_f32 r40 r15
862 r40 = bit_and r38 r40
863 trace_var 0 r38 r34 $56 = r40
864 trace_scope 0 r38 r34 -1
865 trace_exit 0 r38 r34 F9
866 r40 = bit_and r38 r40
867 trace_enter 0 r40 r34 F10
868 trace_scope 0 r40 r34 1
869 trace_line 0 r40 r34 L95
870 trace_line 0 r40 r34 L97
871 trace_var 0 r40 r34 $63 = r22
872 trace_var 0 r40 r34 $64 = r22
873 trace_var 0 r40 r34 $65 = r22
874 trace_var 0 r40 r34 $66 = r22
875 trace_line 0 r40 r34 L98
876 trace_scope 0 r40 r34 1
877 trace_var 0 r40 r34 $67 = r15
878 trace_scope 0 r40 r34 1
879 trace_line 0 r40 r34 L99
880 r38 = select r40 r15 r22
881 trace_var 0 r40 r34 $66 = r38
882 trace_scope 0 r40 r34 -1
883 trace_line 0 r40 r34 L98
884 trace_var 0 r40 r34 $67 = r16
885 trace_scope 0 r40 r34 1
886 trace_line 0 r40 r34 L99
887 r35 = select r40 r38 r22
888 trace_var 0 r40 r34 $65 = r35
889 r38 = select r40 r16 r38
890 trace_var 0 r40 r34 $66 = r38
891 trace_scope 0 r40 r34 -1
892 trace_line 0 r40 r34 L98
893 trace_var 0 r40 r34 $67 = r17
894 trace_scope 0 r40 r34 1
895 trace_line 0 r40 r34 L99
896 r36 = select r40 r35 r22
897 trace_var 0 r40 r34 $64 = r36
898 r35 = select r40 r38 r35
899 trace_var 0 r40 r34 $65 = r35
900 r38 = select r40 r17 r38
901 trace_var 0 r40 r34 $66 = r38
902 trace_scope 0 r40 r34 -1
903 trace_line 0 r40 r34 L98
904 trace_scope 0 r40 r34 -1
905 trace_line 0 r40 r34 L101
906 r36 = eq_f32 r36 r15
907 r35 = eq_f32 r35 r16
908 r38 = eq_f32 r38 r17
909 r35 = bit_and r36 r35
910 r35 = bit_and r38 r35
911 r35 = bit_and r40 r35
912 trace_var 0 r40 r34 $62 = r35
913 trace_scope 0 r40 r34 -1
914 trace_exit 0 r40 r34 F10
915 r35 = bit_and r40 r35
916 r40 = select r35 r5 r1
917 r38 = select r35 r6 r2
918 r36 = select r35 r7 r3
919 r35 = select r35 r8 r4
920 trace_var 0 r34 r34 $10 = r40
921 trace_var 0 r34 r34 $11 = r38
922 trace_var 0 r34 r34 $12 = r36
923 trace_var 0 r34 r34 $13 = r35
924 trace_scope 0 r34 r34 -1
925 trace_exit 0 r34 r34 F0
926 store32 ptr1 r40
927 store32 ptr2 r38
928 store32 ptr3 r36
929 store32 ptr4 r35