store_src_rg                   coords = src.rg
init_lane_masks                CondMask = LoopMask = RetMask = true
splat_4_constants              globalVar = 0
splat_4_constants              globalStruct.f, globalStruct.af[0], globalStruct.af[1], globalStruct.af[2] = 0
splat_4_constants              globalStruct.af[3], globalStruct.af[4], globalStruct.h4(0..1) = 0
splat_4_constants              globalStruct.h4(2..3), globalStruct.ah4[0](0..1) = 0
splat_4_constants              globalStruct.ah4[0](2..3), globalStruct.ah4[1](0..1) = 0
splat_4_constants              globalStruct.ah4[1](2..3), globalStruct.ah4[2](0..1) = 0
splat_4_constants              globalStruct.ah4[2](2..3), globalStruct.ah4[3](0..1) = 0
splat_4_constants              globalStruct.ah4[3](2..3), globalStruct.ah4[4](0..1) = 0
splat_2_constants              globalStruct.ah4[4](2..3) = 0
copy_constant                  i = 0
copy_constant                  i4(0) = 0x00000001 (1.401298e-45)
copy_constant                  i4(1) = 0x00000002 (2.802597e-45)
copy_constant                  i4(2) = 0x00000003 (4.203895e-45)
copy_constant                  i4(3) = 0x00000004 (5.605194e-45)
copy_constant                  f3x3(0) = 0x3F800000 (1.0)
copy_constant                  f3x3(1) = 0x40000000 (2.0)
copy_constant                  f3x3(2) = 0x40400000 (3.0)
copy_constant                  f3x3(3) = 0x40800000 (4.0)
copy_constant                  f3x3(4) = 0x40A00000 (5.0)
copy_constant                  f3x3(5) = 0x40C00000 (6.0)
copy_constant                  f3x3(6) = 0x40E00000 (7.0)
copy_constant                  f3x3(7) = 0x41000000 (8.0)
copy_constant                  f3x3(8) = 0x41100000 (9.0)
splat_4_constants              x = 0
copy_constant                  x(3) = 0
splat_2_constants              $0..1 = 0
swizzle_copy_2_slots_masked    (x(0..1)).yx = Mask($0..1)
copy_constant                  ai[0] = 0
splat_4_constants              ai[0], ai4[0](0..2) = 0
copy_constant                  ai4[0](3) = 0
copy_constant                  ai4[0](0) = 0x00000001 (1.401298e-45)
copy_constant                  ai4[0](1) = 0x00000002 (2.802597e-45)
copy_constant                  ai4[0](2) = 0x00000003 (4.203895e-45)
copy_constant                  ai4[0](3) = 0x00000004 (5.605194e-45)
splat_4_constants              ah3x3[0](0..3) = 0
splat_4_constants              ah3x3[0](4..7) = 0
copy_constant                  ah3x3[0](8) = 0
copy_constant                  ah3x3[0](0) = 0x3F800000 (1.0)
copy_constant                  ah3x3[0](1) = 0x40000000 (2.0)
copy_constant                  ah3x3[0](2) = 0x40400000 (3.0)
copy_constant                  ah3x3[0](3) = 0x40800000 (4.0)
copy_constant                  ah3x3[0](4) = 0x40A00000 (5.0)
copy_constant                  ah3x3[0](5) = 0x40C00000 (6.0)
copy_constant                  ah3x3[0](6) = 0x40E00000 (7.0)
copy_constant                  ah3x3[0](7) = 0x41000000 (8.0)
copy_constant                  ah3x3[0](8) = 0x41100000 (9.0)
splat_4_constants              af4[0] = 0
copy_constant                  af4[0](0) = 0
splat_4_constants              $0..3 = 0x3F800000 (1.0)
swizzle_copy_4_slots_masked    (af4[0]).ywxz = Mask($0..3)
splat_4_constants              s.f, s.af[0], s.af[1], s.af[2] = 0
splat_4_constants              s.af[3], s.af[4], s.h4(0..1) = 0
splat_4_constants              s.h4(2..3), s.ah4[0](0..1) = 0
splat_4_constants              s.ah4[0](2..3), s.ah4[1](0..1) = 0
splat_4_constants              s.ah4[1](2..3), s.ah4[2](0..1) = 0
splat_4_constants              s.ah4[2](2..3), s.ah4[3](0..1) = 0
splat_4_constants              s.ah4[3](2..3), s.ah4[4](0..1) = 0
splat_2_constants              s.ah4[4](2..3) = 0
copy_constant                  s.f = 0
copy_constant                  s.af[1] = 0
splat_3_constants              $0..2 = 0x41100000 (9.0)
swizzle_copy_3_slots_masked    (s.h4(0..2)).zxy = Mask($0..2)
splat_2_constants              $0..1 = 0x40A00000 (5.0)
swizzle_copy_2_slots_masked    (s.ah4[2]).yw = Mask($0..1)
splat_4_constants              globalVar = 0
copy_constant                  globalStruct.f = 0
copy_constant                  l = 0
copy_constant                  l = 0
copy_2_slots_unmasked          $0..1 = ai[0], ai4[0](0)
add_int                        $0 += $1
copy_slot_unmasked             ai[0] = $0
copy_constant                  s.f = 0x3F800000 (1.0)
copy_constant                  s.af[0] = 0x40000000 (2.0)
splat_4_constants              s.h4 = 0x3F800000 (1.0)
splat_4_constants              s.ah4[0] = 0x40000000 (2.0)
copy_constant                  repeat = 0
copy_constant                  $0 = 0x3F800000 (1.0)
copy_slot_unmasked             repeat = $0
copy_slot_unmasked             repeat = $0
copy_slot_unmasked             f = af4[0](0)
copy_slot_unmasked             af4[0](0) = f
label                          label 0
copy_slot_unmasked             h = ah3x3[0](0)
copy_slot_unmasked             ah3x3[0](0) = h
label                          label 0x00000001
copy_slot_unmasked             i₁ = i
copy_slot_unmasked             i = i₁
label                          label 0x00000002
copy_slot_unmasked             i₁ = i4(1)
copy_slot_unmasked             i4(1) = i₁
label                          label 0x00000003
copy_slot_unmasked             i₁ = ai[0]
copy_slot_unmasked             ai[0] = i₁
label                          label 0x00000004
copy_slot_unmasked             i₁ = ai4[0](0)
copy_slot_unmasked             ai4[0](0) = i₁
label                          label 0x00000005
copy_slot_unmasked             h = x(1)
copy_slot_unmasked             x(1) = h
label                          label 0x00000006
copy_slot_unmasked             f = s.f
copy_slot_unmasked             s.f = f
label                          label 0x00000007
copy_slot_unmasked             h = l
copy_slot_unmasked             l = h
label                          label 0x00000008
copy_slot_unmasked             f = f3x3(0)
copy_slot_unmasked             f3x3(0) = f
label                          label 0x00000009
copy_slot_unmasked             f = repeat
copy_slot_unmasked             repeat = f
label                          label 0x0000000A
copy_4_uniforms                $0..3 = colorGreen
load_src                       src.rgba = $0..3
