add {
	SIMD_ADDB: QI_REF QI_REF QI_REF,-7;
	SIMD_ADDW: HI_REF HI_REF HI_REF,-3;
	SIMD_ADDD: SI_REF SI_REF SI_REF,-1;
	SIMD_ADDPS: SF_REF SF_REF SF_REF,-3;
	SIMD_ADDPD: DF_REF DF_REF DF_REF,-2;
	SIMD_ADDCS: SC_REF SC_REF SC_REF,-3;
	SIMD_ADDCD: DC_REF DC_REF DC_REF,-2;
}

add: = REFERENCE + REFERENCE REFERENCE ;
add: = REFERENCE + REFERENCE CONSTANT ;
add: = REFERENCE + CONSTANT REFERENCE ;
#add: = REFERENCE REFERENCE : ,,0 ;
muladd {
	SIMD_MULADDB: QI_REF QI_REF QI_REF QI_REF,-7;
	SIMD_MULADDW: HI_REF HI_REF HI_REF HI_REF,-3;
	SIMD_MULADDD: SI_REF SI_REF SI_REF SI_REF,-1;
	SIMD_MULADDPS: SF_REF SF_REF SF_REF SF_REF,-3;
	SIMD_MULADDPD: DF_REF DF_REF DF_REF DF_REF,-2;
	SIMD_MULADDCS: SC_REF SC_REF SC_REF SC_REF,-3;
	SIMD_MULADDCD: DC_REF DC_REF DC_REF DC_REF,-2;
}

muladd: = REFERENCE __PIPS_SAC_MULADD REFERENCE  REFERENCE REFERENCE ;
muladd: = CONSTANT  __PIPS_SAC_MULADD REFERENCE  REFERENCE REFERENCE ;
muladd: = REFERENCE __PIPS_SAC_MULADD CONSTANT   REFERENCE REFERENCE ;
muladd: = CONSTANT  __PIPS_SAC_MULADD CONSTANT   REFERENCE REFERENCE ;
muladd: = REFERENCE __PIPS_SAC_MULADD REFERENCE  CONSTANT  REFERENCE ;
muladd: = CONSTANT  __PIPS_SAC_MULADD REFERENCE  CONSTANT  REFERENCE ;
muladd: = REFERENCE __PIPS_SAC_MULADD CONSTANT   CONSTANT  REFERENCE ;
muladd: = CONSTANT  __PIPS_SAC_MULADD CONSTANT   CONSTANT  REFERENCE ;
muladd: = REFERENCE __PIPS_SAC_MULADD REFERENCE  REFERENCE CONSTANT  ;
muladd: = CONSTANT  __PIPS_SAC_MULADD REFERENCE  REFERENCE CONSTANT  ;
muladd: = REFERENCE __PIPS_SAC_MULADD CONSTANT   REFERENCE CONSTANT  ;
muladd: = CONSTANT  __PIPS_SAC_MULADD CONSTANT   REFERENCE CONSTANT  ;
muladd: = REFERENCE __PIPS_SAC_MULADD REFERENCE  CONSTANT  CONSTANT  ;
muladd: = CONSTANT  __PIPS_SAC_MULADD REFERENCE  CONSTANT  CONSTANT  ;
muladd: = REFERENCE __PIPS_SAC_MULADD CONSTANT   CONSTANT  CONSTANT  ;
muladd: = CONSTANT  __PIPS_SAC_MULADD CONSTANT   CONSTANT  CONSTANT  ;

uminus {
	SIMD_UMINB: QI_REF QI_REF ,-7;
	SIMD_UMINW: HI_REF HI_REF ,-3;
	SIMD_UMIND: SI_REF SI_REF ,-1;
	SIMD_UMINPS: SF_REF SF_REF ,-3;
	SIMD_UMINPD: DF_REF DF_REF ,-2;
	SIMD_UMINCS: SC_REF SC_REF ,-3;
	SIMD_UMINCD: DC_REF DC_REF ,-2;
}
uminus: = REFERENCE UNARY_MINUS REFERENCE ;
uminus: = REFERENCE UNARY_MINUS CONSTANT ;

sub {
	SIMD_SUBB: QI_REF QI_REF QI_REF,-7;
	SIMD_SUBW: HI_REF HI_REF HI_REF,-3;
	SIMD_SUBD: SI_REF SI_REF SI_REF,-1;
	SIMD_SUBPS: SF_REF SF_REF SF_REF,-3;
	SIMD_SUBPD: DF_REF DF_REF DF_REF,-2;
	SIMD_SUBCS: SC_REF SC_REF SC_REF,-3;
	SIMD_SUBCD: DC_REF DC_REF DC_REF,-2;
}

