# This file provides a declarative way of describing the types that
# are used when declaring ix86 builtin functions.  It is processed
# with i386-builtin-type.awk to produce C code.
#
# DEF_PRIMITIVE_TYPE (ENUM, TYPE)
#
#   The ENUM is an identifier indicating which type is being defined.
#   TYPE is a variable that represents the type.
#   ??? Note that the awk program expects a single token for TYPE.
#   At present, that's all that's required; revisit if it turns out
#   that we need more than that.
#
# DEF_VECTOR_TYPE (ENUM, TYPE [, MODE])
#
#  This describes a vector type.  ENUM is an identifier as above.
#  TYPE is the enumeral for the inner type which should of course
#  name a type of the proper inner mode.  If present, MODE is the
#  machine mode, else the machine mode should be the same as ENUM.
#
# DEF_POINTER_TYPE (ENUM, TYPE [, CONST])
#
#  This describes a pointer type.  ENUM is an identifier as above;
#  TYPE is the enumeral for the type pointed to.  An optional third 
#  argument is the keyword CONST, which defines this to be a pointer to
#  a constant type.
#
# DEF_FUNCTION_TYPE (RETURN, ARGN*)
#
#   This describes a function type.  The return type and the arguments
#   are the enumerals defined above.  The enumeration name for the 
#   function is formed by RETURN ## _FTYPE_ ## ARG1 ## _ ## ARG2 ...
#
# DEF_FUNCTION_TYPE_ALIAS (ENUM, SUFFIX)
#
#   This defines an enumeration ENUM ## _ ## SUFFIX and arranges for
#   the function type to be copied from ENUM.  This is used to control
#   how the expanders treat the function.
#

DEF_PRIMITIVE_TYPE (VOID, void_type_node)
DEF_PRIMITIVE_TYPE (CHAR, char_type_node)
DEF_PRIMITIVE_TYPE (UCHAR, unsigned_char_type_node)
# ??? Logically this should be intQI_type_node, but that maps to "signed char"
# which is a different type than "char" even if "char" is signed.  This must
# match the usage in emmintrin.h and changing this would change name mangling
# and so is not advisable.
DEF_PRIMITIVE_TYPE (QI, char_type_node)
DEF_PRIMITIVE_TYPE (HI, intHI_type_node)
DEF_PRIMITIVE_TYPE (SI, intSI_type_node)
DEF_PRIMITIVE_TYPE (BND, pointer_bounds_type_node)
# ??? Logically this should be intDI_type_node, but that maps to "long"
# with 64-bit, and that's not how the emmintrin.h is written.  Again, 
# changing this would change name mangling.
DEF_PRIMITIVE_TYPE (DI, long_long_integer_type_node)
DEF_PRIMITIVE_TYPE (UQI, unsigned_intQI_type_node)
DEF_PRIMITIVE_TYPE (UHI, unsigned_intHI_type_node)
DEF_PRIMITIVE_TYPE (USI, unsigned_intSI_type_node)
DEF_PRIMITIVE_TYPE (UDI, long_long_unsigned_type_node)
# ??? Some of the types below should use the mode types above.
DEF_PRIMITIVE_TYPE (SHORT, short_integer_type_node)
DEF_PRIMITIVE_TYPE (USHORT, short_unsigned_type_node)
DEF_PRIMITIVE_TYPE (INT, integer_type_node)
DEF_PRIMITIVE_TYPE (UINT, unsigned_type_node)
DEF_PRIMITIVE_TYPE (UNSIGNED, unsigned_type_node)
DEF_PRIMITIVE_TYPE (ULONG, long_unsigned_type_node)
DEF_PRIMITIVE_TYPE (LONGLONG, long_long_integer_type_node)
DEF_PRIMITIVE_TYPE (ULONGLONG, long_long_unsigned_type_node)
DEF_PRIMITIVE_TYPE (UINT8, unsigned_char_type_node)
DEF_PRIMITIVE_TYPE (UINT16, short_unsigned_type_node)
DEF_PRIMITIVE_TYPE (INT64, long_long_integer_type_node)
DEF_PRIMITIVE_TYPE (UINT64, long_long_unsigned_type_node)
DEF_PRIMITIVE_TYPE (FLOAT, float_type_node)
DEF_PRIMITIVE_TYPE (DOUBLE, double_type_node)
DEF_PRIMITIVE_TYPE (FLOAT80, float80_type_node)
DEF_PRIMITIVE_TYPE (FLOAT128, float128_type_node)
DEF_PRIMITIVE_TYPE (CONST_STRING, const_string_type_node)

# MMX vectors
DEF_VECTOR_TYPE (V2SF, FLOAT)
DEF_VECTOR_TYPE (V1DI, DI)
DEF_VECTOR_TYPE (V2SI, SI)
DEF_VECTOR_TYPE (V4HI, HI)
DEF_VECTOR_TYPE (V8QI, QI)

# SSE vectors
DEF_VECTOR_TYPE (V2DF, DOUBLE)
DEF_VECTOR_TYPE (V4SF, FLOAT)
DEF_VECTOR_TYPE (V2DI, DI)
DEF_VECTOR_TYPE (V4SI, SI)
DEF_VECTOR_TYPE (V8HI, HI)
DEF_VECTOR_TYPE (V16QI, QI)
DEF_VECTOR_TYPE (V2UDI, UDI, V2DI)
DEF_VECTOR_TYPE (V4USI, USI, V4SI)
DEF_VECTOR_TYPE (V8UHI, UHI, V8HI)
DEF_VECTOR_TYPE (V16UQI, UQI, V16QI)

# AVX vectors
DEF_VECTOR_TYPE (V4DF, DOUBLE)
DEF_VECTOR_TYPE (V8SF, FLOAT)
DEF_VECTOR_TYPE (V4DI, DI)
DEF_VECTOR_TYPE (V8SI, SI)
DEF_VECTOR_TYPE (V16HI, HI)
DEF_VECTOR_TYPE (V32QI, QI)
DEF_VECTOR_TYPE (V4UDI, UDI, V4DI)
DEF_VECTOR_TYPE (V8USI, USI, V8SI)
DEF_VECTOR_TYPE (V16UHI, UHI, V16HI)

# AVX512F vectors
DEF_VECTOR_TYPE (V32SF, FLOAT)
DEF_VECTOR_TYPE (V16SF, FLOAT)
DEF_VECTOR_TYPE (V8DF, DOUBLE)
DEF_VECTOR_TYPE (V8DI, DI)
DEF_VECTOR_TYPE (V16SI, SI)
DEF_VECTOR_TYPE (V32HI, HI)
DEF_VECTOR_TYPE (V64QI, QI)
DEF_VECTOR_TYPE (V12QI, QI)
DEF_VECTOR_TYPE (V14QI, QI)
DEF_VECTOR_TYPE (V32SI, SI)
DEF_VECTOR_TYPE (V8UDI, UDI, V8DI)
DEF_VECTOR_TYPE (V16USI, USI, V16SI)
DEF_VECTOR_TYPE (V32UHI, UHI, V32HI)

DEF_POINTER_TYPE (PCCHAR, CHAR, CONST)
DEF_POINTER_TYPE (PCDOUBLE, DOUBLE, CONST)
DEF_POINTER_TYPE (PCFLOAT, FLOAT, CONST)
DEF_POINTER_TYPE (PCINT, INT, CONST)
DEF_POINTER_TYPE (PCINT64, INT64, CONST)
DEF_POINTER_TYPE (PCSHORT, SHORT, CONST)
DEF_POINTER_TYPE (PCHAR, CHAR)
DEF_POINTER_TYPE (PCVOID, VOID, CONST)
DEF_POINTER_TYPE (PVOID, VOID)
DEF_POINTER_TYPE (PDOUBLE, DOUBLE)
DEF_POINTER_TYPE (PFLOAT, FLOAT)
DEF_POINTER_TYPE (PSHORT, SHORT)
DEF_POINTER_TYPE (PUSHORT, USHORT)
DEF_POINTER_TYPE (PINT, INT)
DEF_POINTER_TYPE (PINT64, INT64)
DEF_POINTER_TYPE (PLONGLONG, LONGLONG)
DEF_POINTER_TYPE (PULONGLONG, ULONGLONG)
DEF_POINTER_TYPE (PUNSIGNED, UNSIGNED)

DEF_POINTER_TYPE (PUQI, UQI)
DEF_POINTER_TYPE (PUHI, UHI)
DEF_POINTER_TYPE (PUSI, USI)
DEF_POINTER_TYPE (PUDI, UDI)
DEF_POINTER_TYPE (PUCHAR, UCHAR)

DEF_POINTER_TYPE (PV2SI, V2SI)
DEF_POINTER_TYPE (PV2DF, V2DF)
DEF_POINTER_TYPE (PV2DI, V2DI)
DEF_POINTER_TYPE (PV2SF, V2SF)
DEF_POINTER_TYPE (PV4DF, V4DF)
DEF_POINTER_TYPE (PV4DI, V4DI)
DEF_POINTER_TYPE (PV4SF, V4SF)
DEF_POINTER_TYPE (PV8DF, V8DF)
DEF_POINTER_TYPE (PV8SF, V8SF)
DEF_POINTER_TYPE (PV4SI, V4SI)
DEF_POINTER_TYPE (PV8HI, V8HI)
DEF_POINTER_TYPE (PV8SI, V8SI)
DEF_POINTER_TYPE (PV8DI, V8DI)
DEF_POINTER_TYPE (PV16QI, V16QI)
DEF_POINTER_TYPE (PV16HI, V16HI)
DEF_POINTER_TYPE (PV16SI, V16SI)
DEF_POINTER_TYPE (PV16SF, V16SF)
DEF_POINTER_TYPE (PV32QI, V32QI)
DEF_POINTER_TYPE (PV32HI, V32HI)
DEF_POINTER_TYPE (PV64QI, V64QI)

DEF_POINTER_TYPE (PCV2SI, V2SI, CONST)
DEF_POINTER_TYPE (PCV2DF, V2DF, CONST)
DEF_POINTER_TYPE (PCV2SF, V2SF, CONST)
DEF_POINTER_TYPE (PCV4DF, V4DF, CONST)
DEF_POINTER_TYPE (PCV4SF, V4SF, CONST)
DEF_POINTER_TYPE (PCV8DF, V8DF, CONST)
DEF_POINTER_TYPE (PCV8SF, V8SF, CONST)
DEF_POINTER_TYPE (PCV16SF, V16SF, CONST)

DEF_POINTER_TYPE (PCV2DI, V2DI, CONST)
DEF_POINTER_TYPE (PCV4SI, V4SI, CONST)
DEF_POINTER_TYPE (PCV4DI, V4DI, CONST)
DEF_POINTER_TYPE (PCV8HI, V8HI, CONST)
DEF_POINTER_TYPE (PCV8SI, V8SI, CONST)
DEF_POINTER_TYPE (PCV8DI, V8DI, CONST)
DEF_POINTER_TYPE (PCV16QI, V16QI, CONST)
DEF_POINTER_TYPE (PCV16HI, V16HI, CONST)
DEF_POINTER_TYPE (PCV16SI, V16SI, CONST)
DEF_POINTER_TYPE (PCV32QI, V32QI, CONST)
DEF_POINTER_TYPE (PCV32HI, V32HI, CONST)
DEF_POINTER_TYPE (PCV64QI, V64QI, CONST)

