unplugged-system/external/skia/tests/sksl/runtime/SwitchWithLoops.skrp

161 lines
9.3 KiB
Plaintext

1. store_src_rg coords = src.rg
2. init_lane_masks CondMask = LoopMask = RetMask = true
3. copy_constant $0 = colorGreen(1)
4. cast_to_int_from_float $0 = FloatToInt($0)
5. copy_slot_unmasked x = $0
6. zero_slot_unmasked _0_val = 0
7. store_loop_mask $0 = LoopMask
8. copy_slot_unmasked $1 = x
9. store_loop_mask $2 = LoopMask
10. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask)
11. case_op if ($1 == 0x00000001) { LoopMask = true; $2 = false; }
12. branch_if_no_active_lanes branch_if_no_active_lanes +22 (label 0 at #34)
13. zero_slot_unmasked _1_i = 0
14. store_loop_mask $3 = LoopMask
15. jump jump +11 (label 1 at #26)
16. label label 0x00000002
17. copy_slot_unmasked $4 = _0_val
18. copy_constant $5 = 0x00000001 (1.401298e-45)
19. add_int $4 += $5
20. copy_slot_masked _0_val = Mask($4)
21. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask)
22. copy_slot_unmasked $4 = _1_i
23. copy_constant $5 = 0x00000001 (1.401298e-45)
24. add_int $4 += $5
25. copy_slot_masked _1_i = Mask($4)
26. label label 0x00000001
27. copy_slot_unmasked $4 = _1_i
28. copy_constant $5 = 0x0000000A (1.401298e-44)
29. cmplt_int $4 = lessThan($4, $5)
30. merge_loop_mask LoopMask &= $4
31. stack_rewind
32. branch_if_any_active_lanes branch_if_any_active_lanes -16 (label 2 at #16)
33. load_loop_mask LoopMask = $3
34. label label 0x00000000
35. reenable_loop_mask LoopMask |= $2
36. branch_if_no_active_lanes branch_if_no_active_lanes +5 (label 3 at #41)
37. copy_slot_unmasked $2 = _0_val
38. copy_constant $3 = 0x00000001 (1.401298e-45)
39. add_int $2 += $3
40. copy_slot_masked _0_val = Mask($2)
41. label label 0x00000003
42. load_loop_mask LoopMask = $0
43. store_condition_mask $15 = CondMask
44. store_condition_mask $12 = CondMask
45. copy_slot_unmasked $13 = _0_val
46. copy_constant $14 = 0x00000002 (2.802597e-45)
47. cmpeq_int $13 = equal($13, $14)
48. zero_slot_unmasked $16 = 0
49. merge_condition_mask CondMask = $12 & $13
50. branch_if_no_active_lanes branch_if_no_active_lanes +49 (label 6 at #99)
51. copy_slot_unmasked x₁ = x
52. zero_slot_unmasked val = 0
53. store_loop_mask $17 = LoopMask
54. copy_slot_unmasked $18 = x₁
55. store_loop_mask $19 = LoopMask
56. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask)
57. case_op if ($18 == 0x00000001) { LoopMask = true; $19 = false; }
58. branch_if_no_active_lanes branch_if_no_active_lanes +26 (label 8 at #84)
59. zero_slot_unmasked i = 0
60. store_loop_mask $20 = LoopMask
61. jump jump +15 (label 9 at #76)
62. label label 0x0000000A
63. zero_slot_unmasked [temporary 0] = 0
64. copy_slot_unmasked $21 = val
65. copy_constant $22 = 0x00000001 (1.401298e-45)
66. add_int $21 += $22
67. copy_slot_masked val = Mask($21)
68. copy_constant $21 = 0xFFFFFFFF
69. copy_slot_masked [temporary 0] = Mask($21)
70. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask)
71. reenable_loop_mask LoopMask |= [temporary 0]
72. copy_slot_unmasked $21 = i
73. copy_constant $22 = 0x00000001 (1.401298e-45)
74. add_int $21 += $22
75. copy_slot_masked i = Mask($21)
76. label label 0x00000009
77. copy_slot_unmasked $21 = i
78. copy_constant $22 = 0x0000000A (1.401298e-44)
79. cmplt_int $21 = lessThan($21, $22)
80. merge_loop_mask LoopMask &= $21
81. stack_rewind
82. branch_if_any_active_lanes branch_if_any_active_lanes -20 (label 10 at #62)
83. load_loop_mask LoopMask = $20
84. label label 0x00000008
85. reenable_loop_mask LoopMask |= $19
86. branch_if_no_active_lanes branch_if_no_active_lanes +5 (label 11 at #91)
87. copy_slot_unmasked $19 = val
88. copy_constant $20 = 0x00000001 (1.401298e-45)
89. add_int $19 += $20
90. copy_slot_masked val = Mask($19)
91. label label 0x0000000B
92. load_loop_mask LoopMask = $17
93. copy_slot_unmasked $17 = val
94. copy_constant $18 = 0x0000000B (1.541428e-44)
95. cmpeq_int $17 = equal($17, $18)
96. copy_slot_masked [switch_with_continue_in_loop].result = Mask($17)
97. label label 0x00000007
98. copy_slot_masked $16 = Mask($17)
99. label label 0x00000006
100. load_condition_mask CondMask = $12
101. zero_slot_unmasked $0 = 0
102. merge_condition_mask CondMask = $15 & $16
103. branch_if_no_active_lanes branch_if_no_active_lanes +50 (label 5 at #153)
104. store_return_mask $1 = RetMask
105. copy_slot_unmasked x₂ = x
106. zero_2_slots_unmasked val₁, i₁ = 0
107. store_loop_mask $2 = LoopMask
108. jump jump +29 (label 13 at #137)
109. label label 0x0000000E
110. store_loop_mask $3 = LoopMask
111. copy_slot_unmasked $4 = x₂
112. store_loop_mask $5 = LoopMask
113. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask)
114. case_op if ($4 == 0x00000001) { LoopMask = true; $5 = false; }
115. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 15 at #121)
116. copy_slot_unmasked $6 = val₁
117. copy_constant $7 = 0x00000001 (1.401298e-45)
118. add_int $6 += $7
119. copy_slot_masked val₁ = Mask($6)
120. mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask)
121. label label 0x0000000F
122. reenable_loop_mask LoopMask |= $5
123. branch_if_no_active_lanes branch_if_no_active_lanes +4 (label 16 at #127)
124. zero_slot_unmasked $5 = 0
125. copy_slot_masked [loop_with_break_in_switch].result = Mask($5)
126. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
127. label label 0x00000010
128. load_loop_mask LoopMask = $3
129. copy_slot_unmasked $3 = val₁
130. copy_constant $4 = 0x00000001 (1.401298e-45)
131. add_int $3 += $4
132. copy_slot_masked val₁ = Mask($3)
133. copy_slot_unmasked $3 = i₁
134. copy_constant $4 = 0x00000001 (1.401298e-45)
135. add_int $3 += $4
136. copy_slot_masked i₁ = Mask($3)
137. label label 0x0000000D
138. copy_slot_unmasked $3 = i₁
139. copy_constant $4 = 0x0000000A (1.401298e-44)
140. cmplt_int $3 = lessThan($3, $4)
141. merge_loop_mask LoopMask &= $3
142. stack_rewind
143. branch_if_any_active_lanes branch_if_any_active_lanes -34 (label 14 at #109)
144. load_loop_mask LoopMask = $2
145. copy_slot_unmasked $2 = val₁
146. copy_constant $3 = 0x00000014 (2.802597e-44)
147. cmpeq_int $2 = equal($2, $3)
148. copy_slot_masked [loop_with_break_in_switch].result = Mask($2)
149. load_return_mask RetMask = $1
150. copy_slot_unmasked $1 = [loop_with_break_in_switch].result
151. label label 0x0000000C
152. copy_slot_masked $0 = Mask($1)
153. label label 0x00000005
154. load_condition_mask CondMask = $15
155. swizzle_4 $0..3 = ($0..3).xxxx
156. copy_4_constants $4..7 = colorRed
157. copy_4_constants $8..11 = colorGreen
158. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3)
159. copy_4_slots_unmasked [main].result = $0..3
160. load_src src.rgba = [main].result