blob: 4f01ceb0b051f29d4b84006ad054ccaec578f543 [file] [log] [blame]
1. store_src_rg pos = src.rg
2. init_lane_masks CondMask = LoopMask = RetMask = true
3. zero_slot_unmasked kZero = 0
4. copy_constant kTen = 0x0000000A (1.401298e-44)
5. copy_slot_unmasked $0 = pos(0)
6. copy_constant $1 = colorGreen(1)
7. max_float $0 = max($0, $1)
8. copy_constant $1 = colorGreen(3)
9. min_float $0 = min($0, $1)
10. cast_to_int_from_float $0 = FloatToInt($0)
11. copy_constant $1 = 0x00000005 (7.006492e-45)
12. mul_int $0 *= $1
13. copy_slot_unmasked five = $0
14. store_condition_mask $20 = CondMask
15. store_condition_mask $40 = CondMask
16. store_condition_mask $50 = CondMask
17. store_condition_mask $30 = CondMask
18. store_condition_mask $72 = CondMask
19. store_condition_mask $60 = CondMask
20. store_condition_mask $14 = CondMask
21. store_condition_mask $66 = CondMask
22. branch_if_no_lanes_active branch_if_no_lanes_active +33 (label 9 at #55)
23. store_return_mask $67 = RetMask
24. copy_slot_unmasked five = five
25. copy_slot_unmasked i = kZero
26. store_loop_mask $68 = LoopMask
27. jump jump +15 (label 11 at #42)
28. label label 0x0000000C
29. store_condition_mask $69 = CondMask
30. copy_slot_unmasked $70 = i
31. copy_slot_unmasked $71 = five
32. cmpeq_int $70 = equal($70, $71)
33. merge_condition_mask CondMask = $69 & $70
34. copy_slot_unmasked $71 = i
35. copy_slot_masked [return_loop].result = Mask($71)
36. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
37. load_condition_mask CondMask = $69
38. copy_slot_unmasked $69 = i
39. copy_constant $70 = 0x00000001 (1.401298e-45)
40. add_int $69 += $70
41. copy_slot_masked i = Mask($69)
42. label label 0x0000000B
43. copy_slot_unmasked $69 = i
44. copy_constant $70 = 0x0000000A (1.401298e-44)
45. cmplt_int $69 = lessThan($69, $70)
46. merge_loop_mask LoopMask &= $69
47. stack_rewind
48. branch_if_any_lanes_active branch_if_any_lanes_active -20 (label 12 at #28)
49. label label 0x0000000A
50. load_loop_mask LoopMask = $68
51. zero_slot_unmasked $68 = 0
52. copy_slot_masked [return_loop].result = Mask($68)
53. load_return_mask RetMask = $67
54. copy_slot_unmasked $67 = [return_loop].result
55. label label 0x00000009
56. copy_constant $68 = 0x00000005 (7.006492e-45)
57. cmpeq_int $67 = equal($67, $68)
58. zero_slot_unmasked $15 = 0
59. merge_condition_mask CondMask = $66 & $67
60. branch_if_no_lanes_active branch_if_no_lanes_active +38 (label 8 at #98)
61. copy_slot_unmasked five = five
62. zero_2_slots_unmasked sum, i = 0
63. store_loop_mask $16 = LoopMask
64. jump jump +20 (label 15 at #84)
65. label label 0x00000010
66. zero_slot_unmasked $12 = 0
67. store_condition_mask $17 = CondMask
68. copy_slot_unmasked $18 = i
69. copy_slot_unmasked $19 = five
70. cmplt_int $18 = lessThan($18, $19)
71. merge_condition_mask CondMask = $17 & $18
72. copy_constant $13 = 0xFFFFFFFF
73. copy_slot_masked $12 = Mask($13)
74. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask)
75. load_condition_mask CondMask = $17
76. copy_2_slots_unmasked $17..18 = sum, i
77. add_int $17 += $18
78. copy_slot_masked sum = Mask($17)
79. reenable_loop_mask LoopMask |= $12
80. copy_slot_unmasked $17 = i
81. copy_constant $18 = 0x00000001 (1.401298e-45)
82. add_int $17 += $18
83. copy_slot_masked i = Mask($17)
84. label label 0x0000000F
85. copy_slot_unmasked $17 = i
86. copy_slot_unmasked $18 = kTen
87. cmplt_int $17 = lessThan($17, $18)
88. merge_loop_mask LoopMask &= $17
89. stack_rewind
90. branch_if_any_lanes_active branch_if_any_lanes_active -25 (label 16 at #65)
91. label label 0x0000000E
92. load_loop_mask LoopMask = $16
93. copy_slot_unmasked $16 = sum
94. label label 0x0000000D
95. copy_constant $17 = 0x00000023 (4.904545e-44)
96. cmpeq_int $16 = equal($16, $17)
97. copy_slot_masked $15 = Mask($16)
98. label label 0x00000008
99. load_condition_mask CondMask = $66
100. zero_slot_unmasked $61 = 0
101. merge_condition_mask CondMask = $14 & $15
102. branch_if_no_lanes_active branch_if_no_lanes_active +38 (label 7 at #140)
103. copy_constant five = 0x00000005 (7.006492e-45)
104. zero_slot_unmasked sum = 0
105. copy_constant kOne = 0x00000001 (1.401298e-45)
106. zero_slot_unmasked i = 0
107. store_loop_mask $62 = LoopMask
108. jump jump +18 (label 19 at #126)
109. label label 0x00000014
110. store_condition_mask $63 = CondMask
111. copy_slot_unmasked $64 = five
112. copy_slot_unmasked $65 = i
113. cmplt_int $64 = lessThan($64, $65)
114. merge_condition_mask CondMask = $63 & $64
115. branch_if_all_lanes_active branch_if_all_lanes_active +18 (label 18 at #133)
116. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask)
117. load_condition_mask CondMask = $63
118. copy_slot_unmasked $63 = sum
119. copy_slot_unmasked $64 = i
120. add_int $63 += $64
121. copy_slot_masked sum = Mask($63)
122. copy_slot_unmasked $63 = i
123. copy_slot_unmasked $64 = kOne
124. add_int $63 += $64
125. copy_slot_masked i = Mask($63)
126. label label 0x00000013
127. copy_slot_unmasked $63 = i
128. copy_constant $64 = 0x0000000A (1.401298e-44)
129. cmplt_int $63 = lessThan($63, $64)
130. merge_loop_mask LoopMask &= $63
131. stack_rewind
132. branch_if_any_lanes_active branch_if_any_lanes_active -23 (label 20 at #109)
133. label label 0x00000012
134. load_loop_mask LoopMask = $62
135. copy_slot_unmasked $62 = sum
136. label label 0x00000011
137. copy_constant $63 = 0x0000000F (2.101948e-44)
138. cmpeq_int $62 = equal($62, $63)
139. copy_slot_masked $61 = Mask($62)
140. label label 0x00000007
141. load_condition_mask CondMask = $14
142. zero_slot_unmasked $73 = 0
143. merge_condition_mask CondMask = $60 & $61
144. branch_if_no_lanes_active branch_if_no_lanes_active +28 (label 6 at #172)
145. copy_constant $74 = 0x00000009 (1.261169e-44)
146. swizzle_4 $74..77 = ($74..77).xxxx
147. copy_4_slots_unmasked result = $74..77
148. branch_if_no_lanes_active branch_if_no_lanes_active +13 (label 22 at #161)
149. copy_constant i = 0x00000001 (1.401298e-45)
150. label label 0x00000017
151. copy_4_slots_unmasked $74..77 = result(1..3), i
152. copy_4_slots_masked result = Mask($74..77)
153. copy_slot_unmasked $74 = i
154. copy_constant $75 = 0x00000001 (1.401298e-45)
155. add_int $74 += $75
156. copy_slot_masked i = Mask($74)
157. copy_constant $75 = 0x00000003 (4.203895e-45)
158. cmple_int $74 = lessThanEqual($74, $75)
159. stack_rewind
160. branch_if_no_active_lanes_eq branch -10 (label 23 at #150) if no lanes of $74 == 0x00000000 (0.0)
161. label label 0x00000016
162. copy_4_slots_unmasked $74..77 = result
163. copy_constant $78 = 0x00000009 (1.261169e-44)
164. copy_constant $79 = 0x00000001 (1.401298e-45)
165. copy_constant $80 = 0x00000002 (2.802597e-45)
166. copy_constant $81 = 0x00000003 (4.203895e-45)
167. cmpeq_4_ints $74..77 = equal($74..77, $78..81)
168. bitwise_and_2_ints $74..75 &= $76..77
169. bitwise_and_int $74 &= $75
170. label label 0x00000015
171. copy_slot_masked $73 = Mask($74)
172. label label 0x00000006
173. load_condition_mask CondMask = $60
174. zero_slot_unmasked $31 = 0
175. merge_condition_mask CondMask = $72 & $73
176. branch_if_no_lanes_active branch_if_no_lanes_active +28 (label 5 at #204)
177. copy_constant $32 = 0x00000009 (1.261169e-44)
178. swizzle_4 $32..35 = ($32..35).xxxx
179. copy_4_slots_unmasked result = $32..35
180. branch_if_no_lanes_active branch_if_no_lanes_active +13 (label 25 at #193)
181. copy_constant i = 0x00000001 (1.401298e-45)
182. label label 0x0000001A
183. copy_4_slots_unmasked $32..35 = result₁(1..3), i
184. copy_4_slots_masked result = Mask($32..35)
185. copy_slot_unmasked $32 = i
186. copy_constant $33 = 0x00000001 (1.401298e-45)
187. add_int $32 += $33
188. copy_slot_masked i = Mask($32)
189. copy_constant $33 = 0x00000004 (5.605194e-45)
190. cmplt_int $32 = lessThan($32, $33)
191. stack_rewind
192. branch_if_no_active_lanes_eq branch -10 (label 26 at #182) if no lanes of $32 == 0x00000000 (0.0)
193. label label 0x00000019
194. copy_4_slots_unmasked $32..35 = result
195. copy_constant $36 = 0x00000009 (1.261169e-44)
196. copy_constant $37 = 0x00000001 (1.401298e-45)
197. copy_constant $38 = 0x00000002 (2.802597e-45)
198. copy_constant $39 = 0x00000003 (4.203895e-45)
199. cmpeq_4_ints $32..35 = equal($32..35, $36..39)
200. bitwise_and_2_ints $32..33 &= $34..35
201. bitwise_and_int $32 &= $33
202. label label 0x00000018
203. copy_slot_masked $31 = Mask($32)
204. label label 0x00000005
205. load_condition_mask CondMask = $72
206. zero_slot_unmasked $51 = 0
207. merge_condition_mask CondMask = $30 & $31
208. branch_if_no_lanes_active branch_if_no_lanes_active +29 (label 4 at #237)
209. copy_constant $52 = 0x00000009 (1.261169e-44)
210. swizzle_4 $52..55 = ($52..55).xxxx
211. copy_4_slots_unmasked result = $52..55
212. branch_if_no_lanes_active branch_if_no_lanes_active +14 (label 28 at #226)
213. copy_constant i = 0x00000003 (4.203895e-45)
214. label label 0x0000001D
215. copy_4_slots_unmasked $52..55 = result₂(1..3), i
216. copy_4_slots_masked result = Mask($52..55)
217. copy_slot_unmasked $52 = i
218. copy_constant $53 = 0x00000001 (1.401298e-45)
219. sub_int $52 -= $53
220. copy_slot_masked i = Mask($52)
221. copy_constant $52 = 0x00000001 (1.401298e-45)
222. copy_slot_unmasked $53 = i
223. cmple_int $52 = lessThanEqual($52, $53)
224. stack_rewind
225. branch_if_no_active_lanes_eq branch -11 (label 29 at #214) if no lanes of $52 == 0x00000000 (0.0)
226. label label 0x0000001C
227. copy_4_slots_unmasked $52..55 = result
228. copy_constant $56 = 0x00000009 (1.261169e-44)
229. copy_constant $57 = 0x00000003 (4.203895e-45)
230. copy_constant $58 = 0x00000002 (2.802597e-45)
231. copy_constant $59 = 0x00000001 (1.401298e-45)
232. cmpeq_4_ints $52..55 = equal($52..55, $56..59)
233. bitwise_and_2_ints $52..53 &= $54..55
234. bitwise_and_int $52 &= $53
235. label label 0x0000001B
236. copy_slot_masked $51 = Mask($52)
237. label label 0x00000004
238. load_condition_mask CondMask = $30
239. zero_slot_unmasked $41 = 0
240. merge_condition_mask CondMask = $50 & $51
241. branch_if_no_lanes_active branch_if_no_lanes_active +29 (label 3 at #270)
242. copy_constant $42 = 0x00000009 (1.261169e-44)
243. swizzle_4 $42..45 = ($42..45).xxxx
244. copy_4_slots_unmasked result = $42..45
245. branch_if_no_lanes_active branch_if_no_lanes_active +14 (label 31 at #259)
246. copy_constant i = 0x00000003 (4.203895e-45)
247. label label 0x00000020
248. copy_4_slots_unmasked $42..45 = result₃(1..3), i
249. copy_4_slots_masked result = Mask($42..45)
250. copy_slot_unmasked $42 = i
251. copy_constant $43 = 0x00000001 (1.401298e-45)
252. sub_int $42 -= $43
253. copy_slot_masked i = Mask($42)
254. zero_slot_unmasked $42 = 0
255. copy_slot_unmasked $43 = i
256. cmplt_int $42 = lessThan($42, $43)
257. stack_rewind
258. branch_if_no_active_lanes_eq branch -11 (label 32 at #247) if no lanes of $42 == 0x00000000 (0.0)
259. label label 0x0000001F
260. copy_4_slots_unmasked $42..45 = result
261. copy_constant $46 = 0x00000009 (1.261169e-44)
262. copy_constant $47 = 0x00000003 (4.203895e-45)
263. copy_constant $48 = 0x00000002 (2.802597e-45)
264. copy_constant $49 = 0x00000001 (1.401298e-45)
265. cmpeq_4_ints $42..45 = equal($42..45, $46..49)
266. bitwise_and_2_ints $42..43 &= $44..45
267. bitwise_and_int $42 &= $43
268. label label 0x0000001E
269. copy_slot_masked $41 = Mask($42)
270. label label 0x00000003
271. load_condition_mask CondMask = $50
272. zero_slot_unmasked $21 = 0
273. merge_condition_mask CondMask = $40 & $41
274. branch_if_no_lanes_active branch_if_no_lanes_active +20 (label 2 at #294)
275. copy_constant $22 = 0x00000009 (1.261169e-44)
276. swizzle_4 $22..25 = ($22..25).xxxx
277. copy_4_slots_unmasked result = $22..25
278. branch_if_no_lanes_active branch_if_no_lanes_active +5 (label 34 at #283)
279. copy_constant i = 0x00000001 (1.401298e-45)
280. label label 0x00000023
281. copy_4_slots_unmasked $22..25 = result₄(1..3), i
282. copy_4_slots_masked result = Mask($22..25)
283. label label 0x00000022
284. copy_4_slots_unmasked $22..25 = result
285. copy_constant $26 = 0x00000009 (1.261169e-44)
286. copy_constant $27 = 0x00000009 (1.261169e-44)
287. copy_constant $28 = 0x00000009 (1.261169e-44)
288. copy_constant $29 = 0x00000001 (1.401298e-45)
289. cmpeq_4_ints $22..25 = equal($22..25, $26..29)
290. bitwise_and_2_ints $22..23 &= $24..25
291. bitwise_and_int $22 &= $23
292. label label 0x00000021
293. copy_slot_masked $21 = Mask($22)
294. label label 0x00000002
295. load_condition_mask CondMask = $40
296. zero_slot_unmasked $0 = 0
297. merge_condition_mask CondMask = $20 & $21
298. branch_if_no_lanes_active branch_if_no_lanes_active +28 (label 1 at #326)
299. copy_constant $1 = 0x00000009 (1.261169e-44)
300. swizzle_4 $1..4 = ($1..4).xxxx
301. copy_4_slots_unmasked result = $1..4
302. branch_if_no_lanes_active branch_if_no_lanes_active +13 (label 37 at #315)
303. copy_constant i = 0x00000001 (1.401298e-45)
304. label label 0x00000026
305. copy_4_slots_unmasked $1..4 = result₅(1..3), i
306. copy_4_slots_masked result = Mask($1..4)
307. copy_slot_unmasked $1 = i
308. copy_constant $2 = 0x00000001 (1.401298e-45)
309. add_int $1 += $2
310. copy_slot_masked i = Mask($1)
311. copy_constant $2 = 0x00000004 (5.605194e-45)
312. cmpne_int $1 = notEqual($1, $2)
313. stack_rewind
314. branch_if_no_active_lanes_eq branch -10 (label 38 at #304) if no lanes of $1 == 0x00000000 (0.0)
315. label label 0x00000025
316. copy_4_slots_unmasked $1..4 = result
317. copy_constant $5 = 0x00000009 (1.261169e-44)
318. copy_constant $6 = 0x00000001 (1.401298e-45)
319. copy_constant $7 = 0x00000002 (2.802597e-45)
320. copy_constant $8 = 0x00000003 (4.203895e-45)
321. cmpeq_4_ints $1..4 = equal($1..4, $5..8)
322. bitwise_and_2_ints $1..2 &= $3..4
323. bitwise_and_int $1 &= $2
324. label label 0x00000024
325. copy_slot_masked $0 = Mask($1)
326. label label 0x00000001
327. load_condition_mask CondMask = $20
328. swizzle_4 $0..3 = ($0..3).xxxx
329. copy_4_constants $4..7 = colorRed
330. copy_4_constants $8..11 = colorGreen
331. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3)
332. load_src src.rgba = $0..3