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