ptx_parser/type/instruction/
vset.rs1#![allow(unused)]
14use crate::r#type::common::*;
15
16pub mod section_0 {
17 use crate::Spanned;
18 use crate::parser::Span;
19 use crate::r#type::common::*;
20
21 use serde::Serialize;
22
23 #[derive(Debug, Clone, PartialEq, Serialize)]
24 pub enum Atype {
25 U32, S32, }
28
29 #[derive(Debug, Clone, PartialEq, Serialize)]
30 pub enum Btype {
31 U32, S32, }
34
35 #[derive(Debug, Clone, PartialEq, Serialize)]
36 pub enum Cmp {
37 Eq, Ne, Lt, Le, Gt, Ge, }
44
45 #[derive(Debug, Clone, PartialEq, Serialize)]
46 pub enum Asel {
47 B0, B1, B2, B3, H0, H1, }
54
55 #[derive(Debug, Clone, PartialEq, Serialize)]
56 pub enum Bsel {
57 B0, B1, B2, B3, H0, H1, }
64
65 #[derive(Debug, Clone, PartialEq, Serialize)]
66 pub enum Op2 {
67 Add, Min, Max, }
71
72 #[derive(Debug, Clone, PartialEq, Serialize)]
73 pub enum Dsel {
74 B0, B1, B2, B3, H0, H1, }
81
82 #[derive(Debug, Clone, PartialEq, Spanned, Serialize)]
83 pub struct VsetAtypeBtypeCmp {
84 pub atype: Atype, pub btype: Btype, pub cmp: Cmp, pub d: GeneralOperand, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub span: Span,
93 }
94
95 #[derive(Debug, Clone, PartialEq, Spanned, Serialize)]
96 pub struct VsetAtypeBtypeCmpOp2 {
97 pub atype: Atype, pub btype: Btype, pub cmp: Cmp, pub op2: Op2, pub d: GeneralOperand, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub c: GeneralOperand, pub span: Span,
108 }
109
110 #[derive(Debug, Clone, PartialEq, Spanned, Serialize)]
111 pub struct VsetAtypeBtypeCmp1 {
112 pub atype: Atype, pub btype: Btype, pub cmp: Cmp, pub d: GeneralOperand, pub dsel: Dsel, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub c: GeneralOperand, pub span: Span,
123 }
124}
125
126pub use section_0::Asel as Asel0;
129pub use section_0::Atype as Atype0;
130pub use section_0::Bsel as Bsel0;
131pub use section_0::Btype as Btype0;
132pub use section_0::Cmp as Cmp0;
133pub use section_0::Dsel as Dsel0;
134pub use section_0::Op2 as Op20;
135pub use section_0::VsetAtypeBtypeCmp;
136pub use section_0::VsetAtypeBtypeCmp1;
137pub use section_0::VsetAtypeBtypeCmpOp2;