xref: /aosp_15_r20/external/skia/tests/sksl/runtime/RecursiveComparison_Arrays.skrp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker387 instructions
2*c8dee2aaSAndroid Build Coastguard Worker
3*c8dee2aaSAndroid Build Coastguard Worker[immutable slots]
4*c8dee2aaSAndroid Build Coastguard Workeri0 = 0xFFFFFFFF
5*c8dee2aaSAndroid Build Coastguard Workeri1 = 0
6*c8dee2aaSAndroid Build Coastguard Worker
7*c8dee2aaSAndroid Build Coastguard Workerstore_src_rg                   coords = src.rg
8*c8dee2aaSAndroid Build Coastguard Workerinit_lane_masks                CondMask = LoopMask = RetMask = true
9*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $0 = colorGreen(0)
10*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $1 = colorGreen(2)
11*c8dee2aaSAndroid Build Coastguard Workerdiv_float                      $0 /= $1
12*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             NAN1 = $0
13*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $0 = colorGreen(2)
14*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $1 = colorGreen(0)
15*c8dee2aaSAndroid Build Coastguard Workerdiv_float                      $0 /= $1
16*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             NAN2 = $0
17*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $0 = colorGreen(0)
18*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $1 = colorGreen(2)
19*c8dee2aaSAndroid Build Coastguard Workermul_float                      $0 *= $1
20*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             ZP = $0
21*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $0 = colorGreen(0)
22*c8dee2aaSAndroid Build Coastguard Workerbitwise_xor_imm_int            $0 ^= 0x80000000
23*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $1 = colorGreen(2)
24*c8dee2aaSAndroid Build Coastguard Workermul_float                      $0 *= $1
25*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             ZM = $0
26*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $0 = colorGreen(1)
27*c8dee2aaSAndroid Build Coastguard Workermul_imm_float                  $0 *= 0x42280000 (42.0)
28*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             F42 = $0
29*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $0 = colorGreen(1)
30*c8dee2aaSAndroid Build Coastguard Workermul_imm_float                  $0 *= 0x422C0000 (43.0)
31*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             F43 = $0
32*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $0 = colorGreen(1)
33*c8dee2aaSAndroid Build Coastguard Workermul_imm_float                  $0 *= 0x42300000 (44.0)
34*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             F44 = $0
35*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $0 = colorGreen(0)
36*c8dee2aaSAndroid Build Coastguard Workeradd_imm_float                  $0 += 0x3F800000 (1.0)
37*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             _0_one = $0
38*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              _1_a[0], _1_a[1], _1_a[2] = 0
39*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             _1_a[0] = F42
40*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             _1_a[1] = ZM
41*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             _1_a[2] = ZP
42*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              _2_b[0], _2_b[1], _2_b[2] = 0
43*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $0 = F42
44*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $1 = _0_one
45*c8dee2aaSAndroid Build Coastguard Workermul_float                      $0 *= $1
46*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             _2_b[0] = $0
47*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $0 = ZM
48*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $1 = _0_one
49*c8dee2aaSAndroid Build Coastguard Workermul_float                      $0 *= $1
50*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             _2_b[1] = $0
51*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $0 = ZP
52*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $1 = _0_one
53*c8dee2aaSAndroid Build Coastguard Workermul_float                      $0 *= $1
54*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             _2_b[2] = $0
55*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $12 = CondMask
56*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $21 = CondMask
57*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $30 = CondMask
58*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $39 = CondMask
59*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $48 = CondMask
60*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $57 = CondMask
61*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $66 = CondMask
62*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $74 = CondMask
63*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  $75 = 0xFFFFFFFF
64*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $67..70 = _1_a[0], _1_a[1], _1_a[2], _2_b[0]
65*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $71..72 = _2_b[1], _2_b[2]
66*c8dee2aaSAndroid Build Coastguard Workercmpne_3_floats                 $67..69 = notEqual($67..69, $70..72)
67*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $68 |= $69
68*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $67 |= $68
69*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $74 & $75
70*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +7 (label 8 at #71)
71*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $68..71 = _1_a[0], _1_a[1], _1_a[2], _2_b[0]
72*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $72..73 = _2_b[1], _2_b[2]
73*c8dee2aaSAndroid Build Coastguard Workercmpeq_3_floats                 $68..70 = equal($68..70, $71..73)
74*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $69 &= $70
75*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $68 &= $69
76*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $67 = Mask($68)
77*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000008
78*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $74
79*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  $58 = 0
80*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $66 & $67
81*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +45 (label 7 at #120)
82*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  eq = 0
83*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $59 = colorGreen(0)
84*c8dee2aaSAndroid Build Coastguard Workeradd_imm_float                  $59 += 0x3F800000 (1.0)
85*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             one = $59
86*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              a[0], a[1], a[2] = 0
87*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $59 = F42
88*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[0] = Mask($59)
89*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $59 = ZM
90*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[1] = Mask($59)
91*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $59 = ZP
92*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[2] = Mask($59)
93*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              b[0], b[1], b[2] = 0
94*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $59 = F42
95*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $60 = one
96*c8dee2aaSAndroid Build Coastguard Workermul_float                      $59 *= $60
97*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[0] = Mask($59)
98*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $59 = ZM
99*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $60 = one
100*c8dee2aaSAndroid Build Coastguard Workermul_float                      $59 *= $60
101*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[1] = Mask($59)
102*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $59 = ZP
103*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $60 = one
104*c8dee2aaSAndroid Build Coastguard Workermul_float                      $59 *= $60
105*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[2] = Mask($59)
106*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $74 = CondMask
107*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $75 = eq
108*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $59..62 = a[0], a[1], a[2], b[0]
109*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $63..64 = b[1], b[2]
110*c8dee2aaSAndroid Build Coastguard Workercmpne_3_floats                 $59..61 = notEqual($59..61, $62..64)
111*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $60 |= $61
112*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $59 |= $60
113*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $74 & $75
114*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +7 (label 10 at #115)
115*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $60..63 = a[0], a[1], a[2], b[0]
116*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $64..65 = b[1], b[2]
117*c8dee2aaSAndroid Build Coastguard Workercmpeq_3_floats                 $60..62 = equal($60..62, $63..65)
118*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $61 &= $62
119*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $60 &= $61
120*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $59 = Mask($60)
121*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x0000000A
122*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $74
123*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000009
124*c8dee2aaSAndroid Build Coastguard Workerbitwise_xor_imm_int            $59 ^= 0xFFFFFFFF
125*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $58 = Mask($59)
126*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000007
127*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $66
128*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  $49 = 0
129*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $57 & $58
130*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +44 (label 6 at #168)
131*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  eq = 0
132*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $50 = colorGreen(0)
133*c8dee2aaSAndroid Build Coastguard Workeradd_imm_float                  $50 += 0x3F800000 (1.0)
134*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             one = $50
135*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              a[0], a[1], a[2] = 0
136*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $50 = F42
137*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[0] = Mask($50)
138*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $50 = NAN1
139*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[1] = Mask($50)
140*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $50 = NAN2
141*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[2] = Mask($50)
142*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              b[0], b[1], b[2] = 0
143*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $50 = F42
144*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $51 = one
145*c8dee2aaSAndroid Build Coastguard Workermul_float                      $50 *= $51
146*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[0] = Mask($50)
147*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $50 = NAN1
148*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $51 = one
149*c8dee2aaSAndroid Build Coastguard Workermul_float                      $50 *= $51
150*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[1] = Mask($50)
151*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $50 = NAN2
152*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $51 = one
153*c8dee2aaSAndroid Build Coastguard Workermul_float                      $50 *= $51
154*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[2] = Mask($50)
155*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $66 = CondMask
156*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $67 = eq
157*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $50..53 = a[0], a[1], a[2], b[0]
158*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $54..55 = b[1], b[2]
159*c8dee2aaSAndroid Build Coastguard Workercmpne_3_floats                 $50..52 = notEqual($50..52, $53..55)
160*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $51 |= $52
161*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $50 |= $51
162*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $66 & $67
163*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +7 (label 12 at #164)
164*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $51..54 = a[0], a[1], a[2], b[0]
165*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $55..56 = b[1], b[2]
166*c8dee2aaSAndroid Build Coastguard Workercmpeq_3_floats                 $51..53 = equal($51..53, $54..56)
167*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $52 &= $53
168*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $51 &= $52
169*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $50 = Mask($51)
170*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x0000000C
171*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $66
172*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x0000000B
173*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $49 = Mask($50)
174*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000006
175*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $57
176*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  $40 = 0
177*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $48 & $49
178*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +45 (label 5 at #217)
179*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  eq = 0xFFFFFFFF
180*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $41 = colorGreen(0)
181*c8dee2aaSAndroid Build Coastguard Workeradd_imm_float                  $41 += 0x3F800000 (1.0)
182*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             one = $41
183*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              a[0], a[1], a[2] = 0
184*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $41 = F42
185*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[0] = Mask($41)
186*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $41 = NAN1
187*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[1] = Mask($41)
188*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $41 = NAN2
189*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[2] = Mask($41)
190*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              b[0], b[1], b[2] = 0
191*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $41 = F42
192*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $42 = one
193*c8dee2aaSAndroid Build Coastguard Workermul_float                      $41 *= $42
194*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[0] = Mask($41)
195*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $41 = NAN1
196*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $42 = one
197*c8dee2aaSAndroid Build Coastguard Workermul_float                      $41 *= $42
198*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[1] = Mask($41)
199*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $41 = NAN2
200*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $42 = one
201*c8dee2aaSAndroid Build Coastguard Workermul_float                      $41 *= $42
202*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[2] = Mask($41)
203*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $57 = CondMask
204*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $58 = eq
205*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $41..44 = a[0], a[1], a[2], b[0]
206*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $45..46 = b[1], b[2]
207*c8dee2aaSAndroid Build Coastguard Workercmpne_3_floats                 $41..43 = notEqual($41..43, $44..46)
208*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $42 |= $43
209*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $41 |= $42
210*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $57 & $58
211*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +7 (label 14 at #212)
212*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $42..45 = a[0], a[1], a[2], b[0]
213*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $46..47 = b[1], b[2]
214*c8dee2aaSAndroid Build Coastguard Workercmpeq_3_floats                 $42..44 = equal($42..44, $45..47)
215*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $43 &= $44
216*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $42 &= $43
217*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $41 = Mask($42)
218*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x0000000E
219*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $57
220*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x0000000D
221*c8dee2aaSAndroid Build Coastguard Workerbitwise_xor_imm_int            $41 ^= 0xFFFFFFFF
222*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $40 = Mask($41)
223*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000005
224*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $48
225*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  $31 = 0
226*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $39 & $40
227*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +42 (label 4 at #263)
228*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  eq₁ = 0
229*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $32 = colorGreen(0)
230*c8dee2aaSAndroid Build Coastguard Workeradd_imm_float                  $32 += 0x40000000 (2.0)
231*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             two = $32
232*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              a[0]₁, a[1]₁, a[2]₁ = 0
233*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $32 = F42
234*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[0]₁ = Mask($32)
235*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $32 = F43
236*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[1]₁ = Mask($32)
237*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $32 = F44
238*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[2]₁ = Mask($32)
239*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              b[0]₁, b[1]₁, b[2]₁ = 0
240*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $32 = F42
241*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $33 = two
242*c8dee2aaSAndroid Build Coastguard Workermul_float                      $32 *= $33
243*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[0]₁ = Mask($32)
244*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $32 = F43
245*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $33 = two
246*c8dee2aaSAndroid Build Coastguard Workermul_float                      $32 *= $33
247*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[1]₁ = Mask($32)
248*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $32 = F44
249*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[2]₁ = Mask($32)
250*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $48 = CondMask
251*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $49 = eq₁
252*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $32..35 = a[0]₁, a[1]₁, a[2]₁, b[0]₁
253*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $36..37 = b[1]₁, b[2]₁
254*c8dee2aaSAndroid Build Coastguard Workercmpne_3_floats                 $32..34 = notEqual($32..34, $35..37)
255*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $33 |= $34
256*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $32 |= $33
257*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $48 & $49
258*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +7 (label 16 at #259)
259*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $33..36 = a[0]₁, a[1]₁, a[2]₁, b[0]₁
260*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $37..38 = b[1]₁, b[2]₁
261*c8dee2aaSAndroid Build Coastguard Workercmpeq_3_floats                 $33..35 = equal($33..35, $36..38)
262*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $34 &= $35
263*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $33 &= $34
264*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $32 = Mask($33)
265*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000010
266*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $48
267*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x0000000F
268*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $31 = Mask($32)
269*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000004
270*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $39
271*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  $22 = 0
272*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $30 & $31
273*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +43 (label 3 at #310)
274*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  eq₁ = 0xFFFFFFFF
275*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $23 = colorGreen(0)
276*c8dee2aaSAndroid Build Coastguard Workeradd_imm_float                  $23 += 0x40000000 (2.0)
277*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             two = $23
278*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              a[0]₁, a[1]₁, a[2]₁ = 0
279*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $23 = F42
280*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[0]₁ = Mask($23)
281*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $23 = F43
282*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[1]₁ = Mask($23)
283*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $23 = F44
284*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[2]₁ = Mask($23)
285*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              b[0]₁, b[1]₁, b[2]₁ = 0
286*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $23 = F42
287*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $24 = two
288*c8dee2aaSAndroid Build Coastguard Workermul_float                      $23 *= $24
289*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[0]₁ = Mask($23)
290*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $23 = F43
291*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $24 = two
292*c8dee2aaSAndroid Build Coastguard Workermul_float                      $23 *= $24
293*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[1]₁ = Mask($23)
294*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $23 = F44
295*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[2]₁ = Mask($23)
296*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $39 = CondMask
297*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $40 = eq₁
298*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $23..26 = a[0]₁, a[1]₁, a[2]₁, b[0]₁
299*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $27..28 = b[1]₁, b[2]₁
300*c8dee2aaSAndroid Build Coastguard Workercmpne_3_floats                 $23..25 = notEqual($23..25, $26..28)
301*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $24 |= $25
302*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $23 |= $24
303*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $39 & $40
304*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +7 (label 18 at #305)
305*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $24..27 = a[0]₁, a[1]₁, a[2]₁, b[0]₁
306*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $28..29 = b[1]₁, b[2]₁
307*c8dee2aaSAndroid Build Coastguard Workercmpeq_3_floats                 $24..26 = equal($24..26, $27..29)
308*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $25 &= $26
309*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $24 &= $25
310*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $23 = Mask($24)
311*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000012
312*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $39
313*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000011
314*c8dee2aaSAndroid Build Coastguard Workerbitwise_xor_imm_int            $23 ^= 0xFFFFFFFF
315*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $22 = Mask($23)
316*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000003
317*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $30
318*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  $13 = 0
319*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $21 & $22
320*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +42 (label 2 at #356)
321*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  eq₁ = 0
322*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $14 = colorGreen(0)
323*c8dee2aaSAndroid Build Coastguard Workeradd_imm_float                  $14 += 0x40000000 (2.0)
324*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             two = $14
325*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              a[0]₁, a[1]₁, a[2]₁ = 0
326*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $14 = NAN1
327*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[0]₁ = Mask($14)
328*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $14 = ZM
329*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[1]₁ = Mask($14)
330*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $14 = ZP
331*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[2]₁ = Mask($14)
332*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              b[0]₁, b[1]₁, b[2]₁ = 0
333*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $14 = NAN1
334*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $15 = two
335*c8dee2aaSAndroid Build Coastguard Workermul_float                      $14 *= $15
336*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[0]₁ = Mask($14)
337*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $14 = ZM
338*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $15 = two
339*c8dee2aaSAndroid Build Coastguard Workermul_float                      $14 *= $15
340*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[1]₁ = Mask($14)
341*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $14 = ZP
342*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[2]₁ = Mask($14)
343*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $30 = CondMask
344*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $31 = eq₁
345*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $14..17 = a[0]₁, a[1]₁, a[2]₁, b[0]₁
346*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $18..19 = b[1]₁, b[2]₁
347*c8dee2aaSAndroid Build Coastguard Workercmpne_3_floats                 $14..16 = notEqual($14..16, $17..19)
348*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $15 |= $16
349*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $14 |= $15
350*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $30 & $31
351*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +7 (label 20 at #352)
352*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $15..18 = a[0]₁, a[1]₁, a[2]₁, b[0]₁
353*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $19..20 = b[1]₁, b[2]₁
354*c8dee2aaSAndroid Build Coastguard Workercmpeq_3_floats                 $15..17 = equal($15..17, $18..20)
355*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $16 &= $17
356*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $15 &= $16
357*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $14 = Mask($15)
358*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000014
359*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $30
360*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000013
361*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $13 = Mask($14)
362*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000002
363*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $21
364*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  $0 = 0
365*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $12 & $13
366*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +43 (label 1 at #403)
367*c8dee2aaSAndroid Build Coastguard Workercopy_constant                  eq₁ = 0xFFFFFFFF
368*c8dee2aaSAndroid Build Coastguard Workercopy_uniform                   $1 = colorGreen(0)
369*c8dee2aaSAndroid Build Coastguard Workeradd_imm_float                  $1 += 0x40000000 (2.0)
370*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             two = $1
371*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              a[0]₁, a[1]₁, a[2]₁ = 0
372*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $1 = NAN1
373*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[0]₁ = Mask($1)
374*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $1 = ZM
375*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[1]₁ = Mask($1)
376*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $1 = ZP
377*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               a[2]₁ = Mask($1)
378*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants              b[0]₁, b[1]₁, b[2]₁ = 0
379*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $1 = NAN1
380*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $2 = two
381*c8dee2aaSAndroid Build Coastguard Workermul_float                      $1 *= $2
382*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[0]₁ = Mask($1)
383*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $1 = ZM
384*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $2 = two
385*c8dee2aaSAndroid Build Coastguard Workermul_float                      $1 *= $2
386*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[1]₁ = Mask($1)
387*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $1 = ZP
388*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               b[2]₁ = Mask($1)
389*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask           $21 = CondMask
390*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked             $22 = eq₁
391*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $1..4 = a[0]₁, a[1]₁, a[2]₁, b[0]₁
392*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $5..6 = b[1]₁, b[2]₁
393*c8dee2aaSAndroid Build Coastguard Workercmpne_3_floats                 $1..3 = notEqual($1..3, $4..6)
394*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $2 |= $3
395*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int                 $1 |= $2
396*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask           CondMask = $21 & $22
397*c8dee2aaSAndroid Build Coastguard Workerbranch_if_no_lanes_active      branch_if_no_lanes_active +7 (label 22 at #398)
398*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked          $2..5 = a[0]₁, a[1]₁, a[2]₁, b[0]₁
399*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked          $6..7 = b[1]₁, b[2]₁
400*c8dee2aaSAndroid Build Coastguard Workercmpeq_3_floats                 $2..4 = equal($2..4, $5..7)
401*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $3 &= $4
402*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int                $2 &= $3
403*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $1 = Mask($2)
404*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000016
405*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $21
406*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000015
407*c8dee2aaSAndroid Build Coastguard Workerbitwise_xor_imm_int            $1 ^= 0xFFFFFFFF
408*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked               $0 = Mask($1)
409*c8dee2aaSAndroid Build Coastguard Workerlabel                          label 0x00000001
410*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask            CondMask = $12
411*c8dee2aaSAndroid Build Coastguard Workerswizzle_4                      $0..3 = ($0..3).xxxx
412*c8dee2aaSAndroid Build Coastguard Workercopy_4_uniforms                $4..7 = colorRed
413*c8dee2aaSAndroid Build Coastguard Workercopy_4_uniforms                $8..11 = colorGreen
414*c8dee2aaSAndroid Build Coastguard Workermix_4_ints                     $0..3 = mix($4..7, $8..11, $0..3)
415*c8dee2aaSAndroid Build Coastguard Workerload_src                       src.rgba = $0..3
416