//
//
//
#ifndef __SSE_TYPE__H__
#define __SSE_TYPE__H__

#if defined( _MSC_VER )

#include <emmintrin.h>

//
//	Intager types
//
typedef int int32;
typedef unsigned int uint32;
typedef __int64 int64;
typedef unsigned __int64 uint64;

//
//	Vector types.
//
typedef __m128i v4dw;
typedef __m128i v4dw;
typedef __m128i v2qw;
typedef __m128d v4ps;
typedef __m128d v2pd;

#elif defined( __GNUC__ )

//
//	Intager types
//
typedef int int32;
typedef unsigned int uint32;
typedef long int64;
typedef unsigned long uint64;

//
//	Vector types.
//
typedef int v4dw __attribute__ ((vector_size (16)));
typedef long v2qw __attribute__ ((vector_size (16)));
typedef float v2ps __attribute__ ((vector_size (16)));
typedef double v2pd __attribute__ ((vector_size (16)));

#endif

#endif//__SSE_TYPE__H__