DEF_FUNCTION_TYPE (FLOAT128)
DEF_FUNCTION_TYPE (UINT64)
DEF_FUNCTION_TYPE (UNSIGNED)
DEF_FUNCTION_TYPE (USHORT)
DEF_FUNCTION_TYPE (INT)
DEF_FUNCTION_TYPE (VOID)
DEF_FUNCTION_TYPE (PVOID)

DEF_FUNCTION_TYPE (FLOAT, FLOAT)
DEF_FUNCTION_TYPE (FLOAT128, FLOAT128)
DEF_FUNCTION_TYPE (FLOAT128, CONST_STRING)
DEF_FUNCTION_TYPE (INT, INT)
DEF_FUNCTION_TYPE (INT, V16QI)
DEF_FUNCTION_TYPE (INT, V2DF)
DEF_FUNCTION_TYPE (INT, V4DF)
DEF_FUNCTION_TYPE (INT, V4SF)
DEF_FUNCTION_TYPE (INT, V8QI)
DEF_FUNCTION_TYPE (INT, V8SF)
DEF_FUNCTION_TYPE (INT, V32QI)
DEF_FUNCTION_TYPE (INT, PCCHAR)
DEF_FUNCTION_TYPE (INT64, INT64)
DEF_FUNCTION_TYPE (INT64, V2DF)
DEF_FUNCTION_TYPE (INT64, V4SF)
DEF_FUNCTION_TYPE (UINT, UINT)
DEF_FUNCTION_TYPE (UINT16, UINT16)
DEF_FUNCTION_TYPE (UINT64, INT)
DEF_FUNCTION_TYPE (UINT64, PUNSIGNED)
DEF_FUNCTION_TYPE (UINT64, UINT64)
DEF_FUNCTION_TYPE (V16QI, PCCHAR)
DEF_FUNCTION_TYPE (V16QI, V16QI)
DEF_FUNCTION_TYPE (V2DF, PCDOUBLE)
DEF_FUNCTION_TYPE (V2DF, V2DF)
DEF_FUNCTION_TYPE (V2DF, V2SI)
DEF_FUNCTION_TYPE (V2DF, V4DF)
DEF_FUNCTION_TYPE (V2DF, V4SF)
DEF_FUNCTION_TYPE (V2DF, V4SI)
DEF_FUNCTION_TYPE (V2DI, PV2DI)
DEF_FUNCTION_TYPE (V2DI, V16QI)
DEF_FUNCTION_TYPE (V2DI, V2DI)
DEF_FUNCTION_TYPE (V2DI, V4SI)
DEF_FUNCTION_TYPE (V2DI, V8HI)
DEF_FUNCTION_TYPE (V2SF, V2SF)
DEF_FUNCTION_TYPE (V2SF, V2SI)
DEF_FUNCTION_TYPE (V2SI, V2DF)
DEF_FUNCTION_TYPE (V2SI, V2SF)
DEF_FUNCTION_TYPE (V2SI, V2SI)
DEF_FUNCTION_TYPE (V2SI, PCV2SI)
DEF_FUNCTION_TYPE (V2SI, V4SF)
DEF_FUNCTION_TYPE (V32QI, PCCHAR)
DEF_FUNCTION_TYPE (V4DF, PCDOUBLE)
DEF_FUNCTION_TYPE (V4DF, PCV2DF)
DEF_FUNCTION_TYPE (V4DF, V2DF)
DEF_FUNCTION_TYPE (V4DF, V4DF)
DEF_FUNCTION_TYPE (V4DF, V4SF)
DEF_FUNCTION_TYPE (V4DF, V4SI)
DEF_FUNCTION_TYPE (V8DF, V8DF)
DEF_FUNCTION_TYPE (V4HI, V4HI)
DEF_FUNCTION_TYPE (V4SF, PCFLOAT)
DEF_FUNCTION_TYPE (V4SF, V2DF)
DEF_FUNCTION_TYPE (V4SF, V2DF, V4SF, UQI)
DEF_FUNCTION_TYPE (V4SF, V4DF)
DEF_FUNCTION_TYPE (V4SF, V4DF, V4SF, UQI)
DEF_FUNCTION_TYPE (V4SF, V4SF)
DEF_FUNCTION_TYPE (V4SF, PCV4SF)
DEF_FUNCTION_TYPE (V4SF, V4SI)
DEF_FUNCTION_TYPE (V4SF, V8SF)
DEF_FUNCTION_TYPE (V4SF, V8HI)
DEF_FUNCTION_TYPE (V4SF, V8HI, V4SF, UQI)
DEF_FUNCTION_TYPE (V4SI, V16QI)
DEF_FUNCTION_TYPE (V4SI, V2DF)
DEF_FUNCTION_TYPE (V4SI, V4DF)
DEF_FUNCTION_TYPE (V4SI, V4SF)
DEF_FUNCTION_TYPE (V4SI, V4SI)
DEF_FUNCTION_TYPE (V4SI, V8HI)
DEF_FUNCTION_TYPE (V4SI, V8SI)
DEF_FUNCTION_TYPE (V8HI, V16QI)
DEF_FUNCTION_TYPE (V8HI, V8HI)
DEF_FUNCTION_TYPE (V8QI, V8QI)
DEF_FUNCTION_TYPE (V8SF, PCFLOAT)
DEF_FUNCTION_TYPE (V8SF, PCV4SF)
DEF_FUNCTION_TYPE (V8SF, PCV8SF)
DEF_FUNCTION_TYPE (V8SF, V4SF)
DEF_FUNCTION_TYPE (V8SF, V8SF)
DEF_FUNCTION_TYPE (V8SF, V8SI)
DEF_FUNCTION_TYPE (V8SF, V8HI)
DEF_FUNCTION_TYPE (V8SF, V8HI, V8SF, UQI)
DEF_FUNCTION_TYPE (V16SF, V16SF)
DEF_FUNCTION_TYPE (V8SI, V4SI)
DEF_FUNCTION_TYPE (V8SI, V8SF)
DEF_FUNCTION_TYPE (V32QI, V32QI)
DEF_FUNCTION_TYPE (V32QI, V16QI)
DEF_FUNCTION_TYPE (V16HI, V16HI)
DEF_FUNCTION_TYPE (V16HI, V8HI)
DEF_FUNCTION_TYPE (V8SI, V8SI)
DEF_FUNCTION_TYPE (VOID, PCVOID)
DEF_FUNCTION_TYPE (VOID, PVOID)
DEF_FUNCTION_TYPE (VOID, UINT64)
DEF_FUNCTION_TYPE (VOID, UNSIGNED)
DEF_FUNCTION_TYPE (INT, PUSHORT)
DEF_FUNCTION_TYPE (INT, PUNSIGNED)
DEF_FUNCTION_TYPE (INT, PULONGLONG)
DEF_FUNCTION_TYPE (V16HI, V16QI)
DEF_FUNCTION_TYPE (V8SI, V16QI)
DEF_FUNCTION_TYPE (V4DI, V16QI)
DEF_FUNCTION_TYPE (V8SI, V8HI)
DEF_FUNCTION_TYPE (V4DI, V8HI)
DEF_FUNCTION_TYPE (V4DI, V4SI)
DEF_FUNCTION_TYPE (V4DI, PV4DI)
DEF_FUNCTION_TYPE (V4DI, V2DI)
DEF_FUNCTION_TYPE (V16SI, INT)
DEF_FUNCTION_TYPE (V16SF, V4SF)
DEF_FUNCTION_TYPE (V16SF, V8SF)
DEF_FUNCTION_TYPE (V8DF, V4DF)
DEF_FUNCTION_TYPE (V8DF, V2DF)
DEF_FUNCTION_TYPE (V16SI, V4SI)
DEF_FUNCTION_TYPE (V16SI, V8SI)
DEF_FUNCTION_TYPE (V16SI, V16SF)
DEF_FUNCTION_TYPE (V16SI, V16SI)
DEF_FUNCTION_TYPE (V16SI, V16SI, V16SI, UHI)
DEF_FUNCTION_TYPE (V8DI, V8DI, V8DI, UQI)
DEF_FUNCTION_TYPE (V8DI, PV8DI)
DEF_FUNCTION_TYPE (V8DI, V8DI)

