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