blob: 56cde3538ac083d3d3ea195c9d639866e7aa9e21 [file] [log] [blame]
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 EQ = 0xFFFFFFFF
34. zero_slot_unmasked NE = 0
35. copy_constant $0 = colorGreen(0)
36. copy_constant $1 = 0x3F800000 (1.0)
37. add_float $0 += $1
38. copy_slot_unmasked _0_one = $0
39. zero_3_slots_unmasked _1_a[0](0..2) = 0
40. copy_slot_unmasked $0 = F42
41. copy_slot_unmasked _1_a[0] = $0
42. copy_slot_unmasked $0 = ZM
43. copy_slot_unmasked _1_a[1] = $0
44. copy_slot_unmasked $0 = ZP
45. copy_slot_unmasked _1_a[2] = $0
46. zero_3_slots_unmasked _2_b[0](0..2) = 0
47. copy_slot_unmasked $0 = F42
48. copy_slot_unmasked $1 = _0_one
49. mul_float $0 *= $1
50. copy_slot_unmasked _2_b[0] = $0
51. copy_slot_unmasked $0 = ZM
52. copy_slot_unmasked $1 = _0_one
53. mul_float $0 *= $1
54. copy_slot_unmasked _2_b[1] = $0
55. copy_slot_unmasked $0 = ZP
56. copy_slot_unmasked $1 = _0_one
57. mul_float $0 *= $1
58. copy_slot_unmasked _2_b[2] = $0
59. store_condition_mask $19 = CondMask
60. store_condition_mask $37 = CondMask
61. store_condition_mask $46 = CondMask
62. store_condition_mask $28 = CondMask
63. store_condition_mask $72 = CondMask
64. store_condition_mask $55 = CondMask
65. store_condition_mask $10 = CondMask
66. store_condition_mask $64 = CondMask
67. store_condition_mask $8 = CondMask
68. copy_slot_unmasked $9 = EQ
69. copy_4_slots_unmasked $65..68 = _1_a[0](0..3)
70. copy_2_slots_unmasked $69..70 = _2_b[1](0..1)
71. cmpne_3_floats $65..67 = notEqual($65..67, $68..70)
72. bitwise_or_int $66 |= $67
73. bitwise_or_int $65 |= $66
74. merge_condition_mask CondMask = $8 & $9
75. branch_if_no_active_lanes branch_if_no_active_lanes +7 (#82)
76. copy_4_slots_unmasked $66..69 = _1_a[0](0..3)
77. copy_2_slots_unmasked $70..71 = _2_b[1](0..1)
78. cmpeq_3_floats $66..68 = equal($66..68, $69..71)
79. bitwise_and_int $67 &= $68
80. bitwise_and_int $66 &= $67
81. copy_slot_masked $65 = Mask($66)
82. load_condition_mask CondMask = $8
83. zero_slot_unmasked $11 = 0
84. merge_condition_mask CondMask = $64 & $65
85. branch_if_no_active_lanes branch_if_no_active_lanes +52 (#137)
86. copy_slot_unmasked $12 = NE
87. copy_slot_unmasked eq = $12
88. copy_slot_unmasked $12 = F42
89. copy_slot_unmasked f1 = $12
90. copy_slot_unmasked $12 = ZM
91. copy_slot_unmasked f2 = $12
92. copy_slot_unmasked $12 = ZP
93. copy_slot_unmasked f3 = $12
94. copy_constant $12 = colorGreen(0)
95. copy_constant $13 = 0x3F800000 (1.0)
96. add_float $12 += $13
97. copy_slot_unmasked one = $12
98. zero_3_slots_unmasked a[0](0..2) = 0
99. copy_slot_unmasked $12 = f1
100. copy_slot_masked a[0] = Mask($12)
101. copy_slot_unmasked $12 = f2
102. copy_slot_masked a[1] = Mask($12)
103. copy_slot_unmasked $12 = f3
104. copy_slot_masked a[2] = Mask($12)
105. zero_3_slots_unmasked b[0](0..2) = 0
106. copy_slot_unmasked $12 = f1
107. copy_slot_unmasked $13 = one
108. mul_float $12 *= $13
109. copy_slot_masked b[0] = Mask($12)
110. copy_slot_unmasked $12 = f2
111. copy_slot_unmasked $13 = one
112. mul_float $12 *= $13
113. copy_slot_masked b[1] = Mask($12)
114. copy_slot_unmasked $12 = f3
115. copy_slot_unmasked $13 = one
116. mul_float $12 *= $13
117. copy_slot_masked b[2] = Mask($12)
118. store_condition_mask $66 = CondMask
119. copy_slot_unmasked $67 = eq
120. copy_4_slots_unmasked $12..15 = a[0](0..3)
121. copy_2_slots_unmasked $16..17 = b[1](0..1)
122. cmpne_3_floats $12..14 = notEqual($12..14, $15..17)
123. bitwise_or_int $13 |= $14
124. bitwise_or_int $12 |= $13
125. merge_condition_mask CondMask = $66 & $67
126. branch_if_no_active_lanes branch_if_no_active_lanes +7 (#133)
127. copy_4_slots_unmasked $13..16 = a[0](0..3)
128. copy_2_slots_unmasked $17..18 = b[1](0..1)
129. cmpeq_3_floats $13..15 = equal($13..15, $16..18)
130. bitwise_and_int $14 &= $15
131. bitwise_and_int $13 &= $14
132. copy_slot_masked $12 = Mask($13)
133. load_condition_mask CondMask = $66
134. copy_slot_masked [test_same_arrays].result = Mask($12)
135. bitwise_not_int $12 = ~$12
136. copy_slot_masked $11 = Mask($12)
137. load_condition_mask CondMask = $64
138. zero_slot_unmasked $56 = 0
139. merge_condition_mask CondMask = $10 & $11
140. branch_if_no_active_lanes branch_if_no_active_lanes +51 (#191)
141. copy_slot_unmasked $57 = NE
142. copy_slot_unmasked eq = $57
143. copy_slot_unmasked $57 = F42
144. copy_slot_unmasked f1 = $57
145. copy_slot_unmasked $57 = NAN1
146. copy_slot_unmasked f2 = $57
147. copy_slot_unmasked $57 = NAN2
148. copy_slot_unmasked f3 = $57
149. copy_constant $57 = colorGreen(0)
150. copy_constant $58 = 0x3F800000 (1.0)
151. add_float $57 += $58
152. copy_slot_unmasked one = $57
153. zero_3_slots_unmasked a[0](0..2) = 0
154. copy_slot_unmasked $57 = f1
155. copy_slot_masked a[0] = Mask($57)
156. copy_slot_unmasked $57 = f2
157. copy_slot_masked a[1] = Mask($57)
158. copy_slot_unmasked $57 = f3
159. copy_slot_masked a[2] = Mask($57)
160. zero_3_slots_unmasked b[0](0..2) = 0
161. copy_slot_unmasked $57 = f1
162. copy_slot_unmasked $58 = one
163. mul_float $57 *= $58
164. copy_slot_masked b[0] = Mask($57)
165. copy_slot_unmasked $57 = f2
166. copy_slot_unmasked $58 = one
167. mul_float $57 *= $58
168. copy_slot_masked b[1] = Mask($57)
169. copy_slot_unmasked $57 = f3
170. copy_slot_unmasked $58 = one
171. mul_float $57 *= $58
172. copy_slot_masked b[2] = Mask($57)
173. store_condition_mask $12 = CondMask
174. copy_slot_unmasked $13 = eq
175. copy_4_slots_unmasked $57..60 = a[0](0..3)
176. copy_2_slots_unmasked $61..62 = b[1](0..1)
177. cmpne_3_floats $57..59 = notEqual($57..59, $60..62)
178. bitwise_or_int $58 |= $59
179. bitwise_or_int $57 |= $58
180. merge_condition_mask CondMask = $12 & $13
181. branch_if_no_active_lanes branch_if_no_active_lanes +7 (#188)
182. copy_4_slots_unmasked $58..61 = a[0](0..3)
183. copy_2_slots_unmasked $62..63 = b[1](0..1)
184. cmpeq_3_floats $58..60 = equal($58..60, $61..63)
185. bitwise_and_int $59 &= $60
186. bitwise_and_int $58 &= $59
187. copy_slot_masked $57 = Mask($58)
188. load_condition_mask CondMask = $12
189. copy_slot_masked [test_same_arrays].result = Mask($57)
190. copy_slot_masked $56 = Mask($57)
191. load_condition_mask CondMask = $10
192. zero_slot_unmasked $73 = 0
193. merge_condition_mask CondMask = $55 & $56
194. branch_if_no_active_lanes branch_if_no_active_lanes +52 (#246)
195. copy_slot_unmasked $74 = EQ
196. copy_slot_unmasked eq = $74
197. copy_slot_unmasked $74 = F42
198. copy_slot_unmasked f1 = $74
199. copy_slot_unmasked $74 = NAN1
200. copy_slot_unmasked f2 = $74
201. copy_slot_unmasked $74 = NAN2
202. copy_slot_unmasked f3 = $74
203. copy_constant $74 = colorGreen(0)
204. copy_constant $75 = 0x3F800000 (1.0)
205. add_float $74 += $75
206. copy_slot_unmasked one = $74
207. zero_3_slots_unmasked a[0](0..2) = 0
208. copy_slot_unmasked $74 = f1
209. copy_slot_masked a[0] = Mask($74)
210. copy_slot_unmasked $74 = f2
211. copy_slot_masked a[1] = Mask($74)
212. copy_slot_unmasked $74 = f3
213. copy_slot_masked a[2] = Mask($74)
214. zero_3_slots_unmasked b[0](0..2) = 0
215. copy_slot_unmasked $74 = f1
216. copy_slot_unmasked $75 = one
217. mul_float $74 *= $75
218. copy_slot_masked b[0] = Mask($74)
219. copy_slot_unmasked $74 = f2
220. copy_slot_unmasked $75 = one
221. mul_float $74 *= $75
222. copy_slot_masked b[1] = Mask($74)
223. copy_slot_unmasked $74 = f3
224. copy_slot_unmasked $75 = one
225. mul_float $74 *= $75
226. copy_slot_masked b[2] = Mask($74)
227. store_condition_mask $57 = CondMask
228. copy_slot_unmasked $58 = eq
229. copy_4_slots_unmasked $74..77 = a[0](0..3)
230. copy_2_slots_unmasked $78..79 = b[1](0..1)
231. cmpne_3_floats $74..76 = notEqual($74..76, $77..79)
232. bitwise_or_int $75 |= $76
233. bitwise_or_int $74 |= $75
234. merge_condition_mask CondMask = $57 & $58
235. branch_if_no_active_lanes branch_if_no_active_lanes +7 (#242)
236. copy_4_slots_unmasked $75..78 = a[0](0..3)
237. copy_2_slots_unmasked $79..80 = b[1](0..1)
238. cmpeq_3_floats $75..77 = equal($75..77, $78..80)
239. bitwise_and_int $76 &= $77
240. bitwise_and_int $75 &= $76
241. copy_slot_masked $74 = Mask($75)
242. load_condition_mask CondMask = $57
243. copy_slot_masked [test_same_arrays].result = Mask($74)
244. bitwise_not_int $74 = ~$74
245. copy_slot_masked $73 = Mask($74)
246. load_condition_mask CondMask = $55
247. zero_slot_unmasked $29 = 0
248. merge_condition_mask CondMask = $72 & $73
249. branch_if_no_active_lanes branch_if_no_active_lanes +49 (#298)
250. copy_slot_unmasked $30 = NE
251. copy_slot_unmasked eq = $30
252. copy_slot_unmasked $30 = F42
253. copy_slot_unmasked f1 = $30
254. copy_slot_unmasked $30 = F43
255. copy_slot_unmasked f2 = $30
256. copy_slot_unmasked $30 = F44
257. copy_slot_unmasked f3 = $30
258. copy_constant $30 = colorGreen(0)
259. copy_constant $31 = 0x40000000 (2.0)
260. add_float $30 += $31
261. copy_slot_unmasked two = $30
262. zero_3_slots_unmasked a[0](0..2) = 0
263. copy_slot_unmasked $30 = f1
264. copy_slot_masked a[0] = Mask($30)
265. copy_slot_unmasked $30 = f2
266. copy_slot_masked a[1] = Mask($30)
267. copy_slot_unmasked $30 = f3
268. copy_slot_masked a[2] = Mask($30)
269. zero_3_slots_unmasked b[0](0..2) = 0
270. copy_slot_unmasked $30 = f1
271. copy_slot_unmasked $31 = two
272. mul_float $30 *= $31
273. copy_slot_masked b[0] = Mask($30)
274. copy_slot_unmasked $30 = f2
275. copy_slot_unmasked $31 = two
276. mul_float $30 *= $31
277. copy_slot_masked b[1] = Mask($30)
278. copy_slot_unmasked $30 = f3
279. copy_slot_masked b[2] = Mask($30)
280. store_condition_mask $74 = CondMask
281. copy_slot_unmasked $75 = eq
282. copy_4_slots_unmasked $30..33 = a[0](0..3)
283. copy_2_slots_unmasked $34..35 = b[1](0..1)
284. cmpne_3_floats $30..32 = notEqual($30..32, $33..35)
285. bitwise_or_int $31 |= $32
286. bitwise_or_int $30 |= $31
287. merge_condition_mask CondMask = $74 & $75
288. branch_if_no_active_lanes branch_if_no_active_lanes +7 (#295)
289. copy_4_slots_unmasked $31..34 = a[0](0..3)
290. copy_2_slots_unmasked $35..36 = b[1](0..1)
291. cmpeq_3_floats $31..33 = equal($31..33, $34..36)
292. bitwise_and_int $32 &= $33
293. bitwise_and_int $31 &= $32
294. copy_slot_masked $30 = Mask($31)
295. load_condition_mask CondMask = $74
296. copy_slot_masked [test_diff_arrays].result = Mask($30)
297. copy_slot_masked $29 = Mask($30)
298. load_condition_mask CondMask = $72
299. zero_slot_unmasked $47 = 0
300. merge_condition_mask CondMask = $28 & $29
301. branch_if_no_active_lanes branch_if_no_active_lanes +50 (#351)
302. copy_slot_unmasked $48 = EQ
303. copy_slot_unmasked eq = $48
304. copy_slot_unmasked $48 = F42
305. copy_slot_unmasked f1 = $48
306. copy_slot_unmasked $48 = F43
307. copy_slot_unmasked f2 = $48
308. copy_slot_unmasked $48 = F44
309. copy_slot_unmasked f3 = $48
310. copy_constant $48 = colorGreen(0)
311. copy_constant $49 = 0x40000000 (2.0)
312. add_float $48 += $49
313. copy_slot_unmasked two = $48
314. zero_3_slots_unmasked a[0](0..2) = 0
315. copy_slot_unmasked $48 = f1
316. copy_slot_masked a[0] = Mask($48)
317. copy_slot_unmasked $48 = f2
318. copy_slot_masked a[1] = Mask($48)
319. copy_slot_unmasked $48 = f3
320. copy_slot_masked a[2] = Mask($48)
321. zero_3_slots_unmasked b[0](0..2) = 0
322. copy_slot_unmasked $48 = f1
323. copy_slot_unmasked $49 = two
324. mul_float $48 *= $49
325. copy_slot_masked b[0] = Mask($48)
326. copy_slot_unmasked $48 = f2
327. copy_slot_unmasked $49 = two
328. mul_float $48 *= $49
329. copy_slot_masked b[1] = Mask($48)
330. copy_slot_unmasked $48 = f3
331. copy_slot_masked b[2] = Mask($48)
332. store_condition_mask $30 = CondMask
333. copy_slot_unmasked $31 = eq
334. copy_4_slots_unmasked $48..51 = a[0](0..3)
335. copy_2_slots_unmasked $52..53 = b[1](0..1)
336. cmpne_3_floats $48..50 = notEqual($48..50, $51..53)
337. bitwise_or_int $49 |= $50
338. bitwise_or_int $48 |= $49
339. merge_condition_mask CondMask = $30 & $31
340. branch_if_no_active_lanes branch_if_no_active_lanes +7 (#347)
341. copy_4_slots_unmasked $49..52 = a[0](0..3)
342. copy_2_slots_unmasked $53..54 = b[1](0..1)
343. cmpeq_3_floats $49..51 = equal($49..51, $52..54)
344. bitwise_and_int $50 &= $51
345. bitwise_and_int $49 &= $50
346. copy_slot_masked $48 = Mask($49)
347. load_condition_mask CondMask = $30
348. copy_slot_masked [test_diff_arrays].result = Mask($48)
349. bitwise_not_int $48 = ~$48
350. copy_slot_masked $47 = Mask($48)
351. load_condition_mask CondMask = $28
352. zero_slot_unmasked $38 = 0
353. merge_condition_mask CondMask = $46 & $47
354. branch_if_no_active_lanes branch_if_no_active_lanes +49 (#403)
355. copy_slot_unmasked $39 = NE
356. copy_slot_unmasked eq = $39
357. copy_slot_unmasked $39 = NAN1
358. copy_slot_unmasked f1 = $39
359. copy_slot_unmasked $39 = ZM
360. copy_slot_unmasked f2 = $39
361. copy_slot_unmasked $39 = ZP
362. copy_slot_unmasked f3 = $39
363. copy_constant $39 = colorGreen(0)
364. copy_constant $40 = 0x40000000 (2.0)
365. add_float $39 += $40
366. copy_slot_unmasked two = $39
367. zero_3_slots_unmasked a[0](0..2) = 0
368. copy_slot_unmasked $39 = f1
369. copy_slot_masked a[0] = Mask($39)
370. copy_slot_unmasked $39 = f2
371. copy_slot_masked a[1] = Mask($39)
372. copy_slot_unmasked $39 = f3
373. copy_slot_masked a[2] = Mask($39)
374. zero_3_slots_unmasked b[0](0..2) = 0
375. copy_slot_unmasked $39 = f1
376. copy_slot_unmasked $40 = two
377. mul_float $39 *= $40
378. copy_slot_masked b[0] = Mask($39)
379. copy_slot_unmasked $39 = f2
380. copy_slot_unmasked $40 = two
381. mul_float $39 *= $40
382. copy_slot_masked b[1] = Mask($39)
383. copy_slot_unmasked $39 = f3
384. copy_slot_masked b[2] = Mask($39)
385. store_condition_mask $48 = CondMask
386. copy_slot_unmasked $49 = eq
387. copy_4_slots_unmasked $39..42 = a[0](0..3)
388. copy_2_slots_unmasked $43..44 = b[1](0..1)
389. cmpne_3_floats $39..41 = notEqual($39..41, $42..44)
390. bitwise_or_int $40 |= $41
391. bitwise_or_int $39 |= $40
392. merge_condition_mask CondMask = $48 & $49
393. branch_if_no_active_lanes branch_if_no_active_lanes +7 (#400)
394. copy_4_slots_unmasked $40..43 = a[0](0..3)
395. copy_2_slots_unmasked $44..45 = b[1](0..1)
396. cmpeq_3_floats $40..42 = equal($40..42, $43..45)
397. bitwise_and_int $41 &= $42
398. bitwise_and_int $40 &= $41
399. copy_slot_masked $39 = Mask($40)
400. load_condition_mask CondMask = $48
401. copy_slot_masked [test_diff_arrays].result = Mask($39)
402. copy_slot_masked $38 = Mask($39)
403. load_condition_mask CondMask = $46
404. zero_slot_unmasked $20 = 0
405. merge_condition_mask CondMask = $37 & $38
406. branch_if_no_active_lanes branch_if_no_active_lanes +50 (#456)
407. copy_slot_unmasked $21 = EQ
408. copy_slot_unmasked eq = $21
409. copy_slot_unmasked $21 = NAN1
410. copy_slot_unmasked f1 = $21
411. copy_slot_unmasked $21 = ZM
412. copy_slot_unmasked f2 = $21
413. copy_slot_unmasked $21 = ZP
414. copy_slot_unmasked f3 = $21
415. copy_constant $21 = colorGreen(0)
416. copy_constant $22 = 0x40000000 (2.0)
417. add_float $21 += $22
418. copy_slot_unmasked two = $21
419. zero_3_slots_unmasked a[0](0..2) = 0
420. copy_slot_unmasked $21 = f1
421. copy_slot_masked a[0] = Mask($21)
422. copy_slot_unmasked $21 = f2
423. copy_slot_masked a[1] = Mask($21)
424. copy_slot_unmasked $21 = f3
425. copy_slot_masked a[2] = Mask($21)
426. zero_3_slots_unmasked b[0](0..2) = 0
427. copy_slot_unmasked $21 = f1
428. copy_slot_unmasked $22 = two
429. mul_float $21 *= $22
430. copy_slot_masked b[0] = Mask($21)
431. copy_slot_unmasked $21 = f2
432. copy_slot_unmasked $22 = two
433. mul_float $21 *= $22
434. copy_slot_masked b[1] = Mask($21)
435. copy_slot_unmasked $21 = f3
436. copy_slot_masked b[2] = Mask($21)
437. store_condition_mask $39 = CondMask
438. copy_slot_unmasked $40 = eq
439. copy_4_slots_unmasked $21..24 = a[0](0..3)
440. copy_2_slots_unmasked $25..26 = b[1](0..1)
441. cmpne_3_floats $21..23 = notEqual($21..23, $24..26)
442. bitwise_or_int $22 |= $23
443. bitwise_or_int $21 |= $22
444. merge_condition_mask CondMask = $39 & $40
445. branch_if_no_active_lanes branch_if_no_active_lanes +7 (#452)
446. copy_4_slots_unmasked $22..25 = a[0](0..3)
447. copy_2_slots_unmasked $26..27 = b[1](0..1)
448. cmpeq_3_floats $22..24 = equal($22..24, $25..27)
449. bitwise_and_int $23 &= $24
450. bitwise_and_int $22 &= $23
451. copy_slot_masked $21 = Mask($22)
452. load_condition_mask CondMask = $39
453. copy_slot_masked [test_diff_arrays].result = Mask($21)
454. bitwise_not_int $21 = ~$21
455. copy_slot_masked $20 = Mask($21)
456. load_condition_mask CondMask = $37
457. copy_4_constants $0..3 = colorRed
458. merge_condition_mask CondMask = $19 & $20
459. copy_4_constants $4..7 = colorGreen
460. copy_4_slots_masked $0..3 = Mask($4..7)
461. load_condition_mask CondMask = $19
462. copy_4_slots_unmasked [main].result = $0..3
463. load_src src.rgba = [main].result