ptx_parser/unparser/instruction/
slct.rs1#![allow(unused)]
11
12use crate::lexer::PtxToken;
13use crate::unparser::{PtxUnparser, common::*};
14
15pub mod section_0 {
16 use super::*;
17 use crate::r#type::instruction::slct::section_0::*;
18
19 impl PtxUnparser for SlctDtypeS32 {
20 fn unparse_tokens(&self, tokens: &mut ::std::vec::Vec<PtxToken>) {
21 push_opcode(tokens, "slct");
22 match &self.dtype {
23 Dtype::B16 => {
24 push_directive(tokens, "b16");
25 }
26 Dtype::B32 => {
27 push_directive(tokens, "b32");
28 }
29 Dtype::B64 => {
30 push_directive(tokens, "b64");
31 }
32 Dtype::U16 => {
33 push_directive(tokens, "u16");
34 }
35 Dtype::U32 => {
36 push_directive(tokens, "u32");
37 }
38 Dtype::U64 => {
39 push_directive(tokens, "u64");
40 }
41 Dtype::S16 => {
42 push_directive(tokens, "s16");
43 }
44 Dtype::S32 => {
45 push_directive(tokens, "s32");
46 }
47 Dtype::S64 => {
48 push_directive(tokens, "s64");
49 }
50 Dtype::F32 => {
51 push_directive(tokens, "f32");
52 }
53 Dtype::F64 => {
54 push_directive(tokens, "f64");
55 }
56 }
57 push_directive(tokens, "s32");
58 self.d.unparse_tokens(tokens);
59 tokens.push(PtxToken::Comma);
60 self.a.unparse_tokens(tokens);
61 tokens.push(PtxToken::Comma);
62 self.b.unparse_tokens(tokens);
63 tokens.push(PtxToken::Comma);
64 self.c.unparse_tokens(tokens);
65 tokens.push(PtxToken::Semicolon);
66 }
67 }
68
69 impl PtxUnparser for SlctFtzDtypeF32 {
70 fn unparse_tokens(&self, tokens: &mut ::std::vec::Vec<PtxToken>) {
71 push_opcode(tokens, "slct");
72 if self.ftz {
73 push_directive(tokens, "ftz");
74 }
75 match &self.dtype {
76 Dtype::B16 => {
77 push_directive(tokens, "b16");
78 }
79 Dtype::B32 => {
80 push_directive(tokens, "b32");
81 }
82 Dtype::B64 => {
83 push_directive(tokens, "b64");
84 }
85 Dtype::U16 => {
86 push_directive(tokens, "u16");
87 }
88 Dtype::U32 => {
89 push_directive(tokens, "u32");
90 }
91 Dtype::U64 => {
92 push_directive(tokens, "u64");
93 }
94 Dtype::S16 => {
95 push_directive(tokens, "s16");
96 }
97 Dtype::S32 => {
98 push_directive(tokens, "s32");
99 }
100 Dtype::S64 => {
101 push_directive(tokens, "s64");
102 }
103 Dtype::F32 => {
104 push_directive(tokens, "f32");
105 }
106 Dtype::F64 => {
107 push_directive(tokens, "f64");
108 }
109 }
110 push_directive(tokens, "f32");
111 self.d.unparse_tokens(tokens);
112 tokens.push(PtxToken::Comma);
113 self.a.unparse_tokens(tokens);
114 tokens.push(PtxToken::Comma);
115 self.b.unparse_tokens(tokens);
116 tokens.push(PtxToken::Comma);
117 self.c.unparse_tokens(tokens);
118 tokens.push(PtxToken::Semicolon);
119 }
120 }
121}