| 366 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) |
| swizzle_1 $53 = ($53..54).y |
| copy_2_slots_unmasked $54..55 = _0_expected(0..1) |
| swizzle_1 $54 = ($54..55).y |
| 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) |
| swizzle_1 $53 = ($53..54).y |
| copy_2_slots_unmasked $54..55 = _0_expected(2..3) |
| swizzle_1 $54 = ($54..55).y |
| 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 +89 (label 4 at #153) |
| copy_constant op = 0x00000002 (2.802597e-45) |
| copy_4_slots_unmasked m11, m12, m21, m22 = f1, f2, f3, f4 |
| 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 = m11 |
| copy_slot_unmasked $41 = one |
| mul_float $40 *= $41 |
| copy_slot_unmasked $41 = m12 |
| copy_slot_unmasked $42 = one |
| mul_float $41 *= $42 |
| copy_slot_unmasked $42 = m21 |
| copy_slot_unmasked $43 = one |
| mul_float $42 *= $43 |
| copy_slot_unmasked $43 = m22 |
| 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 #102) |
| 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 #130) |
| 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 #111) |
| 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 #130) |
| 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 #120) |
| 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 #130) |
| 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 #129) |
| 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 #130) |
| 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) |
| swizzle_1 $41 = ($41..42).y |
| copy_2_slots_unmasked $42..43 = expected(0..1) |
| swizzle_1 $42 = ($42..43).y |
| 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) |
| swizzle_1 $41 = ($41..42).y |
| copy_2_slots_unmasked $42..43 = expected(2..3) |
| swizzle_1 $42 = ($42..43).y |
| 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 +89 (label 3 at #246) |
| copy_constant op = 0x00000003 (4.203895e-45) |
| copy_4_slots_unmasked m11, m12, m21, m22 = f1, f2, f3, f4 |
| 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 = m11 |
| copy_slot_unmasked $28 = one |
| mul_float $27 *= $28 |
| copy_slot_unmasked $28 = m12 |
| copy_slot_unmasked $29 = one |
| mul_float $28 *= $29 |
| copy_slot_unmasked $29 = m21 |
| copy_slot_unmasked $30 = one |
| mul_float $29 *= $30 |
| copy_slot_unmasked $30 = m22 |
| 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 #195) |
| 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 #223) |
| 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 #204) |
| 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 #223) |
| 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 #213) |
| 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 #223) |
| 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 #222) |
| 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 #223) |
| 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) |
| swizzle_1 $28 = ($28..29).y |
| copy_2_slots_unmasked $29..30 = expected(0..1) |
| swizzle_1 $29 = ($29..30).y |
| 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) |
| swizzle_1 $28 = ($28..29).y |
| copy_2_slots_unmasked $29..30 = expected(2..3) |
| swizzle_1 $29 = ($29..30).y |
| 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 +89 (label 2 at #339) |
| copy_constant op = 0x00000004 (5.605194e-45) |
| copy_4_slots_unmasked m11, m12, m21, m22 = f1, f2, f3, f4 |
| 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 = m11 |
| copy_slot_unmasked $15 = one |
| mul_float $14 *= $15 |
| copy_slot_unmasked $15 = m12 |
| copy_slot_unmasked $16 = one |
| mul_float $15 *= $16 |
| copy_slot_unmasked $16 = m21 |
| copy_slot_unmasked $17 = one |
| mul_float $16 *= $17 |
| copy_slot_unmasked $17 = m22 |
| 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 #288) |
| 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 #316) |
| 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 #297) |
| 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 #316) |
| 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 #306) |
| 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 #316) |
| 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 #315) |
| 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 #316) |
| 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) |
| swizzle_1 $15 = ($15..16).y |
| copy_2_slots_unmasked $16..17 = expected(0..1) |
| swizzle_1 $16 = ($16..17).y |
| 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) |
| swizzle_1 $15 = ($15..16).y |
| copy_2_slots_unmasked $16..17 = expected(2..3) |
| swizzle_1 $16 = ($16..17).y |
| 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 #383) |
| 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 |