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