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