unplugged-system/external/skia/tests/sksl/shared/SwizzleOpt.skrp

227 lines
12 KiB
Plaintext

1. store_src_rg coords = src.rg
2. init_lane_masks CondMask = LoopMask = RetMask = true
3. copy_4_constants $0..3 = testInputs
4. copy_4_slots_unmasked v = $0..3
5. zero_slot_unmasked $0 = 0
6. copy_4_slots_unmasked $1..4 = v
7. swizzle_3 $1..3 = ($1..3).zyx
8. copy_4_slots_unmasked v = $0..3
9. zero_2_slots_unmasked $0..1 = 0
10. copy_4_slots_unmasked $2..5 = v
11. swizzle_1 $3 = ($3..5).z
12. copy_4_slots_unmasked v = $0..3
13. copy_constant $0 = 0x3F800000 (1.0)
14. copy_constant $1 = 0x3F800000 (1.0)
15. copy_4_slots_unmasked $2..5 = v
16. swizzle_2 $2..3 = ($2..5).wx
17. copy_4_slots_unmasked v = $0..3
18. swizzle_2 $0..1 = ($0..2).zy
19. copy_constant $2 = 0x3F800000 (1.0)
20. copy_constant $3 = 0x3F800000 (1.0)
21. copy_4_slots_unmasked v = $0..3
22. swizzle_2 $0..1 = ($0..1).xx
23. copy_constant $2 = 0x3F800000 (1.0)
24. copy_constant $3 = 0x3F800000 (1.0)
25. copy_4_slots_unmasked v = $0..3
26. swizzle_4 $0..3 = ($0..3).wzwz
27. copy_4_slots_unmasked v = $0..3
28. store_return_mask $0 = RetMask
29. copy_4_slots_unmasked v₁ = v
30. copy_constant x = 0x00000001 (1.401298e-45)
31. store_loop_mask $1 = LoopMask
32. jump jump +9 (label 1 at #41)
33. label label 0x00000002
34. copy_slot_unmasked $2 = v₁(0)
35. copy_slot_masked [fn].result = Mask($2)
36. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
37. copy_slot_unmasked $2 = x
38. copy_constant $3 = 0x00000001 (1.401298e-45)
39. add_int $2 += $3
40. copy_slot_masked x = Mask($2)
41. label label 0x00000001
42. copy_slot_unmasked $2 = x
43. copy_constant $3 = 0x00000002 (2.802597e-45)
44. cmple_int $2 = lessThanEqual($2, $3)
45. merge_loop_mask LoopMask &= $2
46. stack_rewind
47. branch_if_any_active_lanes branch_if_any_active_lanes -14 (label 2 at #33)
48. load_loop_mask LoopMask = $1
49. load_return_mask RetMask = $0
50. copy_slot_unmasked $0 = [fn].result
51. label label 0x00000000
52. copy_constant $1 = 0x42F60000 (123.0)
53. copy_constant $2 = 0x43E40000 (456.0)
54. swizzle_4 $0..3 = ($0..3).yyzz
55. copy_4_slots_unmasked v = $0..3
56. store_return_mask $0 = RetMask
57. copy_4_slots_unmasked v₁ = v
58. copy_constant x = 0x00000001 (1.401298e-45)
59. store_loop_mask $1 = LoopMask
60. jump jump +9 (label 4 at #69)
61. label label 0x00000005
62. copy_slot_unmasked $2 = v₁(0)
63. copy_slot_masked [fn].result = Mask($2)
64. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
65. copy_slot_unmasked $2 = x
66. copy_constant $3 = 0x00000001 (1.401298e-45)
67. add_int $2 += $3
68. copy_slot_masked x = Mask($2)
69. label label 0x00000004
70. copy_slot_unmasked $2 = x
71. copy_constant $3 = 0x00000002 (2.802597e-45)
72. cmple_int $2 = lessThanEqual($2, $3)
73. merge_loop_mask LoopMask &= $2
74. stack_rewind
75. branch_if_any_active_lanes branch_if_any_active_lanes -14 (label 5 at #61)
76. load_loop_mask LoopMask = $1
77. load_return_mask RetMask = $0
78. copy_slot_unmasked $0 = [fn].result
79. label label 0x00000003
80. copy_constant $1 = 0x42F60000 (123.0)
81. copy_constant $2 = 0x43E40000 (456.0)
82. swizzle_4 $0..3 = ($0..3).yyzz
83. copy_4_slots_unmasked v = $0..3
84. copy_constant $0 = 0x42F60000 (123.0)
85. copy_constant $1 = 0x43E40000 (456.0)
86. copy_constant $2 = 0x43E40000 (456.0)
87. store_return_mask $3 = RetMask
88. copy_4_slots_unmasked v₁ = v
89. copy_constant x = 0x00000001 (1.401298e-45)
90. store_loop_mask $4 = LoopMask
91. jump jump +9 (label 7 at #100)
92. label label 0x00000008
93. copy_slot_unmasked $5 = v₁(0)
94. copy_slot_masked [fn].result = Mask($5)
95. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
96. copy_slot_unmasked $5 = x
97. copy_constant $6 = 0x00000001 (1.401298e-45)
98. add_int $5 += $6
99. copy_slot_masked x = Mask($5)
100. label label 0x00000007
101. copy_slot_unmasked $5 = x
102. copy_constant $6 = 0x00000002 (2.802597e-45)
103. cmple_int $5 = lessThanEqual($5, $6)
104. merge_loop_mask LoopMask &= $5
105. stack_rewind
106. branch_if_any_active_lanes branch_if_any_active_lanes -14 (label 8 at #92)
107. load_loop_mask LoopMask = $4
108. load_return_mask RetMask = $3
109. copy_slot_unmasked $3 = [fn].result
110. label label 0x00000006
111. copy_4_slots_unmasked v = $0..3
112. copy_constant $0 = 0x42F60000 (123.0)
113. copy_constant $1 = 0x43E40000 (456.0)
114. copy_constant $2 = 0x43E40000 (456.0)
115. store_return_mask $3 = RetMask
116. copy_4_slots_unmasked v₁ = v
117. copy_constant x = 0x00000001 (1.401298e-45)
118. store_loop_mask $4 = LoopMask
119. jump jump +9 (label 10 at #128)
120. label label 0x0000000B
121. copy_slot_unmasked $5 = v₁(0)
122. copy_slot_masked [fn].result = Mask($5)
123. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
124. copy_slot_unmasked $5 = x
125. copy_constant $6 = 0x00000001 (1.401298e-45)
126. add_int $5 += $6
127. copy_slot_masked x = Mask($5)
128. label label 0x0000000A
129. copy_slot_unmasked $5 = x
130. copy_constant $6 = 0x00000002 (2.802597e-45)
131. cmple_int $5 = lessThanEqual($5, $6)
132. merge_loop_mask LoopMask &= $5
133. stack_rewind
134. branch_if_any_active_lanes branch_if_any_active_lanes -14 (label 11 at #120)
135. load_loop_mask LoopMask = $4
136. load_return_mask RetMask = $3
137. copy_slot_unmasked $3 = [fn].result
138. label label 0x00000009
139. copy_4_slots_unmasked v = $0..3
140. store_return_mask $0 = RetMask
141. copy_4_slots_unmasked v₁ = v
142. copy_constant x = 0x00000001 (1.401298e-45)
143. store_loop_mask $1 = LoopMask
144. jump jump +9 (label 13 at #153)
145. label label 0x0000000E
146. copy_slot_unmasked $2 = v₁(0)
147. copy_slot_masked [fn].result = Mask($2)
148. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
149. copy_slot_unmasked $2 = x
150. copy_constant $3 = 0x00000001 (1.401298e-45)
151. add_int $2 += $3
152. copy_slot_masked x = Mask($2)
153. label label 0x0000000D
154. copy_slot_unmasked $2 = x
155. copy_constant $3 = 0x00000002 (2.802597e-45)
156. cmple_int $2 = lessThanEqual($2, $3)
157. merge_loop_mask LoopMask &= $2
158. stack_rewind
159. branch_if_any_active_lanes branch_if_any_active_lanes -14 (label 14 at #145)
160. load_loop_mask LoopMask = $1
161. load_return_mask RetMask = $0
162. copy_slot_unmasked $0 = [fn].result
163. label label 0x0000000C
164. copy_constant $1 = 0x42F60000 (123.0)
165. copy_constant $2 = 0x43E40000 (456.0)
166. swizzle_4 $0..3 = ($0..3).yxxz
167. copy_4_slots_unmasked v = $0..3
168. store_return_mask $0 = RetMask
169. copy_4_slots_unmasked v₁ = v
170. copy_constant x = 0x00000001 (1.401298e-45)
171. store_loop_mask $1 = LoopMask
172. jump jump +9 (label 16 at #181)
173. label label 0x00000011
174. copy_slot_unmasked $2 = v₁(0)
175. copy_slot_masked [fn].result = Mask($2)
176. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
177. copy_slot_unmasked $2 = x
178. copy_constant $3 = 0x00000001 (1.401298e-45)
179. add_int $2 += $3
180. copy_slot_masked x = Mask($2)
181. label label 0x00000010
182. copy_slot_unmasked $2 = x
183. copy_constant $3 = 0x00000002 (2.802597e-45)
184. cmple_int $2 = lessThanEqual($2, $3)
185. merge_loop_mask LoopMask &= $2
186. stack_rewind
187. branch_if_any_active_lanes branch_if_any_active_lanes -14 (label 17 at #173)
188. load_loop_mask LoopMask = $1
189. load_return_mask RetMask = $0
190. copy_slot_unmasked $0 = [fn].result
191. label label 0x0000000F
192. copy_constant $1 = 0x42F60000 (123.0)
193. copy_constant $2 = 0x43E40000 (456.0)
194. swizzle_4 $0..3 = ($0..3).yxxz
195. copy_4_slots_unmasked v = $0..3
196. copy_constant $0 = 0x3F800000 (1.0)
197. copy_constant $1 = 0x3F800000 (1.0)
198. copy_constant $2 = 0x40000000 (2.0)
199. copy_constant $3 = 0x40400000 (3.0)
200. copy_4_slots_unmasked v = $0..3
201. copy_3_constants $0..2 = colorRed(0..2)
202. copy_constant $3 = 0x3F800000 (1.0)
203. copy_4_slots_unmasked v = $0..3
204. copy_constant $0 = colorRed(0)
205. copy_constant $1 = 0x3F800000 (1.0)
206. copy_2_constants $2..3 = colorRed(1..2)
207. copy_4_slots_unmasked v = $0..3
208. swizzle_copy_4_slots_masked (v).wzyx = Mask($0..3)
209. copy_2_slots_unmasked $0..1 = v(1..2)
210. swizzle_copy_2_slots_masked (v).xw = Mask($0..1)
211. copy_4_slots_unmasked $0..3 = v
212. swizzle_2 $0..1 = ($0..3).ww
213. copy_constant $2 = 0x3F800000 (1.0)
214. swizzle_copy_3_slots_masked (v(0..2)).zyx = Mask($0..2)
215. copy_4_slots_unmasked $0..3 = v
216. copy_constant $4 = 0x3F800000 (1.0)
217. swizzle_4 $4..7 = ($4..7).xxxx
218. cmpeq_4_floats $0..3 = equal($0..3, $4..7)
219. bitwise_and_2_ints $0..1 &= $2..3
220. bitwise_and_int $0 &= $1
221. swizzle_4 $0..3 = ($0..3).xxxx
222. copy_4_constants $4..7 = colorRed
223. copy_4_constants $8..11 = colorGreen
224. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3)
225. copy_4_slots_unmasked [main].result = $0..3
226. load_src src.rgba = [main].result