#![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 Asel {
B0, B1, B2, B3, H0, H1, }
#[derive(Debug, Clone, PartialEq)]
pub enum Bsel {
B0, B1, B2, B3, H0, H1, }
#[derive(Debug, Clone, PartialEq)]
pub enum Op2 {
Add, Min, Max, }
#[derive(Debug, Clone, PartialEq)]
pub enum Dsel {
B0, B1, B2, B3, H0, H1, }
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VaddDtypeAtypeBtypeSat {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, pub d: GeneralOperand, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VsubDtypeAtypeBtypeSat {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, pub d: GeneralOperand, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VabsdiffDtypeAtypeBtypeSat {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, pub d: GeneralOperand, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VminDtypeAtypeBtypeSat {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, pub d: GeneralOperand, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VmaxDtypeAtypeBtypeSat {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, pub d: GeneralOperand, pub a: GeneralOperand, pub asel: Option<Asel>, pub b: GeneralOperand, pub bsel: Option<Bsel>, pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VaddDtypeAtypeBtypeSatOp2 {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, 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,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VsubDtypeAtypeBtypeSatOp2 {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, 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,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VabsdiffDtypeAtypeBtypeSatOp2 {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, 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,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VminDtypeAtypeBtypeSatOp2 {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, 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,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VmaxDtypeAtypeBtypeSatOp2 {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, 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,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VaddDtypeAtypeBtypeSat1 {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, 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,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VsubDtypeAtypeBtypeSat1 {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, 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,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VabsdiffDtypeAtypeBtypeSat1 {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, 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,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VminDtypeAtypeBtypeSat1 {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, 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,
}
#[derive(Debug, Clone, PartialEq, Spanned)]
pub struct VmaxDtypeAtypeBtypeSat1 {
pub dtype: Dtype, pub atype: Atype, pub btype: Btype, pub sat: bool, 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,
}
}
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::Dsel as Dsel0;
pub use section_0::Dtype as Dtype0;
pub use section_0::Op2 as Op20;
pub use section_0::VabsdiffDtypeAtypeBtypeSat;
pub use section_0::VabsdiffDtypeAtypeBtypeSat1;
pub use section_0::VabsdiffDtypeAtypeBtypeSatOp2;
pub use section_0::VaddDtypeAtypeBtypeSat;
pub use section_0::VaddDtypeAtypeBtypeSat1;
pub use section_0::VaddDtypeAtypeBtypeSatOp2;
pub use section_0::VmaxDtypeAtypeBtypeSat;
pub use section_0::VmaxDtypeAtypeBtypeSat1;
pub use section_0::VmaxDtypeAtypeBtypeSatOp2;
pub use section_0::VminDtypeAtypeBtypeSat;
pub use section_0::VminDtypeAtypeBtypeSat1;
pub use section_0::VminDtypeAtypeBtypeSatOp2;
pub use section_0::VsubDtypeAtypeBtypeSat;
pub use section_0::VsubDtypeAtypeBtypeSat1;
pub use section_0::VsubDtypeAtypeBtypeSatOp2;