blob: 6395e9b8025915c11b4d9c0d38d0ce0662966390 [file] [log] [blame]
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