blob: af597ff5bff81c03aed4f7490697a7fe812cf7e6 [file] [log] [blame]
1. store_device_xy01 $40..43 = DeviceCoords.xy01
2. copy_constant $42 = 0x3F000000 (0.5)
3. copy_constant $43 = 0x3F000000 (0.5)
4. cmpeq_2_floats $40..41 = equal($40..41, $42..43)
5. bitwise_and_int $40 &= $41
6. store_src_rg pos = src.rg
7. init_lane_masks CondMask = LoopMask = RetMask = true
8. zero_slot_unmasked kZero = 0
9. trace_var TraceVar(kZero) when $40 is true
10. copy_constant kTen = 0x41200000 (10.0)
11. trace_var TraceVar(kTen) when $40 is true
12. trace_enter TraceEnter(half4 main(float2 pos)) when $40 is true
13. trace_var TraceVar(pos) when $40 is true
14. zero_slot_unmasked $10 = 0
15. copy_slot_unmasked $11 = $40
16. copy_slot_masked $10 = Mask($11)
17. trace_scope TraceScope(+1) when $10 is true
18. trace_line TraceLine(116) when $40 is true
19. copy_slot_unmasked $11 = pos(0)
20. copy_constant $12 = colorGreen(1)
21. max_float $11 = max($11, $12)
22. copy_constant $12 = colorGreen(3)
23. min_float $11 = min($11, $12)
24. copy_constant $12 = 0x40A00000 (5.0)
25. mul_float $11 *= $12
26. copy_slot_unmasked five = $11
27. trace_var TraceVar(five) when $40 is true
28. trace_line TraceLine(117) when $40 is true
29. store_condition_mask $55 = CondMask
30. store_condition_mask $66 = CondMask
31. store_condition_mask $44 = CondMask
32. store_condition_mask $98 = CondMask
33. store_condition_mask $77 = CondMask
34. store_condition_mask $33 = CondMask
35. store_condition_mask $88 = CondMask
36. store_condition_mask $23 = CondMask
37. store_condition_mask $0 = CondMask
38. branch_if_no_lanes_active branch_if_no_lanes_active +66 (label 10 at #104)
39. trace_enter TraceEnter(float return_loop(float five)) when $40 is true
40. copy_slot_unmasked five = five
41. trace_var TraceVar(five₁) when $40 is true
42. store_return_mask $1 = RetMask
43. zero_slot_unmasked $2 = 0
44. copy_slot_unmasked $3 = $40
45. copy_slot_masked $2 = Mask($3)
46. trace_scope TraceScope(+1) when $2 is true
47. zero_slot_unmasked $3 = 0
48. copy_slot_unmasked $4 = $40
49. copy_slot_masked $3 = Mask($4)
50. trace_scope TraceScope(+1) when $3 is true
51. trace_line TraceLine(8) when $40 is true
52. copy_slot_unmasked i = kZero
53. trace_var TraceVar(i) when $40 is true
54. store_loop_mask $4 = LoopMask
55. jump jump +30 (label 12 at #85)
56. label label 0x0000000D
57. zero_slot_unmasked $5 = 0
58. copy_slot_unmasked $6 = $40
59. copy_slot_masked $5 = Mask($6)
60. trace_scope TraceScope(+1) when $5 is true
61. trace_line TraceLine(9) when $40 is true
62. store_condition_mask $6 = CondMask
63. copy_slot_unmasked $7 = i
64. copy_slot_unmasked $8 = five
65. cmpeq_float $7 = equal($7, $8)
66. merge_condition_mask CondMask = $6 & $7
67. zero_slot_unmasked $8 = 0
68. copy_slot_unmasked $9 = $40
69. copy_slot_masked $8 = Mask($9)
70. trace_scope TraceScope(+1) when $8 is true
71. trace_line TraceLine(9) when $40 is true
72. copy_slot_unmasked $9 = i
73. copy_slot_masked [return_loop].result = Mask($9)
74. trace_var TraceVar([return_loop].result) when $40 is true
75. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
76. trace_scope TraceScope(-1) when $8 is true
77. load_condition_mask CondMask = $6
78. trace_scope TraceScope(-1) when $5 is true
79. trace_line TraceLine(8) when $40 is true
80. copy_slot_unmasked $5 = i
81. copy_constant $6 = 0x3F800000 (1.0)
82. add_float $5 += $6
83. copy_slot_masked i = Mask($5)
84. trace_var TraceVar(i) when $40 is true
85. label label 0x0000000C
86. copy_slot_unmasked $5 = i
87. copy_constant $6 = 0x41200000 (10.0)
88. cmplt_float $5 = lessThan($5, $6)
89. merge_loop_mask LoopMask &= $5
90. stack_rewind
91. branch_if_any_lanes_active branch_if_any_lanes_active -35 (label 13 at #56)
92. label label 0x0000000B
93. load_loop_mask LoopMask = $4
94. trace_scope TraceScope(-1) when $3 is true
95. trace_line TraceLine(11) when $40 is true
96. zero_slot_unmasked $3 = 0
97. copy_slot_masked [return_loop].result = Mask($3)
98. trace_var TraceVar([return_loop].result) when $40 is true
99. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
100. trace_scope TraceScope(-1) when $2 is true
101. load_return_mask RetMask = $1
102. trace_exit TraceExit(float return_loop(float five)) when $40 is true
103. copy_slot_unmasked $1 = [return_loop].result
104. label label 0x0000000A
105. copy_constant $2 = 0x40A00000 (5.0)
106. cmpeq_float $1 = equal($1, $2)
107. zero_slot_unmasked $24 = 0
108. merge_condition_mask CondMask = $0 & $1
109. branch_if_no_lanes_active branch_if_no_lanes_active +76 (label 9 at #185)
110. trace_enter TraceEnter(float continue_loop(float five)) when $40 is true
111. copy_slot_unmasked five = five
112. trace_var TraceVar(five₂) when $40 is true
113. zero_slot_unmasked $25 = 0
114. copy_slot_unmasked $26 = $40
115. copy_slot_masked $25 = Mask($26)
116. trace_scope TraceScope(+1) when $25 is true
117. trace_line TraceLine(17) when $40 is true
118. zero_slot_unmasked sum = 0
119. trace_var TraceVar(sum) when $40 is true
120. zero_slot_unmasked $26 = 0
121. copy_slot_unmasked $27 = $40
122. copy_slot_masked $26 = Mask($27)
123. trace_scope TraceScope(+1) when $26 is true
124. trace_line TraceLine(18) when $40 is true
125. zero_slot_unmasked i = 0
126. trace_var TraceVar(i₁) when $40 is true
127. store_loop_mask $27 = LoopMask
128. jump jump +36 (label 16 at #164)
129. label label 0x00000011
130. zero_slot_unmasked $109 = 0
131. zero_slot_unmasked $28 = 0
132. copy_slot_unmasked $29 = $40
133. copy_slot_masked $28 = Mask($29)
134. trace_scope TraceScope(+1) when $28 is true
135. trace_line TraceLine(19) when $40 is true
136. store_condition_mask $29 = CondMask
137. copy_slot_unmasked $30 = i
138. copy_slot_unmasked $31 = five
139. cmplt_float $30 = lessThan($30, $31)
140. merge_condition_mask CondMask = $29 & $30
141. zero_slot_unmasked $31 = 0
142. copy_slot_unmasked $32 = $40
143. copy_slot_masked $31 = Mask($32)
144. trace_scope TraceScope(+1) when $31 is true
145. trace_line TraceLine(19) when $40 is true
146. copy_constant $110 = 0xFFFFFFFF
147. copy_slot_masked $109 = Mask($110)
148. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask)
149. trace_scope TraceScope(-1) when $31 is true
150. load_condition_mask CondMask = $29
151. trace_line TraceLine(20) when $40 is true
152. copy_2_slots_unmasked $29..30 = sum, i
153. add_float $29 += $30
154. copy_slot_masked sum = Mask($29)
155. trace_var TraceVar(sum) when $40 is true
156. trace_scope TraceScope(-1) when $28 is true
157. reenable_loop_mask LoopMask |= $109
158. trace_line TraceLine(18) when $40 is true
159. copy_slot_unmasked $28 = i
160. copy_constant $29 = 0x3F800000 (1.0)
161. add_float $28 += $29
162. copy_slot_masked i = Mask($28)
163. trace_var TraceVar(i₁) when $40 is true
164. label label 0x00000010
165. copy_slot_unmasked $28 = i
166. copy_slot_unmasked $29 = kTen
167. cmplt_float $28 = lessThan($28, $29)
168. merge_loop_mask LoopMask &= $28
169. stack_rewind
170. branch_if_any_lanes_active branch_if_any_lanes_active -41 (label 17 at #129)
171. label label 0x0000000F
172. load_loop_mask LoopMask = $27
173. trace_scope TraceScope(-1) when $26 is true
174. trace_line TraceLine(22) when $40 is true
175. copy_slot_unmasked $26 = sum
176. copy_slot_masked [continue_loop].result = Mask($26)
177. trace_var TraceVar([continue_loop].result) when $40 is true
178. trace_scope TraceScope(-1) when $25 is true
179. trace_exit TraceExit(float continue_loop(float five)) when $40 is true
180. copy_slot_unmasked $25 = [continue_loop].result
181. label label 0x0000000E
182. copy_constant $26 = 0x420C0000 (35.0)
183. cmpeq_float $25 = equal($25, $26)
184. copy_slot_masked $24 = Mask($25)
185. label label 0x00000009
186. load_condition_mask CondMask = $0
187. zero_slot_unmasked $89 = 0
188. merge_condition_mask CondMask = $23 & $24
189. branch_if_no_lanes_active branch_if_no_lanes_active +77 (label 8 at #266)
190. trace_enter TraceEnter(float break_loop(float five)) when $40 is true
191. copy_slot_unmasked five = five
192. trace_var TraceVar(five₃) when $40 is true
193. zero_slot_unmasked $90 = 0
194. copy_slot_unmasked $91 = $40
195. copy_slot_masked $90 = Mask($91)
196. trace_scope TraceScope(+1) when $90 is true
197. trace_line TraceLine(27) when $40 is true
198. zero_slot_unmasked sum = 0
199. trace_var TraceVar(sum₁) when $40 is true
200. trace_line TraceLine(28) when $40 is true
201. copy_constant kOne = 0x3F800000 (1.0)
202. trace_var TraceVar(kOne) when $40 is true
203. zero_slot_unmasked $91 = 0
204. copy_slot_unmasked $92 = $40
205. copy_slot_masked $91 = Mask($92)
206. trace_scope TraceScope(+1) when $91 is true
207. trace_line TraceLine(29) when $40 is true
208. zero_slot_unmasked i = 0
209. trace_var TraceVar(i₂) when $40 is true
210. store_loop_mask $92 = LoopMask
211. jump jump +34 (label 20 at #245)
212. label label 0x00000015
213. zero_slot_unmasked $93 = 0
214. copy_slot_unmasked $94 = $40
215. copy_slot_masked $93 = Mask($94)
216. trace_scope TraceScope(+1) when $93 is true
217. trace_line TraceLine(30) when $40 is true
218. store_condition_mask $94 = CondMask
219. copy_slot_unmasked $95 = five
220. copy_slot_unmasked $96 = i
221. cmplt_float $95 = lessThan($95, $96)
222. merge_condition_mask CondMask = $94 & $95
223. zero_slot_unmasked $96 = 0
224. copy_slot_unmasked $97 = $40
225. copy_slot_masked $96 = Mask($97)
226. trace_scope TraceScope(+1) when $96 is true
227. trace_line TraceLine(30) when $40 is true
228. branch_if_all_lanes_active branch_if_all_lanes_active +24 (label 19 at #252)
229. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask)
230. trace_scope TraceScope(-1) when $96 is true
231. load_condition_mask CondMask = $94
232. trace_line TraceLine(31) when $40 is true
233. copy_slot_unmasked $94 = sum
234. copy_slot_unmasked $95 = i
235. add_float $94 += $95
236. copy_slot_masked sum = Mask($94)
237. trace_var TraceVar(sum₁) when $40 is true
238. trace_scope TraceScope(-1) when $93 is true
239. trace_line TraceLine(29) when $40 is true
240. copy_slot_unmasked $93 = i
241. copy_slot_unmasked $94 = kOne
242. add_float $93 += $94
243. copy_slot_masked i = Mask($93)
244. trace_var TraceVar(i₂) when $40 is true
245. label label 0x00000014
246. copy_slot_unmasked $93 = i
247. copy_constant $94 = 0x41200000 (10.0)
248. cmplt_float $93 = lessThan($93, $94)
249. merge_loop_mask LoopMask &= $93
250. stack_rewind
251. branch_if_any_lanes_active branch_if_any_lanes_active -39 (label 21 at #212)
252. label label 0x00000013
253. load_loop_mask LoopMask = $92
254. trace_scope TraceScope(-1) when $91 is true
255. trace_line TraceLine(33) when $40 is true
256. copy_slot_unmasked $91 = sum
257. copy_slot_masked [break_loop].result = Mask($91)
258. trace_var TraceVar([break_loop].result) when $40 is true
259. trace_scope TraceScope(-1) when $90 is true
260. trace_exit TraceExit(float break_loop(float five)) when $40 is true
261. copy_slot_unmasked $90 = [break_loop].result
262. label label 0x00000012
263. copy_constant $91 = 0x41700000 (15.0)
264. cmpeq_float $90 = equal($90, $91)
265. copy_slot_masked $89 = Mask($90)
266. label label 0x00000008
267. load_condition_mask CondMask = $23
268. zero_slot_unmasked $34 = 0
269. merge_condition_mask CondMask = $88 & $89
270. branch_if_no_lanes_active branch_if_no_lanes_active +55 (label 7 at #325)
271. trace_enter TraceEnter(float float_loop()) when $40 is true
272. zero_slot_unmasked $35 = 0
273. copy_slot_unmasked $36 = $40
274. copy_slot_masked $35 = Mask($36)
275. trace_scope TraceScope(+1) when $35 is true
276. trace_line TraceLine(38) when $40 is true
277. zero_slot_unmasked sum = 0
278. trace_var TraceVar(sum₂) when $40 is true
279. zero_slot_unmasked $36 = 0
280. copy_slot_unmasked $37 = $40
281. copy_slot_masked $36 = Mask($37)
282. trace_scope TraceScope(+1) when $36 is true
283. branch_if_no_lanes_active branch_if_no_lanes_active +26 (label 23 at #309)
284. trace_line TraceLine(39) when $40 is true
285. copy_constant i = 0x3DFBE76D (0.123)
286. trace_var TraceVar(i₃) when $40 is true
287. label label 0x00000018
288. zero_slot_unmasked $37 = 0
289. copy_slot_unmasked $38 = $40
290. copy_slot_masked $37 = Mask($38)
291. trace_scope TraceScope(+1) when $37 is true
292. trace_line TraceLine(40) when $40 is true
293. copy_2_slots_unmasked $38..39 = sum₂, i
294. add_float $38 += $39
295. copy_slot_masked sum = Mask($38)
296. trace_var TraceVar(sum₂) when $40 is true
297. trace_scope TraceScope(-1) when $37 is true
298. trace_line TraceLine(39) when $40 is true
299. copy_slot_unmasked $37 = i
300. copy_constant $38 = 0x3DE353F8 (0.111)
301. add_float $37 += $38
302. copy_slot_masked i = Mask($37)
303. trace_var TraceVar(i₃) when $40 is true
304. copy_slot_unmasked $37 = i
305. copy_constant $38 = 0x3F19999A (0.6)
306. cmplt_float $37 = lessThan($37, $38)
307. stack_rewind
308. branch_if_no_active_lanes_eq branch -21 (label 24 at #287) if no lanes of $37 == 0x00000000 (0.0)
309. label label 0x00000017
310. trace_scope TraceScope(-1) when $36 is true
311. trace_line TraceLine(42) when $40 is true
312. copy_slot_unmasked $36 = sum
313. copy_constant $37 = 0x3FDCCCCD (1.725)
314. sub_float $36 -= $37
315. copy_slot_masked [float_loop].result = Mask($36)
316. trace_var TraceVar([float_loop].result) when $40 is true
317. trace_scope TraceScope(-1) when $35 is true
318. trace_exit TraceExit(float float_loop()) when $40 is true
319. copy_slot_unmasked $35 = [float_loop].result
320. label label 0x00000016
321. abs_float $35 = abs($35)
322. copy_constant $36 = 0x3CCCCCCD (0.025)
323. cmplt_float $35 = lessThan($35, $36)
324. copy_slot_masked $34 = Mask($35)
325. label label 0x00000007
326. load_condition_mask CondMask = $88
327. zero_slot_unmasked $78 = 0
328. merge_condition_mask CondMask = $33 & $34
329. branch_if_no_lanes_active branch_if_no_lanes_active +60 (label 6 at #389)
330. trace_enter TraceEnter(bool loop_operator_le()) when $40 is true
331. zero_slot_unmasked $79 = 0
332. copy_slot_unmasked $80 = $40
333. copy_slot_masked $79 = Mask($80)
334. trace_scope TraceScope(+1) when $79 is true
335. trace_line TraceLine(47) when $40 is true
336. trace_line TraceLine(48) when $40 is true
337. trace_line TraceLine(50) when $40 is true
338. copy_constant $80 = 0x41100000 (9.0)
339. swizzle_4 $80..83 = ($80..83).xxxx
340. copy_4_slots_unmasked result = $80..83
341. trace_var TraceVar(result) when $40 is true
342. zero_slot_unmasked $80 = 0
343. copy_slot_unmasked $81 = $40
344. copy_slot_masked $80 = Mask($81)
345. trace_scope TraceScope(+1) when $80 is true
346. branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 26 at #371)
347. trace_line TraceLine(51) when $40 is true
348. copy_constant i = 0x3F800000 (1.0)
349. trace_var TraceVar(i₄) when $40 is true
350. label label 0x0000001B
351. zero_slot_unmasked $81 = 0
352. copy_slot_unmasked $82 = $40
353. copy_slot_masked $81 = Mask($82)
354. trace_scope TraceScope(+1) when $81 is true
355. trace_line TraceLine(52) when $40 is true
356. copy_4_slots_unmasked $82..85 = result(1..3), i
357. copy_4_slots_masked result = Mask($82..85)
358. trace_var TraceVar(result) when $40 is true
359. trace_scope TraceScope(-1) when $81 is true
360. trace_line TraceLine(51) when $40 is true
361. copy_slot_unmasked $81 = i
362. copy_constant $82 = 0x3F800000 (1.0)
363. add_float $81 += $82
364. copy_slot_masked i = Mask($81)
365. trace_var TraceVar(i₄) when $40 is true
366. copy_slot_unmasked $81 = i
367. copy_constant $82 = 0x40400000 (3.0)
368. cmple_float $81 = lessThanEqual($81, $82)
369. stack_rewind
370. branch_if_no_active_lanes_eq branch -20 (label 27 at #350) if no lanes of $81 == 0x00000000 (0.0)
371. label label 0x0000001A
372. trace_scope TraceScope(-1) when $80 is true
373. trace_line TraceLine(54) when $40 is true
374. copy_4_slots_unmasked $80..83 = result
375. copy_constant $84 = 0x41100000 (9.0)
376. copy_constant $85 = 0x3F800000 (1.0)
377. copy_constant $86 = 0x40000000 (2.0)
378. copy_constant $87 = 0x40400000 (3.0)
379. cmpeq_4_floats $80..83 = equal($80..83, $84..87)
380. bitwise_and_2_ints $80..81 &= $82..83
381. bitwise_and_int $80 &= $81
382. copy_slot_masked [loop_operator_le].result = Mask($80)
383. trace_var TraceVar([loop_operator_le].result) when $40 is true
384. trace_scope TraceScope(-1) when $79 is true
385. trace_exit TraceExit(bool loop_operator_le()) when $40 is true
386. copy_slot_unmasked $79 = [loop_operator_le].result
387. label label 0x00000019
388. copy_slot_masked $78 = Mask($79)
389. label label 0x00000006
390. load_condition_mask CondMask = $33
391. zero_slot_unmasked $99 = 0
392. merge_condition_mask CondMask = $77 & $78
393. branch_if_no_lanes_active branch_if_no_lanes_active +60 (label 5 at #453)
394. trace_enter TraceEnter(bool loop_operator_lt()) when $40 is true
395. zero_slot_unmasked $100 = 0
396. copy_slot_unmasked $101 = $40
397. copy_slot_masked $100 = Mask($101)
398. trace_scope TraceScope(+1) when $100 is true
399. trace_line TraceLine(59) when $40 is true
400. trace_line TraceLine(60) when $40 is true
401. trace_line TraceLine(62) when $40 is true
402. copy_constant $101 = 0x41100000 (9.0)
403. swizzle_4 $101..104 = ($101..104).xxxx
404. copy_4_slots_unmasked result = $101..104
405. trace_var TraceVar(result₁) when $40 is true
406. zero_slot_unmasked $101 = 0
407. copy_slot_unmasked $102 = $40
408. copy_slot_masked $101 = Mask($102)
409. trace_scope TraceScope(+1) when $101 is true
410. branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 29 at #435)
411. trace_line TraceLine(63) when $40 is true
412. copy_constant i = 0x3F800000 (1.0)
413. trace_var TraceVar(i₅) when $40 is true
414. label label 0x0000001E
415. zero_slot_unmasked $102 = 0
416. copy_slot_unmasked $103 = $40
417. copy_slot_masked $102 = Mask($103)
418. trace_scope TraceScope(+1) when $102 is true
419. trace_line TraceLine(64) when $40 is true
420. copy_4_slots_unmasked $103..106 = result₁(1..3), i
421. copy_4_slots_masked result = Mask($103..106)
422. trace_var TraceVar(result₁) when $40 is true
423. trace_scope TraceScope(-1) when $102 is true
424. trace_line TraceLine(63) when $40 is true
425. copy_slot_unmasked $102 = i
426. copy_constant $103 = 0x3F800000 (1.0)
427. add_float $102 += $103
428. copy_slot_masked i = Mask($102)
429. trace_var TraceVar(i₅) when $40 is true
430. copy_slot_unmasked $102 = i
431. copy_constant $103 = 0x40800000 (4.0)
432. cmplt_float $102 = lessThan($102, $103)
433. stack_rewind
434. branch_if_no_active_lanes_eq branch -20 (label 30 at #414) if no lanes of $102 == 0x00000000 (0.0)
435. label label 0x0000001D
436. trace_scope TraceScope(-1) when $101 is true
437. trace_line TraceLine(66) when $40 is true
438. copy_4_slots_unmasked $101..104 = result
439. copy_constant $105 = 0x41100000 (9.0)
440. copy_constant $106 = 0x3F800000 (1.0)
441. copy_constant $107 = 0x40000000 (2.0)
442. copy_constant $108 = 0x40400000 (3.0)
443. cmpeq_4_floats $101..104 = equal($101..104, $105..108)
444. bitwise_and_2_ints $101..102 &= $103..104
445. bitwise_and_int $101 &= $102
446. copy_slot_masked [loop_operator_lt].result = Mask($101)
447. trace_var TraceVar([loop_operator_lt].result) when $40 is true
448. trace_scope TraceScope(-1) when $100 is true
449. trace_exit TraceExit(bool loop_operator_lt()) when $40 is true
450. copy_slot_unmasked $100 = [loop_operator_lt].result
451. label label 0x0000001C
452. copy_slot_masked $99 = Mask($100)
453. label label 0x00000005
454. load_condition_mask CondMask = $77
455. zero_slot_unmasked $45 = 0
456. merge_condition_mask CondMask = $98 & $99
457. branch_if_no_lanes_active branch_if_no_lanes_active +60 (label 4 at #517)
458. trace_enter TraceEnter(bool loop_operator_ge()) when $40 is true
459. zero_slot_unmasked $46 = 0
460. copy_slot_unmasked $47 = $40
461. copy_slot_masked $46 = Mask($47)
462. trace_scope TraceScope(+1) when $46 is true
463. trace_line TraceLine(71) when $40 is true
464. trace_line TraceLine(72) when $40 is true
465. trace_line TraceLine(74) when $40 is true
466. copy_constant $47 = 0x41100000 (9.0)
467. swizzle_4 $47..50 = ($47..50).xxxx
468. copy_4_slots_unmasked result = $47..50
469. trace_var TraceVar(result₂) when $40 is true
470. zero_slot_unmasked $47 = 0
471. copy_slot_unmasked $48 = $40
472. copy_slot_masked $47 = Mask($48)
473. trace_scope TraceScope(+1) when $47 is true
474. branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 32 at #499)
475. trace_line TraceLine(75) when $40 is true
476. copy_constant i = 0x40400000 (3.0)
477. trace_var TraceVar(i₆) when $40 is true
478. label label 0x00000021
479. zero_slot_unmasked $48 = 0
480. copy_slot_unmasked $49 = $40
481. copy_slot_masked $48 = Mask($49)
482. trace_scope TraceScope(+1) when $48 is true
483. trace_line TraceLine(76) when $40 is true
484. copy_4_slots_unmasked $49..52 = result₂(1..3), i
485. copy_4_slots_masked result = Mask($49..52)
486. trace_var TraceVar(result₂) when $40 is true
487. trace_scope TraceScope(-1) when $48 is true
488. trace_line TraceLine(75) when $40 is true
489. copy_slot_unmasked $48 = i
490. copy_constant $49 = 0x3F800000 (1.0)
491. sub_float $48 -= $49
492. copy_slot_masked i = Mask($48)
493. trace_var TraceVar(i₆) when $40 is true
494. copy_constant $48 = 0x3F800000 (1.0)
495. copy_slot_unmasked $49 = i
496. cmple_float $48 = lessThanEqual($48, $49)
497. stack_rewind
498. branch_if_no_active_lanes_eq branch -20 (label 33 at #478) if no lanes of $48 == 0x00000000 (0.0)
499. label label 0x00000020
500. trace_scope TraceScope(-1) when $47 is true
501. trace_line TraceLine(78) when $40 is true
502. copy_4_slots_unmasked $47..50 = result
503. copy_constant $51 = 0x41100000 (9.0)
504. copy_constant $52 = 0x40400000 (3.0)
505. copy_constant $53 = 0x40000000 (2.0)
506. copy_constant $54 = 0x3F800000 (1.0)
507. cmpeq_4_floats $47..50 = equal($47..50, $51..54)
508. bitwise_and_2_ints $47..48 &= $49..50
509. bitwise_and_int $47 &= $48
510. copy_slot_masked [loop_operator_ge].result = Mask($47)
511. trace_var TraceVar([loop_operator_ge].result) when $40 is true
512. trace_scope TraceScope(-1) when $46 is true
513. trace_exit TraceExit(bool loop_operator_ge()) when $40 is true
514. copy_slot_unmasked $46 = [loop_operator_ge].result
515. label label 0x0000001F
516. copy_slot_masked $45 = Mask($46)
517. label label 0x00000004
518. load_condition_mask CondMask = $98
519. zero_slot_unmasked $67 = 0
520. merge_condition_mask CondMask = $44 & $45
521. branch_if_no_lanes_active branch_if_no_lanes_active +60 (label 3 at #581)
522. trace_enter TraceEnter(bool loop_operator_gt()) when $40 is true
523. zero_slot_unmasked $68 = 0
524. copy_slot_unmasked $69 = $40
525. copy_slot_masked $68 = Mask($69)
526. trace_scope TraceScope(+1) when $68 is true
527. trace_line TraceLine(83) when $40 is true
528. trace_line TraceLine(84) when $40 is true
529. trace_line TraceLine(86) when $40 is true
530. copy_constant $69 = 0x41100000 (9.0)
531. swizzle_4 $69..72 = ($69..72).xxxx
532. copy_4_slots_unmasked result = $69..72
533. trace_var TraceVar(result₃) when $40 is true
534. zero_slot_unmasked $69 = 0
535. copy_slot_unmasked $70 = $40
536. copy_slot_masked $69 = Mask($70)
537. trace_scope TraceScope(+1) when $69 is true
538. branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 35 at #563)
539. trace_line TraceLine(87) when $40 is true
540. copy_constant i = 0x40400000 (3.0)
541. trace_var TraceVar(i₇) when $40 is true
542. label label 0x00000024
543. zero_slot_unmasked $70 = 0
544. copy_slot_unmasked $71 = $40
545. copy_slot_masked $70 = Mask($71)
546. trace_scope TraceScope(+1) when $70 is true
547. trace_line TraceLine(88) when $40 is true
548. copy_4_slots_unmasked $71..74 = result₃(1..3), i
549. copy_4_slots_masked result = Mask($71..74)
550. trace_var TraceVar(result₃) when $40 is true
551. trace_scope TraceScope(-1) when $70 is true
552. trace_line TraceLine(87) when $40 is true
553. copy_slot_unmasked $70 = i
554. copy_constant $71 = 0x3F800000 (1.0)
555. sub_float $70 -= $71
556. copy_slot_masked i = Mask($70)
557. trace_var TraceVar(i₇) when $40 is true
558. zero_slot_unmasked $70 = 0
559. copy_slot_unmasked $71 = i
560. cmplt_float $70 = lessThan($70, $71)
561. stack_rewind
562. branch_if_no_active_lanes_eq branch -20 (label 36 at #542) if no lanes of $70 == 0x00000000 (0.0)
563. label label 0x00000023
564. trace_scope TraceScope(-1) when $69 is true
565. trace_line TraceLine(90) when $40 is true
566. copy_4_slots_unmasked $69..72 = result
567. copy_constant $73 = 0x41100000 (9.0)
568. copy_constant $74 = 0x40400000 (3.0)
569. copy_constant $75 = 0x40000000 (2.0)
570. copy_constant $76 = 0x3F800000 (1.0)
571. cmpeq_4_floats $69..72 = equal($69..72, $73..76)
572. bitwise_and_2_ints $69..70 &= $71..72
573. bitwise_and_int $69 &= $70
574. copy_slot_masked [loop_operator_gt].result = Mask($69)
575. trace_var TraceVar([loop_operator_gt].result) when $40 is true
576. trace_scope TraceScope(-1) when $68 is true
577. trace_exit TraceExit(bool loop_operator_gt()) when $40 is true
578. copy_slot_unmasked $68 = [loop_operator_gt].result
579. label label 0x00000022
580. copy_slot_masked $67 = Mask($68)
581. label label 0x00000003
582. load_condition_mask CondMask = $44
583. zero_slot_unmasked $56 = 0
584. merge_condition_mask CondMask = $66 & $67
585. branch_if_no_lanes_active branch_if_no_lanes_active +49 (label 2 at #634)
586. trace_enter TraceEnter(bool loop_operator_eq()) when $40 is true
587. zero_slot_unmasked $57 = 0
588. copy_slot_unmasked $58 = $40
589. copy_slot_masked $57 = Mask($58)
590. trace_scope TraceScope(+1) when $57 is true
591. trace_line TraceLine(106) when $40 is true
592. trace_line TraceLine(108) when $40 is true
593. copy_constant $58 = 0x41100000 (9.0)
594. swizzle_4 $58..61 = ($58..61).xxxx
595. copy_4_slots_unmasked result = $58..61
596. trace_var TraceVar(result₄) when $40 is true
597. zero_slot_unmasked $58 = 0
598. copy_slot_unmasked $59 = $40
599. copy_slot_masked $58 = Mask($59)
600. trace_scope TraceScope(+1) when $58 is true
601. branch_if_no_lanes_active branch_if_no_lanes_active +15 (label 38 at #616)
602. trace_line TraceLine(109) when $40 is true
603. copy_constant i = 0x3F800000 (1.0)
604. trace_var TraceVar(i₈) when $40 is true
605. label label 0x00000027
606. zero_slot_unmasked $59 = 0
607. copy_slot_unmasked $60 = $40
608. copy_slot_masked $59 = Mask($60)
609. trace_scope TraceScope(+1) when $59 is true
610. trace_line TraceLine(110) when $40 is true
611. copy_4_slots_unmasked $60..63 = result₄(1..3), i
612. copy_4_slots_masked result = Mask($60..63)
613. trace_var TraceVar(result₄) when $40 is true
614. trace_scope TraceScope(-1) when $59 is true
615. trace_line TraceLine(109) when $40 is true
616. label label 0x00000026
617. trace_scope TraceScope(-1) when $58 is true
618. trace_line TraceLine(112) when $40 is true
619. copy_4_slots_unmasked $58..61 = result
620. copy_constant $62 = 0x41100000 (9.0)
621. copy_constant $63 = 0x41100000 (9.0)
622. copy_constant $64 = 0x41100000 (9.0)
623. copy_constant $65 = 0x3F800000 (1.0)
624. cmpeq_4_floats $58..61 = equal($58..61, $62..65)
625. bitwise_and_2_ints $58..59 &= $60..61
626. bitwise_and_int $58 &= $59
627. copy_slot_masked [loop_operator_eq].result = Mask($58)
628. trace_var TraceVar([loop_operator_eq].result) when $40 is true
629. trace_scope TraceScope(-1) when $57 is true
630. trace_exit TraceExit(bool loop_operator_eq()) when $40 is true
631. copy_slot_unmasked $57 = [loop_operator_eq].result
632. label label 0x00000025
633. copy_slot_masked $56 = Mask($57)
634. label label 0x00000002
635. load_condition_mask CondMask = $66
636. zero_slot_unmasked $11 = 0
637. merge_condition_mask CondMask = $55 & $56
638. branch_if_no_lanes_active branch_if_no_lanes_active +59 (label 1 at #697)
639. trace_enter TraceEnter(bool loop_operator_ne()) when $40 is true
640. zero_slot_unmasked $12 = 0
641. copy_slot_unmasked $13 = $40
642. copy_slot_masked $12 = Mask($13)
643. trace_scope TraceScope(+1) when $12 is true
644. trace_line TraceLine(95) when $40 is true
645. trace_line TraceLine(97) when $40 is true
646. copy_constant $13 = 0x41100000 (9.0)
647. swizzle_4 $13..16 = ($13..16).xxxx
648. copy_4_slots_unmasked result = $13..16
649. trace_var TraceVar(result₅) when $40 is true
650. zero_slot_unmasked $13 = 0
651. copy_slot_unmasked $14 = $40
652. copy_slot_masked $13 = Mask($14)
653. trace_scope TraceScope(+1) when $13 is true
654. branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 41 at #679)
655. trace_line TraceLine(98) when $40 is true
656. copy_constant i = 0x3F800000 (1.0)
657. trace_var TraceVar(i₉) when $40 is true
658. label label 0x0000002A
659. zero_slot_unmasked $14 = 0
660. copy_slot_unmasked $15 = $40
661. copy_slot_masked $14 = Mask($15)
662. trace_scope TraceScope(+1) when $14 is true
663. trace_line TraceLine(99) when $40 is true
664. copy_4_slots_unmasked $15..18 = result₅(1..3), i
665. copy_4_slots_masked result = Mask($15..18)
666. trace_var TraceVar(result₅) when $40 is true
667. trace_scope TraceScope(-1) when $14 is true
668. trace_line TraceLine(98) when $40 is true
669. copy_slot_unmasked $14 = i
670. copy_constant $15 = 0x3F800000 (1.0)
671. add_float $14 += $15
672. copy_slot_masked i = Mask($14)
673. trace_var TraceVar(i₉) when $40 is true
674. copy_slot_unmasked $14 = i
675. copy_constant $15 = 0x40800000 (4.0)
676. cmpne_float $14 = notEqual($14, $15)
677. stack_rewind
678. branch_if_no_active_lanes_eq branch -20 (label 42 at #658) if no lanes of $14 == 0x00000000 (0.0)
679. label label 0x00000029
680. trace_scope TraceScope(-1) when $13 is true
681. trace_line TraceLine(101) when $40 is true
682. copy_4_slots_unmasked $13..16 = result
683. copy_constant $17 = 0x41100000 (9.0)
684. copy_constant $18 = 0x3F800000 (1.0)
685. copy_constant $19 = 0x40000000 (2.0)
686. copy_constant $20 = 0x40400000 (3.0)
687. cmpeq_4_floats $13..16 = equal($13..16, $17..20)
688. bitwise_and_2_ints $13..14 &= $15..16
689. bitwise_and_int $13 &= $14
690. copy_slot_masked [loop_operator_ne].result = Mask($13)
691. trace_var TraceVar([loop_operator_ne].result) when $40 is true
692. trace_scope TraceScope(-1) when $12 is true
693. trace_exit TraceExit(bool loop_operator_ne()) when $40 is true
694. copy_slot_unmasked $12 = [loop_operator_ne].result
695. label label 0x00000028
696. copy_slot_masked $11 = Mask($12)
697. label label 0x00000001
698. load_condition_mask CondMask = $55
699. swizzle_4 $11..14 = ($11..14).xxxx
700. copy_4_constants $15..18 = colorRed
701. copy_4_constants $19..22 = colorGreen
702. mix_4_ints $11..14 = mix($15..18, $19..22, $11..14)
703. copy_4_slots_unmasked [main].result = $11..14
704. trace_var TraceVar([main].result) when $40 is true
705. trace_scope TraceScope(-1) when $10 is true
706. trace_exit TraceExit(half4 main(float2 pos)) when $40 is true
707. load_src src.rgba = [main].result