blob: 9d63f373b67d67b5d17e0880d48ba2ca57cbc088 [file] [log] [blame]
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