//#define ___ROAST_SIMD__NEMONI_
//#define ___ROAST_SIMD__VAL_TYPE_


#define _ROAST_SIMD_CORE__M128_XMM_GEN1(_X)		\
	break; case _X: __asm ___ROAST_SIMD__NEMONI_ m128val, xmm ## _X;

#define _ROAST_SIMD_CORE__XMM_M128__METHOD_NAME_(_X)	get_ ## _X
#define _ROAST_SIMD_CORE__XMM_M128__METHOD_NAME(_X)		_ROAST_SIMD_CORE__XMM_M128__METHOD_NAME_(_X)


/*	Function	*/
inline ROAST_SIMD_STATIC ___ROAST_SIMD__VAL_TYPE_ _ROAST_SIMD_CORE__XMM_M128__METHOD_NAME(___ROAST_SIMD__NEMONI_) (int xmm_num)
{
	___ROAST_SIMD__VAL_TYPE_ m128val;

	switch(xmm_num)
	{
	case -99:

	_ROAST_SIMD_CORE__M128_XMM_GEN1(0)
	_ROAST_SIMD_CORE__M128_XMM_GEN1(1)
	_ROAST_SIMD_CORE__M128_XMM_GEN1(2)
	_ROAST_SIMD_CORE__M128_XMM_GEN1(3)
	_ROAST_SIMD_CORE__M128_XMM_GEN1(4)
	_ROAST_SIMD_CORE__M128_XMM_GEN1(5)
	_ROAST_SIMD_CORE__M128_XMM_GEN1(6)
	_ROAST_SIMD_CORE__M128_XMM_GEN1(7)
#ifdef _M_AMD64
	_ROAST_SIMD_CORE__M128_XMM_GEN1(8)
	_ROAST_SIMD_CORE__M128_XMM_GEN1(9)
	_ROAST_SIMD_CORE__M128_XMM_GEN1(10)
	_ROAST_SIMD_CORE__M128_XMM_GEN1(11)
	_ROAST_SIMD_CORE__M128_XMM_GEN1(12)
	_ROAST_SIMD_CORE__M128_XMM_GEN1(13)
	_ROAST_SIMD_CORE__M128_XMM_GEN1(14)
	_ROAST_SIMD_CORE__M128_XMM_GEN1(15)
#endif
	}

	return m128val;
}


#undef ___ROAST_SIMD__NEMONI_
#undef ___ROAST_SIMD__VAL_TYPE_
#ifdef ___ROAST_SIMD__VAL_NAME_
	#undef ___ROAST_SIMD__VAL_NAME_
#endif
#ifdef ___ROAST_SIMD__VAL_IS_POINTER
	#undef ___ROAST_SIMD__VAL_IS_POINTER
#endif

#undef _ROAST_SIMD_CORE__M128_XMM_GEN1
#undef _ROAST_SIMD_CORE__XMM_M128__METHOD_NAME
