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