xref: /aosp_15_r20/external/skia/tests/sksl/shared/ForLoopControlFlow.skrp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
153 instructions
2
3store_src_rg                   coords = src.rg
4init_lane_masks                CondMask = LoopMask = RetMask = true
5copy_4_uniforms                x = colorWhite
6copy_constant                  r = 0xC0A00000 (-5.0)
7store_loop_mask                $0 = LoopMask
8jump                           jump +16 (label 1 at #22)
9label                          label 0x00000002
10copy_slot_unmasked             $1 = r
11max_imm_float                  $1 = max($1, 0)
12min_imm_float                  $1 = min($1, 0x3F800000 (1.0))
13copy_slot_masked               x(0) = Mask($1)
14store_condition_mask           $1 = CondMask
15copy_slot_unmasked             $2 = x(0)
16cmpeq_imm_float                $2 = equal($2, 0)
17merge_condition_mask           CondMask = $1 & $2
18branch_if_all_lanes_active     branch_if_all_lanes_active +12 (label 0 at #28)
19mask_off_loop_mask             LoopMask &= ~(CondMask & LoopMask & RetMask)
20load_condition_mask            CondMask = $1
21copy_slot_unmasked             $1 = r
22add_imm_float                  $1 += 0x3F800000 (1.0)
23copy_slot_masked               r = Mask($1)
24label                          label 0x00000001
25copy_slot_unmasked             $1 = r
26cmplt_imm_float                $1 = lessThan($1, 0x40A00000 (5.0))
27merge_loop_mask                LoopMask &= $1
28stack_rewind
29branch_if_any_lanes_active     branch_if_any_lanes_active -20 (label 2 at #7)
30label                          label 0
31load_loop_mask                 LoopMask = $0
32copy_constant                  b = 0x40A00000 (5.0)
33store_loop_mask                $0 = LoopMask
34jump                           jump +17 (label 4 at #49)
35label                          label 0x00000005
36copy_constant                  $4 = 0
37copy_slot_unmasked             $1 = b
38copy_slot_masked               x(2) = Mask($1)
39store_condition_mask           $1 = CondMask
40copy_slot_unmasked             $2 = x(3)
41cmpeq_imm_float                $2 = equal($2, 0x3F800000 (1.0))
42merge_condition_mask           CondMask = $1 & $2
43continue_op                    $4 |= Mask(0xFFFFFFFF); LoopMask &= ~(CondMask & LoopMask & RetMask)
44load_condition_mask            CondMask = $1
45copy_constant                  $1 = 0
46copy_slot_masked               x(1) = Mask($1)
47reenable_loop_mask             LoopMask |= $4
48copy_slot_unmasked             $1 = b
49add_imm_float                  $1 += 0xBF800000 (-1.0)
50copy_slot_masked               b = Mask($1)
51label                          label 0x00000004
52copy_constant                  $1 = 0
53copy_slot_unmasked             $2 = b
54cmple_float                    $1 = lessThanEqual($1, $2)
55merge_loop_mask                LoopMask &= $1
56stack_rewind
57branch_if_any_lanes_active     branch_if_any_lanes_active -22 (label 5 at #33)
58label                          label 0x00000003
59load_loop_mask                 LoopMask = $0
60copy_4_slots_unmasked          $0..3 = x
61load_src                       src.rgba = $0..3
62