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