xref: /aosp_15_r20/external/skia/tests/sksl/shared/SwizzleOpt.skrp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1179 instructions
2
3[immutable slots]
4i0 = 0x3F800000 (1.0)
5i1 = 0x3F800000 (1.0)
6i2 = 0x40000000 (2.0)
7i3 = 0x40400000 (3.0)
8
9store_src_rg                   coords = src.rg
10init_lane_masks                CondMask = LoopMask = RetMask = true
11copy_4_uniforms                v = testInputs
12copy_constant                  $0 = 0
13copy_4_slots_unmasked          $1..4 = v
14swizzle_3                      $1..3 = ($1..3).zyx
15copy_4_slots_unmasked          v = $0..3
16splat_2_constants              $0..1 = 0
17copy_4_slots_unmasked          $2..5 = v
18copy_slot_unmasked             $3 = $5
19copy_4_slots_unmasked          v = $0..3
20splat_2_constants              $0..1 = 0x3F800000 (1.0)
21copy_4_slots_unmasked          $2..5 = v
22swizzle_2                      $2..3 = ($2..5).wx
23copy_4_slots_unmasked          v = $0..3
24swizzle_2                      $0..1 = ($0..2).zy
25splat_2_constants              v(2..3) = 0x3F800000 (1.0)
26copy_2_slots_unmasked          v(0..1) = $0..1
27copy_4_slots_unmasked          $0..3 = v
28swizzle_2                      $0..1 = ($0..1).xx
29splat_2_constants              v(2..3) = 0x3F800000 (1.0)
30copy_2_slots_unmasked          v(0..1) = $0..1
31copy_4_slots_unmasked          $0..3 = v
32swizzle_4                      $0..3 = ($0..3).wzwz
33copy_4_slots_unmasked          v = $0..3
34store_return_mask              $0 = RetMask
35copy_constant                  x = 0x00000001 (1.401298e-45)
36store_loop_mask                $1 = LoopMask
37jump                           jump +8 (label 2 at #37)
38label                          label 0x00000003
39copy_slot_unmasked             $2 = v(0)
40copy_slot_masked               [fn].result = Mask($2)
41mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
42copy_slot_unmasked             $2 = x
43add_imm_int                    $2 += 0x00000001
44copy_slot_masked               x = Mask($2)
45label                          label 0x00000002
46copy_slot_unmasked             $2 = x
47cmple_imm_int                  $2 = lessThanEqual($2, 0x00000002)
48merge_loop_mask                LoopMask &= $2
49stack_rewind
50branch_if_any_lanes_active     branch_if_any_lanes_active -12 (label 3 at #30)
51label                          label 0x00000001
52load_loop_mask                 LoopMask = $1
53load_return_mask               RetMask = $0
54copy_slot_unmasked             $0 = [fn].result
55label                          label 0
56copy_constant                  $1 = 0x42F60000 (123.0)
57copy_constant                  $2 = 0x43E40000 (456.0)
58swizzle_4                      $0..3 = ($0..3).yyzz
59copy_4_slots_unmasked          v = $0..3
60store_return_mask              $0 = RetMask
61copy_constant                  x = 0x00000001 (1.401298e-45)
62store_loop_mask                $1 = LoopMask
63jump                           jump +8 (label 6 at #63)
64label                          label 0x00000007
65copy_slot_unmasked             $2 = v(0)
66copy_slot_masked               [fn].result = Mask($2)
67mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
68copy_slot_unmasked             $2 = x
69add_imm_int                    $2 += 0x00000001
70copy_slot_masked               x = Mask($2)
71label                          label 0x00000006
72copy_slot_unmasked             $2 = x
73cmple_imm_int                  $2 = lessThanEqual($2, 0x00000002)
74merge_loop_mask                LoopMask &= $2
75stack_rewind
76branch_if_any_lanes_active     branch_if_any_lanes_active -12 (label 7 at #56)
77label                          label 0x00000005
78load_loop_mask                 LoopMask = $1
79load_return_mask               RetMask = $0
80copy_slot_unmasked             $0 = [fn].result
81label                          label 0x00000004
82copy_constant                  $1 = 0x42F60000 (123.0)
83copy_constant                  $2 = 0x43E40000 (456.0)
84swizzle_4                      $0..3 = ($0..3).yyzz
85copy_4_slots_unmasked          v = $0..3
86copy_constant                  $0 = 0x42F60000 (123.0)
87splat_2_constants              $1..2 = 0x43E40000 (456.0)
88store_return_mask              $3 = RetMask
89copy_constant                  x = 0x00000001 (1.401298e-45)
90store_loop_mask                $4 = LoopMask
91jump                           jump +8 (label 10 at #91)
92label                          label 0x0000000B
93copy_slot_unmasked             $5 = v(0)
94copy_slot_masked               [fn].result = Mask($5)
95mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
96copy_slot_unmasked             $5 = x
97add_imm_int                    $5 += 0x00000001
98copy_slot_masked               x = Mask($5)
99label                          label 0x0000000A
100copy_slot_unmasked             $5 = x
101cmple_imm_int                  $5 = lessThanEqual($5, 0x00000002)
102merge_loop_mask                LoopMask &= $5
103stack_rewind
104branch_if_any_lanes_active     branch_if_any_lanes_active -12 (label 11 at #84)
105label                          label 0x00000009
106load_loop_mask                 LoopMask = $4
107load_return_mask               RetMask = $3
108copy_slot_unmasked             $3 = [fn].result
109label                          label 0x00000008
110copy_4_slots_unmasked          v = $0..3
111copy_constant                  $0 = 0x42F60000 (123.0)
112splat_2_constants              $1..2 = 0x43E40000 (456.0)
113store_return_mask              $3 = RetMask
114copy_constant                  x = 0x00000001 (1.401298e-45)
115store_loop_mask                $4 = LoopMask
116jump                           jump +8 (label 14 at #116)
117label                          label 0x0000000F
118copy_slot_unmasked             $5 = v(0)
119copy_slot_masked               [fn].result = Mask($5)
120mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
121copy_slot_unmasked             $5 = x
122add_imm_int                    $5 += 0x00000001
123copy_slot_masked               x = Mask($5)
124label                          label 0x0000000E
125copy_slot_unmasked             $5 = x
126cmple_imm_int                  $5 = lessThanEqual($5, 0x00000002)
127merge_loop_mask                LoopMask &= $5
128stack_rewind
129branch_if_any_lanes_active     branch_if_any_lanes_active -12 (label 15 at #109)
130label                          label 0x0000000D
131load_loop_mask                 LoopMask = $4
132load_return_mask               RetMask = $3
133copy_slot_unmasked             $3 = [fn].result
134label                          label 0x0000000C
135copy_4_slots_unmasked          v = $0..3
136store_return_mask              $0 = RetMask
137copy_constant                  x = 0x00000001 (1.401298e-45)
138store_loop_mask                $1 = LoopMask
139jump                           jump +8 (label 18 at #139)
140label                          label 0x00000013
141copy_slot_unmasked             $2 = v(0)
142copy_slot_masked               [fn].result = Mask($2)
143mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
144copy_slot_unmasked             $2 = x
145add_imm_int                    $2 += 0x00000001
146copy_slot_masked               x = Mask($2)
147label                          label 0x00000012
148copy_slot_unmasked             $2 = x
149cmple_imm_int                  $2 = lessThanEqual($2, 0x00000002)
150merge_loop_mask                LoopMask &= $2
151stack_rewind
152branch_if_any_lanes_active     branch_if_any_lanes_active -12 (label 19 at #132)
153label                          label 0x00000011
154load_loop_mask                 LoopMask = $1
155load_return_mask               RetMask = $0
156copy_slot_unmasked             $0 = [fn].result
157label                          label 0x00000010
158copy_constant                  $1 = 0x42F60000 (123.0)
159copy_constant                  $2 = 0x43E40000 (456.0)
160swizzle_4                      $0..3 = ($0..3).yxxz
161copy_4_slots_unmasked          v = $0..3
162store_return_mask              $0 = RetMask
163copy_constant                  x = 0x00000001 (1.401298e-45)
164store_loop_mask                $1 = LoopMask
165jump                           jump +8 (label 22 at #165)
166label                          label 0x00000017
167copy_slot_unmasked             $2 = v(0)
168copy_slot_masked               [fn].result = Mask($2)
169mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
170copy_slot_unmasked             $2 = x
171add_imm_int                    $2 += 0x00000001
172copy_slot_masked               x = Mask($2)
173label                          label 0x00000016
174copy_slot_unmasked             $2 = x
175cmple_imm_int                  $2 = lessThanEqual($2, 0x00000002)
176merge_loop_mask                LoopMask &= $2
177stack_rewind
178branch_if_any_lanes_active     branch_if_any_lanes_active -12 (label 23 at #158)
179label                          label 0x00000015
180load_loop_mask                 LoopMask = $1
181load_return_mask               RetMask = $0
182copy_slot_unmasked             $0 = [fn].result
183label                          label 0x00000014
184copy_constant                  $1 = 0x42F60000 (123.0)
185copy_constant                  $2 = 0x43E40000 (456.0)
186swizzle_4                      $0..3 = ($0..3).yxxz
187copy_4_slots_unmasked          v = $0..3
188copy_4_immutables_unmasked     v = i0..3 [0x3F800000 (1.0), 0x3F800000 (1.0), 0x40000000 (2.0), 0x40400000 (3.0)]
189copy_3_uniforms                v(0..2) = colorRed(0..2)
190copy_constant                  v(3) = 0x3F800000 (1.0)
191copy_uniform                   v(0) = colorRed(0)
192copy_constant                  v(1) = 0x3F800000 (1.0)
193copy_2_uniforms                v(2..3) = colorRed(1..2)
194copy_4_slots_unmasked          $0..3 = v
195swizzle_copy_4_slots_masked    (v).wzyx = Mask($0..3)
196copy_2_slots_unmasked          $0..1 = v(1..2)
197swizzle_copy_2_slots_masked    (v).xw = Mask($0..1)
198copy_4_slots_unmasked          $0..3 = v
199swizzle_2                      $0..1 = ($0..3).ww
200copy_constant                  $2 = 0x3F800000 (1.0)
201swizzle_copy_3_slots_masked    (v(0..2)).zyx = Mask($0..2)
202copy_4_slots_unmasked          $0..3 = v
203splat_4_constants              $4..7 = 0x3F800000 (1.0)
204cmpeq_4_floats                 $0..3 = equal($0..3, $4..7)
205bitwise_and_2_ints             $0..1 &= $2..3
206bitwise_and_int                $0 &= $1
207swizzle_4                      $0..3 = ($0..3).xxxx
208copy_4_uniforms                $4..7 = colorRed
209copy_4_uniforms                $8..11 = colorGreen
210mix_4_ints                     $0..3 = mix($4..7, $8..11, $0..3)
211load_src                       src.rgba = $0..3
212