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