1. store_src_rg coords = src.rg | |
2. init_lane_masks CondMask = LoopMask = RetMask = true | |
3. store_condition_mask $26 = CondMask | |
4. store_condition_mask $22 = CondMask | |
5. store_condition_mask $16 = CondMask | |
6. store_condition_mask $13 = CondMask | |
7. copy_constant $12 = 0xFFFFFFFF | |
8. branch_if_no_active_lanes_eq branch +16 (label 5 at #24) if no lanes of $12 == 0xFFFFFFFF | |
9. branch_if_no_lanes_active branch_if_no_lanes_active +13 (label 7 at #22) | |
10. copy_constant $14 = unknownInput | |
11. copy_constant $15 = 0x3F800000 (1.0) | |
12. cmpeq_float $14 = equal($14, $15) | |
13. branch_if_no_active_lanes_eq branch +4 (label 8 at #17) if no lanes of $14 == 0xFFFFFFFF | |
14. copy_constant $15 = 0xFFFFFFFF | |
15. copy_slot_masked [return_on_both_sides].result = Mask($15) | |
16. jump jump +4 (label 9 at #20) | |
17. label label 0x00000008 | |
18. copy_constant $15 = 0xFFFFFFFF | |
19. copy_slot_masked [return_on_both_sides].result = Mask($15) | |
20. label label 0x00000009 | |
21. copy_slot_unmasked $14 = [return_on_both_sides].result | |
22. label label 0x00000007 | |
23. jump jump +3 (label 6 at #26) | |
24. label label 0x00000005 | |
25. zero_slot_unmasked $14 = 0 | |
26. label label 0x00000006 | |
27. zero_slot_unmasked $17 = 0 | |
28. merge_condition_mask CondMask = $13 & $14 | |
29. branch_if_no_lanes_active branch_if_no_lanes_active +26 (label 4 at #55) | |
30. store_return_mask $18 = RetMask | |
31. zero_slot_unmasked x = 0 | |
32. store_loop_mask $19 = LoopMask | |
33. jump jump +9 (label 12 at #42) | |
34. label label 0x0000000D | |
35. copy_constant $20 = 0xFFFFFFFF | |
36. copy_slot_masked [for_inside_body].result = Mask($20) | |
37. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
38. copy_slot_unmasked $20 = x | |
39. copy_constant $21 = 0x00000001 (1.401298e-45) | |
40. add_int $20 += $21 | |
41. copy_slot_masked x = Mask($20) | |
42. label label 0x0000000C | |
43. copy_slot_unmasked $20 = x | |
44. copy_constant $21 = 0x0000000A (1.401298e-44) | |
45. cmple_int $20 = lessThanEqual($20, $21) | |
46. merge_loop_mask LoopMask &= $20 | |
47. stack_rewind | |
48. branch_if_any_lanes_active branch_if_any_lanes_active -14 (label 13 at #34) | |
49. label label 0x0000000B | |
50. load_loop_mask LoopMask = $19 | |
51. load_return_mask RetMask = $18 | |
52. copy_slot_unmasked $18 = [for_inside_body].result | |
53. label label 0x0000000A | |
54. copy_slot_masked $17 = Mask($18) | |
55. label label 0x00000004 | |
56. load_condition_mask CondMask = $13 | |
57. zero_slot_unmasked $23 = 0 | |
58. merge_condition_mask CondMask = $16 & $17 | |
59. branch_if_no_lanes_active branch_if_no_lanes_active +15 (label 3 at #74) | |
60. zero_slot_unmasked x₁ = 0 | |
61. label label 0x00000010 | |
62. copy_slot_unmasked $24 = x₁ | |
63. copy_constant $25 = 0x00000001 (1.401298e-45) | |
64. add_int $24 += $25 | |
65. copy_slot_masked x₁ = Mask($24) | |
66. copy_constant $25 = 0x0000000A (1.401298e-44) | |
67. cmple_int $24 = lessThanEqual($24, $25) | |
68. stack_rewind | |
69. branch_if_no_active_lanes_eq branch -8 (label 16 at #61) if no lanes of $24 == 0x00000000 (0.0) | |
70. label label 0x0000000F | |
71. copy_constant $24 = 0xFFFFFFFF | |
72. label label 0x0000000E | |
73. copy_slot_masked $23 = Mask($24) | |
74. label label 0x00000003 | |
75. load_condition_mask CondMask = $16 | |
76. zero_slot_unmasked $27 = 0 | |
77. merge_condition_mask CondMask = $22 & $23 | |
78. branch_if_no_lanes_active branch_if_no_lanes_active +36 (label 2 at #114) | |
79. store_return_mask $28 = RetMask | |
80. zero_slot_unmasked x₂ = 0 | |
81. store_loop_mask $29 = LoopMask | |
82. jump jump +19 (label 19 at #101) | |
83. label label 0x00000014 | |
84. copy_constant $30 = unknownInput | |
85. copy_constant $31 = 0x3F800000 (1.0) | |
86. cmpeq_float $30 = equal($30, $31) | |
87. branch_if_no_active_lanes_eq branch +5 (label 21 at #92) if no lanes of $30 == 0xFFFFFFFF | |
88. copy_constant $31 = 0xFFFFFFFF | |
89. copy_slot_masked [for_with_double_sided_conditional_return].result = Mask($31) | |
90. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
91. jump jump +5 (label 22 at #96) | |
92. label label 0x00000015 | |
93. copy_constant $31 = 0xFFFFFFFF | |
94. copy_slot_masked [for_with_double_sided_conditional_return].result = Mask($31) | |
95. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
96. label label 0x00000016 | |
97. copy_slot_unmasked $30 = x₂ | |
98. copy_constant $31 = 0x00000001 (1.401298e-45) | |
99. add_int $30 += $31 | |
100. copy_slot_masked x₂ = Mask($30) | |
101. label label 0x00000013 | |
102. copy_slot_unmasked $30 = x₂ | |
103. copy_constant $31 = 0x0000000A (1.401298e-44) | |
104. cmple_int $30 = lessThanEqual($30, $31) | |
105. merge_loop_mask LoopMask &= $30 | |
106. stack_rewind | |
107. branch_if_any_lanes_active branch_if_any_lanes_active -24 (label 20 at #83) | |
108. label label 0x00000012 | |
109. load_loop_mask LoopMask = $29 | |
110. load_return_mask RetMask = $28 | |
111. copy_slot_unmasked $28 = [for_with_double_sided_conditional_return].result | |
112. label label 0x00000011 | |
113. copy_slot_masked $27 = Mask($28) | |
114. label label 0x00000002 | |
115. load_condition_mask CondMask = $22 | |
116. zero_slot_unmasked $0 = 0 | |
117. merge_condition_mask CondMask = $26 & $27 | |
118. branch_if_no_lanes_active branch_if_no_lanes_active +42 (label 1 at #160) | |
119. copy_constant $1 = unknownInput | |
120. copy_constant $2 = 0x3F800000 (1.0) | |
121. cmpeq_float $1 = equal($1, $2) | |
122. branch_if_no_active_lanes_eq branch +4 (label 24 at #126) if no lanes of $1 == 0xFFFFFFFF | |
123. copy_constant $2 = 0xFFFFFFFF | |
124. copy_slot_masked [if_else_chain].result = Mask($2) | |
125. jump jump +31 (label 25 at #156) | |
126. label label 0x00000018 | |
127. copy_constant $2 = unknownInput | |
128. copy_constant $3 = 0x40000000 (2.0) | |
129. cmpeq_float $2 = equal($2, $3) | |
130. branch_if_no_active_lanes_eq branch +4 (label 26 at #134) if no lanes of $2 == 0xFFFFFFFF | |
131. zero_slot_unmasked $3 = 0 | |
132. copy_slot_masked [if_else_chain].result = Mask($3) | |
133. jump jump +22 (label 27 at #155) | |
134. label label 0x0000001A | |
135. copy_constant $3 = unknownInput | |
136. copy_constant $4 = 0x40400000 (3.0) | |
137. cmpeq_float $3 = equal($3, $4) | |
138. branch_if_no_active_lanes_eq branch +4 (label 28 at #142) if no lanes of $3 == 0xFFFFFFFF | |
139. copy_constant $4 = 0xFFFFFFFF | |
140. copy_slot_masked [if_else_chain].result = Mask($4) | |
141. jump jump +13 (label 29 at #154) | |
142. label label 0x0000001C | |
143. copy_constant $4 = unknownInput | |
144. copy_constant $5 = 0x40800000 (4.0) | |
145. cmpeq_float $4 = equal($4, $5) | |
146. branch_if_no_active_lanes_eq branch +4 (label 30 at #150) if no lanes of $4 == 0xFFFFFFFF | |
147. zero_slot_unmasked $5 = 0 | |
148. copy_slot_masked [if_else_chain].result = Mask($5) | |
149. jump jump +4 (label 31 at #153) | |
150. label label 0x0000001E | |
151. copy_constant $5 = 0xFFFFFFFF | |
152. copy_slot_masked [if_else_chain].result = Mask($5) | |
153. label label 0x0000001F | |
154. label label 0x0000001D | |
155. label label 0x0000001B | |
156. label label 0x00000019 | |
157. copy_slot_unmasked $1 = [if_else_chain].result | |
158. label label 0x00000017 | |
159. copy_slot_masked $0 = Mask($1) | |
160. label label 0x00000001 | |
161. load_condition_mask CondMask = $26 | |
162. swizzle_4 $0..3 = ($0..3).xxxx | |
163. copy_4_constants $4..7 = colorRed | |
164. copy_4_constants $8..11 = colorGreen | |
165. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) | |
166. load_src src.rgba = $0..3 |