ptx_parser/type/instruction/
mul.rs1#![allow(unused)]
20use crate::r#type::common::*;
21
22pub mod section_0 {
23 use crate::Spanned;
24 use crate::parser::Span;
25 use crate::r#type::common::*;
26
27 use serde::Serialize;
28
29 #[derive(Debug, Clone, PartialEq, Serialize)]
30 pub enum Mode {
31 Wide, Hi, Lo, }
35
36 #[derive(Debug, Clone, PartialEq, Serialize)]
37 pub enum Type {
38 U16, U32, U64, S16, S32, S64, }
45
46 #[derive(Debug, Clone, PartialEq, Spanned, Serialize)]
47 pub struct MulModeType {
48 pub mode: Mode, pub type_: Type, pub d: GeneralOperand, pub a: GeneralOperand, pub b: GeneralOperand, pub span: Span,
54 }
55}
56
57pub mod section_1 {
58 use crate::Spanned;
59 use crate::parser::Span;
60 use crate::r#type::common::*;
61
62 use serde::Serialize;
63
64 #[derive(Debug, Clone, PartialEq, Serialize)]
65 pub enum Rnd {
66 Rn, Rz, Rm, Rp, }
71
72 #[derive(Debug, Clone, PartialEq, Spanned, Serialize)]
73 pub struct MulRndFtzSatF32 {
74 pub rnd: Option<Rnd>, pub ftz: bool, pub sat: bool, pub f32: (), pub d: GeneralOperand, pub a: GeneralOperand, pub b: GeneralOperand, pub span: Span,
82 }
83
84 #[derive(Debug, Clone, PartialEq, Spanned, Serialize)]
85 pub struct MulRndFtzF32x2 {
86 pub rnd: Option<Rnd>, pub ftz: bool, pub f32x2: (), pub d: GeneralOperand, pub a: GeneralOperand, pub b: GeneralOperand, pub span: Span,
93 }
94
95 #[derive(Debug, Clone, PartialEq, Spanned, Serialize)]
96 pub struct MulRndF64 {
97 pub rnd: Option<Rnd>, pub f64: (), pub d: GeneralOperand, pub a: GeneralOperand, pub b: GeneralOperand, pub span: Span,
103 }
104}
105
106pub mod section_2 {
107 use crate::Spanned;
108 use crate::parser::Span;
109 use crate::r#type::common::*;
110
111 use serde::Serialize;
112
113 #[derive(Debug, Clone, PartialEq, Serialize)]
114 pub enum Rnd {
115 Rn, }
117
118 #[derive(Debug, Clone, PartialEq, Spanned, Serialize)]
119 pub struct MulRndFtzSatF16 {
120 pub rnd: Option<Rnd>, pub ftz: bool, pub sat: bool, pub f16: (), pub d: GeneralOperand, pub a: GeneralOperand, pub b: GeneralOperand, pub span: Span,
128 }
129
130 #[derive(Debug, Clone, PartialEq, Spanned, Serialize)]
131 pub struct MulRndFtzSatF16x2 {
132 pub rnd: Option<Rnd>, pub ftz: bool, pub sat: bool, pub f16x2: (), pub d: GeneralOperand, pub a: GeneralOperand, pub b: GeneralOperand, pub span: Span,
140 }
141
142 #[derive(Debug, Clone, PartialEq, Spanned, Serialize)]
143 pub struct MulRndBf16 {
144 pub rnd: Option<Rnd>, pub bf16: (), pub d: GeneralOperand, pub a: GeneralOperand, pub b: GeneralOperand, pub span: Span,
150 }
151
152 #[derive(Debug, Clone, PartialEq, Spanned, Serialize)]
153 pub struct MulRndBf16x2 {
154 pub rnd: Option<Rnd>, pub bf16x2: (), pub d: GeneralOperand, pub a: GeneralOperand, pub b: GeneralOperand, pub span: Span,
160 }
161}
162
163pub use section_0::Mode as Mode0;
166pub use section_0::MulModeType;
167pub use section_0::Type as Type0;
168pub use section_1::MulRndF64;
169pub use section_1::MulRndFtzF32x2;
170pub use section_1::MulRndFtzSatF32;
171pub use section_1::Rnd as Rnd1;
172pub use section_2::MulRndBf16;
173pub use section_2::MulRndBf16x2;
174pub use section_2::MulRndFtzSatF16;
175pub use section_2::MulRndFtzSatF16x2;
176pub use section_2::Rnd as Rnd2;