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