DEF_FUNCTION_TYPE (DI, V2DI, INT)
DEF_FUNCTION_TYPE (DOUBLE, V2DF, INT)
DEF_FUNCTION_TYPE (FLOAT, V4SF, INT)
DEF_FUNCTION_TYPE (FLOAT128, FLOAT128, FLOAT128)
DEF_FUNCTION_TYPE (HI, V4HI, INT)
DEF_FUNCTION_TYPE (HI, V8HI, INT)
DEF_FUNCTION_TYPE (INT, V2DF, V2DF)
DEF_FUNCTION_TYPE (INT, V2DI, V2DI)
DEF_FUNCTION_TYPE (INT, V4DF, V4DF)
DEF_FUNCTION_TYPE (INT, V4DI, V4DI)
DEF_FUNCTION_TYPE (INT, V4SF, V4SF)
DEF_FUNCTION_TYPE (INT, V8SF, V8SF)
DEF_FUNCTION_TYPE (QI, V16QI, INT)
DEF_FUNCTION_TYPE (QI, V8QI, INT)
DEF_FUNCTION_TYPE (SI, V2SI, INT)
DEF_FUNCTION_TYPE (SI, V4SI, INT)
DEF_FUNCTION_TYPE (UINT, UINT, UCHAR)
DEF_FUNCTION_TYPE (UINT, UINT, UINT)
DEF_FUNCTION_TYPE (UINT, UINT, USHORT)
DEF_FUNCTION_TYPE (UINT16, UINT16, INT)
DEF_FUNCTION_TYPE (UINT64, UINT64, UINT64)
DEF_FUNCTION_TYPE (UINT8, UINT8, INT)
DEF_FUNCTION_TYPE (V16QI, V16QI, SI)
DEF_FUNCTION_TYPE (V16QI, V16QI, V16QI)
DEF_FUNCTION_TYPE (V16QI, V8HI, V8HI)
DEF_FUNCTION_TYPE (V1DI, V1DI, SI)
DEF_FUNCTION_TYPE (V1DI, V1DI, V1DI)
DEF_FUNCTION_TYPE (V1DI, V2SI, V2SI)
DEF_FUNCTION_TYPE (V1DI, V8QI, V8QI)
DEF_FUNCTION_TYPE (V2DF, PCV2DF, V2DI)
DEF_FUNCTION_TYPE (V2DF, V2DF, UINT)
DEF_FUNCTION_TYPE (V2DF, V2DF, DI)
DEF_FUNCTION_TYPE (V2DF, V2DF, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, PCDOUBLE)
DEF_FUNCTION_TYPE (V2DF, V2DF, SI)
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DF)
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DI)
DEF_FUNCTION_TYPE (V2DF, V2DF, V4SF)
DEF_FUNCTION_TYPE (V2DF, V4DF, INT)
DEF_FUNCTION_TYPE (V2DF, V4DF, INT, V2DF, UQI)
DEF_FUNCTION_TYPE (V2DF, V8DF, INT)
DEF_FUNCTION_TYPE (V2DF, V8DF, INT, V2DF, UQI)
DEF_FUNCTION_TYPE (V2DI, V16QI, V16QI)
DEF_FUNCTION_TYPE (V2DI, V2DI, INT)
DEF_FUNCTION_TYPE (V2DI, V2DI, INT, V2DI, UQI)
DEF_FUNCTION_TYPE (V2DI, V2DI, SI)
DEF_FUNCTION_TYPE (V2DI, V2DI, V16QI)
DEF_FUNCTION_TYPE (V2DI, V2DI, V2DI)
DEF_FUNCTION_TYPE (V2DI, V4SI, V4SI)
DEF_FUNCTION_TYPE (V2DI, PCV2DI, V2DI)
DEF_FUNCTION_TYPE (V2SF, V2SF, V2SF)
DEF_FUNCTION_TYPE (V2SI, INT, INT)
DEF_FUNCTION_TYPE (V2SI, V2SF, V2SF)
DEF_FUNCTION_TYPE (V2SI, V2SI, SI)
DEF_FUNCTION_TYPE (V2SI, V2SI, V2SI)
DEF_FUNCTION_TYPE (V2SI, V4HI, V4HI)
DEF_FUNCTION_TYPE (V4DF, PCV4DF, V4DI)
DEF_FUNCTION_TYPE (V4DF, V4DF, INT)
DEF_FUNCTION_TYPE (V8DF, V8DF, INT)
DEF_FUNCTION_TYPE (V4DF, V8DF, INT)
DEF_FUNCTION_TYPE (V4DF, V8DF, INT, V4DF, UQI)
DEF_FUNCTION_TYPE (V4DF, V4DF, V4DF)
DEF_FUNCTION_TYPE (V4DF, V4DF, V4DI)
DEF_FUNCTION_TYPE (V4HI, V2SI, V2SI)
DEF_FUNCTION_TYPE (V4HI, V4HI, INT)
DEF_FUNCTION_TYPE (V4HI, V4HI, SI)
DEF_FUNCTION_TYPE (V4HI, V4HI, V4HI)
DEF_FUNCTION_TYPE (V4HI, V8QI, V8QI)
DEF_FUNCTION_TYPE (V4SF, PCV4SF, V4SI)
DEF_FUNCTION_TYPE (V4SF, V4SF, UINT)
DEF_FUNCTION_TYPE (V4SF, V4SF, DI)
DEF_FUNCTION_TYPE (V4SF, V4SF, INT)
DEF_FUNCTION_TYPE (INT, V4SF, V4SF, INT, INT)
DEF_FUNCTION_TYPE (INT, V2DF, V2DF, INT, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, PCV2SF)
DEF_FUNCTION_TYPE (V4SF, V4SF, SI)
DEF_FUNCTION_TYPE (V4SF, V4SF, V2DF)
DEF_FUNCTION_TYPE (V4SF, V4SF, V2SI)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SI)
DEF_FUNCTION_TYPE (V4SF, V8SF, INT)
DEF_FUNCTION_TYPE (V4SF, V8SF, INT, V4SF, UQI)
DEF_FUNCTION_TYPE (V4SI, V2DF, V2DF)
DEF_FUNCTION_TYPE (V4SI, V2DF, V4SI, UQI)
DEF_FUNCTION_TYPE (V4SI, V4SI, INT)
DEF_FUNCTION_TYPE (V4SI, V4SI, INT, V4SI, UQI)
DEF_FUNCTION_TYPE (V4SI, V4SI, SI)
DEF_FUNCTION_TYPE (V4SI, V4SI, V4SI)
DEF_FUNCTION_TYPE (V4SI, V8HI, V8HI)
DEF_FUNCTION_TYPE (V4SI, V8HI, V8HI, V4SI, UQI)
DEF_FUNCTION_TYPE (V4SI, V8SI, INT)
DEF_FUNCTION_TYPE (V4SI, V8SI, INT, V4SI, UQI)
DEF_FUNCTION_TYPE (V4SI, PCV4SI, V4SI)
DEF_FUNCTION_TYPE (V8HI, V16QI, V16QI)
DEF_FUNCTION_TYPE (V8HI, V16QI, V16QI, V8HI, UQI)
DEF_FUNCTION_TYPE (V8HI, V4SI, V4SI)
DEF_FUNCTION_TYPE (V8HI, V8HI, INT)
DEF_FUNCTION_TYPE (V8DI, V8DI, INT)
DEF_FUNCTION_TYPE (V8HI, V8HI, SI)
DEF_FUNCTION_TYPE (V8HI, V8HI, V8HI)
DEF_FUNCTION_TYPE (V8HI, V8SF, INT)
DEF_FUNCTION_TYPE (V8HI, V8SF, INT, V8HI, UQI)
DEF_FUNCTION_TYPE (V8HI, V4SF, INT)
DEF_FUNCTION_TYPE (V8HI, V4SF, INT, V8HI, UQI)
DEF_FUNCTION_TYPE (V8QI, V4HI, V4HI)
DEF_FUNCTION_TYPE (V8QI, V8QI, V8QI)
DEF_FUNCTION_TYPE (V8SF, PCV8SF, V8SI)
DEF_FUNCTION_TYPE (V8SF, V8SF, INT)
DEF_FUNCTION_TYPE (V8SF, V16SF, INT)
DEF_FUNCTION_TYPE (V8SF, V16SF, INT, V8SF, UQI)
DEF_FUNCTION_TYPE (V16SF, V16SF, INT)
DEF_FUNCTION_TYPE (V4SF, V16SF, INT)
DEF_FUNCTION_TYPE (V4SF, V16SF, INT, V4SF, UQI)
DEF_FUNCTION_TYPE (V8SF, V8SF, V8SF)
DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF)
DEF_FUNCTION_TYPE (V8SF, V8SF, V8SI)
DEF_FUNCTION_TYPE (V32QI, V16HI, V16HI)
DEF_FUNCTION_TYPE (V16HI, V8SI, V8SI)
DEF_FUNCTION_TYPE (V8DF, V8DF, V2DF, INT)
DEF_FUNCTION_TYPE (V8DF, V8DF, V2DF, INT, V8DF, UQI)
DEF_FUNCTION_TYPE (V8DF, V8DF, V4DF, INT, V8DF, UQI)
DEF_FUNCTION_TYPE (V8DF, V8DF, V8DF, INT)
DEF_FUNCTION_TYPE (V8DF, V8DF, V8DF, INT, V8DF, UQI)
DEF_FUNCTION_TYPE (V8DF, V8DF, V8DF, INT, V8DF, QI, INT)
DEF_FUNCTION_TYPE (V8DF, V8DF, INT, V8DF, UQI)
DEF_FUNCTION_TYPE (V8DF, V8DF, V8DF, V8DI, INT)
DEF_FUNCTION_TYPE (V4DF, V4DF, V4DF, V4DI, INT, UQI)
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DF, V2DI, INT, UQI)
DEF_FUNCTION_TYPE (V8DF, V8DF, V8DF, V8DI, INT, QI, INT)
DEF_FUNCTION_TYPE (V8DF, V8DF, V8DF)
DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF, INT)
DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF, INT, V16SF, UHI)
DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF, INT, V16SF, HI, INT)
DEF_FUNCTION_TYPE (V16SF, V16SF, INT, V16SF, UHI)
DEF_FUNCTION_TYPE (V16SI, V16SI, V4SI, INT, V16SI, UHI)
DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF, V16SI, INT)
DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF, V16SI, INT, HI, INT)
DEF_FUNCTION_TYPE (V8SF, V8SF, V8SF, V8SI, INT, UQI)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, V4SI, INT, UQI)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, V4SI, INT, QI, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DF, V2DI, INT, QI, INT)
DEF_FUNCTION_TYPE (V16SF, V16SF, V4SF, INT)
DEF_FUNCTION_TYPE (V16SF, V16SF, V4SF, INT, V16SF, UHI)
DEF_FUNCTION_TYPE (V16SF, V16SF, V8SF, INT, V16SF, UHI)
DEF_FUNCTION_TYPE (V32QI, V32QI, V32QI)
DEF_FUNCTION_TYPE (V16HI, V32QI, V32QI)
DEF_FUNCTION_TYPE (V16HI, V32QI, V32QI, V16HI, UHI)
DEF_FUNCTION_TYPE (V32HI, V64QI, V64QI, V32HI, USI)
DEF_FUNCTION_TYPE (V16HI, V16HI, V8HI)
DEF_FUNCTION_TYPE (V16HI, V16HI, V16HI)
DEF_FUNCTION_TYPE (V32HI, V32HI, INT)
DEF_FUNCTION_TYPE (V16HI, V16HI, INT)
DEF_FUNCTION_TYPE (V16HI, V16SF, INT)
DEF_FUNCTION_TYPE (V16HI, V16SF, INT, V16HI, UHI)
DEF_FUNCTION_TYPE (V16HI, V16HI, SI)
DEF_FUNCTION_TYPE (V16HI, V16HI, V16HI, INT)
DEF_FUNCTION_TYPE (V32QI, V32QI, V32QI, INT)
DEF_FUNCTION_TYPE (V8SI, V4DF, V4DF)
DEF_FUNCTION_TYPE (V8SI, V8SI, V4SI)
DEF_FUNCTION_TYPE (V16SI, V16SI, V4SI, INT)
DEF_FUNCTION_TYPE (V16SI, V16SI, V8SI, INT, V16SI, UHI)
DEF_FUNCTION_TYPE (V4SI, V16SI, INT)
DEF_FUNCTION_TYPE (V4SI, V16SI, INT, V4SI, UQI)
DEF_FUNCTION_TYPE (V8SI, V8SI, V8SI)
DEF_FUNCTION_TYPE (V16SI, V16SI, V16SI, INT, V16SI, UHI)
DEF_FUNCTION_TYPE (V8SI, V16HI, V16HI)
DEF_FUNCTION_TYPE (V8SI, V16HI, V16HI, V8SI, UQI)
DEF_FUNCTION_TYPE (V16SI, V32HI, V32HI, V16SI, UHI)
DEF_FUNCTION_TYPE (V8SI, V8SI, INT)
DEF_FUNCTION_TYPE (V8SI, V8SI, INT, V8SI, UQI)
DEF_FUNCTION_TYPE (V8SI, V16SI, INT)
DEF_FUNCTION_TYPE (V8SI, V16SI, INT, V8SI, UQI)
DEF_FUNCTION_TYPE (V8SI, V8SI, SI)
DEF_FUNCTION_TYPE (V16SI, V16SI, INT)
DEF_FUNCTION_TYPE (V16SI, V16SI, V4SI, V16SI, UHI)
DEF_FUNCTION_TYPE (V16SI, V16SI, INT, V16SI, UHI)
DEF_FUNCTION_TYPE (V8SI, PCV8SI, V8SI)
DEF_FUNCTION_TYPE (V4DI, V4DI, V4DI)
DEF_FUNCTION_TYPE (V16SI, V8DF, V8DF)
DEF_FUNCTION_TYPE (V8DI, V8DI, V8DI, INT, V8DI, UQI)
DEF_FUNCTION_TYPE (V8DI, V8DI, V8DI, INT, V8DI, UDI)
DEF_FUNCTION_TYPE (V4DI, V4DI, V4DI, INT, V4DI, USI)
DEF_FUNCTION_TYPE (V2DI, V2DI, V2DI, INT, V2DI, UHI)
DEF_FUNCTION_TYPE (V8DI, V8DI, V4DI, INT)
DEF_FUNCTION_TYPE (V8DI, V8DI, V2DI, INT)
DEF_FUNCTION_TYPE (V8DI, V8DI, V2DI, INT, V8DI, UQI)
DEF_FUNCTION_TYPE (V8DI, V8DI, V4DI, INT, V8DI, UQI)
DEF_FUNCTION_TYPE (V4DI, V8SI, V8SI)
DEF_FUNCTION_TYPE (V8DI, V64QI, V64QI)
DEF_FUNCTION_TYPE (V4DI, V4DI, V2DI)
DEF_FUNCTION_TYPE (V4DI, PCV4DI, V4DI)
DEF_FUNCTION_TYPE (V4DI, V8DI, INT)
DEF_FUNCTION_TYPE (V4DI, V8DI, INT, V4DI, UQI)
DEF_FUNCTION_TYPE (V8DI, V8DI, V2DI, V8DI, UQI)
DEF_FUNCTION_TYPE (V8DI, V8DI, INT, V8DI, UQI)
DEF_FUNCTION_TYPE (V4DI, V4DI, INT)
DEF_FUNCTION_TYPE (V4DI, V4DI, INT, V4DI, UQI)
DEF_FUNCTION_TYPE (V2DI, V4DI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, INT64)
DEF_FUNCTION_TYPE (V2DI, V4DI, INT, V2DI, UQI)
DEF_FUNCTION_TYPE (V2DI, V8DI, INT)
DEF_FUNCTION_TYPE (V2DI, V8DI, INT, V2DI, UQI)
DEF_FUNCTION_TYPE (VOID, PCHAR, V16QI)
DEF_FUNCTION_TYPE (VOID, PCHAR, V32QI)
DEF_FUNCTION_TYPE (VOID, PDOUBLE, V2DF)
DEF_FUNCTION_TYPE (VOID, PDOUBLE, V4DF)
DEF_FUNCTION_TYPE (VOID, PDOUBLE, V8DF)
DEF_FUNCTION_TYPE (VOID, PFLOAT, V4SF)
DEF_FUNCTION_TYPE (VOID, PFLOAT, V8SF)
DEF_FUNCTION_TYPE (VOID, PFLOAT, V16SF)
DEF_FUNCTION_TYPE (VOID, PINT, INT)
DEF_FUNCTION_TYPE (VOID, PLONGLONG, LONGLONG)
DEF_FUNCTION_TYPE (VOID, PULONGLONG, ULONGLONG)
DEF_FUNCTION_TYPE (VOID, PV2SI, V2SI)
DEF_FUNCTION_TYPE (VOID, PV2DI, V2DI)
DEF_FUNCTION_TYPE (VOID, PV2SF, V4SF)
DEF_FUNCTION_TYPE (VOID, PV4DI, V4DI)
DEF_FUNCTION_TYPE (VOID, PV4SF, V4SF)
DEF_FUNCTION_TYPE (VOID, PV8SF, V8SF)
DEF_FUNCTION_TYPE (VOID, UNSIGNED, UNSIGNED)
DEF_FUNCTION_TYPE (VOID, UNSIGNED, UNSIGNED, UNSIGNED)
DEF_FUNCTION_TYPE (VOID, PV8DI, V8DI)

DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF, V16SF, V16SF, V16SF, PCV4SF, V16SF, UHI)
DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF, V16SF, V16SF, V16SF, PCV4SF)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, V4SF, V4SF, V4SF, PCV4SF)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, V4SF, V4SF, V4SF, PCV4SF, V4SF, UQI)

DEF_FUNCTION_TYPE (V16SI, V16SI, V16SI, V16SI, V16SI, V16SI, PCV4SI, V16SI, UHI)
DEF_FUNCTION_TYPE (V16SI, V16SI, V16SI, V16SI, V16SI, V16SI, PCV4SI)


# Instructions returning mask
DEF_FUNCTION_TYPE (UCHAR, UQI, UQI, PUCHAR)
DEF_FUNCTION_TYPE (UCHAR, UQI, UQI)
DEF_FUNCTION_TYPE (UCHAR, UHI, UHI, PUCHAR)
DEF_FUNCTION_TYPE (UCHAR, UHI, UHI)
DEF_FUNCTION_TYPE (UCHAR, USI, USI, PUCHAR)
DEF_FUNCTION_TYPE (UCHAR, USI, USI)
DEF_FUNCTION_TYPE (UCHAR, UDI, UDI, PUCHAR)
DEF_FUNCTION_TYPE (UCHAR, UDI, UDI)

DEF_FUNCTION_TYPE (USI, UQI)
DEF_FUNCTION_TYPE (USI, UHI)
DEF_FUNCTION_TYPE (UQI, USI)
DEF_FUNCTION_TYPE (UHI, USI)

DEF_FUNCTION_TYPE (UHI, UHI, UQI)
DEF_FUNCTION_TYPE (USI, USI, UQI)
DEF_FUNCTION_TYPE (UDI, UDI, UQI)
DEF_FUNCTION_TYPE (UQI, UQI)
DEF_FUNCTION_TYPE (UHI, UHI)
DEF_FUNCTION_TYPE (USI, USI)
DEF_FUNCTION_TYPE (UDI, UDI)
DEF_FUNCTION_TYPE (UHI, V16QI)
DEF_FUNCTION_TYPE (USI, V32QI)
DEF_FUNCTION_TYPE (UDI, V64QI)
DEF_FUNCTION_TYPE (UQI, V8HI)
DEF_FUNCTION_TYPE (UHI, V16HI)
DEF_FUNCTION_TYPE (USI, V32HI)
DEF_FUNCTION_TYPE (UQI, V4SI)
DEF_FUNCTION_TYPE (UQI, V8SI)
DEF_FUNCTION_TYPE (UHI, V16SI)
DEF_FUNCTION_TYPE (UQI, V2DI)
DEF_FUNCTION_TYPE (UQI, V4DI)
DEF_FUNCTION_TYPE (UQI, V8DI)
DEF_FUNCTION_TYPE (UQI, UQI, UQI)
DEF_FUNCTION_TYPE (UHI, UHI, UHI)
DEF_FUNCTION_TYPE (USI, USI, USI)
DEF_FUNCTION_TYPE (UDI, UDI, UDI)
DEF_FUNCTION_TYPE (UHI, V16QI, V16QI, UHI)
DEF_FUNCTION_TYPE (UHI, V16QI, V16QI, INT, UHI)
DEF_FUNCTION_TYPE (USI, V32QI, V32QI, USI)
DEF_FUNCTION_TYPE (USI, V32QI, V32QI, INT, USI)
DEF_FUNCTION_TYPE (UDI, V64QI, V64QI, UDI)
DEF_FUNCTION_TYPE (UDI, V64QI, V64QI, INT, UDI)
DEF_FUNCTION_TYPE (UQI, V8HI, V8HI, UQI)
DEF_FUNCTION_TYPE (UQI, V8HI, V8HI, INT, UQI)
DEF_FUNCTION_TYPE (UHI, V16HI, V16HI, UHI)
DEF_FUNCTION_TYPE (UHI, V16HI, V16HI, INT, UHI)
DEF_FUNCTION_TYPE (USI, V32HI, V32HI, USI)
DEF_FUNCTION_TYPE (USI, V32HI, V32HI, INT, USI)
DEF_FUNCTION_TYPE (UQI, V4SI, V4SI, UQI)
DEF_FUNCTION_TYPE (UQI, V4SI, V4SI, INT, UQI)
DEF_FUNCTION_TYPE (UQI, V8SI, V8SI, UQI)
DEF_FUNCTION_TYPE (UQI, V8SI, V8SI, INT, UQI)
DEF_FUNCTION_TYPE (UQI, V2DI, V2DI, UQI)
DEF_FUNCTION_TYPE (UQI, V2DI, V2DI, INT, UQI)
DEF_FUNCTION_TYPE (UQI, V4DI, V4DI, UQI)
DEF_FUNCTION_TYPE (UQI, V4DI, V4DI, INT, UQI)
DEF_FUNCTION_TYPE (UQI, V8DI, V8DI, UQI)
DEF_FUNCTION_TYPE (UHI, V16SI, V16SI, UHI)
DEF_FUNCTION_TYPE (UQI, V8DI, V8UDI, INT)
DEF_FUNCTION_TYPE (UQI, V8DI, V8DI, INT, UQI)
DEF_FUNCTION_TYPE (UHI, V16SI, V16SI, INT)
DEF_FUNCTION_TYPE (UHI, V16SI, V16SI, INT , UHI)
DEF_FUNCTION_TYPE (UQI, V8DF, V8DF, INT)
DEF_FUNCTION_TYPE (UQI, V8DF, V8DF, INT, UQI, INT)
DEF_FUNCTION_TYPE (UHI, V16SF, V16SF, INT)
DEF_FUNCTION_TYPE (UHI, V16SF, V16SF, INT, UHI, INT)
DEF_FUNCTION_TYPE (UQI, V2DF, V2DF, INT)
DEF_FUNCTION_TYPE (UQI, V2DF, V2DF, INT, UQI)
DEF_FUNCTION_TYPE (UQI, V2DF, V2DF, INT, UQI, INT)
DEF_FUNCTION_TYPE (UQI, V4SF, V4SF, INT)
DEF_FUNCTION_TYPE (UQI, V4SF, V4SF, INT, UQI)
DEF_FUNCTION_TYPE (UQI, V4SF, V4SF, INT, UQI, INT)

DEF_FUNCTION_TYPE_ALIAS (UQI_FTYPE_UQI_UQI, CONST)

DEF_FUNCTION_TYPE (V16SI, UHI)
DEF_FUNCTION_TYPE (V8DI, UQI)
DEF_FUNCTION_TYPE (V16QI, UHI)
DEF_FUNCTION_TYPE (V32QI, USI)
DEF_FUNCTION_TYPE (V64QI, UDI)
DEF_FUNCTION_TYPE (V8HI, UQI)
DEF_FUNCTION_TYPE (V16HI, UHI)
DEF_FUNCTION_TYPE (V32HI, USI)
DEF_FUNCTION_TYPE (V4SI, UQI)
DEF_FUNCTION_TYPE (V4SI, UHI)
DEF_FUNCTION_TYPE (V8SI, UQI)
DEF_FUNCTION_TYPE (V8SI, UHI)
DEF_FUNCTION_TYPE (V2DI, UQI)
DEF_FUNCTION_TYPE (V4DI, UQI)

