xref: /aosp_15_r20/external/skia/tests/sksl/folding/MatrixScalarNoOpFolding.skrp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1867 instructions
2
3[immutable slots]
4i0 = 0
5i1 = 0
6i2 = 0
7i3 = 0
8i4 = 0
9i5 = 0
10i6 = 0
11i7 = 0
12i8 = 0
13i9 = 0
14i10 = 0
15i11 = 0
16i12 = 0
17i13 = 0
18i14 = 0
19i15 = 0
20i16 = 0
21i17 = 0
22i18 = 0
23i19 = 0
24i20 = 0
25i21 = 0
26i22 = 0
27i23 = 0
28i24 = 0
29i25 = 0
30i26 = 0
31i27 = 0
32i28 = 0
33i29 = 0x3F800000 (1.0)
34i30 = 0x3F800000 (1.0)
35i31 = 0x3F800000 (1.0)
36i32 = 0x3F800000 (1.0)
37i33 = 0x3F800000 (1.0)
38i34 = 0x3F800000 (1.0)
39i35 = 0x3F800000 (1.0)
40i36 = 0x3F800000 (1.0)
41i37 = 0x3F800000 (1.0)
42i38 = 0x3F800000 (1.0)
43i39 = 0x3F800000 (1.0)
44i40 = 0x3F800000 (1.0)
45i41 = 0x3F800000 (1.0)
46i42 = 0x3F800000 (1.0)
47i43 = 0x3F800000 (1.0)
48i44 = 0x3F800000 (1.0)
49i45 = 0x3F800000 (1.0)
50i46 = 0x3F800000 (1.0)
51i47 = 0x3F800000 (1.0)
52i48 = 0x3F800000 (1.0)
53i49 = 0x3F800000 (1.0)
54i50 = 0x3F800000 (1.0)
55i51 = 0x3F800000 (1.0)
56i52 = 0x3F800000 (1.0)
57i53 = 0x3F800000 (1.0)
58i54 = 0x3F800000 (1.0)
59i55 = 0x3F800000 (1.0)
60i56 = 0x3F800000 (1.0)
61i57 = 0x3F800000 (1.0)
62
63store_src_rg                   coords = src.rg
64init_lane_masks                CondMask = LoopMask = RetMask = true
65store_condition_mask           $51 = CondMask
66store_condition_mask           $82 = CondMask
67store_condition_mask           $98 = CondMask
68store_condition_mask           $150 = CondMask
69store_condition_mask           $181 = CondMask
70branch_if_no_lanes_active      branch_if_no_lanes_active +67 (label 6 at #75)
71store_return_mask              $182 = RetMask
72splat_4_constants              m = 0
73splat_4_constants              mm = 0
74copy_4_uniforms                $183..186 = testMatrix2x2
75copy_4_slots_masked            m = Mask($183..186)
76copy_4_uniforms                $183..186 = testMatrix2x2
77copy_4_slots_masked            m = Mask($183..186)
78store_condition_mask           $183 = CondMask
79copy_4_slots_unmasked          $184..187 = m
80copy_4_uniforms                $188..191 = testMatrix2x2
81cmpne_4_floats                 $184..187 = notEqual($184..187, $188..191)
82bitwise_or_2_ints              $184..185 |= $186..187
83bitwise_or_int                 $184 |= $185
84merge_condition_mask           CondMask = $183 & $184
85copy_constant                  $185 = 0
86copy_slot_masked               [test_no_op_scalar_X_mat2].result = Mask($185)
87mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
88load_condition_mask            CondMask = $183
89copy_4_slots_unmasked          $184..187 = m
90copy_4_uniforms                $188..191 = testMatrix2x2
91cmpne_4_floats                 $184..187 = notEqual($184..187, $188..191)
92bitwise_or_2_ints              $184..185 |= $186..187
93bitwise_or_int                 $184 |= $185
94merge_condition_mask           CondMask = $183 & $184
95copy_constant                  $185 = 0
96copy_slot_masked               [test_no_op_scalar_X_mat2].result = Mask($185)
97mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
98load_condition_mask            CondMask = $183
99copy_4_slots_unmasked          $184..187 = m
100copy_4_uniforms                $188..191 = testMatrix2x2
101cmpne_4_floats                 $184..187 = notEqual($184..187, $188..191)
102bitwise_or_2_ints              $184..185 |= $186..187
103bitwise_or_int                 $184 |= $185
104merge_condition_mask           CondMask = $183 & $184
105copy_constant                  $185 = 0
106copy_slot_masked               [test_no_op_scalar_X_mat2].result = Mask($185)
107mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
108load_condition_mask            CondMask = $183
109copy_4_slots_unmasked          $183..186 = m
110splat_4_constants              $187..190 = 0x80000000 (-0.0)
111bitwise_xor_4_ints             $183..186 ^= $187..190
112copy_4_slots_masked            m = Mask($183..186)
113store_condition_mask           $183 = CondMask
114copy_4_slots_unmasked          $184..187 = m
115copy_4_uniforms                $188..191 = testMatrix2x2
116splat_4_constants              $192..195 = 0x80000000 (-0.0)
117bitwise_xor_4_ints             $188..191 ^= $192..195
118cmpne_4_floats                 $184..187 = notEqual($184..187, $188..191)
119bitwise_or_2_ints              $184..185 |= $186..187
120bitwise_or_int                 $184 |= $185
121merge_condition_mask           CondMask = $183 & $184
122copy_constant                  $185 = 0
123copy_slot_masked               [test_no_op_scalar_X_mat2].result = Mask($185)
124mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
125load_condition_mask            CondMask = $183
126splat_4_constants              $183..186 = 0
127copy_4_slots_masked            mm = Mask($183..186)
128splat_4_constants              $183..186 = 0
129copy_4_slots_masked            mm = Mask($183..186)
130splat_4_constants              $187..190 = 0
131cmpeq_4_floats                 $183..186 = equal($183..186, $187..190)
132bitwise_and_2_ints             $183..184 &= $185..186
133bitwise_and_int                $183 &= $184
134copy_slot_masked               [test_no_op_scalar_X_mat2].result = Mask($183)
135load_return_mask               RetMask = $182
136copy_slot_unmasked             $182 = [test_no_op_scalar_X_mat2].result
137label                          label 0x00000006
138copy_constant                  $151 = 0
139merge_condition_mask           CondMask = $181 & $182
140branch_if_no_lanes_active      branch_if_no_lanes_active +124 (label 5 at #202)
141store_return_mask              $152 = RetMask
142splat_4_constants              m₁(0..3) = 0
143splat_4_constants              m₁(4..7) = 0
144splat_4_constants              m₁(8), mm₁(0..2) = 0
145splat_4_constants              mm₁(3..6) = 0
146splat_2_constants              mm₁(7..8) = 0
147copy_4_uniforms                $153..156 = testMatrix3x3(0..3)
148copy_4_uniforms                $157..160 = testMatrix3x3(4..7)
149copy_uniform                   $161 = testMatrix3x3(8)
150copy_4_slots_masked            m₁(0..3) = Mask($153..156)
151copy_4_slots_masked            m₁(4..7) = Mask($157..160)
152copy_slot_masked               m₁(8) = Mask($161)
153copy_4_uniforms                $153..156 = testMatrix3x3(0..3)
154copy_4_uniforms                $157..160 = testMatrix3x3(4..7)
155copy_uniform                   $161 = testMatrix3x3(8)
156copy_4_slots_masked            m₁(0..3) = Mask($153..156)
157copy_4_slots_masked            m₁(4..7) = Mask($157..160)
158copy_slot_masked               m₁(8) = Mask($161)
159store_condition_mask           $153 = CondMask
160copy_4_slots_unmasked          $154..157 = m₁(0..3)
161copy_4_slots_unmasked          $158..161 = m₁(4..7)
162copy_slot_unmasked             $162 = m₁(8)
163copy_4_uniforms                $163..166 = testMatrix3x3(0..3)
164copy_4_uniforms                $167..170 = testMatrix3x3(4..7)
165copy_uniform                   $171 = testMatrix3x3(8)
166cmpne_n_floats                 $154..162 = notEqual($154..162, $163..171)
167bitwise_or_4_ints              $155..158 |= $159..162
168bitwise_or_2_ints              $155..156 |= $157..158
169bitwise_or_int                 $155 |= $156
170bitwise_or_int                 $154 |= $155
171merge_condition_mask           CondMask = $153 & $154
172copy_constant                  $155 = 0
173copy_slot_masked               [test_no_op_scalar_X_mat3].result = Mask($155)
174mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
175load_condition_mask            CondMask = $153
176copy_4_slots_unmasked          $154..157 = m₁(0..3)
177copy_4_slots_unmasked          $158..161 = m₁(4..7)
178copy_slot_unmasked             $162 = m₁(8)
179copy_4_uniforms                $163..166 = testMatrix3x3(0..3)
180copy_4_uniforms                $167..170 = testMatrix3x3(4..7)
181copy_uniform                   $171 = testMatrix3x3(8)
182cmpne_n_floats                 $154..162 = notEqual($154..162, $163..171)
183bitwise_or_4_ints              $155..158 |= $159..162
184bitwise_or_2_ints              $155..156 |= $157..158
185bitwise_or_int                 $155 |= $156
186bitwise_or_int                 $154 |= $155
187merge_condition_mask           CondMask = $153 & $154
188copy_constant                  $155 = 0
189copy_slot_masked               [test_no_op_scalar_X_mat3].result = Mask($155)
190mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
191load_condition_mask            CondMask = $153
192copy_4_slots_unmasked          $154..157 = m₁(0..3)
193copy_4_slots_unmasked          $158..161 = m₁(4..7)
194copy_slot_unmasked             $162 = m₁(8)
195copy_4_uniforms                $163..166 = testMatrix3x3(0..3)
196copy_4_uniforms                $167..170 = testMatrix3x3(4..7)
197copy_uniform                   $171 = testMatrix3x3(8)
198cmpne_n_floats                 $154..162 = notEqual($154..162, $163..171)
199bitwise_or_4_ints              $155..158 |= $159..162
200bitwise_or_2_ints              $155..156 |= $157..158
201bitwise_or_int                 $155 |= $156
202bitwise_or_int                 $154 |= $155
203merge_condition_mask           CondMask = $153 & $154
204copy_constant                  $155 = 0
205copy_slot_masked               [test_no_op_scalar_X_mat3].result = Mask($155)
206mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
207load_condition_mask            CondMask = $153
208copy_4_slots_unmasked          $153..156 = m₁(0..3)
209copy_4_slots_unmasked          $157..160 = m₁(4..7)
210copy_slot_unmasked             $161 = m₁(8)
211splat_4_constants              $162..165 = 0x80000000 (-0.0)
212splat_4_constants              $166..169 = 0x80000000 (-0.0)
213copy_constant                  $170 = 0x80000000 (-0.0)
214bitwise_xor_n_ints             $153..161 ^= $162..170
215copy_4_slots_masked            m₁(0..3) = Mask($153..156)
216copy_4_slots_masked            m₁(4..7) = Mask($157..160)
217copy_slot_masked               m₁(8) = Mask($161)
218store_condition_mask           $153 = CondMask
219copy_4_slots_unmasked          $154..157 = m₁(0..3)
220copy_4_slots_unmasked          $158..161 = m₁(4..7)
221copy_slot_unmasked             $162 = m₁(8)
222copy_4_uniforms                $163..166 = testMatrix3x3(0..3)
223copy_4_uniforms                $167..170 = testMatrix3x3(4..7)
224copy_uniform                   $171 = testMatrix3x3(8)
225splat_4_constants              $172..175 = 0x80000000 (-0.0)
226splat_4_constants              $176..179 = 0x80000000 (-0.0)
227copy_constant                  $180 = 0x80000000 (-0.0)
228bitwise_xor_n_ints             $163..171 ^= $172..180
229cmpne_n_floats                 $154..162 = notEqual($154..162, $163..171)
230bitwise_or_4_ints              $155..158 |= $159..162
231bitwise_or_2_ints              $155..156 |= $157..158
232bitwise_or_int                 $155 |= $156
233bitwise_or_int                 $154 |= $155
234merge_condition_mask           CondMask = $153 & $154
235copy_constant                  $155 = 0
236copy_slot_masked               [test_no_op_scalar_X_mat3].result = Mask($155)
237mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
238load_condition_mask            CondMask = $153
239splat_4_constants              $153..156 = 0
240splat_4_constants              $157..160 = 0
241copy_constant                  $161 = 0
242copy_4_slots_masked            mm₁(0..3) = Mask($153..156)
243copy_4_slots_masked            mm₁(4..7) = Mask($157..160)
244copy_slot_masked               mm₁(8) = Mask($161)
245splat_4_constants              $153..156 = 0
246splat_4_constants              $157..160 = 0
247copy_constant                  $161 = 0
248copy_4_slots_masked            mm₁(0..3) = Mask($153..156)
249copy_4_slots_masked            mm₁(4..7) = Mask($157..160)
250copy_slot_masked               mm₁(8) = Mask($161)
251splat_4_constants              $162..165 = 0
252splat_4_constants              $166..169 = 0
253copy_constant                  $170 = 0
254cmpeq_n_floats                 $153..161 = equal($153..161, $162..170)
255bitwise_and_4_ints             $154..157 &= $158..161
256bitwise_and_2_ints             $154..155 &= $156..157
257bitwise_and_int                $154 &= $155
258bitwise_and_int                $153 &= $154
259copy_slot_masked               [test_no_op_scalar_X_mat3].result = Mask($153)
260load_return_mask               RetMask = $152
261copy_slot_unmasked             $152 = [test_no_op_scalar_X_mat3].result
262label                          label 0x00000007
263copy_slot_masked               $151 = Mask($152)
264label                          label 0x00000005
265load_condition_mask            CondMask = $181
266copy_constant                  $99 = 0
267merge_condition_mask           CondMask = $150 & $151
268branch_if_no_lanes_active      branch_if_no_lanes_active +157 (label 4 at #363)
269store_return_mask              $100 = RetMask
270copy_4_uniforms                testMatrix4x4(0..3) = testInputs
271copy_4_uniforms                testMatrix4x4(4..7) = testInputs
272copy_4_uniforms                testMatrix4x4(8..11) = testInputs
273copy_4_uniforms                testMatrix4x4(12..15) = testInputs
274splat_4_constants              m₂(0..3) = 0
275splat_4_constants              m₂(4..7) = 0
276splat_4_constants              m₂(8..11) = 0
277splat_4_constants              m₂(12..15) = 0
278splat_4_constants              mm₂(0..3) = 0
279splat_4_constants              mm₂(4..7) = 0
280splat_4_constants              mm₂(8..11) = 0
281splat_4_constants              mm₂(12..15) = 0
282copy_4_slots_unmasked          $101..104 = testMatrix4x4(0..3)
283copy_4_slots_unmasked          $105..108 = testMatrix4x4(4..7)
284copy_4_slots_unmasked          $109..112 = testMatrix4x4(8..11)
285copy_4_slots_unmasked          $113..116 = testMatrix4x4(12..15)
286copy_4_slots_masked            m₂(0..3) = Mask($101..104)
287copy_4_slots_masked            m₂(4..7) = Mask($105..108)
288copy_4_slots_masked            m₂(8..11) = Mask($109..112)
289copy_4_slots_masked            m₂(12..15) = Mask($113..116)
290copy_4_slots_unmasked          $101..104 = testMatrix4x4(0..3)
291copy_4_slots_unmasked          $105..108 = testMatrix4x4(4..7)
292copy_4_slots_unmasked          $109..112 = testMatrix4x4(8..11)
293copy_4_slots_unmasked          $113..116 = testMatrix4x4(12..15)
294copy_4_slots_masked            m₂(0..3) = Mask($101..104)
295copy_4_slots_masked            m₂(4..7) = Mask($105..108)
296copy_4_slots_masked            m₂(8..11) = Mask($109..112)
297copy_4_slots_masked            m₂(12..15) = Mask($113..116)
298store_condition_mask           $101 = CondMask
299copy_4_slots_unmasked          $102..105 = m₂(0..3)
300copy_4_slots_unmasked          $106..109 = m₂(4..7)
301copy_4_slots_unmasked          $110..113 = m₂(8..11)
302copy_4_slots_unmasked          $114..117 = m₂(12..15)
303copy_4_slots_unmasked          $118..121 = testMatrix4x4(0..3)
304copy_4_slots_unmasked          $122..125 = testMatrix4x4(4..7)
305copy_4_slots_unmasked          $126..129 = testMatrix4x4(8..11)
306copy_4_slots_unmasked          $130..133 = testMatrix4x4(12..15)
307cmpne_n_floats                 $102..117 = notEqual($102..117, $118..133)
308bitwise_or_4_ints              $110..113 |= $114..117
309bitwise_or_4_ints              $106..109 |= $110..113
310bitwise_or_4_ints              $102..105 |= $106..109
311bitwise_or_2_ints              $102..103 |= $104..105
312bitwise_or_int                 $102 |= $103
313merge_condition_mask           CondMask = $101 & $102
314copy_constant                  $103 = 0
315copy_slot_masked               [test_no_op_scalar_X_mat4].result = Mask($103)
316mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
317load_condition_mask            CondMask = $101
318copy_4_slots_unmasked          $102..105 = m₂(0..3)
319copy_4_slots_unmasked          $106..109 = m₂(4..7)
320copy_4_slots_unmasked          $110..113 = m₂(8..11)
321copy_4_slots_unmasked          $114..117 = m₂(12..15)
322copy_4_slots_unmasked          $118..121 = testMatrix4x4(0..3)
323copy_4_slots_unmasked          $122..125 = testMatrix4x4(4..7)
324copy_4_slots_unmasked          $126..129 = testMatrix4x4(8..11)
325copy_4_slots_unmasked          $130..133 = testMatrix4x4(12..15)
326cmpne_n_floats                 $102..117 = notEqual($102..117, $118..133)
327bitwise_or_4_ints              $110..113 |= $114..117
328bitwise_or_4_ints              $106..109 |= $110..113
329bitwise_or_4_ints              $102..105 |= $106..109
330bitwise_or_2_ints              $102..103 |= $104..105
331bitwise_or_int                 $102 |= $103
332merge_condition_mask           CondMask = $101 & $102
333copy_constant                  $103 = 0
334copy_slot_masked               [test_no_op_scalar_X_mat4].result = Mask($103)
335mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
336load_condition_mask            CondMask = $101
337copy_4_slots_unmasked          $102..105 = m₂(0..3)
338copy_4_slots_unmasked          $106..109 = m₂(4..7)
339copy_4_slots_unmasked          $110..113 = m₂(8..11)
340copy_4_slots_unmasked          $114..117 = m₂(12..15)
341copy_4_slots_unmasked          $118..121 = testMatrix4x4(0..3)
342copy_4_slots_unmasked          $122..125 = testMatrix4x4(4..7)
343copy_4_slots_unmasked          $126..129 = testMatrix4x4(8..11)
344copy_4_slots_unmasked          $130..133 = testMatrix4x4(12..15)
345cmpne_n_floats                 $102..117 = notEqual($102..117, $118..133)
346bitwise_or_4_ints              $110..113 |= $114..117
347bitwise_or_4_ints              $106..109 |= $110..113
348bitwise_or_4_ints              $102..105 |= $106..109
349bitwise_or_2_ints              $102..103 |= $104..105
350bitwise_or_int                 $102 |= $103
351merge_condition_mask           CondMask = $101 & $102
352copy_constant                  $103 = 0
353copy_slot_masked               [test_no_op_scalar_X_mat4].result = Mask($103)
354mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
355load_condition_mask            CondMask = $101
356copy_4_slots_unmasked          $101..104 = m₂(0..3)
357copy_4_slots_unmasked          $105..108 = m₂(4..7)
358copy_4_slots_unmasked          $109..112 = m₂(8..11)
359copy_4_slots_unmasked          $113..116 = m₂(12..15)
360splat_4_constants              $117..120 = 0x80000000 (-0.0)
361splat_4_constants              $121..124 = 0x80000000 (-0.0)
362splat_4_constants              $125..128 = 0x80000000 (-0.0)
363splat_4_constants              $129..132 = 0x80000000 (-0.0)
364bitwise_xor_n_ints             $101..116 ^= $117..132
365copy_4_slots_masked            m₂(0..3) = Mask($101..104)
366copy_4_slots_masked            m₂(4..7) = Mask($105..108)
367copy_4_slots_masked            m₂(8..11) = Mask($109..112)
368copy_4_slots_masked            m₂(12..15) = Mask($113..116)
369store_condition_mask           $101 = CondMask
370copy_4_slots_unmasked          $102..105 = m₂(0..3)
371copy_4_slots_unmasked          $106..109 = m₂(4..7)
372copy_4_slots_unmasked          $110..113 = m₂(8..11)
373copy_4_slots_unmasked          $114..117 = m₂(12..15)
374copy_4_slots_unmasked          $118..121 = testMatrix4x4(0..3)
375copy_4_slots_unmasked          $122..125 = testMatrix4x4(4..7)
376copy_4_slots_unmasked          $126..129 = testMatrix4x4(8..11)
377copy_4_slots_unmasked          $130..133 = testMatrix4x4(12..15)
378splat_4_constants              $134..137 = 0x80000000 (-0.0)
379splat_4_constants              $138..141 = 0x80000000 (-0.0)
380splat_4_constants              $142..145 = 0x80000000 (-0.0)
381splat_4_constants              $146..149 = 0x80000000 (-0.0)
382bitwise_xor_n_ints             $118..133 ^= $134..149
383cmpne_n_floats                 $102..117 = notEqual($102..117, $118..133)
384bitwise_or_4_ints              $110..113 |= $114..117
385bitwise_or_4_ints              $106..109 |= $110..113
386bitwise_or_4_ints              $102..105 |= $106..109
387bitwise_or_2_ints              $102..103 |= $104..105
388bitwise_or_int                 $102 |= $103
389merge_condition_mask           CondMask = $101 & $102
390copy_constant                  $103 = 0
391copy_slot_masked               [test_no_op_scalar_X_mat4].result = Mask($103)
392mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
393load_condition_mask            CondMask = $101
394splat_4_constants              $101..104 = 0
395splat_4_constants              $105..108 = 0
396splat_4_constants              $109..112 = 0
397splat_4_constants              $113..116 = 0
398copy_4_slots_masked            mm₂(0..3) = Mask($101..104)
399copy_4_slots_masked            mm₂(4..7) = Mask($105..108)
400copy_4_slots_masked            mm₂(8..11) = Mask($109..112)
401copy_4_slots_masked            mm₂(12..15) = Mask($113..116)
402splat_4_constants              $101..104 = 0
403splat_4_constants              $105..108 = 0
404splat_4_constants              $109..112 = 0
405splat_4_constants              $113..116 = 0
406copy_4_slots_masked            mm₂(0..3) = Mask($101..104)
407copy_4_slots_masked            mm₂(4..7) = Mask($105..108)
408copy_4_slots_masked            mm₂(8..11) = Mask($109..112)
409copy_4_slots_masked            mm₂(12..15) = Mask($113..116)
410splat_4_constants              $117..120 = 0
411splat_4_constants              $121..124 = 0
412splat_4_constants              $125..128 = 0
413splat_4_constants              $129..132 = 0
414cmpeq_n_floats                 $101..116 = equal($101..116, $117..132)
415bitwise_and_4_ints             $109..112 &= $113..116
416bitwise_and_4_ints             $105..108 &= $109..112
417bitwise_and_4_ints             $101..104 &= $105..108
418bitwise_and_2_ints             $101..102 &= $103..104
419bitwise_and_int                $101 &= $102
420copy_slot_masked               [test_no_op_scalar_X_mat4].result = Mask($101)
421load_return_mask               RetMask = $100
422copy_slot_unmasked             $100 = [test_no_op_scalar_X_mat4].result
423label                          label 0x00000008
424copy_slot_masked               $99 = Mask($100)
425label                          label 0x00000004
426load_condition_mask            CondMask = $150
427copy_constant                  $83 = 0
428merge_condition_mask           CondMask = $98 & $99
429branch_if_no_lanes_active      branch_if_no_lanes_active +108 (label 3 at #475)
430store_return_mask              $84 = RetMask
431splat_4_constants              m₃ = 0
432splat_4_constants              mm₃ = 0
433copy_uniform                   scalar = testInputs(0)
434copy_constant                  $85 = 0
435copy_slot_unmasked             $86 = scalar
436swizzle_4                      $85..88 = ($85..88).yxxy
437copy_4_slots_masked            m₃ = Mask($85..88)
438copy_constant                  $85 = 0
439copy_slot_unmasked             $86 = scalar
440swizzle_4                      $85..88 = ($85..88).yxxy
441copy_4_slots_masked            m₃ = Mask($85..88)
442store_condition_mask           $85 = CondMask
443copy_4_slots_unmasked          $86..89 = m₃
444copy_constant                  $90 = 0
445copy_slot_unmasked             $91 = scalar
446swizzle_4                      $90..93 = ($90..93).yxxy
447cmpne_4_floats                 $86..89 = notEqual($86..89, $90..93)
448bitwise_or_2_ints              $86..87 |= $88..89
449bitwise_or_int                 $86 |= $87
450merge_condition_mask           CondMask = $85 & $86
451copy_constant                  $87 = 0
452copy_slot_masked               [test_no_op_mat2_X_scalar].result = Mask($87)
453mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
454load_condition_mask            CondMask = $85
455copy_slot_unmasked             $85 = scalar
456swizzle_4                      $85..88 = ($85..88).xxxx
457splat_4_constants              $89..92 = 0x3F800000 (1.0)
458div_4_floats                   $85..88 /= $89..92
459copy_4_slots_masked            m₃ = Mask($85..88)
460store_condition_mask           $85 = CondMask
461copy_4_slots_unmasked          $86..89 = m₃
462copy_slot_unmasked             $90 = scalar
463copy_slot_unmasked             $91 = scalar
464copy_slot_unmasked             $92 = scalar
465copy_slot_unmasked             $93 = scalar
466cmpne_4_floats                 $86..89 = notEqual($86..89, $90..93)
467bitwise_or_2_ints              $86..87 |= $88..89
468bitwise_or_int                 $86 |= $87
469merge_condition_mask           CondMask = $85 & $86
470copy_constant                  $87 = 0
471copy_slot_masked               [test_no_op_mat2_X_scalar].result = Mask($87)
472mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
473load_condition_mask            CondMask = $85
474copy_slot_unmasked             $85 = scalar
475swizzle_4                      $85..88 = ($85..88).xxxx
476splat_4_constants              $89..92 = 0
477add_4_floats                   $85..88 += $89..92
478copy_4_slots_masked            m₃ = Mask($85..88)
479splat_4_constants              $85..88 = 0
480copy_slot_unmasked             $89 = scalar
481swizzle_4                      $89..92 = ($89..92).xxxx
482add_4_floats                   $85..88 += $89..92
483copy_4_slots_masked            m₃ = Mask($85..88)
484store_condition_mask           $85 = CondMask
485copy_4_slots_unmasked          $86..89 = m₃
486copy_slot_unmasked             $90 = scalar
487copy_slot_unmasked             $91 = scalar
488copy_slot_unmasked             $92 = scalar
489copy_slot_unmasked             $93 = scalar
490cmpne_4_floats                 $86..89 = notEqual($86..89, $90..93)
491bitwise_or_2_ints              $86..87 |= $88..89
492bitwise_or_int                 $86 |= $87
493merge_condition_mask           CondMask = $85 & $86
494copy_constant                  $87 = 0
495copy_slot_masked               [test_no_op_mat2_X_scalar].result = Mask($87)
496mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
497load_condition_mask            CondMask = $85
498copy_slot_unmasked             $85 = scalar
499swizzle_4                      $85..88 = ($85..88).xxxx
500splat_4_constants              $89..92 = 0
501sub_4_floats                   $85..88 -= $89..92
502copy_4_slots_masked            m₃ = Mask($85..88)
503splat_4_constants              $85..88 = 0
504copy_slot_unmasked             $89 = scalar
505swizzle_4                      $89..92 = ($89..92).xxxx
506sub_4_floats                   $85..88 -= $89..92
507copy_4_slots_masked            m₃ = Mask($85..88)
508store_condition_mask           $85 = CondMask
509copy_4_slots_unmasked          $86..89 = m₃
510copy_slot_unmasked             $90 = scalar
511copy_slot_unmasked             $91 = scalar
512copy_slot_unmasked             $92 = scalar
513copy_slot_unmasked             $93 = scalar
514splat_4_constants              $94..97 = 0x80000000 (-0.0)
515bitwise_xor_4_ints             $90..93 ^= $94..97
516cmpne_4_floats                 $86..89 = notEqual($86..89, $90..93)
517bitwise_or_2_ints              $86..87 |= $88..89
518bitwise_or_int                 $86 |= $87
519merge_condition_mask           CondMask = $85 & $86
520copy_constant                  $87 = 0
521copy_slot_masked               [test_no_op_mat2_X_scalar].result = Mask($87)
522mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
523load_condition_mask            CondMask = $85
524splat_4_constants              $85..88 = 0
525copy_4_slots_masked            mm₃ = Mask($85..88)
526splat_4_constants              $85..88 = 0
527copy_4_slots_masked            mm₃ = Mask($85..88)
528splat_4_constants              $89..92 = 0
529cmpeq_4_floats                 $85..88 = equal($85..88, $89..92)
530bitwise_and_2_ints             $85..86 &= $87..88
531bitwise_and_int                $85 &= $86
532copy_slot_masked               [test_no_op_mat2_X_scalar].result = Mask($85)
533load_return_mask               RetMask = $84
534copy_slot_unmasked             $84 = [test_no_op_mat2_X_scalar].result
535label                          label 0x00000009
536copy_slot_masked               $83 = Mask($84)
537label                          label 0x00000003
538load_condition_mask            CondMask = $98
539copy_constant                  $52 = 0
540merge_condition_mask           CondMask = $82 & $83
541branch_if_no_lanes_active      branch_if_no_lanes_active +176 (label 2 at #655)
542store_return_mask              $53 = RetMask
543splat_4_constants              m₄(0..3) = 0
544splat_4_constants              m₄(4..7) = 0
545splat_4_constants              m₄(8), mm₄(0..2) = 0
546splat_4_constants              mm₄(3..6) = 0
547splat_2_constants              mm₄(7..8) = 0
548copy_uniform                   scalar₁ = testInputs(0)
549copy_slot_unmasked             $54 = scalar₁
550swizzle_3                      $54..56 = ($54..56).xxx
551copy_3_slots_unmasked          scalar3 = $54..56
552copy_constant                  $54 = 0
553copy_slot_unmasked             $55 = scalar₁
554shuffle                        $54..62 = ($54..62)[1 0 0 0 1 0 0 0 1]
555copy_4_slots_masked            m₄(0..3) = Mask($54..57)
556copy_4_slots_masked            m₄(4..7) = Mask($58..61)
557copy_slot_masked               m₄(8) = Mask($62)
558copy_constant                  $54 = 0
559copy_slot_unmasked             $55 = scalar₁
560shuffle                        $54..62 = ($54..62)[1 0 0 0 1 0 0 0 1]
561copy_4_slots_masked            m₄(0..3) = Mask($54..57)
562copy_4_slots_masked            m₄(4..7) = Mask($58..61)
563copy_slot_masked               m₄(8) = Mask($62)
564stack_rewind
565store_condition_mask           $54 = CondMask
566copy_4_slots_unmasked          $55..58 = m₄(0..3)
567copy_4_slots_unmasked          $59..62 = m₄(4..7)
568copy_slot_unmasked             $63 = m₄(8)
569copy_constant                  $64 = 0
570copy_slot_unmasked             $65 = scalar₁
571shuffle                        $64..72 = ($64..72)[1 0 0 0 1 0 0 0 1]
572cmpne_n_floats                 $55..63 = notEqual($55..63, $64..72)
573bitwise_or_4_ints              $56..59 |= $60..63
574bitwise_or_2_ints              $56..57 |= $58..59
575bitwise_or_int                 $56 |= $57
576bitwise_or_int                 $55 |= $56
577merge_condition_mask           CondMask = $54 & $55
578copy_constant                  $56 = 0
579copy_slot_masked               [test_no_op_mat3_X_scalar].result = Mask($56)
580mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
581load_condition_mask            CondMask = $54
582copy_slot_unmasked             $54 = scalar₁
583swizzle_4                      $54..57 = ($54..57).xxxx
584copy_4_slots_unmasked          $58..61 = $54..57
585copy_slot_unmasked             $62 = $61
586splat_4_constants              $63..66 = 0x3F800000 (1.0)
587splat_4_constants              $67..70 = 0x3F800000 (1.0)
588copy_constant                  $71 = 0x3F800000 (1.0)
589div_n_floats                   $54..62 /= $63..71
590copy_4_slots_masked            m₄(0..3) = Mask($54..57)
591copy_4_slots_masked            m₄(4..7) = Mask($58..61)
592copy_slot_masked               m₄(8) = Mask($62)
593store_condition_mask           $54 = CondMask
594copy_4_slots_unmasked          $55..58 = m₄(0..3)
595copy_4_slots_unmasked          $59..62 = m₄(4..7)
596copy_slot_unmasked             $63 = m₄(8)
597copy_3_slots_unmasked          $64..66 = scalar3
598copy_3_slots_unmasked          $67..69 = scalar3
599copy_3_slots_unmasked          $70..72 = scalar3
600cmpne_n_floats                 $55..63 = notEqual($55..63, $64..72)
601bitwise_or_4_ints              $56..59 |= $60..63
602bitwise_or_2_ints              $56..57 |= $58..59
603bitwise_or_int                 $56 |= $57
604bitwise_or_int                 $55 |= $56
605merge_condition_mask           CondMask = $54 & $55
606copy_constant                  $56 = 0
607copy_slot_masked               [test_no_op_mat3_X_scalar].result = Mask($56)
608mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
609load_condition_mask            CondMask = $54
610copy_slot_unmasked             $54 = scalar₁
611swizzle_4                      $54..57 = ($54..57).xxxx
612copy_4_slots_unmasked          $58..61 = $54..57
613copy_slot_unmasked             $62 = $61
614splat_4_constants              $63..66 = 0
615splat_4_constants              $67..70 = 0
616copy_constant                  $71 = 0
617add_n_floats                   $54..62 += $63..71
618copy_4_slots_masked            m₄(0..3) = Mask($54..57)
619copy_4_slots_masked            m₄(4..7) = Mask($58..61)
620copy_slot_masked               m₄(8) = Mask($62)
621splat_4_constants              $54..57 = 0
622splat_4_constants              $58..61 = 0
623copy_constant                  $62 = 0
624copy_slot_unmasked             $63 = scalar₁
625swizzle_4                      $63..66 = ($63..66).xxxx
626copy_4_slots_unmasked          $67..70 = $63..66
627copy_slot_unmasked             $71 = $70
628add_n_floats                   $54..62 += $63..71
629copy_4_slots_masked            m₄(0..3) = Mask($54..57)
630copy_4_slots_masked            m₄(4..7) = Mask($58..61)
631copy_slot_masked               m₄(8) = Mask($62)
632store_condition_mask           $54 = CondMask
633copy_4_slots_unmasked          $55..58 = m₄(0..3)
634copy_4_slots_unmasked          $59..62 = m₄(4..7)
635copy_slot_unmasked             $63 = m₄(8)
636copy_3_slots_unmasked          $64..66 = scalar3
637copy_3_slots_unmasked          $67..69 = scalar3
638copy_3_slots_unmasked          $70..72 = scalar3
639cmpne_n_floats                 $55..63 = notEqual($55..63, $64..72)
640bitwise_or_4_ints              $56..59 |= $60..63
641bitwise_or_2_ints              $56..57 |= $58..59
642bitwise_or_int                 $56 |= $57
643bitwise_or_int                 $55 |= $56
644merge_condition_mask           CondMask = $54 & $55
645copy_constant                  $56 = 0
646copy_slot_masked               [test_no_op_mat3_X_scalar].result = Mask($56)
647mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
648load_condition_mask            CondMask = $54
649copy_slot_unmasked             $54 = scalar₁
650swizzle_4                      $54..57 = ($54..57).xxxx
651copy_4_slots_unmasked          $58..61 = $54..57
652copy_slot_unmasked             $62 = $61
653splat_4_constants              $63..66 = 0
654splat_4_constants              $67..70 = 0
655copy_constant                  $71 = 0
656sub_n_floats                   $54..62 -= $63..71
657copy_4_slots_masked            m₄(0..3) = Mask($54..57)
658copy_4_slots_masked            m₄(4..7) = Mask($58..61)
659copy_slot_masked               m₄(8) = Mask($62)
660splat_4_constants              $54..57 = 0
661splat_4_constants              $58..61 = 0
662copy_constant                  $62 = 0
663copy_slot_unmasked             $63 = scalar₁
664swizzle_4                      $63..66 = ($63..66).xxxx
665copy_4_slots_unmasked          $67..70 = $63..66
666copy_slot_unmasked             $71 = $70
667sub_n_floats                   $54..62 -= $63..71
668copy_4_slots_masked            m₄(0..3) = Mask($54..57)
669copy_4_slots_masked            m₄(4..7) = Mask($58..61)
670copy_slot_masked               m₄(8) = Mask($62)
671store_condition_mask           $54 = CondMask
672copy_4_slots_unmasked          $55..58 = m₄(0..3)
673copy_4_slots_unmasked          $59..62 = m₄(4..7)
674copy_slot_unmasked             $63 = m₄(8)
675copy_3_slots_unmasked          $64..66 = scalar3
676copy_3_slots_unmasked          $67..69 = scalar3
677copy_3_slots_unmasked          $70..72 = scalar3
678splat_4_constants              $73..76 = 0x80000000 (-0.0)
679splat_4_constants              $77..80 = 0x80000000 (-0.0)
680copy_constant                  $81 = 0x80000000 (-0.0)
681bitwise_xor_n_ints             $64..72 ^= $73..81
682cmpne_n_floats                 $55..63 = notEqual($55..63, $64..72)
683bitwise_or_4_ints              $56..59 |= $60..63
684bitwise_or_2_ints              $56..57 |= $58..59
685bitwise_or_int                 $56 |= $57
686bitwise_or_int                 $55 |= $56
687merge_condition_mask           CondMask = $54 & $55
688copy_constant                  $56 = 0
689copy_slot_masked               [test_no_op_mat3_X_scalar].result = Mask($56)
690mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
691load_condition_mask            CondMask = $54
692splat_4_constants              $54..57 = 0
693splat_4_constants              $58..61 = 0
694copy_constant                  $62 = 0
695copy_4_slots_masked            mm₄(0..3) = Mask($54..57)
696copy_4_slots_masked            mm₄(4..7) = Mask($58..61)
697copy_slot_masked               mm₄(8) = Mask($62)
698splat_4_constants              $54..57 = 0
699splat_4_constants              $58..61 = 0
700copy_constant                  $62 = 0
701copy_4_slots_masked            mm₄(0..3) = Mask($54..57)
702copy_4_slots_masked            mm₄(4..7) = Mask($58..61)
703copy_slot_masked               mm₄(8) = Mask($62)
704splat_4_constants              $63..66 = 0
705splat_4_constants              $67..70 = 0
706copy_constant                  $71 = 0
707cmpeq_n_floats                 $54..62 = equal($54..62, $63..71)
708bitwise_and_4_ints             $55..58 &= $59..62
709bitwise_and_2_ints             $55..56 &= $57..58
710bitwise_and_int                $55 &= $56
711bitwise_and_int                $54 &= $55
712copy_slot_masked               [test_no_op_mat3_X_scalar].result = Mask($54)
713load_return_mask               RetMask = $53
714copy_slot_unmasked             $53 = [test_no_op_mat3_X_scalar].result
715label                          label 0x0000000A
716copy_slot_masked               $52 = Mask($53)
717label                          label 0x00000002
718load_condition_mask            CondMask = $82
719copy_constant                  $0 = 0
720merge_condition_mask           CondMask = $51 & $52
721branch_if_no_lanes_active      branch_if_no_lanes_active +213 (label 1 at #872)
722store_return_mask              $1 = RetMask
723splat_4_constants              m₅(0..3) = 0
724splat_4_constants              m₅(4..7) = 0
725splat_4_constants              m₅(8..11) = 0
726splat_4_constants              m₅(12..15) = 0
727splat_4_constants              mm₅(0..3) = 0
728splat_4_constants              mm₅(4..7) = 0
729splat_4_constants              mm₅(8..11) = 0
730splat_4_constants              mm₅(12..15) = 0
731copy_uniform                   scalar₂ = testInputs(0)
732copy_slot_unmasked             $2 = scalar₂
733swizzle_4                      $2..5 = ($2..5).xxxx
734copy_4_slots_unmasked          scalar4 = $2..5
735copy_constant                  $2 = 0
736copy_slot_unmasked             $3 = scalar₂
737shuffle                        $2..17 = ($2..17)[1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1]
738copy_4_slots_masked            m₅(0..3) = Mask($2..5)
739copy_4_slots_masked            m₅(4..7) = Mask($6..9)
740copy_4_slots_masked            m₅(8..11) = Mask($10..13)
741copy_4_slots_masked            m₅(12..15) = Mask($14..17)
742copy_constant                  $2 = 0
743copy_slot_unmasked             $3 = scalar₂
744shuffle                        $2..17 = ($2..17)[1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1]
745copy_4_slots_masked            m₅(0..3) = Mask($2..5)
746copy_4_slots_masked            m₅(4..7) = Mask($6..9)
747copy_4_slots_masked            m₅(8..11) = Mask($10..13)
748copy_4_slots_masked            m₅(12..15) = Mask($14..17)
749store_condition_mask           $2 = CondMask
750copy_4_slots_unmasked          $3..6 = m₅(0..3)
751copy_4_slots_unmasked          $7..10 = m₅(4..7)
752copy_4_slots_unmasked          $11..14 = m₅(8..11)
753copy_4_slots_unmasked          $15..18 = m₅(12..15)
754copy_constant                  $19 = 0
755copy_slot_unmasked             $20 = scalar₂
756shuffle                        $19..34 = ($19..34)[1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1]
757cmpne_n_floats                 $3..18 = notEqual($3..18, $19..34)
758bitwise_or_4_ints              $11..14 |= $15..18
759bitwise_or_4_ints              $7..10 |= $11..14
760bitwise_or_4_ints              $3..6 |= $7..10
761bitwise_or_2_ints              $3..4 |= $5..6
762bitwise_or_int                 $3 |= $4
763merge_condition_mask           CondMask = $2 & $3
764copy_constant                  $4 = 0
765copy_slot_masked               [test_no_op_mat4_X_scalar].result = Mask($4)
766mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
767load_condition_mask            CondMask = $2
768copy_slot_unmasked             $2 = scalar₂
769swizzle_4                      $2..5 = ($2..5).xxxx
770copy_4_slots_unmasked          $6..9 = $2..5
771copy_4_slots_unmasked          $10..13 = $6..9
772copy_4_slots_unmasked          $14..17 = $10..13
773splat_4_constants              $18..21 = 0x3F800000 (1.0)
774splat_4_constants              $22..25 = 0x3F800000 (1.0)
775splat_4_constants              $26..29 = 0x3F800000 (1.0)
776splat_4_constants              $30..33 = 0x3F800000 (1.0)
777div_n_floats                   $2..17 /= $18..33
778copy_4_slots_masked            m₅(0..3) = Mask($2..5)
779copy_4_slots_masked            m₅(4..7) = Mask($6..9)
780copy_4_slots_masked            m₅(8..11) = Mask($10..13)
781copy_4_slots_masked            m₅(12..15) = Mask($14..17)
782store_condition_mask           $2 = CondMask
783copy_4_slots_unmasked          $3..6 = m₅(0..3)
784copy_4_slots_unmasked          $7..10 = m₅(4..7)
785copy_4_slots_unmasked          $11..14 = m₅(8..11)
786copy_4_slots_unmasked          $15..18 = m₅(12..15)
787copy_4_slots_unmasked          $19..22 = scalar4
788copy_4_slots_unmasked          $23..26 = scalar4
789copy_4_slots_unmasked          $27..30 = scalar4
790copy_4_slots_unmasked          $31..34 = scalar4
791cmpne_n_floats                 $3..18 = notEqual($3..18, $19..34)
792bitwise_or_4_ints              $11..14 |= $15..18
793bitwise_or_4_ints              $7..10 |= $11..14
794bitwise_or_4_ints              $3..6 |= $7..10
795bitwise_or_2_ints              $3..4 |= $5..6
796bitwise_or_int                 $3 |= $4
797merge_condition_mask           CondMask = $2 & $3
798copy_constant                  $4 = 0
799copy_slot_masked               [test_no_op_mat4_X_scalar].result = Mask($4)
800mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
801load_condition_mask            CondMask = $2
802copy_slot_unmasked             $2 = scalar₂
803swizzle_4                      $2..5 = ($2..5).xxxx
804copy_4_slots_unmasked          $6..9 = $2..5
805copy_4_slots_unmasked          $10..13 = $6..9
806copy_4_slots_unmasked          $14..17 = $10..13
807splat_4_constants              $18..21 = 0
808splat_4_constants              $22..25 = 0
809splat_4_constants              $26..29 = 0
810splat_4_constants              $30..33 = 0
811add_n_floats                   $2..17 += $18..33
812copy_4_slots_masked            m₅(0..3) = Mask($2..5)
813copy_4_slots_masked            m₅(4..7) = Mask($6..9)
814copy_4_slots_masked            m₅(8..11) = Mask($10..13)
815copy_4_slots_masked            m₅(12..15) = Mask($14..17)
816splat_4_constants              $2..5 = 0
817splat_4_constants              $6..9 = 0
818splat_4_constants              $10..13 = 0
819splat_4_constants              $14..17 = 0
820copy_slot_unmasked             $18 = scalar₂
821swizzle_4                      $18..21 = ($18..21).xxxx
822copy_4_slots_unmasked          $22..25 = $18..21
823copy_4_slots_unmasked          $26..29 = $22..25
824copy_4_slots_unmasked          $30..33 = $26..29
825add_n_floats                   $2..17 += $18..33
826copy_4_slots_masked            m₅(0..3) = Mask($2..5)
827copy_4_slots_masked            m₅(4..7) = Mask($6..9)
828copy_4_slots_masked            m₅(8..11) = Mask($10..13)
829copy_4_slots_masked            m₅(12..15) = Mask($14..17)
830store_condition_mask           $2 = CondMask
831copy_4_slots_unmasked          $3..6 = m₅(0..3)
832copy_4_slots_unmasked          $7..10 = m₅(4..7)
833copy_4_slots_unmasked          $11..14 = m₅(8..11)
834copy_4_slots_unmasked          $15..18 = m₅(12..15)
835copy_4_slots_unmasked          $19..22 = scalar4
836copy_4_slots_unmasked          $23..26 = scalar4
837copy_4_slots_unmasked          $27..30 = scalar4
838copy_4_slots_unmasked          $31..34 = scalar4
839cmpne_n_floats                 $3..18 = notEqual($3..18, $19..34)
840bitwise_or_4_ints              $11..14 |= $15..18
841bitwise_or_4_ints              $7..10 |= $11..14
842bitwise_or_4_ints              $3..6 |= $7..10
843bitwise_or_2_ints              $3..4 |= $5..6
844bitwise_or_int                 $3 |= $4
845merge_condition_mask           CondMask = $2 & $3
846copy_constant                  $4 = 0
847copy_slot_masked               [test_no_op_mat4_X_scalar].result = Mask($4)
848mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
849load_condition_mask            CondMask = $2
850copy_slot_unmasked             $2 = scalar₂
851swizzle_4                      $2..5 = ($2..5).xxxx
852copy_4_slots_unmasked          $6..9 = $2..5
853copy_4_slots_unmasked          $10..13 = $6..9
854copy_4_slots_unmasked          $14..17 = $10..13
855splat_4_constants              $18..21 = 0
856splat_4_constants              $22..25 = 0
857splat_4_constants              $26..29 = 0
858splat_4_constants              $30..33 = 0
859sub_n_floats                   $2..17 -= $18..33
860copy_4_slots_masked            m₅(0..3) = Mask($2..5)
861copy_4_slots_masked            m₅(4..7) = Mask($6..9)
862copy_4_slots_masked            m₅(8..11) = Mask($10..13)
863copy_4_slots_masked            m₅(12..15) = Mask($14..17)
864splat_4_constants              $2..5 = 0
865splat_4_constants              $6..9 = 0
866splat_4_constants              $10..13 = 0
867splat_4_constants              $14..17 = 0
868copy_slot_unmasked             $18 = scalar₂
869swizzle_4                      $18..21 = ($18..21).xxxx
870copy_4_slots_unmasked          $22..25 = $18..21
871copy_4_slots_unmasked          $26..29 = $22..25
872copy_4_slots_unmasked          $30..33 = $26..29
873sub_n_floats                   $2..17 -= $18..33
874copy_4_slots_masked            m₅(0..3) = Mask($2..5)
875copy_4_slots_masked            m₅(4..7) = Mask($6..9)
876copy_4_slots_masked            m₅(8..11) = Mask($10..13)
877copy_4_slots_masked            m₅(12..15) = Mask($14..17)
878store_condition_mask           $2 = CondMask
879copy_4_slots_unmasked          $3..6 = m₅(0..3)
880copy_4_slots_unmasked          $7..10 = m₅(4..7)
881copy_4_slots_unmasked          $11..14 = m₅(8..11)
882copy_4_slots_unmasked          $15..18 = m₅(12..15)
883copy_4_slots_unmasked          $19..22 = scalar4
884copy_4_slots_unmasked          $23..26 = scalar4
885copy_4_slots_unmasked          $27..30 = scalar4
886copy_4_slots_unmasked          $31..34 = scalar4
887splat_4_constants              $35..38 = 0x80000000 (-0.0)
888splat_4_constants              $39..42 = 0x80000000 (-0.0)
889splat_4_constants              $43..46 = 0x80000000 (-0.0)
890splat_4_constants              $47..50 = 0x80000000 (-0.0)
891bitwise_xor_n_ints             $19..34 ^= $35..50
892cmpne_n_floats                 $3..18 = notEqual($3..18, $19..34)
893bitwise_or_4_ints              $11..14 |= $15..18
894bitwise_or_4_ints              $7..10 |= $11..14
895bitwise_or_4_ints              $3..6 |= $7..10
896bitwise_or_2_ints              $3..4 |= $5..6
897bitwise_or_int                 $3 |= $4
898merge_condition_mask           CondMask = $2 & $3
899copy_constant                  $4 = 0
900copy_slot_masked               [test_no_op_mat4_X_scalar].result = Mask($4)
901mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
902load_condition_mask            CondMask = $2
903splat_4_constants              $2..5 = 0
904splat_4_constants              $6..9 = 0
905splat_4_constants              $10..13 = 0
906splat_4_constants              $14..17 = 0
907copy_4_slots_masked            mm₅(0..3) = Mask($2..5)
908copy_4_slots_masked            mm₅(4..7) = Mask($6..9)
909copy_4_slots_masked            mm₅(8..11) = Mask($10..13)
910copy_4_slots_masked            mm₅(12..15) = Mask($14..17)
911splat_4_constants              $2..5 = 0
912splat_4_constants              $6..9 = 0
913splat_4_constants              $10..13 = 0
914splat_4_constants              $14..17 = 0
915copy_4_slots_masked            mm₅(0..3) = Mask($2..5)
916copy_4_slots_masked            mm₅(4..7) = Mask($6..9)
917copy_4_slots_masked            mm₅(8..11) = Mask($10..13)
918copy_4_slots_masked            mm₅(12..15) = Mask($14..17)
919splat_4_constants              $18..21 = 0
920splat_4_constants              $22..25 = 0
921splat_4_constants              $26..29 = 0
922splat_4_constants              $30..33 = 0
923cmpeq_n_floats                 $2..17 = equal($2..17, $18..33)
924bitwise_and_4_ints             $10..13 &= $14..17
925bitwise_and_4_ints             $6..9 &= $10..13
926bitwise_and_4_ints             $2..5 &= $6..9
927bitwise_and_2_ints             $2..3 &= $4..5
928bitwise_and_int                $2 &= $3
929copy_slot_masked               [test_no_op_mat4_X_scalar].result = Mask($2)
930load_return_mask               RetMask = $1
931copy_slot_unmasked             $1 = [test_no_op_mat4_X_scalar].result
932label                          label 0x0000000B
933copy_slot_masked               $0 = Mask($1)
934label                          label 0x00000001
935load_condition_mask            CondMask = $51
936swizzle_4                      $0..3 = ($0..3).xxxx
937copy_4_uniforms                $4..7 = colorRed
938copy_4_uniforms                $8..11 = colorGreen
939mix_4_ints                     $0..3 = mix($4..7, $8..11, $0..3)
940load_src                       src.rgba = $0..3
941