sub: = REFERENCE - REFERENCE REFERENCE ;
sub: = REFERENCE - REFERENCE CONSTANT ;
sub: = REFERENCE - CONSTANT REFERENCE ;
sub: = REFERENCE + UNARY_MINUS REFERENCE CONSTANT ;
sub: = REFERENCE + CONSTANT UNARY_MINUS REFERENCE ;
sub: = REFERENCE + REFERENCE UNARY_MINUS REFERENCE ;
#sub: = REFERENCE REFERENCE : ,,0 ;

mul {
	SIMD_MULB: QI_REF QI_REF QI_REF,-7;
	SIMD_MULW: HI_REF HI_REF HI_REF,-3;
	SIMD_MULD: SI_REF SI_REF SI_REF,-1;
	SIMD_MULPS: SF_REF SF_REF SF_REF,-3;
	SIMD_MULPD: DF_REF DF_REF DF_REF,-3;
	SIMD_MULCS: SC_REF SC_REF SC_REF,-3;
	SIMD_MULCD: DC_REF DC_REF DC_REF,-2;
}

mul: = REFERENCE * REFERENCE REFERENCE ;
mul: = REFERENCE * CONSTANT REFERENCE ;
mul: = REFERENCE * REFERENCE CONSTANT ;
#mul: = REFERENCE REFERENCE : ,,1 ;

div {
	SIMD_DIVB: QI_REF QI_REF QI_REF,-7;
	SIMD_DIVW: HI_REF HI_REF HI_REF,-3;
	SIMD_DIVD: SI_REF SI_REF SI_REF,-1;
	SIMD_DIVPS: SF_REF SF_REF SF_REF,-3;
	SIMD_DIVPD: DF_REF DF_REF DF_REF,-3;
}

div: = REFERENCE / REFERENCE REFERENCE ;
div: = REFERENCE / CONSTANT REFERENCE ;
div: = REFERENCE / REFERENCE CONSTANT ;
#div: = REFERENCE REFERENCE : ,,1 ;

gt {
	SIMD_GTB:   SI_REF QI_REF QI_REF,-7;
	SIMD_GTW:   SI_REF HI_REF HI_REF,-3;
	SIMD_GTD:   SI_REF SI_REF SI_REF,-2;
	SIMD_GTPS:  SI_REF SF_REF SF_REF,-1;
	SIMD_GTPD:  SI_REF DF_REF DF_REF,-1;
}

gt: = REFERENCE > REFERENCE REFERENCE ;
gt: = REFERENCE > CONSTANT REFERENCE ;
gt: = REFERENCE > REFERENCE CONSTANT ;

phi {
	SIMD_PHIB:    QI_REF SI_REF QI_REF QI_REF,-10;
	SIMD_PHIW:    HI_REF SI_REF HI_REF HI_REF,-7;
	SIMD_PHID:    SI_REF SI_REF SI_REF SI_REF,-5;
	SIMD_PHIPS:   SF_REF SI_REF SF_REF SF_REF,-6;
	SIMD_PHIPD:   DF_REF SI_REF DF_REF DF_REF,-6;
}

phi: = REFERENCE ? REFERENCE REFERENCE REFERENCE;
phi: = REFERENCE ? REFERENCE CONSTANT REFERENCE;
phi: = REFERENCE ? REFERENCE REFERENCE CONSTANT;

cos {
	SIMD_COSB: QI_REF QI_REF ,-7;
	SIMD_COSW: HI_REF HI_REF ,-3;
	SIMD_COSD: SI_REF SI_REF ,-1;
	SIMD_COSPS: SF_REF SF_REF,-3;
	SIMD_COSPD: DF_REF DF_REF,-3;
}

cos: = REFERENCE COS REFERENCE ;
cos: = REFERENCE COS CONSTANT ;
sin {
	SIMD_SINB:  QI_REF QI_REF ,-7;
	SIMD_SINW:  HI_REF HI_REF ,-3;
	SIMD_SIND:  SI_REF SI_REF ,-1;
	SIMD_SINPS: SF_REF SF_REF,-3;
	SIMD_SINPD: DF_REF DF_REF,-3;
}

sin: = REFERENCE SIN REFERENCE ;
sin: = REFERENCE SIN CONSTANT ;
