ptx_parser/unparser/instruction/
tcgen05_alloc.rs1#![allow(unused)]
9
10use crate::lexer::PtxToken;
11use crate::unparser::{PtxUnparser, common::*};
12
13pub mod section_0 {
14 use super::*;
15 use crate::r#type::instruction::tcgen05_alloc::section_0::*;
16
17 impl PtxUnparser for Tcgen05AllocCtaGroupSyncAlignedSharedCtaB32 {
18 fn unparse_tokens(&self, tokens: &mut ::std::vec::Vec<PtxToken>) {
19 self.unparse_tokens_mode(tokens, false);
20 }
21 fn unparse_tokens_mode(&self, tokens: &mut ::std::vec::Vec<PtxToken>, spaced: bool) {
22 push_opcode(tokens, "tcgen05");
23 push_directive(tokens, "alloc");
24 match &self.cta_group {
25 CtaGroup::CtaGroup1 => {
26 push_directive(tokens, "cta_group::1");
27 }
28 CtaGroup::CtaGroup2 => {
29 push_directive(tokens, "cta_group::2");
30 }
31 }
32 push_directive(tokens, "sync");
33 push_directive(tokens, "aligned");
34 if self.shared_cta {
35 push_directive(tokens, "shared::cta");
36 }
37 push_directive(tokens, "b32");
38 if spaced {
39 tokens.push(PtxToken::Space);
40 }
41 self.dst.unparse_tokens_mode(tokens, spaced);
42 tokens.push(PtxToken::Comma);
43 if spaced {
44 tokens.push(PtxToken::Space);
45 }
46 self.ncols.unparse_tokens_mode(tokens, spaced);
47 tokens.push(PtxToken::Semicolon);
48 if spaced {
49 tokens.push(PtxToken::Newline);
50 }
51 }
52 }
53
54 impl PtxUnparser for Tcgen05DeallocCtaGroupSyncAlignedB32 {
55 fn unparse_tokens(&self, tokens: &mut ::std::vec::Vec<PtxToken>) {
56 self.unparse_tokens_mode(tokens, false);
57 }
58 fn unparse_tokens_mode(&self, tokens: &mut ::std::vec::Vec<PtxToken>, spaced: bool) {
59 push_opcode(tokens, "tcgen05");
60 push_directive(tokens, "dealloc");
61 match &self.cta_group {
62 CtaGroup::CtaGroup1 => {
63 push_directive(tokens, "cta_group::1");
64 }
65 CtaGroup::CtaGroup2 => {
66 push_directive(tokens, "cta_group::2");
67 }
68 }
69 push_directive(tokens, "sync");
70 push_directive(tokens, "aligned");
71 push_directive(tokens, "b32");
72 if spaced {
73 tokens.push(PtxToken::Space);
74 }
75 self.taddr.unparse_tokens_mode(tokens, spaced);
76 tokens.push(PtxToken::Comma);
77 if spaced {
78 tokens.push(PtxToken::Space);
79 }
80 self.ncols.unparse_tokens_mode(tokens, spaced);
81 tokens.push(PtxToken::Semicolon);
82 if spaced {
83 tokens.push(PtxToken::Newline);
84 }
85 }
86 }
87
88 impl PtxUnparser for Tcgen05RelinquishAllocPermitCtaGroupSyncAligned {
89 fn unparse_tokens(&self, tokens: &mut ::std::vec::Vec<PtxToken>) {
90 self.unparse_tokens_mode(tokens, false);
91 }
92 fn unparse_tokens_mode(&self, tokens: &mut ::std::vec::Vec<PtxToken>, spaced: bool) {
93 push_opcode(tokens, "tcgen05");
94 push_directive(tokens, "relinquish_alloc_permit");
95 match &self.cta_group {
96 CtaGroup::CtaGroup1 => {
97 push_directive(tokens, "cta_group::1");
98 }
99 CtaGroup::CtaGroup2 => {
100 push_directive(tokens, "cta_group::2");
101 }
102 }
103 push_directive(tokens, "sync");
104 push_directive(tokens, "aligned");
105 tokens.push(PtxToken::Semicolon);
106 if spaced {
107 tokens.push(PtxToken::Newline);
108 }
109 }
110 }
111}