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