1. store_src_rg xy = src.rg | |
2. init_lane_masks CondMask = LoopMask = RetMask = true | |
3. zero_slot_unmasked scratchVar = 0 | |
4. store_condition_mask $21 = CondMask | |
5. store_condition_mask $15 = CondMask | |
6. store_condition_mask $12 = CondMask | |
7. branch_if_no_lanes_active branch_if_no_lanes_active +6 (label 4 at #13) | |
8. store_return_mask $13 = RetMask | |
9. copy_constant $14 = 0xFFFFFFFF | |
10. copy_slot_masked [test_flat].result = Mask($14) | |
11. load_return_mask RetMask = $13 | |
12. copy_slot_unmasked $13 = [test_flat].result | |
13. label label 0x00000004 | |
14. zero_slot_unmasked $16 = 0 | |
15. merge_condition_mask CondMask = $12 & $13 | |
16. branch_if_no_lanes_active branch_if_no_lanes_active +26 (label 3 at #42) | |
17. store_return_mask $17 = RetMask | |
18. zero_slot_unmasked $18 = 0 | |
19. copy_constant $19 = colorGreen(1) | |
20. cmplt_float $18 = lessThan($18, $19) | |
21. branch_if_no_active_lanes_eq branch +5 (label 6 at #26) if no lanes of $18 == 0xFFFFFFFF | |
22. copy_constant $19 = 0xFFFFFFFF | |
23. copy_slot_masked [test_if].result = Mask($19) | |
24. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
25. jump jump +6 (label 7 at #31) | |
26. label label 0x00000006 | |
27. copy_slot_unmasked $19 = scratchVar | |
28. copy_constant $20 = 0x00000001 (1.401298e-45) | |
29. add_int $19 += $20 | |
30. copy_slot_masked scratchVar = Mask($19) | |
31. label label 0x00000007 | |
32. copy_slot_unmasked $18 = scratchVar | |
33. copy_constant $19 = 0x00000001 (1.401298e-45) | |
34. add_int $18 += $19 | |
35. copy_slot_masked scratchVar = Mask($18) | |
36. zero_slot_unmasked $18 = 0 | |
37. copy_slot_masked [test_if].result = Mask($18) | |
38. load_return_mask RetMask = $17 | |
39. copy_slot_unmasked $17 = [test_if].result | |
40. label label 0x00000005 | |
41. copy_slot_masked $16 = Mask($17) | |
42. label label 0x00000003 | |
43. load_condition_mask CondMask = $12 | |
44. zero_slot_unmasked $22 = 0 | |
45. merge_condition_mask CondMask = $15 & $16 | |
46. branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 2 at #65) | |
47. store_return_mask $23 = RetMask | |
48. copy_constant $24 = colorGreen(1) | |
49. zero_slot_unmasked $25 = 0 | |
50. cmpeq_float $24 = equal($24, $25) | |
51. branch_if_no_active_lanes_eq branch +5 (label 9 at #56) if no lanes of $24 == 0xFFFFFFFF | |
52. zero_slot_unmasked $25 = 0 | |
53. copy_slot_masked [test_else].result = Mask($25) | |
54. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
55. jump jump +5 (label 10 at #60) | |
56. label label 0x00000009 | |
57. copy_constant $25 = 0xFFFFFFFF | |
58. copy_slot_masked [test_else].result = Mask($25) | |
59. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
60. label label 0x0000000A | |
61. load_return_mask RetMask = $23 | |
62. copy_slot_unmasked $23 = [test_else].result | |
63. label label 0x00000008 | |
64. copy_slot_masked $22 = Mask($23) | |
65. label label 0x00000002 | |
66. load_condition_mask CondMask = $15 | |
67. zero_slot_unmasked $0 = 0 | |
68. merge_condition_mask CondMask = $21 & $22 | |
69. branch_if_no_lanes_active branch_if_no_lanes_active +42 (label 1 at #111) | |
70. store_return_mask $1 = RetMask | |
71. zero_slot_unmasked x = 0 | |
72. store_loop_mask $2 = LoopMask | |
73. jump jump +19 (label 13 at #92) | |
74. label label 0x0000000E | |
75. copy_constant $3 = colorGreen(1) | |
76. zero_slot_unmasked $4 = 0 | |
77. cmpeq_float $3 = equal($3, $4) | |
78. branch_if_no_active_lanes_eq branch +5 (label 15 at #83) if no lanes of $3 == 0xFFFFFFFF | |
79. zero_slot_unmasked $4 = 0 | |
80. copy_slot_masked [test_loop_if].result = Mask($4) | |
81. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
82. jump jump +5 (label 16 at #87) | |
83. label label 0x0000000F | |
84. copy_constant $4 = 0xFFFFFFFF | |
85. copy_slot_masked [test_loop_if].result = Mask($4) | |
86. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
87. label label 0x00000010 | |
88. copy_slot_unmasked $3 = x | |
89. copy_constant $4 = 0x00000001 (1.401298e-45) | |
90. add_int $3 += $4 | |
91. copy_slot_masked x = Mask($3) | |
92. label label 0x0000000D | |
93. copy_slot_unmasked $3 = x | |
94. copy_constant $4 = 0x00000001 (1.401298e-45) | |
95. cmple_int $3 = lessThanEqual($3, $4) | |
96. merge_loop_mask LoopMask &= $3 | |
97. stack_rewind | |
98. branch_if_any_lanes_active branch_if_any_lanes_active -24 (label 14 at #74) | |
99. label label 0x0000000C | |
100. load_loop_mask LoopMask = $2 | |
101. copy_slot_unmasked $2 = scratchVar | |
102. copy_constant $3 = 0x00000001 (1.401298e-45) | |
103. add_int $2 += $3 | |
104. copy_slot_masked scratchVar = Mask($2) | |
105. copy_constant $2 = 0xFFFFFFFF | |
106. copy_slot_masked [test_loop_if].result = Mask($2) | |
107. load_return_mask RetMask = $1 | |
108. copy_slot_unmasked $1 = [test_loop_if].result | |
109. label label 0x0000000B | |
110. copy_slot_masked $0 = Mask($1) | |
111. label label 0x00000001 | |
112. load_condition_mask CondMask = $21 | |
113. swizzle_4 $0..3 = ($0..3).xxxx | |
114. copy_4_constants $4..7 = colorRed | |
115. copy_4_constants $8..11 = colorGreen | |
116. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) | |
117. load_src src.rgba = $0..3 |