1. store_src_rg coords = src.rg | |
2. init_lane_masks CondMask = LoopMask = RetMask = true | |
3. store_condition_mask $26 = CondMask | |
4. store_condition_mask $40 = CondMask | |
5. store_condition_mask $49 = CondMask | |
6. store_condition_mask $34 = CondMask | |
7. store_condition_mask $69 = CondMask | |
8. store_condition_mask $58 = CondMask | |
9. store_condition_mask $22 = CondMask | |
10. store_condition_mask $65 = CondMask | |
11. store_condition_mask $17 = CondMask | |
12. store_condition_mask $0 = CondMask | |
13. store_condition_mask $76 = CondMask | |
14. branch_if_no_lanes_active branch_if_no_lanes_active +21 (label 12 at #35) | |
15. store_return_mask $77 = RetMask | |
16. store_loop_mask $78 = LoopMask | |
17. jump jump +5 (label 14 at #22) | |
18. label label 0x0000000F | |
19. zero_slot_unmasked $79 = 0 | |
20. copy_slot_masked [inside_while_loop].result = Mask($79) | |
21. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
22. label label 0x0000000E | |
23. copy_constant $79 = unknownInput | |
24. copy_constant $80 = 0x42F60000 (123.0) | |
25. cmpeq_float $79 = equal($79, $80) | |
26. merge_loop_mask LoopMask &= $79 | |
27. stack_rewind | |
28. branch_if_any_lanes_active branch_if_any_lanes_active -10 (label 15 at #18) | |
29. label label 0x0000000D | |
30. load_loop_mask LoopMask = $78 | |
31. copy_constant $78 = 0xFFFFFFFF | |
32. copy_slot_masked [inside_while_loop].result = Mask($78) | |
33. load_return_mask RetMask = $77 | |
34. copy_slot_unmasked $77 = [inside_while_loop].result | |
35. label label 0x0000000C | |
36. zero_slot_unmasked $1 = 0 | |
37. merge_condition_mask CondMask = $76 & $77 | |
38. branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 11 at #55) | |
39. store_return_mask $2 = RetMask | |
40. store_loop_mask $3 = LoopMask | |
41. label label 0x00000012 | |
42. copy_constant $4 = 0xFFFFFFFF | |
43. copy_slot_masked [inside_infinite_do_loop].result = Mask($4) | |
44. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
45. copy_constant $4 = 0xFFFFFFFF | |
46. merge_loop_mask LoopMask &= $4 | |
47. stack_rewind | |
48. branch_if_any_lanes_active branch_if_any_lanes_active -7 (label 18 at #41) | |
49. label label 0x00000011 | |
50. load_loop_mask LoopMask = $3 | |
51. load_return_mask RetMask = $2 | |
52. copy_slot_unmasked $2 = [inside_infinite_do_loop].result | |
53. label label 0x00000010 | |
54. copy_slot_masked $1 = Mask($2) | |
55. label label 0x0000000B | |
56. load_condition_mask CondMask = $76 | |
57. zero_slot_unmasked $18 = 0 | |
58. merge_condition_mask CondMask = $0 & $1 | |
59. branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 10 at #78) | |
60. store_return_mask $19 = RetMask | |
61. store_loop_mask $20 = LoopMask | |
62. jump jump +5 (label 21 at #67) | |
63. label label 0x00000016 | |
64. copy_constant $21 = 0xFFFFFFFF | |
65. copy_slot_masked [inside_infinite_while_loop].result = Mask($21) | |
66. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
67. label label 0x00000015 | |
68. copy_constant $21 = 0xFFFFFFFF | |
69. merge_loop_mask LoopMask &= $21 | |
70. stack_rewind | |
71. branch_if_any_lanes_active branch_if_any_lanes_active -8 (label 22 at #63) | |
72. label label 0x00000014 | |
73. load_loop_mask LoopMask = $20 | |
74. load_return_mask RetMask = $19 | |
75. copy_slot_unmasked $19 = [inside_infinite_while_loop].result | |
76. label label 0x00000013 | |
77. copy_slot_masked $18 = Mask($19) | |
78. label label 0x0000000A | |
79. load_condition_mask CondMask = $0 | |
80. zero_slot_unmasked $66 = 0 | |
81. merge_condition_mask CondMask = $17 & $18 | |
82. branch_if_no_lanes_active branch_if_no_lanes_active +14 (label 9 at #96) | |
83. store_loop_mask $67 = LoopMask | |
84. label label 0x00000019 | |
85. branch_if_all_lanes_active branch_if_all_lanes_active +6 (label 24 at #91) | |
86. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
87. copy_constant $68 = 0xFFFFFFFF | |
88. merge_loop_mask LoopMask &= $68 | |
89. stack_rewind | |
90. branch_if_any_lanes_active branch_if_any_lanes_active -6 (label 25 at #84) | |
91. label label 0x00000018 | |
92. load_loop_mask LoopMask = $67 | |
93. copy_constant $67 = 0xFFFFFFFF | |
94. label label 0x00000017 | |
95. copy_slot_masked $66 = Mask($67) | |
96. label label 0x00000009 | |
97. load_condition_mask CondMask = $17 | |
98. zero_slot_unmasked $23 = 0 | |
99. merge_condition_mask CondMask = $65 & $66 | |
100. branch_if_no_lanes_active branch_if_no_lanes_active +16 (label 8 at #116) | |
101. store_loop_mask $24 = LoopMask | |
102. jump jump +4 (label 28 at #106) | |
103. label label 0x0000001D | |
104. branch_if_all_lanes_active branch_if_all_lanes_active +7 (label 27 at #111) | |
105. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
106. label label 0x0000001C | |
107. copy_constant $25 = 0xFFFFFFFF | |
108. merge_loop_mask LoopMask &= $25 | |
109. stack_rewind | |
110. branch_if_any_lanes_active branch_if_any_lanes_active -7 (label 29 at #103) | |
111. label label 0x0000001B | |
112. load_loop_mask LoopMask = $24 | |
113. copy_constant $24 = 0xFFFFFFFF | |
114. label label 0x0000001A | |
115. copy_slot_masked $23 = Mask($24) | |
116. label label 0x00000008 | |
117. load_condition_mask CondMask = $65 | |
118. zero_slot_unmasked $59 = 0 | |
119. merge_condition_mask CondMask = $22 & $23 | |
120. branch_if_no_lanes_active branch_if_no_lanes_active +31 (label 7 at #151) | |
121. store_return_mask $60 = RetMask | |
122. store_loop_mask $61 = LoopMask | |
123. copy_constant $62 = unknownInput | |
124. cast_to_int_from_float $62 = FloatToInt($62) | |
125. store_loop_mask $63 = LoopMask | |
126. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
127. case_op if ($62 == 0x00000001) { LoopMask = true; $63 = false; } | |
128. branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 32 at #132) | |
129. copy_constant $64 = 0xFFFFFFFF | |
130. copy_slot_masked [switch_with_all_returns].result = Mask($64) | |
131. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
132. label label 0x00000020 | |
133. case_op if ($62 == 0x00000002) { LoopMask = true; $63 = false; } | |
134. branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 33 at #138) | |
135. zero_slot_unmasked $64 = 0 | |
136. copy_slot_masked [switch_with_all_returns].result = Mask($64) | |
137. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
138. label label 0x00000021 | |
139. reenable_loop_mask LoopMask |= $63 | |
140. branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 34 at #144) | |
141. zero_slot_unmasked $63 = 0 | |
142. copy_slot_masked [switch_with_all_returns].result = Mask($63) | |
143. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
144. label label 0x00000022 | |
145. label label 0x0000001F | |
146. load_loop_mask LoopMask = $61 | |
147. load_return_mask RetMask = $60 | |
148. copy_slot_unmasked $60 = [switch_with_all_returns].result | |
149. label label 0x0000001E | |
150. copy_slot_masked $59 = Mask($60) | |
151. label label 0x00000007 | |
152. load_condition_mask CondMask = $22 | |
153. zero_slot_unmasked $70 = 0 | |
154. merge_condition_mask CondMask = $58 & $59 | |
155. branch_if_no_lanes_active branch_if_no_lanes_active +27 (label 6 at #182) | |
156. store_return_mask $71 = RetMask | |
157. store_loop_mask $72 = LoopMask | |
158. copy_constant $73 = unknownInput | |
159. cast_to_int_from_float $73 = FloatToInt($73) | |
160. store_loop_mask $74 = LoopMask | |
161. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
162. case_op if ($73 == 0x00000001) { LoopMask = true; $74 = false; } | |
163. branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 37 at #167) | |
164. copy_constant $75 = 0xFFFFFFFF | |
165. copy_slot_masked [switch_fallthrough].result = Mask($75) | |
166. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
167. label label 0x00000025 | |
168. case_op if ($73 == 0x00000002) { LoopMask = true; $74 = false; } | |
169. label label 0x00000026 | |
170. reenable_loop_mask LoopMask |= $74 | |
171. branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 39 at #175) | |
172. zero_slot_unmasked $74 = 0 | |
173. copy_slot_masked [switch_fallthrough].result = Mask($74) | |
174. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
175. label label 0x00000027 | |
176. label label 0x00000024 | |
177. load_loop_mask LoopMask = $72 | |
178. load_return_mask RetMask = $71 | |
179. copy_slot_unmasked $71 = [switch_fallthrough].result | |
180. label label 0x00000023 | |
181. copy_slot_masked $70 = Mask($71) | |
182. label label 0x00000006 | |
183. load_condition_mask CondMask = $58 | |
184. zero_slot_unmasked $35 = 0 | |
185. merge_condition_mask CondMask = $69 & $70 | |
186. branch_if_no_lanes_active branch_if_no_lanes_active +23 (label 5 at #209) | |
187. store_return_mask $36 = RetMask | |
188. store_loop_mask $37 = LoopMask | |
189. copy_constant $38 = unknownInput | |
190. cast_to_int_from_float $38 = FloatToInt($38) | |
191. store_loop_mask $39 = LoopMask | |
192. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
193. case_op if ($38 == 0x00000001) { LoopMask = true; $39 = false; } | |
194. label label 0x0000002A | |
195. case_op if ($38 == 0x00000002) { LoopMask = true; $39 = false; } | |
196. label label 0x0000002B | |
197. reenable_loop_mask LoopMask |= $39 | |
198. branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 44 at #202) | |
199. copy_constant $39 = 0xFFFFFFFF | |
200. copy_slot_masked [switch_fallthrough_twice].result = Mask($39) | |
201. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
202. label label 0x0000002C | |
203. label label 0x00000029 | |
204. load_loop_mask LoopMask = $37 | |
205. load_return_mask RetMask = $36 | |
206. copy_slot_unmasked $36 = [switch_fallthrough_twice].result | |
207. label label 0x00000028 | |
208. copy_slot_masked $35 = Mask($36) | |
209. label label 0x00000005 | |
210. load_condition_mask CondMask = $69 | |
211. zero_slot_unmasked $50 = 0 | |
212. merge_condition_mask CondMask = $34 & $35 | |
213. branch_if_no_lanes_active branch_if_no_lanes_active +41 (label 4 at #254) | |
214. store_return_mask $51 = RetMask | |
215. store_loop_mask $52 = LoopMask | |
216. copy_constant $53 = unknownInput | |
217. cast_to_int_from_float $53 = FloatToInt($53) | |
218. store_loop_mask $54 = LoopMask | |
219. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
220. case_op if ($53 == 0x00000001) { LoopMask = true; $54 = false; } | |
221. branch_if_no_lanes_active branch_if_no_lanes_active +20 (label 47 at #241) | |
222. zero_slot_unmasked x = 0 | |
223. store_loop_mask $55 = LoopMask | |
224. jump jump +8 (label 49 at #232) | |
225. label label 0x00000032 | |
226. branch_if_all_lanes_active branch_if_all_lanes_active +13 (label 48 at #239) | |
227. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
228. copy_slot_unmasked $56 = x | |
229. copy_constant $57 = 0x00000001 (1.401298e-45) | |
230. add_int $56 += $57 | |
231. copy_slot_masked x = Mask($56) | |
232. label label 0x00000031 | |
233. copy_slot_unmasked $56 = x | |
234. copy_constant $57 = 0x0000000A (1.401298e-44) | |
235. cmple_int $56 = lessThanEqual($56, $57) | |
236. merge_loop_mask LoopMask &= $56 | |
237. stack_rewind | |
238. branch_if_any_lanes_active branch_if_any_lanes_active -13 (label 50 at #225) | |
239. label label 0x00000030 | |
240. load_loop_mask LoopMask = $55 | |
241. label label 0x0000002F | |
242. reenable_loop_mask LoopMask |= $54 | |
243. branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 51 at #247) | |
244. copy_constant $54 = 0xFFFFFFFF | |
245. copy_slot_masked [switch_with_break_in_loop].result = Mask($54) | |
246. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
247. label label 0x00000033 | |
248. label label 0x0000002E | |
249. load_loop_mask LoopMask = $52 | |
250. load_return_mask RetMask = $51 | |
251. copy_slot_unmasked $51 = [switch_with_break_in_loop].result | |
252. label label 0x0000002D | |
253. copy_slot_masked $50 = Mask($51) | |
254. label label 0x00000004 | |
255. load_condition_mask CondMask = $34 | |
256. zero_slot_unmasked $41 = 0 | |
257. merge_condition_mask CondMask = $49 & $50 | |
258. branch_if_no_lanes_active branch_if_no_lanes_active +44 (label 3 at #302) | |
259. store_return_mask $42 = RetMask | |
260. store_loop_mask $43 = LoopMask | |
261. copy_constant $44 = unknownInput | |
262. cast_to_int_from_float $44 = FloatToInt($44) | |
263. store_loop_mask $45 = LoopMask | |
264. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
265. case_op if ($44 == 0x00000001) { LoopMask = true; $45 = false; } | |
266. branch_if_no_lanes_active branch_if_no_lanes_active +23 (label 54 at #289) | |
267. zero_slot_unmasked x₁ = 0 | |
268. store_loop_mask $46 = LoopMask | |
269. jump jump +11 (label 56 at #280) | |
270. label label 0x00000039 | |
271. zero_slot_unmasked $34 = 0 | |
272. copy_constant $35 = 0xFFFFFFFF | |
273. copy_slot_masked $34 = Mask($35) | |
274. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
275. reenable_loop_mask LoopMask |= $34 | |
276. copy_slot_unmasked $47 = x₁ | |
277. copy_constant $48 = 0x00000001 (1.401298e-45) | |
278. add_int $47 += $48 | |
279. copy_slot_masked x₁ = Mask($47) | |
280. label label 0x00000038 | |
281. copy_slot_unmasked $47 = x₁ | |
282. copy_constant $48 = 0x0000000A (1.401298e-44) | |
283. cmple_int $47 = lessThanEqual($47, $48) | |
284. merge_loop_mask LoopMask &= $47 | |
285. stack_rewind | |
286. branch_if_any_lanes_active branch_if_any_lanes_active -16 (label 57 at #270) | |
287. label label 0x00000037 | |
288. load_loop_mask LoopMask = $46 | |
289. label label 0x00000036 | |
290. reenable_loop_mask LoopMask |= $45 | |
291. branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 58 at #295) | |
292. copy_constant $45 = 0xFFFFFFFF | |
293. copy_slot_masked [switch_with_continue_in_loop].result = Mask($45) | |
294. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
295. label label 0x0000003A | |
296. label label 0x00000035 | |
297. load_loop_mask LoopMask = $43 | |
298. load_return_mask RetMask = $42 | |
299. copy_slot_unmasked $42 = [switch_with_continue_in_loop].result | |
300. label label 0x00000034 | |
301. copy_slot_masked $41 = Mask($42) | |
302. label label 0x00000003 | |
303. load_condition_mask CondMask = $49 | |
304. zero_slot_unmasked $27 = 0 | |
305. merge_condition_mask CondMask = $40 & $41 | |
306. branch_if_no_lanes_active branch_if_no_lanes_active +35 (label 2 at #341) | |
307. store_return_mask $28 = RetMask | |
308. store_loop_mask $29 = LoopMask | |
309. copy_constant $30 = unknownInput | |
310. cast_to_int_from_float $30 = FloatToInt($30) | |
311. store_loop_mask $31 = LoopMask | |
312. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
313. case_op if ($30 == 0x00000001) { LoopMask = true; $31 = false; } | |
314. branch_if_no_lanes_active branch_if_no_lanes_active +14 (label 61 at #328) | |
315. copy_constant $32 = unknownInput | |
316. copy_constant $33 = 0x42F60000 (123.0) | |
317. cmpeq_float $32 = equal($32, $33) | |
318. branch_if_no_active_lanes_eq branch +5 (label 62 at #323) if no lanes of $32 == 0xFFFFFFFF | |
319. zero_slot_unmasked $33 = 0 | |
320. copy_slot_masked [switch_with_if_that_returns].result = Mask($33) | |
321. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
322. jump jump +5 (label 63 at #327) | |
323. label label 0x0000003E | |
324. copy_constant $33 = 0xFFFFFFFF | |
325. copy_slot_masked [switch_with_if_that_returns].result = Mask($33) | |
326. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
327. label label 0x0000003F | |
328. label label 0x0000003D | |
329. reenable_loop_mask LoopMask |= $31 | |
330. branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 64 at #334) | |
331. copy_constant $31 = 0xFFFFFFFF | |
332. copy_slot_masked [switch_with_if_that_returns].result = Mask($31) | |
333. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
334. label label 0x00000040 | |
335. label label 0x0000003C | |
336. load_loop_mask LoopMask = $29 | |
337. load_return_mask RetMask = $28 | |
338. copy_slot_unmasked $28 = [switch_with_if_that_returns].result | |
339. label label 0x0000003B | |
340. copy_slot_masked $27 = Mask($28) | |
341. label label 0x00000002 | |
342. load_condition_mask CondMask = $40 | |
343. zero_slot_unmasked $5 = 0 | |
344. merge_condition_mask CondMask = $26 & $27 | |
345. branch_if_no_lanes_active branch_if_no_lanes_active +30 (label 1 at #375) | |
346. store_return_mask $6 = RetMask | |
347. store_loop_mask $7 = LoopMask | |
348. copy_constant $8 = unknownInput | |
349. cast_to_int_from_float $8 = FloatToInt($8) | |
350. store_loop_mask $9 = LoopMask | |
351. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
352. case_op if ($8 == 0x00000001) { LoopMask = true; $9 = false; } | |
353. branch_if_no_lanes_active branch_if_no_lanes_active +9 (label 67 at #362) | |
354. copy_constant $10 = unknownInput | |
355. copy_constant $11 = 0x42F60000 (123.0) | |
356. cmpeq_float $10 = equal($10, $11) | |
357. branch_if_no_active_lanes_eq branch +4 (label 68 at #361) if no lanes of $10 == 0xFFFFFFFF | |
358. zero_slot_unmasked $11 = 0 | |
359. copy_slot_masked [switch_with_one_sided_if_then_fallthrough].result = Mask($11) | |
360. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
361. label label 0x00000044 | |
362. label label 0x00000043 | |
363. reenable_loop_mask LoopMask |= $9 | |
364. branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 70 at #368) | |
365. copy_constant $9 = 0xFFFFFFFF | |
366. copy_slot_masked [switch_with_one_sided_if_then_fallthrough].result = Mask($9) | |
367. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
368. label label 0x00000046 | |
369. label label 0x00000042 | |
370. load_loop_mask LoopMask = $7 | |
371. load_return_mask RetMask = $6 | |
372. copy_slot_unmasked $6 = [switch_with_one_sided_if_then_fallthrough].result | |
373. label label 0x00000041 | |
374. copy_slot_masked $5 = Mask($6) | |
375. label label 0x00000001 | |
376. load_condition_mask CondMask = $26 | |
377. swizzle_4 $5..8 = ($5..8).xxxx | |
378. copy_4_constants $9..12 = colorRed | |
379. copy_4_constants $13..16 = colorGreen | |
380. mix_4_ints $5..8 = mix($9..12, $13..16, $5..8) | |
381. load_src src.rgba = $5..8 |