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

422 lines
22 KiB
Plaintext

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