DEF_FUNCTION_TYPE (INT, V16QI, V16QI, INT)
DEF_FUNCTION_TYPE (UCHAR, UINT, UINT, UINT)
DEF_FUNCTION_TYPE (UCHAR, UINT64, UINT, UINT)
DEF_FUNCTION_TYPE (V16HI, V16HI, V16HI, V16HI)
DEF_FUNCTION_TYPE (V16QI, V16QI, QI, INT)
DEF_FUNCTION_TYPE (V16QI, V16QI, V16QI, INT)
DEF_FUNCTION_TYPE (V16QI, V16QI, V16QI, V16QI)
DEF_FUNCTION_TYPE (V1DI, V1DI, V1DI, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DF, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DF, INT, INT)
DEF_FUNCTION_TYPE (V4DF, V4DF, V4DI, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DF, V2DF)
DEF_FUNCTION_TYPE (V2DF, V2DI, V2DF, V2DF, UQI)
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DI, V2DF, UQI)
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DF, V2DI, INT)
DEF_FUNCTION_TYPE (V2DI, V2DI, DI, INT)
DEF_FUNCTION_TYPE (V2DI, V2DI, UINT, UINT)
DEF_FUNCTION_TYPE (V2DI, V2DI, V2DI, INT)
DEF_FUNCTION_TYPE (V2DI, V2DI, V2DI, V2DI)
DEF_FUNCTION_TYPE (V32QI, V32QI, V32QI, V32QI)
DEF_FUNCTION_TYPE (V4DF, V4DF, V2DF, INT)
DEF_FUNCTION_TYPE (V4DF, V4DF, V2DF, INT, V4DF, UQI)
DEF_FUNCTION_TYPE (V4DF, V4DF, V4DF, INT)
DEF_FUNCTION_TYPE (V4DF, V4DF, V4DF, V4DF)
DEF_FUNCTION_TYPE (V4DF, V4DF, V4DF, V4DI, INT)
DEF_FUNCTION_TYPE (V8DI, V8DI, V8DI, INT)
DEF_FUNCTION_TYPE (V4DI, V4DI, V4DI, V4DI)
DEF_FUNCTION_TYPE (V4HI, V4HI, HI, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, FLOAT, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, INT, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, V2DF, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, V4SF, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, V4SF)
DEF_FUNCTION_TYPE (V4SF, V4SI, V4SF, V4SF, UQI)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SI, V4SF, UQI)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, V4SF, UQI)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, V4SI, INT)
DEF_FUNCTION_TYPE (V4SI, V4SI, SI, INT)
DEF_FUNCTION_TYPE (V4SI, V4SI, V4SI, INT)
DEF_FUNCTION_TYPE (V4SI, V4SI, V4SI, V2DI)
DEF_FUNCTION_TYPE (V4SI, V4SI, V4SI, V4SI)
DEF_FUNCTION_TYPE (V8HI, V8HI, HI, INT)
DEF_FUNCTION_TYPE (V8HI, V8HI, V8HI, INT)
DEF_FUNCTION_TYPE (V8HI, V8HI, V8HI, V4SI)
DEF_FUNCTION_TYPE (V8HI, V8HI, V8HI, V8HI)
DEF_FUNCTION_TYPE (V8SF, V8SF, V4SF, INT)
DEF_FUNCTION_TYPE (V8SF, V8SF, V4SF, INT, V8SF, UQI)
DEF_FUNCTION_TYPE (V8SF, V8SF, V8SF, INT)
DEF_FUNCTION_TYPE (V8SF, V8SF, V8SF, V8SF)
DEF_FUNCTION_TYPE (V8SF, V8SF, V8SF, V8SI, INT)
DEF_FUNCTION_TYPE (V8SI, V8SI, V4SI, INT)
DEF_FUNCTION_TYPE (V8SI, V8SI, V4SI, INT, V8SI, UQI)
DEF_FUNCTION_TYPE (V8SI, V8SI, V8SI, INT)
DEF_FUNCTION_TYPE (V8SI, V8SI, V8SI, V8SI)
DEF_FUNCTION_TYPE (V4DI, V4DI, V4DI, INT)
DEF_FUNCTION_TYPE (V4DI, V4DI, V2DI, INT)
DEF_FUNCTION_TYPE (V4DI, V4DI, V2DI, INT, V4DI, UQI)

