107 instructions

[immutable slots]
i0 = 0x3F800000 (1.0)
i1 = 0x41200000 (10.0)
i2 = 0x42C80000 (100.0)
i3 = 0x40000000 (2.0)
i4 = 0x41A00000 (20.0)
i5 = 0x43480000 (200.0)
i6 = 0x40400000 (3.0)
i7 = 0x41F00000 (30.0)
i8 = 0x43960000 (300.0)
i9 = 0x40800000 (4.0)
i10 = 0x42200000 (40.0)
i11 = 0x43C80000 (400.0)
i12 = 0x40A00000 (5.0)
i13 = 0x42480000 (50.0)
i14 = 0x43FA0000 (500.0)
i15 = 0x40C00000 (6.0)
i16 = 0x42700000 (60.0)
i17 = 0x44160000 (600.0)
i18 = 0x40E00000 (7.0)
i19 = 0x428C0000 (70.0)
i20 = 0x442F0000 (700.0)
i21 = 0x41000000 (8.0)
i22 = 0x42A00000 (80.0)
i23 = 0x44480000 (800.0)
i24 = 0x41100000 (9.0)
i25 = 0x42B40000 (90.0)
i26 = 0x44610000 (900.0)

store_src_rg                   coords = src.rg
init_lane_masks                CondMask = LoopMask = RetMask = true
splat_4_constants              data.outer[0].inner[0].values, data.outer[0].inner[1].values(0) = 0
splat_4_constants              data.outer[0].inner[1].values(1..2), data.outer[0].inner[2].values(0..1) = 0
splat_4_constants              data.outer[0].inner[2].values(2), data.outer[1].inner[0].values = 0
splat_4_constants              data.outer[1].inner[1].values, data.outer[1].inner[2].values(0) = 0
splat_4_constants              data.outer[1].inner[2].values(1..2), data.outer[2].inner[0].values(0..1) = 0
splat_4_constants              data.outer[2].inner[0].values(2), data.outer[2].inner[1].values = 0
splat_3_constants              data.outer[2].inner[2].values = 0
copy_3_immutables_unmasked     $0..2 = i0..2 [0x3F800000 (1.0), 0x41200000 (10.0), 0x42C80000 (100.0)]
copy_3_slots_masked            data.outer[0].inner[0].values = Mask($0..2)
copy_3_immutables_unmasked     $0..2 = i3..5 [0x40000000 (2.0), 0x41A00000 (20.0), 0x43480000 (200.0)]
copy_3_slots_masked            data.outer[0].inner[1].values = Mask($0..2)
copy_3_immutables_unmasked     $0..2 = i6..8 [0x40400000 (3.0), 0x41F00000 (30.0), 0x43960000 (300.0)]
copy_3_slots_masked            data.outer[0].inner[2].values = Mask($0..2)
copy_3_immutables_unmasked     $0..2 = i9..11 [0x40800000 (4.0), 0x42200000 (40.0), 0x43C80000 (400.0)]
copy_3_slots_masked            data.outer[1].inner[0].values = Mask($0..2)
copy_3_immutables_unmasked     $0..2 = i12..14 [0x40A00000 (5.0), 0x42480000 (50.0), 0x43FA0000 (500.0)]
copy_3_slots_masked            data.outer[1].inner[1].values = Mask($0..2)
copy_3_immutables_unmasked     $0..2 = i15..17 [0x40C00000 (6.0), 0x42700000 (60.0), 0x44160000 (600.0)]
copy_3_slots_masked            data.outer[1].inner[2].values = Mask($0..2)
copy_3_immutables_unmasked     $0..2 = i18..20 [0x40E00000 (7.0), 0x428C0000 (70.0), 0x442F0000 (700.0)]
copy_3_slots_masked            data.outer[2].inner[0].values = Mask($0..2)
copy_3_immutables_unmasked     $0..2 = i21..23 [0x41000000 (8.0), 0x42A00000 (80.0), 0x44480000 (800.0)]
copy_3_slots_masked            data.outer[2].inner[1].values = Mask($0..2)
copy_3_immutables_unmasked     $0..2 = i24..26 [0x41100000 (9.0), 0x42B40000 (90.0), 0x44610000 (900.0)]
copy_3_slots_masked            data.outer[2].inner[2].values = Mask($0..2)
splat_4_constants              expected, i = 0
store_loop_mask                $0 = LoopMask
jump                           jump +75 (label 1 at #105)
label                          label 0x00000002
copy_constant                  j = 0
store_loop_mask                $1 = LoopMask
jump                           jump +60 (label 4 at #94)
label                          label 0x00000005
copy_3_slots_unmasked          $2..4 = expected
copy_3_immutables_unmasked     $5..7 = i0..2 [0x3F800000 (1.0), 0x41200000 (10.0), 0x42C80000 (100.0)]
add_3_floats                   $2..4 += $5..7
copy_3_slots_masked            expected = Mask($2..4)
store_condition_mask           $2 = CondMask
copy_slot_unmasked             $9 = i
mul_imm_int                    $9 *= 0x00000009
copy_slot_unmasked             $10 = j
mul_imm_int                    $10 *= 0x00000003
copy_slot_unmasked             $11 = $9
add_int                        $10 += $11
copy_from_indirect_unmasked    $3..5 = Indirect(data.outer[0].inner[0].values + $10)
copy_3_slots_unmasked          $6..8 = expected
cmpne_3_floats                 $3..5 = notEqual($3..5, $6..8)
bitwise_or_int                 $4 |= $5
bitwise_or_int                 $3 |= $4
merge_condition_mask           CondMask = $2 & $3
copy_4_uniforms                $4..7 = colorRed
copy_4_slots_masked            [main].result = Mask($4..7)
mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
load_condition_mask            CondMask = $2
copy_constant                  k = 0
store_loop_mask                $2 = LoopMask
jump                           jump +24 (label 7 at #83)
label                          label 0x00000008
store_condition_mask           $3 = CondMask
copy_slot_unmasked             $9 = i
mul_imm_int                    $9 *= 0x00000009
copy_slot_unmasked             $10 = j
mul_imm_int                    $10 *= 0x00000003
copy_slot_unmasked             $11 = $9
add_int                        $10 += $11
copy_slot_unmasked             $12 = k
copy_slot_unmasked             $13 = $10
add_int                        $12 += $13
copy_from_indirect_unmasked    $4 = Indirect(data.outer[0].inner[0].values(0) + $12)
copy_slot_unmasked             $9 = k
copy_from_indirect_unmasked    $5 = Indirect(expected(0) + $9)
cmpne_float                    $4 = notEqual($4, $5)
merge_condition_mask           CondMask = $3 & $4
copy_4_uniforms                $5..8 = colorRed
copy_4_slots_masked            [main].result = Mask($5..8)
mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
load_condition_mask            CondMask = $3
copy_slot_unmasked             $3 = k
add_imm_int                    $3 += 0x00000001
copy_slot_masked               k = Mask($3)
label                          label 0x00000007
copy_slot_unmasked             $3 = k
cmplt_imm_int                  $3 = lessThan($3, 0x00000003)
merge_loop_mask                LoopMask &= $3
stack_rewind
branch_if_any_lanes_active     branch_if_any_lanes_active -28 (label 8 at #60)
label                          label 0x00000006
load_loop_mask                 LoopMask = $2
copy_slot_unmasked             $2 = j
add_imm_int                    $2 += 0x00000001
copy_slot_masked               j = Mask($2)
label                          label 0x00000004
copy_slot_unmasked             $2 = j
cmplt_imm_int                  $2 = lessThan($2, 0x00000003)
merge_loop_mask                LoopMask &= $2
stack_rewind
branch_if_any_lanes_active     branch_if_any_lanes_active -64 (label 5 at #35)
label                          label 0x00000003
load_loop_mask                 LoopMask = $1
copy_slot_unmasked             $1 = i
add_imm_int                    $1 += 0x00000001
copy_slot_masked               i = Mask($1)
label                          label 0x00000001
copy_slot_unmasked             $1 = i
cmplt_imm_int                  $1 = lessThan($1, 0x00000003)
merge_loop_mask                LoopMask &= $1
stack_rewind
branch_if_any_lanes_active     branch_if_any_lanes_active -79 (label 2 at #31)
label                          label 0
load_loop_mask                 LoopMask = $0
copy_4_uniforms                $0..3 = colorGreen
copy_4_slots_masked            [main].result = Mask($0..3)
mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
load_src                       src.rgba = [main].result
