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