# Instructions with masking
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DF, UQI)
DEF_FUNCTION_TYPE (V2DF, V4SF, V2DF, UQI)
DEF_FUNCTION_TYPE (V2DF, V4SI, V2DF, UQI)
DEF_FUNCTION_TYPE (V4DF, V4DF, V4DF, UQI)
DEF_FUNCTION_TYPE (V4DF, V4SF, V4DF, UQI)
DEF_FUNCTION_TYPE (V4DF, V4SI, V4DF, UQI)
DEF_FUNCTION_TYPE (V8DF, V8DF, V8DF, UQI)
DEF_FUNCTION_TYPE (V8DF, V8SI, V8DF, UQI)
DEF_FUNCTION_TYPE (V2DI, V4SI, V2DI, UQI)
DEF_FUNCTION_TYPE (V2DI, V8HI, V2DI, UQI)
DEF_FUNCTION_TYPE (V4DI, V4DF, V4DI, UQI)
DEF_FUNCTION_TYPE (V2DI, V2DF, V2DI, UQI)
DEF_FUNCTION_TYPE (V2DI, V2DI, V2DI, V2DI, UQI)
DEF_FUNCTION_TYPE (V2DI, V2DI, V2DI, INT, V2DI, UQI)
DEF_FUNCTION_TYPE (V4DI, V4DI, V4DI, V4DI, UQI)
DEF_FUNCTION_TYPE (V4DI, V4DI, V4DI, INT, V4DI, UQI)
DEF_FUNCTION_TYPE (V8DI, V8SI, V8DI, UQI)
DEF_FUNCTION_TYPE (V8DI, V8HI, V8DI, UQI)
DEF_FUNCTION_TYPE (V8DI, V16QI, V8DI, UQI)
DEF_FUNCTION_TYPE (V2DI, V16QI, V2DI, UQI)
DEF_FUNCTION_TYPE (V4DI, V16QI, V4DI, UQI)
DEF_FUNCTION_TYPE (V4DI, V4DI, V4DI, UQI)
DEF_FUNCTION_TYPE (V4DI, V4SI, V4DI, UQI)
DEF_FUNCTION_TYPE (V4DI, V8HI, V4DI, UQI)
DEF_FUNCTION_TYPE (V8DI, V8DI, V8DI, V8DI, UQI)
DEF_FUNCTION_TYPE (V8DF, V8DI, V8DF, V8DF, UQI)
DEF_FUNCTION_TYPE (V8DF, V8DF, V8DI, V8DF, UQI)
DEF_FUNCTION_TYPE (V4DF, V4DI, V4DF, V4DF, UQI)
DEF_FUNCTION_TYPE (V4DF, V4DF, V4DI, V4DF, UQI)
DEF_FUNCTION_TYPE (V4DF, V4DF, V4DF, V4DF, UQI)
DEF_FUNCTION_TYPE (V8DF, V8DF, V8DF, V8DF, UQI)
DEF_FUNCTION_TYPE (V16QI, V16QI, V16QI, V16QI, UHI)
DEF_FUNCTION_TYPE (V16HI, V16HI, V16HI, V16HI, UHI)
DEF_FUNCTION_TYPE (V16SI, V16SI, V16SI, V16SI, UHI)
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DF, V2DF, UQI)
DEF_FUNCTION_TYPE (V32HI, V32HI, V32HI, V32HI, USI)
DEF_FUNCTION_TYPE (V64QI, V64QI, V64QI, V64QI, UDI)
DEF_FUNCTION_TYPE (V32QI, V32QI, V32QI, V32QI, USI)
DEF_FUNCTION_TYPE (V8HI, V8HI, V8HI, V8HI, UQI)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, UQI)
DEF_FUNCTION_TYPE (V4SF, V4SI, V4SF, UQI)
DEF_FUNCTION_TYPE (V8SF, V8SF, V8SF, UQI)
DEF_FUNCTION_TYPE (V8SF, V8SI, V8SF, UQI)
DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF, UHI)
DEF_FUNCTION_TYPE (V4SI, V16QI, V4SI, UQI)
DEF_FUNCTION_TYPE (V4SI, V8HI, V4SI, UQI)
DEF_FUNCTION_TYPE (V8SI, V8SI, V8SI, UQI)
DEF_FUNCTION_TYPE (V8SI, V8HI, V8SI, UQI)
DEF_FUNCTION_TYPE (V8SI, V16QI, V8SI, UQI)
DEF_FUNCTION_TYPE (V4SI, V4SI, V4SI, V4SI, UQI)
DEF_FUNCTION_TYPE (V4SI, V4SI, V4SI, INT, V4SI, UQI)
DEF_FUNCTION_TYPE (V8SF, V8SF, V8SF, V8SF, UQI)
DEF_FUNCTION_TYPE (V8SF, V8SI, V8SF, V8SF, UQI)
DEF_FUNCTION_TYPE (V8SF, V8SF, V8SI, V8SF, UQI)
DEF_FUNCTION_TYPE (V8SI, V8SI, V8SI, V8SI, UQI)
DEF_FUNCTION_TYPE (V8SI, V8SI, V8SI, INT, V8SI, UQI)
DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF, V16SF, UHI)
DEF_FUNCTION_TYPE (V16SF, V16SI, V16SF, V16SF, UHI)
DEF_FUNCTION_TYPE (V16SF, V16SF, V16SI, V16SF, UHI)
DEF_FUNCTION_TYPE (V16SF, V8SF, V16SF, UHI)
DEF_FUNCTION_TYPE (V16SF, V4SF, V16SF, UHI)
DEF_FUNCTION_TYPE (V8DF, V4DF, V8DF, UQI)
DEF_FUNCTION_TYPE (V8DF, V2DF, V8DF, UQI)
DEF_FUNCTION_TYPE (V16SI, V8SI, V16SI, UHI)
DEF_FUNCTION_TYPE (V16SI, V4SI, V16SI, UHI)
DEF_FUNCTION_TYPE (V16SI, SI, V16SI, UHI)
DEF_FUNCTION_TYPE (V16SI, V16HI, V16SI, UHI)
DEF_FUNCTION_TYPE (V16SI, V16QI, V16SI, UHI)
DEF_FUNCTION_TYPE (V8DI, V4DI, V8DI, UQI)
DEF_FUNCTION_TYPE (V4SI, V4DF, V4SI, UQI)
DEF_FUNCTION_TYPE (V8DI, V2DI, V8DI, UQI)
DEF_FUNCTION_TYPE (V8DI, DI, V8DI, UQI)
DEF_FUNCTION_TYPE (V16QI, V16SI, V16QI, UHI)
DEF_FUNCTION_TYPE (V16QI, V8DI, V16QI, UQI)
DEF_FUNCTION_TYPE (V32HI, V32HI, V32HI, USI)
DEF_FUNCTION_TYPE (V32HI, V64QI, V64QI, INT)
DEF_FUNCTION_TYPE (V32HI, V32QI, V32HI, USI)
DEF_FUNCTION_TYPE (V16HI, V16HI, V16HI, UHI)
DEF_FUNCTION_TYPE (V16HI, V32QI, V32QI, INT)
DEF_FUNCTION_TYPE (V16HI, V16QI, V16HI, UHI)
DEF_FUNCTION_TYPE (V8HI, V16QI, V8HI, UQI)
DEF_FUNCTION_TYPE (V8HI, V16QI, V16QI, INT)
DEF_FUNCTION_TYPE (V8SF, V4SF, V8SF, UQI)
DEF_FUNCTION_TYPE (V4DF, V2DF, V4DF, UQI)
DEF_FUNCTION_TYPE (V8SI, V4SI, V8SI, UQI)
DEF_FUNCTION_TYPE (V8SI, SI, V8SI, UQI)
DEF_FUNCTION_TYPE (V4SI, V4SI, V4SI, UQI)
DEF_FUNCTION_TYPE (V4SI, SI, V4SI, UQI)
DEF_FUNCTION_TYPE (V4DI, V2DI, V4DI, UQI)
DEF_FUNCTION_TYPE (V4DI, DI, V4DI, UQI)
DEF_FUNCTION_TYPE (V2DI, V2DI, V2DI, UQI)
DEF_FUNCTION_TYPE (V2DI, DI, V2DI, UQI)
DEF_FUNCTION_TYPE (V64QI, V64QI, V64QI, UDI)
DEF_FUNCTION_TYPE (V64QI, V16QI, V64QI, UDI)
DEF_FUNCTION_TYPE (V64QI, QI, V64QI, UDI)
DEF_FUNCTION_TYPE (V32QI, V32QI, V32QI, USI)
DEF_FUNCTION_TYPE (V32QI, V16QI, V32QI, USI)
DEF_FUNCTION_TYPE (V32QI, QI, V32QI, USI)
DEF_FUNCTION_TYPE (V16QI, V16QI, V16QI, UHI)
DEF_FUNCTION_TYPE (V16QI, QI, V16QI, UHI)
DEF_FUNCTION_TYPE (V32HI, V8HI, V32HI, USI)
DEF_FUNCTION_TYPE (V32HI, HI, V32HI, USI)
DEF_FUNCTION_TYPE (V16HI, V8HI, V16HI, UHI)
DEF_FUNCTION_TYPE (V16HI, HI, V16HI, UHI)
DEF_FUNCTION_TYPE (V8HI, V8HI, V8HI, UQI)
DEF_FUNCTION_TYPE (V8HI, HI, V8HI, UQI)
DEF_FUNCTION_TYPE (V16SF, PCV16SF, V16SF, UHI)
DEF_FUNCTION_TYPE (V8DF, PCV8DF, V8DF, UQI)
DEF_FUNCTION_TYPE (V16SI, PCV16SI, V16SI, UHI)
DEF_FUNCTION_TYPE (V8SF, PCV8SF, V8SF, UQI)
DEF_FUNCTION_TYPE (V8DI, PCV8DI, V8DI, UQI)
DEF_FUNCTION_TYPE (V8SI, PCV8SI, V8SI, UQI)
DEF_FUNCTION_TYPE (V4DF, PCV4DF, V4DF, UQI)
DEF_FUNCTION_TYPE (V4SF, PCV4SF, V4SF, UQI)
DEF_FUNCTION_TYPE (V4DI, PCV4DI, V4DI, UQI)
DEF_FUNCTION_TYPE (V4SI, PCV4SI, V4SI, UQI)
DEF_FUNCTION_TYPE (V2DF, PCV2DF, V2DF, UQI)
DEF_FUNCTION_TYPE (V2DI, PCV2DI, V2DI, UQI)
DEF_FUNCTION_TYPE (V64QI, PCCHAR, V64QI, UDI)
DEF_FUNCTION_TYPE (V32HI, PCSHORT, V32HI, USI)
DEF_FUNCTION_TYPE (V32QI, PCCHAR, V32QI, USI)
DEF_FUNCTION_TYPE (V16SF, PCFLOAT, V16SF, UHI)
DEF_FUNCTION_TYPE (V8DF, PCDOUBLE, V8DF, UQI)
DEF_FUNCTION_TYPE (V16SI, PCINT, V16SI, UHI)
DEF_FUNCTION_TYPE (V16HI, PCSHORT, V16HI, UHI)
DEF_FUNCTION_TYPE (V16QI, PCCHAR, V16QI, UHI)
DEF_FUNCTION_TYPE (V8SF, PCFLOAT, V8SF, UQI)
DEF_FUNCTION_TYPE (V8DI, PCINT64, V8DI, UQI)
DEF_FUNCTION_TYPE (V8SI, PCINT, V8SI, UQI)
DEF_FUNCTION_TYPE (V8HI, PCSHORT, V8HI, UQI)
DEF_FUNCTION_TYPE (V4DF, PCDOUBLE, V4DF, UQI)
DEF_FUNCTION_TYPE (V4SF, PCFLOAT, V4SF, UQI)
DEF_FUNCTION_TYPE (V4DI, PCINT64, V4DI, UQI)
DEF_FUNCTION_TYPE (V4SI, PCINT, V4SI, UQI)
DEF_FUNCTION_TYPE (V2DF, PCDOUBLE, V2DF, UQI)
DEF_FUNCTION_TYPE (V2DI, PCINT64, V2DI, UQI)
DEF_FUNCTION_TYPE (V16HI, V16SI, V16HI, UHI)
DEF_FUNCTION_TYPE (V8SI, V8DI, V8SI, UQI)
DEF_FUNCTION_TYPE (V8HI, V8DI, V8HI, UQI)
DEF_FUNCTION_TYPE (V16QI, V8HI, V16QI, UQI)
DEF_FUNCTION_TYPE (V16QI, V16HI, V16QI, UHI)
DEF_FUNCTION_TYPE (V16QI, V4SI, V16QI, UQI)
DEF_FUNCTION_TYPE (V16QI, V8SI, V16QI, UQI)
DEF_FUNCTION_TYPE (V8HI, V4SI, V8HI, UQI)
DEF_FUNCTION_TYPE (V8HI, V8SI, V8HI, UQI)
DEF_FUNCTION_TYPE (V16QI, V2DI, V16QI, UQI)
DEF_FUNCTION_TYPE (V16QI, V4DI, V16QI, UQI)
DEF_FUNCTION_TYPE (V8HI, V2DI, V8HI, UQI)
DEF_FUNCTION_TYPE (V8HI, V4DI, V8HI, UQI)
DEF_FUNCTION_TYPE (V4SI, V2DI, V4SI, UQI)
DEF_FUNCTION_TYPE (V4SI, V4DI, V4SI, UQI)
DEF_FUNCTION_TYPE (V32QI, V32HI, V32QI, USI)
DEF_FUNCTION_TYPE (V2DF, V2DF, INT, V2DF, UQI)
DEF_FUNCTION_TYPE (V4DF, V4DF, INT, V4DF, UQI)
DEF_FUNCTION_TYPE (V4SF, V4SF, INT, V4SF, UQI)
DEF_FUNCTION_TYPE (V8SF, V8SF, INT, V8SF, UQI)
DEF_FUNCTION_TYPE (V4DF, V4DF, V4DF, INT, V4DF, UQI)
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DF, INT, V2DF, UQI)
DEF_FUNCTION_TYPE (V8SF, V8SF, V8SF, INT, V8SF, UQI)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, INT, V4SF, UQI)
DEF_FUNCTION_TYPE (VOID, PV8DF, V8DF, UQI)
DEF_FUNCTION_TYPE (VOID, PV8SI, V8DI, UQI)
DEF_FUNCTION_TYPE (VOID, PV8HI, V8DI, UQI)
DEF_FUNCTION_TYPE (VOID, PV8HI, V4DI, UQI)
DEF_FUNCTION_TYPE (VOID, PV8HI, V2DI, UQI)
DEF_FUNCTION_TYPE (VOID, PV4SI, V4DI, UQI)
DEF_FUNCTION_TYPE (VOID, PV4SI, V2DI, UQI)
DEF_FUNCTION_TYPE (VOID, PV8HI, V8SI, UQI)
DEF_FUNCTION_TYPE (VOID, PV8HI, V4SI, UQI)
DEF_FUNCTION_TYPE (VOID, PV4DF, V4DF, UQI)
DEF_FUNCTION_TYPE (VOID, PV2DF, V2DF, UQI)
DEF_FUNCTION_TYPE (VOID, PV16SF, V16SF, UHI)
DEF_FUNCTION_TYPE (VOID, PV8SF, V8SF, UQI)
DEF_FUNCTION_TYPE (VOID, PV4SF, V4SF, UQI)
DEF_FUNCTION_TYPE (VOID, PV8DI, V8DI, UQI)
DEF_FUNCTION_TYPE (VOID, PV4DI, V4DI, UQI)
DEF_FUNCTION_TYPE (VOID, PV2DI, V2DI, UQI)
DEF_FUNCTION_TYPE (VOID, PV16SI, V16SI, UHI)
DEF_FUNCTION_TYPE (VOID, PV16HI, V16SI, UHI)
DEF_FUNCTION_TYPE (VOID, PV16QI, V16SI, UHI)
DEF_FUNCTION_TYPE (VOID, PV16QI, V8SI, UQI)
DEF_FUNCTION_TYPE (VOID, PV16QI, V4SI, UQI)
DEF_FUNCTION_TYPE (VOID, PV16QI, V8DI, UQI)
DEF_FUNCTION_TYPE (VOID, PV16QI, V4DI, UQI)
DEF_FUNCTION_TYPE (VOID, PV16QI, V2DI, UQI)
DEF_FUNCTION_TYPE (VOID, PV8SI, V8SI, UQI)
DEF_FUNCTION_TYPE (VOID, PV4SI, V4SI, UQI)
DEF_FUNCTION_TYPE (VOID, PDOUBLE, V8DF, UQI)
DEF_FUNCTION_TYPE (VOID, PDOUBLE, V4DF, UQI)
DEF_FUNCTION_TYPE (VOID, PDOUBLE, V2DF, UQI)
DEF_FUNCTION_TYPE (VOID, PFLOAT, V16SF, UHI)
DEF_FUNCTION_TYPE (VOID, PFLOAT, V8SF, UQI)
DEF_FUNCTION_TYPE (VOID, PFLOAT, V4SF, UQI)
DEF_FUNCTION_TYPE (VOID, PINT64, V8DI, UQI)
DEF_FUNCTION_TYPE (VOID, PINT64, V4DI, UQI)
DEF_FUNCTION_TYPE (VOID, PINT64, V2DI, UQI)
DEF_FUNCTION_TYPE (VOID, PINT, V16SI, UHI)
DEF_FUNCTION_TYPE (VOID, PINT, V8SI, UQI)
DEF_FUNCTION_TYPE (VOID, PINT, V4SI, UQI)
DEF_FUNCTION_TYPE (VOID, PSHORT, V32HI, USI)
DEF_FUNCTION_TYPE (VOID, PSHORT, V16HI, UHI)
DEF_FUNCTION_TYPE (VOID, PSHORT, V8HI, UQI)
DEF_FUNCTION_TYPE (VOID, PCHAR, V64QI, UDI)
DEF_FUNCTION_TYPE (VOID, PCHAR, V32QI, USI)
DEF_FUNCTION_TYPE (VOID, PCHAR, V16QI, UHI)
DEF_FUNCTION_TYPE (V8DI, V8DI, V8DI, V8DI, INT, UQI)
DEF_FUNCTION_TYPE (V8SI, V8SF, V8SI, UQI)
DEF_FUNCTION_TYPE (V4SI, V4SF, V4SI, UQI)
DEF_FUNCTION_TYPE (V4DI, V4SF, V4DI, UQI)
DEF_FUNCTION_TYPE (V2DI, V4SF, V2DI, UQI)
DEF_FUNCTION_TYPE (V4SF, V4DI, V4SF, UQI)
DEF_FUNCTION_TYPE (V4SF, V2DI, V4SF, UQI)
DEF_FUNCTION_TYPE (V4DF, V4DI, V4DF, UQI)
DEF_FUNCTION_TYPE (V2DF, V2DI, V2DF, UQI)
DEF_FUNCTION_TYPE (V32HI, V32HI, INT, V32HI, USI)
DEF_FUNCTION_TYPE (V32HI, V32HI, V8HI, V32HI, USI)
DEF_FUNCTION_TYPE (V16HI, V16HI, INT, V16HI, UHI)
DEF_FUNCTION_TYPE (V16HI, V16HI, V8HI, V16HI, UHI)
DEF_FUNCTION_TYPE (V8HI, V8HI, INT, V8HI, UQI)
DEF_FUNCTION_TYPE (V32HI, V64QI, V64QI, INT, V32HI, USI)
DEF_FUNCTION_TYPE (V16HI, V32QI, V32QI, INT, V16HI, UHI)
DEF_FUNCTION_TYPE (V8HI, V16QI, V16QI, INT, V8HI, UQI)
DEF_FUNCTION_TYPE (V64QI, V32HI, V32HI, V64QI, UDI)
DEF_FUNCTION_TYPE (V32QI, V16HI, V16HI, V32QI, USI)
DEF_FUNCTION_TYPE (V16QI, V8HI, V8HI, V16QI, UHI)
DEF_FUNCTION_TYPE (V32HI, V16SI, V16SI, V32HI, USI)
DEF_FUNCTION_TYPE (V16HI, V8SI, V8SI, V16HI, UHI)
DEF_FUNCTION_TYPE (V8HI, V4SI, V4SI, V8HI, UQI)
DEF_FUNCTION_TYPE (V8DI, V16SI, V16SI, V8DI, UQI)
DEF_FUNCTION_TYPE (V4DI, V8SI, V8SI, V4DI, UQI)
DEF_FUNCTION_TYPE (V2DI, V4SI, V4SI, V2DI, UQI)
DEF_FUNCTION_TYPE (V16SI, V16SI, V16SI, V16SI, INT, UHI)
DEF_FUNCTION_TYPE (V8SI, V8SI, V8SI, V8SI, INT, UQI)
DEF_FUNCTION_TYPE (V4DI, V4DI, V4DI, V4DI, INT, UQI)
DEF_FUNCTION_TYPE (V4SI, V4SI, V4SI, V4SI, INT, UQI)
DEF_FUNCTION_TYPE (V2DI, V2DI, V2DI, V2DI, INT, UQI)

