#![allow(unused)]
use crate::r#type::common::*;
pub mod section_0 {
use crate::Spanned;
use crate::parser::Span;
use crate::r#type::common::*;
#[derive(Debug, Clone, PartialEq)]
pub enum Dtype {
U32, S32, }
#[derive(Debug, Clone, PartialEq)]
pub enum Atype {
U32, S32, }
#[derive(Debug, Clone, PartialEq)]
pub enum Btype {
U32, S32, }
#[derive(Debug, Clone, PartialEq)]
pub enum Mask {
H10, H0, H1, }
#[derive(Debug, Clone, PartialEq)]
pub enum Asel {
H00, H01, H02, H03, H10, H11, H12, H13, H20, H21, H22, H23, H30, H31, H32, H33, }
#[derive(Debug, Clone, PartialEq)]
pub enum Bsel {
H00, H01, H02, H03, H10, H11, H12, H13, H20, H21, H22, H23, H30, H31, H32, H33, }
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct Vadd2DtypeAtypeBtypeSat {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, pub d: GeneralOperand, pub mask: Option<Mask>, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub c: GeneralOperand, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct Vsub2DtypeAtypeBtypeSat {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, pub d: GeneralOperand, pub mask: Option<Mask>, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub c: GeneralOperand, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct Vavrg2DtypeAtypeBtypeSat {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, pub d: GeneralOperand, pub mask: Option<Mask>, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub c: GeneralOperand, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct Vabsdiff2DtypeAtypeBtypeSat {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, pub d: GeneralOperand, pub mask: Option<Mask>, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub c: GeneralOperand, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct Vmin2DtypeAtypeBtypeSat {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, pub d: GeneralOperand, pub mask: Option<Mask>, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub c: GeneralOperand, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct Vmax2DtypeAtypeBtypeSat {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, pub d: GeneralOperand, pub mask: Option<Mask>, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub c: GeneralOperand, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct Vadd2DtypeAtypeBtypeAdd {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub add: (), pub d: GeneralOperand, pub mask: Option<Mask>, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub c: GeneralOperand, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct Vsub2DtypeAtypeBtypeAdd {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub add: (), pub d: GeneralOperand, pub mask: Option<Mask>, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub c: GeneralOperand, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct Vavrg2DtypeAtypeBtypeAdd {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub add: (), pub d: GeneralOperand, pub mask: Option<Mask>, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub c: GeneralOperand, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct Vabsdiff2DtypeAtypeBtypeAdd {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub add: (), pub d: GeneralOperand, pub mask: Option<Mask>, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub c: GeneralOperand, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct Vmin2DtypeAtypeBtypeAdd {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub add: (), pub d: GeneralOperand, pub mask: Option<Mask>, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub c: GeneralOperand, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct Vmax2DtypeAtypeBtypeAdd {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub add: (), pub d: GeneralOperand, pub mask: Option<Mask>, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub c: GeneralOperand, pub span: Span,
}
}
pub use section_0::Asel as Asel0;
pub use section_0::Atype as Atype0;
pub use section_0::Bsel as Bsel0;
pub use section_0::Btype as Btype0;
pub use section_0::Dtype as Dtype0;
pub use section_0::Mask as Mask0;
pub use section_0::Vabsdiff2DtypeAtypeBtypeAdd;
pub use section_0::Vabsdiff2DtypeAtypeBtypeSat;
pub use section_0::Vadd2DtypeAtypeBtypeAdd;
pub use section_0::Vadd2DtypeAtypeBtypeSat;
pub use section_0::Vavrg2DtypeAtypeBtypeAdd;
pub use section_0::Vavrg2DtypeAtypeBtypeSat;
pub use section_0::Vmax2DtypeAtypeBtypeAdd;
pub use section_0::Vmax2DtypeAtypeBtypeSat;
pub use section_0::Vmin2DtypeAtypeBtypeAdd;
pub use section_0::Vmin2DtypeAtypeBtypeSat;
pub use section_0::Vsub2DtypeAtypeBtypeAdd;
pub use section_0::Vsub2DtypeAtypeBtypeSat;