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 $76 = CondMask | |
19. store_condition_mask $60 = CondMask | |
20. store_condition_mask $14 = CondMask | |
21. store_condition_mask $70 = CondMask | |
22. store_condition_mask $8 = CondMask | |
23. branch_if_no_active_lanes branch_if_no_active_lanes +34 (#57) | |
24. store_return_mask $9 = RetMask | |
25. copy_slot_unmasked $10 = five | |
26. copy_slot_unmasked five = $10 | |
27. copy_slot_unmasked $10 = kZero | |
28. copy_slot_unmasked i = $10 | |
29. store_loop_mask $10 = LoopMask | |
30. jump jump +16 (#46) | |
31. zero_slot_unmasked [for-loop continue mask 0] = 0 | |
32. store_condition_mask $11 = CondMask | |
33. copy_slot_unmasked $12 = i | |
34. copy_slot_unmasked $13 = five | |
35. cmpeq_int $12 = equal($12, $13) | |
36. merge_condition_mask CondMask = $11 & $12 | |
37. copy_slot_unmasked $13 = i | |
38. copy_slot_masked [return_loop].result = Mask($13) | |
39. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
40. load_condition_mask CondMask = $11 | |
41. reenable_loop_mask LoopMask |= [for-loop continue mask 0] | |
42. copy_slot_unmasked $11 = i | |
43. copy_constant $12 = 0x00000001 (1.401298e-45) | |
44. add_int $11 += $12 | |
45. copy_slot_masked i = Mask($11) | |
46. copy_slot_unmasked $11 = i | |
47. copy_constant $12 = 0x0000000A (1.401298e-44) | |
48. cmplt_int $11 = lessThan($11, $12) | |
49. merge_loop_mask LoopMask &= $11 | |
50. stack_rewind | |
51. branch_if_any_active_lanes branch_if_any_active_lanes -20 (#31) | |
52. load_loop_mask LoopMask = $10 | |
53. zero_slot_unmasked $10 = 0 | |
54. copy_slot_masked [return_loop].result = Mask($10) | |
55. load_return_mask RetMask = $9 | |
56. copy_slot_unmasked $9 = [return_loop].result | |
57. copy_constant $10 = 0x00000005 (7.006492e-45) | |
58. cmpeq_int $9 = equal($9, $10) | |
59. zero_slot_unmasked $71 = 0 | |
60. merge_condition_mask CondMask = $8 & $9 | |
61. branch_if_no_active_lanes branch_if_no_active_lanes +36 (#97) | |
62. copy_slot_unmasked $72 = five | |
63. copy_slot_unmasked five = $72 | |
64. zero_2_slots_unmasked sum(0..1) = 0 | |
65. store_loop_mask $72 = LoopMask | |
66. jump jump +19 (#85) | |
67. zero_slot_unmasked [for-loop continue mask 1] = 0 | |
68. store_condition_mask $73 = CondMask | |
69. copy_slot_unmasked $74 = i | |
70. copy_slot_unmasked $75 = five | |
71. cmplt_int $74 = lessThan($74, $75) | |
72. merge_condition_mask CondMask = $73 & $74 | |
73. copy_constant $75 = 0xFFFFFFFF | |
74. copy_slot_masked [for-loop continue mask 1] = Mask($75) | |
75. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
76. load_condition_mask CondMask = $73 | |
77. copy_2_slots_unmasked $73..74 = sum(0..1) | |
78. add_int $73 += $74 | |
79. copy_slot_masked sum = Mask($73) | |
80. reenable_loop_mask LoopMask |= [for-loop continue mask 1] | |
81. copy_slot_unmasked $73 = i | |
82. copy_constant $74 = 0x00000001 (1.401298e-45) | |
83. add_int $73 += $74 | |
84. copy_slot_masked i = Mask($73) | |
85. copy_slot_unmasked $73 = i | |
86. copy_slot_unmasked $74 = kTen | |
87. cmplt_int $73 = lessThan($73, $74) | |
88. merge_loop_mask LoopMask &= $73 | |
89. stack_rewind | |
90. branch_if_any_active_lanes branch_if_any_active_lanes -23 (#67) | |
91. load_loop_mask LoopMask = $72 | |
92. copy_slot_unmasked $72 = sum | |
93. copy_slot_masked [continue_loop].result = Mask($72) | |
94. copy_constant $73 = 0x00000023 (4.904545e-44) | |
95. cmpeq_int $72 = equal($72, $73) | |
96. copy_slot_masked $71 = Mask($72) | |
97. load_condition_mask CondMask = $8 | |
98. zero_slot_unmasked $15 = 0 | |
99. merge_condition_mask CondMask = $70 & $71 | |
100. branch_if_no_active_lanes branch_if_no_active_lanes +36 (#136) | |
101. copy_constant five = 0x00000005 (7.006492e-45) | |
102. zero_slot_unmasked sum = 0 | |
103. copy_constant kOne = 0x00000001 (1.401298e-45) | |
104. zero_slot_unmasked i = 0 | |
105. store_loop_mask $16 = LoopMask | |
106. jump jump +18 (#124) | |
107. zero_slot_unmasked [for-loop continue mask 2] = 0 | |
108. store_condition_mask $17 = CondMask | |
109. copy_slot_unmasked $18 = five | |
110. copy_slot_unmasked $19 = i | |
111. cmplt_int $18 = lessThan($18, $19) | |
112. merge_condition_mask CondMask = $17 & $18 | |
113. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
114. load_condition_mask CondMask = $17 | |
115. copy_slot_unmasked $17 = sum | |
116. copy_slot_unmasked $18 = i | |
117. add_int $17 += $18 | |
118. copy_slot_masked sum = Mask($17) | |
119. reenable_loop_mask LoopMask |= [for-loop continue mask 2] | |
120. copy_slot_unmasked $17 = i | |
121. copy_slot_unmasked $18 = kOne | |
122. add_int $17 += $18 | |
123. copy_slot_masked i = Mask($17) | |
124. copy_slot_unmasked $17 = i | |
125. copy_constant $18 = 0x0000000A (1.401298e-44) | |
126. cmplt_int $17 = lessThan($17, $18) | |
127. merge_loop_mask LoopMask &= $17 | |
128. stack_rewind | |
129. branch_if_any_active_lanes branch_if_any_active_lanes -22 (#107) | |
130. load_loop_mask LoopMask = $16 | |
131. copy_slot_unmasked $16 = sum | |
132. copy_slot_masked [break_loop].result = Mask($16) | |
133. copy_constant $17 = 0x0000000F (2.101948e-44) | |
134. cmpeq_int $16 = equal($16, $17) | |
135. copy_slot_masked $15 = Mask($16) | |
136. load_condition_mask CondMask = $70 | |
137. zero_slot_unmasked $61 = 0 | |
138. merge_condition_mask CondMask = $14 & $15 | |
139. branch_if_no_active_lanes branch_if_no_active_lanes +32 (#171) | |
140. copy_constant $62 = 0x00000009 (1.261169e-44) | |
141. swizzle_4 $62..65 = ($62..65).xxxx | |
142. copy_4_slots_unmasked result = $62..65 | |
143. copy_constant i = 0x00000001 (1.401298e-45) | |
144. store_loop_mask $62 = LoopMask | |
145. jump jump +9 (#154) | |
146. zero_slot_unmasked [for-loop continue mask 3] = 0 | |
147. copy_4_slots_unmasked $63..66 = result | |
148. copy_4_slots_masked result = Mask($63..66) | |
149. reenable_loop_mask LoopMask |= [for-loop continue mask 3] | |
150. copy_slot_unmasked $63 = i | |
151. copy_constant $64 = 0x00000001 (1.401298e-45) | |
152. add_int $63 += $64 | |
153. copy_slot_masked i = Mask($63) | |
154. copy_slot_unmasked $63 = i | |
155. copy_constant $64 = 0x00000003 (4.203895e-45) | |
156. cmple_int $63 = lessThanEqual($63, $64) | |
157. merge_loop_mask LoopMask &= $63 | |
158. stack_rewind | |
159. branch_if_any_active_lanes branch_if_any_active_lanes -13 (#146) | |
160. load_loop_mask LoopMask = $62 | |
161. copy_4_slots_unmasked $62..65 = result | |
162. copy_constant $66 = 0x00000009 (1.261169e-44) | |
163. copy_constant $67 = 0x00000001 (1.401298e-45) | |
164. copy_constant $68 = 0x00000002 (2.802597e-45) | |
165. copy_constant $69 = 0x00000003 (4.203895e-45) | |
166. cmpeq_4_ints $62..65 = equal($62..65, $66..69) | |
167. bitwise_and_2_ints $62..63 &= $64..65 | |
168. bitwise_and_int $62 &= $63 | |
169. copy_slot_masked [loop_operator_le].result = Mask($62) | |
170. copy_slot_masked $61 = Mask($62) | |
171. load_condition_mask CondMask = $14 | |
172. zero_slot_unmasked $77 = 0 | |
173. merge_condition_mask CondMask = $60 & $61 | |
174. branch_if_no_active_lanes branch_if_no_active_lanes +32 (#206) | |
175. copy_constant $78 = 0x00000009 (1.261169e-44) | |
176. swizzle_4 $78..81 = ($78..81).xxxx | |
177. copy_4_slots_unmasked result = $78..81 | |
178. copy_constant i = 0x00000001 (1.401298e-45) | |
179. store_loop_mask $78 = LoopMask | |
180. jump jump +9 (#189) | |
181. zero_slot_unmasked [for-loop continue mask 4] = 0 | |
182. copy_4_slots_unmasked $79..82 = result | |
183. copy_4_slots_masked result = Mask($79..82) | |
184. reenable_loop_mask LoopMask |= [for-loop continue mask 4] | |
185. copy_slot_unmasked $79 = i | |
186. copy_constant $80 = 0x00000001 (1.401298e-45) | |
187. add_int $79 += $80 | |
188. copy_slot_masked i = Mask($79) | |
189. copy_slot_unmasked $79 = i | |
190. copy_constant $80 = 0x00000004 (5.605194e-45) | |
191. cmplt_int $79 = lessThan($79, $80) | |
192. merge_loop_mask LoopMask &= $79 | |
193. stack_rewind | |
194. branch_if_any_active_lanes branch_if_any_active_lanes -13 (#181) | |
195. load_loop_mask LoopMask = $78 | |
196. copy_4_slots_unmasked $78..81 = result | |
197. copy_constant $82 = 0x00000009 (1.261169e-44) | |
198. copy_constant $83 = 0x00000001 (1.401298e-45) | |
199. copy_constant $84 = 0x00000002 (2.802597e-45) | |
200. copy_constant $85 = 0x00000003 (4.203895e-45) | |
201. cmpeq_4_ints $78..81 = equal($78..81, $82..85) | |
202. bitwise_and_2_ints $78..79 &= $80..81 | |
203. bitwise_and_int $78 &= $79 | |
204. copy_slot_masked [loop_operator_lt].result = Mask($78) | |
205. copy_slot_masked $77 = Mask($78) | |
206. load_condition_mask CondMask = $60 | |
207. zero_slot_unmasked $31 = 0 | |
208. merge_condition_mask CondMask = $76 & $77 | |
209. branch_if_no_active_lanes branch_if_no_active_lanes +32 (#241) | |
210. copy_constant $32 = 0x00000009 (1.261169e-44) | |
211. swizzle_4 $32..35 = ($32..35).xxxx | |
212. copy_4_slots_unmasked result = $32..35 | |
213. copy_constant i = 0x00000003 (4.203895e-45) | |
214. store_loop_mask $32 = LoopMask | |
215. jump jump +9 (#224) | |
216. zero_slot_unmasked [for-loop continue mask 5] = 0 | |
217. copy_4_slots_unmasked $33..36 = result | |
218. copy_4_slots_masked result = Mask($33..36) | |
219. reenable_loop_mask LoopMask |= [for-loop continue mask 5] | |
220. copy_slot_unmasked $33 = i | |
221. copy_constant $34 = 0x00000001 (1.401298e-45) | |
222. sub_int $33 -= $34 | |
223. copy_slot_masked i = Mask($33) | |
224. copy_constant $33 = 0x00000001 (1.401298e-45) | |
225. copy_slot_unmasked $34 = i | |
226. cmple_int $33 = lessThanEqual($33, $34) | |
227. merge_loop_mask LoopMask &= $33 | |
228. stack_rewind | |
229. branch_if_any_active_lanes branch_if_any_active_lanes -13 (#216) | |
230. load_loop_mask LoopMask = $32 | |
231. copy_4_slots_unmasked $32..35 = result | |
232. copy_constant $36 = 0x00000009 (1.261169e-44) | |
233. copy_constant $37 = 0x00000003 (4.203895e-45) | |
234. copy_constant $38 = 0x00000002 (2.802597e-45) | |
235. copy_constant $39 = 0x00000001 (1.401298e-45) | |
236. cmpeq_4_ints $32..35 = equal($32..35, $36..39) | |
237. bitwise_and_2_ints $32..33 &= $34..35 | |
238. bitwise_and_int $32 &= $33 | |
239. copy_slot_masked [loop_operator_ge].result = Mask($32) | |
240. copy_slot_masked $31 = Mask($32) | |
241. load_condition_mask CondMask = $76 | |
242. zero_slot_unmasked $51 = 0 | |
243. merge_condition_mask CondMask = $30 & $31 | |
244. branch_if_no_active_lanes branch_if_no_active_lanes +32 (#276) | |
245. copy_constant $52 = 0x00000009 (1.261169e-44) | |
246. swizzle_4 $52..55 = ($52..55).xxxx | |
247. copy_4_slots_unmasked result = $52..55 | |
248. copy_constant i = 0x00000003 (4.203895e-45) | |
249. store_loop_mask $52 = LoopMask | |
250. jump jump +9 (#259) | |
251. zero_slot_unmasked [for-loop continue mask 6] = 0 | |
252. copy_4_slots_unmasked $53..56 = result | |
253. copy_4_slots_masked result = Mask($53..56) | |
254. reenable_loop_mask LoopMask |= [for-loop continue mask 6] | |
255. copy_slot_unmasked $53 = i | |
256. copy_constant $54 = 0x00000001 (1.401298e-45) | |
257. sub_int $53 -= $54 | |
258. copy_slot_masked i = Mask($53) | |
259. zero_slot_unmasked $53 = 0 | |
260. copy_slot_unmasked $54 = i | |
261. cmplt_int $53 = lessThan($53, $54) | |
262. merge_loop_mask LoopMask &= $53 | |
263. stack_rewind | |
264. branch_if_any_active_lanes branch_if_any_active_lanes -13 (#251) | |
265. load_loop_mask LoopMask = $52 | |
266. copy_4_slots_unmasked $52..55 = result | |
267. copy_constant $56 = 0x00000009 (1.261169e-44) | |
268. copy_constant $57 = 0x00000003 (4.203895e-45) | |
269. copy_constant $58 = 0x00000002 (2.802597e-45) | |
270. copy_constant $59 = 0x00000001 (1.401298e-45) | |
271. cmpeq_4_ints $52..55 = equal($52..55, $56..59) | |
272. bitwise_and_2_ints $52..53 &= $54..55 | |
273. bitwise_and_int $52 &= $53 | |
274. copy_slot_masked [loop_operator_gt].result = Mask($52) | |
275. copy_slot_masked $51 = Mask($52) | |
276. load_condition_mask CondMask = $30 | |
277. zero_slot_unmasked $41 = 0 | |
278. merge_condition_mask CondMask = $50 & $51 | |
279. branch_if_no_active_lanes branch_if_no_active_lanes +32 (#311) | |
280. copy_constant $42 = 0x00000009 (1.261169e-44) | |
281. swizzle_4 $42..45 = ($42..45).xxxx | |
282. copy_4_slots_unmasked result = $42..45 | |
283. copy_constant i = 0x00000001 (1.401298e-45) | |
284. store_loop_mask $42 = LoopMask | |
285. jump jump +9 (#294) | |
286. zero_slot_unmasked [for-loop continue mask 7] = 0 | |
287. copy_4_slots_unmasked $43..46 = result | |
288. copy_4_slots_masked result = Mask($43..46) | |
289. reenable_loop_mask LoopMask |= [for-loop continue mask 7] | |
290. copy_slot_unmasked $43 = i | |
291. copy_constant $44 = 0x00000001 (1.401298e-45) | |
292. add_int $43 += $44 | |
293. copy_slot_masked i = Mask($43) | |
294. copy_slot_unmasked $43 = i | |
295. copy_constant $44 = 0x00000001 (1.401298e-45) | |
296. cmpeq_int $43 = equal($43, $44) | |
297. merge_loop_mask LoopMask &= $43 | |
298. stack_rewind | |
299. branch_if_any_active_lanes branch_if_any_active_lanes -13 (#286) | |
300. load_loop_mask LoopMask = $42 | |
301. copy_4_slots_unmasked $42..45 = result | |
302. copy_constant $46 = 0x00000009 (1.261169e-44) | |
303. copy_constant $47 = 0x00000009 (1.261169e-44) | |
304. copy_constant $48 = 0x00000009 (1.261169e-44) | |
305. copy_constant $49 = 0x00000001 (1.401298e-45) | |
306. cmpeq_4_ints $42..45 = equal($42..45, $46..49) | |
307. bitwise_and_2_ints $42..43 &= $44..45 | |
308. bitwise_and_int $42 &= $43 | |
309. copy_slot_masked [loop_operator_eq].result = Mask($42) | |
310. copy_slot_masked $41 = Mask($42) | |
311. load_condition_mask CondMask = $50 | |
312. zero_slot_unmasked $21 = 0 | |
313. merge_condition_mask CondMask = $40 & $41 | |
314. branch_if_no_active_lanes branch_if_no_active_lanes +32 (#346) | |
315. copy_constant $22 = 0x00000009 (1.261169e-44) | |
316. swizzle_4 $22..25 = ($22..25).xxxx | |
317. copy_4_slots_unmasked result = $22..25 | |
318. copy_constant i = 0x00000001 (1.401298e-45) | |
319. store_loop_mask $22 = LoopMask | |
320. jump jump +9 (#329) | |
321. zero_slot_unmasked [for-loop continue mask 8] = 0 | |
322. copy_4_slots_unmasked $23..26 = result | |
323. copy_4_slots_masked result = Mask($23..26) | |
324. reenable_loop_mask LoopMask |= [for-loop continue mask 8] | |
325. copy_slot_unmasked $23 = i | |
326. copy_constant $24 = 0x00000001 (1.401298e-45) | |
327. add_int $23 += $24 | |
328. copy_slot_masked i = Mask($23) | |
329. copy_slot_unmasked $23 = i | |
330. copy_constant $24 = 0x00000004 (5.605194e-45) | |
331. cmpne_int $23 = notEqual($23, $24) | |
332. merge_loop_mask LoopMask &= $23 | |
333. stack_rewind | |
334. branch_if_any_active_lanes branch_if_any_active_lanes -13 (#321) | |
335. load_loop_mask LoopMask = $22 | |
336. copy_4_slots_unmasked $22..25 = result | |
337. copy_constant $26 = 0x00000009 (1.261169e-44) | |
338. copy_constant $27 = 0x00000001 (1.401298e-45) | |
339. copy_constant $28 = 0x00000002 (2.802597e-45) | |
340. copy_constant $29 = 0x00000003 (4.203895e-45) | |
341. cmpeq_4_ints $22..25 = equal($22..25, $26..29) | |
342. bitwise_and_2_ints $22..23 &= $24..25 | |
343. bitwise_and_int $22 &= $23 | |
344. copy_slot_masked [loop_operator_ne].result = Mask($22) | |
345. copy_slot_masked $21 = Mask($22) | |
346. load_condition_mask CondMask = $40 | |
347. copy_4_constants $0..3 = colorRed | |
348. merge_condition_mask CondMask = $20 & $21 | |
349. copy_4_constants $4..7 = colorGreen | |
350. copy_4_slots_masked $0..3 = Mask($4..7) | |
351. load_condition_mask CondMask = $20 | |
352. copy_4_slots_unmasked [main].result = $0..3 | |
353. load_src src.rgba = [main].result |