blob: 6f967666a071ba2ec408004b6b784b59a595d0fe [file] [log] [blame]
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