30 instructions

[immutable slots]
i0 = 0x3F800000 (1.0)
i1 = 0x3F800000 (1.0)
i2 = 0xBF800000 (-1.0)
i3 = 0xBF800000 (-1.0)
i4 = 0x3F800000 (1.0)
i5 = 0x40000000 (2.0)
i6 = 0xC0400000 (-3.0)
i7 = 0xC0800000 (-4.0)

store_src_rg                   coords = src.rg
init_lane_masks                CondMask = LoopMask = RetMask = true
copy_4_uniforms                $0..3 = testMatrix2x2
copy_4_immutables_unmasked     $4..7 = i0..3 [0x3F800000 (1.0), 0x3F800000 (1.0), 0xBF800000 (-1.0), 0xBF800000 (-1.0)]
mul_4_floats                   $0..3 *= $4..7
copy_4_slots_unmasked          inputVal = $0..3
copy_slot_unmasked             $0 = inputVal(0)
cmpeq_imm_float                $0 = equal($0, 0x3F800000 (1.0))
copy_2_slots_unmasked          $1..2 = inputVal(0..1)
copy_2_immutables_unmasked     $3..4 = i4..5 [0x3F800000 (1.0), 0x40000000 (2.0)]
cmpeq_2_floats                 $1..2 = equal($1..2, $3..4)
bitwise_and_int                $1 &= $2
bitwise_and_int                $0 &= $1
copy_3_slots_unmasked          $1..3 = inputVal(0..2)
copy_3_immutables_unmasked     $4..6 = i4..6 [0x3F800000 (1.0), 0x40000000 (2.0), 0xC0400000 (-3.0)]
cmpeq_3_floats                 $1..3 = equal($1..3, $4..6)
bitwise_and_int                $2 &= $3
bitwise_and_int                $1 &= $2
bitwise_and_int                $0 &= $1
copy_4_slots_unmasked          $1..4 = inputVal
copy_4_immutables_unmasked     $5..8 = i4..7 [0x3F800000 (1.0), 0x40000000 (2.0), 0xC0400000 (-3.0), 0xC0800000 (-4.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
