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