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