include/native/SSEPlus_native_SSE3.h

Go to the documentation of this file.
00001 //
00002 // Copyright (c) 2006-2008 Advanced Micro Devices, Inc. All Rights Reserved.
00003 // This software is subject to the Apache v2.0 License.
00004 //
00005 #ifndef __SSEPLUS_NATIVE_SSE3_H__
00006 #define __SSEPLUS_NATIVE_SSE3_H__
00007 
00008 #include "../SSEPlus_base.h"
00009 #include SSP_INCLUDE_FILE_SSE3
00010 
00011 
00018 SSP_FORCEINLINE __m128 ssp_addsub_ps_SSE3(__m128 a, __m128 b)                              
00019 {
00020     return _mm_addsub_ps( a, b );
00021 }
00023 SSP_FORCEINLINE __m128d ssp_addsub_pd_SSE3( __m128d a, __m128d b)
00024 {
00025     return _mm_addsub_pd( a, b );
00026 }
00028 SSP_FORCEINLINE __m128d ssp_hadd_pd_SSE3( __m128d a, __m128d b)
00029 {
00030     return _mm_hadd_pd(a, b );
00031 }
00033 SSP_FORCEINLINE __m128 ssp_hadd_ps_SSE3( __m128 a, __m128 b)
00034 {
00035     return _mm_hadd_ps( a, b);    
00036 }
00038 SSP_FORCEINLINE __m128d ssp_hsub_pd_SSE3( __m128d a, __m128d b)
00039 {
00040     return _mm_hsub_pd (a, b);
00041 }
00043 SSP_FORCEINLINE __m128 ssp_hsub_ps_SSE3( __m128 a, __m128 b)
00044 {
00045     return _mm_hsub_ps (a, b);
00046 }
00048 SSP_FORCEINLINE __m128i ssp_lddqu_si128_SSE3( __m128i const *p)
00049 {
00050     return _mm_lddqu_si128 (p);    
00051 }
00053 SSP_FORCEINLINE __m128d ssp_loaddup_pd_SSE3 (double const * dp)
00054 {
00055     return _mm_loaddup_pd (dp);
00056 }
00058 SSP_FORCEINLINE __m128d ssp_movedup_pd_SSE3( __m128d a)
00059 {
00060     return _mm_movedup_pd (a);    
00061 }
00063 SSP_FORCEINLINE __m128 ssp_movehdup_ps_SSE3( __m128 a)
00064 {
00065     return _mm_movehdup_ps (a);
00066 }
00068 SSP_FORCEINLINE __m128 ssp_moveldup_ps_SSE3( __m128 a)
00069 {
00070     return _mm_moveldup_ps (a);
00071 }
00072 
00074 
00075 
00076 #endif // __SSEPLUS_NATIVE_SSE3_H__

Generated on Wed May 21 13:44:11 2008 for "SSEPlus" by  doxygen 1.5.4