1. store_src_rg coords = src.rg | |
2. init_lane_masks CondMask = LoopMask = RetMask = true | |
3. copy_constant f1[0] = 0x3F800000 (1.0) | |
4. copy_constant f1[1] = 0x40000000 (2.0) | |
5. copy_constant f1[2] = 0x40400000 (3.0) | |
6. copy_constant f1[3] = 0x40800000 (4.0) | |
7. copy_constant f1[4] = 0x40A00000 (5.0) | |
8. copy_constant f2[0] = 0x3F800000 (1.0) | |
9. copy_constant f2[1] = 0x40000000 (2.0) | |
10. copy_constant f2[2] = 0x40400000 (3.0) | |
11. copy_constant f2[3] = 0x40800000 (4.0) | |
12. copy_constant f2[4] = 0x40A00000 (5.0) | |
13. copy_constant f3[0] = 0x3F800000 (1.0) | |
14. copy_constant f3[1] = 0x40000000 (2.0) | |
15. copy_constant f3[2] = 0x40400000 (3.0) | |
16. copy_constant f3[3] = 0xC0800000 (-4.0) | |
17. copy_constant f3[4] = 0x40A00000 (5.0) | |
18. copy_constant v1[0](0) = 0x00000001 (1.401298e-45) | |
19. copy_constant v1[0](1) = 0x00000002 (2.802597e-45) | |
20. copy_constant v1[0](2) = 0x00000003 (4.203895e-45) | |
21. copy_constant v1[1](0) = 0x00000004 (5.605194e-45) | |
22. copy_constant v1[1](1) = 0x00000005 (7.006492e-45) | |
23. copy_constant v1[1](2) = 0x00000006 (8.407791e-45) | |
24. copy_constant v2[0](0) = 0x00000001 (1.401298e-45) | |
25. copy_constant v2[0](1) = 0x00000002 (2.802597e-45) | |
26. copy_constant v2[0](2) = 0x00000003 (4.203895e-45) | |
27. copy_constant v2[1](0) = 0x00000004 (5.605194e-45) | |
28. copy_constant v2[1](1) = 0x00000005 (7.006492e-45) | |
29. copy_constant v2[1](2) = 0x00000006 (8.407791e-45) | |
30. copy_constant v3[0](0) = 0x00000001 (1.401298e-45) | |
31. copy_constant v3[0](1) = 0x00000002 (2.802597e-45) | |
32. copy_constant v3[0](2) = 0x00000003 (4.203895e-45) | |
33. copy_constant v3[1](0) = 0x00000004 (5.605194e-45) | |
34. copy_constant v3[1](1) = 0x00000005 (7.006492e-45) | |
35. copy_constant v3[1](2) = 0xFFFFFFFA | |
36. zero_slot_unmasked $0 = 0 | |
37. copy_constant $1 = 0x3F800000 (1.0) | |
38. swizzle_4 $0..3 = ($0..3).yxxy | |
39. zero_slot_unmasked $4 = 0 | |
40. copy_constant $5 = 0x40000000 (2.0) | |
41. swizzle_4 $4..7 = ($4..7).yxxy | |
42. copy_constant m1[2](0) = 0x40400000 (3.0) | |
43. copy_constant m1[2](1) = 0x40800000 (4.0) | |
44. copy_constant m1[2](2) = 0x40A00000 (5.0) | |
45. copy_constant m1[2](3) = 0x40C00000 (6.0) | |
46. copy_4_slots_unmasked m1[0] = $0..3 | |
47. copy_4_slots_unmasked m1[1] = $4..7 | |
48. zero_slot_unmasked $0 = 0 | |
49. copy_constant $1 = 0x3F800000 (1.0) | |
50. swizzle_4 $0..3 = ($0..3).yxxy | |
51. zero_slot_unmasked $4 = 0 | |
52. copy_constant $5 = 0x40000000 (2.0) | |
53. swizzle_4 $4..7 = ($4..7).yxxy | |
54. copy_constant m2[2](0) = 0x40400000 (3.0) | |
55. copy_constant m2[2](1) = 0x40800000 (4.0) | |
56. copy_constant m2[2](2) = 0x40A00000 (5.0) | |
57. copy_constant m2[2](3) = 0x40C00000 (6.0) | |
58. copy_4_slots_unmasked m2[0] = $0..3 | |
59. copy_4_slots_unmasked m2[1] = $4..7 | |
60. zero_slot_unmasked $0 = 0 | |
61. copy_constant $1 = 0x3F800000 (1.0) | |
62. swizzle_4 $0..3 = ($0..3).yxxy | |
63. copy_constant $4 = 0x40000000 (2.0) | |
64. copy_constant $5 = 0x40400000 (3.0) | |
65. copy_constant $6 = 0x40800000 (4.0) | |
66. copy_constant $7 = 0x40A00000 (5.0) | |
67. zero_slot_unmasked $8 = 0 | |
68. copy_constant $9 = 0x40C00000 (6.0) | |
69. swizzle_4 $8..11 = ($8..11).yxxy | |
70. copy_4_slots_unmasked m3[0] = $0..3 | |
71. copy_4_slots_unmasked m3[1] = $4..7 | |
72. copy_4_slots_unmasked m3[2] = $8..11 | |
73. copy_constant s1[0].x = 0x00000001 (1.401298e-45) | |
74. copy_constant s1[0].y = 0x00000002 (2.802597e-45) | |
75. copy_constant s1[1].x = 0x00000003 (4.203895e-45) | |
76. copy_constant s1[1].y = 0x00000004 (5.605194e-45) | |
77. copy_constant s1[2].x = 0x00000005 (7.006492e-45) | |
78. copy_constant s1[2].y = 0x00000006 (8.407791e-45) | |
79. copy_constant s2[0].x = 0x00000001 (1.401298e-45) | |
80. copy_constant s2[0].y = 0x00000002 (2.802597e-45) | |
81. zero_2_slots_unmasked s2[1].x, s2[1].y = 0 | |
82. copy_constant s2[2].x = 0x00000005 (7.006492e-45) | |
83. copy_constant s2[2].y = 0x00000006 (8.407791e-45) | |
84. copy_constant s3[0].x = 0x00000001 (1.401298e-45) | |
85. copy_constant s3[0].y = 0x00000002 (2.802597e-45) | |
86. copy_constant s3[1].x = 0x00000003 (4.203895e-45) | |
87. copy_constant s3[1].y = 0x00000004 (5.605194e-45) | |
88. copy_constant s3[2].x = 0x00000005 (7.006492e-45) | |
89. copy_constant s3[2].y = 0x00000006 (8.407791e-45) | |
90. copy_4_slots_unmasked $0..3 = f1[0], f1[1], f1[2], f1[3] | |
91. copy_4_slots_unmasked $4..7 = f1[4], f2[0], f2[1], f2[2] | |
92. copy_2_slots_unmasked $8..9 = f2[3], f2[4] | |
93. cmpeq_n_floats $0..4 = equal($0..4, $5..9) | |
94. bitwise_and_2_ints $1..2 &= $3..4 | |
95. bitwise_and_int $1 &= $2 | |
96. bitwise_and_int $0 &= $1 | |
97. copy_4_slots_unmasked $1..4 = f1[0], f1[1], f1[2], f1[3] | |
98. copy_slot_unmasked $5 = f1[4] | |
99. copy_4_slots_unmasked $6..9 = f3[0], f3[1], f3[2], f3[3] | |
100. copy_slot_unmasked $10 = f3[4] | |
101. cmpne_n_floats $1..5 = notEqual($1..5, $6..10) | |
102. bitwise_or_2_ints $2..3 |= $4..5 | |
103. bitwise_or_int $2 |= $3 | |
104. bitwise_or_int $1 |= $2 | |
105. bitwise_and_int $0 &= $1 | |
106. copy_4_constants $1..4 = testArray[0], testArray[1], testArray[2], testArray[3] | |
107. copy_4_constants $5..8 = testArray[4], testArrayNegative[0], testArrayNegative[1], testArrayNegative[2] | |
108. copy_2_constants $9..10 = testArrayNegative[3], testArrayNegative[4] | |
109. cmpne_n_floats $1..5 = notEqual($1..5, $6..10) | |
110. bitwise_or_2_ints $2..3 |= $4..5 | |
111. bitwise_or_int $2 |= $3 | |
112. bitwise_or_int $1 |= $2 | |
113. bitwise_and_int $0 &= $1 | |
114. copy_4_constants $1..4 = testArray[0], testArray[1], testArray[2], testArray[3] | |
115. copy_constant $5 = testArray[4] | |
116. copy_4_slots_unmasked $6..9 = f1[0], f1[1], f1[2], f1[3] | |
117. copy_slot_unmasked $10 = f1[4] | |
118. cmpeq_n_floats $1..5 = equal($1..5, $6..10) | |
119. bitwise_and_2_ints $2..3 &= $4..5 | |
120. bitwise_and_int $2 &= $3 | |
121. bitwise_and_int $1 &= $2 | |
122. bitwise_and_int $0 &= $1 | |
123. copy_4_constants $1..4 = testArray[0], testArray[1], testArray[2], testArray[3] | |
124. copy_constant $5 = testArray[4] | |
125. copy_4_slots_unmasked $6..9 = f3[0], f3[1], f3[2], f3[3] | |
126. copy_slot_unmasked $10 = f3[4] | |
127. cmpne_n_floats $1..5 = notEqual($1..5, $6..10) | |
128. bitwise_or_2_ints $2..3 |= $4..5 | |
129. bitwise_or_int $2 |= $3 | |
130. bitwise_or_int $1 |= $2 | |
131. bitwise_and_int $0 &= $1 | |
132. copy_4_slots_unmasked $1..4 = f1[0], f1[1], f1[2], f1[3] | |
133. copy_slot_unmasked $5 = f1[4] | |
134. copy_4_constants $6..9 = testArray[0], testArray[1], testArray[2], testArray[3] | |
135. copy_constant $10 = testArray[4] | |
136. cmpeq_n_floats $1..5 = equal($1..5, $6..10) | |
137. bitwise_and_2_ints $2..3 &= $4..5 | |
138. bitwise_and_int $2 &= $3 | |
139. bitwise_and_int $1 &= $2 | |
140. bitwise_and_int $0 &= $1 | |
141. copy_4_slots_unmasked $1..4 = f3[0], f3[1], f3[2], f3[3] | |
142. copy_slot_unmasked $5 = f3[4] | |
143. copy_4_constants $6..9 = testArray[0], testArray[1], testArray[2], testArray[3] | |
144. copy_constant $10 = testArray[4] | |
145. cmpne_n_floats $1..5 = notEqual($1..5, $6..10) | |
146. bitwise_or_2_ints $2..3 |= $4..5 | |
147. bitwise_or_int $2 |= $3 | |
148. bitwise_or_int $1 |= $2 | |
149. bitwise_and_int $0 &= $1 | |
150. copy_3_slots_unmasked $1..3 = v1[0] | |
151. copy_3_slots_unmasked $4..6 = v2[0] | |
152. cmpeq_3_ints $1..3 = equal($1..3, $4..6) | |
153. bitwise_and_int $2 &= $3 | |
154. bitwise_and_int $1 &= $2 | |
155. copy_3_slots_unmasked $2..4 = v1[1] | |
156. copy_3_slots_unmasked $5..7 = v2[1] | |
157. cmpeq_3_ints $2..4 = equal($2..4, $5..7) | |
158. bitwise_and_int $3 &= $4 | |
159. bitwise_and_int $2 &= $3 | |
160. bitwise_and_int $1 &= $2 | |
161. bitwise_and_int $0 &= $1 | |
162. copy_3_slots_unmasked $1..3 = v1[0] | |
163. copy_3_slots_unmasked $4..6 = v3[0] | |
164. cmpne_3_ints $1..3 = notEqual($1..3, $4..6) | |
165. bitwise_or_int $2 |= $3 | |
166. bitwise_or_int $1 |= $2 | |
167. copy_3_slots_unmasked $2..4 = v1[1] | |
168. copy_3_slots_unmasked $5..7 = v3[1] | |
169. cmpne_3_ints $2..4 = notEqual($2..4, $5..7) | |
170. bitwise_or_int $3 |= $4 | |
171. bitwise_or_int $2 |= $3 | |
172. bitwise_or_int $1 |= $2 | |
173. bitwise_and_int $0 &= $1 | |
174. copy_4_slots_unmasked $1..4 = m1[0] | |
175. copy_4_slots_unmasked $5..8 = m2[0] | |
176. cmpeq_4_floats $1..4 = equal($1..4, $5..8) | |
177. bitwise_and_2_ints $1..2 &= $3..4 | |
178. bitwise_and_int $1 &= $2 | |
179. copy_4_slots_unmasked $2..5 = m1[1] | |
180. copy_4_slots_unmasked $6..9 = m2[1] | |
181. cmpeq_4_floats $2..5 = equal($2..5, $6..9) | |
182. bitwise_and_2_ints $2..3 &= $4..5 | |
183. bitwise_and_int $2 &= $3 | |
184. copy_4_slots_unmasked $3..6 = m1[2] | |
185. copy_4_slots_unmasked $7..10 = m2[2] | |
186. cmpeq_4_floats $3..6 = equal($3..6, $7..10) | |
187. bitwise_and_2_ints $3..4 &= $5..6 | |
188. bitwise_and_int $3 &= $4 | |
189. bitwise_and_int $2 &= $3 | |
190. bitwise_and_int $1 &= $2 | |
191. bitwise_and_int $0 &= $1 | |
192. copy_4_slots_unmasked $1..4 = m1[0] | |
193. copy_4_slots_unmasked $5..8 = m3[0] | |
194. cmpne_4_floats $1..4 = notEqual($1..4, $5..8) | |
195. bitwise_or_2_ints $1..2 |= $3..4 | |
196. bitwise_or_int $1 |= $2 | |
197. copy_4_slots_unmasked $2..5 = m1[1] | |
198. copy_4_slots_unmasked $6..9 = m3[1] | |
199. cmpne_4_floats $2..5 = notEqual($2..5, $6..9) | |
200. bitwise_or_2_ints $2..3 |= $4..5 | |
201. bitwise_or_int $2 |= $3 | |
202. copy_4_slots_unmasked $3..6 = m1[2] | |
203. copy_4_slots_unmasked $7..10 = m3[2] | |
204. cmpne_4_floats $3..6 = notEqual($3..6, $7..10) | |
205. bitwise_or_2_ints $3..4 |= $5..6 | |
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 $1 = s1[0].x | |
211. copy_slot_unmasked $2 = s2[0].x | |
212. cmpne_int $1 = notEqual($1, $2) | |
213. copy_slot_unmasked $2 = s1[0].y | |
214. copy_slot_unmasked $3 = s2[0].y | |
215. cmpne_int $2 = notEqual($2, $3) | |
216. bitwise_or_int $1 |= $2 | |
217. copy_slot_unmasked $2 = s1[1].x | |
218. copy_slot_unmasked $3 = s2[1].x | |
219. cmpne_int $2 = notEqual($2, $3) | |
220. copy_slot_unmasked $3 = s1[1].y | |
221. copy_slot_unmasked $4 = s2[1].y | |
222. cmpne_int $3 = notEqual($3, $4) | |
223. bitwise_or_int $2 |= $3 | |
224. copy_slot_unmasked $3 = s1[2].x | |
225. copy_slot_unmasked $4 = s2[2].x | |
226. cmpne_int $3 = notEqual($3, $4) | |
227. copy_slot_unmasked $4 = s1[2].y | |
228. copy_slot_unmasked $5 = s2[2].y | |
229. cmpne_int $4 = notEqual($4, $5) | |
230. bitwise_or_int $3 |= $4 | |
231. bitwise_or_int $2 |= $3 | |
232. bitwise_or_int $1 |= $2 | |
233. bitwise_and_int $0 &= $1 | |
234. copy_slot_unmasked $1 = s3[0].x | |
235. copy_slot_unmasked $2 = s1[0].x | |
236. cmpeq_int $1 = equal($1, $2) | |
237. copy_slot_unmasked $2 = s3[0].y | |
238. copy_slot_unmasked $3 = s1[0].y | |
239. cmpeq_int $2 = equal($2, $3) | |
240. bitwise_and_int $1 &= $2 | |
241. copy_slot_unmasked $2 = s3[1].x | |
242. copy_slot_unmasked $3 = s1[1].x | |
243. cmpeq_int $2 = equal($2, $3) | |
244. copy_slot_unmasked $3 = s3[1].y | |
245. copy_slot_unmasked $4 = s1[1].y | |
246. cmpeq_int $3 = equal($3, $4) | |
247. bitwise_and_int $2 &= $3 | |
248. copy_slot_unmasked $3 = s3[2].x | |
249. copy_slot_unmasked $4 = s1[2].x | |
250. cmpeq_int $3 = equal($3, $4) | |
251. copy_slot_unmasked $4 = s3[2].y | |
252. copy_slot_unmasked $5 = s1[2].y | |
253. cmpeq_int $4 = equal($4, $5) | |
254. bitwise_and_int $3 &= $4 | |
255. bitwise_and_int $2 &= $3 | |
256. bitwise_and_int $1 &= $2 | |
257. bitwise_and_int $0 &= $1 | |
258. swizzle_4 $0..3 = ($0..3).xxxx | |
259. copy_4_constants $4..7 = colorRed | |
260. copy_4_constants $8..11 = colorGreen | |
261. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) | |
262. load_src src.rgba = $0..3 |