86 instructions [immutable slots] i0 = 0x3F000000 (0.5) i1 = 0 i2 = 0 i3 = 0 i4 = 0x3F000000 (0.5) i5 = 0 i6 = 0 i7 = 0 i8 = 0x3F000000 (0.5) i9 = 0x3E800000 (0.25) i10 = 0 i11 = 0 i12 = 0x3F400000 (0.75) i13 = 0x3F800000 (1.0) i14 = 0x3F800000 (1.0) i15 = 0x3E800000 (0.25) i16 = 0x3F800000 (1.0) store_src_rg v0..1 = src.rg init_lane_masks CondMask = LoopMask = RetMask = true copy_constant gAccessCount = 0 splat_4_constants array[0] = 0 add_imm_int gAccessCount += 0x00000001 copy_constant $15 = 0 label label 0 mul_imm_int $15 *= 0x00000004 copy_4_uniforms $0..3 = colorGreen splat_4_constants $4..7 = 0x3F000000 (0.5) mul_4_floats $0..3 *= $4..7 copy_to_indirect_masked Indirect(array[0] + $15) = Mask($0..3) add_imm_int gAccessCount += 0x00000001 copy_constant $15 = 0 label label 0x00000001 mul_imm_int $15 *= 0x00000004 copy_constant $0 = 0x40000000 (2.0) copy_to_indirect_masked Indirect(array[0](3) + $15) = Mask($0) add_imm_int gAccessCount += 0x00000001 copy_constant $15 = 0 label label 0x00000002 mul_imm_int $15 *= 0x00000004 copy_from_indirect_unmasked $0 = Indirect(array[0](1) + $15) mul_imm_float $0 *= 0x40800000 (4.0) copy_to_indirect_masked Indirect(array[0](1) + $15) = Mask($0) add_imm_int gAccessCount += 0x00000001 copy_constant $15 = 0 label label 0x00000003 mul_imm_int $15 *= 0x00000004 copy_from_indirect_unmasked $3..5 = Indirect(array[0](1..3) + $15) copy_4_immutables_unmasked $6..9 = i0..3 [0x3F000000 (0.5), 0, 0, 0] copy_4_immutables_unmasked $10..13 = i4..7 [0x3F000000 (0.5), 0, 0, 0] copy_constant $14 = 0x3F000000 (0.5) matrix_multiply_3 mat3x1($0..2) = mat3x1($3..5) * mat3x3($6..14) copy_to_indirect_masked Indirect(array[0](1..3) + $15) = Mask($0..2) add_imm_int gAccessCount += 0x00000001 copy_constant $15 = 0 label label 0x00000004 mul_imm_int $15 *= 0x00000004 copy_from_indirect_unmasked $0..3 = Indirect(array[0] + $15) swizzle_4 $0..3 = ($0..3).zywx copy_4_immutables_unmasked $4..7 = i9..12 [0x3E800000 (0.25), 0, 0, 0x3F400000 (0.75)] add_4_floats $0..3 += $4..7 swizzle_copy_to_indirect_maske Indirect(array[0] + $15).zywx = Mask($0..3) add_imm_int gAccessCount += 0x00000001 copy_constant $15 = 0 label label 0x00000005 mul_imm_int $15 *= 0x00000004 copy_from_indirect_unmasked $0 = Indirect(array[0](0) + $15) store_condition_mask $16 = CondMask branch_if_no_lanes_active branch_if_no_lanes_active +5 (label 7 at #56) copy_slot_unmasked $21 = gAccessCount add_imm_int $21 += 0x00000001 copy_slot_masked gAccessCount = Mask($21) copy_constant $21 = 0 label label 0x00000007 mul_imm_int $21 *= 0x00000004 copy_from_indirect_unmasked $17..20 = Indirect(array[0] + $21) copy_slot_unmasked $17 = $20 cmple_imm_float $17 = lessThanEqual($17, 0x3F800000 (1.0)) merge_condition_mask CondMask = $16 & $17 branch_if_no_lanes_active branch_if_no_lanes_active +5 (label 8 at #67) copy_slot_unmasked $21 = gAccessCount add_imm_int $21 += 0x00000001 copy_slot_masked gAccessCount = Mask($21) copy_constant $21 = 0 label label 0x00000008 mul_imm_int $21 *= 0x00000004 copy_from_indirect_unmasked $1..4 = Indirect(array[0] + $21) copy_slot_unmasked $1 = $3 merge_inv_condition_mask CondMask = $16 & ~$17 branch_if_no_lanes_active branch_if_no_lanes_active +5 (label 9 at #77) copy_slot_unmasked $2 = gAccessCount add_imm_int $2 += 0x00000001 copy_slot_masked gAccessCount = Mask($2) copy_constant $2 = 0 label label 0x00000009 cast_to_float_from_int $2 = IntToFloat($2) copy_slot_masked $1 = Mask($2) load_condition_mask CondMask = $16 add_float $0 += $1 copy_to_indirect_masked Indirect(array[0](0) + $15) = Mask($0) copy_slot_unmasked $0 = gAccessCount cmpeq_imm_int $0 = equal($0, 0x00000008) copy_4_slots_unmasked $1..4 = array[0] copy_4_immutables_unmasked $5..8 = i13..16 [0x3F800000 (1.0), 0x3F800000 (1.0), 0x3E800000 (0.25), 0x3F800000 (1.0)] 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 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