363 instructions [immutable slots] i0 = 0x00000002 (2.802597e-45) i1 = 0x00000003 (4.203895e-45) i2 = 0x00000004 (5.605194e-45) store_src_rg coords = src.rg init_lane_masks CondMask = LoopMask = RetMask = true copy_uniform f1 = colorGreen(1) copy_uniform $0 = colorGreen(1) mul_imm_float $0 *= 0x40000000 (2.0) copy_slot_unmasked f2 = $0 copy_uniform $0 = colorGreen(1) mul_imm_float $0 *= 0x40400000 (3.0) copy_slot_unmasked f3 = $0 copy_uniform $0 = colorGreen(1) mul_imm_float $0 *= 0x40800000 (4.0) copy_slot_unmasked f4 = $0 copy_slot_unmasked $0 = f1 add_imm_float $0 += 0x3F800000 (1.0) copy_slot_unmasked $1 = f2 add_imm_float $1 += 0x3F800000 (1.0) copy_slot_unmasked $2 = f3 add_imm_float $2 += 0x3F800000 (1.0) copy_slot_unmasked $3 = f4 add_imm_float $3 += 0x3F800000 (1.0) copy_4_slots_unmasked _0_expected = $0..3 copy_uniform _1_one = colorRed(0) copy_slot_unmasked $0 = f1 copy_slot_unmasked $1 = _1_one mul_float $0 *= $1 copy_slot_unmasked $1 = f2 copy_slot_unmasked $2 = _1_one mul_float $1 *= $2 copy_slot_unmasked $2 = f3 copy_slot_unmasked $3 = _1_one mul_float $2 *= $3 copy_slot_unmasked $3 = f4 copy_slot_unmasked $4 = _1_one mul_float $3 *= $4 copy_4_slots_unmasked _2_m2 = $0..3 splat_4_constants $4..7 = 0x3F800000 (1.0) add_4_floats $0..3 += $4..7 copy_4_slots_unmasked _2_m2 = $0..3 store_condition_mask $12 = CondMask store_condition_mask $25 = CondMask store_condition_mask $38 = CondMask store_condition_mask $51 = CondMask copy_slot_unmasked $52 = _2_m2(0) copy_slot_unmasked $53 = _0_expected(0) cmpeq_float $52 = equal($52, $53) copy_2_slots_unmasked $53..54 = _2_m2(0..1) copy_slot_unmasked $53 = $54 copy_2_slots_unmasked $54..55 = _0_expected(0..1) copy_slot_unmasked $54 = $55 cmpeq_float $53 = equal($53, $54) bitwise_and_int $52 &= $53 copy_slot_unmasked $53 = _2_m2(2) copy_slot_unmasked $54 = _0_expected(2) cmpeq_float $53 = equal($53, $54) bitwise_and_int $52 &= $53 copy_2_slots_unmasked $53..54 = _2_m2(2..3) copy_slot_unmasked $53 = $54 copy_2_slots_unmasked $54..55 = _0_expected(2..3) copy_slot_unmasked $54 = $55 cmpeq_float $53 = equal($53, $54) bitwise_and_int $52 &= $53 copy_constant $39 = 0 merge_condition_mask CondMask = $51 & $52 branch_if_no_lanes_active branch_if_no_lanes_active +88 (label 4 at #152) copy_constant op = 0x00000002 (2.802597e-45) copy_slot_unmasked $40 = f1 add_imm_float $40 += 0xBF800000 (-1.0) copy_slot_unmasked $41 = f2 add_imm_float $41 += 0xBF800000 (-1.0) copy_slot_unmasked $42 = f3 add_imm_float $42 += 0xBF800000 (-1.0) copy_slot_unmasked $43 = f4 add_imm_float $43 += 0xBF800000 (-1.0) copy_4_slots_unmasked expected = $40..43 copy_uniform one = colorRed(0) copy_slot_unmasked $40 = f1 copy_slot_unmasked $41 = one mul_float $40 *= $41 copy_slot_unmasked $41 = f2 copy_slot_unmasked $42 = one mul_float $41 *= $42 copy_slot_unmasked $42 = f3 copy_slot_unmasked $43 = one mul_float $42 *= $43 copy_slot_unmasked $43 = f4 copy_slot_unmasked $44 = one mul_float $43 *= $44 copy_4_slots_unmasked m2 = $40..43 store_loop_mask $40 = LoopMask copy_slot_unmasked $41 = op store_loop_mask $42 = LoopMask mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) case_op if ($41 == 0x00000001) { LoopMask = true; $42 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 7 at #101) copy_4_slots_unmasked $43..46 = m2 splat_4_constants $47..50 = 0x3F800000 (1.0) add_4_floats $43..46 += $47..50 copy_4_slots_masked m2 = Mask($43..46) branch_if_all_lanes_active branch_if_all_lanes_active +30 (label 6 at #129) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000007 case_op if ($41 == 0x00000002) { LoopMask = true; $42 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 8 at #110) copy_4_slots_unmasked $43..46 = m2 splat_4_constants $47..50 = 0x3F800000 (1.0) sub_4_floats $43..46 -= $47..50 copy_4_slots_masked m2 = Mask($43..46) branch_if_all_lanes_active branch_if_all_lanes_active +21 (label 6 at #129) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000008 case_op if ($41 == 0x00000003) { LoopMask = true; $42 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 9 at #119) copy_4_slots_unmasked $43..46 = m2 splat_4_constants $47..50 = 0x40000000 (2.0) mul_4_floats $43..46 *= $47..50 copy_4_slots_masked m2 = Mask($43..46) branch_if_all_lanes_active branch_if_all_lanes_active +12 (label 6 at #129) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000009 case_op if ($41 == 0x00000004) { LoopMask = true; $42 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 10 at #128) copy_4_slots_unmasked $43..46 = m2 splat_4_constants $47..50 = 0x3F000000 (0.5) mul_4_floats $43..46 *= $47..50 copy_4_slots_masked m2 = Mask($43..46) branch_if_all_lanes_active branch_if_all_lanes_active +3 (label 6 at #129) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) label label 0x0000000A label label 0x00000006 load_loop_mask LoopMask = $40 copy_slot_unmasked $40 = m2(0) copy_slot_unmasked $41 = expected(0) cmpeq_float $40 = equal($40, $41) copy_2_slots_unmasked $41..42 = m2(0..1) copy_slot_unmasked $41 = $42 copy_2_slots_unmasked $42..43 = expected(0..1) copy_slot_unmasked $42 = $43 cmpeq_float $41 = equal($41, $42) bitwise_and_int $40 &= $41 copy_slot_unmasked $41 = m2(2) copy_slot_unmasked $42 = expected(2) cmpeq_float $41 = equal($41, $42) bitwise_and_int $40 &= $41 copy_2_slots_unmasked $41..42 = m2(2..3) copy_slot_unmasked $41 = $42 copy_2_slots_unmasked $42..43 = expected(2..3) copy_slot_unmasked $42 = $43 cmpeq_float $41 = equal($41, $42) bitwise_and_int $40 &= $41 label label 0x00000005 copy_slot_masked $39 = Mask($40) label label 0x00000004 load_condition_mask CondMask = $51 copy_constant $26 = 0 merge_condition_mask CondMask = $38 & $39 branch_if_no_lanes_active branch_if_no_lanes_active +88 (label 3 at #244) copy_constant op = 0x00000003 (4.203895e-45) copy_slot_unmasked $27 = f1 mul_imm_float $27 *= 0x40000000 (2.0) copy_slot_unmasked $28 = f2 mul_imm_float $28 *= 0x40000000 (2.0) copy_slot_unmasked $29 = f3 mul_imm_float $29 *= 0x40000000 (2.0) copy_slot_unmasked $30 = f4 mul_imm_float $30 *= 0x40000000 (2.0) copy_4_slots_unmasked expected = $27..30 copy_uniform one = colorRed(0) copy_slot_unmasked $27 = f1 copy_slot_unmasked $28 = one mul_float $27 *= $28 copy_slot_unmasked $28 = f2 copy_slot_unmasked $29 = one mul_float $28 *= $29 copy_slot_unmasked $29 = f3 copy_slot_unmasked $30 = one mul_float $29 *= $30 copy_slot_unmasked $30 = f4 copy_slot_unmasked $31 = one mul_float $30 *= $31 copy_4_slots_unmasked m2 = $27..30 store_loop_mask $27 = LoopMask copy_slot_unmasked $28 = op store_loop_mask $29 = LoopMask mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) case_op if ($28 == 0x00000001) { LoopMask = true; $29 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 13 at #193) copy_4_slots_unmasked $30..33 = m2 splat_4_constants $34..37 = 0x3F800000 (1.0) add_4_floats $30..33 += $34..37 copy_4_slots_masked m2 = Mask($30..33) branch_if_all_lanes_active branch_if_all_lanes_active +30 (label 12 at #221) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) label label 0x0000000D case_op if ($28 == 0x00000002) { LoopMask = true; $29 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 14 at #202) copy_4_slots_unmasked $30..33 = m2 splat_4_constants $34..37 = 0x3F800000 (1.0) sub_4_floats $30..33 -= $34..37 copy_4_slots_masked m2 = Mask($30..33) branch_if_all_lanes_active branch_if_all_lanes_active +21 (label 12 at #221) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) label label 0x0000000E case_op if ($28 == 0x00000003) { LoopMask = true; $29 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 15 at #211) copy_4_slots_unmasked $30..33 = m2 splat_4_constants $34..37 = 0x40000000 (2.0) mul_4_floats $30..33 *= $34..37 copy_4_slots_masked m2 = Mask($30..33) branch_if_all_lanes_active branch_if_all_lanes_active +12 (label 12 at #221) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) label label 0x0000000F case_op if ($28 == 0x00000004) { LoopMask = true; $29 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 16 at #220) copy_4_slots_unmasked $30..33 = m2 splat_4_constants $34..37 = 0x3F000000 (0.5) mul_4_floats $30..33 *= $34..37 copy_4_slots_masked m2 = Mask($30..33) branch_if_all_lanes_active branch_if_all_lanes_active +3 (label 12 at #221) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000010 label label 0x0000000C load_loop_mask LoopMask = $27 copy_slot_unmasked $27 = m2(0) copy_slot_unmasked $28 = expected(0) cmpeq_float $27 = equal($27, $28) copy_2_slots_unmasked $28..29 = m2(0..1) copy_slot_unmasked $28 = $29 copy_2_slots_unmasked $29..30 = expected(0..1) copy_slot_unmasked $29 = $30 cmpeq_float $28 = equal($28, $29) bitwise_and_int $27 &= $28 copy_slot_unmasked $28 = m2(2) copy_slot_unmasked $29 = expected(2) cmpeq_float $28 = equal($28, $29) bitwise_and_int $27 &= $28 copy_2_slots_unmasked $28..29 = m2(2..3) copy_slot_unmasked $28 = $29 copy_2_slots_unmasked $29..30 = expected(2..3) copy_slot_unmasked $29 = $30 cmpeq_float $28 = equal($28, $29) bitwise_and_int $27 &= $28 label label 0x0000000B copy_slot_masked $26 = Mask($27) label label 0x00000003 load_condition_mask CondMask = $38 copy_constant $13 = 0 merge_condition_mask CondMask = $25 & $26 branch_if_no_lanes_active branch_if_no_lanes_active +88 (label 2 at #336) copy_constant op = 0x00000004 (5.605194e-45) copy_slot_unmasked $14 = f1 mul_imm_float $14 *= 0x3F000000 (0.5) copy_slot_unmasked $15 = f2 mul_imm_float $15 *= 0x3F000000 (0.5) copy_slot_unmasked $16 = f3 mul_imm_float $16 *= 0x3F000000 (0.5) copy_slot_unmasked $17 = f4 mul_imm_float $17 *= 0x3F000000 (0.5) copy_4_slots_unmasked expected = $14..17 copy_uniform one = colorRed(0) copy_slot_unmasked $14 = f1 copy_slot_unmasked $15 = one mul_float $14 *= $15 copy_slot_unmasked $15 = f2 copy_slot_unmasked $16 = one mul_float $15 *= $16 copy_slot_unmasked $16 = f3 copy_slot_unmasked $17 = one mul_float $16 *= $17 copy_slot_unmasked $17 = f4 copy_slot_unmasked $18 = one mul_float $17 *= $18 copy_4_slots_unmasked m2 = $14..17 store_loop_mask $14 = LoopMask copy_slot_unmasked $15 = op store_loop_mask $16 = LoopMask mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) case_op if ($15 == 0x00000001) { LoopMask = true; $16 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 19 at #285) copy_4_slots_unmasked $17..20 = m2 splat_4_constants $21..24 = 0x3F800000 (1.0) add_4_floats $17..20 += $21..24 copy_4_slots_masked m2 = Mask($17..20) branch_if_all_lanes_active branch_if_all_lanes_active +30 (label 18 at #313) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000013 case_op if ($15 == 0x00000002) { LoopMask = true; $16 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 20 at #294) copy_4_slots_unmasked $17..20 = m2 splat_4_constants $21..24 = 0x3F800000 (1.0) sub_4_floats $17..20 -= $21..24 copy_4_slots_masked m2 = Mask($17..20) branch_if_all_lanes_active branch_if_all_lanes_active +21 (label 18 at #313) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000014 case_op if ($15 == 0x00000003) { LoopMask = true; $16 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 21 at #303) copy_4_slots_unmasked $17..20 = m2 splat_4_constants $21..24 = 0x40000000 (2.0) mul_4_floats $17..20 *= $21..24 copy_4_slots_masked m2 = Mask($17..20) branch_if_all_lanes_active branch_if_all_lanes_active +12 (label 18 at #313) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000015 case_op if ($15 == 0x00000004) { LoopMask = true; $16 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 22 at #312) copy_4_slots_unmasked $17..20 = m2 splat_4_constants $21..24 = 0x3F000000 (0.5) mul_4_floats $17..20 *= $21..24 copy_4_slots_masked m2 = Mask($17..20) branch_if_all_lanes_active branch_if_all_lanes_active +3 (label 18 at #313) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000016 label label 0x00000012 load_loop_mask LoopMask = $14 copy_slot_unmasked $14 = m2(0) copy_slot_unmasked $15 = expected(0) cmpeq_float $14 = equal($14, $15) copy_2_slots_unmasked $15..16 = m2(0..1) copy_slot_unmasked $15 = $16 copy_2_slots_unmasked $16..17 = expected(0..1) copy_slot_unmasked $16 = $17 cmpeq_float $15 = equal($15, $16) bitwise_and_int $14 &= $15 copy_slot_unmasked $15 = m2(2) copy_slot_unmasked $16 = expected(2) cmpeq_float $15 = equal($15, $16) bitwise_and_int $14 &= $15 copy_2_slots_unmasked $15..16 = m2(2..3) copy_slot_unmasked $15 = $16 copy_2_slots_unmasked $16..17 = expected(2..3) copy_slot_unmasked $16 = $17 cmpeq_float $15 = equal($15, $16) bitwise_and_int $14 &= $15 label label 0x00000011 copy_slot_masked $13 = Mask($14) label label 0x00000002 load_condition_mask CondMask = $25 copy_constant $0 = 0 merge_condition_mask CondMask = $12 & $13 branch_if_no_lanes_active branch_if_no_lanes_active +40 (label 1 at #380) copy_uniform $1 = colorRed(0) mul_imm_float $1 *= 0x41200000 (10.0) copy_slot_unmasked ten = $1 copy_slot_unmasked $2 = $1 copy_slot_unmasked $3 = ten copy_slot_unmasked $4 = $3 copy_4_slots_unmasked mat = $1..4 copy_constant $5 = 0x3F800000 (1.0) copy_uniform $6 = testInputs(0) div_float $5 /= $6 swizzle_4 $5..8 = ($5..8).xxxx mul_4_floats $1..4 *= $5..8 copy_4_slots_unmasked div = $1..4 copy_4_slots_unmasked $1..4 = mat copy_constant $5 = 0x3F800000 (1.0) copy_uniform $6 = testInputs(0) div_float $5 /= $6 swizzle_4 $5..8 = ($5..8).xxxx mul_4_floats $1..4 *= $5..8 copy_4_slots_masked mat = Mask($1..4) copy_4_slots_unmasked $1..4 = div splat_4_constants $5..8 = 0x41000000 (8.0) add_4_floats $1..4 += $5..8 bitwise_and_imm_4_ints $1..4 &= 0x7FFFFFFF splat_4_constants $5..8 = 0x3C23D70A (0.01) cmplt_4_floats $1..4 = lessThan($1..4, $5..8) bitwise_and_2_ints $1..2 &= $3..4 bitwise_and_int $1 &= $2 copy_4_slots_unmasked $2..5 = mat splat_4_constants $6..9 = 0x41000000 (8.0) add_4_floats $2..5 += $6..9 bitwise_and_imm_4_ints $2..5 &= 0x7FFFFFFF splat_4_constants $6..9 = 0x3C23D70A (0.01) cmplt_4_floats $2..5 = lessThan($2..5, $6..9) bitwise_and_2_ints $2..3 &= $4..5 bitwise_and_int $2 &= $3 bitwise_and_int $1 &= $2 label label 0x00000017 copy_slot_masked $0 = Mask($1) label label 0x00000001 load_condition_mask CondMask = $12 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