1. store_src_rg pos = src.rg 2. init_lane_masks CondMask = LoopMask = RetMask = true 3. zero_slot_unmasked kZero = 0 4. copy_constant kTen = 0x0000000A (1.401298e-44) 5. copy_slot_unmasked $0 = pos(0) 6. copy_constant $1 = colorGreen(1) 7. max_float $0 = max($0, $1) 8. copy_constant $1 = colorGreen(3) 9. min_float $0 = min($0, $1) 10. cast_to_int_from_float $0 = FloatToInt($0) 11. copy_constant $1 = 0x00000005 (7.006492e-45) 12. mul_int $0 *= $1 13. copy_slot_unmasked five = $0 14. store_condition_mask $18 = CondMask 15. store_condition_mask $38 = CondMask 16. store_condition_mask $48 = CondMask 17. store_condition_mask $28 = CondMask 18. store_condition_mask $70 = CondMask 19. store_condition_mask $58 = CondMask 20. store_condition_mask $12 = CondMask 21. store_condition_mask $64 = CondMask 22. branch_if_no_active_lanes branch_if_no_active_lanes +32 (label 9 at #54) 23. store_return_mask $65 = RetMask 24. copy_slot_unmasked five₁ = five 25. copy_slot_unmasked i = kZero 26. store_loop_mask $66 = LoopMask 27. jump jump +15 (label 10 at #42) 28. label label 0x0000000B 29. store_condition_mask $67 = CondMask 30. copy_slot_unmasked $68 = i 31. copy_slot_unmasked $69 = five₁ 32. cmpeq_int $68 = equal($68, $69) 33. merge_condition_mask CondMask = $67 & $68 34. copy_slot_unmasked $69 = i 35. copy_slot_masked [return_loop].result = Mask($69) 36. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 37. load_condition_mask CondMask = $67 38. copy_slot_unmasked $67 = i 39. copy_constant $68 = 0x00000001 (1.401298e-45) 40. add_int $67 += $68 41. copy_slot_masked i = Mask($67) 42. label label 0x0000000A 43. copy_slot_unmasked $67 = i 44. copy_constant $68 = 0x0000000A (1.401298e-44) 45. cmplt_int $67 = lessThan($67, $68) 46. merge_loop_mask LoopMask &= $67 47. stack_rewind 48. branch_if_any_active_lanes branch_if_any_active_lanes -20 (label 11 at #28) 49. load_loop_mask LoopMask = $66 50. zero_slot_unmasked $66 = 0 51. copy_slot_masked [return_loop].result = Mask($66) 52. load_return_mask RetMask = $65 53. copy_slot_unmasked $65 = [return_loop].result 54. label label 0x00000009 55. copy_constant $66 = 0x00000005 (7.006492e-45) 56. cmpeq_int $65 = equal($65, $66) 57. zero_slot_unmasked $13 = 0 58. merge_condition_mask CondMask = $64 & $65 59. branch_if_no_active_lanes branch_if_no_active_lanes +38 (label 8 at #97) 60. copy_slot_unmasked five₂ = five 61. zero_2_slots_unmasked sum, i₁ = 0 62. store_loop_mask $14 = LoopMask 63. jump jump +20 (label 13 at #83) 64. label label 0x0000000E 65. zero_slot_unmasked [temporary 0] = 0 66. store_condition_mask $15 = CondMask 67. copy_slot_unmasked $16 = i₁ 68. copy_slot_unmasked $17 = five₂ 69. cmplt_int $16 = lessThan($16, $17) 70. merge_condition_mask CondMask = $15 & $16 71. copy_constant $17 = 0xFFFFFFFF 72. copy_slot_masked [temporary 0] = Mask($17) 73. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 74. load_condition_mask CondMask = $15 75. copy_2_slots_unmasked $15..16 = sum, i₁ 76. add_int $15 += $16 77. copy_slot_masked sum = Mask($15) 78. reenable_loop_mask LoopMask |= [temporary 0] 79. copy_slot_unmasked $15 = i₁ 80. copy_constant $16 = 0x00000001 (1.401298e-45) 81. add_int $15 += $16 82. copy_slot_masked i₁ = Mask($15) 83. label label 0x0000000D 84. copy_slot_unmasked $15 = i₁ 85. copy_slot_unmasked $16 = kTen 86. cmplt_int $15 = lessThan($15, $16) 87. merge_loop_mask LoopMask &= $15 88. stack_rewind 89. branch_if_any_active_lanes branch_if_any_active_lanes -25 (label 14 at #64) 90. load_loop_mask LoopMask = $14 91. copy_slot_unmasked $14 = sum 92. copy_slot_masked [continue_loop].result = Mask($14) 93. label label 0x0000000C 94. copy_constant $15 = 0x00000023 (4.904545e-44) 95. cmpeq_int $14 = equal($14, $15) 96. copy_slot_masked $13 = Mask($14) 97. label label 0x00000008 98. load_condition_mask CondMask = $64 99. zero_slot_unmasked $59 = 0 100. merge_condition_mask CondMask = $12 & $13 101. branch_if_no_active_lanes branch_if_no_active_lanes +37 (label 7 at #138) 102. copy_constant five₃ = 0x00000005 (7.006492e-45) 103. zero_slot_unmasked sum₁ = 0 104. copy_constant kOne = 0x00000001 (1.401298e-45) 105. zero_slot_unmasked i₂ = 0 106. store_loop_mask $60 = LoopMask 107. jump jump +17 (label 16 at #124) 108. label label 0x00000011 109. store_condition_mask $61 = CondMask 110. copy_slot_unmasked $62 = five₃ 111. copy_slot_unmasked $63 = i₂ 112. cmplt_int $62 = lessThan($62, $63) 113. merge_condition_mask CondMask = $61 & $62 114. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 115. load_condition_mask CondMask = $61 116. copy_slot_unmasked $61 = sum₁ 117. copy_slot_unmasked $62 = i₂ 118. add_int $61 += $62 119. copy_slot_masked sum₁ = Mask($61) 120. copy_slot_unmasked $61 = i₂ 121. copy_slot_unmasked $62 = kOne 122. add_int $61 += $62 123. copy_slot_masked i₂ = Mask($61) 124. label label 0x00000010 125. copy_slot_unmasked $61 = i₂ 126. copy_constant $62 = 0x0000000A (1.401298e-44) 127. cmplt_int $61 = lessThan($61, $62) 128. merge_loop_mask LoopMask &= $61 129. stack_rewind 130. branch_if_any_active_lanes branch_if_any_active_lanes -22 (label 17 at #108) 131. load_loop_mask LoopMask = $60 132. copy_slot_unmasked $60 = sum₁ 133. copy_slot_masked [break_loop].result = Mask($60) 134. label label 0x0000000F 135. copy_constant $61 = 0x0000000F (2.101948e-44) 136. cmpeq_int $60 = equal($60, $61) 137. copy_slot_masked $59 = Mask($60) 138. label label 0x00000007 139. load_condition_mask CondMask = $12 140. zero_slot_unmasked $71 = 0 141. merge_condition_mask CondMask = $58 & $59 142. branch_if_no_active_lanes branch_if_no_active_lanes +29 (label 6 at #171) 143. copy_constant $72 = 0x00000009 (1.261169e-44) 144. swizzle_4 $72..75 = ($72..75).xxxx 145. copy_4_slots_unmasked result = $72..75 146. branch_if_no_active_lanes branch_if_no_active_lanes +13 (label 19 at #159) 147. copy_constant i₃ = 0x00000001 (1.401298e-45) 148. label label 0x00000014 149. copy_4_slots_unmasked $72..75 = result(1..3), i₃ 150. copy_4_slots_masked result = Mask($72..75) 151. copy_slot_unmasked $72 = i₃ 152. copy_constant $73 = 0x00000001 (1.401298e-45) 153. add_int $72 += $73 154. copy_slot_masked i₃ = Mask($72) 155. copy_constant $73 = 0x00000003 (4.203895e-45) 156. cmple_int $72 = lessThanEqual($72, $73) 157. stack_rewind 158. branch_if_no_active_lanes_eq branch -10 (label 20 at #148) if no lanes of $72 == 0x00000000 (0.0) 159. label label 0x00000013 160. copy_4_slots_unmasked $72..75 = result 161. copy_constant $76 = 0x00000009 (1.261169e-44) 162. copy_constant $77 = 0x00000001 (1.401298e-45) 163. copy_constant $78 = 0x00000002 (2.802597e-45) 164. copy_constant $79 = 0x00000003 (4.203895e-45) 165. cmpeq_4_ints $72..75 = equal($72..75, $76..79) 166. bitwise_and_2_ints $72..73 &= $74..75 167. bitwise_and_int $72 &= $73 168. copy_slot_masked [loop_operator_le].result = Mask($72) 169. label label 0x00000012 170. copy_slot_masked $71 = Mask($72) 171. label label 0x00000006 172. load_condition_mask CondMask = $58 173. zero_slot_unmasked $29 = 0 174. merge_condition_mask CondMask = $70 & $71 175. branch_if_no_active_lanes branch_if_no_active_lanes +29 (label 5 at #204) 176. copy_constant $30 = 0x00000009 (1.261169e-44) 177. swizzle_4 $30..33 = ($30..33).xxxx 178. copy_4_slots_unmasked result₁ = $30..33 179. branch_if_no_active_lanes branch_if_no_active_lanes +13 (label 22 at #192) 180. copy_constant i₄ = 0x00000001 (1.401298e-45) 181. label label 0x00000017 182. copy_4_slots_unmasked $30..33 = result₁(1..3), i₄ 183. copy_4_slots_masked result₁ = Mask($30..33) 184. copy_slot_unmasked $30 = i₄ 185. copy_constant $31 = 0x00000001 (1.401298e-45) 186. add_int $30 += $31 187. copy_slot_masked i₄ = Mask($30) 188. copy_constant $31 = 0x00000004 (5.605194e-45) 189. cmplt_int $30 = lessThan($30, $31) 190. stack_rewind 191. branch_if_no_active_lanes_eq branch -10 (label 23 at #181) if no lanes of $30 == 0x00000000 (0.0) 192. label label 0x00000016 193. copy_4_slots_unmasked $30..33 = result₁ 194. copy_constant $34 = 0x00000009 (1.261169e-44) 195. copy_constant $35 = 0x00000001 (1.401298e-45) 196. copy_constant $36 = 0x00000002 (2.802597e-45) 197. copy_constant $37 = 0x00000003 (4.203895e-45) 198. cmpeq_4_ints $30..33 = equal($30..33, $34..37) 199. bitwise_and_2_ints $30..31 &= $32..33 200. bitwise_and_int $30 &= $31 201. copy_slot_masked [loop_operator_lt].result = Mask($30) 202. label label 0x00000015 203. copy_slot_masked $29 = Mask($30) 204. label label 0x00000005 205. load_condition_mask CondMask = $70 206. zero_slot_unmasked $49 = 0 207. merge_condition_mask CondMask = $28 & $29 208. branch_if_no_active_lanes branch_if_no_active_lanes +30 (label 4 at #238) 209. copy_constant $50 = 0x00000009 (1.261169e-44) 210. swizzle_4 $50..53 = ($50..53).xxxx 211. copy_4_slots_unmasked result₂ = $50..53 212. branch_if_no_active_lanes branch_if_no_active_lanes +14 (label 25 at #226) 213. copy_constant i₅ = 0x00000003 (4.203895e-45) 214. label label 0x0000001A 215. copy_4_slots_unmasked $50..53 = result₂(1..3), i₅ 216. copy_4_slots_masked result₂ = Mask($50..53) 217. copy_slot_unmasked $50 = i₅ 218. copy_constant $51 = 0x00000001 (1.401298e-45) 219. sub_int $50 -= $51 220. copy_slot_masked i₅ = Mask($50) 221. copy_constant $50 = 0x00000001 (1.401298e-45) 222. copy_slot_unmasked $51 = i₅ 223. cmple_int $50 = lessThanEqual($50, $51) 224. stack_rewind 225. branch_if_no_active_lanes_eq branch -11 (label 26 at #214) if no lanes of $50 == 0x00000000 (0.0) 226. label label 0x00000019 227. copy_4_slots_unmasked $50..53 = result₂ 228. copy_constant $54 = 0x00000009 (1.261169e-44) 229. copy_constant $55 = 0x00000003 (4.203895e-45) 230. copy_constant $56 = 0x00000002 (2.802597e-45) 231. copy_constant $57 = 0x00000001 (1.401298e-45) 232. cmpeq_4_ints $50..53 = equal($50..53, $54..57) 233. bitwise_and_2_ints $50..51 &= $52..53 234. bitwise_and_int $50 &= $51 235. copy_slot_masked [loop_operator_ge].result = Mask($50) 236. label label 0x00000018 237. copy_slot_masked $49 = Mask($50) 238. label label 0x00000004 239. load_condition_mask CondMask = $28 240. zero_slot_unmasked $39 = 0 241. merge_condition_mask CondMask = $48 & $49 242. branch_if_no_active_lanes branch_if_no_active_lanes +30 (label 3 at #272) 243. copy_constant $40 = 0x00000009 (1.261169e-44) 244. swizzle_4 $40..43 = ($40..43).xxxx 245. copy_4_slots_unmasked result₃ = $40..43 246. branch_if_no_active_lanes branch_if_no_active_lanes +14 (label 28 at #260) 247. copy_constant i₆ = 0x00000003 (4.203895e-45) 248. label label 0x0000001D 249. copy_4_slots_unmasked $40..43 = result₃(1..3), i₆ 250. copy_4_slots_masked result₃ = Mask($40..43) 251. copy_slot_unmasked $40 = i₆ 252. copy_constant $41 = 0x00000001 (1.401298e-45) 253. sub_int $40 -= $41 254. copy_slot_masked i₆ = Mask($40) 255. zero_slot_unmasked $40 = 0 256. copy_slot_unmasked $41 = i₆ 257. cmplt_int $40 = lessThan($40, $41) 258. stack_rewind 259. branch_if_no_active_lanes_eq branch -11 (label 29 at #248) if no lanes of $40 == 0x00000000 (0.0) 260. label label 0x0000001C 261. copy_4_slots_unmasked $40..43 = result₃ 262. copy_constant $44 = 0x00000009 (1.261169e-44) 263. copy_constant $45 = 0x00000003 (4.203895e-45) 264. copy_constant $46 = 0x00000002 (2.802597e-45) 265. copy_constant $47 = 0x00000001 (1.401298e-45) 266. cmpeq_4_ints $40..43 = equal($40..43, $44..47) 267. bitwise_and_2_ints $40..41 &= $42..43 268. bitwise_and_int $40 &= $41 269. copy_slot_masked [loop_operator_gt].result = Mask($40) 270. label label 0x0000001B 271. copy_slot_masked $39 = Mask($40) 272. label label 0x00000003 273. load_condition_mask CondMask = $48 274. zero_slot_unmasked $19 = 0 275. merge_condition_mask CondMask = $38 & $39 276. branch_if_no_active_lanes branch_if_no_active_lanes +21 (label 2 at #297) 277. copy_constant $20 = 0x00000009 (1.261169e-44) 278. swizzle_4 $20..23 = ($20..23).xxxx 279. copy_4_slots_unmasked result₄ = $20..23 280. branch_if_no_active_lanes branch_if_no_active_lanes +5 (label 31 at #285) 281. copy_constant i₇ = 0x00000001 (1.401298e-45) 282. label label 0x00000020 283. copy_4_slots_unmasked $20..23 = result₄(1..3), i₇ 284. copy_4_slots_masked result₄ = Mask($20..23) 285. label label 0x0000001F 286. copy_4_slots_unmasked $20..23 = result₄ 287. copy_constant $24 = 0x00000009 (1.261169e-44) 288. copy_constant $25 = 0x00000009 (1.261169e-44) 289. copy_constant $26 = 0x00000009 (1.261169e-44) 290. copy_constant $27 = 0x00000001 (1.401298e-45) 291. cmpeq_4_ints $20..23 = equal($20..23, $24..27) 292. bitwise_and_2_ints $20..21 &= $22..23 293. bitwise_and_int $20 &= $21 294. copy_slot_masked [loop_operator_eq].result = Mask($20) 295. label label 0x0000001E 296. copy_slot_masked $19 = Mask($20) 297. label label 0x00000002 298. load_condition_mask CondMask = $38 299. zero_slot_unmasked $0 = 0 300. merge_condition_mask CondMask = $18 & $19 301. branch_if_no_active_lanes branch_if_no_active_lanes +29 (label 1 at #330) 302. copy_constant $1 = 0x00000009 (1.261169e-44) 303. swizzle_4 $1..4 = ($1..4).xxxx 304. copy_4_slots_unmasked result₅ = $1..4 305. branch_if_no_active_lanes branch_if_no_active_lanes +13 (label 34 at #318) 306. copy_constant i₈ = 0x00000001 (1.401298e-45) 307. label label 0x00000023 308. copy_4_slots_unmasked $1..4 = result₅(1..3), i₈ 309. copy_4_slots_masked result₅ = Mask($1..4) 310. copy_slot_unmasked $1 = i₈ 311. copy_constant $2 = 0x00000001 (1.401298e-45) 312. add_int $1 += $2 313. copy_slot_masked i₈ = Mask($1) 314. copy_constant $2 = 0x00000004 (5.605194e-45) 315. cmpne_int $1 = notEqual($1, $2) 316. stack_rewind 317. branch_if_no_active_lanes_eq branch -10 (label 35 at #307) if no lanes of $1 == 0x00000000 (0.0) 318. label label 0x00000022 319. copy_4_slots_unmasked $1..4 = result₅ 320. copy_constant $5 = 0x00000009 (1.261169e-44) 321. copy_constant $6 = 0x00000001 (1.401298e-45) 322. copy_constant $7 = 0x00000002 (2.802597e-45) 323. copy_constant $8 = 0x00000003 (4.203895e-45) 324. cmpeq_4_ints $1..4 = equal($1..4, $5..8) 325. bitwise_and_2_ints $1..2 &= $3..4 326. bitwise_and_int $1 &= $2 327. copy_slot_masked [loop_operator_ne].result = Mask($1) 328. label label 0x00000021 329. copy_slot_masked $0 = Mask($1) 330. label label 0x00000001 331. load_condition_mask CondMask = $18 332. swizzle_4 $0..3 = ($0..3).xxxx 333. copy_4_constants $4..7 = colorRed 334. copy_4_constants $8..11 = colorGreen 335. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) 336. copy_4_slots_unmasked [main].result = $0..3 337. load_src src.rgba = [main].result