613 lines
36 KiB
Plaintext
613 lines
36 KiB
Plaintext
1. store_src_rg coords = src.rg
|
|
2. init_lane_masks CondMask = LoopMask = RetMask = true
|
|
3. store_condition_mask $76 = CondMask
|
|
4. store_condition_mask $56 = CondMask
|
|
5. store_condition_mask $40 = CondMask
|
|
6. store_condition_mask $27 = CondMask
|
|
7. store_condition_mask $18 = CondMask
|
|
8. branch_if_no_active_lanes branch_if_no_active_lanes +57 (label 6 at #65)
|
|
9. store_return_mask $19 = RetMask
|
|
10. zero_4_slots_unmasked v, vv = 0
|
|
11. copy_2_constants $20..21 = testInputs(0..1)
|
|
12. copy_2_slots_masked v = Mask($20..21)
|
|
13. copy_2_constants $20..21 = testInputs(0..1)
|
|
14. copy_2_slots_masked v = Mask($20..21)
|
|
15. store_condition_mask $20 = CondMask
|
|
16. copy_2_slots_unmasked $21..22 = v
|
|
17. copy_2_constants $23..24 = testInputs(0..1)
|
|
18. cmpne_2_floats $21..22 = notEqual($21..22, $23..24)
|
|
19. bitwise_or_int $21 |= $22
|
|
20. merge_condition_mask CondMask = $20 & $21
|
|
21. zero_slot_unmasked $22 = 0
|
|
22. copy_slot_masked [test_no_op_mat2_X_vec2].result = Mask($22)
|
|
23. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
24. load_condition_mask CondMask = $20
|
|
25. store_condition_mask $20 = CondMask
|
|
26. copy_2_slots_unmasked $21..22 = v
|
|
27. copy_2_constants $23..24 = testInputs(0..1)
|
|
28. cmpne_2_floats $21..22 = notEqual($21..22, $23..24)
|
|
29. bitwise_or_int $21 |= $22
|
|
30. merge_condition_mask CondMask = $20 & $21
|
|
31. zero_slot_unmasked $22 = 0
|
|
32. copy_slot_masked [test_no_op_mat2_X_vec2].result = Mask($22)
|
|
33. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
34. load_condition_mask CondMask = $20
|
|
35. zero_2_slots_unmasked $20..21 = 0
|
|
36. copy_2_constants $22..23 = testInputs(0..1)
|
|
37. sub_2_floats $20..21 -= $22..23
|
|
38. copy_2_slots_masked v = Mask($20..21)
|
|
39. zero_2_slots_unmasked $20..21 = 0
|
|
40. copy_2_constants $22..23 = testInputs(0..1)
|
|
41. sub_2_floats $20..21 -= $22..23
|
|
42. copy_2_slots_masked v = Mask($20..21)
|
|
43. store_condition_mask $20 = CondMask
|
|
44. copy_2_slots_unmasked $21..22 = v
|
|
45. zero_2_slots_unmasked $23..24 = 0
|
|
46. copy_2_constants $25..26 = testInputs(0..1)
|
|
47. sub_2_floats $23..24 -= $25..26
|
|
48. cmpne_2_floats $21..22 = notEqual($21..22, $23..24)
|
|
49. bitwise_or_int $21 |= $22
|
|
50. merge_condition_mask CondMask = $20 & $21
|
|
51. zero_slot_unmasked $22 = 0
|
|
52. copy_slot_masked [test_no_op_mat2_X_vec2].result = Mask($22)
|
|
53. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
54. load_condition_mask CondMask = $20
|
|
55. zero_2_slots_unmasked $20..21 = 0
|
|
56. copy_2_slots_masked vv = Mask($20..21)
|
|
57. zero_2_slots_unmasked $20..21 = 0
|
|
58. copy_2_slots_masked vv = Mask($20..21)
|
|
59. zero_2_slots_unmasked $22..23 = 0
|
|
60. cmpeq_2_floats $20..21 = equal($20..21, $22..23)
|
|
61. bitwise_and_int $20 &= $21
|
|
62. copy_slot_masked [test_no_op_mat2_X_vec2].result = Mask($20)
|
|
63. load_return_mask RetMask = $19
|
|
64. copy_slot_unmasked $19 = [test_no_op_mat2_X_vec2].result
|
|
65. label label 0x00000006
|
|
66. zero_slot_unmasked $28 = 0
|
|
67. merge_condition_mask CondMask = $18 & $19
|
|
68. branch_if_no_active_lanes branch_if_no_active_lanes +64 (label 5 at #132)
|
|
69. store_return_mask $29 = RetMask
|
|
70. zero_4_slots_unmasked v₁, vv₁(0) = 0
|
|
71. zero_2_slots_unmasked vv₁(1..2) = 0
|
|
72. copy_3_constants $30..32 = testInputs(0..2)
|
|
73. copy_3_slots_masked v₁ = Mask($30..32)
|
|
74. copy_3_constants $30..32 = testInputs(0..2)
|
|
75. copy_3_slots_masked v₁ = Mask($30..32)
|
|
76. store_condition_mask $30 = CondMask
|
|
77. copy_3_slots_unmasked $31..33 = v₁
|
|
78. copy_3_constants $34..36 = testInputs(0..2)
|
|
79. cmpne_3_floats $31..33 = notEqual($31..33, $34..36)
|
|
80. bitwise_or_int $32 |= $33
|
|
81. bitwise_or_int $31 |= $32
|
|
82. merge_condition_mask CondMask = $30 & $31
|
|
83. zero_slot_unmasked $32 = 0
|
|
84. copy_slot_masked [test_no_op_mat3_X_vec3].result = Mask($32)
|
|
85. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
86. load_condition_mask CondMask = $30
|
|
87. store_condition_mask $30 = CondMask
|
|
88. copy_3_slots_unmasked $31..33 = v₁
|
|
89. copy_3_constants $34..36 = testInputs(0..2)
|
|
90. cmpne_3_floats $31..33 = notEqual($31..33, $34..36)
|
|
91. bitwise_or_int $32 |= $33
|
|
92. bitwise_or_int $31 |= $32
|
|
93. merge_condition_mask CondMask = $30 & $31
|
|
94. zero_slot_unmasked $32 = 0
|
|
95. copy_slot_masked [test_no_op_mat3_X_vec3].result = Mask($32)
|
|
96. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
97. load_condition_mask CondMask = $30
|
|
98. zero_3_slots_unmasked $30..32 = 0
|
|
99. copy_3_constants $33..35 = testInputs(0..2)
|
|
100. sub_3_floats $30..32 -= $33..35
|
|
101. copy_3_slots_masked v₁ = Mask($30..32)
|
|
102. zero_3_slots_unmasked $30..32 = 0
|
|
103. copy_3_constants $33..35 = testInputs(0..2)
|
|
104. sub_3_floats $30..32 -= $33..35
|
|
105. copy_3_slots_masked v₁ = Mask($30..32)
|
|
106. store_condition_mask $30 = CondMask
|
|
107. copy_3_slots_unmasked $31..33 = v₁
|
|
108. zero_3_slots_unmasked $34..36 = 0
|
|
109. copy_3_constants $37..39 = testInputs(0..2)
|
|
110. sub_3_floats $34..36 -= $37..39
|
|
111. cmpne_3_floats $31..33 = notEqual($31..33, $34..36)
|
|
112. bitwise_or_int $32 |= $33
|
|
113. bitwise_or_int $31 |= $32
|
|
114. merge_condition_mask CondMask = $30 & $31
|
|
115. zero_slot_unmasked $32 = 0
|
|
116. copy_slot_masked [test_no_op_mat3_X_vec3].result = Mask($32)
|
|
117. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
118. load_condition_mask CondMask = $30
|
|
119. zero_3_slots_unmasked $30..32 = 0
|
|
120. copy_3_slots_masked vv₁ = Mask($30..32)
|
|
121. zero_3_slots_unmasked $30..32 = 0
|
|
122. copy_3_slots_masked vv₁ = Mask($30..32)
|
|
123. zero_3_slots_unmasked $33..35 = 0
|
|
124. cmpeq_3_floats $30..32 = equal($30..32, $33..35)
|
|
125. bitwise_and_int $31 &= $32
|
|
126. bitwise_and_int $30 &= $31
|
|
127. copy_slot_masked [test_no_op_mat3_X_vec3].result = Mask($30)
|
|
128. load_return_mask RetMask = $29
|
|
129. copy_slot_unmasked $29 = [test_no_op_mat3_X_vec3].result
|
|
130. label label 0x00000007
|
|
131. copy_slot_masked $28 = Mask($29)
|
|
132. label label 0x00000005
|
|
133. load_condition_mask CondMask = $18
|
|
134. zero_slot_unmasked $41 = 0
|
|
135. merge_condition_mask CondMask = $27 & $28
|
|
136. branch_if_no_active_lanes branch_if_no_active_lanes +64 (label 4 at #200)
|
|
137. store_return_mask $42 = RetMask
|
|
138. zero_4_slots_unmasked v₂ = 0
|
|
139. zero_4_slots_unmasked vv₂ = 0
|
|
140. copy_4_constants $43..46 = testInputs
|
|
141. copy_4_slots_masked v₂ = Mask($43..46)
|
|
142. copy_4_constants $43..46 = testInputs
|
|
143. copy_4_slots_masked v₂ = Mask($43..46)
|
|
144. store_condition_mask $43 = CondMask
|
|
145. copy_4_slots_unmasked $44..47 = v₂
|
|
146. copy_4_constants $48..51 = testInputs
|
|
147. cmpne_4_floats $44..47 = notEqual($44..47, $48..51)
|
|
148. bitwise_or_2_ints $44..45 |= $46..47
|
|
149. bitwise_or_int $44 |= $45
|
|
150. merge_condition_mask CondMask = $43 & $44
|
|
151. zero_slot_unmasked $45 = 0
|
|
152. copy_slot_masked [test_no_op_mat4_X_vec4].result = Mask($45)
|
|
153. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
154. load_condition_mask CondMask = $43
|
|
155. store_condition_mask $43 = CondMask
|
|
156. copy_4_slots_unmasked $44..47 = v₂
|
|
157. copy_4_constants $48..51 = testInputs
|
|
158. cmpne_4_floats $44..47 = notEqual($44..47, $48..51)
|
|
159. bitwise_or_2_ints $44..45 |= $46..47
|
|
160. bitwise_or_int $44 |= $45
|
|
161. merge_condition_mask CondMask = $43 & $44
|
|
162. zero_slot_unmasked $45 = 0
|
|
163. copy_slot_masked [test_no_op_mat4_X_vec4].result = Mask($45)
|
|
164. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
165. load_condition_mask CondMask = $43
|
|
166. zero_4_slots_unmasked $43..46 = 0
|
|
167. copy_4_constants $47..50 = testInputs
|
|
168. sub_4_floats $43..46 -= $47..50
|
|
169. copy_4_slots_masked v₂ = Mask($43..46)
|
|
170. zero_4_slots_unmasked $43..46 = 0
|
|
171. copy_4_constants $47..50 = testInputs
|
|
172. sub_4_floats $43..46 -= $47..50
|
|
173. copy_4_slots_masked v₂ = Mask($43..46)
|
|
174. store_condition_mask $43 = CondMask
|
|
175. copy_4_slots_unmasked $44..47 = v₂
|
|
176. zero_4_slots_unmasked $48..51 = 0
|
|
177. copy_4_constants $52..55 = testInputs
|
|
178. sub_4_floats $48..51 -= $52..55
|
|
179. cmpne_4_floats $44..47 = notEqual($44..47, $48..51)
|
|
180. bitwise_or_2_ints $44..45 |= $46..47
|
|
181. bitwise_or_int $44 |= $45
|
|
182. merge_condition_mask CondMask = $43 & $44
|
|
183. zero_slot_unmasked $45 = 0
|
|
184. copy_slot_masked [test_no_op_mat4_X_vec4].result = Mask($45)
|
|
185. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
186. load_condition_mask CondMask = $43
|
|
187. zero_4_slots_unmasked $43..46 = 0
|
|
188. copy_4_slots_masked vv₂ = Mask($43..46)
|
|
189. zero_4_slots_unmasked $43..46 = 0
|
|
190. copy_4_slots_masked vv₂ = Mask($43..46)
|
|
191. zero_4_slots_unmasked $47..50 = 0
|
|
192. cmpeq_4_floats $43..46 = equal($43..46, $47..50)
|
|
193. bitwise_and_2_ints $43..44 &= $45..46
|
|
194. bitwise_and_int $43 &= $44
|
|
195. copy_slot_masked [test_no_op_mat4_X_vec4].result = Mask($43)
|
|
196. load_return_mask RetMask = $42
|
|
197. copy_slot_unmasked $42 = [test_no_op_mat4_X_vec4].result
|
|
198. label label 0x00000008
|
|
199. copy_slot_masked $41 = Mask($42)
|
|
200. label label 0x00000004
|
|
201. load_condition_mask CondMask = $27
|
|
202. zero_slot_unmasked $57 = 0
|
|
203. merge_condition_mask CondMask = $40 & $41
|
|
204. branch_if_no_active_lanes branch_if_no_active_lanes +100 (label 3 at #304)
|
|
205. store_return_mask $58 = RetMask
|
|
206. copy_constant $59 = 0xBF800000 (-1.0)
|
|
207. copy_slot_unmasked $60 = $59
|
|
208. copy_2_slots_unmasked n = $59..60
|
|
209. copy_constant $59 = 0x3F800000 (1.0)
|
|
210. copy_slot_unmasked $60 = $59
|
|
211. copy_2_slots_unmasked i = $59..60
|
|
212. zero_4_slots_unmasked z, v₃ = 0
|
|
213. zero_2_slots_unmasked vv₃ = 0
|
|
214. zero_2_slots_unmasked $59..60 = 0
|
|
215. copy_2_slots_masked vv₃ = Mask($59..60)
|
|
216. zero_2_slots_unmasked $59..60 = 0
|
|
217. copy_2_slots_masked vv₃ = Mask($59..60)
|
|
218. store_condition_mask $59 = CondMask
|
|
219. copy_2_slots_unmasked $60..61 = vv₃
|
|
220. copy_2_slots_unmasked $62..63 = z
|
|
221. cmpne_2_floats $60..61 = notEqual($60..61, $62..63)
|
|
222. bitwise_or_int $60 |= $61
|
|
223. merge_condition_mask CondMask = $59 & $60
|
|
224. zero_slot_unmasked $61 = 0
|
|
225. copy_slot_masked [test_no_op_vec2_X_mat2].result = Mask($61)
|
|
226. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
227. load_condition_mask CondMask = $59
|
|
228. copy_2_slots_unmasked $27..28 = i
|
|
229. copy_4_constants $29..32 = testMatrix2x2
|
|
230. copy_4_slots_unmasked $59..62 = $27..30
|
|
231. dot_2_floats $59 = dot($59..60, $61..62)
|
|
232. copy_2_slots_unmasked $60..61 = $27..28
|
|
233. copy_2_slots_unmasked $62..63 = $31..32
|
|
234. dot_2_floats $60 = dot($60..61, $62..63)
|
|
235. copy_2_slots_masked v₃ = Mask($59..60)
|
|
236. store_condition_mask $59 = CondMask
|
|
237. copy_2_slots_unmasked $60..61 = v₃
|
|
238. copy_constant $62 = 0x40400000 (3.0)
|
|
239. copy_constant $63 = 0x40E00000 (7.0)
|
|
240. cmpne_2_floats $60..61 = notEqual($60..61, $62..63)
|
|
241. bitwise_or_int $60 |= $61
|
|
242. merge_condition_mask CondMask = $59 & $60
|
|
243. zero_slot_unmasked $61 = 0
|
|
244. copy_slot_masked [test_no_op_vec2_X_mat2].result = Mask($61)
|
|
245. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
246. load_condition_mask CondMask = $59
|
|
247. copy_4_constants $27..30 = testMatrix2x2
|
|
248. swizzle_3 $28..30 = ($28..30).yxz
|
|
249. copy_2_slots_unmasked $31..32 = i
|
|
250. copy_2_slots_unmasked $59..60 = $27..28
|
|
251. copy_2_slots_unmasked $61..62 = $31..32
|
|
252. dot_2_floats $59 = dot($59..60, $61..62)
|
|
253. copy_4_slots_unmasked $60..63 = $29..32
|
|
254. dot_2_floats $60 = dot($60..61, $62..63)
|
|
255. copy_2_slots_masked v₃ = Mask($59..60)
|
|
256. store_condition_mask $59 = CondMask
|
|
257. copy_2_slots_unmasked $60..61 = v₃
|
|
258. copy_constant $62 = 0x40800000 (4.0)
|
|
259. copy_constant $63 = 0x40C00000 (6.0)
|
|
260. cmpne_2_floats $60..61 = notEqual($60..61, $62..63)
|
|
261. bitwise_or_int $60 |= $61
|
|
262. merge_condition_mask CondMask = $59 & $60
|
|
263. zero_slot_unmasked $61 = 0
|
|
264. copy_slot_masked [test_no_op_vec2_X_mat2].result = Mask($61)
|
|
265. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
266. load_condition_mask CondMask = $59
|
|
267. copy_2_slots_unmasked $27..28 = n
|
|
268. copy_4_constants $29..32 = testMatrix2x2
|
|
269. copy_4_slots_unmasked $59..62 = $27..30
|
|
270. dot_2_floats $59 = dot($59..60, $61..62)
|
|
271. copy_2_slots_unmasked $60..61 = $27..28
|
|
272. copy_2_slots_unmasked $62..63 = $31..32
|
|
273. dot_2_floats $60 = dot($60..61, $62..63)
|
|
274. copy_2_slots_masked v₃ = Mask($59..60)
|
|
275. store_condition_mask $59 = CondMask
|
|
276. copy_2_slots_unmasked $60..61 = v₃
|
|
277. copy_constant $62 = 0xC0400000 (-3.0)
|
|
278. copy_constant $63 = 0xC0E00000 (-7.0)
|
|
279. cmpne_2_floats $60..61 = notEqual($60..61, $62..63)
|
|
280. bitwise_or_int $60 |= $61
|
|
281. merge_condition_mask CondMask = $59 & $60
|
|
282. zero_slot_unmasked $61 = 0
|
|
283. copy_slot_masked [test_no_op_vec2_X_mat2].result = Mask($61)
|
|
284. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
285. load_condition_mask CondMask = $59
|
|
286. copy_4_constants $27..30 = testMatrix2x2
|
|
287. swizzle_3 $28..30 = ($28..30).yxz
|
|
288. copy_2_slots_unmasked $31..32 = n
|
|
289. copy_2_slots_unmasked $59..60 = $27..28
|
|
290. copy_2_slots_unmasked $61..62 = $31..32
|
|
291. dot_2_floats $59 = dot($59..60, $61..62)
|
|
292. copy_4_slots_unmasked $60..63 = $29..32
|
|
293. dot_2_floats $60 = dot($60..61, $62..63)
|
|
294. copy_2_slots_masked v₃ = Mask($59..60)
|
|
295. copy_constant $61 = 0xC0800000 (-4.0)
|
|
296. copy_constant $62 = 0xC0C00000 (-6.0)
|
|
297. cmpeq_2_floats $59..60 = equal($59..60, $61..62)
|
|
298. bitwise_and_int $59 &= $60
|
|
299. copy_slot_masked [test_no_op_vec2_X_mat2].result = Mask($59)
|
|
300. load_return_mask RetMask = $58
|
|
301. copy_slot_unmasked $58 = [test_no_op_vec2_X_mat2].result
|
|
302. label label 0x00000009
|
|
303. copy_slot_masked $57 = Mask($58)
|
|
304. label label 0x00000003
|
|
305. load_condition_mask CondMask = $40
|
|
306. zero_slot_unmasked $77 = 0
|
|
307. merge_condition_mask CondMask = $56 & $57
|
|
308. branch_if_no_active_lanes branch_if_no_active_lanes +134 (label 2 at #442)
|
|
309. store_return_mask $78 = RetMask
|
|
310. copy_constant $79 = 0xBF800000 (-1.0)
|
|
311. swizzle_3 $79..81 = ($79..81).xxx
|
|
312. copy_3_slots_unmasked n₁ = $79..81
|
|
313. copy_constant $79 = 0x3F800000 (1.0)
|
|
314. swizzle_3 $79..81 = ($79..81).xxx
|
|
315. copy_3_slots_unmasked i₁ = $79..81
|
|
316. zero_4_slots_unmasked z₁, v₄(0) = 0
|
|
317. zero_4_slots_unmasked v₄(1..2), vv₄(0..1) = 0
|
|
318. zero_slot_unmasked vv₄(2) = 0
|
|
319. zero_3_slots_unmasked $79..81 = 0
|
|
320. copy_3_slots_masked vv₄ = Mask($79..81)
|
|
321. zero_3_slots_unmasked $79..81 = 0
|
|
322. copy_3_slots_masked vv₄ = Mask($79..81)
|
|
323. store_condition_mask $79 = CondMask
|
|
324. copy_3_slots_unmasked $80..82 = vv₄
|
|
325. copy_3_slots_unmasked $83..85 = z₁
|
|
326. cmpne_3_floats $80..82 = notEqual($80..82, $83..85)
|
|
327. bitwise_or_int $81 |= $82
|
|
328. bitwise_or_int $80 |= $81
|
|
329. merge_condition_mask CondMask = $79 & $80
|
|
330. zero_slot_unmasked $81 = 0
|
|
331. copy_slot_masked [test_no_op_vec3_X_mat3].result = Mask($81)
|
|
332. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
333. load_condition_mask CondMask = $79
|
|
334. copy_3_slots_unmasked $40..42 = i₁
|
|
335. copy_4_constants $43..46 = testMatrix3x3(0..3)
|
|
336. copy_4_constants $47..50 = testMatrix3x3(4..7)
|
|
337. copy_constant $51 = testMatrix3x3(8)
|
|
338. copy_4_slots_unmasked $79..82 = $40..43
|
|
339. copy_2_slots_unmasked $83..84 = $44..45
|
|
340. dot_3_floats $79 = dot($79..81, $82..84)
|
|
341. copy_3_slots_unmasked $80..82 = $40..42
|
|
342. copy_3_slots_unmasked $83..85 = $46..48
|
|
343. dot_3_floats $80 = dot($80..82, $83..85)
|
|
344. copy_3_slots_unmasked $81..83 = $40..42
|
|
345. copy_3_slots_unmasked $84..86 = $49..51
|
|
346. dot_3_floats $81 = dot($81..83, $84..86)
|
|
347. copy_3_slots_masked v₄ = Mask($79..81)
|
|
348. store_condition_mask $79 = CondMask
|
|
349. copy_3_slots_unmasked $80..82 = v₄
|
|
350. copy_constant $83 = 0x40C00000 (6.0)
|
|
351. copy_constant $84 = 0x41700000 (15.0)
|
|
352. copy_constant $85 = 0x41C00000 (24.0)
|
|
353. cmpne_3_floats $80..82 = notEqual($80..82, $83..85)
|
|
354. bitwise_or_int $81 |= $82
|
|
355. bitwise_or_int $80 |= $81
|
|
356. merge_condition_mask CondMask = $79 & $80
|
|
357. zero_slot_unmasked $81 = 0
|
|
358. copy_slot_masked [test_no_op_vec3_X_mat3].result = Mask($81)
|
|
359. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
360. load_condition_mask CondMask = $79
|
|
361. copy_4_constants $40..43 = testMatrix3x3(0..3)
|
|
362. copy_4_constants $44..47 = testMatrix3x3(4..7)
|
|
363. copy_constant $48 = testMatrix3x3(8)
|
|
364. shuffle $41..48 = ($41..48)[2 5 0 3 6 1 4 7]
|
|
365. copy_3_slots_unmasked $49..51 = i₁
|
|
366. copy_3_slots_unmasked $79..81 = $40..42
|
|
367. copy_3_slots_unmasked $82..84 = $49..51
|
|
368. dot_3_floats $79 = dot($79..81, $82..84)
|
|
369. copy_3_slots_unmasked $80..82 = $43..45
|
|
370. copy_3_slots_unmasked $83..85 = $49..51
|
|
371. dot_3_floats $80 = dot($80..82, $83..85)
|
|
372. copy_4_slots_unmasked $81..84 = $46..49
|
|
373. copy_2_slots_unmasked $85..86 = $50..51
|
|
374. dot_3_floats $81 = dot($81..83, $84..86)
|
|
375. copy_3_slots_masked v₄ = Mask($79..81)
|
|
376. store_condition_mask $79 = CondMask
|
|
377. copy_3_slots_unmasked $80..82 = v₄
|
|
378. copy_constant $83 = 0x41400000 (12.0)
|
|
379. copy_constant $84 = 0x41700000 (15.0)
|
|
380. copy_constant $85 = 0x41900000 (18.0)
|
|
381. cmpne_3_floats $80..82 = notEqual($80..82, $83..85)
|
|
382. bitwise_or_int $81 |= $82
|
|
383. bitwise_or_int $80 |= $81
|
|
384. merge_condition_mask CondMask = $79 & $80
|
|
385. zero_slot_unmasked $81 = 0
|
|
386. copy_slot_masked [test_no_op_vec3_X_mat3].result = Mask($81)
|
|
387. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
388. load_condition_mask CondMask = $79
|
|
389. copy_3_slots_unmasked $40..42 = n₁
|
|
390. copy_4_constants $43..46 = testMatrix3x3(0..3)
|
|
391. copy_4_constants $47..50 = testMatrix3x3(4..7)
|
|
392. copy_constant $51 = testMatrix3x3(8)
|
|
393. copy_4_slots_unmasked $79..82 = $40..43
|
|
394. copy_2_slots_unmasked $83..84 = $44..45
|
|
395. dot_3_floats $79 = dot($79..81, $82..84)
|
|
396. copy_3_slots_unmasked $80..82 = $40..42
|
|
397. copy_3_slots_unmasked $83..85 = $46..48
|
|
398. dot_3_floats $80 = dot($80..82, $83..85)
|
|
399. copy_3_slots_unmasked $81..83 = $40..42
|
|
400. copy_3_slots_unmasked $84..86 = $49..51
|
|
401. dot_3_floats $81 = dot($81..83, $84..86)
|
|
402. copy_3_slots_masked v₄ = Mask($79..81)
|
|
403. store_condition_mask $79 = CondMask
|
|
404. copy_3_slots_unmasked $80..82 = v₄
|
|
405. copy_constant $83 = 0xC0C00000 (-6.0)
|
|
406. copy_constant $84 = 0xC1700000 (-15.0)
|
|
407. copy_constant $85 = 0xC1C00000 (-24.0)
|
|
408. cmpne_3_floats $80..82 = notEqual($80..82, $83..85)
|
|
409. bitwise_or_int $81 |= $82
|
|
410. bitwise_or_int $80 |= $81
|
|
411. merge_condition_mask CondMask = $79 & $80
|
|
412. zero_slot_unmasked $81 = 0
|
|
413. copy_slot_masked [test_no_op_vec3_X_mat3].result = Mask($81)
|
|
414. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
415. load_condition_mask CondMask = $79
|
|
416. copy_4_constants $40..43 = testMatrix3x3(0..3)
|
|
417. copy_4_constants $44..47 = testMatrix3x3(4..7)
|
|
418. copy_constant $48 = testMatrix3x3(8)
|
|
419. shuffle $41..48 = ($41..48)[2 5 0 3 6 1 4 7]
|
|
420. copy_3_slots_unmasked $49..51 = n₁
|
|
421. copy_3_slots_unmasked $79..81 = $40..42
|
|
422. copy_3_slots_unmasked $82..84 = $49..51
|
|
423. dot_3_floats $79 = dot($79..81, $82..84)
|
|
424. copy_3_slots_unmasked $80..82 = $43..45
|
|
425. copy_3_slots_unmasked $83..85 = $49..51
|
|
426. dot_3_floats $80 = dot($80..82, $83..85)
|
|
427. copy_4_slots_unmasked $81..84 = $46..49
|
|
428. copy_2_slots_unmasked $85..86 = $50..51
|
|
429. dot_3_floats $81 = dot($81..83, $84..86)
|
|
430. copy_3_slots_masked v₄ = Mask($79..81)
|
|
431. copy_constant $82 = 0xC1400000 (-12.0)
|
|
432. copy_constant $83 = 0xC1700000 (-15.0)
|
|
433. copy_constant $84 = 0xC1900000 (-18.0)
|
|
434. cmpeq_3_floats $79..81 = equal($79..81, $82..84)
|
|
435. bitwise_and_int $80 &= $81
|
|
436. bitwise_and_int $79 &= $80
|
|
437. copy_slot_masked [test_no_op_vec3_X_mat3].result = Mask($79)
|
|
438. load_return_mask RetMask = $78
|
|
439. copy_slot_unmasked $78 = [test_no_op_vec3_X_mat3].result
|
|
440. label label 0x0000000A
|
|
441. copy_slot_masked $77 = Mask($78)
|
|
442. label label 0x00000002
|
|
443. load_condition_mask CondMask = $56
|
|
444. zero_slot_unmasked $0 = 0
|
|
445. merge_condition_mask CondMask = $76 & $77
|
|
446. branch_if_no_active_lanes branch_if_no_active_lanes +159 (label 1 at #605)
|
|
447. store_return_mask $1 = RetMask
|
|
448. copy_constant $2 = 0xBF800000 (-1.0)
|
|
449. swizzle_4 $2..5 = ($2..5).xxxx
|
|
450. copy_4_slots_unmasked n₂ = $2..5
|
|
451. copy_constant $2 = 0x3F800000 (1.0)
|
|
452. swizzle_4 $2..5 = ($2..5).xxxx
|
|
453. copy_4_slots_unmasked i₂ = $2..5
|
|
454. zero_4_slots_unmasked z₂ = 0
|
|
455. copy_4_constants $2..5 = testMatrix2x2
|
|
456. copy_4_constants $6..9 = testMatrix2x2
|
|
457. copy_4_constants $10..13 = testMatrix2x2
|
|
458. copy_4_constants $14..17 = testMatrix2x2
|
|
459. copy_4_slots_unmasked testMatrix4x4(0..3) = $2..5
|
|
460. copy_4_slots_unmasked testMatrix4x4(4..7) = $6..9
|
|
461. copy_4_slots_unmasked testMatrix4x4(8..11) = $10..13
|
|
462. copy_4_slots_unmasked testMatrix4x4(12..15) = $14..17
|
|
463. zero_4_slots_unmasked v₅ = 0
|
|
464. zero_4_slots_unmasked vv₅ = 0
|
|
465. zero_4_slots_unmasked $2..5 = 0
|
|
466. copy_4_slots_masked vv₅ = Mask($2..5)
|
|
467. zero_4_slots_unmasked $2..5 = 0
|
|
468. copy_4_slots_masked vv₅ = Mask($2..5)
|
|
469. store_condition_mask $2 = CondMask
|
|
470. copy_4_slots_unmasked $3..6 = vv₅
|
|
471. copy_4_slots_unmasked $7..10 = z₂
|
|
472. cmpne_4_floats $3..6 = notEqual($3..6, $7..10)
|
|
473. bitwise_or_2_ints $3..4 |= $5..6
|
|
474. bitwise_or_int $3 |= $4
|
|
475. merge_condition_mask CondMask = $2 & $3
|
|
476. zero_slot_unmasked $4 = 0
|
|
477. copy_slot_masked [test_no_op_vec4_X_mat4].result = Mask($4)
|
|
478. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
479. load_condition_mask CondMask = $2
|
|
480. copy_4_slots_unmasked $56..59 = i₂
|
|
481. copy_4_slots_unmasked $60..63 = testMatrix4x4(0..3)
|
|
482. copy_4_slots_unmasked $64..67 = testMatrix4x4(4..7)
|
|
483. copy_4_slots_unmasked $68..71 = testMatrix4x4(8..11)
|
|
484. copy_4_slots_unmasked $72..75 = testMatrix4x4(12..15)
|
|
485. copy_4_slots_unmasked $2..5 = $56..59
|
|
486. copy_4_slots_unmasked $6..9 = $60..63
|
|
487. dot_4_floats $2 = dot($2..5, $6..9)
|
|
488. copy_4_slots_unmasked $3..6 = $56..59
|
|
489. copy_4_slots_unmasked $7..10 = $64..67
|
|
490. dot_4_floats $3 = dot($3..6, $7..10)
|
|
491. copy_4_slots_unmasked $4..7 = $56..59
|
|
492. copy_4_slots_unmasked $8..11 = $68..71
|
|
493. dot_4_floats $4 = dot($4..7, $8..11)
|
|
494. copy_4_slots_unmasked $5..8 = $56..59
|
|
495. copy_4_slots_unmasked $9..12 = $72..75
|
|
496. dot_4_floats $5 = dot($5..8, $9..12)
|
|
497. copy_4_slots_masked v₅ = Mask($2..5)
|
|
498. store_condition_mask $2 = CondMask
|
|
499. copy_4_slots_unmasked $3..6 = v₅
|
|
500. copy_constant $7 = 0x41200000 (10.0)
|
|
501. swizzle_4 $7..10 = ($7..10).xxxx
|
|
502. stack_rewind
|
|
503. cmpne_4_floats $3..6 = notEqual($3..6, $7..10)
|
|
504. bitwise_or_2_ints $3..4 |= $5..6
|
|
505. bitwise_or_int $3 |= $4
|
|
506. merge_condition_mask CondMask = $2 & $3
|
|
507. zero_slot_unmasked $4 = 0
|
|
508. copy_slot_masked [test_no_op_vec4_X_mat4].result = Mask($4)
|
|
509. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
510. load_condition_mask CondMask = $2
|
|
511. copy_4_slots_unmasked $56..59 = testMatrix4x4(0..3)
|
|
512. copy_4_slots_unmasked $60..63 = testMatrix4x4(4..7)
|
|
513. copy_4_slots_unmasked $64..67 = testMatrix4x4(8..11)
|
|
514. copy_4_slots_unmasked $68..71 = testMatrix4x4(12..15)
|
|
515. shuffle $57..71 = ($57..71)[3 7 11 0 4 8 12 1 5 9 13 2 6 10 14]
|
|
516. copy_4_slots_unmasked $72..75 = i₂
|
|
517. copy_4_slots_unmasked $2..5 = $56..59
|
|
518. copy_4_slots_unmasked $6..9 = $72..75
|
|
519. dot_4_floats $2 = dot($2..5, $6..9)
|
|
520. copy_4_slots_unmasked $3..6 = $60..63
|
|
521. copy_4_slots_unmasked $7..10 = $72..75
|
|
522. dot_4_floats $3 = dot($3..6, $7..10)
|
|
523. copy_4_slots_unmasked $4..7 = $64..67
|
|
524. copy_4_slots_unmasked $8..11 = $72..75
|
|
525. dot_4_floats $4 = dot($4..7, $8..11)
|
|
526. copy_4_slots_unmasked $5..8 = $68..71
|
|
527. copy_4_slots_unmasked $9..12 = $72..75
|
|
528. dot_4_floats $5 = dot($5..8, $9..12)
|
|
529. copy_4_slots_masked v₅ = Mask($2..5)
|
|
530. store_condition_mask $2 = CondMask
|
|
531. copy_4_slots_unmasked $3..6 = v₅
|
|
532. copy_constant $7 = 0x40800000 (4.0)
|
|
533. copy_constant $8 = 0x41000000 (8.0)
|
|
534. copy_constant $9 = 0x41400000 (12.0)
|
|
535. copy_constant $10 = 0x41800000 (16.0)
|
|
536. cmpne_4_floats $3..6 = notEqual($3..6, $7..10)
|
|
537. bitwise_or_2_ints $3..4 |= $5..6
|
|
538. bitwise_or_int $3 |= $4
|
|
539. merge_condition_mask CondMask = $2 & $3
|
|
540. zero_slot_unmasked $4 = 0
|
|
541. copy_slot_masked [test_no_op_vec4_X_mat4].result = Mask($4)
|
|
542. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
543. load_condition_mask CondMask = $2
|
|
544. copy_4_slots_unmasked $56..59 = n₂
|
|
545. copy_4_slots_unmasked $60..63 = testMatrix4x4(0..3)
|
|
546. copy_4_slots_unmasked $64..67 = testMatrix4x4(4..7)
|
|
547. copy_4_slots_unmasked $68..71 = testMatrix4x4(8..11)
|
|
548. copy_4_slots_unmasked $72..75 = testMatrix4x4(12..15)
|
|
549. copy_4_slots_unmasked $2..5 = $56..59
|
|
550. copy_4_slots_unmasked $6..9 = $60..63
|
|
551. dot_4_floats $2 = dot($2..5, $6..9)
|
|
552. copy_4_slots_unmasked $3..6 = $56..59
|
|
553. copy_4_slots_unmasked $7..10 = $64..67
|
|
554. dot_4_floats $3 = dot($3..6, $7..10)
|
|
555. copy_4_slots_unmasked $4..7 = $56..59
|
|
556. copy_4_slots_unmasked $8..11 = $68..71
|
|
557. dot_4_floats $4 = dot($4..7, $8..11)
|
|
558. copy_4_slots_unmasked $5..8 = $56..59
|
|
559. copy_4_slots_unmasked $9..12 = $72..75
|
|
560. dot_4_floats $5 = dot($5..8, $9..12)
|
|
561. copy_4_slots_masked v₅ = Mask($2..5)
|
|
562. store_condition_mask $2 = CondMask
|
|
563. copy_4_slots_unmasked $3..6 = v₅
|
|
564. copy_constant $7 = 0xC1200000 (-10.0)
|
|
565. swizzle_4 $7..10 = ($7..10).xxxx
|
|
566. cmpne_4_floats $3..6 = notEqual($3..6, $7..10)
|
|
567. bitwise_or_2_ints $3..4 |= $5..6
|
|
568. bitwise_or_int $3 |= $4
|
|
569. merge_condition_mask CondMask = $2 & $3
|
|
570. zero_slot_unmasked $4 = 0
|
|
571. copy_slot_masked [test_no_op_vec4_X_mat4].result = Mask($4)
|
|
572. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
|
|
573. load_condition_mask CondMask = $2
|
|
574. copy_4_slots_unmasked $56..59 = testMatrix4x4(0..3)
|
|
575. copy_4_slots_unmasked $60..63 = testMatrix4x4(4..7)
|
|
576. copy_4_slots_unmasked $64..67 = testMatrix4x4(8..11)
|
|
577. copy_4_slots_unmasked $68..71 = testMatrix4x4(12..15)
|
|
578. shuffle $57..71 = ($57..71)[3 7 11 0 4 8 12 1 5 9 13 2 6 10 14]
|
|
579. copy_4_slots_unmasked $72..75 = n₂
|
|
580. copy_4_slots_unmasked $2..5 = $56..59
|
|
581. copy_4_slots_unmasked $6..9 = $72..75
|
|
582. dot_4_floats $2 = dot($2..5, $6..9)
|
|
583. copy_4_slots_unmasked $3..6 = $60..63
|
|
584. copy_4_slots_unmasked $7..10 = $72..75
|
|
585. dot_4_floats $3 = dot($3..6, $7..10)
|
|
586. copy_4_slots_unmasked $4..7 = $64..67
|
|
587. copy_4_slots_unmasked $8..11 = $72..75
|
|
588. dot_4_floats $4 = dot($4..7, $8..11)
|
|
589. copy_4_slots_unmasked $5..8 = $68..71
|
|
590. copy_4_slots_unmasked $9..12 = $72..75
|
|
591. dot_4_floats $5 = dot($5..8, $9..12)
|
|
592. copy_4_slots_masked v₅ = Mask($2..5)
|
|
593. copy_constant $6 = 0xC0800000 (-4.0)
|
|
594. copy_constant $7 = 0xC1000000 (-8.0)
|
|
595. copy_constant $8 = 0xC1400000 (-12.0)
|
|
596. copy_constant $9 = 0xC1800000 (-16.0)
|
|
597. cmpeq_4_floats $2..5 = equal($2..5, $6..9)
|
|
598. bitwise_and_2_ints $2..3 &= $4..5
|
|
599. bitwise_and_int $2 &= $3
|
|
600. copy_slot_masked [test_no_op_vec4_X_mat4].result = Mask($2)
|
|
601. load_return_mask RetMask = $1
|
|
602. copy_slot_unmasked $1 = [test_no_op_vec4_X_mat4].result
|
|
603. label label 0x0000000B
|
|
604. copy_slot_masked $0 = Mask($1)
|
|
605. label label 0x00000001
|
|
606. load_condition_mask CondMask = $76
|
|
607. swizzle_4 $0..3 = ($0..3).xxxx
|
|
608. copy_4_constants $4..7 = colorRed
|
|
609. copy_4_constants $8..11 = colorGreen
|
|
610. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3)
|
|
611. copy_4_slots_unmasked [main].result = $0..3
|
|
612. load_src src.rgba = [main].result
|