ptx_parser/unparser/instruction/
sured.rs1#![allow(unused)]
16
17use crate::lexer::PtxToken;
18use crate::unparser::{PtxUnparser, common::*};
19
20pub mod section_0 {
21 use super::*;
22 use crate::r#type::instruction::sured::section_0::*;
23
24 impl PtxUnparser for SuredBOpGeomCtypeMode {
25 fn unparse_tokens(&self, tokens: &mut ::std::vec::Vec<PtxToken>) {
26 push_opcode(tokens, "sured");
27 push_directive(tokens, "b");
28 match &self.op {
29 Op::Add => {
30 push_directive(tokens, "add");
31 }
32 Op::Min => {
33 push_directive(tokens, "min");
34 }
35 Op::Max => {
36 push_directive(tokens, "max");
37 }
38 Op::And => {
39 push_directive(tokens, "and");
40 }
41 Op::Or => {
42 push_directive(tokens, "or");
43 }
44 }
45 match &self.geom {
46 Geom::_1d => {
47 push_directive(tokens, "1d");
48 }
49 Geom::_2d => {
50 push_directive(tokens, "2d");
51 }
52 Geom::_3d => {
53 push_directive(tokens, "3d");
54 }
55 }
56 match &self.ctype {
57 Ctype::U32 => {
58 push_directive(tokens, "u32");
59 }
60 Ctype::U64 => {
61 push_directive(tokens, "u64");
62 }
63 Ctype::S32 => {
64 push_directive(tokens, "s32");
65 }
66 Ctype::B32 => {
67 push_directive(tokens, "b32");
68 }
69 Ctype::S64 => {
70 push_directive(tokens, "s64");
71 }
72 }
73 match &self.mode {
74 Mode::Clamp => {
75 push_directive(tokens, "clamp");
76 }
77 Mode::Trap => {
78 push_directive(tokens, "trap");
79 }
80 Mode::Zero => {
81 push_directive(tokens, "zero");
82 }
83 }
84 self.a.unparse_tokens(tokens);
85 tokens.push(PtxToken::Comma);
86 self.c.unparse_tokens(tokens);
87 tokens.push(PtxToken::Semicolon);
88 }
89 }
90}
91
92pub mod section_1 {
93 use super::*;
94 use crate::r#type::instruction::sured::section_1::*;
95
96 impl PtxUnparser for SuredPOpGeomCtypeMode {
97 fn unparse_tokens(&self, tokens: &mut ::std::vec::Vec<PtxToken>) {
98 push_opcode(tokens, "sured");
99 push_directive(tokens, "p");
100 match &self.op {
101 Op::Add => {
102 push_directive(tokens, "add");
103 }
104 Op::Min => {
105 push_directive(tokens, "min");
106 }
107 Op::Max => {
108 push_directive(tokens, "max");
109 }
110 Op::And => {
111 push_directive(tokens, "and");
112 }
113 Op::Or => {
114 push_directive(tokens, "or");
115 }
116 }
117 match &self.geom {
118 Geom::_1d => {
119 push_directive(tokens, "1d");
120 }
121 Geom::_2d => {
122 push_directive(tokens, "2d");
123 }
124 Geom::_3d => {
125 push_directive(tokens, "3d");
126 }
127 }
128 match &self.ctype {
129 Ctype::B32 => {
130 push_directive(tokens, "b32");
131 }
132 Ctype::B64 => {
133 push_directive(tokens, "b64");
134 }
135 }
136 match &self.mode {
137 Mode::Clamp => {
138 push_directive(tokens, "clamp");
139 }
140 Mode::Trap => {
141 push_directive(tokens, "trap");
142 }
143 Mode::Zero => {
144 push_directive(tokens, "zero");
145 }
146 }
147 self.a.unparse_tokens(tokens);
148 tokens.push(PtxToken::Comma);
149 self.c.unparse_tokens(tokens);
150 tokens.push(PtxToken::Semicolon);
151 }
152 }
153}