1. store_src_rg coords = src.rg | |
2. init_lane_masks CondMask = LoopMask = RetMask = true | |
3. copy_constant $0 = colorGreen(0) | |
4. copy_constant $1 = colorGreen(2) | |
5. div_float $0 /= $1 | |
6. copy_slot_unmasked NAN1 = $0 | |
7. copy_constant $0 = colorGreen(2) | |
8. copy_constant $1 = colorGreen(0) | |
9. div_float $0 /= $1 | |
10. copy_slot_unmasked NAN2 = $0 | |
11. copy_constant $0 = colorGreen(0) | |
12. copy_constant $1 = colorGreen(2) | |
13. mul_float $0 *= $1 | |
14. copy_slot_unmasked ZP = $0 | |
15. zero_slot_unmasked $0 = 0 | |
16. copy_constant $1 = colorGreen(0) | |
17. sub_float $0 -= $1 | |
18. copy_constant $1 = colorGreen(2) | |
19. mul_float $0 *= $1 | |
20. copy_slot_unmasked ZM = $0 | |
21. copy_constant $0 = colorGreen(1) | |
22. copy_constant $1 = 0x42280000 (42.0) | |
23. mul_float $0 *= $1 | |
24. copy_slot_unmasked F42 = $0 | |
25. copy_constant $0 = colorGreen(1) | |
26. copy_constant $1 = 0x422C0000 (43.0) | |
27. mul_float $0 *= $1 | |
28. copy_slot_unmasked F43 = $0 | |
29. copy_constant $0 = colorGreen(1) | |
30. copy_constant $1 = 0x42300000 (44.0) | |
31. mul_float $0 *= $1 | |
32. copy_slot_unmasked F44 = $0 | |
33. copy_constant $0 = colorGreen(1) | |
34. copy_constant $1 = 0x42340000 (45.0) | |
35. mul_float $0 *= $1 | |
36. copy_slot_unmasked F45 = $0 | |
37. copy_constant EQ = 0xFFFFFFFF | |
38. zero_slot_unmasked NE = 0 | |
39. copy_constant $0 = colorGreen(0) | |
40. copy_constant $1 = 0x3F800000 (1.0) | |
41. add_float $0 += $1 | |
42. copy_slot_unmasked _0_one = $0 | |
43. copy_slot_unmasked _1_a(0) = F42 | |
44. copy_slot_unmasked _1_a(1) = ZM | |
45. copy_slot_unmasked _1_a(2) = ZP | |
46. copy_slot_unmasked _1_a(3) = F43 | |
47. copy_slot_unmasked $0 = F42 | |
48. copy_slot_unmasked $1 = _0_one | |
49. mul_float $0 *= $1 | |
50. copy_slot_unmasked $1 = ZM | |
51. copy_slot_unmasked $2 = _0_one | |
52. mul_float $1 *= $2 | |
53. copy_slot_unmasked $2 = ZP | |
54. copy_slot_unmasked $3 = _0_one | |
55. mul_float $2 *= $3 | |
56. copy_slot_unmasked $3 = F43 | |
57. copy_slot_unmasked $4 = _0_one | |
58. mul_float $3 *= $4 | |
59. copy_4_slots_unmasked _2_b = $0..3 | |
60. store_condition_mask $22 = CondMask | |
61. store_condition_mask $44 = CondMask | |
62. store_condition_mask $55 = CondMask | |
63. store_condition_mask $33 = CondMask | |
64. store_condition_mask $79 = CondMask | |
65. store_condition_mask $66 = CondMask | |
66. store_condition_mask $12 = CondMask | |
67. store_condition_mask $77 = CondMask | |
68. copy_slot_unmasked $78 = EQ | |
69. copy_4_slots_unmasked $13..16 = _1_a | |
70. copy_4_slots_unmasked $17..20 = _2_b | |
71. cmpne_4_floats $13..16 = notEqual($13..16, $17..20) | |
72. bitwise_or_2_ints $13..14 |= $15..16 | |
73. bitwise_or_int $13 |= $14 | |
74. merge_condition_mask CondMask = $77 & $78 | |
75. branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 8 at #82) | |
76. copy_4_slots_unmasked $14..17 = _1_a | |
77. copy_4_slots_unmasked $18..21 = _2_b | |
78. cmpeq_4_floats $14..17 = equal($14..17, $18..21) | |
79. bitwise_and_2_ints $14..15 &= $16..17 | |
80. bitwise_and_int $14 &= $15 | |
81. copy_slot_masked $13 = Mask($14) | |
82. label label 0x00000008 | |
83. load_condition_mask CondMask = $77 | |
84. zero_slot_unmasked $67 = 0 | |
85. merge_condition_mask CondMask = $12 & $13 | |
86. branch_if_no_lanes_active branch_if_no_lanes_active +44 (label 7 at #130) | |
87. copy_slot_unmasked eq = NE | |
88. copy_slot_unmasked f1 = F42 | |
89. copy_slot_unmasked f2 = ZM | |
90. copy_slot_unmasked f3 = ZP | |
91. copy_slot_unmasked f4 = F43 | |
92. copy_constant $68 = colorGreen(0) | |
93. copy_constant $69 = 0x3F800000 (1.0) | |
94. add_float $68 += $69 | |
95. copy_slot_unmasked one = $68 | |
96. copy_4_slots_unmasked a = f1, f2, f3, f4 | |
97. copy_slot_unmasked $68 = f1 | |
98. copy_slot_unmasked $69 = one | |
99. mul_float $68 *= $69 | |
100. copy_slot_unmasked $69 = f2 | |
101. copy_slot_unmasked $70 = one | |
102. mul_float $69 *= $70 | |
103. copy_slot_unmasked $70 = f3 | |
104. copy_slot_unmasked $71 = one | |
105. mul_float $70 *= $71 | |
106. copy_slot_unmasked $71 = f4 | |
107. copy_slot_unmasked $72 = one | |
108. mul_float $71 *= $72 | |
109. copy_4_slots_unmasked b = $68..71 | |
110. store_condition_mask $77 = CondMask | |
111. copy_slot_unmasked $78 = eq | |
112. copy_4_slots_unmasked $68..71 = a | |
113. copy_4_slots_unmasked $72..75 = b | |
114. cmpne_4_floats $68..71 = notEqual($68..71, $72..75) | |
115. bitwise_or_2_ints $68..69 |= $70..71 | |
116. bitwise_or_int $68 |= $69 | |
117. merge_condition_mask CondMask = $77 & $78 | |
118. branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 10 at #125) | |
119. copy_4_slots_unmasked $69..72 = a | |
120. copy_4_slots_unmasked $73..76 = b | |
121. cmpeq_4_floats $69..72 = equal($69..72, $73..76) | |
122. bitwise_and_2_ints $69..70 &= $71..72 | |
123. bitwise_and_int $69 &= $70 | |
124. copy_slot_masked $68 = Mask($69) | |
125. label label 0x0000000A | |
126. load_condition_mask CondMask = $77 | |
127. label label 0x00000009 | |
128. bitwise_not_int $68 = ~$68 | |
129. copy_slot_masked $67 = Mask($68) | |
130. label label 0x00000007 | |
131. load_condition_mask CondMask = $12 | |
132. zero_slot_unmasked $80 = 0 | |
133. merge_condition_mask CondMask = $66 & $67 | |
134. branch_if_no_lanes_active branch_if_no_lanes_active +42 (label 6 at #176) | |
135. copy_slot_unmasked eq = NE | |
136. copy_slot_unmasked f1 = F42 | |
137. copy_2_slots_unmasked f2, f3 = NAN1, NAN2 | |
138. copy_slot_unmasked f4 = F43 | |
139. copy_constant $81 = colorGreen(0) | |
140. copy_constant $82 = 0x3F800000 (1.0) | |
141. add_float $81 += $82 | |
142. copy_slot_unmasked one = $81 | |
143. copy_4_slots_unmasked a = f1, f2, f3, f4 | |
144. copy_slot_unmasked $81 = f1 | |
145. copy_slot_unmasked $82 = one | |
146. mul_float $81 *= $82 | |
147. copy_slot_unmasked $82 = f2 | |
148. copy_slot_unmasked $83 = one | |
149. mul_float $82 *= $83 | |
150. copy_slot_unmasked $83 = f3 | |
151. copy_slot_unmasked $84 = one | |
152. mul_float $83 *= $84 | |
153. copy_slot_unmasked $84 = f4 | |
154. copy_slot_unmasked $85 = one | |
155. mul_float $84 *= $85 | |
156. copy_4_slots_unmasked b = $81..84 | |
157. store_condition_mask $12 = CondMask | |
158. copy_slot_unmasked $13 = eq | |
159. copy_4_slots_unmasked $81..84 = a | |
160. copy_4_slots_unmasked $85..88 = b | |
161. cmpne_4_floats $81..84 = notEqual($81..84, $85..88) | |
162. bitwise_or_2_ints $81..82 |= $83..84 | |
163. bitwise_or_int $81 |= $82 | |
164. merge_condition_mask CondMask = $12 & $13 | |
165. branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 12 at #172) | |
166. copy_4_slots_unmasked $82..85 = a | |
167. copy_4_slots_unmasked $86..89 = b | |
168. cmpeq_4_floats $82..85 = equal($82..85, $86..89) | |
169. bitwise_and_2_ints $82..83 &= $84..85 | |
170. bitwise_and_int $82 &= $83 | |
171. copy_slot_masked $81 = Mask($82) | |
172. label label 0x0000000C | |
173. load_condition_mask CondMask = $12 | |
174. label label 0x0000000B | |
175. copy_slot_masked $80 = Mask($81) | |
176. label label 0x00000006 | |
177. load_condition_mask CondMask = $66 | |
178. zero_slot_unmasked $34 = 0 | |
179. merge_condition_mask CondMask = $79 & $80 | |
180. branch_if_no_lanes_active branch_if_no_lanes_active +43 (label 5 at #223) | |
181. copy_slot_unmasked eq = EQ | |
182. copy_slot_unmasked f1 = F42 | |
183. copy_2_slots_unmasked f2, f3 = NAN1, NAN2 | |
184. copy_slot_unmasked f4 = F43 | |
185. copy_constant $35 = colorGreen(0) | |
186. copy_constant $36 = 0x3F800000 (1.0) | |
187. add_float $35 += $36 | |
188. copy_slot_unmasked one = $35 | |
189. copy_4_slots_unmasked a = f1, f2, f3, f4 | |
190. copy_slot_unmasked $35 = f1 | |
191. copy_slot_unmasked $36 = one | |
192. mul_float $35 *= $36 | |
193. copy_slot_unmasked $36 = f2 | |
194. copy_slot_unmasked $37 = one | |
195. mul_float $36 *= $37 | |
196. copy_slot_unmasked $37 = f3 | |
197. copy_slot_unmasked $38 = one | |
198. mul_float $37 *= $38 | |
199. copy_slot_unmasked $38 = f4 | |
200. copy_slot_unmasked $39 = one | |
201. mul_float $38 *= $39 | |
202. copy_4_slots_unmasked b = $35..38 | |
203. store_condition_mask $66 = CondMask | |
204. copy_slot_unmasked $67 = eq | |
205. copy_4_slots_unmasked $35..38 = a | |
206. copy_4_slots_unmasked $39..42 = b | |
207. cmpne_4_floats $35..38 = notEqual($35..38, $39..42) | |
208. bitwise_or_2_ints $35..36 |= $37..38 | |
209. bitwise_or_int $35 |= $36 | |
210. merge_condition_mask CondMask = $66 & $67 | |
211. branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 14 at #218) | |
212. copy_4_slots_unmasked $36..39 = a | |
213. copy_4_slots_unmasked $40..43 = b | |
214. cmpeq_4_floats $36..39 = equal($36..39, $40..43) | |
215. bitwise_and_2_ints $36..37 &= $38..39 | |
216. bitwise_and_int $36 &= $37 | |
217. copy_slot_masked $35 = Mask($36) | |
218. label label 0x0000000E | |
219. load_condition_mask CondMask = $66 | |
220. label label 0x0000000D | |
221. bitwise_not_int $35 = ~$35 | |
222. copy_slot_masked $34 = Mask($35) | |
223. label label 0x00000005 | |
224. load_condition_mask CondMask = $79 | |
225. zero_slot_unmasked $56 = 0 | |
226. merge_condition_mask CondMask = $33 & $34 | |
227. branch_if_no_lanes_active branch_if_no_lanes_active +40 (label 4 at #267) | |
228. copy_slot_unmasked eq₁ = NE | |
229. copy_4_slots_unmasked f1₁, f2₁, f3₁, f4₁ = F42, F43, F44, F45 | |
230. copy_constant $57 = colorGreen(0) | |
231. copy_constant $58 = 0x40000000 (2.0) | |
232. add_float $57 += $58 | |
233. copy_slot_unmasked two = $57 | |
234. copy_4_slots_unmasked a₁ = f1₁, f2₁, f3₁, f4₁ | |
235. copy_slot_unmasked $57 = f1₁ | |
236. copy_slot_unmasked $58 = two | |
237. mul_float $57 *= $58 | |
238. copy_slot_unmasked $58 = f2₁ | |
239. copy_slot_unmasked $59 = two | |
240. mul_float $58 *= $59 | |
241. copy_slot_unmasked $59 = f3₁ | |
242. copy_slot_unmasked $60 = two | |
243. mul_float $59 *= $60 | |
244. copy_slot_unmasked $60 = f4₁ | |
245. copy_slot_unmasked $61 = two | |
246. mul_float $60 *= $61 | |
247. copy_4_slots_unmasked b₁ = $57..60 | |
248. store_condition_mask $79 = CondMask | |
249. copy_slot_unmasked $80 = eq₁ | |
250. copy_4_slots_unmasked $57..60 = a₁ | |
251. copy_4_slots_unmasked $61..64 = b₁ | |
252. cmpne_4_floats $57..60 = notEqual($57..60, $61..64) | |
253. bitwise_or_2_ints $57..58 |= $59..60 | |
254. bitwise_or_int $57 |= $58 | |
255. merge_condition_mask CondMask = $79 & $80 | |
256. branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 16 at #263) | |
257. copy_4_slots_unmasked $58..61 = a₁ | |
258. copy_4_slots_unmasked $62..65 = b₁ | |
259. cmpeq_4_floats $58..61 = equal($58..61, $62..65) | |
260. bitwise_and_2_ints $58..59 &= $60..61 | |
261. bitwise_and_int $58 &= $59 | |
262. copy_slot_masked $57 = Mask($58) | |
263. label label 0x00000010 | |
264. load_condition_mask CondMask = $79 | |
265. label label 0x0000000F | |
266. copy_slot_masked $56 = Mask($57) | |
267. label label 0x00000004 | |
268. load_condition_mask CondMask = $33 | |
269. zero_slot_unmasked $45 = 0 | |
270. merge_condition_mask CondMask = $55 & $56 | |
271. branch_if_no_lanes_active branch_if_no_lanes_active +41 (label 3 at #312) | |
272. copy_slot_unmasked eq₁ = EQ | |
273. copy_4_slots_unmasked f1₁, f2₁, f3₁, f4₁ = F42, F43, F44, F45 | |
274. copy_constant $46 = colorGreen(0) | |
275. copy_constant $47 = 0x40000000 (2.0) | |
276. add_float $46 += $47 | |
277. copy_slot_unmasked two = $46 | |
278. copy_4_slots_unmasked a₁ = f1₁, f2₁, f3₁, f4₁ | |
279. copy_slot_unmasked $46 = f1₁ | |
280. copy_slot_unmasked $47 = two | |
281. mul_float $46 *= $47 | |
282. copy_slot_unmasked $47 = f2₁ | |
283. copy_slot_unmasked $48 = two | |
284. mul_float $47 *= $48 | |
285. copy_slot_unmasked $48 = f3₁ | |
286. copy_slot_unmasked $49 = two | |
287. mul_float $48 *= $49 | |
288. copy_slot_unmasked $49 = f4₁ | |
289. copy_slot_unmasked $50 = two | |
290. mul_float $49 *= $50 | |
291. copy_4_slots_unmasked b₁ = $46..49 | |
292. store_condition_mask $33 = CondMask | |
293. copy_slot_unmasked $34 = eq₁ | |
294. copy_4_slots_unmasked $46..49 = a₁ | |
295. copy_4_slots_unmasked $50..53 = b₁ | |
296. cmpne_4_floats $46..49 = notEqual($46..49, $50..53) | |
297. bitwise_or_2_ints $46..47 |= $48..49 | |
298. bitwise_or_int $46 |= $47 | |
299. merge_condition_mask CondMask = $33 & $34 | |
300. branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 18 at #307) | |
301. copy_4_slots_unmasked $47..50 = a₁ | |
302. copy_4_slots_unmasked $51..54 = b₁ | |
303. cmpeq_4_floats $47..50 = equal($47..50, $51..54) | |
304. bitwise_and_2_ints $47..48 &= $49..50 | |
305. bitwise_and_int $47 &= $48 | |
306. copy_slot_masked $46 = Mask($47) | |
307. label label 0x00000012 | |
308. load_condition_mask CondMask = $33 | |
309. label label 0x00000011 | |
310. bitwise_not_int $46 = ~$46 | |
311. copy_slot_masked $45 = Mask($46) | |
312. label label 0x00000003 | |
313. load_condition_mask CondMask = $55 | |
314. zero_slot_unmasked $23 = 0 | |
315. merge_condition_mask CondMask = $44 & $45 | |
316. branch_if_no_lanes_active branch_if_no_lanes_active +43 (label 2 at #359) | |
317. copy_slot_unmasked eq₁ = NE | |
318. copy_slot_unmasked f1₁ = NAN1 | |
319. copy_slot_unmasked f2₁ = ZM | |
320. copy_slot_unmasked f3₁ = ZP | |
321. copy_slot_unmasked f4₁ = F42 | |
322. copy_constant $24 = colorGreen(0) | |
323. copy_constant $25 = 0x40000000 (2.0) | |
324. add_float $24 += $25 | |
325. copy_slot_unmasked two = $24 | |
326. copy_4_slots_unmasked a₁ = f1₁, f2₁, f3₁, f4₁ | |
327. copy_slot_unmasked $24 = f1₁ | |
328. copy_slot_unmasked $25 = two | |
329. mul_float $24 *= $25 | |
330. copy_slot_unmasked $25 = f2₁ | |
331. copy_slot_unmasked $26 = two | |
332. mul_float $25 *= $26 | |
333. copy_slot_unmasked $26 = f3₁ | |
334. copy_slot_unmasked $27 = two | |
335. mul_float $26 *= $27 | |
336. copy_slot_unmasked $27 = f4₁ | |
337. copy_slot_unmasked $28 = two | |
338. mul_float $27 *= $28 | |
339. copy_4_slots_unmasked b₁ = $24..27 | |
340. store_condition_mask $55 = CondMask | |
341. copy_slot_unmasked $56 = eq₁ | |
342. copy_4_slots_unmasked $24..27 = a₁ | |
343. copy_4_slots_unmasked $28..31 = b₁ | |
344. cmpne_4_floats $24..27 = notEqual($24..27, $28..31) | |
345. bitwise_or_2_ints $24..25 |= $26..27 | |
346. bitwise_or_int $24 |= $25 | |
347. merge_condition_mask CondMask = $55 & $56 | |
348. branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 20 at #355) | |
349. copy_4_slots_unmasked $25..28 = a₁ | |
350. copy_4_slots_unmasked $29..32 = b₁ | |
351. cmpeq_4_floats $25..28 = equal($25..28, $29..32) | |
352. bitwise_and_2_ints $25..26 &= $27..28 | |
353. bitwise_and_int $25 &= $26 | |
354. copy_slot_masked $24 = Mask($25) | |
355. label label 0x00000014 | |
356. load_condition_mask CondMask = $55 | |
357. label label 0x00000013 | |
358. copy_slot_masked $23 = Mask($24) | |
359. label label 0x00000002 | |
360. load_condition_mask CondMask = $44 | |
361. zero_slot_unmasked $0 = 0 | |
362. merge_condition_mask CondMask = $22 & $23 | |
363. branch_if_no_lanes_active branch_if_no_lanes_active +44 (label 1 at #407) | |
364. copy_slot_unmasked eq₁ = EQ | |
365. copy_slot_unmasked f1₁ = NAN1 | |
366. copy_slot_unmasked f2₁ = ZM | |
367. copy_slot_unmasked f3₁ = ZP | |
368. copy_slot_unmasked f4₁ = F42 | |
369. copy_constant $1 = colorGreen(0) | |
370. copy_constant $2 = 0x40000000 (2.0) | |
371. add_float $1 += $2 | |
372. copy_slot_unmasked two = $1 | |
373. copy_4_slots_unmasked a₁ = f1₁, f2₁, f3₁, f4₁ | |
374. copy_slot_unmasked $1 = f1₁ | |
375. copy_slot_unmasked $2 = two | |
376. mul_float $1 *= $2 | |
377. copy_slot_unmasked $2 = f2₁ | |
378. copy_slot_unmasked $3 = two | |
379. mul_float $2 *= $3 | |
380. copy_slot_unmasked $3 = f3₁ | |
381. copy_slot_unmasked $4 = two | |
382. mul_float $3 *= $4 | |
383. copy_slot_unmasked $4 = f4₁ | |
384. copy_slot_unmasked $5 = two | |
385. mul_float $4 *= $5 | |
386. copy_4_slots_unmasked b₁ = $1..4 | |
387. store_condition_mask $44 = CondMask | |
388. copy_slot_unmasked $45 = eq₁ | |
389. copy_4_slots_unmasked $1..4 = a₁ | |
390. copy_4_slots_unmasked $5..8 = b₁ | |
391. cmpne_4_floats $1..4 = notEqual($1..4, $5..8) | |
392. bitwise_or_2_ints $1..2 |= $3..4 | |
393. bitwise_or_int $1 |= $2 | |
394. merge_condition_mask CondMask = $44 & $45 | |
395. branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 22 at #402) | |
396. copy_4_slots_unmasked $2..5 = a₁ | |
397. copy_4_slots_unmasked $6..9 = b₁ | |
398. cmpeq_4_floats $2..5 = equal($2..5, $6..9) | |
399. bitwise_and_2_ints $2..3 &= $4..5 | |
400. bitwise_and_int $2 &= $3 | |
401. copy_slot_masked $1 = Mask($2) | |
402. label label 0x00000016 | |
403. load_condition_mask CondMask = $44 | |
404. label label 0x00000015 | |
405. bitwise_not_int $1 = ~$1 | |
406. copy_slot_masked $0 = Mask($1) | |
407. label label 0x00000001 | |
408. load_condition_mask CondMask = $22 | |
409. swizzle_4 $0..3 = ($0..3).xxxx | |
410. copy_4_constants $4..7 = colorRed | |
411. copy_4_constants $8..11 = colorGreen | |
412. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) | |
413. load_src src.rgba = $0..3 |