• 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. copy_constant                  _0_ok = 0xFFFFFFFF
4    4. zero_slot_unmasked             _1_num = 0
5    5. store_condition_mask           $30 = CondMask
6    6. copy_slot_unmasked             $31 = _0_ok
7    7. zero_slot_unmasked             $0 = 0
8    8. merge_condition_mask           CondMask = $30 & $31
9    9. branch_if_no_active_lanes      branch_if_no_active_lanes +10 (label 0 at #19)
10   10. copy_slot_unmasked             $1 = _1_num
11   11. copy_constant                  $2 = 0x3F800000 (1.0)
12   12. add_float                      $1 += $2
13   13. copy_slot_masked               _1_num = Mask($1)
14   14. zero_slot_unmasked             $2 = 0
15   15. swizzle_1                      $1 = ($1..2).y
16   16. zero_slot_unmasked             $2 = 0
17   17. cmpeq_float                    $1 = equal($1, $2)
18   18. copy_slot_masked               $0 = Mask($1)
19   19. label                          label 0x00000000
20   20. load_condition_mask            CondMask = $30
21   21. copy_slot_unmasked             _0_ok = $0
22   22. store_condition_mask           $30 = CondMask
23   23. copy_slot_unmasked             $31 = _0_ok
24   24. zero_slot_unmasked             $0 = 0
25   25. merge_condition_mask           CondMask = $30 & $31
26   26. branch_if_no_active_lanes      branch_if_no_active_lanes +9 (label 1 at #35)
27   27. zero_slot_unmasked             $1 = 0
28   28. copy_slot_unmasked             $2 = _1_num
29   29. copy_constant                  $3 = 0x3F800000 (1.0)
30   30. add_float                      $2 += $3
31   31. copy_slot_masked               _1_num = Mask($2)
32   32. zero_slot_unmasked             $2 = 0
33   33. cmpeq_float                    $1 = equal($1, $2)
34   34. copy_slot_masked               $0 = Mask($1)
35   35. label                          label 0x00000001
36   36. load_condition_mask            CondMask = $30
37   37. copy_slot_unmasked             _0_ok = $0
38   38. store_condition_mask           $30 = CondMask
39   39. copy_slot_unmasked             $31 = _0_ok
40   40. zero_slot_unmasked             $0 = 0
41   41. merge_condition_mask           CondMask = $30 & $31
42   42. branch_if_no_active_lanes      branch_if_no_active_lanes +13 (label 2 at #55)
43   43. copy_slot_unmasked             $1 = _1_num
44   44. copy_constant                  $2 = 0x3F800000 (1.0)
45   45. add_float                      $1 += $2
46   46. copy_slot_masked               _1_num = Mask($1)
47   47. copy_constant                  $2 = 0x3F800000 (1.0)
48   48. zero_slot_unmasked             $3 = 0
49   49. swizzle_2                      $1..2 = ($1..3).yz
50   50. copy_constant                  $3 = 0x3F800000 (1.0)
51   51. zero_slot_unmasked             $4 = 0
52   52. cmpeq_2_floats                 $1..2 = equal($1..2, $3..4)
53   53. bitwise_and_int                $1 &= $2
54   54. copy_slot_masked               $0 = Mask($1)
55   55. label                          label 0x00000002
56   56. load_condition_mask            CondMask = $30
57   57. copy_slot_unmasked             _0_ok = $0
58   58. store_condition_mask           $30 = CondMask
59   59. copy_slot_unmasked             $31 = _0_ok
60   60. zero_slot_unmasked             $0 = 0
61   61. merge_condition_mask           CondMask = $30 & $31
62   62. branch_if_no_active_lanes      branch_if_no_active_lanes +12 (label 3 at #74)
63   63. copy_constant                  $1 = 0x3F800000 (1.0)
64   64. zero_slot_unmasked             $2 = 0
65   65. copy_slot_unmasked             $3 = _1_num
66   66. copy_constant                  $4 = 0x3F800000 (1.0)
67   67. add_float                      $3 += $4
68   68. copy_slot_masked               _1_num = Mask($3)
69   69. copy_constant                  $3 = 0x3F800000 (1.0)
70   70. zero_slot_unmasked             $4 = 0
71   71. cmpeq_2_floats                 $1..2 = equal($1..2, $3..4)
72   72. bitwise_and_int                $1 &= $2
73   73. copy_slot_masked               $0 = Mask($1)
74   74. label                          label 0x00000003
75   75. load_condition_mask            CondMask = $30
76   76. copy_slot_unmasked             _0_ok = $0
77   77. store_condition_mask           $30 = CondMask
78   78. copy_slot_unmasked             $31 = _0_ok
79   79. zero_slot_unmasked             $0 = 0
80   80. merge_condition_mask           CondMask = $30 & $31
81   81. branch_if_no_active_lanes      branch_if_no_active_lanes +13 (label 4 at #94)
82   82. copy_slot_unmasked             $1 = _1_num
83   83. copy_constant                  $2 = 0x3F800000 (1.0)
84   84. add_float                      $1 += $2
85   85. copy_slot_masked               _1_num = Mask($1)
86   86. copy_constant                  $2 = 0x3F800000 (1.0)
87   87. zero_slot_unmasked             $3 = 0
88   88. swizzle_2                      $1..2 = ($1..3).yz
89   89. copy_constant                  $3 = 0x3F800000 (1.0)
90   90. zero_slot_unmasked             $4 = 0
91   91. cmpeq_2_floats                 $1..2 = equal($1..2, $3..4)
92   92. bitwise_and_int                $1 &= $2
93   93. copy_slot_masked               $0 = Mask($1)
94   94. label                          label 0x00000004
95   95. load_condition_mask            CondMask = $30
96   96. copy_slot_unmasked             _0_ok = $0
97   97. store_condition_mask           $30 = CondMask
98   98. copy_slot_unmasked             $31 = _0_ok
99   99. zero_slot_unmasked             $0 = 0
100  100. merge_condition_mask           CondMask = $30 & $31
101  101. branch_if_no_active_lanes      branch_if_no_active_lanes +14 (label 5 at #115)
102  102. copy_slot_unmasked             $1 = _1_num
103  103. copy_constant                  $2 = 0x3F800000 (1.0)
104  104. add_float                      $1 += $2
105  105. copy_slot_masked               _1_num = Mask($1)
106  106. copy_constant                  $2 = 0x3F800000 (1.0)
107  107. zero_2_slots_unmasked          $3..4 = 0
108  108. swizzle_3                      $1..3 = ($1..4).yzw
109  109. copy_constant                  $4 = 0x3F800000 (1.0)
110  110. zero_2_slots_unmasked          $5..6 = 0
111  111. cmpeq_3_floats                 $1..3 = equal($1..3, $4..6)
112  112. bitwise_and_int                $2 &= $3
113  113. bitwise_and_int                $1 &= $2
114  114. copy_slot_masked               $0 = Mask($1)
115  115. label                          label 0x00000005
116  116. load_condition_mask            CondMask = $30
117  117. copy_slot_unmasked             _0_ok = $0
118  118. store_condition_mask           $30 = CondMask
119  119. copy_slot_unmasked             $31 = _0_ok
120  120. zero_slot_unmasked             $0 = 0
121  121. merge_condition_mask           CondMask = $30 & $31
122  122. branch_if_no_active_lanes      branch_if_no_active_lanes +9 (label 6 at #131)
123  123. copy_constant                  $1 = 0x3F800000 (1.0)
124  124. copy_slot_unmasked             $2 = _1_num
125  125. copy_constant                  $3 = 0x3F800000 (1.0)
126  126. add_float                      $2 += $3
127  127. copy_slot_masked               _1_num = Mask($2)
128  128. copy_constant                  $2 = 0x3F800000 (1.0)
129  129. cmpeq_float                    $1 = equal($1, $2)
130  130. copy_slot_masked               $0 = Mask($1)
131  131. label                          label 0x00000006
132  132. load_condition_mask            CondMask = $30
133  133. copy_slot_unmasked             _0_ok = $0
134  134. store_condition_mask           $30 = CondMask
135  135. copy_slot_unmasked             $31 = _0_ok
136  136. zero_slot_unmasked             $0 = 0
137  137. merge_condition_mask           CondMask = $30 & $31
138  138. branch_if_no_active_lanes      branch_if_no_active_lanes +12 (label 7 at #150)
139  139. copy_constant                  $1 = 0x3F800000 (1.0)
140  140. zero_slot_unmasked             $2 = 0
141  141. copy_slot_unmasked             $3 = _1_num
142  142. copy_constant                  $4 = 0x3F800000 (1.0)
143  143. add_float                      $3 += $4
144  144. copy_slot_masked               _1_num = Mask($3)
145  145. copy_constant                  $4 = 0x3F800000 (1.0)
146  146. swizzle_1                      $1 = ($1..4).w
147  147. copy_constant                  $2 = 0x3F800000 (1.0)
148  148. cmpeq_float                    $1 = equal($1, $2)
149  149. copy_slot_masked               $0 = Mask($1)
150  150. label                          label 0x00000007
151  151. load_condition_mask            CondMask = $30
152  152. copy_slot_unmasked             _0_ok = $0
153  153. store_condition_mask           $30 = CondMask
154  154. copy_slot_unmasked             $31 = _0_ok
155  155. zero_slot_unmasked             $0 = 0
156  156. merge_condition_mask           CondMask = $30 & $31
157  157. branch_if_no_active_lanes      branch_if_no_active_lanes +15 (label 8 at #172)
158  158. copy_constant                  $1 = 0x3F800000 (1.0)
159  159. zero_slot_unmasked             $2 = 0
160  160. copy_constant                  $3 = 0x3F800000 (1.0)
161  161. copy_slot_unmasked             $4 = _1_num
162  162. copy_constant                  $5 = 0x3F800000 (1.0)
163  163. add_float                      $4 += $5
164  164. copy_slot_masked               _1_num = Mask($4)
165  165. copy_constant                  $4 = 0x3F800000 (1.0)
166  166. zero_slot_unmasked             $5 = 0
167  167. copy_constant                  $6 = 0x3F800000 (1.0)
168  168. cmpeq_3_floats                 $1..3 = equal($1..3, $4..6)
169  169. bitwise_and_int                $2 &= $3
170  170. bitwise_and_int                $1 &= $2
171  171. copy_slot_masked               $0 = Mask($1)
172  172. label                          label 0x00000008
173  173. load_condition_mask            CondMask = $30
174  174. copy_slot_unmasked             _0_ok = $0
175  175. store_condition_mask           $30 = CondMask
176  176. copy_2_slots_unmasked          $31..32 = _0_ok, _1_num
177  177. copy_constant                  $33 = 0x41100000 (9.0)
178  178. cmpeq_float                    $32 = equal($32, $33)
179  179. bitwise_and_int                $31 &= $32
180  180. zero_slot_unmasked             $0 = 0
181  181. merge_condition_mask           CondMask = $30 & $31
182  182. branch_if_no_active_lanes      branch_if_no_active_lanes +288 (label 10 at #470)
183  183. copy_constant                  ok = 0xFFFFFFFF
184  184. zero_slot_unmasked             num = 0
185  185. store_condition_mask           $28 = CondMask
186  186. copy_slot_unmasked             $29 = ok
187  187. zero_slot_unmasked             $1 = 0
188  188. merge_condition_mask           CondMask = $28 & $29
189  189. branch_if_no_active_lanes      branch_if_no_active_lanes +14 (label 12 at #203)
190  190. copy_constant                  $12 = 0x3F800000 (1.0)
191  191. copy_constant                  $13 = 0x40000000 (2.0)
192  192. copy_constant                  $14 = 0x40400000 (3.0)
193  193. copy_slot_unmasked             $15 = num
194  194. copy_constant                  $16 = 0x3F800000 (1.0)
195  195. add_float                      $15 += $16
196  196. copy_slot_masked               num = Mask($15)
197  197. copy_2_slots_unmasked          $2..3 = $12..13
198  198. copy_constant                  $4 = 0x3F800000 (1.0)
199  199. copy_constant                  $5 = 0x40000000 (2.0)
200  200. cmpeq_2_floats                 $2..3 = equal($2..3, $4..5)
201  201. bitwise_and_int                $2 &= $3
202  202. copy_slot_masked               $1 = Mask($2)
203  203. label                          label 0x0000000C
204  204. load_condition_mask            CondMask = $28
205  205. copy_slot_masked               ok = Mask($1)
206  206. store_condition_mask           $28 = CondMask
207  207. copy_slot_unmasked             $29 = ok
208  208. zero_slot_unmasked             $1 = 0
209  209. merge_condition_mask           CondMask = $28 & $29
210  210. branch_if_no_active_lanes      branch_if_no_active_lanes +14 (label 13 at #224)
211  211. copy_slot_unmasked             $12 = num
212  212. copy_constant                  $13 = 0x3F800000 (1.0)
213  213. add_float                      $12 += $13
214  214. copy_slot_masked               num = Mask($12)
215  215. copy_slot_unmasked             $13 = $12
216  216. copy_constant                  $14 = 0x40400000 (3.0)
217  217. copy_constant                  $15 = 0x40800000 (4.0)
218  218. copy_2_slots_unmasked          $2..3 = $14..15
219  219. copy_constant                  $4 = 0x40400000 (3.0)
220  220. copy_constant                  $5 = 0x40800000 (4.0)
221  221. cmpeq_2_floats                 $2..3 = equal($2..3, $4..5)
222  222. bitwise_and_int                $2 &= $3
223  223. copy_slot_masked               $1 = Mask($2)
224  224. label                          label 0x0000000D
225  225. load_condition_mask            CondMask = $28
226  226. copy_slot_masked               ok = Mask($1)
227  227. store_condition_mask           $28 = CondMask
228  228. copy_slot_unmasked             $29 = ok
229  229. zero_slot_unmasked             $1 = 0
230  230. merge_condition_mask           CondMask = $28 & $29
231  231. branch_if_no_active_lanes      branch_if_no_active_lanes +16 (label 14 at #247)
232  232. copy_constant                  $12 = 0x3F800000 (1.0)
233  233. swizzle_3                      $12..14 = ($12..14).xxx
234  234. copy_slot_unmasked             $15 = num
235  235. copy_constant                  $16 = 0x3F800000 (1.0)
236  236. add_float                      $15 += $16
237  237. copy_slot_masked               num = Mask($15)
238  238. swizzle_3                      $15..17 = ($15..17).xxx
239  239. zero_3_slots_unmasked          $18..20 = 0
240  240. copy_3_slots_unmasked          $2..4 = $12..14
241  241. copy_constant                  $5 = 0x3F800000 (1.0)
242  242. swizzle_3                      $5..7 = ($5..7).xxx
243  243. cmpeq_3_floats                 $2..4 = equal($2..4, $5..7)
244  244. bitwise_and_int                $3 &= $4
245  245. bitwise_and_int                $2 &= $3
246  246. copy_slot_masked               $1 = Mask($2)
247  247. label                          label 0x0000000E
248  248. load_condition_mask            CondMask = $28
249  249. copy_slot_masked               ok = Mask($1)
250  250. store_condition_mask           $28 = CondMask
251  251. copy_slot_unmasked             $29 = ok
252  252. zero_slot_unmasked             $1 = 0
253  253. merge_condition_mask           CondMask = $28 & $29
254  254. branch_if_no_active_lanes      branch_if_no_active_lanes +15 (label 15 at #269)
255  255. copy_constant                  $12 = 0x3F800000 (1.0)
256  256. swizzle_3                      $12..14 = ($12..14).xxx
257  257. copy_slot_unmasked             $15 = num
258  258. copy_constant                  $16 = 0x3F800000 (1.0)
259  259. add_float                      $15 += $16
260  260. copy_slot_masked               num = Mask($15)
261  261. swizzle_3                      $15..17 = ($15..17).xxx
262  262. zero_3_slots_unmasked          $18..20 = 0
263  263. copy_3_slots_unmasked          $2..4 = $18..20
264  264. zero_3_slots_unmasked          $5..7 = 0
265  265. cmpeq_3_floats                 $2..4 = equal($2..4, $5..7)
266  266. bitwise_and_int                $3 &= $4
267  267. bitwise_and_int                $2 &= $3
268  268. copy_slot_masked               $1 = Mask($2)
269  269. label                          label 0x0000000F
270  270. load_condition_mask            CondMask = $28
271  271. copy_slot_masked               ok = Mask($1)
272  272. store_condition_mask           $28 = CondMask
273  273. copy_slot_unmasked             $29 = ok
274  274. zero_slot_unmasked             $1 = 0
275  275. merge_condition_mask           CondMask = $28 & $29
276  276. branch_if_no_active_lanes      branch_if_no_active_lanes +16 (label 16 at #292)
277  277. copy_slot_unmasked             $12 = num
278  278. copy_constant                  $13 = 0x3F800000 (1.0)
279  279. add_float                      $12 += $13
280  280. copy_slot_masked               num = Mask($12)
281  281. swizzle_3                      $12..14 = ($12..14).xxx
282  282. copy_constant                  $15 = 0x3F800000 (1.0)
283  283. swizzle_3                      $15..17 = ($15..17).xxx
284  284. zero_3_slots_unmasked          $18..20 = 0
285  285. copy_3_slots_unmasked          $2..4 = $15..17
286  286. copy_constant                  $5 = 0x3F800000 (1.0)
287  287. swizzle_3                      $5..7 = ($5..7).xxx
288  288. cmpeq_3_floats                 $2..4 = equal($2..4, $5..7)
289  289. bitwise_and_int                $3 &= $4
290  290. bitwise_and_int                $2 &= $3
291  291. copy_slot_masked               $1 = Mask($2)
292  292. label                          label 0x00000010
293  293. load_condition_mask            CondMask = $28
294  294. copy_slot_masked               ok = Mask($1)
295  295. store_condition_mask           $28 = CondMask
296  296. copy_slot_unmasked             $29 = ok
297  297. zero_slot_unmasked             $1 = 0
298  298. merge_condition_mask           CondMask = $28 & $29
299  299. branch_if_no_active_lanes      branch_if_no_active_lanes +21 (label 17 at #320)
300  300. copy_constant                  $12 = 0x3F800000 (1.0)
301  301. copy_constant                  $13 = 0x40000000 (2.0)
302  302. copy_constant                  $14 = 0x40400000 (3.0)
303  303. copy_constant                  $15 = 0x40800000 (4.0)
304  304. copy_constant                  $16 = 0x40A00000 (5.0)
305  305. copy_slot_unmasked             $17 = num
306  306. copy_constant                  $18 = 0x3F800000 (1.0)
307  307. add_float                      $17 += $18
308  308. copy_slot_masked               num = Mask($17)
309  309. copy_constant                  $18 = 0x40E00000 (7.0)
310  310. copy_constant                  $19 = 0x41000000 (8.0)
311  311. copy_constant                  $20 = 0x41100000 (9.0)
312  312. copy_3_slots_unmasked          $2..4 = $12..14
313  313. copy_constant                  $5 = 0x3F800000 (1.0)
314  314. copy_constant                  $6 = 0x40000000 (2.0)
315  315. copy_constant                  $7 = 0x40400000 (3.0)
316  316. cmpeq_3_floats                 $2..4 = equal($2..4, $5..7)
317  317. bitwise_and_int                $3 &= $4
318  318. bitwise_and_int                $2 &= $3
319  319. copy_slot_masked               $1 = Mask($2)
320  320. label                          label 0x00000011
321  321. load_condition_mask            CondMask = $28
322  322. copy_slot_masked               ok = Mask($1)
323  323. store_condition_mask           $28 = CondMask
324  324. copy_slot_unmasked             $29 = ok
325  325. zero_slot_unmasked             $1 = 0
326  326. merge_condition_mask           CondMask = $28 & $29
327  327. branch_if_no_active_lanes      branch_if_no_active_lanes +22 (label 18 at #349)
328  328. copy_constant                  $12 = 0x3F800000 (1.0)
329  329. copy_constant                  $13 = 0x40000000 (2.0)
330  330. copy_constant                  $14 = 0x40400000 (3.0)
331  331. copy_constant                  $15 = 0x40800000 (4.0)
332  332. copy_constant                  $16 = 0x40A00000 (5.0)
333  333. copy_constant                  $17 = 0x40C00000 (6.0)
334  334. copy_slot_unmasked             $18 = num
335  335. copy_slot_unmasked             $19 = $18
336  336. copy_constant                  $20 = 0x3F800000 (1.0)
337  337. add_float                      $19 += $20
338  338. copy_slot_masked               num = Mask($19)
339  339. copy_constant                  $19 = 0x41000000 (8.0)
340  340. copy_constant                  $20 = 0x41100000 (9.0)
341  341. copy_3_slots_unmasked          $2..4 = $15..17
342  342. copy_constant                  $5 = 0x40800000 (4.0)
343  343. copy_constant                  $6 = 0x40A00000 (5.0)
344  344. copy_constant                  $7 = 0x40C00000 (6.0)
345  345. cmpeq_3_floats                 $2..4 = equal($2..4, $5..7)
346  346. bitwise_and_int                $3 &= $4
347  347. bitwise_and_int                $2 &= $3
348  348. copy_slot_masked               $1 = Mask($2)
349  349. label                          label 0x00000012
350  350. load_condition_mask            CondMask = $28
351  351. copy_slot_masked               ok = Mask($1)
352  352. store_condition_mask           $28 = CondMask
353  353. copy_slot_unmasked             $29 = ok
354  354. zero_slot_unmasked             $1 = 0
355  355. merge_condition_mask           CondMask = $28 & $29
356  356. branch_if_no_active_lanes      branch_if_no_active_lanes +19 (label 19 at #375)
357  357. copy_slot_unmasked             $12 = num
358  358. copy_constant                  $13 = 0x3F800000 (1.0)
359  359. add_float                      $12 += $13
360  360. copy_slot_masked               num = Mask($12)
361  361. swizzle_4                      $12..15 = ($12..15).xxxx
362  362. copy_constant                  $16 = 0x3F800000 (1.0)
363  363. swizzle_4                      $16..19 = ($16..19).xxxx
364  364. copy_constant                  $20 = 0x40000000 (2.0)
365  365. swizzle_4                      $20..23 = ($20..23).xxxx
366  366. copy_constant                  $24 = 0x40400000 (3.0)
367  367. swizzle_4                      $24..27 = ($24..27).xxxx
368  368. copy_4_slots_unmasked          $2..5 = $16..19
369  369. copy_constant                  $6 = 0x3F800000 (1.0)
370  370. swizzle_4                      $6..9 = ($6..9).xxxx
371  371. cmpeq_4_floats                 $2..5 = equal($2..5, $6..9)
372  372. bitwise_and_2_ints             $2..3 &= $4..5
373  373. bitwise_and_int                $2 &= $3
374  374. copy_slot_masked               $1 = Mask($2)
375  375. label                          label 0x00000013
376  376. load_condition_mask            CondMask = $28
377  377. copy_slot_masked               ok = Mask($1)
378  378. store_condition_mask           $28 = CondMask
379  379. copy_slot_unmasked             $29 = ok
380  380. zero_slot_unmasked             $1 = 0
381  381. merge_condition_mask           CondMask = $28 & $29
382  382. branch_if_no_active_lanes      branch_if_no_active_lanes +19 (label 20 at #401)
383  383. copy_constant                  $12 = 0x3F800000 (1.0)
384  384. swizzle_4                      $12..15 = ($12..15).xxxx
385  385. copy_slot_unmasked             $16 = num
386  386. copy_constant                  $17 = 0x3F800000 (1.0)
387  387. add_float                      $16 += $17
388  388. copy_slot_masked               num = Mask($16)
389  389. swizzle_4                      $16..19 = ($16..19).xxxx
390  390. copy_constant                  $20 = 0x40000000 (2.0)
391  391. swizzle_4                      $20..23 = ($20..23).xxxx
392  392. copy_constant                  $24 = 0x40400000 (3.0)
393  393. swizzle_4                      $24..27 = ($24..27).xxxx
394  394. copy_4_slots_unmasked          $2..5 = $20..23
395  395. copy_constant                  $6 = 0x40000000 (2.0)
396  396. swizzle_4                      $6..9 = ($6..9).xxxx
397  397. cmpeq_4_floats                 $2..5 = equal($2..5, $6..9)
398  398. bitwise_and_2_ints             $2..3 &= $4..5
399  399. bitwise_and_int                $2 &= $3
400  400. copy_slot_masked               $1 = Mask($2)
401  401. label                          label 0x00000014
402  402. load_condition_mask            CondMask = $28
403  403. copy_slot_masked               ok = Mask($1)
404  404. store_condition_mask           $28 = CondMask
405  405. copy_slot_unmasked             $29 = ok
406  406. zero_slot_unmasked             $1 = 0
407  407. merge_condition_mask           CondMask = $28 & $29
408  408. branch_if_no_active_lanes      branch_if_no_active_lanes +19 (label 21 at #427)
409  409. copy_constant                  $12 = 0x3F800000 (1.0)
410  410. swizzle_4                      $12..15 = ($12..15).xxxx
411  411. copy_constant                  $16 = 0x3F800000 (1.0)
412  412. swizzle_4                      $16..19 = ($16..19).xxxx
413  413. copy_slot_unmasked             $20 = num
414  414. copy_constant                  $21 = 0x3F800000 (1.0)
415  415. add_float                      $20 += $21
416  416. copy_slot_masked               num = Mask($20)
417  417. swizzle_4                      $20..23 = ($20..23).xxxx
418  418. copy_constant                  $24 = 0x40400000 (3.0)
419  419. swizzle_4                      $24..27 = ($24..27).xxxx
420  420. copy_4_slots_unmasked          $2..5 = $24..27
421  421. copy_constant                  $6 = 0x40400000 (3.0)
422  422. swizzle_4                      $6..9 = ($6..9).xxxx
423  423. cmpeq_4_floats                 $2..5 = equal($2..5, $6..9)
424  424. bitwise_and_2_ints             $2..3 &= $4..5
425  425. bitwise_and_int                $2 &= $3
426  426. copy_slot_masked               $1 = Mask($2)
427  427. label                          label 0x00000015
428  428. load_condition_mask            CondMask = $28
429  429. copy_slot_masked               ok = Mask($1)
430  430. store_condition_mask           $28 = CondMask
431  431. copy_slot_unmasked             $29 = ok
432  432. zero_slot_unmasked             $1 = 0
433  433. merge_condition_mask           CondMask = $28 & $29
434  434. branch_if_no_active_lanes      branch_if_no_active_lanes +26 (label 22 at #460)
435  435. copy_constant                  $12 = 0x3F800000 (1.0)
436  436. copy_constant                  $13 = 0x40000000 (2.0)
437  437. copy_constant                  $14 = 0x40400000 (3.0)
438  438. copy_constant                  $15 = 0x40800000 (4.0)
439  439. copy_constant                  $16 = 0x40A00000 (5.0)
440  440. copy_constant                  $17 = 0x40C00000 (6.0)
441  441. copy_constant                  $18 = 0x40E00000 (7.0)
442  442. copy_constant                  $19 = 0x41000000 (8.0)
443  443. copy_constant                  $20 = 0x41100000 (9.0)
444  444. copy_constant                  $21 = 0x41200000 (10.0)
445  445. copy_constant                  $22 = 0x41300000 (11.0)
446  446. copy_constant                  $23 = 0x41400000 (12.0)
447  447. copy_constant                  $24 = 0x41500000 (13.0)
448  448. copy_constant                  $25 = 0x41600000 (14.0)
449  449. copy_slot_unmasked             $26 = num
450  450. copy_constant                  $27 = 0x3F800000 (1.0)
451  451. add_float                      $26 += $27
452  452. copy_slot_masked               num = Mask($26)
453  453. copy_constant                  $27 = 0x41800000 (16.0)
454  454. copy_4_slots_unmasked          $2..5 = $24..27
455  455. copy_constant                  $4 = 0x41500000 (13.0)
456  456. copy_constant                  $5 = 0x41600000 (14.0)
457  457. cmpeq_2_floats                 $2..3 = equal($2..3, $4..5)
458  458. bitwise_and_int                $2 &= $3
459  459. copy_slot_masked               $1 = Mask($2)
460  460. label                          label 0x00000016
461  461. load_condition_mask            CondMask = $28
462  462. copy_slot_masked               ok = Mask($1)
463  463. copy_slot_unmasked             $2 = num
464  464. copy_constant                  $3 = 0x41300000 (11.0)
465  465. cmpeq_float                    $2 = equal($2, $3)
466  466. bitwise_and_int                $1 &= $2
467  467. copy_slot_masked               [test_matrix].result = Mask($1)
468  468. label                          label 0x0000000B
469  469. copy_slot_masked               $0 = Mask($1)
470  470. label                          label 0x0000000A
471  471. load_condition_mask            CondMask = $30
472  472. swizzle_4                      $0..3 = ($0..3).xxxx
473  473. copy_4_constants               $4..7 = colorRed
474  474. copy_4_constants               $8..11 = colorGreen
475  475. mix_4_ints                     $0..3 = mix($4..7, $8..11, $0..3)
476  476. copy_4_slots_unmasked          [main].result = $0..3
477  477. load_src                       src.rgba = [main].result
478