1. store_device_xy01 $40..43 = DeviceCoords.xy01 | |
2. copy_constant $42 = 0x3F000000 (0.5) | |
3. copy_constant $43 = 0x3F000000 (0.5) | |
4. cmpeq_2_floats $40..41 = equal($40..41, $42..43) | |
5. bitwise_and_int $40 &= $41 | |
6. store_src_rg pos = src.rg | |
7. init_lane_masks CondMask = LoopMask = RetMask = true | |
8. zero_slot_unmasked kZero = 0 | |
9. trace_var TraceVar(kZero) when $40 is true | |
10. copy_constant kTen = 0x41200000 (10.0) | |
11. trace_var TraceVar(kTen) when $40 is true | |
12. trace_enter TraceEnter(half4 main(float2 pos)) when $40 is true | |
13. trace_var TraceVar(pos) when $40 is true | |
14. zero_slot_unmasked $10 = 0 | |
15. copy_slot_unmasked $11 = $40 | |
16. copy_slot_masked $10 = Mask($11) | |
17. trace_scope TraceScope(+1) when $10 is true | |
18. trace_line TraceLine(116) when $40 is true | |
19. copy_slot_unmasked $11 = pos(0) | |
20. copy_constant $12 = colorGreen(1) | |
21. max_float $11 = max($11, $12) | |
22. copy_constant $12 = colorGreen(3) | |
23. min_float $11 = min($11, $12) | |
24. copy_constant $12 = 0x40A00000 (5.0) | |
25. mul_float $11 *= $12 | |
26. copy_slot_unmasked five = $11 | |
27. trace_var TraceVar(five) when $40 is true | |
28. trace_line TraceLine(117) when $40 is true | |
29. store_condition_mask $55 = CondMask | |
30. store_condition_mask $66 = CondMask | |
31. store_condition_mask $44 = CondMask | |
32. store_condition_mask $98 = CondMask | |
33. store_condition_mask $77 = CondMask | |
34. store_condition_mask $33 = CondMask | |
35. store_condition_mask $88 = CondMask | |
36. store_condition_mask $23 = CondMask | |
37. store_condition_mask $0 = CondMask | |
38. branch_if_no_lanes_active branch_if_no_lanes_active +66 (label 10 at #104) | |
39. trace_enter TraceEnter(float return_loop(float five)) when $40 is true | |
40. copy_slot_unmasked five₁ = five | |
41. trace_var TraceVar(five₁) when $40 is true | |
42. store_return_mask $1 = RetMask | |
43. zero_slot_unmasked $2 = 0 | |
44. copy_slot_unmasked $3 = $40 | |
45. copy_slot_masked $2 = Mask($3) | |
46. trace_scope TraceScope(+1) when $2 is true | |
47. zero_slot_unmasked $3 = 0 | |
48. copy_slot_unmasked $4 = $40 | |
49. copy_slot_masked $3 = Mask($4) | |
50. trace_scope TraceScope(+1) when $3 is true | |
51. trace_line TraceLine(8) when $40 is true | |
52. copy_slot_unmasked i = kZero | |
53. trace_var TraceVar(i) when $40 is true | |
54. store_loop_mask $4 = LoopMask | |
55. jump jump +30 (label 12 at #85) | |
56. label label 0x0000000D | |
57. zero_slot_unmasked $5 = 0 | |
58. copy_slot_unmasked $6 = $40 | |
59. copy_slot_masked $5 = Mask($6) | |
60. trace_scope TraceScope(+1) when $5 is true | |
61. trace_line TraceLine(9) when $40 is true | |
62. store_condition_mask $6 = CondMask | |
63. copy_slot_unmasked $7 = i | |
64. copy_slot_unmasked $8 = five₁ | |
65. cmpeq_float $7 = equal($7, $8) | |
66. merge_condition_mask CondMask = $6 & $7 | |
67. zero_slot_unmasked $8 = 0 | |
68. copy_slot_unmasked $9 = $40 | |
69. copy_slot_masked $8 = Mask($9) | |
70. trace_scope TraceScope(+1) when $8 is true | |
71. trace_line TraceLine(9) when $40 is true | |
72. copy_slot_unmasked $9 = i | |
73. copy_slot_masked [return_loop].result = Mask($9) | |
74. trace_var TraceVar([return_loop].result) when $40 is true | |
75. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
76. trace_scope TraceScope(-1) when $8 is true | |
77. load_condition_mask CondMask = $6 | |
78. trace_scope TraceScope(-1) when $5 is true | |
79. trace_line TraceLine(8) when $40 is true | |
80. copy_slot_unmasked $5 = i | |
81. copy_constant $6 = 0x3F800000 (1.0) | |
82. add_float $5 += $6 | |
83. copy_slot_masked i = Mask($5) | |
84. trace_var TraceVar(i) when $40 is true | |
85. label label 0x0000000C | |
86. copy_slot_unmasked $5 = i | |
87. copy_constant $6 = 0x41200000 (10.0) | |
88. cmplt_float $5 = lessThan($5, $6) | |
89. merge_loop_mask LoopMask &= $5 | |
90. stack_rewind | |
91. branch_if_any_lanes_active branch_if_any_lanes_active -35 (label 13 at #56) | |
92. label label 0x0000000B | |
93. load_loop_mask LoopMask = $4 | |
94. trace_scope TraceScope(-1) when $3 is true | |
95. trace_line TraceLine(11) when $40 is true | |
96. zero_slot_unmasked $3 = 0 | |
97. copy_slot_masked [return_loop].result = Mask($3) | |
98. trace_var TraceVar([return_loop].result) when $40 is true | |
99. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
100. trace_scope TraceScope(-1) when $2 is true | |
101. load_return_mask RetMask = $1 | |
102. trace_exit TraceExit(float return_loop(float five)) when $40 is true | |
103. copy_slot_unmasked $1 = [return_loop].result | |
104. label label 0x0000000A | |
105. copy_constant $2 = 0x40A00000 (5.0) | |
106. cmpeq_float $1 = equal($1, $2) | |
107. zero_slot_unmasked $24 = 0 | |
108. merge_condition_mask CondMask = $0 & $1 | |
109. branch_if_no_lanes_active branch_if_no_lanes_active +76 (label 9 at #185) | |
110. trace_enter TraceEnter(float continue_loop(float five)) when $40 is true | |
111. copy_slot_unmasked five₂ = five | |
112. trace_var TraceVar(five₂) when $40 is true | |
113. zero_slot_unmasked $25 = 0 | |
114. copy_slot_unmasked $26 = $40 | |
115. copy_slot_masked $25 = Mask($26) | |
116. trace_scope TraceScope(+1) when $25 is true | |
117. trace_line TraceLine(17) when $40 is true | |
118. zero_slot_unmasked sum = 0 | |
119. trace_var TraceVar(sum) when $40 is true | |
120. zero_slot_unmasked $26 = 0 | |
121. copy_slot_unmasked $27 = $40 | |
122. copy_slot_masked $26 = Mask($27) | |
123. trace_scope TraceScope(+1) when $26 is true | |
124. trace_line TraceLine(18) when $40 is true | |
125. zero_slot_unmasked i₁ = 0 | |
126. trace_var TraceVar(i₁) when $40 is true | |
127. store_loop_mask $27 = LoopMask | |
128. jump jump +36 (label 16 at #164) | |
129. label label 0x00000011 | |
130. zero_slot_unmasked $109 = 0 | |
131. zero_slot_unmasked $28 = 0 | |
132. copy_slot_unmasked $29 = $40 | |
133. copy_slot_masked $28 = Mask($29) | |
134. trace_scope TraceScope(+1) when $28 is true | |
135. trace_line TraceLine(19) when $40 is true | |
136. store_condition_mask $29 = CondMask | |
137. copy_slot_unmasked $30 = i₁ | |
138. copy_slot_unmasked $31 = five₂ | |
139. cmplt_float $30 = lessThan($30, $31) | |
140. merge_condition_mask CondMask = $29 & $30 | |
141. zero_slot_unmasked $31 = 0 | |
142. copy_slot_unmasked $32 = $40 | |
143. copy_slot_masked $31 = Mask($32) | |
144. trace_scope TraceScope(+1) when $31 is true | |
145. trace_line TraceLine(19) when $40 is true | |
146. copy_constant $110 = 0xFFFFFFFF | |
147. copy_slot_masked $109 = Mask($110) | |
148. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
149. trace_scope TraceScope(-1) when $31 is true | |
150. load_condition_mask CondMask = $29 | |
151. trace_line TraceLine(20) when $40 is true | |
152. copy_2_slots_unmasked $29..30 = sum, i₁ | |
153. add_float $29 += $30 | |
154. copy_slot_masked sum = Mask($29) | |
155. trace_var TraceVar(sum) when $40 is true | |
156. trace_scope TraceScope(-1) when $28 is true | |
157. reenable_loop_mask LoopMask |= $109 | |
158. trace_line TraceLine(18) when $40 is true | |
159. copy_slot_unmasked $28 = i₁ | |
160. copy_constant $29 = 0x3F800000 (1.0) | |
161. add_float $28 += $29 | |
162. copy_slot_masked i₁ = Mask($28) | |
163. trace_var TraceVar(i₁) when $40 is true | |
164. label label 0x00000010 | |
165. copy_slot_unmasked $28 = i₁ | |
166. copy_slot_unmasked $29 = kTen | |
167. cmplt_float $28 = lessThan($28, $29) | |
168. merge_loop_mask LoopMask &= $28 | |
169. stack_rewind | |
170. branch_if_any_lanes_active branch_if_any_lanes_active -41 (label 17 at #129) | |
171. label label 0x0000000F | |
172. load_loop_mask LoopMask = $27 | |
173. trace_scope TraceScope(-1) when $26 is true | |
174. trace_line TraceLine(22) when $40 is true | |
175. copy_slot_unmasked $26 = sum | |
176. copy_slot_masked [continue_loop].result = Mask($26) | |
177. trace_var TraceVar([continue_loop].result) when $40 is true | |
178. trace_scope TraceScope(-1) when $25 is true | |
179. trace_exit TraceExit(float continue_loop(float five)) when $40 is true | |
180. copy_slot_unmasked $25 = [continue_loop].result | |
181. label label 0x0000000E | |
182. copy_constant $26 = 0x420C0000 (35.0) | |
183. cmpeq_float $25 = equal($25, $26) | |
184. copy_slot_masked $24 = Mask($25) | |
185. label label 0x00000009 | |
186. load_condition_mask CondMask = $0 | |
187. zero_slot_unmasked $89 = 0 | |
188. merge_condition_mask CondMask = $23 & $24 | |
189. branch_if_no_lanes_active branch_if_no_lanes_active +77 (label 8 at #266) | |
190. trace_enter TraceEnter(float break_loop(float five)) when $40 is true | |
191. copy_slot_unmasked five₃ = five | |
192. trace_var TraceVar(five₃) when $40 is true | |
193. zero_slot_unmasked $90 = 0 | |
194. copy_slot_unmasked $91 = $40 | |
195. copy_slot_masked $90 = Mask($91) | |
196. trace_scope TraceScope(+1) when $90 is true | |
197. trace_line TraceLine(27) when $40 is true | |
198. zero_slot_unmasked sum₁ = 0 | |
199. trace_var TraceVar(sum₁) when $40 is true | |
200. trace_line TraceLine(28) when $40 is true | |
201. copy_constant kOne = 0x3F800000 (1.0) | |
202. trace_var TraceVar(kOne) when $40 is true | |
203. zero_slot_unmasked $91 = 0 | |
204. copy_slot_unmasked $92 = $40 | |
205. copy_slot_masked $91 = Mask($92) | |
206. trace_scope TraceScope(+1) when $91 is true | |
207. trace_line TraceLine(29) when $40 is true | |
208. zero_slot_unmasked i₂ = 0 | |
209. trace_var TraceVar(i₂) when $40 is true | |
210. store_loop_mask $92 = LoopMask | |
211. jump jump +34 (label 20 at #245) | |
212. label label 0x00000015 | |
213. zero_slot_unmasked $93 = 0 | |
214. copy_slot_unmasked $94 = $40 | |
215. copy_slot_masked $93 = Mask($94) | |
216. trace_scope TraceScope(+1) when $93 is true | |
217. trace_line TraceLine(30) when $40 is true | |
218. store_condition_mask $94 = CondMask | |
219. copy_slot_unmasked $95 = five₃ | |
220. copy_slot_unmasked $96 = i₂ | |
221. cmplt_float $95 = lessThan($95, $96) | |
222. merge_condition_mask CondMask = $94 & $95 | |
223. zero_slot_unmasked $96 = 0 | |
224. copy_slot_unmasked $97 = $40 | |
225. copy_slot_masked $96 = Mask($97) | |
226. trace_scope TraceScope(+1) when $96 is true | |
227. trace_line TraceLine(30) when $40 is true | |
228. branch_if_all_lanes_active branch_if_all_lanes_active +24 (label 19 at #252) | |
229. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
230. trace_scope TraceScope(-1) when $96 is true | |
231. load_condition_mask CondMask = $94 | |
232. trace_line TraceLine(31) when $40 is true | |
233. copy_slot_unmasked $94 = sum₁ | |
234. copy_slot_unmasked $95 = i₂ | |
235. add_float $94 += $95 | |
236. copy_slot_masked sum₁ = Mask($94) | |
237. trace_var TraceVar(sum₁) when $40 is true | |
238. trace_scope TraceScope(-1) when $93 is true | |
239. trace_line TraceLine(29) when $40 is true | |
240. copy_slot_unmasked $93 = i₂ | |
241. copy_slot_unmasked $94 = kOne | |
242. add_float $93 += $94 | |
243. copy_slot_masked i₂ = Mask($93) | |
244. trace_var TraceVar(i₂) when $40 is true | |
245. label label 0x00000014 | |
246. copy_slot_unmasked $93 = i₂ | |
247. copy_constant $94 = 0x41200000 (10.0) | |
248. cmplt_float $93 = lessThan($93, $94) | |
249. merge_loop_mask LoopMask &= $93 | |
250. stack_rewind | |
251. branch_if_any_lanes_active branch_if_any_lanes_active -39 (label 21 at #212) | |
252. label label 0x00000013 | |
253. load_loop_mask LoopMask = $92 | |
254. trace_scope TraceScope(-1) when $91 is true | |
255. trace_line TraceLine(33) when $40 is true | |
256. copy_slot_unmasked $91 = sum₁ | |
257. copy_slot_masked [break_loop].result = Mask($91) | |
258. trace_var TraceVar([break_loop].result) when $40 is true | |
259. trace_scope TraceScope(-1) when $90 is true | |
260. trace_exit TraceExit(float break_loop(float five)) when $40 is true | |
261. copy_slot_unmasked $90 = [break_loop].result | |
262. label label 0x00000012 | |
263. copy_constant $91 = 0x41700000 (15.0) | |
264. cmpeq_float $90 = equal($90, $91) | |
265. copy_slot_masked $89 = Mask($90) | |
266. label label 0x00000008 | |
267. load_condition_mask CondMask = $23 | |
268. zero_slot_unmasked $34 = 0 | |
269. merge_condition_mask CondMask = $88 & $89 | |
270. branch_if_no_lanes_active branch_if_no_lanes_active +55 (label 7 at #325) | |
271. trace_enter TraceEnter(float float_loop()) when $40 is true | |
272. zero_slot_unmasked $35 = 0 | |
273. copy_slot_unmasked $36 = $40 | |
274. copy_slot_masked $35 = Mask($36) | |
275. trace_scope TraceScope(+1) when $35 is true | |
276. trace_line TraceLine(38) when $40 is true | |
277. zero_slot_unmasked sum₂ = 0 | |
278. trace_var TraceVar(sum₂) when $40 is true | |
279. zero_slot_unmasked $36 = 0 | |
280. copy_slot_unmasked $37 = $40 | |
281. copy_slot_masked $36 = Mask($37) | |
282. trace_scope TraceScope(+1) when $36 is true | |
283. branch_if_no_lanes_active branch_if_no_lanes_active +26 (label 23 at #309) | |
284. trace_line TraceLine(39) when $40 is true | |
285. copy_constant i₃ = 0x3DFBE76D (0.123) | |
286. trace_var TraceVar(i₃) when $40 is true | |
287. label label 0x00000018 | |
288. zero_slot_unmasked $37 = 0 | |
289. copy_slot_unmasked $38 = $40 | |
290. copy_slot_masked $37 = Mask($38) | |
291. trace_scope TraceScope(+1) when $37 is true | |
292. trace_line TraceLine(40) when $40 is true | |
293. copy_2_slots_unmasked $38..39 = sum₂, i₃ | |
294. add_float $38 += $39 | |
295. copy_slot_masked sum₂ = Mask($38) | |
296. trace_var TraceVar(sum₂) when $40 is true | |
297. trace_scope TraceScope(-1) when $37 is true | |
298. trace_line TraceLine(39) when $40 is true | |
299. copy_slot_unmasked $37 = i₃ | |
300. copy_constant $38 = 0x3DE353F8 (0.111) | |
301. add_float $37 += $38 | |
302. copy_slot_masked i₃ = Mask($37) | |
303. trace_var TraceVar(i₃) when $40 is true | |
304. copy_slot_unmasked $37 = i₃ | |
305. copy_constant $38 = 0x3F19999A (0.6) | |
306. cmplt_float $37 = lessThan($37, $38) | |
307. stack_rewind | |
308. branch_if_no_active_lanes_eq branch -21 (label 24 at #287) if no lanes of $37 == 0x00000000 (0.0) | |
309. label label 0x00000017 | |
310. trace_scope TraceScope(-1) when $36 is true | |
311. trace_line TraceLine(42) when $40 is true | |
312. copy_slot_unmasked $36 = sum₂ | |
313. copy_constant $37 = 0x3FDCCCCD (1.725) | |
314. sub_float $36 -= $37 | |
315. copy_slot_masked [float_loop].result = Mask($36) | |
316. trace_var TraceVar([float_loop].result) when $40 is true | |
317. trace_scope TraceScope(-1) when $35 is true | |
318. trace_exit TraceExit(float float_loop()) when $40 is true | |
319. copy_slot_unmasked $35 = [float_loop].result | |
320. label label 0x00000016 | |
321. abs_float $35 = abs($35) | |
322. copy_constant $36 = 0x3CCCCCCD (0.025) | |
323. cmplt_float $35 = lessThan($35, $36) | |
324. copy_slot_masked $34 = Mask($35) | |
325. label label 0x00000007 | |
326. load_condition_mask CondMask = $88 | |
327. zero_slot_unmasked $78 = 0 | |
328. merge_condition_mask CondMask = $33 & $34 | |
329. branch_if_no_lanes_active branch_if_no_lanes_active +60 (label 6 at #389) | |
330. trace_enter TraceEnter(bool loop_operator_le()) when $40 is true | |
331. zero_slot_unmasked $79 = 0 | |
332. copy_slot_unmasked $80 = $40 | |
333. copy_slot_masked $79 = Mask($80) | |
334. trace_scope TraceScope(+1) when $79 is true | |
335. trace_line TraceLine(47) when $40 is true | |
336. trace_line TraceLine(48) when $40 is true | |
337. trace_line TraceLine(50) when $40 is true | |
338. copy_constant $80 = 0x41100000 (9.0) | |
339. swizzle_4 $80..83 = ($80..83).xxxx | |
340. copy_4_slots_unmasked result = $80..83 | |
341. trace_var TraceVar(result) when $40 is true | |
342. zero_slot_unmasked $80 = 0 | |
343. copy_slot_unmasked $81 = $40 | |
344. copy_slot_masked $80 = Mask($81) | |
345. trace_scope TraceScope(+1) when $80 is true | |
346. branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 26 at #371) | |
347. trace_line TraceLine(51) when $40 is true | |
348. copy_constant i₄ = 0x3F800000 (1.0) | |
349. trace_var TraceVar(i₄) when $40 is true | |
350. label label 0x0000001B | |
351. zero_slot_unmasked $81 = 0 | |
352. copy_slot_unmasked $82 = $40 | |
353. copy_slot_masked $81 = Mask($82) | |
354. trace_scope TraceScope(+1) when $81 is true | |
355. trace_line TraceLine(52) when $40 is true | |
356. copy_4_slots_unmasked $82..85 = result(1..3), i₄ | |
357. copy_4_slots_masked result = Mask($82..85) | |
358. trace_var TraceVar(result) when $40 is true | |
359. trace_scope TraceScope(-1) when $81 is true | |
360. trace_line TraceLine(51) when $40 is true | |
361. copy_slot_unmasked $81 = i₄ | |
362. copy_constant $82 = 0x3F800000 (1.0) | |
363. add_float $81 += $82 | |
364. copy_slot_masked i₄ = Mask($81) | |
365. trace_var TraceVar(i₄) when $40 is true | |
366. copy_slot_unmasked $81 = i₄ | |
367. copy_constant $82 = 0x40400000 (3.0) | |
368. cmple_float $81 = lessThanEqual($81, $82) | |
369. stack_rewind | |
370. branch_if_no_active_lanes_eq branch -20 (label 27 at #350) if no lanes of $81 == 0x00000000 (0.0) | |
371. label label 0x0000001A | |
372. trace_scope TraceScope(-1) when $80 is true | |
373. trace_line TraceLine(54) when $40 is true | |
374. copy_4_slots_unmasked $80..83 = result | |
375. copy_constant $84 = 0x41100000 (9.0) | |
376. copy_constant $85 = 0x3F800000 (1.0) | |
377. copy_constant $86 = 0x40000000 (2.0) | |
378. copy_constant $87 = 0x40400000 (3.0) | |
379. cmpeq_4_floats $80..83 = equal($80..83, $84..87) | |
380. bitwise_and_2_ints $80..81 &= $82..83 | |
381. bitwise_and_int $80 &= $81 | |
382. copy_slot_masked [loop_operator_le].result = Mask($80) | |
383. trace_var TraceVar([loop_operator_le].result) when $40 is true | |
384. trace_scope TraceScope(-1) when $79 is true | |
385. trace_exit TraceExit(bool loop_operator_le()) when $40 is true | |
386. copy_slot_unmasked $79 = [loop_operator_le].result | |
387. label label 0x00000019 | |
388. copy_slot_masked $78 = Mask($79) | |
389. label label 0x00000006 | |
390. load_condition_mask CondMask = $33 | |
391. zero_slot_unmasked $99 = 0 | |
392. merge_condition_mask CondMask = $77 & $78 | |
393. branch_if_no_lanes_active branch_if_no_lanes_active +60 (label 5 at #453) | |
394. trace_enter TraceEnter(bool loop_operator_lt()) when $40 is true | |
395. zero_slot_unmasked $100 = 0 | |
396. copy_slot_unmasked $101 = $40 | |
397. copy_slot_masked $100 = Mask($101) | |
398. trace_scope TraceScope(+1) when $100 is true | |
399. trace_line TraceLine(59) when $40 is true | |
400. trace_line TraceLine(60) when $40 is true | |
401. trace_line TraceLine(62) when $40 is true | |
402. copy_constant $101 = 0x41100000 (9.0) | |
403. swizzle_4 $101..104 = ($101..104).xxxx | |
404. copy_4_slots_unmasked result₁ = $101..104 | |
405. trace_var TraceVar(result₁) when $40 is true | |
406. zero_slot_unmasked $101 = 0 | |
407. copy_slot_unmasked $102 = $40 | |
408. copy_slot_masked $101 = Mask($102) | |
409. trace_scope TraceScope(+1) when $101 is true | |
410. branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 29 at #435) | |
411. trace_line TraceLine(63) when $40 is true | |
412. copy_constant i₅ = 0x3F800000 (1.0) | |
413. trace_var TraceVar(i₅) when $40 is true | |
414. label label 0x0000001E | |
415. zero_slot_unmasked $102 = 0 | |
416. copy_slot_unmasked $103 = $40 | |
417. copy_slot_masked $102 = Mask($103) | |
418. trace_scope TraceScope(+1) when $102 is true | |
419. trace_line TraceLine(64) when $40 is true | |
420. copy_4_slots_unmasked $103..106 = result₁(1..3), i₅ | |
421. copy_4_slots_masked result₁ = Mask($103..106) | |
422. trace_var TraceVar(result₁) when $40 is true | |
423. trace_scope TraceScope(-1) when $102 is true | |
424. trace_line TraceLine(63) when $40 is true | |
425. copy_slot_unmasked $102 = i₅ | |
426. copy_constant $103 = 0x3F800000 (1.0) | |
427. add_float $102 += $103 | |
428. copy_slot_masked i₅ = Mask($102) | |
429. trace_var TraceVar(i₅) when $40 is true | |
430. copy_slot_unmasked $102 = i₅ | |
431. copy_constant $103 = 0x40800000 (4.0) | |
432. cmplt_float $102 = lessThan($102, $103) | |
433. stack_rewind | |
434. branch_if_no_active_lanes_eq branch -20 (label 30 at #414) if no lanes of $102 == 0x00000000 (0.0) | |
435. label label 0x0000001D | |
436. trace_scope TraceScope(-1) when $101 is true | |
437. trace_line TraceLine(66) when $40 is true | |
438. copy_4_slots_unmasked $101..104 = result₁ | |
439. copy_constant $105 = 0x41100000 (9.0) | |
440. copy_constant $106 = 0x3F800000 (1.0) | |
441. copy_constant $107 = 0x40000000 (2.0) | |
442. copy_constant $108 = 0x40400000 (3.0) | |
443. cmpeq_4_floats $101..104 = equal($101..104, $105..108) | |
444. bitwise_and_2_ints $101..102 &= $103..104 | |
445. bitwise_and_int $101 &= $102 | |
446. copy_slot_masked [loop_operator_lt].result = Mask($101) | |
447. trace_var TraceVar([loop_operator_lt].result) when $40 is true | |
448. trace_scope TraceScope(-1) when $100 is true | |
449. trace_exit TraceExit(bool loop_operator_lt()) when $40 is true | |
450. copy_slot_unmasked $100 = [loop_operator_lt].result | |
451. label label 0x0000001C | |
452. copy_slot_masked $99 = Mask($100) | |
453. label label 0x00000005 | |
454. load_condition_mask CondMask = $77 | |
455. zero_slot_unmasked $45 = 0 | |
456. merge_condition_mask CondMask = $98 & $99 | |
457. branch_if_no_lanes_active branch_if_no_lanes_active +60 (label 4 at #517) | |
458. trace_enter TraceEnter(bool loop_operator_ge()) when $40 is true | |
459. zero_slot_unmasked $46 = 0 | |
460. copy_slot_unmasked $47 = $40 | |
461. copy_slot_masked $46 = Mask($47) | |
462. trace_scope TraceScope(+1) when $46 is true | |
463. trace_line TraceLine(71) when $40 is true | |
464. trace_line TraceLine(72) when $40 is true | |
465. trace_line TraceLine(74) when $40 is true | |
466. copy_constant $47 = 0x41100000 (9.0) | |
467. swizzle_4 $47..50 = ($47..50).xxxx | |
468. copy_4_slots_unmasked result₂ = $47..50 | |
469. trace_var TraceVar(result₂) when $40 is true | |
470. zero_slot_unmasked $47 = 0 | |
471. copy_slot_unmasked $48 = $40 | |
472. copy_slot_masked $47 = Mask($48) | |
473. trace_scope TraceScope(+1) when $47 is true | |
474. branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 32 at #499) | |
475. trace_line TraceLine(75) when $40 is true | |
476. copy_constant i₆ = 0x40400000 (3.0) | |
477. trace_var TraceVar(i₆) when $40 is true | |
478. label label 0x00000021 | |
479. zero_slot_unmasked $48 = 0 | |
480. copy_slot_unmasked $49 = $40 | |
481. copy_slot_masked $48 = Mask($49) | |
482. trace_scope TraceScope(+1) when $48 is true | |
483. trace_line TraceLine(76) when $40 is true | |
484. copy_4_slots_unmasked $49..52 = result₂(1..3), i₆ | |
485. copy_4_slots_masked result₂ = Mask($49..52) | |
486. trace_var TraceVar(result₂) when $40 is true | |
487. trace_scope TraceScope(-1) when $48 is true | |
488. trace_line TraceLine(75) when $40 is true | |
489. copy_slot_unmasked $48 = i₆ | |
490. copy_constant $49 = 0x3F800000 (1.0) | |
491. sub_float $48 -= $49 | |
492. copy_slot_masked i₆ = Mask($48) | |
493. trace_var TraceVar(i₆) when $40 is true | |
494. copy_constant $48 = 0x3F800000 (1.0) | |
495. copy_slot_unmasked $49 = i₆ | |
496. cmple_float $48 = lessThanEqual($48, $49) | |
497. stack_rewind | |
498. branch_if_no_active_lanes_eq branch -20 (label 33 at #478) if no lanes of $48 == 0x00000000 (0.0) | |
499. label label 0x00000020 | |
500. trace_scope TraceScope(-1) when $47 is true | |
501. trace_line TraceLine(78) when $40 is true | |
502. copy_4_slots_unmasked $47..50 = result₂ | |
503. copy_constant $51 = 0x41100000 (9.0) | |
504. copy_constant $52 = 0x40400000 (3.0) | |
505. copy_constant $53 = 0x40000000 (2.0) | |
506. copy_constant $54 = 0x3F800000 (1.0) | |
507. cmpeq_4_floats $47..50 = equal($47..50, $51..54) | |
508. bitwise_and_2_ints $47..48 &= $49..50 | |
509. bitwise_and_int $47 &= $48 | |
510. copy_slot_masked [loop_operator_ge].result = Mask($47) | |
511. trace_var TraceVar([loop_operator_ge].result) when $40 is true | |
512. trace_scope TraceScope(-1) when $46 is true | |
513. trace_exit TraceExit(bool loop_operator_ge()) when $40 is true | |
514. copy_slot_unmasked $46 = [loop_operator_ge].result | |
515. label label 0x0000001F | |
516. copy_slot_masked $45 = Mask($46) | |
517. label label 0x00000004 | |
518. load_condition_mask CondMask = $98 | |
519. zero_slot_unmasked $67 = 0 | |
520. merge_condition_mask CondMask = $44 & $45 | |
521. branch_if_no_lanes_active branch_if_no_lanes_active +60 (label 3 at #581) | |
522. trace_enter TraceEnter(bool loop_operator_gt()) when $40 is true | |
523. zero_slot_unmasked $68 = 0 | |
524. copy_slot_unmasked $69 = $40 | |
525. copy_slot_masked $68 = Mask($69) | |
526. trace_scope TraceScope(+1) when $68 is true | |
527. trace_line TraceLine(83) when $40 is true | |
528. trace_line TraceLine(84) when $40 is true | |
529. trace_line TraceLine(86) when $40 is true | |
530. copy_constant $69 = 0x41100000 (9.0) | |
531. swizzle_4 $69..72 = ($69..72).xxxx | |
532. copy_4_slots_unmasked result₃ = $69..72 | |
533. trace_var TraceVar(result₃) when $40 is true | |
534. zero_slot_unmasked $69 = 0 | |
535. copy_slot_unmasked $70 = $40 | |
536. copy_slot_masked $69 = Mask($70) | |
537. trace_scope TraceScope(+1) when $69 is true | |
538. branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 35 at #563) | |
539. trace_line TraceLine(87) when $40 is true | |
540. copy_constant i₇ = 0x40400000 (3.0) | |
541. trace_var TraceVar(i₇) when $40 is true | |
542. label label 0x00000024 | |
543. zero_slot_unmasked $70 = 0 | |
544. copy_slot_unmasked $71 = $40 | |
545. copy_slot_masked $70 = Mask($71) | |
546. trace_scope TraceScope(+1) when $70 is true | |
547. trace_line TraceLine(88) when $40 is true | |
548. copy_4_slots_unmasked $71..74 = result₃(1..3), i₇ | |
549. copy_4_slots_masked result₃ = Mask($71..74) | |
550. trace_var TraceVar(result₃) when $40 is true | |
551. trace_scope TraceScope(-1) when $70 is true | |
552. trace_line TraceLine(87) when $40 is true | |
553. copy_slot_unmasked $70 = i₇ | |
554. copy_constant $71 = 0x3F800000 (1.0) | |
555. sub_float $70 -= $71 | |
556. copy_slot_masked i₇ = Mask($70) | |
557. trace_var TraceVar(i₇) when $40 is true | |
558. zero_slot_unmasked $70 = 0 | |
559. copy_slot_unmasked $71 = i₇ | |
560. cmplt_float $70 = lessThan($70, $71) | |
561. stack_rewind | |
562. branch_if_no_active_lanes_eq branch -20 (label 36 at #542) if no lanes of $70 == 0x00000000 (0.0) | |
563. label label 0x00000023 | |
564. trace_scope TraceScope(-1) when $69 is true | |
565. trace_line TraceLine(90) when $40 is true | |
566. copy_4_slots_unmasked $69..72 = result₃ | |
567. copy_constant $73 = 0x41100000 (9.0) | |
568. copy_constant $74 = 0x40400000 (3.0) | |
569. copy_constant $75 = 0x40000000 (2.0) | |
570. copy_constant $76 = 0x3F800000 (1.0) | |
571. cmpeq_4_floats $69..72 = equal($69..72, $73..76) | |
572. bitwise_and_2_ints $69..70 &= $71..72 | |
573. bitwise_and_int $69 &= $70 | |
574. copy_slot_masked [loop_operator_gt].result = Mask($69) | |
575. trace_var TraceVar([loop_operator_gt].result) when $40 is true | |
576. trace_scope TraceScope(-1) when $68 is true | |
577. trace_exit TraceExit(bool loop_operator_gt()) when $40 is true | |
578. copy_slot_unmasked $68 = [loop_operator_gt].result | |
579. label label 0x00000022 | |
580. copy_slot_masked $67 = Mask($68) | |
581. label label 0x00000003 | |
582. load_condition_mask CondMask = $44 | |
583. zero_slot_unmasked $56 = 0 | |
584. merge_condition_mask CondMask = $66 & $67 | |
585. branch_if_no_lanes_active branch_if_no_lanes_active +49 (label 2 at #634) | |
586. trace_enter TraceEnter(bool loop_operator_eq()) when $40 is true | |
587. zero_slot_unmasked $57 = 0 | |
588. copy_slot_unmasked $58 = $40 | |
589. copy_slot_masked $57 = Mask($58) | |
590. trace_scope TraceScope(+1) when $57 is true | |
591. trace_line TraceLine(106) when $40 is true | |
592. trace_line TraceLine(108) when $40 is true | |
593. copy_constant $58 = 0x41100000 (9.0) | |
594. swizzle_4 $58..61 = ($58..61).xxxx | |
595. copy_4_slots_unmasked result₄ = $58..61 | |
596. trace_var TraceVar(result₄) when $40 is true | |
597. zero_slot_unmasked $58 = 0 | |
598. copy_slot_unmasked $59 = $40 | |
599. copy_slot_masked $58 = Mask($59) | |
600. trace_scope TraceScope(+1) when $58 is true | |
601. branch_if_no_lanes_active branch_if_no_lanes_active +15 (label 38 at #616) | |
602. trace_line TraceLine(109) when $40 is true | |
603. copy_constant i₈ = 0x3F800000 (1.0) | |
604. trace_var TraceVar(i₈) when $40 is true | |
605. label label 0x00000027 | |
606. zero_slot_unmasked $59 = 0 | |
607. copy_slot_unmasked $60 = $40 | |
608. copy_slot_masked $59 = Mask($60) | |
609. trace_scope TraceScope(+1) when $59 is true | |
610. trace_line TraceLine(110) when $40 is true | |
611. copy_4_slots_unmasked $60..63 = result₄(1..3), i₈ | |
612. copy_4_slots_masked result₄ = Mask($60..63) | |
613. trace_var TraceVar(result₄) when $40 is true | |
614. trace_scope TraceScope(-1) when $59 is true | |
615. trace_line TraceLine(109) when $40 is true | |
616. label label 0x00000026 | |
617. trace_scope TraceScope(-1) when $58 is true | |
618. trace_line TraceLine(112) when $40 is true | |
619. copy_4_slots_unmasked $58..61 = result₄ | |
620. copy_constant $62 = 0x41100000 (9.0) | |
621. copy_constant $63 = 0x41100000 (9.0) | |
622. copy_constant $64 = 0x41100000 (9.0) | |
623. copy_constant $65 = 0x3F800000 (1.0) | |
624. cmpeq_4_floats $58..61 = equal($58..61, $62..65) | |
625. bitwise_and_2_ints $58..59 &= $60..61 | |
626. bitwise_and_int $58 &= $59 | |
627. copy_slot_masked [loop_operator_eq].result = Mask($58) | |
628. trace_var TraceVar([loop_operator_eq].result) when $40 is true | |
629. trace_scope TraceScope(-1) when $57 is true | |
630. trace_exit TraceExit(bool loop_operator_eq()) when $40 is true | |
631. copy_slot_unmasked $57 = [loop_operator_eq].result | |
632. label label 0x00000025 | |
633. copy_slot_masked $56 = Mask($57) | |
634. label label 0x00000002 | |
635. load_condition_mask CondMask = $66 | |
636. zero_slot_unmasked $11 = 0 | |
637. merge_condition_mask CondMask = $55 & $56 | |
638. branch_if_no_lanes_active branch_if_no_lanes_active +59 (label 1 at #697) | |
639. trace_enter TraceEnter(bool loop_operator_ne()) when $40 is true | |
640. zero_slot_unmasked $12 = 0 | |
641. copy_slot_unmasked $13 = $40 | |
642. copy_slot_masked $12 = Mask($13) | |
643. trace_scope TraceScope(+1) when $12 is true | |
644. trace_line TraceLine(95) when $40 is true | |
645. trace_line TraceLine(97) when $40 is true | |
646. copy_constant $13 = 0x41100000 (9.0) | |
647. swizzle_4 $13..16 = ($13..16).xxxx | |
648. copy_4_slots_unmasked result₅ = $13..16 | |
649. trace_var TraceVar(result₅) when $40 is true | |
650. zero_slot_unmasked $13 = 0 | |
651. copy_slot_unmasked $14 = $40 | |
652. copy_slot_masked $13 = Mask($14) | |
653. trace_scope TraceScope(+1) when $13 is true | |
654. branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 41 at #679) | |
655. trace_line TraceLine(98) when $40 is true | |
656. copy_constant i₉ = 0x3F800000 (1.0) | |
657. trace_var TraceVar(i₉) when $40 is true | |
658. label label 0x0000002A | |
659. zero_slot_unmasked $14 = 0 | |
660. copy_slot_unmasked $15 = $40 | |
661. copy_slot_masked $14 = Mask($15) | |
662. trace_scope TraceScope(+1) when $14 is true | |
663. trace_line TraceLine(99) when $40 is true | |
664. copy_4_slots_unmasked $15..18 = result₅(1..3), i₉ | |
665. copy_4_slots_masked result₅ = Mask($15..18) | |
666. trace_var TraceVar(result₅) when $40 is true | |
667. trace_scope TraceScope(-1) when $14 is true | |
668. trace_line TraceLine(98) when $40 is true | |
669. copy_slot_unmasked $14 = i₉ | |
670. copy_constant $15 = 0x3F800000 (1.0) | |
671. add_float $14 += $15 | |
672. copy_slot_masked i₉ = Mask($14) | |
673. trace_var TraceVar(i₉) when $40 is true | |
674. copy_slot_unmasked $14 = i₉ | |
675. copy_constant $15 = 0x40800000 (4.0) | |
676. cmpne_float $14 = notEqual($14, $15) | |
677. stack_rewind | |
678. branch_if_no_active_lanes_eq branch -20 (label 42 at #658) if no lanes of $14 == 0x00000000 (0.0) | |
679. label label 0x00000029 | |
680. trace_scope TraceScope(-1) when $13 is true | |
681. trace_line TraceLine(101) when $40 is true | |
682. copy_4_slots_unmasked $13..16 = result₅ | |
683. copy_constant $17 = 0x41100000 (9.0) | |
684. copy_constant $18 = 0x3F800000 (1.0) | |
685. copy_constant $19 = 0x40000000 (2.0) | |
686. copy_constant $20 = 0x40400000 (3.0) | |
687. cmpeq_4_floats $13..16 = equal($13..16, $17..20) | |
688. bitwise_and_2_ints $13..14 &= $15..16 | |
689. bitwise_and_int $13 &= $14 | |
690. copy_slot_masked [loop_operator_ne].result = Mask($13) | |
691. trace_var TraceVar([loop_operator_ne].result) when $40 is true | |
692. trace_scope TraceScope(-1) when $12 is true | |
693. trace_exit TraceExit(bool loop_operator_ne()) when $40 is true | |
694. copy_slot_unmasked $12 = [loop_operator_ne].result | |
695. label label 0x00000028 | |
696. copy_slot_masked $11 = Mask($12) | |
697. label label 0x00000001 | |
698. load_condition_mask CondMask = $55 | |
699. swizzle_4 $11..14 = ($11..14).xxxx | |
700. copy_4_constants $15..18 = colorRed | |
701. copy_4_constants $19..22 = colorGreen | |
702. mix_4_ints $11..14 = mix($15..18, $19..22, $11..14) | |
703. copy_4_slots_unmasked [main].result = $11..14 | |
704. trace_var TraceVar([main].result) when $40 is true | |
705. trace_scope TraceScope(-1) when $10 is true | |
706. trace_exit TraceExit(half4 main(float2 pos)) when $40 is true | |
707. load_src src.rgba = [main].result |