DEF_FUNCTION_TYPE (VOID, PCVOID, UNSIGNED, UNSIGNED)
DEF_FUNCTION_TYPE (VOID, PV2DF, V2DI, V2DF)
DEF_FUNCTION_TYPE (VOID, PV4DF, V4DI, V4DF)
DEF_FUNCTION_TYPE (VOID, PV4SF, V4SI, V4SF)
DEF_FUNCTION_TYPE (VOID, PV8SF, V8SI, V8SF)
DEF_FUNCTION_TYPE (VOID, PV2DI, V2DI, V2DI)
DEF_FUNCTION_TYPE (VOID, PV4DI, V4DI, V4DI)
DEF_FUNCTION_TYPE (VOID, PV4SI, V4SI, V4SI)
DEF_FUNCTION_TYPE (VOID, PV8SI, V8SI, V8SI)
DEF_FUNCTION_TYPE (VOID, UINT, UINT, UINT)
DEF_FUNCTION_TYPE (VOID, UINT64, UINT, UINT)
DEF_FUNCTION_TYPE (VOID, V16QI, V16QI, PCHAR)
DEF_FUNCTION_TYPE (VOID, V8QI, V8QI, PCHAR)

DEF_FUNCTION_TYPE (V8SI, V8SI, V4SI, V8SI, UQI)
DEF_FUNCTION_TYPE (V4DI, V4DI, V2DI, V4DI, UQI)

DEF_FUNCTION_TYPE (QI, V8DF, INT)
DEF_FUNCTION_TYPE (QI, V4DF, INT)
DEF_FUNCTION_TYPE (QI, V4DF, V4DF, INT, UQI)
DEF_FUNCTION_TYPE (QI, V2DF, INT)
DEF_FUNCTION_TYPE (HI, V16SF, INT)
DEF_FUNCTION_TYPE (QI, V8SF, INT)
DEF_FUNCTION_TYPE (QI, V8SF, V8SF, INT, UQI)
DEF_FUNCTION_TYPE (QI, V4SF, INT)
DEF_FUNCTION_TYPE (QI, V8DF, INT, UQI)
DEF_FUNCTION_TYPE (QI, V4DF, INT, UQI)
DEF_FUNCTION_TYPE (QI, V2DF, INT, UQI)
DEF_FUNCTION_TYPE (HI, V16SF, INT, UHI)
DEF_FUNCTION_TYPE (QI, V8SF, INT, UQI)
DEF_FUNCTION_TYPE (QI, V4SF, INT, UQI)

DEF_FUNCTION_TYPE (V2DI, V2DI, V2DI, UINT, UINT)
DEF_FUNCTION_TYPE (V4HI, HI, HI, HI, HI)

DEF_FUNCTION_TYPE (INT, V16QI, INT, V16QI, INT, INT)
DEF_FUNCTION_TYPE (V16QI, V16QI, INT, V16QI, INT, INT)

DEF_FUNCTION_TYPE (V8QI, QI, QI, QI, QI, QI, QI, QI, QI)

DEF_FUNCTION_TYPE (UCHAR, UCHAR, UINT, UINT, PUNSIGNED)
DEF_FUNCTION_TYPE (UCHAR, UCHAR, ULONGLONG, ULONGLONG, PULONGLONG)

# Instructions with rounding
DEF_FUNCTION_TYPE (UINT64, V2DF, INT)
DEF_FUNCTION_TYPE (UINT64, V4SF, INT)
DEF_FUNCTION_TYPE (UINT, V2DF, INT)
DEF_FUNCTION_TYPE (UINT, V4SF, INT)
DEF_FUNCTION_TYPE (INT64, V2DF, INT)
DEF_FUNCTION_TYPE (INT64, V4SF, INT)
DEF_FUNCTION_TYPE (INT, V2DF, INT)
DEF_FUNCTION_TYPE (INT, V4SF, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, UINT64, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, UINT64, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, UINT, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, INT64, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, INT64, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, INT, INT)
DEF_FUNCTION_TYPE (V16SI, V16SF, V16SI, HI, INT)
DEF_FUNCTION_TYPE (V16SF, V16SI, V16SF, HI, INT)
DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF, HI, INT)
DEF_FUNCTION_TYPE (V16SF, V16HI, V16SF, HI, INT)
DEF_FUNCTION_TYPE (V8SI, V8DF, V8SI, QI, INT)
DEF_FUNCTION_TYPE (V8SF, V8DF, V8SF, QI, INT)
DEF_FUNCTION_TYPE (V8DF, V8DF, V8DF, QI, INT)
DEF_FUNCTION_TYPE (V8DF, V8SF, V8DF, QI, INT)
DEF_FUNCTION_TYPE (V8DI, V8DF, V8DI, QI, INT)
DEF_FUNCTION_TYPE (V8DI, V8SF, V8DI, QI, INT)
DEF_FUNCTION_TYPE (V8DF, V8DI, V8DF, QI, INT)
DEF_FUNCTION_TYPE (V8SF, V8DI, V8SF, QI, INT)
DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF, V16SF, HI, INT)
DEF_FUNCTION_TYPE (V8DF, V8DF, V8DF, V8DF, UQI, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, V4SF, QI, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, V2DF, V4SF, QI, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DF, V2DF, QI, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, V4SF, V2DF, QI, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DF, V2DF, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, V4SF, INT)

DEF_FUNCTION_TYPE (V16SF, V16SF, INT, V16SF, HI, INT)
DEF_FUNCTION_TYPE (V8DF, V8DF, INT, V8DF, QI, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, INT, V4SF, QI, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, V2DF, INT, V2DF, QI, INT)

DEF_FUNCTION_TYPE (V2DF, V2DF, PCDOUBLE, V4SI, V2DF, INT)
DEF_FUNCTION_TYPE (V4DF, V4DF, PCDOUBLE, V4SI, V4DF, INT)
DEF_FUNCTION_TYPE (V4DF, V4DF, PCDOUBLE, V8SI, V4DF, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, PCDOUBLE, V2DI, V2DF, INT)
DEF_FUNCTION_TYPE (V4DF, V4DF, PCDOUBLE, V4DI, V4DF, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, PCFLOAT, V4SI, V4SF, INT)
DEF_FUNCTION_TYPE (V8SF, V8SF, PCFLOAT, V8SI, V8SF, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, PCFLOAT, V2DI, V4SF, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, PCFLOAT, V4DI, V4SF, INT)
DEF_FUNCTION_TYPE (V8SF, V8SF, PCFLOAT, V4DI, V8SF, INT)
DEF_FUNCTION_TYPE (V2DI, V2DI, PCINT64, V4SI, V2DI, INT)
DEF_FUNCTION_TYPE (V4DI, V4DI, PCINT64, V4SI, V4DI, INT)
DEF_FUNCTION_TYPE (V4DI, V4DI, PCINT64, V8SI, V4DI, INT)
DEF_FUNCTION_TYPE (V2DI, V2DI, PCINT64, V2DI, V2DI, INT)
DEF_FUNCTION_TYPE (V4DI, V4DI, PCINT64, V4DI, V4DI, INT)
DEF_FUNCTION_TYPE (V4SI, V4SI, PCINT, V4SI, V4SI, INT)
DEF_FUNCTION_TYPE (V8SI, V8SI, PCINT, V8SI, V8SI, INT)
DEF_FUNCTION_TYPE (V4SI, V4SI, PCINT, V2DI, V4SI, INT)
DEF_FUNCTION_TYPE (V4SI, V4SI, PCINT, V4DI, V4SI, INT)
DEF_FUNCTION_TYPE (V8SI, V8SI, PCINT, V4DI, V8SI, INT)

DEF_FUNCTION_TYPE (V16SF, V16SF, PCFLOAT, V8DI, HI, INT)
DEF_FUNCTION_TYPE (V8DF, V8DF, PCDOUBLE, V16SI, QI, INT)
DEF_FUNCTION_TYPE (V16SI, V16SI, PCINT, V8DI, HI, INT)
DEF_FUNCTION_TYPE (V8DI, V8DI, PCINT64, V16SI, QI, INT)
DEF_FUNCTION_TYPE (V4DF, V4DF, PCDOUBLE, V8SI, QI, INT)
DEF_FUNCTION_TYPE (V8SF, V8SF, PCFLOAT, V4DI, QI, INT)
DEF_FUNCTION_TYPE (V4DI, V4DI, PCINT64, V8SI, QI, INT)
DEF_FUNCTION_TYPE (V8SI, V8SI, PCINT, V4DI, QI, INT)

DEF_FUNCTION_TYPE (VOID, PFLOAT, HI, V8DI, V16SF, INT)
DEF_FUNCTION_TYPE (VOID, PDOUBLE, QI, V16SI, V8DF, INT)
DEF_FUNCTION_TYPE (VOID, PINT, HI, V8DI, V16SI, INT)
DEF_FUNCTION_TYPE (VOID, PLONGLONG, QI, V16SI, V8DI, INT)


