#include "mudbox.h"Go to the source code of this file.
| Classes | |
| struct | HWVector | 
| This class represents a four dimensional
vector stored in the SSE registers. More... | |
| struct | HWMatrix | 
| This class represents a four by four matrix
stored in the SSE registers. More... | |
| Functions | |
| mudbox::Vector & | operator<< (mudbox::Vector &v, const HWVector &r) | 
| bool MBDLL_DECL | hasSSE3 () | 
| Query if SSE3 is available. Present on
Prescott, Core2 and later. | |
| bool MBDLL_DECL | hasSSE41 () | 
| Query if SSE4.1 is available. Present on
Penryn (later Core 2) | |
| bool MBDLL_DECL | hasSSE42 () | 
| Query if SSE4.2 is available. Present on
Nehalem (Core i5, Corei7) | |
| bool MBDLL_DECL | hasAVX256 () | 
| Query if AVX is available. present on
Sandybridge. | |
| mudbox::Vector& operator<< | ( | mudbox::Vector & | v, | 
| const HWVector & | r | ||
| ) | [inline] | 
Definition at line 234 of file SSE.h.
{
    __m128 t = _mm_shuffle_ps( r.v, r.v, _MM_SHUFFLE(2,1,0,3) );
    _mm_store_ss( &v.x, t );
    t = _mm_shuffle_ps( t, t, _MM_SHUFFLE(2,1,0,3) );
    _mm_store_ss( &v.y, t );
    t = _mm_shuffle_ps( t, t, _MM_SHUFFLE(2,1,0,3) );
    _mm_store_ss( &v.z, t );
    return v;
    //__m128 t = _mm_shuffle_ps( r.v, r.v, _MM_SHUFFLE(0,1,2,3) );
    //int a = ((int *)&v)[3];
    //_mm_storeu_ps( &v.x, t );
    //((int *)&v)[3] = a;
    //return v;
};
| bool MBDLL_DECL hasSSE3 | ( | ) | 
Query if SSE3 is available. Present on Prescott, Core2 and later.
| bool MBDLL_DECL hasSSE41 | ( | ) | 
Query if SSE4.1 is available. Present on Penryn (later Core 2)
| bool MBDLL_DECL hasSSE42 | ( | ) | 
Query if SSE4.2 is available. Present on Nehalem (Core i5, Corei7)
| bool MBDLL_DECL hasAVX256 | ( | ) | 
Query if AVX is available. present on Sandybridge.