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