DEF_FUNCTION_TYPE (V16SF, V16SF, PCVOID, V16SI, HI, INT)
DEF_FUNCTION_TYPE (V8DF, V8DF, PCVOID, V8SI, QI, INT)
DEF_FUNCTION_TYPE (V8SF, V8SF, PCVOID, V8DI, QI, INT)
DEF_FUNCTION_TYPE (V8DF, V8DF, PCVOID, V8DI, QI, INT)
DEF_FUNCTION_TYPE (V16SI, V16SI, PCVOID, V16SI, HI, INT)
DEF_FUNCTION_TYPE (V8DI, V8DI, PCVOID, V8SI, QI, INT)
DEF_FUNCTION_TYPE (V8SI, V8SI, PCVOID, V8DI, QI, INT)
DEF_FUNCTION_TYPE (V8DI, V8DI, PCVOID, V8DI, QI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, HI, V16SI, V16SF, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V8SI, V8DF, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V8DI, V8SF, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V8DI, V8DF, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, HI, V16SI, V16SI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V8SI, V8DI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V8DI, V8SI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V8DI, V8DI, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, PCVOID, V4SI, QI, INT)
DEF_FUNCTION_TYPE (V4DF, V4DF, PCVOID, V4SI, QI, INT)
DEF_FUNCTION_TYPE (V2DF, V2DF, PCVOID, V2DI, QI, INT)
DEF_FUNCTION_TYPE (V4DF, V4DF, PCVOID, V4DI, QI, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, PCVOID, V4SI, QI, INT)
DEF_FUNCTION_TYPE (V8SF, V8SF, PCVOID, V8SI, QI, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, PCVOID, V2DI, QI, INT)
DEF_FUNCTION_TYPE (V4SF, V4SF, PCVOID, V4DI, QI, INT)
DEF_FUNCTION_TYPE (V2DI, V2DI, PCVOID, V4SI, QI, INT)
DEF_FUNCTION_TYPE (V4DI, V4DI, PCVOID, V4SI, QI, INT)
DEF_FUNCTION_TYPE (V2DI, V2DI, PCVOID, V2DI, QI, INT)
DEF_FUNCTION_TYPE (V4DI, V4DI, PCVOID, V4DI, QI, INT)
DEF_FUNCTION_TYPE (V4SI, V4SI, PCVOID, V4SI, QI, INT)
DEF_FUNCTION_TYPE (V8SI, V8SI, PCVOID, V8SI, QI, INT)
DEF_FUNCTION_TYPE (V4SI, V4SI, PCVOID, V2DI, QI, INT)
DEF_FUNCTION_TYPE (V4SI, V4SI, PCVOID, V4DI, QI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V8SI, V8SF, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V4SI, V4SF, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V4SI, V4DF, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V4SI, V2DF, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V4DI, V4SF, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V2DI, V4SF, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V4DI, V4DF, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V2DI, V2DF, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V8SI, V8SI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V4SI, V4SI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V4SI, V4DI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V4SI, V2DI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V4DI, V4SI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V2DI, V4SI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V4DI, V4DI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V2DI, V2DI, INT)
DEF_FUNCTION_TYPE (VOID, QI, V8SI, PCVOID, INT, INT)
DEF_FUNCTION_TYPE (VOID, HI, V16SI, PCVOID, INT, INT)
DEF_FUNCTION_TYPE (VOID, QI, V8DI, PCVOID, INT, INT)

DEF_FUNCTION_TYPE_ALIAS (V2DF_FTYPE_V2DF, ROUND)
DEF_FUNCTION_TYPE_ALIAS (V4DF_FTYPE_V4DF, ROUND)
DEF_FUNCTION_TYPE_ALIAS (V8DF_FTYPE_V8DF, ROUND)
DEF_FUNCTION_TYPE_ALIAS (V4SF_FTYPE_V4SF, ROUND)
DEF_FUNCTION_TYPE_ALIAS (V8SF_FTYPE_V8SF, ROUND)
DEF_FUNCTION_TYPE_ALIAS (V16SF_FTYPE_V16SF, ROUND)

DEF_FUNCTION_TYPE_ALIAS (V4SI_FTYPE_V2DF_V2DF, ROUND)
DEF_FUNCTION_TYPE_ALIAS (V8SI_FTYPE_V4DF_V4DF, ROUND)
DEF_FUNCTION_TYPE_ALIAS (V16SI_FTYPE_V8DF_V8DF, ROUND)
DEF_FUNCTION_TYPE_ALIAS (V4SI_FTYPE_V4SF, ROUND)
DEF_FUNCTION_TYPE_ALIAS (V8SI_FTYPE_V8SF, ROUND)
DEF_FUNCTION_TYPE_ALIAS (V16SI_FTYPE_V16SF, ROUND)

DEF_FUNCTION_TYPE_ALIAS (INT_FTYPE_V2DF_V2DF, PTEST)
DEF_FUNCTION_TYPE_ALIAS (INT_FTYPE_V2DI_V2DI, PTEST)
DEF_FUNCTION_TYPE_ALIAS (INT_FTYPE_V4DF_V4DF, PTEST)
DEF_FUNCTION_TYPE_ALIAS (INT_FTYPE_V4DI_V4DI, PTEST)
DEF_FUNCTION_TYPE_ALIAS (INT_FTYPE_V4SF_V4SF, PTEST)
DEF_FUNCTION_TYPE_ALIAS (INT_FTYPE_V8SF_V8SF, PTEST)

DEF_FUNCTION_TYPE_ALIAS (V2DF_FTYPE_V2DF, VEC_MERGE)
DEF_FUNCTION_TYPE_ALIAS (V4SF_FTYPE_V4SF, VEC_MERGE)

DEF_FUNCTION_TYPE_ALIAS (V1DI_FTYPE_V1DI_SI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V2DI_FTYPE_V2DI_SI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V2SI_FTYPE_V2SI_SI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V4HI_FTYPE_V4HI_SI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V4SI_FTYPE_V4SI_SI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V8HI_FTYPE_V8HI_SI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V1DI_FTYPE_V1DI_V1DI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V2DI_FTYPE_V2DI_V2DI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V2SI_FTYPE_V2SI_V2SI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V4HI_FTYPE_V4HI_V4HI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V4SI_FTYPE_V4SI_V4SI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V8HI_FTYPE_V8HI_V8HI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V16HI_FTYPE_V16HI_SI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V16HI_FTYPE_V16HI_V8HI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V8SI_FTYPE_V8SI_SI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V8SI_FTYPE_V8SI_V4SI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V4DI_FTYPE_V4DI_INT, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V4DI_FTYPE_V4DI_V2DI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V16HI_FTYPE_V16HI_INT_V16HI_UHI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V16HI_FTYPE_V16HI_V8HI_V16HI_UHI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V16SI_FTYPE_V16SI_INT_V16SI_UHI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V16SI_FTYPE_V16SI_V4SI_V16SI_UHI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V2DI_FTYPE_V2DI_INT_V2DI_UQI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V2DI_FTYPE_V2DI_V2DI_V2DI_UQI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V32HI_FTYPE_V32HI_INT_V32HI_USI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V32HI_FTYPE_V32HI_V8HI_V32HI_USI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V4DI_FTYPE_V4DI_INT_V4DI_UQI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V4DI_FTYPE_V4DI_V2DI_V4DI_UQI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V4SI_FTYPE_V4SI_INT_V4SI_UQI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V4SI_FTYPE_V4SI_V4SI_V4SI_UQI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V8DI_FTYPE_V8DI_INT_V8DI_UQI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V8DI_FTYPE_V8DI_V2DI_V8DI_UQI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V8HI_FTYPE_V8HI_INT_V8HI_UQI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V8HI_FTYPE_V8HI_V8HI_V8HI_UQI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V8SI_FTYPE_V8SI_INT_V8SI_UQI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V8SI_FTYPE_V8SI_V4SI_V8SI_UQI, COUNT)

DEF_FUNCTION_TYPE_ALIAS (V2DF_FTYPE_V2DF_V2DF, SWAP)
DEF_FUNCTION_TYPE_ALIAS (V4SF_FTYPE_V4SF_V4SF, SWAP)

DEF_FUNCTION_TYPE_ALIAS (V8DI_FTYPE_V8DI_INT, CONVERT)
DEF_FUNCTION_TYPE_ALIAS (V4DI_FTYPE_V4DI_INT, CONVERT)
DEF_FUNCTION_TYPE_ALIAS (V2DI_FTYPE_V2DI_INT, CONVERT)
DEF_FUNCTION_TYPE_ALIAS (V8DI_FTYPE_V8DI_V8DI_INT, CONVERT)
DEF_FUNCTION_TYPE_ALIAS (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_UDI, CONVERT)
DEF_FUNCTION_TYPE_ALIAS (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_USI, CONVERT)
DEF_FUNCTION_TYPE_ALIAS (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_UHI, CONVERT)
DEF_FUNCTION_TYPE_ALIAS (V4DI_FTYPE_V4DI_V4DI_INT, CONVERT)
DEF_FUNCTION_TYPE_ALIAS (V2DI_FTYPE_V2DI_V2DI_INT, CONVERT)
DEF_FUNCTION_TYPE_ALIAS (V1DI_FTYPE_V1DI_V1DI_INT, CONVERT)

DEF_FUNCTION_TYPE_ALIAS (V16QI_FTYPE_V16QI_V16QI, CMP)
DEF_FUNCTION_TYPE_ALIAS (V2DI_FTYPE_V2DI_V2DI, CMP)
DEF_FUNCTION_TYPE_ALIAS (V4SI_FTYPE_V4SI_V4SI, CMP)
DEF_FUNCTION_TYPE_ALIAS (V8HI_FTYPE_V8HI_V8HI, CMP)

DEF_FUNCTION_TYPE_ALIAS (V16QI_FTYPE_V16QI_V16QI, TF)
DEF_FUNCTION_TYPE_ALIAS (V2DF_FTYPE_V2DF_V2DF, TF)
DEF_FUNCTION_TYPE_ALIAS (V2DI_FTYPE_V2DI_V2DI, TF)
DEF_FUNCTION_TYPE_ALIAS (V4SF_FTYPE_V4SF_V4SF, TF)
DEF_FUNCTION_TYPE_ALIAS (V4SI_FTYPE_V4SI_V4SI, TF)
DEF_FUNCTION_TYPE_ALIAS (V8HI_FTYPE_V8HI_V8HI, TF)

# MPX builtins
DEF_FUNCTION_TYPE (BND, PCVOID, ULONG)
DEF_FUNCTION_TYPE (VOID, PCVOID, BND)
DEF_FUNCTION_TYPE (VOID, PCVOID, BND, PCVOID)
DEF_FUNCTION_TYPE (BND, PCVOID, PCVOID)
DEF_FUNCTION_TYPE (BND, PCVOID)
DEF_FUNCTION_TYPE (BND, BND, BND)
DEF_FUNCTION_TYPE (PVOID, PCVOID, BND, ULONG)
DEF_FUNCTION_TYPE (ULONG, VOID)
DEF_FUNCTION_TYPE (PVOID, BND)
