547 lines
29 KiB
Plaintext
547 lines
29 KiB
Plaintext
|
|
1. store_src_rg coords = src.rg
|
||
|
|
2. init_lane_masks CondMask = LoopMask = RetMask = true
|
||
|
|
3. copy_constant $0 = colorGreen(0)
|
||
|
|
4. copy_constant $1 = colorGreen(2)
|
||
|
|
5. div_float $0 /= $1
|
||
|
|
6. copy_slot_unmasked NAN1 = $0
|
||
|
|
7. copy_constant $0 = colorGreen(2)
|
||
|
|
8. copy_constant $1 = colorGreen(0)
|
||
|
|
9. div_float $0 /= $1
|
||
|
|
10. copy_slot_unmasked NAN2 = $0
|
||
|
|
11. copy_constant $0 = colorGreen(0)
|
||
|
|
12. copy_constant $1 = colorGreen(2)
|
||
|
|
13. mul_float $0 *= $1
|
||
|
|
14. copy_slot_unmasked ZP = $0
|
||
|
|
15. zero_slot_unmasked $0 = 0
|
||
|
|
16. copy_constant $1 = colorGreen(0)
|
||
|
|
17. sub_float $0 -= $1
|
||
|
|
18. copy_constant $1 = colorGreen(2)
|
||
|
|
19. mul_float $0 *= $1
|
||
|
|
20. copy_slot_unmasked ZM = $0
|
||
|
|
21. copy_constant $0 = colorGreen(1)
|
||
|
|
22. copy_constant $1 = 0x42280000 (42.0)
|
||
|
|
23. mul_float $0 *= $1
|
||
|
|
24. copy_slot_unmasked F42 = $0
|
||
|
|
25. copy_constant $0 = colorGreen(1)
|
||
|
|
26. copy_constant $1 = 0x422C0000 (43.0)
|
||
|
|
27. mul_float $0 *= $1
|
||
|
|
28. copy_slot_unmasked F43 = $0
|
||
|
|
29. copy_constant $0 = colorGreen(1)
|
||
|
|
30. copy_constant $1 = 0x42300000 (44.0)
|
||
|
|
31. mul_float $0 *= $1
|
||
|
|
32. copy_slot_unmasked F44 = $0
|
||
|
|
33. copy_constant EQ = 0xFFFFFFFF
|
||
|
|
34. zero_slot_unmasked NE = 0
|
||
|
|
35. copy_constant $0 = colorGreen(0)
|
||
|
|
36. copy_constant $1 = 0x3F800000 (1.0)
|
||
|
|
37. add_float $0 += $1
|
||
|
|
38. copy_slot_unmasked _0_one = $0
|
||
|
|
39. zero_3_slots_unmasked _1_a.f1, _1_a.f2, _1_a.f3 = 0
|
||
|
|
40. copy_slot_unmasked $0 = F42
|
||
|
|
41. copy_slot_unmasked _1_a.f1 = $0
|
||
|
|
42. copy_slot_unmasked $0 = ZM
|
||
|
|
43. copy_slot_unmasked _1_a.f2 = $0
|
||
|
|
44. copy_slot_unmasked $0 = ZP
|
||
|
|
45. copy_slot_unmasked _1_a.f3 = $0
|
||
|
|
46. zero_3_slots_unmasked _2_b.f1, _2_b.f2, _2_b.f3 = 0
|
||
|
|
47. copy_slot_unmasked $0 = F42
|
||
|
|
48. copy_slot_unmasked $1 = _0_one
|
||
|
|
49. mul_float $0 *= $1
|
||
|
|
50. copy_slot_unmasked _2_b.f1 = $0
|
||
|
|
51. copy_slot_unmasked $0 = ZM
|
||
|
|
52. copy_slot_unmasked $1 = _0_one
|
||
|
|
53. mul_float $0 *= $1
|
||
|
|
54. copy_slot_unmasked _2_b.f2 = $0
|
||
|
|
55. copy_slot_unmasked $0 = ZP
|
||
|
|
56. copy_slot_unmasked $1 = _0_one
|
||
|
|
57. mul_float $0 *= $1
|
||
|
|
58. copy_slot_unmasked _2_b.f3 = $0
|
||
|
|
59. store_condition_mask $18 = CondMask
|
||
|
|
60. store_condition_mask $32 = CondMask
|
||
|
|
61. store_condition_mask $39 = CondMask
|
||
|
|
62. store_condition_mask $25 = CondMask
|
||
|
|
63. store_condition_mask $55 = CondMask
|
||
|
|
64. store_condition_mask $46 = CondMask
|
||
|
|
65. store_condition_mask $12 = CondMask
|
||
|
|
66. store_condition_mask $53 = CondMask
|
||
|
|
67. copy_slot_unmasked $54 = EQ
|
||
|
|
68. copy_slot_unmasked $13 = _1_a.f1
|
||
|
|
69. copy_slot_unmasked $14 = _2_b.f1
|
||
|
|
70. cmpne_float $13 = notEqual($13, $14)
|
||
|
|
71. copy_slot_unmasked $14 = _1_a.f2
|
||
|
|
72. copy_slot_unmasked $15 = _2_b.f2
|
||
|
|
73. cmpne_float $14 = notEqual($14, $15)
|
||
|
|
74. copy_slot_unmasked $15 = _1_a.f3
|
||
|
|
75. copy_slot_unmasked $16 = _2_b.f3
|
||
|
|
76. cmpne_float $15 = notEqual($15, $16)
|
||
|
|
77. bitwise_or_int $14 |= $15
|
||
|
|
78. bitwise_or_int $13 |= $14
|
||
|
|
79. merge_condition_mask CondMask = $53 & $54
|
||
|
|
80. branch_if_no_active_lanes branch_if_no_active_lanes +13 (label 8 at #93)
|
||
|
|
81. copy_slot_unmasked $14 = _1_a.f1
|
||
|
|
82. copy_slot_unmasked $15 = _2_b.f1
|
||
|
|
83. cmpeq_float $14 = equal($14, $15)
|
||
|
|
84. copy_slot_unmasked $15 = _1_a.f2
|
||
|
|
85. copy_slot_unmasked $16 = _2_b.f2
|
||
|
|
86. cmpeq_float $15 = equal($15, $16)
|
||
|
|
87. copy_slot_unmasked $16 = _1_a.f3
|
||
|
|
88. copy_slot_unmasked $17 = _2_b.f3
|
||
|
|
89. cmpeq_float $16 = equal($16, $17)
|
||
|
|
90. bitwise_and_int $15 &= $16
|
||
|
|
91. bitwise_and_int $14 &= $15
|
||
|
|
92. copy_slot_masked $13 = Mask($14)
|
||
|
|
93. label label 0x00000008
|
||
|
|
94. load_condition_mask CondMask = $53
|
||
|
|
95. zero_slot_unmasked $47 = 0
|
||
|
|
96. merge_condition_mask CondMask = $12 & $13
|
||
|
|
97. branch_if_no_active_lanes branch_if_no_active_lanes +62 (label 7 at #159)
|
||
|
|
98. copy_slot_unmasked eq = NE
|
||
|
|
99. copy_slot_unmasked f1 = F42
|
||
|
|
100. copy_slot_unmasked f2 = ZM
|
||
|
|
101. copy_slot_unmasked f3 = ZP
|
||
|
|
102. copy_constant $48 = colorGreen(0)
|
||
|
|
103. copy_constant $49 = 0x3F800000 (1.0)
|
||
|
|
104. add_float $48 += $49
|
||
|
|
105. copy_slot_unmasked one = $48
|
||
|
|
106. zero_3_slots_unmasked a.f1, a.f2, a.f3 = 0
|
||
|
|
107. copy_slot_unmasked $48 = f1
|
||
|
|
108. copy_slot_masked a.f1 = Mask($48)
|
||
|
|
109. copy_slot_unmasked $48 = f2
|
||
|
|
110. copy_slot_masked a.f2 = Mask($48)
|
||
|
|
111. copy_slot_unmasked $48 = f3
|
||
|
|
112. copy_slot_masked a.f3 = Mask($48)
|
||
|
|
113. zero_3_slots_unmasked b.f1, b.f2, b.f3 = 0
|
||
|
|
114. copy_slot_unmasked $48 = f1
|
||
|
|
115. copy_slot_unmasked $49 = one
|
||
|
|
116. mul_float $48 *= $49
|
||
|
|
117. copy_slot_masked b.f1 = Mask($48)
|
||
|
|
118. copy_slot_unmasked $48 = f2
|
||
|
|
119. copy_slot_unmasked $49 = one
|
||
|
|
120. mul_float $48 *= $49
|
||
|
|
121. copy_slot_masked b.f2 = Mask($48)
|
||
|
|
122. copy_slot_unmasked $48 = f3
|
||
|
|
123. copy_slot_unmasked $49 = one
|
||
|
|
124. mul_float $48 *= $49
|
||
|
|
125. copy_slot_masked b.f3 = Mask($48)
|
||
|
|
126. store_condition_mask $53 = CondMask
|
||
|
|
127. copy_slot_unmasked $54 = eq
|
||
|
|
128. copy_slot_unmasked $48 = a.f1
|
||
|
|
129. copy_slot_unmasked $49 = b.f1
|
||
|
|
130. cmpne_float $48 = notEqual($48, $49)
|
||
|
|
131. copy_slot_unmasked $49 = a.f2
|
||
|
|
132. copy_slot_unmasked $50 = b.f2
|
||
|
|
133. cmpne_float $49 = notEqual($49, $50)
|
||
|
|
134. copy_slot_unmasked $50 = a.f3
|
||
|
|
135. copy_slot_unmasked $51 = b.f3
|
||
|
|
136. cmpne_float $50 = notEqual($50, $51)
|
||
|
|
137. bitwise_or_int $49 |= $50
|
||
|
|
138. bitwise_or_int $48 |= $49
|
||
|
|
139. merge_condition_mask CondMask = $53 & $54
|
||
|
|
140. branch_if_no_active_lanes branch_if_no_active_lanes +13 (label 10 at #153)
|
||
|
|
141. copy_slot_unmasked $49 = a.f1
|
||
|
|
142. copy_slot_unmasked $50 = b.f1
|
||
|
|
143. cmpeq_float $49 = equal($49, $50)
|
||
|
|
144. copy_slot_unmasked $50 = a.f2
|
||
|
|
145. copy_slot_unmasked $51 = b.f2
|
||
|
|
146. cmpeq_float $50 = equal($50, $51)
|
||
|
|
147. copy_slot_unmasked $51 = a.f3
|
||
|
|
148. copy_slot_unmasked $52 = b.f3
|
||
|
|
149. cmpeq_float $51 = equal($51, $52)
|
||
|
|
150. bitwise_and_int $50 &= $51
|
||
|
|
151. bitwise_and_int $49 &= $50
|
||
|
|
152. copy_slot_masked $48 = Mask($49)
|
||
|
|
153. label label 0x0000000A
|
||
|
|
154. load_condition_mask CondMask = $53
|
||
|
|
155. copy_slot_masked [test_same_structs].result = Mask($48)
|
||
|
|
156. label label 0x00000009
|
||
|
|
157. bitwise_not_int $48 = ~$48
|
||
|
|
158. copy_slot_masked $47 = Mask($48)
|
||
|
|
159. label label 0x00000007
|
||
|
|
160. load_condition_mask CondMask = $12
|
||
|
|
161. zero_slot_unmasked $56 = 0
|
||
|
|
162. merge_condition_mask CondMask = $46 & $47
|
||
|
|
163. branch_if_no_active_lanes branch_if_no_active_lanes +60 (label 6 at #223)
|
||
|
|
164. copy_slot_unmasked eq = NE
|
||
|
|
165. copy_slot_unmasked f1 = F42
|
||
|
|
166. copy_2_slots_unmasked f2, f3 = NAN1, NAN2
|
||
|
|
167. copy_constant $57 = colorGreen(0)
|
||
|
|
168. copy_constant $58 = 0x3F800000 (1.0)
|
||
|
|
169. add_float $57 += $58
|
||
|
|
170. copy_slot_unmasked one = $57
|
||
|
|
171. zero_3_slots_unmasked a.f1, a.f2, a.f3 = 0
|
||
|
|
172. copy_slot_unmasked $57 = f1
|
||
|
|
173. copy_slot_masked a.f1 = Mask($57)
|
||
|
|
174. copy_slot_unmasked $57 = f2
|
||
|
|
175. copy_slot_masked a.f2 = Mask($57)
|
||
|
|
176. copy_slot_unmasked $57 = f3
|
||
|
|
177. copy_slot_masked a.f3 = Mask($57)
|
||
|
|
178. zero_3_slots_unmasked b.f1, b.f2, b.f3 = 0
|
||
|
|
179. copy_slot_unmasked $57 = f1
|
||
|
|
180. copy_slot_unmasked $58 = one
|
||
|
|
181. mul_float $57 *= $58
|
||
|
|
182. copy_slot_masked b.f1 = Mask($57)
|
||
|
|
183. copy_slot_unmasked $57 = f2
|
||
|
|
184. copy_slot_unmasked $58 = one
|
||
|
|
185. mul_float $57 *= $58
|
||
|
|
186. copy_slot_masked b.f2 = Mask($57)
|
||
|
|
187. copy_slot_unmasked $57 = f3
|
||
|
|
188. copy_slot_unmasked $58 = one
|
||
|
|
189. mul_float $57 *= $58
|
||
|
|
190. copy_slot_masked b.f3 = Mask($57)
|
||
|
|
191. store_condition_mask $12 = CondMask
|
||
|
|
192. copy_slot_unmasked $13 = eq
|
||
|
|
193. copy_slot_unmasked $57 = a.f1
|
||
|
|
194. copy_slot_unmasked $58 = b.f1
|
||
|
|
195. cmpne_float $57 = notEqual($57, $58)
|
||
|
|
196. copy_slot_unmasked $58 = a.f2
|
||
|
|
197. copy_slot_unmasked $59 = b.f2
|
||
|
|
198. cmpne_float $58 = notEqual($58, $59)
|
||
|
|
199. copy_slot_unmasked $59 = a.f3
|
||
|
|
200. copy_slot_unmasked $60 = b.f3
|
||
|
|
201. cmpne_float $59 = notEqual($59, $60)
|
||
|
|
202. bitwise_or_int $58 |= $59
|
||
|
|
203. bitwise_or_int $57 |= $58
|
||
|
|
204. merge_condition_mask CondMask = $12 & $13
|
||
|
|
205. branch_if_no_active_lanes branch_if_no_active_lanes +13 (label 12 at #218)
|
||
|
|
206. copy_slot_unmasked $58 = a.f1
|
||
|
|
207. copy_slot_unmasked $59 = b.f1
|
||
|
|
208. cmpeq_float $58 = equal($58, $59)
|
||
|
|
209. copy_slot_unmasked $59 = a.f2
|
||
|
|
210. copy_slot_unmasked $60 = b.f2
|
||
|
|
211. cmpeq_float $59 = equal($59, $60)
|
||
|
|
212. copy_slot_unmasked $60 = a.f3
|
||
|
|
213. copy_slot_unmasked $61 = b.f3
|
||
|
|
214. cmpeq_float $60 = equal($60, $61)
|
||
|
|
215. bitwise_and_int $59 &= $60
|
||
|
|
216. bitwise_and_int $58 &= $59
|
||
|
|
217. copy_slot_masked $57 = Mask($58)
|
||
|
|
218. label label 0x0000000C
|
||
|
|
219. load_condition_mask CondMask = $12
|
||
|
|
220. copy_slot_masked [test_same_structs].result = Mask($57)
|
||
|
|
221. label label 0x0000000B
|
||
|
|
222. copy_slot_masked $56 = Mask($57)
|
||
|
|
223. label label 0x00000006
|
||
|
|
224. load_condition_mask CondMask = $46
|
||
|
|
225. zero_slot_unmasked $26 = 0
|
||
|
|
226. merge_condition_mask CondMask = $55 & $56
|
||
|
|
227. branch_if_no_active_lanes branch_if_no_active_lanes +61 (label 5 at #288)
|
||
|
|
228. copy_slot_unmasked eq = EQ
|
||
|
|
229. copy_slot_unmasked f1 = F42
|
||
|
|
230. copy_2_slots_unmasked f2, f3 = NAN1, NAN2
|
||
|
|
231. copy_constant $27 = colorGreen(0)
|
||
|
|
232. copy_constant $28 = 0x3F800000 (1.0)
|
||
|
|
233. add_float $27 += $28
|
||
|
|
234. copy_slot_unmasked one = $27
|
||
|
|
235. zero_3_slots_unmasked a.f1, a.f2, a.f3 = 0
|
||
|
|
236. copy_slot_unmasked $27 = f1
|
||
|
|
237. copy_slot_masked a.f1 = Mask($27)
|
||
|
|
238. copy_slot_unmasked $27 = f2
|
||
|
|
239. copy_slot_masked a.f2 = Mask($27)
|
||
|
|
240. copy_slot_unmasked $27 = f3
|
||
|
|
241. copy_slot_masked a.f3 = Mask($27)
|
||
|
|
242. zero_3_slots_unmasked b.f1, b.f2, b.f3 = 0
|
||
|
|
243. copy_slot_unmasked $27 = f1
|
||
|
|
244. copy_slot_unmasked $28 = one
|
||
|
|
245. mul_float $27 *= $28
|
||
|
|
246. copy_slot_masked b.f1 = Mask($27)
|
||
|
|
247. copy_slot_unmasked $27 = f2
|
||
|
|
248. copy_slot_unmasked $28 = one
|
||
|
|
249. mul_float $27 *= $28
|
||
|
|
250. copy_slot_masked b.f2 = Mask($27)
|
||
|
|
251. copy_slot_unmasked $27 = f3
|
||
|
|
252. copy_slot_unmasked $28 = one
|
||
|
|
253. mul_float $27 *= $28
|
||
|
|
254. copy_slot_masked b.f3 = Mask($27)
|
||
|
|
255. store_condition_mask $46 = CondMask
|
||
|
|
256. copy_slot_unmasked $47 = eq
|
||
|
|
257. copy_slot_unmasked $27 = a.f1
|
||
|
|
258. copy_slot_unmasked $28 = b.f1
|
||
|
|
259. cmpne_float $27 = notEqual($27, $28)
|
||
|
|
260. copy_slot_unmasked $28 = a.f2
|
||
|
|
261. copy_slot_unmasked $29 = b.f2
|
||
|
|
262. cmpne_float $28 = notEqual($28, $29)
|
||
|
|
263. copy_slot_unmasked $29 = a.f3
|
||
|
|
264. copy_slot_unmasked $30 = b.f3
|
||
|
|
265. cmpne_float $29 = notEqual($29, $30)
|
||
|
|
266. bitwise_or_int $28 |= $29
|
||
|
|
267. bitwise_or_int $27 |= $28
|
||
|
|
268. merge_condition_mask CondMask = $46 & $47
|
||
|
|
269. branch_if_no_active_lanes branch_if_no_active_lanes +13 (label 14 at #282)
|
||
|
|
270. copy_slot_unmasked $28 = a.f1
|
||
|
|
271. copy_slot_unmasked $29 = b.f1
|
||
|
|
272. cmpeq_float $28 = equal($28, $29)
|
||
|
|
273. copy_slot_unmasked $29 = a.f2
|
||
|
|
274. copy_slot_unmasked $30 = b.f2
|
||
|
|
275. cmpeq_float $29 = equal($29, $30)
|
||
|
|
276. copy_slot_unmasked $30 = a.f3
|
||
|
|
277. copy_slot_unmasked $31 = b.f3
|
||
|
|
278. cmpeq_float $30 = equal($30, $31)
|
||
|
|
279. bitwise_and_int $29 &= $30
|
||
|
|
280. bitwise_and_int $28 &= $29
|
||
|
|
281. copy_slot_masked $27 = Mask($28)
|
||
|
|
282. label label 0x0000000E
|
||
|
|
283. load_condition_mask CondMask = $46
|
||
|
|
284. copy_slot_masked [test_same_structs].result = Mask($27)
|
||
|
|
285. label label 0x0000000D
|
||
|
|
286. bitwise_not_int $27 = ~$27
|
||
|
|
287. copy_slot_masked $26 = Mask($27)
|
||
|
|
288. label label 0x00000005
|
||
|
|
289. load_condition_mask CondMask = $55
|
||
|
|
290. zero_slot_unmasked $40 = 0
|
||
|
|
291. merge_condition_mask CondMask = $25 & $26
|
||
|
|
292. branch_if_no_active_lanes branch_if_no_active_lanes +57 (label 4 at #349)
|
||
|
|
293. copy_slot_unmasked eq₁ = NE
|
||
|
|
294. copy_3_slots_unmasked f1₁, f2₁, f3₁ = F42, F43, F44
|
||
|
|
295. copy_constant $41 = colorGreen(0)
|
||
|
|
296. copy_constant $42 = 0x40000000 (2.0)
|
||
|
|
297. add_float $41 += $42
|
||
|
|
298. copy_slot_unmasked two = $41
|
||
|
|
299. zero_3_slots_unmasked a.f1₁, a.f2₁, a.f3₁ = 0
|
||
|
|
300. copy_slot_unmasked $41 = f1₁
|
||
|
|
301. copy_slot_masked a.f1₁ = Mask($41)
|
||
|
|
302. copy_slot_unmasked $41 = f2₁
|
||
|
|
303. copy_slot_masked a.f2₁ = Mask($41)
|
||
|
|
304. copy_slot_unmasked $41 = f3₁
|
||
|
|
305. copy_slot_masked a.f3₁ = Mask($41)
|
||
|
|
306. zero_3_slots_unmasked b.f1₁, b.f2₁, b.f3₁ = 0
|
||
|
|
307. copy_slot_unmasked $41 = f1₁
|
||
|
|
308. copy_slot_unmasked $42 = two
|
||
|
|
309. mul_float $41 *= $42
|
||
|
|
310. copy_slot_masked b.f1₁ = Mask($41)
|
||
|
|
311. copy_slot_unmasked $41 = f2₁
|
||
|
|
312. copy_slot_unmasked $42 = two
|
||
|
|
313. mul_float $41 *= $42
|
||
|
|
314. copy_slot_masked b.f2₁ = Mask($41)
|
||
|
|
315. copy_slot_unmasked $41 = f3₁
|
||
|
|
316. copy_slot_masked b.f3₁ = Mask($41)
|
||
|
|
317. store_condition_mask $55 = CondMask
|
||
|
|
318. copy_slot_unmasked $56 = eq₁
|
||
|
|
319. copy_slot_unmasked $41 = a.f1₁
|
||
|
|
320. copy_slot_unmasked $42 = b.f1₁
|
||
|
|
321. cmpne_float $41 = notEqual($41, $42)
|
||
|
|
322. copy_slot_unmasked $42 = a.f2₁
|
||
|
|
323. copy_slot_unmasked $43 = b.f2₁
|
||
|
|
324. cmpne_float $42 = notEqual($42, $43)
|
||
|
|
325. copy_slot_unmasked $43 = a.f3₁
|
||
|
|
326. copy_slot_unmasked $44 = b.f3₁
|
||
|
|
327. cmpne_float $43 = notEqual($43, $44)
|
||
|
|
328. bitwise_or_int $42 |= $43
|
||
|
|
329. bitwise_or_int $41 |= $42
|
||
|
|
330. merge_condition_mask CondMask = $55 & $56
|
||
|
|
331. branch_if_no_active_lanes branch_if_no_active_lanes +13 (label 16 at #344)
|
||
|
|
332. copy_slot_unmasked $42 = a.f1₁
|
||
|
|
333. copy_slot_unmasked $43 = b.f1₁
|
||
|
|
334. cmpeq_float $42 = equal($42, $43)
|
||
|
|
335. copy_slot_unmasked $43 = a.f2₁
|
||
|
|
336. copy_slot_unmasked $44 = b.f2₁
|
||
|
|
337. cmpeq_float $43 = equal($43, $44)
|
||
|
|
338. copy_slot_unmasked $44 = a.f3₁
|
||
|
|
339. copy_slot_unmasked $45 = b.f3₁
|
||
|
|
340. cmpeq_float $44 = equal($44, $45)
|
||
|
|
341. bitwise_and_int $43 &= $44
|
||
|
|
342. bitwise_and_int $42 &= $43
|
||
|
|
343. copy_slot_masked $41 = Mask($42)
|
||
|
|
344. label label 0x00000010
|
||
|
|
345. load_condition_mask CondMask = $55
|
||
|
|
346. copy_slot_masked [test_diff_structs].result = Mask($41)
|
||
|
|
347. label label 0x0000000F
|
||
|
|
348. copy_slot_masked $40 = Mask($41)
|
||
|
|
349. label label 0x00000004
|
||
|
|
350. load_condition_mask CondMask = $25
|
||
|
|
351. zero_slot_unmasked $33 = 0
|
||
|
|
352. merge_condition_mask CondMask = $39 & $40
|
||
|
|
353. branch_if_no_active_lanes branch_if_no_active_lanes +58 (label 3 at #411)
|
||
|
|
354. copy_slot_unmasked eq₁ = EQ
|
||
|
|
355. copy_3_slots_unmasked f1₁, f2₁, f3₁ = F42, F43, F44
|
||
|
|
356. copy_constant $34 = colorGreen(0)
|
||
|
|
357. copy_constant $35 = 0x40000000 (2.0)
|
||
|
|
358. add_float $34 += $35
|
||
|
|
359. copy_slot_unmasked two = $34
|
||
|
|
360. zero_3_slots_unmasked a.f1₁, a.f2₁, a.f3₁ = 0
|
||
|
|
361. copy_slot_unmasked $34 = f1₁
|
||
|
|
362. copy_slot_masked a.f1₁ = Mask($34)
|
||
|
|
363. copy_slot_unmasked $34 = f2₁
|
||
|
|
364. copy_slot_masked a.f2₁ = Mask($34)
|
||
|
|
365. copy_slot_unmasked $34 = f3₁
|
||
|
|
366. copy_slot_masked a.f3₁ = Mask($34)
|
||
|
|
367. zero_3_slots_unmasked b.f1₁, b.f2₁, b.f3₁ = 0
|
||
|
|
368. copy_slot_unmasked $34 = f1₁
|
||
|
|
369. copy_slot_unmasked $35 = two
|
||
|
|
370. mul_float $34 *= $35
|
||
|
|
371. copy_slot_masked b.f1₁ = Mask($34)
|
||
|
|
372. copy_slot_unmasked $34 = f2₁
|
||
|
|
373. copy_slot_unmasked $35 = two
|
||
|
|
374. mul_float $34 *= $35
|
||
|
|
375. copy_slot_masked b.f2₁ = Mask($34)
|
||
|
|
376. copy_slot_unmasked $34 = f3₁
|
||
|
|
377. copy_slot_masked b.f3₁ = Mask($34)
|
||
|
|
378. store_condition_mask $25 = CondMask
|
||
|
|
379. copy_slot_unmasked $26 = eq₁
|
||
|
|
380. copy_slot_unmasked $34 = a.f1₁
|
||
|
|
381. copy_slot_unmasked $35 = b.f1₁
|
||
|
|
382. cmpne_float $34 = notEqual($34, $35)
|
||
|
|
383. copy_slot_unmasked $35 = a.f2₁
|
||
|
|
384. copy_slot_unmasked $36 = b.f2₁
|
||
|
|
385. cmpne_float $35 = notEqual($35, $36)
|
||
|
|
386. copy_slot_unmasked $36 = a.f3₁
|
||
|
|
387. copy_slot_unmasked $37 = b.f3₁
|
||
|
|
388. cmpne_float $36 = notEqual($36, $37)
|
||
|
|
389. bitwise_or_int $35 |= $36
|
||
|
|
390. bitwise_or_int $34 |= $35
|
||
|
|
391. merge_condition_mask CondMask = $25 & $26
|
||
|
|
392. branch_if_no_active_lanes branch_if_no_active_lanes +13 (label 18 at #405)
|
||
|
|
393. copy_slot_unmasked $35 = a.f1₁
|
||
|
|
394. copy_slot_unmasked $36 = b.f1₁
|
||
|
|
395. cmpeq_float $35 = equal($35, $36)
|
||
|
|
396. copy_slot_unmasked $36 = a.f2₁
|
||
|
|
397. copy_slot_unmasked $37 = b.f2₁
|
||
|
|
398. cmpeq_float $36 = equal($36, $37)
|
||
|
|
399. copy_slot_unmasked $37 = a.f3₁
|
||
|
|
400. copy_slot_unmasked $38 = b.f3₁
|
||
|
|
401. cmpeq_float $37 = equal($37, $38)
|
||
|
|
402. bitwise_and_int $36 &= $37
|
||
|
|
403. bitwise_and_int $35 &= $36
|
||
|
|
404. copy_slot_masked $34 = Mask($35)
|
||
|
|
405. label label 0x00000012
|
||
|
|
406. load_condition_mask CondMask = $25
|
||
|
|
407. copy_slot_masked [test_diff_structs].result = Mask($34)
|
||
|
|
408. label label 0x00000011
|
||
|
|
409. bitwise_not_int $34 = ~$34
|
||
|
|
410. copy_slot_masked $33 = Mask($34)
|
||
|
|
411. label label 0x00000003
|
||
|
|
412. load_condition_mask CondMask = $39
|
||
|
|
413. zero_slot_unmasked $19 = 0
|
||
|
|
414. merge_condition_mask CondMask = $32 & $33
|
||
|
|
415. branch_if_no_active_lanes branch_if_no_active_lanes +59 (label 2 at #474)
|
||
|
|
416. copy_slot_unmasked eq₁ = NE
|
||
|
|
417. copy_slot_unmasked f1₁ = NAN1
|
||
|
|
418. copy_slot_unmasked f2₁ = ZM
|
||
|
|
419. copy_slot_unmasked f3₁ = ZP
|
||
|
|
420. copy_constant $20 = colorGreen(0)
|
||
|
|
421. copy_constant $21 = 0x40000000 (2.0)
|
||
|
|
422. add_float $20 += $21
|
||
|
|
423. copy_slot_unmasked two = $20
|
||
|
|
424. zero_3_slots_unmasked a.f1₁, a.f2₁, a.f3₁ = 0
|
||
|
|
425. copy_slot_unmasked $20 = f1₁
|
||
|
|
426. copy_slot_masked a.f1₁ = Mask($20)
|
||
|
|
427. copy_slot_unmasked $20 = f2₁
|
||
|
|
428. copy_slot_masked a.f2₁ = Mask($20)
|
||
|
|
429. copy_slot_unmasked $20 = f3₁
|
||
|
|
430. copy_slot_masked a.f3₁ = Mask($20)
|
||
|
|
431. zero_3_slots_unmasked b.f1₁, b.f2₁, b.f3₁ = 0
|
||
|
|
432. copy_slot_unmasked $20 = f1₁
|
||
|
|
433. copy_slot_unmasked $21 = two
|
||
|
|
434. mul_float $20 *= $21
|
||
|
|
435. copy_slot_masked b.f1₁ = Mask($20)
|
||
|
|
436. copy_slot_unmasked $20 = f2₁
|
||
|
|
437. copy_slot_unmasked $21 = two
|
||
|
|
438. mul_float $20 *= $21
|
||
|
|
439. copy_slot_masked b.f2₁ = Mask($20)
|
||
|
|
440. copy_slot_unmasked $20 = f3₁
|
||
|
|
441. copy_slot_masked b.f3₁ = Mask($20)
|
||
|
|
442. store_condition_mask $39 = CondMask
|
||
|
|
443. copy_slot_unmasked $40 = eq₁
|
||
|
|
444. copy_slot_unmasked $20 = a.f1₁
|
||
|
|
445. copy_slot_unmasked $21 = b.f1₁
|
||
|
|
446. cmpne_float $20 = notEqual($20, $21)
|
||
|
|
447. copy_slot_unmasked $21 = a.f2₁
|
||
|
|
448. copy_slot_unmasked $22 = b.f2₁
|
||
|
|
449. cmpne_float $21 = notEqual($21, $22)
|
||
|
|
450. copy_slot_unmasked $22 = a.f3₁
|
||
|
|
451. copy_slot_unmasked $23 = b.f3₁
|
||
|
|
452. cmpne_float $22 = notEqual($22, $23)
|
||
|
|
453. bitwise_or_int $21 |= $22
|
||
|
|
454. bitwise_or_int $20 |= $21
|
||
|
|
455. merge_condition_mask CondMask = $39 & $40
|
||
|
|
456. branch_if_no_active_lanes branch_if_no_active_lanes +13 (label 20 at #469)
|
||
|
|
457. copy_slot_unmasked $21 = a.f1₁
|
||
|
|
458. copy_slot_unmasked $22 = b.f1₁
|
||
|
|
459. cmpeq_float $21 = equal($21, $22)
|
||
|
|
460. copy_slot_unmasked $22 = a.f2₁
|
||
|
|
461. copy_slot_unmasked $23 = b.f2₁
|
||
|
|
462. cmpeq_float $22 = equal($22, $23)
|
||
|
|
463. copy_slot_unmasked $23 = a.f3₁
|
||
|
|
464. copy_slot_unmasked $24 = b.f3₁
|
||
|
|
465. cmpeq_float $23 = equal($23, $24)
|
||
|
|
466. bitwise_and_int $22 &= $23
|
||
|
|
467. bitwise_and_int $21 &= $22
|
||
|
|
468. copy_slot_masked $20 = Mask($21)
|
||
|
|
469. label label 0x00000014
|
||
|
|
470. load_condition_mask CondMask = $39
|
||
|
|
471. copy_slot_masked [test_diff_structs].result = Mask($20)
|
||
|
|
472. label label 0x00000013
|
||
|
|
473. copy_slot_masked $19 = Mask($20)
|
||
|
|
474. label label 0x00000002
|
||
|
|
475. load_condition_mask CondMask = $32
|
||
|
|
476. zero_slot_unmasked $0 = 0
|
||
|
|
477. merge_condition_mask CondMask = $18 & $19
|
||
|
|
478. branch_if_no_active_lanes branch_if_no_active_lanes +61 (label 1 at #539)
|
||
|
|
479. copy_slot_unmasked eq₁ = EQ
|
||
|
|
480. copy_slot_unmasked f1₁ = NAN1
|
||
|
|
481. copy_slot_unmasked f2₁ = ZM
|
||
|
|
482. copy_slot_unmasked f3₁ = ZP
|
||
|
|
483. copy_constant $1 = colorGreen(0)
|
||
|
|
484. copy_constant $2 = 0x40000000 (2.0)
|
||
|
|
485. add_float $1 += $2
|
||
|
|
486. copy_slot_unmasked two = $1
|
||
|
|
487. zero_3_slots_unmasked a.f1₁, a.f2₁, a.f3₁ = 0
|
||
|
|
488. copy_slot_unmasked $1 = f1₁
|
||
|
|
489. copy_slot_masked a.f1₁ = Mask($1)
|
||
|
|
490. copy_slot_unmasked $1 = f2₁
|
||
|
|
491. copy_slot_masked a.f2₁ = Mask($1)
|
||
|
|
492. copy_slot_unmasked $1 = f3₁
|
||
|
|
493. copy_slot_masked a.f3₁ = Mask($1)
|
||
|
|
494. zero_3_slots_unmasked b.f1₁, b.f2₁, b.f3₁ = 0
|
||
|
|
495. copy_slot_unmasked $1 = f1₁
|
||
|
|
496. copy_slot_unmasked $2 = two
|
||
|
|
497. mul_float $1 *= $2
|
||
|
|
498. copy_slot_masked b.f1₁ = Mask($1)
|
||
|
|
499. copy_slot_unmasked $1 = f2₁
|
||
|
|
500. copy_slot_unmasked $2 = two
|
||
|
|
501. mul_float $1 *= $2
|
||
|
|
502. stack_rewind
|
||
|
|
503. copy_slot_masked b.f2₁ = Mask($1)
|
||
|
|
504. copy_slot_unmasked $1 = f3₁
|
||
|
|
505. copy_slot_masked b.f3₁ = Mask($1)
|
||
|
|
506. store_condition_mask $32 = CondMask
|
||
|
|
507. copy_slot_unmasked $33 = eq₁
|
||
|
|
508. copy_slot_unmasked $1 = a.f1₁
|
||
|
|
509. copy_slot_unmasked $2 = b.f1₁
|
||
|
|
510. cmpne_float $1 = notEqual($1, $2)
|
||
|
|
511. copy_slot_unmasked $2 = a.f2₁
|
||
|
|
512. copy_slot_unmasked $3 = b.f2₁
|
||
|
|
513. cmpne_float $2 = notEqual($2, $3)
|
||
|
|
514. copy_slot_unmasked $3 = a.f3₁
|
||
|
|
515. copy_slot_unmasked $4 = b.f3₁
|
||
|
|
516. cmpne_float $3 = notEqual($3, $4)
|
||
|
|
517. bitwise_or_int $2 |= $3
|
||
|
|
518. bitwise_or_int $1 |= $2
|
||
|
|
519. merge_condition_mask CondMask = $32 & $33
|
||
|
|
520. branch_if_no_active_lanes branch_if_no_active_lanes +13 (label 22 at #533)
|
||
|
|
521. copy_slot_unmasked $2 = a.f1₁
|
||
|
|
522. copy_slot_unmasked $3 = b.f1₁
|
||
|
|
523. cmpeq_float $2 = equal($2, $3)
|
||
|
|
524. copy_slot_unmasked $3 = a.f2₁
|
||
|
|
525. copy_slot_unmasked $4 = b.f2₁
|
||
|
|
526. cmpeq_float $3 = equal($3, $4)
|
||
|
|
527. copy_slot_unmasked $4 = a.f3₁
|
||
|
|
528. copy_slot_unmasked $5 = b.f3₁
|
||
|
|
529. cmpeq_float $4 = equal($4, $5)
|
||
|
|
530. bitwise_and_int $3 &= $4
|
||
|
|
531. bitwise_and_int $2 &= $3
|
||
|
|
532. copy_slot_masked $1 = Mask($2)
|
||
|
|
533. label label 0x00000016
|
||
|
|
534. load_condition_mask CondMask = $32
|
||
|
|
535. copy_slot_masked [test_diff_structs].result = Mask($1)
|
||
|
|
536. label label 0x00000015
|
||
|
|
537. bitwise_not_int $1 = ~$1
|
||
|
|
538. copy_slot_masked $0 = Mask($1)
|
||
|
|
539. label label 0x00000001
|
||
|
|
540. load_condition_mask CondMask = $18
|
||
|
|
541. swizzle_4 $0..3 = ($0..3).xxxx
|
||
|
|
542. copy_4_constants $4..7 = colorRed
|
||
|
|
543. copy_4_constants $8..11 = colorGreen
|
||
|
|
544. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3)
|
||
|
|
545. copy_4_slots_unmasked [main].result = $0..3
|
||
|
|
546. load_src src.rgba = [main].result
|