store_src_rg                   coords = src.rg
init_lane_masks                CondMask = LoopMask = RetMask = true
copy_constant                  array[0] = 0x3F800000 (1.0)
copy_constant                  array[1] = 0x40000000 (2.0)
copy_constant                  array[2] = 0x40400000 (3.0)
copy_constant                  array[3] = 0x40800000 (4.0)
copy_constant                  array[4] = 0x40A00000 (5.0)
copy_constant                  $0 = 0x00000001 (1.401298e-45)
copy_constant                  $1 = 0x00000002 (2.802597e-45)
copy_constant                  $2 = 0
copy_constant                  $3 = 0x3F800000 (1.0)
swizzle_4                      $2..5 = ($2..5).yxxy
copy_4_slots_unmasked          s1.a[0], s1.a[1], s1.a[2], s1.a[3] = array[0], array[1], array[2], array[3]
copy_slot_unmasked             s1.a[4] = array[4]
copy_4_slots_unmasked          s1.x, s1.y, s1.m(0..1) = $0..3
copy_2_slots_unmasked          s1.m(2..3) = $4..5
copy_constant                  $0 = 0x00000001 (1.401298e-45)
copy_constant                  $1 = 0x00000002 (2.802597e-45)
copy_constant                  $2 = 0
copy_constant                  $3 = 0x3F800000 (1.0)
swizzle_4                      $2..5 = ($2..5).yxxy
copy_4_uniforms                s2.a[0], s2.a[1], s2.a[2], s2.a[3] = testArray[0], testArray[1], testArray[2], testArray[3]
copy_uniform                   s2.a[4] = testArray[4]
copy_4_slots_unmasked          s2.x, s2.y, s2.m(0..1) = $0..3
copy_2_slots_unmasked          s2.m(2..3) = $4..5
copy_constant                  $0 = 0x00000001 (1.401298e-45)
copy_constant                  $1 = 0x00000002 (2.802597e-45)
copy_constant                  $2 = 0
copy_constant                  $3 = 0x40000000 (2.0)
swizzle_4                      $2..5 = ($2..5).yxxy
copy_constant                  s3.a[0] = 0x3F800000 (1.0)
copy_constant                  s3.a[1] = 0x40000000 (2.0)
copy_constant                  s3.a[2] = 0x40400000 (3.0)
copy_constant                  s3.a[3] = 0x40800000 (4.0)
copy_constant                  s3.a[4] = 0x40A00000 (5.0)
copy_4_slots_unmasked          s3.x, s3.y, s3.m(0..1) = $0..3
copy_2_slots_unmasked          s3.m(2..3) = $4..5
copy_slot_unmasked             $0 = s1.x
copy_slot_unmasked             $1 = s2.x
cmpeq_int                      $0 = equal($0, $1)
copy_slot_unmasked             $1 = s1.y
copy_slot_unmasked             $2 = s2.y
cmpeq_int                      $1 = equal($1, $2)
copy_4_slots_unmasked          $2..5 = s1.m
copy_4_slots_unmasked          $6..9 = s2.m
cmpeq_4_floats                 $2..5 = equal($2..5, $6..9)
bitwise_and_2_ints             $2..3 &= $4..5
bitwise_and_int                $2 &= $3
copy_4_slots_unmasked          $3..6 = s1.a[0], s1.a[1], s1.a[2], s1.a[3]
copy_slot_unmasked             $7 = s1.a[4]
copy_4_slots_unmasked          $8..11 = s2.a[0], s2.a[1], s2.a[2], s2.a[3]
copy_slot_unmasked             $12 = s2.a[4]
cmpeq_n_floats                 $3..7 = equal($3..7, $8..12)
bitwise_and_2_ints             $4..5 &= $6..7
bitwise_and_int                $4 &= $5
bitwise_and_int                $3 &= $4
bitwise_and_2_ints             $0..1 &= $2..3
bitwise_and_int                $0 &= $1
copy_slot_unmasked             $1 = s1.x
copy_slot_unmasked             $2 = s3.x
cmpne_int                      $1 = notEqual($1, $2)
copy_slot_unmasked             $2 = s1.y
copy_slot_unmasked             $3 = s3.y
cmpne_int                      $2 = notEqual($2, $3)
copy_4_slots_unmasked          $3..6 = s1.m
copy_4_slots_unmasked          $7..10 = s3.m
cmpne_4_floats                 $3..6 = notEqual($3..6, $7..10)
bitwise_or_2_ints              $3..4 |= $5..6
bitwise_or_int                 $3 |= $4
copy_4_slots_unmasked          $4..7 = s1.a[0], s1.a[1], s1.a[2], s1.a[3]
copy_slot_unmasked             $8 = s1.a[4]
copy_4_slots_unmasked          $9..12 = s3.a[0], s3.a[1], s3.a[2], s3.a[3]
copy_slot_unmasked             $13 = s3.a[4]
cmpne_n_floats                 $4..8 = notEqual($4..8, $9..13)
bitwise_or_2_ints              $5..6 |= $7..8
bitwise_or_int                 $5 |= $6
bitwise_or_int                 $4 |= $5
bitwise_or_2_ints              $1..2 |= $3..4
bitwise_or_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
