xref: /aosp_15_r20/external/skia/tests/sksl/runtime/VectorIndexing.skrp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
152 instructions
2
3store_src_rg                   xy = src.rg
4init_lane_masks                CondMask = LoopMask = RetMask = true
5splat_2_constants              _0_sum, _1_i = 0
6label                          label 0x00000001
7copy_slot_unmasked             $0 = _0_sum
8copy_slot_unmasked             $6 = _1_i
9copy_from_indirect_uniform_unm $1 = Indirect(u2(0) + $6)
10add_float                      $0 += $1
11copy_slot_unmasked             _0_sum = $0
12add_imm_int                    _1_i += 0x00000001
13copy_slot_unmasked             $0 = _1_i
14cmplt_imm_int                  $0 = lessThan($0, 0x00000004)
15stack_rewind
16branch_if_no_active_lanes_eq   branch -10 (label 1 at #4) if no lanes of $0 == 0
17label                          label 0
18copy_constant                  _2_prod = 0x3F800000 (1.0)
19copy_constant                  _3_i = 0
20label                          label 0x00000003
21copy_slot_unmasked             $0 = _2_prod
22copy_slot_unmasked             $6 = _3_i
23cmplt_imm_int                  $6 = lessThan($6, 0x00000002)
24copy_slot_unmasked             $7 = _3_i
25copy_constant                  $8 = 0
26mix_int                        $6 = mix($7, $8, $6)
27copy_from_indirect_uniform_unm $1 = Indirect(u3(0) + $6)
28mul_float                      $0 *= $1
29copy_slot_unmasked             _2_prod = $0
30add_imm_int                    _3_i += 0x00000001
31copy_slot_unmasked             $0 = _3_i
32cmplt_imm_int                  $0 = lessThan($0, 0x00000004)
33stack_rewind
34branch_if_no_active_lanes_eq   branch -14 (label 3 at #18) if no lanes of $0 == 0
35label                          label 0x00000002
36copy_uniform                   $0 = u1(0)
37copy_slot_unmasked             $1 = _0_sum
38copy_slot_unmasked             $2 = _2_prod
39store_return_mask              $3 = RetMask
40copy_constant                  i = 0x00000007 (9.809089e-45)
41store_loop_mask                $4 = LoopMask
42jump                           jump +9 (label 7 at #49)
43label                          label 0x00000008
44copy_slot_unmasked             $6 = i
45copy_from_indirect_uniform_unm $5 = Indirect(u4(0) + $6)
46copy_slot_masked               [index_clamped_out_of_bounds].result = Mask($5)
47mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
48copy_slot_unmasked             $5 = i
49add_imm_int                    $5 += 0x00000001
50copy_slot_masked               i = Mask($5)
51label                          label 0x00000007
52copy_slot_unmasked             $5 = i
53cmplt_imm_int                  $5 = lessThan($5, 0x00000008)
54merge_loop_mask                LoopMask &= $5
55stack_rewind
56branch_if_any_lanes_active     branch_if_any_lanes_active -13 (label 8 at #41)
57label                          label 0x00000006
58load_loop_mask                 LoopMask = $4
59load_return_mask               RetMask = $3
60copy_slot_unmasked             $3 = [index_clamped_out_of_bounds].result
61label                          label 0x00000005
62load_src                       src.rgba = $0..3
63