373 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) i39 = 0 i40 = 0xBF800000 (-1.0) i41 = 0 i42 = 0xBF800000 (-1.0) i43 = 0xBF800000 (-1.0) i44 = 0xC0000000 (-2.0) i45 = 0xC0400000 (-3.0) i46 = 0xC0800000 (-4.0) i47 = 0xFFFFFFFB i48 = 0x00000005 (7.006492e-45) store_src_rg v0..1 = 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 copy_2_slots_unmasked $0..1 = ok, i cmpeq_imm_int $1 = equal($1, 0x00000006) bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 store_condition_mask $19 = CondMask copy_slot_unmasked $20 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +6 (label 0 at #20) copy_slot_unmasked $1 = i add_imm_int $1 += 0x00000001 copy_slot_masked i = Mask($1) cmpeq_imm_int $1 = equal($1, 0x00000007) copy_slot_masked $0 = Mask($1) label label 0 load_condition_mask CondMask = $19 copy_slot_unmasked ok = $0 store_condition_mask $19 = CondMask copy_slot_unmasked $20 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +6 (label 1 at #33) copy_slot_unmasked $1 = i add_imm_int $1 += 0xFFFFFFFF copy_slot_masked i = Mask($1) cmpeq_imm_int $1 = equal($1, 0x00000006) copy_slot_masked $0 = Mask($1) label label 0x00000001 load_condition_mask CondMask = $19 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) copy_slot_unmasked $0 = ok copy_slot_unmasked $1 = f cmpeq_imm_float $1 = equal($1, 0x3FC00000 (1.5)) bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 store_condition_mask $19 = CondMask copy_slot_unmasked $20 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +6 (label 2 at #58) copy_slot_unmasked $1 = f add_imm_float $1 += 0x3F800000 (1.0) copy_slot_masked f = Mask($1) cmpeq_imm_float $1 = equal($1, 0x40200000 (2.5)) copy_slot_masked $0 = Mask($1) label label 0x00000002 load_condition_mask CondMask = $19 copy_slot_unmasked ok = $0 store_condition_mask $19 = CondMask copy_slot_unmasked $20 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +6 (label 3 at #71) copy_slot_unmasked $1 = f add_imm_float $1 += 0xBF800000 (-1.0) copy_slot_masked f = Mask($1) cmpeq_imm_float $1 = equal($1, 0x3FC00000 (1.5)) copy_slot_masked $0 = Mask($1) label label 0x00000003 load_condition_mask CondMask = $19 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) copy_slot_unmasked $0 = ok 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 store_condition_mask $19 = CondMask copy_slot_unmasked $20 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +6 (label 4 at #97) copy_slot_unmasked $1 = f2(0) add_imm_float $1 += 0x3F800000 (1.0) copy_slot_masked f2(0) = Mask($1) cmpeq_imm_float $1 = equal($1, 0x40200000 (2.5)) copy_slot_masked $0 = Mask($1) label label 0x00000004 load_condition_mask CondMask = $19 copy_slot_unmasked ok = $0 store_condition_mask $19 = CondMask copy_slot_unmasked $20 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +6 (label 5 at #110) copy_slot_unmasked $1 = f2(0) add_imm_float $1 += 0xBF800000 (-1.0) copy_slot_masked f2(0) = Mask($1) cmpeq_imm_float $1 = equal($1, 0x3FC00000 (1.5)) copy_slot_masked $0 = Mask($1) label label 0x00000005 load_condition_mask CondMask = $19 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 copy_slot_unmasked $0 = ok 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 store_condition_mask $19 = CondMask copy_slot_unmasked $20 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +9 (label 6 at #143) copy_2_slots_unmasked $1..2 = f2 add_imm_float $1 += 0x3F800000 (1.0) add_imm_float $2 += 0x3F800000 (1.0) copy_2_slots_masked f2 = Mask($1..2) 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 0x00000006 load_condition_mask CondMask = $19 copy_slot_unmasked ok = $0 store_condition_mask $19 = CondMask copy_slot_unmasked $20 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +9 (label 7 at #159) copy_2_slots_unmasked $1..2 = f2 add_imm_float $1 += 0xBF800000 (-1.0) add_imm_float $2 += 0xBF800000 (-1.0) copy_2_slots_masked f2 = Mask($1..2) 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 0x00000007 load_condition_mask CondMask = $19 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 copy_slot_unmasked $0 = ok 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 store_condition_mask $19 = CondMask copy_slot_unmasked $20 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +10 (label 8 at #200) copy_4_slots_unmasked $1..4 = i4 splat_4_constants $5..8 = 0x00000001 (1.401298e-45) add_4_ints $1..4 += $5..8 copy_4_slots_masked i4 = Mask($1..4) 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 0x00000008 load_condition_mask CondMask = $19 copy_slot_unmasked ok = $0 store_condition_mask $19 = CondMask copy_slot_unmasked $20 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +10 (label 9 at #217) copy_4_slots_unmasked $1..4 = i4 splat_4_constants $5..8 = 0xFFFFFFFF add_4_ints $1..4 += $5..8 copy_4_slots_masked i4 = Mask($1..4) 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 0x00000009 load_condition_mask CondMask = $19 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 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 = 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 store_condition_mask $19 = CondMask copy_slot_unmasked $20 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +20 (label 10 at #283) copy_4_slots_unmasked $1..4 = m3x3(0..3) copy_4_slots_unmasked $5..8 = m3x3(4..7) copy_slot_unmasked $9 = m3x3(8) splat_4_constants $10..13 = 0x3F800000 (1.0) splat_4_constants $14..17 = 0x3F800000 (1.0) copy_constant $18 = 0x3F800000 (1.0) add_n_floats $1..9 += $10..18 copy_4_slots_masked m3x3(0..3) = Mask($1..4) copy_4_slots_masked m3x3(4..7) = Mask($5..8) copy_slot_masked m3x3(8) = Mask($9) 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 0x0000000A load_condition_mask CondMask = $19 copy_slot_unmasked ok = $0 store_condition_mask $19 = CondMask copy_slot_unmasked $20 = ok copy_constant $0 = 0 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +20 (label 11 at #310) copy_4_slots_unmasked $1..4 = m3x3(0..3) copy_4_slots_unmasked $5..8 = m3x3(4..7) copy_slot_unmasked $9 = m3x3(8) splat_4_constants $10..13 = 0xBF800000 (-1.0) splat_4_constants $14..17 = 0xBF800000 (-1.0) copy_constant $18 = 0xBF800000 (-1.0) add_n_floats $1..9 += $10..18 copy_4_slots_masked m3x3(0..3) = Mask($1..4) copy_4_slots_masked m3x3(4..7) = Mask($5..8) copy_slot_masked m3x3(8) = Mask($9) 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 0x0000000B load_condition_mask CondMask = $19 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 copy_uniform $1 = colorGreen(0) cmpne_imm_float $1 = notEqual($1, 0x3F800000 (1.0)) bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 copy_uniform $1 = colorGreen(1) bitwise_xor_imm_int $1 ^= 0x80000000 cmpeq_imm_float $1 = equal($1, 0xBF800000 (-1.0)) bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 copy_4_immutables_unmasked $1..4 = i39..42 [0, 0xBF800000 (-1.0), 0, 0xBF800000 (-1.0)] copy_4_uniforms $5..8 = colorGreen splat_4_constants $9..12 = 0x80000000 (-0.0) bitwise_xor_4_ints $5..8 ^= $9..12 cmpeq_4_floats $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 $1..4 = i43..46 [0xBF800000 (-1.0), 0xC0000000 (-2.0), 0xC0400000 (-3.0), 0xC0800000 (-4.0)] copy_4_uniforms $5..8 = testMatrix2x2 splat_4_constants $9..12 = 0x80000000 (-0.0) bitwise_xor_4_ints $5..8 ^= $9..12 cmpeq_4_floats $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_slot_unmasked $0 = i copy_slot_unmasked $1 = i mul_imm_int $1 *= 0xFFFFFFFF copy_2_slots_unmasked iv = $0..1 copy_2_slots_unmasked $0..1 = ok, i mul_imm_int $1 *= 0xFFFFFFFF cmpeq_imm_int $1 = equal($1, 0xFFFFFFFB) bitwise_and_int $0 &= $1 copy_slot_unmasked ok = $0 copy_2_slots_unmasked $1..2 = iv mul_imm_int $1 *= 0xFFFFFFFF mul_imm_int $2 *= 0xFFFFFFFF copy_2_immutables_unmasked $3..4 = i47..48 [0xFFFFFFFB, 0x00000005 (7.006492e-45)] cmpeq_2_ints $1..2 = equal($1..2, $3..4) 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