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