378 instructions [immutable slots] i0 = 0x00000007 (9.809089e-45) i1 = 0x00000008 (1.121039e-44) i2 = 0x00000009 (1.261169e-44) i3 = 0x0000000A (1.401298e-44) i4 = 0x00000008 (1.121039e-44) i5 = 0x00000009 (1.261169e-44) i6 = 0x0000000A (1.401298e-44) i7 = 0x0000000B (1.541428e-44) i8 = 0x00000009 (1.261169e-44) i9 = 0x0000000A (1.401298e-44) i10 = 0x0000000B (1.541428e-44) i11 = 0x0000000C (1.681558e-44) i12 = 0x3F800000 (1.0) i13 = 0x40000000 (2.0) i14 = 0x40400000 (3.0) i15 = 0x40800000 (4.0) i16 = 0x40A00000 (5.0) i17 = 0x40C00000 (6.0) i18 = 0x40E00000 (7.0) i19 = 0x41000000 (8.0) i20 = 0x41100000 (9.0) i21 = 0x40000000 (2.0) i22 = 0x40400000 (3.0) i23 = 0x40800000 (4.0) i24 = 0x40A00000 (5.0) i25 = 0x40C00000 (6.0) i26 = 0x40E00000 (7.0) i27 = 0x41000000 (8.0) i28 = 0x41100000 (9.0) i29 = 0x41200000 (10.0) i30 = 0x40400000 (3.0) i31 = 0x40800000 (4.0) i32 = 0x40A00000 (5.0) i33 = 0x40C00000 (6.0) i34 = 0x40E00000 (7.0) i35 = 0x41000000 (8.0) i36 = 0x41100000 (9.0) i37 = 0x41200000 (10.0) i38 = 0x41300000 (11.0) store_src_rg c = src.rg init_lane_masks CondMask = LoopMask = RetMask = true copy_constant ok = 0xFFFFFFFF copy_constant i = 0x00000005 (7.006492e-45) add_imm_int i += 0x00000001 store_condition_mask $28 = CondMask copy_slot_unmasked $29 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $28 & $29 branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 0 at #17) copy_slot_unmasked $1 = i copy_slot_unmasked $2 = $1 add_imm_int $2 += 0x00000001 copy_slot_masked i = Mask($2) cmpeq_imm_int $1 = equal($1, 0x00000006) copy_slot_masked $0 = Mask($1) label label 0 load_condition_mask CondMask = $28 copy_slot_unmasked ok = $0 copy_slot_unmasked $1 = i cmpeq_imm_int $1 = equal($1, 0x00000007) bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 store_condition_mask $28 = CondMask copy_slot_unmasked $29 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $28 & $29 branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 1 at #35) copy_slot_unmasked $1 = i copy_slot_unmasked $2 = $1 add_imm_int $2 += 0xFFFFFFFF copy_slot_masked i = Mask($2) cmpeq_imm_int $1 = equal($1, 0x00000007) copy_slot_masked $0 = Mask($1) label label 0x00000001 load_condition_mask CondMask = $28 copy_slot_unmasked ok = $0 copy_slot_unmasked $1 = i cmpeq_imm_int $1 = equal($1, 0x00000006) bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 add_imm_int i += 0xFFFFFFFF copy_2_slots_unmasked $0..1 = ok, i cmpeq_imm_int $1 = equal($1, 0x00000005) bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 copy_constant f = 0x3F000000 (0.5) add_imm_float f += 0x3F800000 (1.0) store_condition_mask $28 = CondMask copy_slot_unmasked $29 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $28 & $29 branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 2 at #60) copy_slot_unmasked $1 = f copy_slot_unmasked $2 = $1 add_imm_float $2 += 0x3F800000 (1.0) copy_slot_masked f = Mask($2) cmpeq_imm_float $1 = equal($1, 0x3FC00000 (1.5)) copy_slot_masked $0 = Mask($1) label label 0x00000002 load_condition_mask CondMask = $28 copy_slot_unmasked ok = $0 copy_slot_unmasked $1 = f cmpeq_imm_float $1 = equal($1, 0x40200000 (2.5)) bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 store_condition_mask $28 = CondMask copy_slot_unmasked $29 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $28 & $29 branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 3 at #78) copy_slot_unmasked $1 = f copy_slot_unmasked $2 = $1 add_imm_float $2 += 0xBF800000 (-1.0) copy_slot_masked f = Mask($2) cmpeq_imm_float $1 = equal($1, 0x40200000 (2.5)) copy_slot_masked $0 = Mask($1) label label 0x00000003 load_condition_mask CondMask = $28 copy_slot_unmasked ok = $0 copy_slot_unmasked $1 = f cmpeq_imm_float $1 = equal($1, 0x3FC00000 (1.5)) bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 add_imm_float f += 0xBF800000 (-1.0) copy_slot_unmasked $0 = ok copy_slot_unmasked $1 = f cmpeq_imm_float $1 = equal($1, 0x3F000000 (0.5)) bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 splat_2_constants f2 = 0x3F000000 (0.5) add_imm_float f2(0) += 0x3F800000 (1.0) store_condition_mask $28 = CondMask copy_slot_unmasked $29 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $28 & $29 branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 4 at #104) copy_slot_unmasked $1 = f2(0) copy_slot_unmasked $2 = $1 add_imm_float $2 += 0x3F800000 (1.0) copy_slot_masked f2(0) = Mask($2) cmpeq_imm_float $1 = equal($1, 0x3FC00000 (1.5)) copy_slot_masked $0 = Mask($1) label label 0x00000004 load_condition_mask CondMask = $28 copy_slot_unmasked ok = $0 copy_slot_unmasked $1 = f2(0) cmpeq_imm_float $1 = equal($1, 0x40200000 (2.5)) bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 store_condition_mask $28 = CondMask copy_slot_unmasked $29 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $28 & $29 branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 5 at #122) copy_slot_unmasked $1 = f2(0) copy_slot_unmasked $2 = $1 add_imm_float $2 += 0xBF800000 (-1.0) copy_slot_masked f2(0) = Mask($2) cmpeq_imm_float $1 = equal($1, 0x40200000 (2.5)) copy_slot_masked $0 = Mask($1) label label 0x00000005 load_condition_mask CondMask = $28 copy_slot_unmasked ok = $0 copy_slot_unmasked $1 = f2(0) cmpeq_imm_float $1 = equal($1, 0x3FC00000 (1.5)) bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 add_imm_float f2(0) += 0xBF800000 (-1.0) copy_slot_unmasked $0 = ok copy_slot_unmasked $1 = f2(0) cmpeq_imm_float $1 = equal($1, 0x3F000000 (0.5)) bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 copy_2_slots_unmasked $0..1 = f2 add_imm_float $0 += 0x3F800000 (1.0) add_imm_float $1 += 0x3F800000 (1.0) copy_2_slots_unmasked f2 = $0..1 store_condition_mask $28 = CondMask copy_slot_unmasked $29 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $28 & $29 branch_if_no_lanes_active branch_if_no_lanes_active +10 (label 6 at #153) copy_2_slots_unmasked $1..2 = f2 copy_2_slots_unmasked $3..4 = $1..2 add_imm_float $3 += 0x3F800000 (1.0) add_imm_float $4 += 0x3F800000 (1.0) copy_2_slots_masked f2 = Mask($3..4) cmpeq_imm_float $1 = equal($1, 0x3FC00000 (1.5)) cmpeq_imm_float $2 = equal($2, 0x3FC00000 (1.5)) bitwise_and_int $1 &= $2 copy_slot_masked $0 = Mask($1) label label 0x00000006 load_condition_mask CondMask = $28 copy_slot_unmasked ok = $0 copy_2_slots_unmasked $1..2 = f2 cmpeq_imm_float $1 = equal($1, 0x40200000 (2.5)) cmpeq_imm_float $2 = equal($2, 0x40200000 (2.5)) bitwise_and_int $1 &= $2 bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 store_condition_mask $28 = CondMask copy_slot_unmasked $29 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $28 & $29 branch_if_no_lanes_active branch_if_no_lanes_active +10 (label 7 at #176) copy_2_slots_unmasked $1..2 = f2 copy_2_slots_unmasked $3..4 = $1..2 add_imm_float $3 += 0xBF800000 (-1.0) add_imm_float $4 += 0xBF800000 (-1.0) copy_2_slots_masked f2 = Mask($3..4) cmpeq_imm_float $1 = equal($1, 0x40200000 (2.5)) cmpeq_imm_float $2 = equal($2, 0x40200000 (2.5)) bitwise_and_int $1 &= $2 copy_slot_masked $0 = Mask($1) label label 0x00000007 load_condition_mask CondMask = $28 copy_slot_unmasked ok = $0 copy_2_slots_unmasked $1..2 = f2 cmpeq_imm_float $1 = equal($1, 0x3FC00000 (1.5)) cmpeq_imm_float $2 = equal($2, 0x3FC00000 (1.5)) bitwise_and_int $1 &= $2 bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 copy_2_slots_unmasked $0..1 = f2 add_imm_float $0 += 0xBF800000 (-1.0) add_imm_float $1 += 0xBF800000 (-1.0) copy_2_slots_unmasked f2 = $0..1 copy_slot_unmasked $0 = ok copy_2_slots_unmasked $1..2 = f2 cmpeq_imm_float $1 = equal($1, 0x3F000000 (0.5)) cmpeq_imm_float $2 = equal($2, 0x3F000000 (0.5)) bitwise_and_int $1 &= $2 bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 copy_4_immutables_unmasked i4 = i0..3 [0x00000007 (9.809089e-45), 0x00000008 (1.121039e-44), 0x00000009 (1.261169e-44), 0x0000000A (1.401298e-44)] copy_4_slots_unmasked $0..3 = i4 splat_4_constants $4..7 = 0x00000001 (1.401298e-45) add_4_ints $0..3 += $4..7 copy_4_slots_unmasked i4 = $0..3 store_condition_mask $28 = CondMask copy_slot_unmasked $29 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $28 & $29 branch_if_no_lanes_active branch_if_no_lanes_active +11 (label 8 at #216) copy_4_slots_unmasked $1..4 = i4 copy_4_slots_unmasked $5..8 = $1..4 splat_4_constants $9..12 = 0x00000001 (1.401298e-45) add_4_ints $5..8 += $9..12 copy_4_slots_masked i4 = Mask($5..8) copy_4_immutables_unmasked $5..8 = i4..7 [0x00000008 (1.121039e-44), 0x00000009 (1.261169e-44), 0x0000000A (1.401298e-44), 0x0000000B (1.541428e-44)] cmpeq_4_ints $1..4 = equal($1..4, $5..8) bitwise_and_2_ints $1..2 &= $3..4 bitwise_and_int $1 &= $2 copy_slot_masked $0 = Mask($1) label label 0x00000008 load_condition_mask CondMask = $28 copy_slot_unmasked ok = $0 copy_4_slots_unmasked $1..4 = i4 copy_4_immutables_unmasked $5..8 = i8..11 [0x00000009 (1.261169e-44), 0x0000000A (1.401298e-44), 0x0000000B (1.541428e-44), 0x0000000C (1.681558e-44)] cmpeq_4_ints $1..4 = equal($1..4, $5..8) bitwise_and_2_ints $1..2 &= $3..4 bitwise_and_int $1 &= $2 bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 store_condition_mask $28 = CondMask copy_slot_unmasked $29 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $28 & $29 branch_if_no_lanes_active branch_if_no_lanes_active +11 (label 9 at #241) copy_4_slots_unmasked $1..4 = i4 copy_4_slots_unmasked $5..8 = $1..4 splat_4_constants $9..12 = 0x00000001 (1.401298e-45) sub_4_ints $5..8 -= $9..12 copy_4_slots_masked i4 = Mask($5..8) copy_4_immutables_unmasked $5..8 = i8..11 [0x00000009 (1.261169e-44), 0x0000000A (1.401298e-44), 0x0000000B (1.541428e-44), 0x0000000C (1.681558e-44)] cmpeq_4_ints $1..4 = equal($1..4, $5..8) bitwise_and_2_ints $1..2 &= $3..4 bitwise_and_int $1 &= $2 copy_slot_masked $0 = Mask($1) label label 0x00000009 load_condition_mask CondMask = $28 copy_slot_unmasked ok = $0 copy_4_slots_unmasked $1..4 = i4 copy_4_immutables_unmasked $5..8 = i4..7 [0x00000008 (1.121039e-44), 0x00000009 (1.261169e-44), 0x0000000A (1.401298e-44), 0x0000000B (1.541428e-44)] cmpeq_4_ints $1..4 = equal($1..4, $5..8) bitwise_and_2_ints $1..2 &= $3..4 bitwise_and_int $1 &= $2 bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 copy_4_slots_unmasked $0..3 = i4 splat_4_constants $4..7 = 0xFFFFFFFF add_4_ints $0..3 += $4..7 copy_4_slots_unmasked i4 = $0..3 copy_slot_unmasked $0 = ok copy_4_slots_unmasked $1..4 = i4 copy_4_immutables_unmasked $5..8 = i0..3 [0x00000007 (9.809089e-45), 0x00000008 (1.121039e-44), 0x00000009 (1.261169e-44), 0x0000000A (1.401298e-44)] cmpeq_4_ints $1..4 = equal($1..4, $5..8) bitwise_and_2_ints $1..2 &= $3..4 bitwise_and_int $1 &= $2 bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 copy_4_immutables_unmasked m3x3(0..3) = i12..15 [0x3F800000 (1.0), 0x40000000 (2.0), 0x40400000 (3.0), 0x40800000 (4.0)] copy_4_immutables_unmasked m3x3(4..7) = i16..19 [0x40A00000 (5.0), 0x40C00000 (6.0), 0x40E00000 (7.0), 0x41000000 (8.0)] copy_constant m3x3(8) = 0x41100000 (9.0) copy_4_slots_unmasked $0..3 = m3x3(0..3) copy_4_slots_unmasked $4..7 = m3x3(4..7) copy_slot_unmasked $8 = m3x3(8) splat_4_constants $9..12 = 0x3F800000 (1.0) splat_4_constants $13..16 = 0x3F800000 (1.0) copy_constant $17 = 0x3F800000 (1.0) add_n_floats $0..8 += $9..17 copy_4_slots_unmasked m3x3(0..3) = $0..3 copy_4_slots_unmasked m3x3(4..7) = $4..7 copy_slot_unmasked m3x3(8) = $8 store_condition_mask $28 = CondMask copy_slot_unmasked $29 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $28 & $29 branch_if_no_lanes_active branch_if_no_lanes_active +23 (label 10 at #303) copy_4_slots_unmasked $1..4 = m3x3(0..3) copy_4_slots_unmasked $5..8 = m3x3(4..7) copy_slot_unmasked $9 = m3x3(8) copy_4_slots_unmasked $10..13 = $1..4 copy_4_slots_unmasked $14..17 = $5..8 copy_slot_unmasked $18 = $9 splat_4_constants $19..22 = 0x3F800000 (1.0) splat_4_constants $23..26 = 0x3F800000 (1.0) copy_constant $27 = 0x3F800000 (1.0) add_n_floats $10..18 += $19..27 copy_4_slots_masked m3x3(0..3) = Mask($10..13) copy_4_slots_masked m3x3(4..7) = Mask($14..17) copy_slot_masked m3x3(8) = Mask($18) copy_4_immutables_unmasked $10..13 = i21..24 [0x40000000 (2.0), 0x40400000 (3.0), 0x40800000 (4.0), 0x40A00000 (5.0)] copy_4_immutables_unmasked $14..17 = i25..28 [0x40C00000 (6.0), 0x40E00000 (7.0), 0x41000000 (8.0), 0x41100000 (9.0)] copy_constant $18 = 0x41200000 (10.0) cmpeq_n_floats $1..9 = equal($1..9, $10..18) bitwise_and_4_ints $2..5 &= $6..9 bitwise_and_2_ints $2..3 &= $4..5 bitwise_and_int $2 &= $3 bitwise_and_int $1 &= $2 copy_slot_masked $0 = Mask($1) label label 0x0000000A load_condition_mask CondMask = $28 copy_slot_unmasked ok = $0 copy_4_slots_unmasked $1..4 = m3x3(0..3) copy_4_slots_unmasked $5..8 = m3x3(4..7) copy_slot_unmasked $9 = m3x3(8) copy_4_immutables_unmasked $10..13 = i30..33 [0x40400000 (3.0), 0x40800000 (4.0), 0x40A00000 (5.0), 0x40C00000 (6.0)] copy_4_immutables_unmasked $14..17 = i34..37 [0x40E00000 (7.0), 0x41000000 (8.0), 0x41100000 (9.0), 0x41200000 (10.0)] copy_constant $18 = 0x41300000 (11.0) cmpeq_n_floats $1..9 = equal($1..9, $10..18) bitwise_and_4_ints $2..5 &= $6..9 bitwise_and_2_ints $2..3 &= $4..5 bitwise_and_int $2 &= $3 bitwise_and_int $1 &= $2 bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 store_condition_mask $28 = CondMask copy_slot_unmasked $29 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $28 & $29 branch_if_no_lanes_active branch_if_no_lanes_active +23 (label 11 at #346) copy_4_slots_unmasked $1..4 = m3x3(0..3) copy_4_slots_unmasked $5..8 = m3x3(4..7) copy_slot_unmasked $9 = m3x3(8) copy_4_slots_unmasked $10..13 = $1..4 copy_4_slots_unmasked $14..17 = $5..8 copy_slot_unmasked $18 = $9 splat_4_constants $19..22 = 0x3F800000 (1.0) splat_4_constants $23..26 = 0x3F800000 (1.0) copy_constant $27 = 0x3F800000 (1.0) sub_n_floats $10..18 -= $19..27 copy_4_slots_masked m3x3(0..3) = Mask($10..13) copy_4_slots_masked m3x3(4..7) = Mask($14..17) copy_slot_masked m3x3(8) = Mask($18) copy_4_immutables_unmasked $10..13 = i30..33 [0x40400000 (3.0), 0x40800000 (4.0), 0x40A00000 (5.0), 0x40C00000 (6.0)] copy_4_immutables_unmasked $14..17 = i34..37 [0x40E00000 (7.0), 0x41000000 (8.0), 0x41100000 (9.0), 0x41200000 (10.0)] copy_constant $18 = 0x41300000 (11.0) cmpeq_n_floats $1..9 = equal($1..9, $10..18) bitwise_and_4_ints $2..5 &= $6..9 bitwise_and_2_ints $2..3 &= $4..5 bitwise_and_int $2 &= $3 bitwise_and_int $1 &= $2 copy_slot_masked $0 = Mask($1) label label 0x0000000B load_condition_mask CondMask = $28 copy_slot_unmasked ok = $0 copy_4_slots_unmasked $1..4 = m3x3(0..3) copy_4_slots_unmasked $5..8 = m3x3(4..7) copy_slot_unmasked $9 = m3x3(8) copy_4_immutables_unmasked $10..13 = i21..24 [0x40000000 (2.0), 0x40400000 (3.0), 0x40800000 (4.0), 0x40A00000 (5.0)] copy_4_immutables_unmasked $14..17 = i25..28 [0x40C00000 (6.0), 0x40E00000 (7.0), 0x41000000 (8.0), 0x41100000 (9.0)] copy_constant $18 = 0x41200000 (10.0) cmpeq_n_floats $1..9 = equal($1..9, $10..18) bitwise_and_4_ints $2..5 &= $6..9 bitwise_and_2_ints $2..3 &= $4..5 bitwise_and_int $2 &= $3 bitwise_and_int $1 &= $2 bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 copy_4_slots_unmasked $0..3 = m3x3(0..3) copy_4_slots_unmasked $4..7 = m3x3(4..7) copy_slot_unmasked $8 = m3x3(8) splat_4_constants $9..12 = 0xBF800000 (-1.0) splat_4_constants $13..16 = 0xBF800000 (-1.0) copy_constant $17 = 0xBF800000 (-1.0) add_n_floats $0..8 += $9..17 copy_4_slots_unmasked m3x3(0..3) = $0..3 copy_4_slots_unmasked m3x3(4..7) = $4..7 copy_slot_unmasked m3x3(8) = $8 copy_slot_unmasked $0 = ok copy_4_slots_unmasked $1..4 = m3x3(0..3) copy_4_slots_unmasked $5..8 = m3x3(4..7) copy_slot_unmasked $9 = m3x3(8) copy_4_immutables_unmasked $10..13 = i12..15 [0x3F800000 (1.0), 0x40000000 (2.0), 0x40400000 (3.0), 0x40800000 (4.0)] copy_4_immutables_unmasked $14..17 = i16..19 [0x40A00000 (5.0), 0x40C00000 (6.0), 0x40E00000 (7.0), 0x41000000 (8.0)] copy_constant $18 = 0x41100000 (9.0) cmpeq_n_floats $1..9 = equal($1..9, $10..18) bitwise_and_4_ints $2..5 &= $6..9 bitwise_and_2_ints $2..3 &= $4..5 bitwise_and_int $2 &= $3 bitwise_and_int $1 &= $2 bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 swizzle_4 $0..3 = ($0..3).xxxx copy_4_uniforms $4..7 = colorRed copy_4_uniforms $8..11 = colorGreen mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) load_src src.rgba = $0..3