unplugged-system/external/skia/tests/sksl/runtime/RecursiveComparison_Structs.skrp

547 lines
29 KiB
Plaintext
Raw Normal View History

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