xref: /aosp_15_r20/external/skia/tests/sksl/folding/MatrixVectorNoOpFolding.skrp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1447 instructions
2
3[immutable slots]
4i0 = 0xBF800000 (-1.0)
5i1 = 0xBF800000 (-1.0)
6i2 = 0x3F800000 (1.0)
7i3 = 0x3F800000 (1.0)
8i4 = 0
9i5 = 0
10i6 = 0x40400000 (3.0)
11i7 = 0x40E00000 (7.0)
12i8 = 0x40800000 (4.0)
13i9 = 0x40C00000 (6.0)
14i10 = 0xC0400000 (-3.0)
15i11 = 0xC0E00000 (-7.0)
16i12 = 0xC0800000 (-4.0)
17i13 = 0xC0C00000 (-6.0)
18i14 = 0xBF800000 (-1.0)
19i15 = 0xBF800000 (-1.0)
20i16 = 0xBF800000 (-1.0)
21i17 = 0x3F800000 (1.0)
22i18 = 0x3F800000 (1.0)
23i19 = 0x3F800000 (1.0)
24i20 = 0
25i21 = 0
26i22 = 0
27i23 = 0x40C00000 (6.0)
28i24 = 0x41700000 (15.0)
29i25 = 0x41C00000 (24.0)
30i26 = 0x41400000 (12.0)
31i27 = 0x41700000 (15.0)
32i28 = 0x41900000 (18.0)
33i29 = 0xC0C00000 (-6.0)
34i30 = 0xC1700000 (-15.0)
35i31 = 0xC1C00000 (-24.0)
36i32 = 0xC1400000 (-12.0)
37i33 = 0xC1700000 (-15.0)
38i34 = 0xC1900000 (-18.0)
39i35 = 0xBF800000 (-1.0)
40i36 = 0xBF800000 (-1.0)
41i37 = 0xBF800000 (-1.0)
42i38 = 0xBF800000 (-1.0)
43i39 = 0x3F800000 (1.0)
44i40 = 0x3F800000 (1.0)
45i41 = 0x3F800000 (1.0)
46i42 = 0x3F800000 (1.0)
47i43 = 0
48i44 = 0
49i45 = 0
50i46 = 0
51i47 = 0x40800000 (4.0)
52i48 = 0x41000000 (8.0)
53i49 = 0x41400000 (12.0)
54i50 = 0x41800000 (16.0)
55i51 = 0xC0800000 (-4.0)
56i52 = 0xC1000000 (-8.0)
57i53 = 0xC1400000 (-12.0)
58i54 = 0xC1800000 (-16.0)
59
60store_src_rg                   coords = src.rg
61init_lane_masks                CondMask = LoopMask = RetMask = true
62store_condition_mask           $26 = CondMask
63store_condition_mask           $44 = CondMask
64store_condition_mask           $55 = CondMask
65store_condition_mask           $71 = CondMask
66store_condition_mask           $84 = CondMask
67branch_if_no_lanes_active      branch_if_no_lanes_active +56 (label 6 at #64)
68store_return_mask              $85 = RetMask
69splat_4_constants              v, vv = 0
70copy_2_uniforms                $86..87 = testInputs(0..1)
71copy_2_slots_masked            v = Mask($86..87)
72copy_2_uniforms                $86..87 = testInputs(0..1)
73copy_2_slots_masked            v = Mask($86..87)
74store_condition_mask           $86 = CondMask
75copy_2_slots_unmasked          $87..88 = v
76copy_2_uniforms                $89..90 = testInputs(0..1)
77cmpne_2_floats                 $87..88 = notEqual($87..88, $89..90)
78bitwise_or_int                 $87 |= $88
79merge_condition_mask           CondMask = $86 & $87
80copy_constant                  $88 = 0
81copy_slot_masked               [test_no_op_mat2_X_vec2].result = Mask($88)
82mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
83load_condition_mask            CondMask = $86
84copy_2_slots_unmasked          $87..88 = v
85copy_2_uniforms                $89..90 = testInputs(0..1)
86cmpne_2_floats                 $87..88 = notEqual($87..88, $89..90)
87bitwise_or_int                 $87 |= $88
88merge_condition_mask           CondMask = $86 & $87
89copy_constant                  $88 = 0
90copy_slot_masked               [test_no_op_mat2_X_vec2].result = Mask($88)
91mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
92load_condition_mask            CondMask = $86
93copy_2_uniforms                $86..87 = testInputs(0..1)
94bitwise_xor_imm_int            $86 ^= 0x80000000
95bitwise_xor_imm_int            $87 ^= 0x80000000
96copy_2_slots_masked            v = Mask($86..87)
97copy_2_uniforms                $86..87 = testInputs(0..1)
98bitwise_xor_imm_int            $86 ^= 0x80000000
99bitwise_xor_imm_int            $87 ^= 0x80000000
100copy_2_slots_masked            v = Mask($86..87)
101store_condition_mask           $86 = CondMask
102copy_2_slots_unmasked          $87..88 = v
103copy_2_uniforms                $89..90 = testInputs(0..1)
104bitwise_xor_imm_int            $89 ^= 0x80000000
105bitwise_xor_imm_int            $90 ^= 0x80000000
106cmpne_2_floats                 $87..88 = notEqual($87..88, $89..90)
107bitwise_or_int                 $87 |= $88
108merge_condition_mask           CondMask = $86 & $87
109copy_constant                  $88 = 0
110copy_slot_masked               [test_no_op_mat2_X_vec2].result = Mask($88)
111mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
112load_condition_mask            CondMask = $86
113splat_2_constants              $86..87 = 0
114copy_2_slots_masked            vv = Mask($86..87)
115splat_2_constants              $86..87 = 0
116copy_2_slots_masked            vv = Mask($86..87)
117cmpeq_imm_float                $86 = equal($86, 0)
118cmpeq_imm_float                $87 = equal($87, 0)
119bitwise_and_int                $86 &= $87
120copy_slot_masked               [test_no_op_mat2_X_vec2].result = Mask($86)
121load_return_mask               RetMask = $85
122copy_slot_unmasked             $85 = [test_no_op_mat2_X_vec2].result
123label                          label 0x00000006
124copy_constant                  $72 = 0
125merge_condition_mask           CondMask = $84 & $85
126branch_if_no_lanes_active      branch_if_no_lanes_active +63 (label 5 at #130)
127store_return_mask              $73 = RetMask
128splat_4_constants              v₁, vv₁(0) = 0
129splat_2_constants              vv₁(1..2) = 0
130copy_3_uniforms                $74..76 = testInputs(0..2)
131copy_3_slots_masked            v₁ = Mask($74..76)
132copy_3_uniforms                $74..76 = testInputs(0..2)
133copy_3_slots_masked            v₁ = Mask($74..76)
134store_condition_mask           $74 = CondMask
135copy_3_slots_unmasked          $75..77 = v₁
136copy_3_uniforms                $78..80 = testInputs(0..2)
137cmpne_3_floats                 $75..77 = notEqual($75..77, $78..80)
138bitwise_or_int                 $76 |= $77
139bitwise_or_int                 $75 |= $76
140merge_condition_mask           CondMask = $74 & $75
141copy_constant                  $76 = 0
142copy_slot_masked               [test_no_op_mat3_X_vec3].result = Mask($76)
143mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
144load_condition_mask            CondMask = $74
145copy_3_slots_unmasked          $75..77 = v₁
146copy_3_uniforms                $78..80 = testInputs(0..2)
147cmpne_3_floats                 $75..77 = notEqual($75..77, $78..80)
148bitwise_or_int                 $76 |= $77
149bitwise_or_int                 $75 |= $76
150merge_condition_mask           CondMask = $74 & $75
151copy_constant                  $76 = 0
152copy_slot_masked               [test_no_op_mat3_X_vec3].result = Mask($76)
153mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
154load_condition_mask            CondMask = $74
155copy_3_uniforms                $74..76 = testInputs(0..2)
156splat_3_constants              $77..79 = 0x80000000 (-0.0)
157bitwise_xor_3_ints             $74..76 ^= $77..79
158copy_3_slots_masked            v₁ = Mask($74..76)
159copy_3_uniforms                $74..76 = testInputs(0..2)
160splat_3_constants              $77..79 = 0x80000000 (-0.0)
161bitwise_xor_3_ints             $74..76 ^= $77..79
162copy_3_slots_masked            v₁ = Mask($74..76)
163store_condition_mask           $74 = CondMask
164copy_3_slots_unmasked          $75..77 = v₁
165copy_3_uniforms                $78..80 = testInputs(0..2)
166splat_3_constants              $81..83 = 0x80000000 (-0.0)
167bitwise_xor_3_ints             $78..80 ^= $81..83
168cmpne_3_floats                 $75..77 = notEqual($75..77, $78..80)
169bitwise_or_int                 $76 |= $77
170bitwise_or_int                 $75 |= $76
171merge_condition_mask           CondMask = $74 & $75
172copy_constant                  $76 = 0
173copy_slot_masked               [test_no_op_mat3_X_vec3].result = Mask($76)
174mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
175load_condition_mask            CondMask = $74
176splat_3_constants              $74..76 = 0
177copy_3_slots_masked            vv₁ = Mask($74..76)
178splat_3_constants              $74..76 = 0
179copy_3_slots_masked            vv₁ = Mask($74..76)
180splat_3_constants              $77..79 = 0
181cmpeq_3_floats                 $74..76 = equal($74..76, $77..79)
182bitwise_and_int                $75 &= $76
183bitwise_and_int                $74 &= $75
184copy_slot_masked               [test_no_op_mat3_X_vec3].result = Mask($74)
185load_return_mask               RetMask = $73
186copy_slot_unmasked             $73 = [test_no_op_mat3_X_vec3].result
187label                          label 0x00000007
188copy_slot_masked               $72 = Mask($73)
189label                          label 0x00000005
190load_condition_mask            CondMask = $84
191copy_constant                  $56 = 0
192merge_condition_mask           CondMask = $71 & $72
193branch_if_no_lanes_active      branch_if_no_lanes_active +63 (label 4 at #197)
194store_return_mask              $57 = RetMask
195splat_4_constants              v₂ = 0
196splat_4_constants              vv₂ = 0
197copy_4_uniforms                $58..61 = testInputs
198copy_4_slots_masked            v₂ = Mask($58..61)
199copy_4_uniforms                $58..61 = testInputs
200copy_4_slots_masked            v₂ = Mask($58..61)
201store_condition_mask           $58 = CondMask
202copy_4_slots_unmasked          $59..62 = v₂
203copy_4_uniforms                $63..66 = testInputs
204cmpne_4_floats                 $59..62 = notEqual($59..62, $63..66)
205bitwise_or_2_ints              $59..60 |= $61..62
206bitwise_or_int                 $59 |= $60
207merge_condition_mask           CondMask = $58 & $59
208copy_constant                  $60 = 0
209copy_slot_masked               [test_no_op_mat4_X_vec4].result = Mask($60)
210mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
211load_condition_mask            CondMask = $58
212copy_4_slots_unmasked          $59..62 = v₂
213copy_4_uniforms                $63..66 = testInputs
214cmpne_4_floats                 $59..62 = notEqual($59..62, $63..66)
215bitwise_or_2_ints              $59..60 |= $61..62
216bitwise_or_int                 $59 |= $60
217merge_condition_mask           CondMask = $58 & $59
218copy_constant                  $60 = 0
219copy_slot_masked               [test_no_op_mat4_X_vec4].result = Mask($60)
220mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
221load_condition_mask            CondMask = $58
222copy_4_uniforms                $58..61 = testInputs
223splat_4_constants              $62..65 = 0x80000000 (-0.0)
224bitwise_xor_4_ints             $58..61 ^= $62..65
225copy_4_slots_masked            v₂ = Mask($58..61)
226copy_4_uniforms                $58..61 = testInputs
227splat_4_constants              $62..65 = 0x80000000 (-0.0)
228bitwise_xor_4_ints             $58..61 ^= $62..65
229copy_4_slots_masked            v₂ = Mask($58..61)
230store_condition_mask           $58 = CondMask
231copy_4_slots_unmasked          $59..62 = v₂
232copy_4_uniforms                $63..66 = testInputs
233splat_4_constants              $67..70 = 0x80000000 (-0.0)
234bitwise_xor_4_ints             $63..66 ^= $67..70
235cmpne_4_floats                 $59..62 = notEqual($59..62, $63..66)
236bitwise_or_2_ints              $59..60 |= $61..62
237bitwise_or_int                 $59 |= $60
238merge_condition_mask           CondMask = $58 & $59
239copy_constant                  $60 = 0
240copy_slot_masked               [test_no_op_mat4_X_vec4].result = Mask($60)
241mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
242load_condition_mask            CondMask = $58
243splat_4_constants              $58..61 = 0
244copy_4_slots_masked            vv₂ = Mask($58..61)
245splat_4_constants              $58..61 = 0
246copy_4_slots_masked            vv₂ = Mask($58..61)
247splat_4_constants              $62..65 = 0
248cmpeq_4_floats                 $58..61 = equal($58..61, $62..65)
249bitwise_and_2_ints             $58..59 &= $60..61
250bitwise_and_int                $58 &= $59
251copy_slot_masked               [test_no_op_mat4_X_vec4].result = Mask($58)
252load_return_mask               RetMask = $57
253copy_slot_unmasked             $57 = [test_no_op_mat4_X_vec4].result
254label                          label 0x00000008
255copy_slot_masked               $56 = Mask($57)
256label                          label 0x00000004
257load_condition_mask            CondMask = $71
258copy_constant                  $45 = 0
259merge_condition_mask           CondMask = $55 & $56
260branch_if_no_lanes_active      branch_if_no_lanes_active +69 (label 3 at #270)
261store_return_mask              $46 = RetMask
262splat_4_constants              v₃, vv₃ = 0
263splat_2_constants              $47..48 = 0
264copy_2_slots_masked            vv₃ = Mask($47..48)
265store_condition_mask           $47 = CondMask
266copy_2_slots_unmasked          $48..49 = vv₃
267cmpne_imm_float                $48 = notEqual($48, 0)
268cmpne_imm_float                $49 = notEqual($49, 0)
269bitwise_or_int                 $48 |= $49
270merge_condition_mask           CondMask = $47 & $48
271copy_constant                  $49 = 0
272copy_slot_masked               [test_no_op_vec2_X_mat2].result = Mask($49)
273mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
274load_condition_mask            CondMask = $47
275splat_2_constants              $49..50 = 0x3F800000 (1.0)
276copy_4_uniforms                $51..54 = testMatrix2x2
277matrix_multiply_2              mat2x1($47..48) = mat2x1($49..50) * mat2x2($51..54)
278copy_2_slots_masked            v₃ = Mask($47..48)
279store_condition_mask           $47 = CondMask
280copy_2_slots_unmasked          $48..49 = v₃
281copy_2_immutables_unmasked     $50..51 = i6..7 [0x40400000 (3.0), 0x40E00000 (7.0)]
282cmpne_2_floats                 $48..49 = notEqual($48..49, $50..51)
283bitwise_or_int                 $48 |= $49
284merge_condition_mask           CondMask = $47 & $48
285copy_constant                  $49 = 0
286copy_slot_masked               [test_no_op_vec2_X_mat2].result = Mask($49)
287mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
288load_condition_mask            CondMask = $47
289copy_4_uniforms                $49..52 = testMatrix2x2
290splat_2_constants              $53..54 = 0x3F800000 (1.0)
291matrix_multiply_2              mat1x2($47..48) = mat2x2($49..52) * mat1x2($53..54)
292copy_2_slots_masked            v₃ = Mask($47..48)
293store_condition_mask           $47 = CondMask
294copy_2_slots_unmasked          $48..49 = v₃
295copy_2_immutables_unmasked     $50..51 = i8..9 [0x40800000 (4.0), 0x40C00000 (6.0)]
296cmpne_2_floats                 $48..49 = notEqual($48..49, $50..51)
297bitwise_or_int                 $48 |= $49
298merge_condition_mask           CondMask = $47 & $48
299copy_constant                  $49 = 0
300copy_slot_masked               [test_no_op_vec2_X_mat2].result = Mask($49)
301mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
302load_condition_mask            CondMask = $47
303splat_2_constants              $49..50 = 0xBF800000 (-1.0)
304copy_4_uniforms                $51..54 = testMatrix2x2
305matrix_multiply_2              mat2x1($47..48) = mat2x1($49..50) * mat2x2($51..54)
306copy_2_slots_masked            v₃ = Mask($47..48)
307store_condition_mask           $47 = CondMask
308copy_2_slots_unmasked          $48..49 = v₃
309copy_2_immutables_unmasked     $50..51 = i10..11 [0xC0400000 (-3.0), 0xC0E00000 (-7.0)]
310cmpne_2_floats                 $48..49 = notEqual($48..49, $50..51)
311bitwise_or_int                 $48 |= $49
312merge_condition_mask           CondMask = $47 & $48
313copy_constant                  $49 = 0
314copy_slot_masked               [test_no_op_vec2_X_mat2].result = Mask($49)
315mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
316load_condition_mask            CondMask = $47
317copy_4_uniforms                $49..52 = testMatrix2x2
318splat_2_constants              $53..54 = 0xBF800000 (-1.0)
319matrix_multiply_2              mat1x2($47..48) = mat2x2($49..52) * mat1x2($53..54)
320copy_2_slots_masked            v₃ = Mask($47..48)
321copy_2_immutables_unmasked     $49..50 = i12..13 [0xC0800000 (-4.0), 0xC0C00000 (-6.0)]
322cmpeq_2_floats                 $47..48 = equal($47..48, $49..50)
323bitwise_and_int                $47 &= $48
324copy_slot_masked               [test_no_op_vec2_X_mat2].result = Mask($47)
325load_return_mask               RetMask = $46
326copy_slot_unmasked             $46 = [test_no_op_vec2_X_mat2].result
327label                          label 0x00000009
328copy_slot_masked               $45 = Mask($46)
329label                          label 0x00000003
330load_condition_mask            CondMask = $55
331copy_constant                  $27 = 0
332merge_condition_mask           CondMask = $44 & $45
333branch_if_no_lanes_active      branch_if_no_lanes_active +83 (label 2 at #357)
334store_return_mask              $28 = RetMask
335splat_4_constants              v₄, vv₄(0) = 0
336splat_2_constants              vv₄(1..2) = 0
337splat_3_constants              $29..31 = 0
338copy_3_slots_masked            vv₄ = Mask($29..31)
339store_condition_mask           $29 = CondMask
340copy_3_slots_unmasked          $30..32 = vv₄
341splat_3_constants              $33..35 = 0
342cmpne_3_floats                 $30..32 = notEqual($30..32, $33..35)
343bitwise_or_int                 $31 |= $32
344bitwise_or_int                 $30 |= $31
345merge_condition_mask           CondMask = $29 & $30
346copy_constant                  $31 = 0
347copy_slot_masked               [test_no_op_vec3_X_mat3].result = Mask($31)
348mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
349load_condition_mask            CondMask = $29
350splat_3_constants              $32..34 = 0x3F800000 (1.0)
351copy_4_uniforms                $35..38 = testMatrix3x3(0..3)
352copy_4_uniforms                $39..42 = testMatrix3x3(4..7)
353copy_uniform                   $43 = testMatrix3x3(8)
354matrix_multiply_3              mat3x1($29..31) = mat3x1($32..34) * mat3x3($35..43)
355copy_3_slots_masked            v₄ = Mask($29..31)
356store_condition_mask           $29 = CondMask
357copy_3_slots_unmasked          $30..32 = v₄
358copy_3_immutables_unmasked     $33..35 = i23..25 [0x40C00000 (6.0), 0x41700000 (15.0), 0x41C00000 (24.0)]
359cmpne_3_floats                 $30..32 = notEqual($30..32, $33..35)
360bitwise_or_int                 $31 |= $32
361bitwise_or_int                 $30 |= $31
362merge_condition_mask           CondMask = $29 & $30
363copy_constant                  $31 = 0
364copy_slot_masked               [test_no_op_vec3_X_mat3].result = Mask($31)
365mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
366load_condition_mask            CondMask = $29
367copy_4_uniforms                $32..35 = testMatrix3x3(0..3)
368copy_4_uniforms                $36..39 = testMatrix3x3(4..7)
369copy_uniform                   $40 = testMatrix3x3(8)
370splat_3_constants              $41..43 = 0x3F800000 (1.0)
371matrix_multiply_3              mat1x3($29..31) = mat3x3($32..40) * mat1x3($41..43)
372copy_3_slots_masked            v₄ = Mask($29..31)
373store_condition_mask           $29 = CondMask
374copy_3_slots_unmasked          $30..32 = v₄
375copy_3_immutables_unmasked     $33..35 = i26..28 [0x41400000 (12.0), 0x41700000 (15.0), 0x41900000 (18.0)]
376cmpne_3_floats                 $30..32 = notEqual($30..32, $33..35)
377bitwise_or_int                 $31 |= $32
378bitwise_or_int                 $30 |= $31
379merge_condition_mask           CondMask = $29 & $30
380copy_constant                  $31 = 0
381copy_slot_masked               [test_no_op_vec3_X_mat3].result = Mask($31)
382mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
383load_condition_mask            CondMask = $29
384splat_3_constants              $32..34 = 0xBF800000 (-1.0)
385copy_4_uniforms                $35..38 = testMatrix3x3(0..3)
386copy_4_uniforms                $39..42 = testMatrix3x3(4..7)
387copy_uniform                   $43 = testMatrix3x3(8)
388matrix_multiply_3              mat3x1($29..31) = mat3x1($32..34) * mat3x3($35..43)
389copy_3_slots_masked            v₄ = Mask($29..31)
390store_condition_mask           $29 = CondMask
391copy_3_slots_unmasked          $30..32 = v₄
392copy_3_immutables_unmasked     $33..35 = i29..31 [0xC0C00000 (-6.0), 0xC1700000 (-15.0), 0xC1C00000 (-24.0)]
393cmpne_3_floats                 $30..32 = notEqual($30..32, $33..35)
394bitwise_or_int                 $31 |= $32
395bitwise_or_int                 $30 |= $31
396merge_condition_mask           CondMask = $29 & $30
397copy_constant                  $31 = 0
398copy_slot_masked               [test_no_op_vec3_X_mat3].result = Mask($31)
399mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
400load_condition_mask            CondMask = $29
401copy_4_uniforms                $32..35 = testMatrix3x3(0..3)
402copy_4_uniforms                $36..39 = testMatrix3x3(4..7)
403copy_uniform                   $40 = testMatrix3x3(8)
404splat_3_constants              $41..43 = 0xBF800000 (-1.0)
405matrix_multiply_3              mat1x3($29..31) = mat3x3($32..40) * mat1x3($41..43)
406copy_3_slots_masked            v₄ = Mask($29..31)
407copy_3_immutables_unmasked     $32..34 = i32..34 [0xC1400000 (-12.0), 0xC1700000 (-15.0), 0xC1900000 (-18.0)]
408cmpeq_3_floats                 $29..31 = equal($29..31, $32..34)
409bitwise_and_int                $30 &= $31
410bitwise_and_int                $29 &= $30
411copy_slot_masked               [test_no_op_vec3_X_mat3].result = Mask($29)
412load_return_mask               RetMask = $28
413copy_slot_unmasked             $28 = [test_no_op_vec3_X_mat3].result
414label                          label 0x0000000A
415copy_slot_masked               $27 = Mask($28)
416label                          label 0x00000002
417load_condition_mask            CondMask = $44
418copy_constant                  $0 = 0
419merge_condition_mask           CondMask = $26 & $27
420branch_if_no_lanes_active      branch_if_no_lanes_active +91 (label 1 at #452)
421store_return_mask              $1 = RetMask
422copy_4_uniforms                testMatrix4x4(0..3) = testMatrix2x2
423copy_4_uniforms                testMatrix4x4(4..7) = testMatrix2x2
424copy_4_uniforms                testMatrix4x4(8..11) = testMatrix2x2
425copy_4_uniforms                testMatrix4x4(12..15) = testMatrix2x2
426splat_4_constants              v₅ = 0
427splat_4_constants              vv₅ = 0
428splat_4_constants              $2..5 = 0
429copy_4_slots_masked            vv₅ = Mask($2..5)
430store_condition_mask           $2 = CondMask
431copy_4_slots_unmasked          $3..6 = vv₅
432splat_4_constants              $7..10 = 0
433cmpne_4_floats                 $3..6 = notEqual($3..6, $7..10)
434bitwise_or_2_ints              $3..4 |= $5..6
435bitwise_or_int                 $3 |= $4
436merge_condition_mask           CondMask = $2 & $3
437copy_constant                  $4 = 0
438copy_slot_masked               [test_no_op_vec4_X_mat4].result = Mask($4)
439mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
440load_condition_mask            CondMask = $2
441splat_4_constants              $6..9 = 0x3F800000 (1.0)
442copy_4_slots_unmasked          $10..13 = testMatrix4x4(0..3)
443copy_4_slots_unmasked          $14..17 = testMatrix4x4(4..7)
444copy_4_slots_unmasked          $18..21 = testMatrix4x4(8..11)
445copy_4_slots_unmasked          $22..25 = testMatrix4x4(12..15)
446matrix_multiply_4              mat4x1($2..5) = mat4x1($6..9) * mat4x4($10..25)
447copy_4_slots_masked            v₅ = Mask($2..5)
448store_condition_mask           $2 = CondMask
449copy_4_slots_unmasked          $3..6 = v₅
450splat_4_constants              $7..10 = 0x41200000 (10.0)
451cmpne_4_floats                 $3..6 = notEqual($3..6, $7..10)
452bitwise_or_2_ints              $3..4 |= $5..6
453bitwise_or_int                 $3 |= $4
454merge_condition_mask           CondMask = $2 & $3
455copy_constant                  $4 = 0
456copy_slot_masked               [test_no_op_vec4_X_mat4].result = Mask($4)
457mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
458load_condition_mask            CondMask = $2
459copy_4_slots_unmasked          $6..9 = testMatrix4x4(0..3)
460copy_4_slots_unmasked          $10..13 = testMatrix4x4(4..7)
461copy_4_slots_unmasked          $14..17 = testMatrix4x4(8..11)
462copy_4_slots_unmasked          $18..21 = testMatrix4x4(12..15)
463splat_4_constants              $22..25 = 0x3F800000 (1.0)
464matrix_multiply_4              mat1x4($2..5) = mat4x4($6..21) * mat1x4($22..25)
465copy_4_slots_masked            v₅ = Mask($2..5)
466store_condition_mask           $2 = CondMask
467copy_4_slots_unmasked          $3..6 = v₅
468copy_4_immutables_unmasked     $7..10 = i47..50 [0x40800000 (4.0), 0x41000000 (8.0), 0x41400000 (12.0), 0x41800000 (16.0)]
469cmpne_4_floats                 $3..6 = notEqual($3..6, $7..10)
470bitwise_or_2_ints              $3..4 |= $5..6
471bitwise_or_int                 $3 |= $4
472merge_condition_mask           CondMask = $2 & $3
473copy_constant                  $4 = 0
474copy_slot_masked               [test_no_op_vec4_X_mat4].result = Mask($4)
475mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
476load_condition_mask            CondMask = $2
477splat_4_constants              $6..9 = 0xBF800000 (-1.0)
478copy_4_slots_unmasked          $10..13 = testMatrix4x4(0..3)
479copy_4_slots_unmasked          $14..17 = testMatrix4x4(4..7)
480copy_4_slots_unmasked          $18..21 = testMatrix4x4(8..11)
481copy_4_slots_unmasked          $22..25 = testMatrix4x4(12..15)
482matrix_multiply_4              mat4x1($2..5) = mat4x1($6..9) * mat4x4($10..25)
483copy_4_slots_masked            v₅ = Mask($2..5)
484store_condition_mask           $2 = CondMask
485copy_4_slots_unmasked          $3..6 = v₅
486splat_4_constants              $7..10 = 0xC1200000 (-10.0)
487cmpne_4_floats                 $3..6 = notEqual($3..6, $7..10)
488bitwise_or_2_ints              $3..4 |= $5..6
489bitwise_or_int                 $3 |= $4
490merge_condition_mask           CondMask = $2 & $3
491copy_constant                  $4 = 0
492copy_slot_masked               [test_no_op_vec4_X_mat4].result = Mask($4)
493mask_off_return_mask           RetMask &= ~(CondMask & LoopMask & RetMask)
494load_condition_mask            CondMask = $2
495copy_4_slots_unmasked          $6..9 = testMatrix4x4(0..3)
496copy_4_slots_unmasked          $10..13 = testMatrix4x4(4..7)
497copy_4_slots_unmasked          $14..17 = testMatrix4x4(8..11)
498copy_4_slots_unmasked          $18..21 = testMatrix4x4(12..15)
499splat_4_constants              $22..25 = 0xBF800000 (-1.0)
500matrix_multiply_4              mat1x4($2..5) = mat4x4($6..21) * mat1x4($22..25)
501copy_4_slots_masked            v₅ = Mask($2..5)
502copy_4_immutables_unmasked     $6..9 = i51..54 [0xC0800000 (-4.0), 0xC1000000 (-8.0), 0xC1400000 (-12.0), 0xC1800000 (-16.0)]
503cmpeq_4_floats                 $2..5 = equal($2..5, $6..9)
504bitwise_and_2_ints             $2..3 &= $4..5
505bitwise_and_int                $2 &= $3
506copy_slot_masked               [test_no_op_vec4_X_mat4].result = Mask($2)
507load_return_mask               RetMask = $1
508copy_slot_unmasked             $1 = [test_no_op_vec4_X_mat4].result
509label                          label 0x0000000B
510copy_slot_masked               $0 = Mask($1)
511label                          label 0x00000001
512load_condition_mask            CondMask = $26
513swizzle_4                      $0..3 = ($0..3).xxxx
514copy_4_uniforms                $4..7 = colorRed
515copy_4_uniforms                $8..11 = colorGreen
516mix_4_ints                     $0..3 = mix($4..7, $8..11, $0..3)
517load_src                       src.rgba = $0..3
518