Skip to main content

ptx_parser/unparser/instruction/
clusterlaunchcontrol_query_cancel.rs

1//! Original PTX specification:
2//!
3//! clusterlaunchcontrol.query_cancel.is_canceled.pred.b128 pred, try_cancel_response;
4//! clusterlaunchcontrol.query_cancel.get_first_ctaid.v4.b32.b128 {xdim, ydim, zdim, _},  try_cancel_response;
5//! clusterlaunchcontrol.query_cancel{.get_first_ctaid::dimension}.b32.b128 reg, try_cancel_response;
6//! .get_first_ctaid::dimension = { .get_first_ctaid::x, .get_first_ctaid::y, .get_first_ctaid::z };
7
8#![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::clusterlaunchcontrol_query_cancel::section_0::*;
16
17    impl PtxUnparser for ClusterlaunchcontrolQueryCancelIsCanceledPredB128 {
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, "clusterlaunchcontrol");
23            push_directive(tokens, "query_cancel");
24            push_directive(tokens, "is_canceled");
25            push_directive(tokens, "pred");
26            push_directive(tokens, "b128");
27            if spaced {
28                tokens.push(PtxToken::Space);
29            }
30            self.pred2.unparse_tokens_mode(tokens, spaced);
31            tokens.push(PtxToken::Comma);
32            if spaced {
33                tokens.push(PtxToken::Space);
34            }
35            self.try_cancel_response.unparse_tokens_mode(tokens, spaced);
36            tokens.push(PtxToken::Semicolon);
37            if spaced {
38                tokens.push(PtxToken::Newline);
39            }
40        }
41    }
42
43    impl PtxUnparser for ClusterlaunchcontrolQueryCancelGetFirstCtaidV4B32B128 {
44        fn unparse_tokens(&self, tokens: &mut ::std::vec::Vec<PtxToken>) {
45            self.unparse_tokens_mode(tokens, false);
46        }
47        fn unparse_tokens_mode(&self, tokens: &mut ::std::vec::Vec<PtxToken>, spaced: bool) {
48            push_opcode(tokens, "clusterlaunchcontrol");
49            push_directive(tokens, "query_cancel");
50            push_directive(tokens, "get_first_ctaid");
51            push_directive(tokens, "v4");
52            push_directive(tokens, "b32");
53            push_directive(tokens, "b128");
54            if spaced {
55                tokens.push(PtxToken::Space);
56            }
57            self.xdim.unparse_tokens_mode(tokens, spaced);
58            tokens.push(PtxToken::Comma);
59            if spaced {
60                tokens.push(PtxToken::Space);
61            }
62            self.try_cancel_response.unparse_tokens_mode(tokens, spaced);
63            tokens.push(PtxToken::Semicolon);
64            if spaced {
65                tokens.push(PtxToken::Newline);
66            }
67        }
68    }
69
70    impl PtxUnparser for ClusterlaunchcontrolQueryCancelGetFirstCtaidDimensionB32B128 {
71        fn unparse_tokens(&self, tokens: &mut ::std::vec::Vec<PtxToken>) {
72            self.unparse_tokens_mode(tokens, false);
73        }
74        fn unparse_tokens_mode(&self, tokens: &mut ::std::vec::Vec<PtxToken>, spaced: bool) {
75            push_opcode(tokens, "clusterlaunchcontrol");
76            push_directive(tokens, "query_cancel");
77            if let Some(get_first_ctaid_dimension_0) = self.get_first_ctaid_dimension.as_ref() {
78                match get_first_ctaid_dimension_0 {
79                    GetFirstCtaidDimension::GetFirstCtaidX => {
80                        push_directive(tokens, "get_first_ctaid::x");
81                    }
82                    GetFirstCtaidDimension::GetFirstCtaidY => {
83                        push_directive(tokens, "get_first_ctaid::y");
84                    }
85                    GetFirstCtaidDimension::GetFirstCtaidZ => {
86                        push_directive(tokens, "get_first_ctaid::z");
87                    }
88                }
89            }
90            push_directive(tokens, "b32");
91            push_directive(tokens, "b128");
92            if spaced {
93                tokens.push(PtxToken::Space);
94            }
95            self.reg.unparse_tokens_mode(tokens, spaced);
96            tokens.push(PtxToken::Comma);
97            if spaced {
98                tokens.push(PtxToken::Space);
99            }
100            self.try_cancel_response.unparse_tokens_mode(tokens, spaced);
101            tokens.push(PtxToken::Semicolon);
102            if spaced {
103                tokens.push(PtxToken::Newline);
104            }
105        }
106    }
107}