1. store_src_rg xy = src.rg | |
2. init_lane_masks CondMask = LoopMask = RetMask = true | |
3. store_condition_mask $12 = CondMask | |
4. store_condition_mask $22 = CondMask | |
5. store_condition_mask $25 = CondMask | |
6. store_condition_mask $17 = CondMask | |
7. store_condition_mask $39 = CondMask | |
8. store_condition_mask $31 = CondMask | |
9. store_condition_mask $8 = CondMask | |
10. store_condition_mask $35 = CondMask | |
11. branch_if_no_active_lanes branch_if_no_active_lanes +15 (#26) | |
12. store_return_mask $36 = RetMask | |
13. store_loop_mask $37 = LoopMask | |
14. zero_slot_unmasked [temporary 0] = 0 | |
15. copy_constant $38 = 0xFFFFFFFF | |
16. copy_slot_masked [test_return].result = Mask($38) | |
17. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
18. reenable_loop_mask LoopMask |= [temporary 0] | |
19. zero_slot_unmasked $38 = 0 | |
20. merge_loop_mask LoopMask &= $38 | |
21. stack_rewind | |
22. branch_if_any_active_lanes branch_if_any_active_lanes -8 (#14) | |
23. load_loop_mask LoopMask = $37 | |
24. load_return_mask RetMask = $36 | |
25. copy_slot_unmasked $36 = [test_return].result | |
26. zero_slot_unmasked $9 = 0 | |
27. merge_condition_mask CondMask = $35 & $36 | |
28. branch_if_no_active_lanes branch_if_no_active_lanes +13 (#41) | |
29. store_loop_mask $10 = LoopMask | |
30. zero_slot_unmasked [temporary 0] = 0 | |
31. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
32. reenable_loop_mask LoopMask |= [temporary 0] | |
33. zero_slot_unmasked $11 = 0 | |
34. merge_loop_mask LoopMask &= $11 | |
35. stack_rewind | |
36. branch_if_any_active_lanes branch_if_any_active_lanes -6 (#30) | |
37. load_loop_mask LoopMask = $10 | |
38. copy_constant $10 = 0xFFFFFFFF | |
39. copy_slot_masked [test_break].result = Mask($10) | |
40. copy_slot_masked $9 = Mask($10) | |
41. load_condition_mask CondMask = $35 | |
42. zero_slot_unmasked $32 = 0 | |
43. merge_condition_mask CondMask = $8 & $9 | |
44. branch_if_no_active_lanes branch_if_no_active_lanes +15 (#59) | |
45. store_loop_mask $33 = LoopMask | |
46. zero_slot_unmasked [temporary 0] = 0 | |
47. copy_constant $34 = 0xFFFFFFFF | |
48. copy_slot_masked [temporary 0] = Mask($34) | |
49. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
50. reenable_loop_mask LoopMask |= [temporary 0] | |
51. zero_slot_unmasked $34 = 0 | |
52. merge_loop_mask LoopMask &= $34 | |
53. stack_rewind | |
54. branch_if_any_active_lanes branch_if_any_active_lanes -8 (#46) | |
55. load_loop_mask LoopMask = $33 | |
56. copy_constant $33 = 0xFFFFFFFF | |
57. copy_slot_masked [test_continue].result = Mask($33) | |
58. copy_slot_masked $32 = Mask($33) | |
59. load_condition_mask CondMask = $8 | |
60. zero_slot_unmasked $40 = 0 | |
61. merge_condition_mask CondMask = $31 & $32 | |
62. branch_if_no_active_lanes branch_if_no_active_lanes +27 (#89) | |
63. store_return_mask $41 = RetMask | |
64. store_loop_mask $42 = LoopMask | |
65. zero_slot_unmasked [temporary 0] = 0 | |
66. zero_slot_unmasked $43 = 0 | |
67. copy_constant $44 = colorGreen(1) | |
68. cmplt_float $43 = lessThan($43, $44) | |
69. branch_if_no_active_lanes_eq branch +5 (#74) if no lanes of $43 == 0xFFFFFFFF | |
70. copy_constant $44 = 0xFFFFFFFF | |
71. copy_slot_masked [test_if_return].result = Mask($44) | |
72. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
73. jump jump +2 (#75) | |
74. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
75. copy_constant $43 = 0xFFFFFFFF | |
76. copy_slot_masked [temporary 0] = Mask($43) | |
77. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
78. reenable_loop_mask LoopMask |= [temporary 0] | |
79. zero_slot_unmasked $43 = 0 | |
80. merge_loop_mask LoopMask &= $43 | |
81. stack_rewind | |
82. branch_if_any_active_lanes branch_if_any_active_lanes -17 (#65) | |
83. load_loop_mask LoopMask = $42 | |
84. zero_slot_unmasked $42 = 0 | |
85. copy_slot_masked [test_if_return].result = Mask($42) | |
86. load_return_mask RetMask = $41 | |
87. copy_slot_unmasked $41 = [test_if_return].result | |
88. copy_slot_masked $40 = Mask($41) | |
89. load_condition_mask CondMask = $31 | |
90. zero_slot_unmasked $18 = 0 | |
91. merge_condition_mask CondMask = $39 & $40 | |
92. branch_if_no_active_lanes branch_if_no_active_lanes +21 (#113) | |
93. store_loop_mask $19 = LoopMask | |
94. zero_slot_unmasked [temporary 0] = 0 | |
95. zero_slot_unmasked $20 = 0 | |
96. copy_constant $21 = colorGreen(1) | |
97. cmplt_float $20 = lessThan($20, $21) | |
98. branch_if_no_active_lanes_eq branch +3 (#101) if no lanes of $20 == 0xFFFFFFFF | |
99. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
100. jump jump +4 (#104) | |
101. copy_constant $21 = 0xFFFFFFFF | |
102. copy_slot_masked [temporary 0] = Mask($21) | |
103. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
104. reenable_loop_mask LoopMask |= [temporary 0] | |
105. zero_slot_unmasked $20 = 0 | |
106. merge_loop_mask LoopMask &= $20 | |
107. stack_rewind | |
108. branch_if_any_active_lanes branch_if_any_active_lanes -14 (#94) | |
109. load_loop_mask LoopMask = $19 | |
110. copy_constant $19 = 0xFFFFFFFF | |
111. copy_slot_masked [test_if_break].result = Mask($19) | |
112. copy_slot_masked $18 = Mask($19) | |
113. load_condition_mask CondMask = $39 | |
114. zero_slot_unmasked $26 = 0 | |
115. merge_condition_mask CondMask = $17 & $18 | |
116. branch_if_no_active_lanes branch_if_no_active_lanes +24 (#140) | |
117. store_return_mask $27 = RetMask | |
118. store_loop_mask $28 = LoopMask | |
119. zero_slot_unmasked [temporary 0] = 0 | |
120. copy_constant $29 = colorGreen(1) | |
121. zero_slot_unmasked $30 = 0 | |
122. cmpeq_float $29 = equal($29, $30) | |
123. branch_if_no_active_lanes_eq branch +5 (#128) if no lanes of $29 == 0xFFFFFFFF | |
124. zero_slot_unmasked $30 = 0 | |
125. copy_slot_masked [test_else].result = Mask($30) | |
126. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
127. jump jump +4 (#131) | |
128. copy_constant $30 = 0xFFFFFFFF | |
129. copy_slot_masked [test_else].result = Mask($30) | |
130. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
131. reenable_loop_mask LoopMask |= [temporary 0] | |
132. zero_slot_unmasked $29 = 0 | |
133. merge_loop_mask LoopMask &= $29 | |
134. stack_rewind | |
135. branch_if_any_active_lanes branch_if_any_active_lanes -16 (#119) | |
136. load_loop_mask LoopMask = $28 | |
137. load_return_mask RetMask = $27 | |
138. copy_slot_unmasked $27 = [test_else].result | |
139. copy_slot_masked $26 = Mask($27) | |
140. load_condition_mask CondMask = $17 | |
141. zero_slot_unmasked $23 = 0 | |
142. merge_condition_mask CondMask = $25 & $26 | |
143. branch_if_no_active_lanes branch_if_no_active_lanes +4 (#147) | |
144. copy_constant $24 = 0xFFFFFFFF | |
145. copy_slot_masked [test_loop_return].result = Mask($24) | |
146. copy_slot_masked $23 = Mask($24) | |
147. load_condition_mask CondMask = $25 | |
148. zero_slot_unmasked $13 = 0 | |
149. merge_condition_mask CondMask = $22 & $23 | |
150. branch_if_no_active_lanes branch_if_no_active_lanes +19 (#169) | |
151. zero_slot_unmasked x = 0 | |
152. store_loop_mask $14 = LoopMask | |
153. jump jump +6 (#159) | |
154. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) | |
155. copy_slot_unmasked $15 = x | |
156. copy_constant $16 = 0x00000001 (1.401298e-45) | |
157. add_int $15 += $16 | |
158. copy_slot_masked x = Mask($15) | |
159. copy_slot_unmasked $15 = x | |
160. copy_constant $16 = 0x00000001 (1.401298e-45) | |
161. cmple_int $15 = lessThanEqual($15, $16) | |
162. merge_loop_mask LoopMask &= $15 | |
163. stack_rewind | |
164. branch_if_any_active_lanes branch_if_any_active_lanes -10 (#154) | |
165. load_loop_mask LoopMask = $14 | |
166. copy_constant $14 = 0xFFFFFFFF | |
167. copy_slot_masked [test_loop_break].result = Mask($14) | |
168. copy_slot_masked $13 = Mask($14) | |
169. load_condition_mask CondMask = $22 | |
170. copy_4_constants $0..3 = colorRed | |
171. merge_condition_mask CondMask = $12 & $13 | |
172. copy_4_constants $4..7 = colorGreen | |
173. copy_4_slots_masked $0..3 = Mask($4..7) | |
174. load_condition_mask CondMask = $12 | |
175. copy_4_slots_unmasked [main].result = $0..3 | |
176. load_src src.rgba = [main].result |