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