xref: /aosp_15_r20/external/skia/tests/sksl/runtime/VectorIndexing.skrp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker52 instructions
2*c8dee2aaSAndroid Build Coastguard Worker
3*c8dee2aaSAndroid Build Coastguard Workerstore_src_rg                   xy = src.rg
4*c8dee2aaSAndroid Build Coastguard Workerinit_lane_masks                CondMask = LoopMask = RetMask = true
5*c8dee2aaSAndroid Build Coastguard Workersplat_2_constants              _0_sum, _1_i = 0
6*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000001
7*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $0 = _0_sum
8*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $6 = _1_i
9*c8dee2aaSAndroid Build Coastguard Workercopy_from_indirect_uniform_unm $1 = Indirect(u2(0) + $6)
10*c8dee2aaSAndroid Build Coastguard Workeradd_float                      $0 += $1
11*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             _0_sum = $0
12*c8dee2aaSAndroid Build Coastguard Workeradd_imm_int                    _1_i += 0x00000001
13*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $0 = _1_i
14*c8dee2aaSAndroid Build Coastguard Workercmplt_imm_int                  $0 = lessThan($0, 0x00000004)
15*c8dee2aaSAndroid Build Coastguard Workerstack_rewind
16*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_active_lanes_eq   branch -10 (label 1 at #4) if no lanes of $0 == 0
17*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0
18*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  _2_prod = 0x3F800000 (1.0)
19*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  _3_i = 0
20*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000003
21*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $0 = _2_prod
22*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $6 = _3_i
23*c8dee2aaSAndroid Build Coastguard Workercmplt_imm_int                  $6 = lessThan($6, 0x00000002)
24*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $7 = _3_i
25*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  $8 = 0
26*c8dee2aaSAndroid Build Coastguard Workermix_int                        $6 = mix($7, $8, $6)
27*c8dee2aaSAndroid Build Coastguard Workercopy_from_indirect_uniform_unm $1 = Indirect(u3(0) + $6)
28*c8dee2aaSAndroid Build Coastguard Workermul_float                      $0 *= $1
29*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             _2_prod = $0
30*c8dee2aaSAndroid Build Coastguard Workeradd_imm_int                    _3_i += 0x00000001
31*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $0 = _3_i
32*c8dee2aaSAndroid Build Coastguard Workercmplt_imm_int                  $0 = lessThan($0, 0x00000004)
33*c8dee2aaSAndroid Build Coastguard Workerstack_rewind
34*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_active_lanes_eq   branch -14 (label 3 at #18) if no lanes of $0 == 0
35*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000002
36*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $0 = u1(0)
37*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $1 = _0_sum
38*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $2 = _2_prod
39*c8dee2aaSAndroid Build Coastguard Workerstore_return_mask              $3 = RetMask
40*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  i = 0x00000007 (9.809089e-45)
41*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask                $4 = LoopMask
42*c8dee2aaSAndroid Build Coastguard Workerjump                           jump +9 (label 7 at #49)
43*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000008
44*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $6 = i
45*c8dee2aaSAndroid Build Coastguard Workercopy_from_indirect_uniform_unm $5 = Indirect(u4(0) + $6)
46*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               [index_clamped_out_of_bounds].result = Mask($5)
47*c8dee2aaSAndroid Build Coastguard Workermask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
48*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $5 = i
49*c8dee2aaSAndroid Build Coastguard Workeradd_imm_int                    $5 += 0x00000001
50*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               i = Mask($5)
51*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000007
52*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $5 = i
53*c8dee2aaSAndroid Build Coastguard Workercmplt_imm_int                  $5 = lessThan($5, 0x00000008)
54*c8dee2aaSAndroid Build Coastguard Workermerge_loop_mask                LoopMask &= $5
55*c8dee2aaSAndroid Build Coastguard Workerstack_rewind
56*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active     branch_if_any_lanes_active -13 (label 8 at #41)
57*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000006
58*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask                 LoopMask = $4
59*c8dee2aaSAndroid Build Coastguard Workerload_return_mask               RetMask = $3
60*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $3 = [index_clamped_out_of_bounds].result
61*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000005
62*c8dee2aaSAndroid Build Coastguard Workerload_src                       src.rgba = $0..3
63