/*
 * SYNOPSYS CONFIDENTIAL - This is an unpublished, proprietary work of Synopsys,
 * Inc., and is fully protected under copyright and trade secret laws. You may
 * not view, use, disclose, copy, or distribute this file or any information
 * contained herein except pursuant to a valid written license from Synopsys.
 */

//
//	The purpose of this file is to define SSE2 data types to abstacr from the compiler 
//	specific constructs. Currently the target compilers are GCC and the MS VC 2005.
//

#ifndef _SSE2_CMPL_ABSTRACTION_OTHER_H_
#define _SSE2_CMPL_ABSTRACTION_OTHER_H_

#include <boost/static_assert.hpp>

//
//	Namespace sse2
//
namespace sse2
{

//
//	Primitive types
//

///	2xdouble
//
typedef char xmm128d[16];

///	4xfloat
//
typedef char xmm128s[16];

///	2xint64
//
typedef char xmm128l[16];

///	4xint32
//
typedef char xmm128i[16];

///	int64
//
typedef long int;

//
//	Namespace sse2
//
}

#include "SSE_cmplr_abstraction_other_pckdbl.h"
#include "SSE_cmplr_abstraction_other_pckfloat.h"
#include "SSE_cmplr_abstraction_other_pckint8.h"
#include "SSE_cmplr_abstraction_other_pckint16.h"
#include "SSE_cmplr_abstraction_other_pckint32.h"
#include "SSE_cmplr_abstraction_other_pckint64.h"

#endif/*_SSE2_CMPL_ABSTRACTION_OTHER_H_*/
