222 lines
13 KiB
Plaintext
222 lines
13 KiB
Plaintext
|
|
1. store_src_rg coords = src.rg
|
||
|
|
2. init_lane_masks CondMask = LoopMask = RetMask = true
|
||
|
|
3. zero_2_slots_unmasked s.x, s.y = 0
|
||
|
|
4. copy_constant $0 = 0x3F800000 (1.0)
|
||
|
|
5. copy_slot_unmasked s.x = $0
|
||
|
|
6. copy_constant $0 = 0x00000002 (2.802597e-45)
|
||
|
|
7. copy_slot_unmasked s.y = $0
|
||
|
|
8. copy_2_slots_unmasked [returns_a_struct].result.x, [returns_a_struct].result.y = s.x, s.y
|
||
|
|
9. copy_2_slots_unmasked $0..1 = [returns_a_struct].result.x, [returns_a_struct].result.y
|
||
|
|
10. label label 0x00000000
|
||
|
|
11. copy_2_slots_unmasked s.x₁, s.y₁ = $0..1
|
||
|
|
12. copy_2_slots_unmasked s.x₂, s.y₂ = $0..1
|
||
|
|
13. copy_2_slots_unmasked $0..1 = s.x₂, s.y₂
|
||
|
|
14. cast_to_float_from_int $1 = IntToFloat($1)
|
||
|
|
15. add_float $0 += $1
|
||
|
|
16. copy_slot_unmasked [accepts_a_struct].result = $0
|
||
|
|
17. label label 0x00000001
|
||
|
|
18. copy_slot_unmasked x = $0
|
||
|
|
19. copy_2_slots_unmasked s.x₃, s.y₃ = s.x₁, s.y₁
|
||
|
|
20. copy_slot_unmasked $0 = s.x₃
|
||
|
|
21. copy_constant $1 = 0x3F800000 (1.0)
|
||
|
|
22. add_float $0 += $1
|
||
|
|
23. copy_slot_unmasked s.x₃ = $0
|
||
|
|
24. copy_slot_unmasked $0 = s.y₃
|
||
|
|
25. copy_constant $1 = 0x00000001 (1.401298e-45)
|
||
|
|
26. add_int $0 += $1
|
||
|
|
27. copy_slot_unmasked s.y₃ = $0
|
||
|
|
28. copy_2_slots_unmasked $0..1 = s.x₃, s.y₃
|
||
|
|
29. copy_2_slots_unmasked s.x₁, s.y₁ = $0..1
|
||
|
|
30. label label 0x00000002
|
||
|
|
31. copy_constant [constructs_a_struct].result.x = 0x40000000 (2.0)
|
||
|
|
32. copy_constant [constructs_a_struct].result.y = 0x00000003 (4.203895e-45)
|
||
|
|
33. copy_2_slots_unmasked $0..1 = [constructs_a_struct].result.x, [constructs_a_struct].result.y
|
||
|
|
34. label label 0x00000003
|
||
|
|
35. copy_2_slots_unmasked expected.x, expected.y = $0..1
|
||
|
|
36. zero_4_slots_unmasked n1.a.x, n1.a.y, n1.b.x, n1.b.y = 0
|
||
|
|
37. zero_4_slots_unmasked n2.a.x, n2.a.y, n2.b.x, n2.b.y = 0
|
||
|
|
38. zero_4_slots_unmasked n3.a.x, n3.a.y, n3.b.x, n3.b.y = 0
|
||
|
|
39. zero_2_slots_unmasked s.x, s.y = 0
|
||
|
|
40. copy_constant $0 = 0x3F800000 (1.0)
|
||
|
|
41. copy_slot_unmasked s.x = $0
|
||
|
|
42. copy_constant $0 = 0x00000002 (2.802597e-45)
|
||
|
|
43. copy_slot_unmasked s.y = $0
|
||
|
|
44. copy_2_slots_unmasked [returns_a_struct].result.x, [returns_a_struct].result.y = s.x, s.y
|
||
|
|
45. copy_2_slots_unmasked $0..1 = [returns_a_struct].result.x, [returns_a_struct].result.y
|
||
|
|
46. label label 0x00000004
|
||
|
|
47. copy_2_slots_unmasked n1.a.x, n1.a.y = $0..1
|
||
|
|
48. copy_2_slots_unmasked n1.b.x, n1.b.y = $0..1
|
||
|
|
49. copy_4_slots_unmasked $0..3 = n1.a.x, n1.a.y, n1.b.x, n1.b.y
|
||
|
|
50. copy_4_slots_unmasked n2.a.x, n2.a.y, n2.b.x, n2.b.y = $0..3
|
||
|
|
51. copy_4_slots_unmasked n3.a.x, n3.a.y, n3.b.x, n3.b.y = $0..3
|
||
|
|
52. copy_2_slots_unmasked s.x₃, s.y₃ = n3.b.x, n3.b.y
|
||
|
|
53. copy_slot_unmasked $0 = s.x₃
|
||
|
|
54. copy_constant $1 = 0x3F800000 (1.0)
|
||
|
|
55. add_float $0 += $1
|
||
|
|
56. copy_slot_unmasked s.x₃ = $0
|
||
|
|
57. copy_slot_unmasked $0 = s.y₃
|
||
|
|
58. copy_constant $1 = 0x00000001 (1.401298e-45)
|
||
|
|
59. add_int $0 += $1
|
||
|
|
60. copy_slot_unmasked s.y₃ = $0
|
||
|
|
61. copy_2_slots_unmasked $0..1 = s.x₃, s.y₃
|
||
|
|
62. copy_2_slots_unmasked n3.b.x, n3.b.y = $0..1
|
||
|
|
63. label label 0x00000005
|
||
|
|
64. copy_constant c1.f4(0) = 0x3F800000 (1.0)
|
||
|
|
65. copy_constant c1.f4(1) = 0x40000000 (2.0)
|
||
|
|
66. copy_constant c1.f4(2) = 0x40400000 (3.0)
|
||
|
|
67. copy_constant c1.f4(3) = 0x40800000 (4.0)
|
||
|
|
68. copy_constant c1.i3(0) = 0x00000005 (7.006492e-45)
|
||
|
|
69. copy_constant c1.i3(1) = 0x00000006 (8.407791e-45)
|
||
|
|
70. copy_constant c1.i3(2) = 0x00000007 (9.809089e-45)
|
||
|
|
71. copy_constant $0 = colorGreen(1)
|
||
|
|
72. copy_constant c2.f4(1) = 0x40000000 (2.0)
|
||
|
|
73. copy_constant c2.f4(2) = 0x40400000 (3.0)
|
||
|
|
74. copy_constant c2.f4(3) = 0x40800000 (4.0)
|
||
|
|
75. copy_constant c2.i3(0) = 0x00000005 (7.006492e-45)
|
||
|
|
76. copy_constant c2.i3(1) = 0x00000006 (8.407791e-45)
|
||
|
|
77. copy_constant c2.i3(2) = 0x00000007 (9.809089e-45)
|
||
|
|
78. copy_slot_unmasked c2.f4(0) = $0
|
||
|
|
79. copy_constant $0 = colorGreen(0)
|
||
|
|
80. copy_constant c3.f4(1) = 0x40000000 (2.0)
|
||
|
|
81. copy_constant c3.f4(2) = 0x40400000 (3.0)
|
||
|
|
82. copy_constant c3.f4(3) = 0x40800000 (4.0)
|
||
|
|
83. copy_constant c3.i3(0) = 0x00000005 (7.006492e-45)
|
||
|
|
84. copy_constant c3.i3(1) = 0x00000006 (8.407791e-45)
|
||
|
|
85. copy_constant c3.i3(2) = 0x00000007 (9.809089e-45)
|
||
|
|
86. copy_slot_unmasked c3.f4(0) = $0
|
||
|
|
87. store_condition_mask $14 = CondMask
|
||
|
|
88. copy_slot_unmasked $15 = x
|
||
|
|
89. copy_constant $16 = 0x40400000 (3.0)
|
||
|
|
90. cmpeq_float $15 = equal($15, $16)
|
||
|
|
91. copy_slot_unmasked $16 = s.x₁
|
||
|
|
92. copy_constant $17 = 0x40000000 (2.0)
|
||
|
|
93. cmpeq_float $16 = equal($16, $17)
|
||
|
|
94. bitwise_and_int $15 &= $16
|
||
|
|
95. copy_slot_unmasked $16 = s.y₁
|
||
|
|
96. copy_constant $17 = 0x00000003 (4.203895e-45)
|
||
|
|
97. cmpeq_int $16 = equal($16, $17)
|
||
|
|
98. bitwise_and_int $15 &= $16
|
||
|
|
99. copy_slot_unmasked $16 = s.x₁
|
||
|
|
100. copy_slot_unmasked $17 = expected.x
|
||
|
|
101. cmpeq_float $16 = equal($16, $17)
|
||
|
|
102. copy_slot_unmasked $17 = s.y₁
|
||
|
|
103. copy_slot_unmasked $18 = expected.y
|
||
|
|
104. cmpeq_int $17 = equal($17, $18)
|
||
|
|
105. bitwise_and_int $16 &= $17
|
||
|
|
106. bitwise_and_int $15 &= $16
|
||
|
|
107. copy_slot_unmasked $16 = s.x₁
|
||
|
|
108. copy_constant $12 = 0x40000000 (2.0)
|
||
|
|
109. copy_constant $13 = 0x00000003 (4.203895e-45)
|
||
|
|
110. copy_slot_unmasked $17 = $12
|
||
|
|
111. cmpeq_float $16 = equal($16, $17)
|
||
|
|
112. copy_slot_unmasked $17 = s.y₁
|
||
|
|
113. copy_slot_unmasked $18 = $13
|
||
|
|
114. cmpeq_int $17 = equal($17, $18)
|
||
|
|
115. bitwise_and_int $16 &= $17
|
||
|
|
116. bitwise_and_int $15 &= $16
|
||
|
|
117. zero_slot_unmasked $0 = 0
|
||
|
|
118. merge_condition_mask CondMask = $14 & $15
|
||
|
|
119. branch_if_no_active_lanes branch_if_no_active_lanes +18 (label 6 at #137)
|
||
|
|
120. copy_slot_unmasked $1 = s.x₁
|
||
|
|
121. branch_if_no_active_lanes branch_if_no_active_lanes +8 (label 7 at #129)
|
||
|
|
122. zero_2_slots_unmasked s.x, s.y = 0
|
||
|
|
123. copy_constant $12 = 0x3F800000 (1.0)
|
||
|
|
124. copy_slot_masked s.x = Mask($12)
|
||
|
|
125. copy_constant $12 = 0x00000002 (2.802597e-45)
|
||
|
|
126. copy_slot_masked s.y = Mask($12)
|
||
|
|
127. copy_2_slots_unmasked $12..13 = s.x, s.y
|
||
|
|
128. copy_2_slots_masked [returns_a_struct].result.x, [returns_a_struct].result.y = Mask($12..13)
|
||
|
|
129. label label 0x00000007
|
||
|
|
130. copy_slot_unmasked $2 = $12
|
||
|
|
131. cmpne_float $1 = notEqual($1, $2)
|
||
|
|
132. copy_slot_unmasked $2 = s.y₁
|
||
|
|
133. copy_slot_unmasked $3 = $13
|
||
|
|
134. cmpne_int $2 = notEqual($2, $3)
|
||
|
|
135. bitwise_or_int $1 |= $2
|
||
|
|
136. copy_slot_masked $0 = Mask($1)
|
||
|
|
137. label label 0x00000006
|
||
|
|
138. load_condition_mask CondMask = $14
|
||
|
|
139. copy_slot_unmasked $1 = n1.a.x
|
||
|
|
140. copy_slot_unmasked $2 = n2.a.x
|
||
|
|
141. cmpeq_float $1 = equal($1, $2)
|
||
|
|
142. copy_slot_unmasked $2 = n1.a.y
|
||
|
|
143. copy_slot_unmasked $3 = n2.a.y
|
||
|
|
144. cmpeq_int $2 = equal($2, $3)
|
||
|
|
145. bitwise_and_int $1 &= $2
|
||
|
|
146. copy_slot_unmasked $2 = n1.b.x
|
||
|
|
147. copy_slot_unmasked $3 = n2.b.x
|
||
|
|
148. cmpeq_float $2 = equal($2, $3)
|
||
|
|
149. copy_slot_unmasked $3 = n1.b.y
|
||
|
|
150. copy_slot_unmasked $4 = n2.b.y
|
||
|
|
151. cmpeq_int $3 = equal($3, $4)
|
||
|
|
152. bitwise_and_int $2 &= $3
|
||
|
|
153. bitwise_and_int $1 &= $2
|
||
|
|
154. bitwise_and_int $0 &= $1
|
||
|
|
155. copy_slot_unmasked $1 = n1.a.x
|
||
|
|
156. copy_slot_unmasked $2 = n3.a.x
|
||
|
|
157. cmpne_float $1 = notEqual($1, $2)
|
||
|
|
158. copy_slot_unmasked $2 = n1.a.y
|
||
|
|
159. copy_slot_unmasked $3 = n3.a.y
|
||
|
|
160. cmpne_int $2 = notEqual($2, $3)
|
||
|
|
161. bitwise_or_int $1 |= $2
|
||
|
|
162. copy_slot_unmasked $2 = n1.b.x
|
||
|
|
163. copy_slot_unmasked $3 = n3.b.x
|
||
|
|
164. cmpne_float $2 = notEqual($2, $3)
|
||
|
|
165. copy_slot_unmasked $3 = n1.b.y
|
||
|
|
166. copy_slot_unmasked $4 = n3.b.y
|
||
|
|
167. cmpne_int $3 = notEqual($3, $4)
|
||
|
|
168. bitwise_or_int $2 |= $3
|
||
|
|
169. bitwise_or_int $1 |= $2
|
||
|
|
170. bitwise_and_int $0 &= $1
|
||
|
|
171. copy_slot_unmasked $1 = n3.a.x
|
||
|
|
172. copy_constant $14 = 0x3F800000 (1.0)
|
||
|
|
173. copy_constant $15 = 0x00000002 (2.802597e-45)
|
||
|
|
174. copy_constant $16 = 0x40000000 (2.0)
|
||
|
|
175. copy_constant $17 = 0x00000003 (4.203895e-45)
|
||
|
|
176. copy_slot_unmasked $2 = $14
|
||
|
|
177. cmpeq_float $1 = equal($1, $2)
|
||
|
|
178. copy_slot_unmasked $2 = n3.a.y
|
||
|
|
179. copy_slot_unmasked $3 = $15
|
||
|
|
180. cmpeq_int $2 = equal($2, $3)
|
||
|
|
181. bitwise_and_int $1 &= $2
|
||
|
|
182. copy_slot_unmasked $2 = n3.b.x
|
||
|
|
183. copy_slot_unmasked $3 = $16
|
||
|
|
184. cmpeq_float $2 = equal($2, $3)
|
||
|
|
185. copy_slot_unmasked $3 = n3.b.y
|
||
|
|
186. copy_slot_unmasked $4 = $17
|
||
|
|
187. cmpeq_int $3 = equal($3, $4)
|
||
|
|
188. bitwise_and_int $2 &= $3
|
||
|
|
189. bitwise_and_int $1 &= $2
|
||
|
|
190. bitwise_and_int $0 &= $1
|
||
|
|
191. copy_4_slots_unmasked $1..4 = c1.f4
|
||
|
|
192. copy_4_slots_unmasked $5..8 = c2.f4
|
||
|
|
193. cmpeq_4_floats $1..4 = equal($1..4, $5..8)
|
||
|
|
194. bitwise_and_2_ints $1..2 &= $3..4
|
||
|
|
195. bitwise_and_int $1 &= $2
|
||
|
|
196. copy_3_slots_unmasked $2..4 = c1.i3
|
||
|
|
197. copy_3_slots_unmasked $5..7 = c2.i3
|
||
|
|
198. cmpeq_3_ints $2..4 = equal($2..4, $5..7)
|
||
|
|
199. bitwise_and_int $3 &= $4
|
||
|
|
200. bitwise_and_int $2 &= $3
|
||
|
|
201. bitwise_and_int $1 &= $2
|
||
|
|
202. bitwise_and_int $0 &= $1
|
||
|
|
203. copy_4_slots_unmasked $1..4 = c2.f4
|
||
|
|
204. copy_4_slots_unmasked $5..8 = c3.f4
|
||
|
|
205. cmpne_4_floats $1..4 = notEqual($1..4, $5..8)
|
||
|
|
206. bitwise_or_2_ints $1..2 |= $3..4
|
||
|
|
207. bitwise_or_int $1 |= $2
|
||
|
|
208. copy_3_slots_unmasked $2..4 = c2.i3
|
||
|
|
209. copy_3_slots_unmasked $5..7 = c3.i3
|
||
|
|
210. cmpne_3_ints $2..4 = notEqual($2..4, $5..7)
|
||
|
|
211. bitwise_or_int $3 |= $4
|
||
|
|
212. bitwise_or_int $2 |= $3
|
||
|
|
213. bitwise_or_int $1 |= $2
|
||
|
|
214. bitwise_and_int $0 &= $1
|
||
|
|
215. copy_slot_unmasked valid = $0
|
||
|
|
216. swizzle_4 $0..3 = ($0..3).xxxx
|
||
|
|
217. copy_4_constants $4..7 = colorRed
|
||
|
|
218. copy_4_constants $8..11 = colorGreen
|
||
|
|
219. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3)
|
||
|
|
220. copy_4_slots_unmasked [main].result = $0..3
|
||
|
|
221. load_src src.rgba = [main].result
|