1. store_src_rg coords = src.rg | |
2. init_lane_masks CondMask = LoopMask = RetMask = true | |
3. copy_constant $0 = colorWhite(0) | |
4. copy_slot_unmasked _0_x = $0 | |
5. zero_slot_unmasked $0 = 0 | |
6. copy_slot_unmasked $1 = _0_x | |
7. sub_float $0 -= $1 | |
8. copy_slot_masked _0_x = Mask($0) | |
9. store_condition_mask $11 = CondMask | |
10. store_condition_mask $53 = CondMask | |
11. store_condition_mask $74 = CondMask | |
12. store_condition_mask $46 = CondMask | |
13. store_condition_mask $90 = CondMask | |
14. store_condition_mask $85 = CondMask | |
15. store_condition_mask $8 = CondMask | |
16. copy_slot_unmasked $9 = _0_x | |
17. copy_constant $10 = 0xBF800000 (-1.0) | |
18. cmpeq_float $9 = equal($9, $10) | |
19. zero_slot_unmasked $86 = 0 | |
20. merge_condition_mask CondMask = $8 & $9 | |
21. branch_if_no_active_lanes branch_if_no_active_lanes +16 (#37) | |
22. store_return_mask $87 = RetMask | |
23. copy_constant $88 = colorWhite(0) | |
24. cast_to_int_from_float $88 = FloatToInt($88) | |
25. copy_slot_unmasked x = $88 | |
26. zero_slot_unmasked $88 = 0 | |
27. copy_slot_unmasked $89 = x | |
28. sub_int $88 -= $89 | |
29. copy_slot_masked x = Mask($88) | |
30. copy_constant $89 = 0xFFFFFFFF | |
31. cmpeq_int $88 = equal($88, $89) | |
32. copy_slot_masked [test_iscalar].result = Mask($88) | |
33. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
34. load_return_mask RetMask = $87 | |
35. copy_slot_unmasked $87 = [test_iscalar].result | |
36. copy_slot_masked $86 = Mask($87) | |
37. load_condition_mask CondMask = $8 | |
38. zero_slot_unmasked $91 = 0 | |
39. merge_condition_mask CondMask = $85 & $86 | |
40. branch_if_no_active_lanes branch_if_no_active_lanes +17 (#57) | |
41. store_return_mask $92 = RetMask | |
42. copy_2_constants $93..94 = colorWhite(0..1) | |
43. copy_2_slots_unmasked x = $93..94 | |
44. zero_2_slots_unmasked $93..94 = 0 | |
45. copy_2_slots_unmasked $95..96 = x | |
46. sub_2_floats $93..94 -= $95..96 | |
47. copy_2_slots_masked x = Mask($93..94) | |
48. copy_constant $95 = 0xBF800000 (-1.0) | |
49. copy_slot_unmasked $96 = $95 | |
50. cmpeq_2_floats $93..94 = equal($93..94, $95..96) | |
51. bitwise_and_int $93 &= $94 | |
52. copy_slot_masked [test_fvec].result = Mask($93) | |
53. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
54. load_return_mask RetMask = $92 | |
55. copy_slot_unmasked $92 = [test_fvec].result | |
56. copy_slot_masked $91 = Mask($92) | |
57. load_condition_mask CondMask = $85 | |
58. zero_slot_unmasked $47 = 0 | |
59. merge_condition_mask CondMask = $90 & $91 | |
60. branch_if_no_active_lanes branch_if_no_active_lanes +19 (#79) | |
61. store_return_mask $48 = RetMask | |
62. copy_constant $49 = colorWhite(0) | |
63. cast_to_int_from_float $49 = FloatToInt($49) | |
64. copy_slot_unmasked $50 = $49 | |
65. copy_2_slots_unmasked x = $49..50 | |
66. zero_2_slots_unmasked $49..50 = 0 | |
67. copy_2_slots_unmasked $51..52 = x | |
68. sub_2_ints $49..50 -= $51..52 | |
69. copy_2_slots_masked x = Mask($49..50) | |
70. copy_constant $51 = 0xFFFFFFFF | |
71. copy_slot_unmasked $52 = $51 | |
72. cmpeq_2_ints $49..50 = equal($49..50, $51..52) | |
73. bitwise_and_int $49 &= $50 | |
74. copy_slot_masked [test_ivec].result = Mask($49) | |
75. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
76. load_return_mask RetMask = $48 | |
77. copy_slot_unmasked $48 = [test_ivec].result | |
78. copy_slot_masked $47 = Mask($48) | |
79. load_condition_mask CondMask = $90 | |
80. zero_slot_unmasked $75 = 0 | |
81. merge_condition_mask CondMask = $46 & $47 | |
82. branch_if_no_active_lanes branch_if_no_active_lanes +22 (#104) | |
83. store_return_mask $76 = RetMask | |
84. copy_constant $77 = 0xBF800000 (-1.0) | |
85. copy_constant $78 = 0xC0000000 (-2.0) | |
86. copy_constant $79 = 0xC0400000 (-3.0) | |
87. copy_constant $80 = 0xC0800000 (-4.0) | |
88. copy_4_slots_unmasked negated = $77..80 | |
89. copy_4_constants $77..80 = testMatrix2x2 | |
90. copy_4_slots_unmasked x = $77..80 | |
91. zero_4_slots_unmasked $77..80 = 0 | |
92. copy_4_slots_unmasked $81..84 = x | |
93. sub_4_floats $77..80 -= $81..84 | |
94. copy_4_slots_masked x = Mask($77..80) | |
95. copy_4_slots_unmasked $81..84 = negated | |
96. cmpeq_4_floats $77..80 = equal($77..80, $81..84) | |
97. bitwise_and_2_ints $77..78 &= $79..80 | |
98. bitwise_and_int $77 &= $78 | |
99. copy_slot_masked [test_mat2].result = Mask($77) | |
100. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
101. load_return_mask RetMask = $76 | |
102. copy_slot_unmasked $76 = [test_mat2].result | |
103. copy_slot_masked $75 = Mask($76) | |
104. load_condition_mask CondMask = $46 | |
105. zero_slot_unmasked $54 = 0 | |
106. merge_condition_mask CondMask = $74 & $75 | |
107. branch_if_no_active_lanes branch_if_no_active_lanes +43 (#150) | |
108. store_return_mask $55 = RetMask | |
109. copy_constant $56 = 0xBF800000 (-1.0) | |
110. copy_constant $57 = 0xC0000000 (-2.0) | |
111. copy_constant $58 = 0xC0400000 (-3.0) | |
112. copy_constant $59 = 0xC0800000 (-4.0) | |
113. copy_constant $60 = 0xC0A00000 (-5.0) | |
114. copy_constant $61 = 0xC0C00000 (-6.0) | |
115. copy_constant $62 = 0xC0E00000 (-7.0) | |
116. copy_constant $63 = 0xC1000000 (-8.0) | |
117. copy_constant $64 = 0xC1100000 (-9.0) | |
118. copy_4_slots_unmasked negated(0..3) = $56..59 | |
119. copy_4_slots_unmasked negated(4..7) = $60..63 | |
120. copy_slot_unmasked negated(8) = $64 | |
121. copy_4_constants $56..59 = testMatrix3x3(0..3) | |
122. copy_4_constants $60..63 = testMatrix3x3(4..7) | |
123. copy_constant $64 = testMatrix3x3(8) | |
124. copy_4_slots_unmasked x(0..3) = $56..59 | |
125. copy_4_slots_unmasked x(4..7) = $60..63 | |
126. copy_slot_unmasked x(8) = $64 | |
127. zero_4_slots_unmasked $56..59 = 0 | |
128. zero_4_slots_unmasked $60..63 = 0 | |
129. zero_slot_unmasked $64 = 0 | |
130. copy_4_slots_unmasked $65..68 = x(0..3) | |
131. copy_4_slots_unmasked $69..72 = x(4..7) | |
132. copy_slot_unmasked $73 = x(8) | |
133. sub_n_floats $56..64 -= $65..73 | |
134. copy_4_slots_masked x(0..3) = Mask($56..59) | |
135. copy_4_slots_masked x(4..7) = Mask($60..63) | |
136. copy_slot_masked x(8) = Mask($64) | |
137. copy_4_slots_unmasked $65..68 = negated(0..3) | |
138. copy_4_slots_unmasked $69..72 = negated(4..7) | |
139. copy_slot_unmasked $73 = negated(8) | |
140. cmpeq_n_floats $56..64 = equal($56..64, $65..73) | |
141. bitwise_and_4_ints $57..60 &= $61..64 | |
142. bitwise_and_2_ints $57..58 &= $59..60 | |
143. bitwise_and_int $57 &= $58 | |
144. bitwise_and_int $56 &= $57 | |
145. copy_slot_masked [test_mat3].result = Mask($56) | |
146. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
147. load_return_mask RetMask = $55 | |
148. copy_slot_unmasked $55 = [test_mat3].result | |
149. copy_slot_masked $54 = Mask($55) | |
150. load_condition_mask CondMask = $74 | |
151. zero_slot_unmasked $12 = 0 | |
152. merge_condition_mask CondMask = $53 & $54 | |
153. branch_if_no_active_lanes branch_if_no_active_lanes +58 (#211) | |
154. store_return_mask $13 = RetMask | |
155. copy_constant $14 = 0xBF800000 (-1.0) | |
156. copy_constant $15 = 0xC0000000 (-2.0) | |
157. copy_constant $16 = 0xC0400000 (-3.0) | |
158. copy_constant $17 = 0xC0800000 (-4.0) | |
159. copy_constant $18 = 0xC0A00000 (-5.0) | |
160. copy_constant $19 = 0xC0C00000 (-6.0) | |
161. copy_constant $20 = 0xC0E00000 (-7.0) | |
162. copy_constant $21 = 0xC1000000 (-8.0) | |
163. copy_constant $22 = 0xC1100000 (-9.0) | |
164. copy_constant $23 = 0xC1200000 (-10.0) | |
165. copy_constant $24 = 0xC1300000 (-11.0) | |
166. copy_constant $25 = 0xC1400000 (-12.0) | |
167. copy_constant $26 = 0xC1500000 (-13.0) | |
168. copy_constant $27 = 0xC1600000 (-14.0) | |
169. copy_constant $28 = 0xC1700000 (-15.0) | |
170. copy_constant $29 = 0xC1800000 (-16.0) | |
171. copy_4_slots_unmasked negated(0..3) = $14..17 | |
172. copy_4_slots_unmasked negated(4..7) = $18..21 | |
173. copy_4_slots_unmasked negated(8..11) = $22..25 | |
174. copy_4_slots_unmasked negated(12..15) = $26..29 | |
175. copy_4_constants $14..17 = testMatrix4x4(0..3) | |
176. copy_4_constants $18..21 = testMatrix4x4(4..7) | |
177. copy_4_constants $22..25 = testMatrix4x4(8..11) | |
178. copy_4_constants $26..29 = testMatrix4x4(12..15) | |
179. copy_4_slots_unmasked x(0..3) = $14..17 | |
180. copy_4_slots_unmasked x(4..7) = $18..21 | |
181. copy_4_slots_unmasked x(8..11) = $22..25 | |
182. copy_4_slots_unmasked x(12..15) = $26..29 | |
183. zero_4_slots_unmasked $14..17 = 0 | |
184. zero_4_slots_unmasked $18..21 = 0 | |
185. zero_4_slots_unmasked $22..25 = 0 | |
186. zero_4_slots_unmasked $26..29 = 0 | |
187. copy_4_slots_unmasked $30..33 = x(0..3) | |
188. copy_4_slots_unmasked $34..37 = x(4..7) | |
189. copy_4_slots_unmasked $38..41 = x(8..11) | |
190. copy_4_slots_unmasked $42..45 = x(12..15) | |
191. sub_n_floats $14..29 -= $30..45 | |
192. copy_4_slots_masked x(0..3) = Mask($14..17) | |
193. copy_4_slots_masked x(4..7) = Mask($18..21) | |
194. copy_4_slots_masked x(8..11) = Mask($22..25) | |
195. copy_4_slots_masked x(12..15) = Mask($26..29) | |
196. copy_4_slots_unmasked $30..33 = negated(0..3) | |
197. copy_4_slots_unmasked $34..37 = negated(4..7) | |
198. copy_4_slots_unmasked $38..41 = negated(8..11) | |
199. copy_4_slots_unmasked $42..45 = negated(12..15) | |
200. cmpeq_n_floats $14..29 = equal($14..29, $30..45) | |
201. bitwise_and_4_ints $22..25 &= $26..29 | |
202. bitwise_and_4_ints $18..21 &= $22..25 | |
203. bitwise_and_4_ints $14..17 &= $18..21 | |
204. bitwise_and_2_ints $14..15 &= $16..17 | |
205. bitwise_and_int $14 &= $15 | |
206. copy_slot_masked [test_mat4].result = Mask($14) | |
207. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
208. load_return_mask RetMask = $13 | |
209. copy_slot_unmasked $13 = [test_mat4].result | |
210. copy_slot_masked $12 = Mask($13) | |
211. load_condition_mask CondMask = $53 | |
212. copy_4_constants $0..3 = colorRed | |
213. merge_condition_mask CondMask = $11 & $12 | |
214. copy_4_constants $4..7 = colorGreen | |
215. copy_4_slots_masked $0..3 = Mask($4..7) | |
216. load_condition_mask CondMask = $11 | |
217. copy_4_slots_masked [main].result = Mask($0..3) | |
218. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
219. load_src src.rgba = [main].result |