• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1    1. store_src_rg                   coords = src.rg
2    2. init_lane_masks                CondMask = LoopMask = RetMask = true
3    3. zero_4_slots_unmasked          zero = 0
4    4. copy_constant                  $0 = 0x3F800000 (1.0)
5    5. swizzle_4                      $0..3 = ($0..3).xxxx
6    6. copy_4_slots_unmasked          one = $0..3
7    7. copy_4_constants               $0..3 = colorGreen
8    8. copy_4_slots_unmasked          green = $0..3
9    9. copy_4_slots_unmasked          $4..7 = one
10   10. mul_4_floats                   $0..3 *= $4..7
11   11. copy_4_slots_unmasked          $4..7 = zero
12   12. add_4_floats                   $0..3 += $4..7
13   13. copy_4_slots_unmasked          green = $0..3
14   14. copy_4_constants               $0..3 = colorRed
15   15. copy_4_slots_unmasked          red = $0..3
16   16. copy_4_slots_unmasked          $4..7 = zero
17   17. add_4_floats                   $0..3 += $4..7
18   18. copy_4_slots_unmasked          $4..7 = one
19   19. mul_4_floats                   $0..3 *= $4..7
20   20. copy_4_slots_unmasked          red = $0..3
21   21. store_condition_mask           $12 = CondMask
22   22. store_condition_mask           $51 = CondMask
23   23. store_condition_mask           $55 = CondMask
24   24. store_condition_mask           $16 = CondMask
25   25. store_condition_mask           $66 = CondMask
26   26. store_condition_mask           $62 = CondMask
27   27. branch_if_no_active_lanes      branch_if_no_active_lanes +11 (label 7 at #38)
28   28. copy_constant                  mp = 0x3F000000 (0.5)
29   29. copy_slot_unmasked             hp = mp
30   30. copy_constant                  ihp = 0x00000002 (2.802597e-45)
31   31. copy_slot_unmasked             imp = ihp
32   32. copy_2_slots_unmasked          $63..64 = mp, hp
33   33. cmpeq_float                    $63 = equal($63, $64)
34   34. copy_2_slots_unmasked          $64..65 = ihp, imp
35   35. cmpeq_int                      $64 = equal($64, $65)
36   36. bitwise_and_int                $63 &= $64
37   37. copy_slot_masked               [test_scalar].result = Mask($63)
38   38. label                          label 0x00000007
39   39. zero_slot_unmasked             $67 = 0
40   40. merge_condition_mask           CondMask = $62 & $63
41   41. branch_if_no_active_lanes      branch_if_no_active_lanes +60 (label 6 at #101)
42   42. copy_constant                  $68 = 0x40000000 (2.0)
43   43. copy_slot_unmasked             $69 = $68
44   44. copy_2_slots_unmasked          mp2 = $68..69
45   45. copy_2_slots_unmasked          hp2 = $68..69
46   46. copy_constant                  $68 = 0x40400000 (3.0)
47   47. swizzle_3                      $68..70 = ($68..70).xxx
48   48. copy_3_slots_unmasked          mp3 = $68..70
49   49. copy_3_slots_unmasked          hp3 = $68..70
50   50. copy_constant                  $68 = 0x40800000 (4.0)
51   51. swizzle_4                      $68..71 = ($68..71).xxxx
52   52. copy_4_slots_unmasked          mp4 = $68..71
53   53. copy_4_slots_unmasked          hp4 = $68..71
54   54. copy_constant                  $68 = 0x00000002 (2.802597e-45)
55   55. copy_slot_unmasked             $69 = $68
56   56. copy_2_slots_unmasked          ihp2 = $68..69
57   57. copy_2_slots_unmasked          imp2 = $68..69
58   58. copy_constant                  $68 = 0x00000003 (4.203895e-45)
59   59. swizzle_3                      $68..70 = ($68..70).xxx
60   60. copy_3_slots_unmasked          ihp3 = $68..70
61   61. copy_3_slots_unmasked          imp3 = $68..70
62   62. copy_constant                  $68 = 0x00000004 (5.605194e-45)
63   63. swizzle_4                      $68..71 = ($68..71).xxxx
64   64. copy_4_slots_unmasked          ihp4 = $68..71
65   65. copy_4_slots_unmasked          imp4 = $68..71
66   66. copy_4_slots_unmasked          $68..71 = mp2, hp2
67   67. cmpeq_2_floats                 $68..69 = equal($68..69, $70..71)
68   68. bitwise_and_int                $68 &= $69
69   69. copy_3_slots_unmasked          $69..71 = hp3
70   70. copy_3_slots_unmasked          $72..74 = mp3
71   71. cmpeq_3_floats                 $69..71 = equal($69..71, $72..74)
72   72. bitwise_and_int                $70 &= $71
73   73. bitwise_and_int                $69 &= $70
74   74. bitwise_and_int                $68 &= $69
75   75. copy_4_slots_unmasked          $69..72 = mp4
76   76. copy_4_slots_unmasked          $73..76 = hp4
77   77. cmpeq_4_floats                 $69..72 = equal($69..72, $73..76)
78   78. bitwise_and_2_ints             $69..70 &= $71..72
79   79. bitwise_and_int                $69 &= $70
80   80. bitwise_and_int                $68 &= $69
81   81. copy_2_slots_unmasked          $69..70 = imp2
82   82. copy_2_slots_unmasked          $71..72 = ihp2
83   83. cmpeq_2_ints                   $69..70 = equal($69..70, $71..72)
84   84. bitwise_and_int                $69 &= $70
85   85. bitwise_and_int                $68 &= $69
86   86. copy_4_slots_unmasked          $69..72 = ihp3, imp3(0)
87   87. copy_2_slots_unmasked          $73..74 = imp3(1..2)
88   88. cmpeq_3_ints                   $69..71 = equal($69..71, $72..74)
89   89. bitwise_and_int                $70 &= $71
90   90. bitwise_and_int                $69 &= $70
91   91. bitwise_and_int                $68 &= $69
92   92. copy_4_slots_unmasked          $69..72 = imp4
93   93. copy_4_slots_unmasked          $73..76 = ihp4
94   94. cmpeq_4_ints                   $69..72 = equal($69..72, $73..76)
95   95. bitwise_and_2_ints             $69..70 &= $71..72
96   96. bitwise_and_int                $69 &= $70
97   97. bitwise_and_int                $68 &= $69
98   98. copy_slot_masked               [test_vector].result = Mask($68)
99   99. label                          label 0x00000008
100  100. copy_slot_masked               $67 = Mask($68)
101  101. label                          label 0x00000006
102  102. load_condition_mask            CondMask = $62
103  103. zero_slot_unmasked             $17 = 0
104  104. merge_condition_mask           CondMask = $66 & $67
105  105. branch_if_no_active_lanes      branch_if_no_active_lanes +61 (label 5 at #166)
106  106. zero_slot_unmasked             $18 = 0
107  107. copy_constant                  $19 = 0x40000000 (2.0)
108  108. swizzle_4                      $18..21 = ($18..21).yxxy
109  109. copy_4_slots_unmasked          mp2₁ = $18..21
110  110. copy_4_slots_unmasked          hp2₁ = $18..21
111  111. zero_slot_unmasked             $18 = 0
112  112. copy_constant                  $19 = 0x40400000 (3.0)
113  113. shuffle                        $18..26 = ($18..26)[1 0 0 0 1 0 0 0 1]
114  114. copy_4_slots_unmasked          mp3₁(0..3) = $18..21
115  115. copy_4_slots_unmasked          mp3₁(4..7) = $22..25
116  116. copy_slot_unmasked             mp3₁(8) = $26
117  117. copy_4_slots_unmasked          hp3₁(0..3) = $18..21
118  118. copy_4_slots_unmasked          hp3₁(4..7) = $22..25
119  119. copy_slot_unmasked             hp3₁(8) = $26
120  120. zero_slot_unmasked             $18 = 0
121  121. copy_constant                  $19 = 0x40800000 (4.0)
122  122. shuffle                        $18..33 = ($18..33)[1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1]
123  123. copy_4_slots_unmasked          mp4₁(0..3) = $18..21
124  124. copy_4_slots_unmasked          mp4₁(4..7) = $22..25
125  125. copy_4_slots_unmasked          mp4₁(8..11) = $26..29
126  126. copy_4_slots_unmasked          mp4₁(12..15) = $30..33
127  127. copy_4_slots_unmasked          hp4₁(0..3) = $18..21
128  128. copy_4_slots_unmasked          hp4₁(4..7) = $22..25
129  129. copy_4_slots_unmasked          hp4₁(8..11) = $26..29
130  130. copy_4_slots_unmasked          hp4₁(12..15) = $30..33
131  131. copy_4_slots_unmasked          $18..21 = mp2₁
132  132. copy_4_slots_unmasked          $22..25 = hp2₁
133  133. cmpeq_4_floats                 $18..21 = equal($18..21, $22..25)
134  134. bitwise_and_2_ints             $18..19 &= $20..21
135  135. bitwise_and_int                $18 &= $19
136  136. copy_4_slots_unmasked          $19..22 = hp3₁(0..3)
137  137. copy_4_slots_unmasked          $23..26 = hp3₁(4..7)
138  138. copy_slot_unmasked             $27 = hp3₁(8)
139  139. copy_4_slots_unmasked          $28..31 = mp3₁(0..3)
140  140. copy_4_slots_unmasked          $32..35 = mp3₁(4..7)
141  141. copy_slot_unmasked             $36 = mp3₁(8)
142  142. cmpeq_n_floats                 $19..27 = equal($19..27, $28..36)
143  143. bitwise_and_4_ints             $20..23 &= $24..27
144  144. bitwise_and_2_ints             $20..21 &= $22..23
145  145. bitwise_and_int                $20 &= $21
146  146. bitwise_and_int                $19 &= $20
147  147. bitwise_and_int                $18 &= $19
148  148. copy_4_slots_unmasked          $19..22 = mp4₁(0..3)
149  149. copy_4_slots_unmasked          $23..26 = mp4₁(4..7)
150  150. copy_4_slots_unmasked          $27..30 = mp4₁(8..11)
151  151. copy_4_slots_unmasked          $31..34 = mp4₁(12..15)
152  152. copy_4_slots_unmasked          $35..38 = hp4₁(0..3)
153  153. copy_4_slots_unmasked          $39..42 = hp4₁(4..7)
154  154. copy_4_slots_unmasked          $43..46 = hp4₁(8..11)
155  155. copy_4_slots_unmasked          $47..50 = hp4₁(12..15)
156  156. cmpeq_n_floats                 $19..34 = equal($19..34, $35..50)
157  157. bitwise_and_4_ints             $27..30 &= $31..34
158  158. bitwise_and_4_ints             $23..26 &= $27..30
159  159. bitwise_and_4_ints             $19..22 &= $23..26
160  160. bitwise_and_2_ints             $19..20 &= $21..22
161  161. bitwise_and_int                $19 &= $20
162  162. bitwise_and_int                $18 &= $19
163  163. copy_slot_masked               [test_matrix].result = Mask($18)
164  164. label                          label 0x00000009
165  165. copy_slot_masked               $17 = Mask($18)
166  166. label                          label 0x00000005
167  167. load_condition_mask            CondMask = $66
168  168. zero_slot_unmasked             $56 = 0
169  169. merge_condition_mask           CondMask = $16 & $17
170  170. branch_if_no_active_lanes      branch_if_no_active_lanes +36 (label 4 at #206)
171  171. zero_slot_unmasked             mf[0] = 0
172  172. copy_constant                  $57 = 0x3F800000 (1.0)
173  173. copy_slot_masked               mf[0] = Mask($57)
174  174. zero_slot_unmasked             hf[0] = 0
175  175. copy_constant                  $57 = 0x3F800000 (1.0)
176  176. copy_slot_masked               hf[0] = Mask($57)
177  177. zero_4_slots_unmasked          mv[0], mv[1] = 0
178  178. zero_slot_unmasked             $57 = 0
179  179. copy_constant                  $58 = 0x3F800000 (1.0)
180  180. copy_2_slots_masked            mv[0] = Mask($57..58)
181  181. copy_constant                  $57 = 0x40000000 (2.0)
182  182. copy_constant                  $58 = 0x40400000 (3.0)
183  183. copy_2_slots_masked            mv[1] = Mask($57..58)
184  184. zero_4_slots_unmasked          hv[0], hv[1] = 0
185  185. zero_slot_unmasked             $57 = 0
186  186. copy_constant                  $58 = 0x3F800000 (1.0)
187  187. copy_2_slots_masked            hv[0] = Mask($57..58)
188  188. copy_constant                  $57 = 0x40000000 (2.0)
189  189. copy_constant                  $58 = 0x40400000 (3.0)
190  190. copy_2_slots_masked            hv[1] = Mask($57..58)
191  191. copy_2_slots_unmasked          $57..58 = mf[0], hf[0]
192  192. cmpeq_float                    $57 = equal($57, $58)
193  193. copy_2_slots_unmasked          $58..59 = hv[0]
194  194. copy_2_slots_unmasked          $60..61 = mv[0]
195  195. cmpeq_2_floats                 $58..59 = equal($58..59, $60..61)
196  196. bitwise_and_int                $58 &= $59
197  197. bitwise_and_int                $57 &= $58
198  198. copy_2_slots_unmasked          $58..59 = mv[1]
199  199. copy_2_slots_unmasked          $60..61 = hv[1]
200  200. cmpeq_2_floats                 $58..59 = equal($58..59, $60..61)
201  201. bitwise_and_int                $58 &= $59
202  202. bitwise_and_int                $57 &= $58
203  203. copy_slot_masked               [test_array].result = Mask($57)
204  204. label                          label 0x0000000A
205  205. copy_slot_masked               $56 = Mask($57)
206  206. label                          label 0x00000004
207  207. load_condition_mask            CondMask = $16
208  208. zero_slot_unmasked             $52 = 0
209  209. merge_condition_mask           CondMask = $55 & $56
210  210. branch_if_no_active_lanes      branch_if_no_active_lanes +8 (label 3 at #218)
211  211. copy_constant                  value = 0x3F800000 (1.0)
212  212. copy_slot_unmasked             $53 = value
213  213. copy_constant                  $54 = 0x3F800000 (1.0)
214  214. cmpeq_float                    $53 = equal($53, $54)
215  215. copy_slot_masked               [highp_param].result = Mask($53)
216  216. label                          label 0x0000000B
217  217. copy_slot_masked               $52 = Mask($53)
218  218. label                          label 0x00000003
219  219. load_condition_mask            CondMask = $55
220  220. zero_slot_unmasked             $13 = 0
221  221. merge_condition_mask           CondMask = $51 & $52
222  222. branch_if_no_active_lanes      branch_if_no_active_lanes +8 (label 2 at #230)
223  223. copy_constant                  value₁ = 0x40000000 (2.0)
224  224. copy_slot_unmasked             $14 = value₁
225  225. copy_constant                  $15 = 0x40000000 (2.0)
226  226. cmpeq_float                    $14 = equal($14, $15)
227  227. copy_slot_masked               [mediump_param].result = Mask($14)
228  228. label                          label 0x0000000C
229  229. copy_slot_masked               $13 = Mask($14)
230  230. label                          label 0x00000002
231  231. load_condition_mask            CondMask = $51
232  232. zero_slot_unmasked             $0 = 0
233  233. merge_condition_mask           CondMask = $12 & $13
234  234. branch_if_no_active_lanes      branch_if_no_active_lanes +8 (label 1 at #242)
235  235. copy_constant                  value₂ = 0x40400000 (3.0)
236  236. copy_slot_unmasked             $1 = value₂
237  237. copy_constant                  $2 = 0x40400000 (3.0)
238  238. cmpeq_float                    $1 = equal($1, $2)
239  239. copy_slot_masked               [lowp_param].result = Mask($1)
240  240. label                          label 0x0000000D
241  241. copy_slot_masked               $0 = Mask($1)
242  242. label                          label 0x00000001
243  243. load_condition_mask            CondMask = $12
244  244. swizzle_4                      $0..3 = ($0..3).xxxx
245  245. copy_4_slots_unmasked          $4..7 = red
246  246. copy_4_slots_unmasked          $8..11 = green
247  247. mix_4_ints                     $0..3 = mix($4..7, $8..11, $0..3)
248  248. copy_4_slots_unmasked          [main].result = $0..3
249  249. load_src                       src.rgba = [main].result
250