1. store_src_rg coords = src.rg | |
2. init_lane_masks CondMask = LoopMask = RetMask = true | |
3. zero_2_slots_unmasked s.x, s.y = 0 | |
4. copy_constant $0 = 0x3F800000 (1.0) | |
5. copy_slot_unmasked s.x = $0 | |
6. copy_constant $0 = 0x00000002 (2.802597e-45) | |
7. copy_slot_unmasked s.y = $0 | |
8. copy_2_slots_unmasked $0..1 = s.x, s.y | |
9. label label 0x00000000 | |
10. copy_2_slots_unmasked s.x₁, s.y₁ = $0..1 | |
11. copy_2_slots_unmasked s.x₂, s.y₂ = $0..1 | |
12. copy_2_slots_unmasked $0..1 = s.x₂, s.y₂ | |
13. cast_to_float_from_int $1 = IntToFloat($1) | |
14. add_float $0 += $1 | |
15. label label 0x00000001 | |
16. copy_slot_unmasked x = $0 | |
17. copy_2_slots_unmasked s.x₃, s.y₃ = s.x₁, s.y₁ | |
18. copy_slot_unmasked $0 = s.x₃ | |
19. copy_constant $1 = 0x3F800000 (1.0) | |
20. add_float $0 += $1 | |
21. copy_slot_unmasked s.x₃ = $0 | |
22. copy_slot_unmasked $0 = s.y₃ | |
23. copy_constant $1 = 0x00000001 (1.401298e-45) | |
24. add_int $0 += $1 | |
25. copy_slot_unmasked s.y₃ = $0 | |
26. copy_2_slots_unmasked $0..1 = s.x₃, s.y₃ | |
27. copy_2_slots_unmasked s.x₁, s.y₁ = $0..1 | |
28. label label 0x00000002 | |
29. copy_constant $0 = 0x40000000 (2.0) | |
30. copy_constant $1 = 0x00000003 (4.203895e-45) | |
31. label label 0x00000003 | |
32. copy_2_slots_unmasked expected.x, expected.y = $0..1 | |
33. zero_4_slots_unmasked n1.a.x, n1.a.y, n1.b.x, n1.b.y = 0 | |
34. zero_4_slots_unmasked n2.a.x, n2.a.y, n2.b.x, n2.b.y = 0 | |
35. zero_4_slots_unmasked n3.a.x, n3.a.y, n3.b.x, n3.b.y = 0 | |
36. zero_2_slots_unmasked s.x, s.y = 0 | |
37. copy_constant $0 = 0x3F800000 (1.0) | |
38. copy_slot_unmasked s.x = $0 | |
39. copy_constant $0 = 0x00000002 (2.802597e-45) | |
40. copy_slot_unmasked s.y = $0 | |
41. copy_2_slots_unmasked $0..1 = s.x, s.y | |
42. label label 0x00000004 | |
43. copy_2_slots_unmasked n1.a.x, n1.a.y = $0..1 | |
44. copy_2_slots_unmasked n1.b.x, n1.b.y = $0..1 | |
45. copy_4_slots_unmasked $0..3 = n1.a.x, n1.a.y, n1.b.x, n1.b.y | |
46. copy_4_slots_unmasked n2.a.x, n2.a.y, n2.b.x, n2.b.y = $0..3 | |
47. copy_4_slots_unmasked n3.a.x, n3.a.y, n3.b.x, n3.b.y = $0..3 | |
48. copy_2_slots_unmasked s.x₃, s.y₃ = n3.b.x, n3.b.y | |
49. copy_slot_unmasked $0 = s.x₃ | |
50. copy_constant $1 = 0x3F800000 (1.0) | |
51. add_float $0 += $1 | |
52. copy_slot_unmasked s.x₃ = $0 | |
53. copy_slot_unmasked $0 = s.y₃ | |
54. copy_constant $1 = 0x00000001 (1.401298e-45) | |
55. add_int $0 += $1 | |
56. copy_slot_unmasked s.y₃ = $0 | |
57. copy_2_slots_unmasked $0..1 = s.x₃, s.y₃ | |
58. copy_2_slots_unmasked n3.b.x, n3.b.y = $0..1 | |
59. label label 0x00000005 | |
60. copy_constant c1.f4(0) = 0x3F800000 (1.0) | |
61. copy_constant c1.f4(1) = 0x40000000 (2.0) | |
62. copy_constant c1.f4(2) = 0x40400000 (3.0) | |
63. copy_constant c1.f4(3) = 0x40800000 (4.0) | |
64. copy_constant c1.i3(0) = 0x00000005 (7.006492e-45) | |
65. copy_constant c1.i3(1) = 0x00000006 (8.407791e-45) | |
66. copy_constant c1.i3(2) = 0x00000007 (9.809089e-45) | |
67. copy_constant $0 = colorGreen(1) | |
68. copy_constant c2.f4(1) = 0x40000000 (2.0) | |
69. copy_constant c2.f4(2) = 0x40400000 (3.0) | |
70. copy_constant c2.f4(3) = 0x40800000 (4.0) | |
71. copy_constant c2.i3(0) = 0x00000005 (7.006492e-45) | |
72. copy_constant c2.i3(1) = 0x00000006 (8.407791e-45) | |
73. copy_constant c2.i3(2) = 0x00000007 (9.809089e-45) | |
74. copy_slot_unmasked c2.f4(0) = $0 | |
75. copy_constant $0 = colorGreen(0) | |
76. copy_constant c3.f4(1) = 0x40000000 (2.0) | |
77. copy_constant c3.f4(2) = 0x40400000 (3.0) | |
78. copy_constant c3.f4(3) = 0x40800000 (4.0) | |
79. copy_constant c3.i3(0) = 0x00000005 (7.006492e-45) | |
80. copy_constant c3.i3(1) = 0x00000006 (8.407791e-45) | |
81. copy_constant c3.i3(2) = 0x00000007 (9.809089e-45) | |
82. copy_slot_unmasked c3.f4(0) = $0 | |
83. store_condition_mask $14 = CondMask | |
84. copy_slot_unmasked $15 = x | |
85. copy_constant $16 = 0x40400000 (3.0) | |
86. cmpeq_float $15 = equal($15, $16) | |
87. copy_slot_unmasked $16 = s.x₁ | |
88. copy_constant $17 = 0x40000000 (2.0) | |
89. cmpeq_float $16 = equal($16, $17) | |
90. bitwise_and_int $15 &= $16 | |
91. copy_slot_unmasked $16 = s.y₁ | |
92. copy_constant $17 = 0x00000003 (4.203895e-45) | |
93. cmpeq_int $16 = equal($16, $17) | |
94. bitwise_and_int $15 &= $16 | |
95. copy_slot_unmasked $16 = s.x₁ | |
96. copy_slot_unmasked $17 = expected.x | |
97. cmpeq_float $16 = equal($16, $17) | |
98. copy_slot_unmasked $17 = s.y₁ | |
99. copy_slot_unmasked $18 = expected.y | |
100. cmpeq_int $17 = equal($17, $18) | |
101. bitwise_and_int $16 &= $17 | |
102. bitwise_and_int $15 &= $16 | |
103. copy_slot_unmasked $16 = s.x₁ | |
104. copy_constant $12 = 0x40000000 (2.0) | |
105. copy_constant $13 = 0x00000003 (4.203895e-45) | |
106. copy_slot_unmasked $17 = $12 | |
107. cmpeq_float $16 = equal($16, $17) | |
108. copy_slot_unmasked $17 = s.y₁ | |
109. copy_slot_unmasked $18 = $13 | |
110. cmpeq_int $17 = equal($17, $18) | |
111. bitwise_and_int $16 &= $17 | |
112. bitwise_and_int $15 &= $16 | |
113. zero_slot_unmasked $0 = 0 | |
114. merge_condition_mask CondMask = $14 & $15 | |
115. branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 6 at #132) | |
116. copy_slot_unmasked $1 = s.x₁ | |
117. branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 7 at #124) | |
118. zero_2_slots_unmasked s.x, s.y = 0 | |
119. copy_constant $12 = 0x3F800000 (1.0) | |
120. copy_slot_masked s.x = Mask($12) | |
121. copy_constant $12 = 0x00000002 (2.802597e-45) | |
122. copy_slot_masked s.y = Mask($12) | |
123. copy_2_slots_unmasked $12..13 = s.x, s.y | |
124. label label 0x00000007 | |
125. copy_slot_unmasked $2 = $12 | |
126. cmpne_float $1 = notEqual($1, $2) | |
127. copy_slot_unmasked $2 = s.y₁ | |
128. copy_slot_unmasked $3 = $13 | |
129. cmpne_int $2 = notEqual($2, $3) | |
130. bitwise_or_int $1 |= $2 | |
131. copy_slot_masked $0 = Mask($1) | |
132. label label 0x00000006 | |
133. load_condition_mask CondMask = $14 | |
134. copy_slot_unmasked $1 = n1.a.x | |
135. copy_slot_unmasked $2 = n2.a.x | |
136. cmpeq_float $1 = equal($1, $2) | |
137. copy_slot_unmasked $2 = n1.a.y | |
138. copy_slot_unmasked $3 = n2.a.y | |
139. cmpeq_int $2 = equal($2, $3) | |
140. bitwise_and_int $1 &= $2 | |
141. copy_slot_unmasked $2 = n1.b.x | |
142. copy_slot_unmasked $3 = n2.b.x | |
143. cmpeq_float $2 = equal($2, $3) | |
144. copy_slot_unmasked $3 = n1.b.y | |
145. copy_slot_unmasked $4 = n2.b.y | |
146. cmpeq_int $3 = equal($3, $4) | |
147. bitwise_and_int $2 &= $3 | |
148. bitwise_and_int $1 &= $2 | |
149. bitwise_and_int $0 &= $1 | |
150. copy_slot_unmasked $1 = n1.a.x | |
151. copy_slot_unmasked $2 = n3.a.x | |
152. cmpne_float $1 = notEqual($1, $2) | |
153. copy_slot_unmasked $2 = n1.a.y | |
154. copy_slot_unmasked $3 = n3.a.y | |
155. cmpne_int $2 = notEqual($2, $3) | |
156. bitwise_or_int $1 |= $2 | |
157. copy_slot_unmasked $2 = n1.b.x | |
158. copy_slot_unmasked $3 = n3.b.x | |
159. cmpne_float $2 = notEqual($2, $3) | |
160. copy_slot_unmasked $3 = n1.b.y | |
161. copy_slot_unmasked $4 = n3.b.y | |
162. cmpne_int $3 = notEqual($3, $4) | |
163. bitwise_or_int $2 |= $3 | |
164. bitwise_or_int $1 |= $2 | |
165. bitwise_and_int $0 &= $1 | |
166. copy_slot_unmasked $1 = n3.a.x | |
167. copy_constant $14 = 0x3F800000 (1.0) | |
168. copy_constant $15 = 0x00000002 (2.802597e-45) | |
169. copy_constant $16 = 0x40000000 (2.0) | |
170. copy_constant $17 = 0x00000003 (4.203895e-45) | |
171. copy_slot_unmasked $2 = $14 | |
172. cmpeq_float $1 = equal($1, $2) | |
173. copy_slot_unmasked $2 = n3.a.y | |
174. copy_slot_unmasked $3 = $15 | |
175. cmpeq_int $2 = equal($2, $3) | |
176. bitwise_and_int $1 &= $2 | |
177. copy_slot_unmasked $2 = n3.b.x | |
178. copy_slot_unmasked $3 = $16 | |
179. cmpeq_float $2 = equal($2, $3) | |
180. copy_slot_unmasked $3 = n3.b.y | |
181. copy_slot_unmasked $4 = $17 | |
182. cmpeq_int $3 = equal($3, $4) | |
183. bitwise_and_int $2 &= $3 | |
184. bitwise_and_int $1 &= $2 | |
185. bitwise_and_int $0 &= $1 | |
186. copy_4_slots_unmasked $1..4 = c1.f4 | |
187. copy_4_slots_unmasked $5..8 = c2.f4 | |
188. cmpeq_4_floats $1..4 = equal($1..4, $5..8) | |
189. bitwise_and_2_ints $1..2 &= $3..4 | |
190. bitwise_and_int $1 &= $2 | |
191. copy_3_slots_unmasked $2..4 = c1.i3 | |
192. copy_3_slots_unmasked $5..7 = c2.i3 | |
193. cmpeq_3_ints $2..4 = equal($2..4, $5..7) | |
194. bitwise_and_int $3 &= $4 | |
195. bitwise_and_int $2 &= $3 | |
196. bitwise_and_int $1 &= $2 | |
197. bitwise_and_int $0 &= $1 | |
198. copy_4_slots_unmasked $1..4 = c2.f4 | |
199. copy_4_slots_unmasked $5..8 = c3.f4 | |
200. cmpne_4_floats $1..4 = notEqual($1..4, $5..8) | |
201. bitwise_or_2_ints $1..2 |= $3..4 | |
202. bitwise_or_int $1 |= $2 | |
203. copy_3_slots_unmasked $2..4 = c2.i3 | |
204. copy_3_slots_unmasked $5..7 = c3.i3 | |
205. cmpne_3_ints $2..4 = notEqual($2..4, $5..7) | |
206. bitwise_or_int $3 |= $4 | |
207. bitwise_or_int $2 |= $3 | |
208. bitwise_or_int $1 |= $2 | |
209. bitwise_and_int $0 &= $1 | |
210. copy_slot_unmasked valid = $0 | |
211. swizzle_4 $0..3 = ($0..3).xxxx | |
212. copy_4_constants $4..7 = colorRed | |
213. copy_4_constants $8..11 = colorGreen | |
214. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) | |
215. load_src src.rgba = $0..3 |