#![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 {
B3210, B210, B310, B320, B321, B10, B20, B21, B30, B31, B32, B0, B1, B2, B3, }
#[derive(Debug, Clone, PartialEq)]
pub enum N {
_0, _1, _2, _3, _4, _5, _6, _7, }
#[derive(Debug, Clone, PartialEq)]
pub enum Asel {
BNNNN((), N, N, N, N), }
#[derive(Debug, Clone, PartialEq)]
pub enum Bsel {
BNNNN((), N, N, N, N), }
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct Vadd4DtypeAtypeBtypeSat {
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 Vsub4DtypeAtypeBtypeSat {
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 Vavrg4DtypeAtypeBtypeSat {
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 Vabsdiff4DtypeAtypeBtypeSat {
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 Vmin4DtypeAtypeBtypeSat {
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 Vmax4DtypeAtypeBtypeSat {
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 Vadd4DtypeAtypeBtypeAdd {
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 Vsub4DtypeAtypeBtypeAdd {
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 Vavrg4DtypeAtypeBtypeAdd {
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 Vabsdiff4DtypeAtypeBtypeAdd {
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 Vmin4DtypeAtypeBtypeAdd {
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 Vmax4DtypeAtypeBtypeAdd {
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::N as N0;
pub use section_0::Vabsdiff4DtypeAtypeBtypeAdd;
pub use section_0::Vabsdiff4DtypeAtypeBtypeSat;
pub use section_0::Vadd4DtypeAtypeBtypeAdd;
pub use section_0::Vadd4DtypeAtypeBtypeSat;
pub use section_0::Vavrg4DtypeAtypeBtypeAdd;
pub use section_0::Vavrg4DtypeAtypeBtypeSat;
pub use section_0::Vmax4DtypeAtypeBtypeAdd;
pub use section_0::Vmax4DtypeAtypeBtypeSat;
pub use section_0::Vmin4DtypeAtypeBtypeAdd;
pub use section_0::Vmin4DtypeAtypeBtypeSat;
pub use section_0::Vsub4DtypeAtypeBtypeAdd;
pub use section_0::Vsub4DtypeAtypeBtypeSat;