ptx_parser/unparser/instruction/
vset2.rs1#![allow(unused)]
15
16use crate::lexer::PtxToken;
17use crate::unparser::{PtxUnparser, common::*};
18
19pub mod section_0 {
20 use super::*;
21 use crate::r#type::instruction::vset2::section_0::*;
22
23 impl PtxUnparser for Vset2AtypeBtypeCmp {
24 fn unparse_tokens(&self, tokens: &mut ::std::vec::Vec<PtxToken>) {
25 self.unparse_tokens_mode(tokens, false);
26 }
27 fn unparse_tokens_mode(&self, tokens: &mut ::std::vec::Vec<PtxToken>, spaced: bool) {
28 push_opcode(tokens, "vset2");
29 match &self.atype {
30 Atype::U32 => {
31 push_directive(tokens, "u32");
32 }
33 Atype::S32 => {
34 push_directive(tokens, "s32");
35 }
36 }
37 match &self.btype {
38 Btype::U32 => {
39 push_directive(tokens, "u32");
40 }
41 Btype::S32 => {
42 push_directive(tokens, "s32");
43 }
44 }
45 match &self.cmp {
46 Cmp::Eq => {
47 push_directive(tokens, "eq");
48 }
49 Cmp::Ne => {
50 push_directive(tokens, "ne");
51 }
52 Cmp::Lt => {
53 push_directive(tokens, "lt");
54 }
55 Cmp::Le => {
56 push_directive(tokens, "le");
57 }
58 Cmp::Gt => {
59 push_directive(tokens, "gt");
60 }
61 Cmp::Ge => {
62 push_directive(tokens, "ge");
63 }
64 }
65 if spaced {
66 tokens.push(PtxToken::Space);
67 }
68 self.d.unparse_tokens_mode(tokens, spaced);
69 if let Some(mask_0) = self.mask.as_ref() {
70 match mask_0 {
71 Mask::H10 => {
72 push_directive(tokens, "h10");
73 }
74 Mask::H0 => {
75 push_directive(tokens, "h0");
76 }
77 Mask::H1 => {
78 push_directive(tokens, "h1");
79 }
80 }
81 }
82 tokens.push(PtxToken::Comma);
83 if spaced {
84 tokens.push(PtxToken::Space);
85 }
86 self.a.unparse_tokens_mode(tokens, spaced);
87 if let Some(asel_1) = self.asel.as_ref() {
88 match asel_1 {
89 Asel::H00 => {
90 push_directive(tokens, "h00");
91 }
92 Asel::H01 => {
93 push_directive(tokens, "h01");
94 }
95 Asel::H02 => {
96 push_directive(tokens, "h02");
97 }
98 Asel::H03 => {
99 push_directive(tokens, "h03");
100 }
101 Asel::H10 => {
102 push_directive(tokens, "h10");
103 }
104 Asel::H11 => {
105 push_directive(tokens, "h11");
106 }
107 Asel::H12 => {
108 push_directive(tokens, "h12");
109 }
110 Asel::H13 => {
111 push_directive(tokens, "h13");
112 }
113 Asel::H20 => {
114 push_directive(tokens, "h20");
115 }
116 Asel::H21 => {
117 push_directive(tokens, "h21");
118 }
119 Asel::H22 => {
120 push_directive(tokens, "h22");
121 }
122 Asel::H23 => {
123 push_directive(tokens, "h23");
124 }
125 Asel::H30 => {
126 push_directive(tokens, "h30");
127 }
128 Asel::H31 => {
129 push_directive(tokens, "h31");
130 }
131 Asel::H32 => {
132 push_directive(tokens, "h32");
133 }
134 Asel::H33 => {
135 push_directive(tokens, "h33");
136 }
137 }
138 }
139 tokens.push(PtxToken::Comma);
140 if spaced {
141 tokens.push(PtxToken::Space);
142 }
143 self.b.unparse_tokens_mode(tokens, spaced);
144 if let Some(bsel_2) = self.bsel.as_ref() {
145 match bsel_2 {
146 Bsel::H00 => {
147 push_directive(tokens, "h00");
148 }
149 Bsel::H01 => {
150 push_directive(tokens, "h01");
151 }
152 Bsel::H02 => {
153 push_directive(tokens, "h02");
154 }
155 Bsel::H03 => {
156 push_directive(tokens, "h03");
157 }
158 Bsel::H10 => {
159 push_directive(tokens, "h10");
160 }
161 Bsel::H11 => {
162 push_directive(tokens, "h11");
163 }
164 Bsel::H12 => {
165 push_directive(tokens, "h12");
166 }
167 Bsel::H13 => {
168 push_directive(tokens, "h13");
169 }
170 Bsel::H20 => {
171 push_directive(tokens, "h20");
172 }
173 Bsel::H21 => {
174 push_directive(tokens, "h21");
175 }
176 Bsel::H22 => {
177 push_directive(tokens, "h22");
178 }
179 Bsel::H23 => {
180 push_directive(tokens, "h23");
181 }
182 Bsel::H30 => {
183 push_directive(tokens, "h30");
184 }
185 Bsel::H31 => {
186 push_directive(tokens, "h31");
187 }
188 Bsel::H32 => {
189 push_directive(tokens, "h32");
190 }
191 Bsel::H33 => {
192 push_directive(tokens, "h33");
193 }
194 }
195 }
196 tokens.push(PtxToken::Comma);
197 if spaced {
198 tokens.push(PtxToken::Space);
199 }
200 self.c.unparse_tokens_mode(tokens, spaced);
201 tokens.push(PtxToken::Semicolon);
202 if spaced {
203 tokens.push(PtxToken::Newline);
204 }
205 }
206 }
207
208 impl PtxUnparser for Vset2AtypeBtypeCmpAdd {
209 fn unparse_tokens(&self, tokens: &mut ::std::vec::Vec<PtxToken>) {
210 self.unparse_tokens_mode(tokens, false);
211 }
212 fn unparse_tokens_mode(&self, tokens: &mut ::std::vec::Vec<PtxToken>, spaced: bool) {
213 push_opcode(tokens, "vset2");
214 match &self.atype {
215 Atype::U32 => {
216 push_directive(tokens, "u32");
217 }
218 Atype::S32 => {
219 push_directive(tokens, "s32");
220 }
221 }
222 match &self.btype {
223 Btype::U32 => {
224 push_directive(tokens, "u32");
225 }
226 Btype::S32 => {
227 push_directive(tokens, "s32");
228 }
229 }
230 match &self.cmp {
231 Cmp::Eq => {
232 push_directive(tokens, "eq");
233 }
234 Cmp::Ne => {
235 push_directive(tokens, "ne");
236 }
237 Cmp::Lt => {
238 push_directive(tokens, "lt");
239 }
240 Cmp::Le => {
241 push_directive(tokens, "le");
242 }
243 Cmp::Gt => {
244 push_directive(tokens, "gt");
245 }
246 Cmp::Ge => {
247 push_directive(tokens, "ge");
248 }
249 }
250 push_directive(tokens, "add");
251 if spaced {
252 tokens.push(PtxToken::Space);
253 }
254 self.d.unparse_tokens_mode(tokens, spaced);
255 if let Some(mask_3) = self.mask.as_ref() {
256 match mask_3 {
257 Mask::H10 => {
258 push_directive(tokens, "h10");
259 }
260 Mask::H0 => {
261 push_directive(tokens, "h0");
262 }
263 Mask::H1 => {
264 push_directive(tokens, "h1");
265 }
266 }
267 }
268 tokens.push(PtxToken::Comma);
269 if spaced {
270 tokens.push(PtxToken::Space);
271 }
272 self.a.unparse_tokens_mode(tokens, spaced);
273 if let Some(asel_4) = self.asel.as_ref() {
274 match asel_4 {
275 Asel::H00 => {
276 push_directive(tokens, "h00");
277 }
278 Asel::H01 => {
279 push_directive(tokens, "h01");
280 }
281 Asel::H02 => {
282 push_directive(tokens, "h02");
283 }
284 Asel::H03 => {
285 push_directive(tokens, "h03");
286 }
287 Asel::H10 => {
288 push_directive(tokens, "h10");
289 }
290 Asel::H11 => {
291 push_directive(tokens, "h11");
292 }
293 Asel::H12 => {
294 push_directive(tokens, "h12");
295 }
296 Asel::H13 => {
297 push_directive(tokens, "h13");
298 }
299 Asel::H20 => {
300 push_directive(tokens, "h20");
301 }
302 Asel::H21 => {
303 push_directive(tokens, "h21");
304 }
305 Asel::H22 => {
306 push_directive(tokens, "h22");
307 }
308 Asel::H23 => {
309 push_directive(tokens, "h23");
310 }
311 Asel::H30 => {
312 push_directive(tokens, "h30");
313 }
314 Asel::H31 => {
315 push_directive(tokens, "h31");
316 }
317 Asel::H32 => {
318 push_directive(tokens, "h32");
319 }
320 Asel::H33 => {
321 push_directive(tokens, "h33");
322 }
323 }
324 }
325 tokens.push(PtxToken::Comma);
326 if spaced {
327 tokens.push(PtxToken::Space);
328 }
329 self.b.unparse_tokens_mode(tokens, spaced);
330 if let Some(bsel_5) = self.bsel.as_ref() {
331 match bsel_5 {
332 Bsel::H00 => {
333 push_directive(tokens, "h00");
334 }
335 Bsel::H01 => {
336 push_directive(tokens, "h01");
337 }
338 Bsel::H02 => {
339 push_directive(tokens, "h02");
340 }
341 Bsel::H03 => {
342 push_directive(tokens, "h03");
343 }
344 Bsel::H10 => {
345 push_directive(tokens, "h10");
346 }
347 Bsel::H11 => {
348 push_directive(tokens, "h11");
349 }
350 Bsel::H12 => {
351 push_directive(tokens, "h12");
352 }
353 Bsel::H13 => {
354 push_directive(tokens, "h13");
355 }
356 Bsel::H20 => {
357 push_directive(tokens, "h20");
358 }
359 Bsel::H21 => {
360 push_directive(tokens, "h21");
361 }
362 Bsel::H22 => {
363 push_directive(tokens, "h22");
364 }
365 Bsel::H23 => {
366 push_directive(tokens, "h23");
367 }
368 Bsel::H30 => {
369 push_directive(tokens, "h30");
370 }
371 Bsel::H31 => {
372 push_directive(tokens, "h31");
373 }
374 Bsel::H32 => {
375 push_directive(tokens, "h32");
376 }
377 Bsel::H33 => {
378 push_directive(tokens, "h33");
379 }
380 }
381 }
382 tokens.push(PtxToken::Comma);
383 if spaced {
384 tokens.push(PtxToken::Space);
385 }
386 self.c.unparse_tokens_mode(tokens, spaced);
387 tokens.push(PtxToken::Semicolon);
388 if spaced {
389 tokens.push(PtxToken::Newline);
390 }
391 }
392 }
393}