mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2026-03-20 09:00:25 +01:00
Restored generic (non-SIMD) code
This commit is contained in:
@@ -389,7 +389,7 @@ idMatX::operator=
|
||||
ID_INLINE idMatX &idMatX::operator=( const idMatX &a ) {
|
||||
SetSize( a.numRows, a.numColumns );
|
||||
int s = a.numRows * a.numColumns;
|
||||
#ifdef MATX_SIMD
|
||||
#if defined(ID_WIN_X86_SSE_INTRIN) && defined(MATX_SIMD)
|
||||
for ( int i = 0; i < s; i += 4 ) {
|
||||
_mm_store_ps( mat + i, _mm_load_ps( a.mat + i ) );
|
||||
}
|
||||
@@ -410,7 +410,7 @@ ID_INLINE idMatX idMatX::operator*( const float a ) const {
|
||||
|
||||
m.SetTempSize( numRows, numColumns );
|
||||
int s = numRows * numColumns;
|
||||
#ifdef MATX_SIMD
|
||||
#if defined(ID_WIN_X86_SSE_INTRIN) && defined(MATX_SIMD)
|
||||
__m128 va = _mm_load1_ps( & a );
|
||||
for ( int i = 0; i < s; i += 4 ) {
|
||||
_mm_store_ps( m.mat + i, _mm_mul_ps( _mm_load_ps( mat + i ), va ) );
|
||||
@@ -462,7 +462,7 @@ ID_INLINE idMatX idMatX::operator+( const idMatX &a ) const {
|
||||
assert( numRows == a.numRows && numColumns == a.numColumns );
|
||||
m.SetTempSize( numRows, numColumns );
|
||||
int s = numRows * numColumns;
|
||||
#ifdef MATX_SIMD
|
||||
#if defined(ID_WIN_X86_SSE_INTRIN) && defined(MATX_SIMD)
|
||||
for ( int i = 0; i < s; i += 4 ) {
|
||||
_mm_store_ps( m.mat + i, _mm_add_ps( _mm_load_ps( mat + i ), _mm_load_ps( a.mat + i ) ) );
|
||||
}
|
||||
@@ -485,7 +485,7 @@ ID_INLINE idMatX idMatX::operator-( const idMatX &a ) const {
|
||||
assert( numRows == a.numRows && numColumns == a.numColumns );
|
||||
m.SetTempSize( numRows, numColumns );
|
||||
int s = numRows * numColumns;
|
||||
#ifdef MATX_SIMD
|
||||
#if defined(ID_WIN_X86_SSE_INTRIN) && defined(MATX_SIMD)
|
||||
for ( int i = 0; i < s; i += 4 ) {
|
||||
_mm_store_ps( m.mat + i, _mm_sub_ps( _mm_load_ps( mat + i ), _mm_load_ps( a.mat + i ) ) );
|
||||
}
|
||||
@@ -504,7 +504,7 @@ idMatX::operator*=
|
||||
*/
|
||||
ID_INLINE idMatX &idMatX::operator*=( const float a ) {
|
||||
int s = numRows * numColumns;
|
||||
#ifdef MATX_SIMD
|
||||
#if defined(ID_WIN_X86_SSE_INTRIN) && defined(MATX_SIMD)
|
||||
__m128 va = _mm_load1_ps( & a );
|
||||
for ( int i = 0; i < s; i += 4 ) {
|
||||
_mm_store_ps( mat + i, _mm_mul_ps( _mm_load_ps( mat + i ), va ) );
|
||||
@@ -537,7 +537,7 @@ idMatX::operator+=
|
||||
ID_INLINE idMatX &idMatX::operator+=( const idMatX &a ) {
|
||||
assert( numRows == a.numRows && numColumns == a.numColumns );
|
||||
int s = numRows * numColumns;
|
||||
#ifdef MATX_SIMD
|
||||
#if defined(ID_WIN_X86_SSE_INTRIN) && defined(MATX_SIMD)
|
||||
for ( int i = 0; i < s; i += 4 ) {
|
||||
_mm_store_ps( mat + i, _mm_add_ps( _mm_load_ps( mat + i ), _mm_load_ps( a.mat + i ) ) );
|
||||
}
|
||||
@@ -558,7 +558,7 @@ idMatX::operator-=
|
||||
ID_INLINE idMatX &idMatX::operator-=( const idMatX &a ) {
|
||||
assert( numRows == a.numRows && numColumns == a.numColumns );
|
||||
int s = numRows * numColumns;
|
||||
#ifdef MATX_SIMD
|
||||
#if defined(ID_WIN_X86_SSE_INTRIN) && defined(MATX_SIMD)
|
||||
for ( int i = 0; i < s; i += 4 ) {
|
||||
_mm_store_ps( mat + i, _mm_sub_ps( _mm_load_ps( mat + i ), _mm_load_ps( a.mat + i ) ) );
|
||||
}
|
||||
@@ -744,7 +744,7 @@ idMatX::Zero
|
||||
*/
|
||||
ID_INLINE void idMatX::Zero() {
|
||||
int s = numRows * numColumns;
|
||||
#ifdef MATX_SIMD
|
||||
#if defined(ID_WIN_X86_SSE_INTRIN) && defined(MATX_SIMD)
|
||||
for ( int i = 0; i < s; i += 4 ) {
|
||||
_mm_store_ps( mat + i, _mm_setzero_ps() );
|
||||
}
|
||||
@@ -838,7 +838,7 @@ idMatX::Negate
|
||||
*/
|
||||
ID_INLINE void idMatX::Negate() {
|
||||
int s = numRows * numColumns;
|
||||
#ifdef MATX_SIMD
|
||||
#if defined(ID_WIN_X86_SSE_INTRIN) && defined(MATX_SIMD)
|
||||
ALIGN16( const unsigned int signBit[4] ) = { IEEE_FLT_SIGN_MASK, IEEE_FLT_SIGN_MASK, IEEE_FLT_SIGN_MASK, IEEE_FLT_SIGN_MASK };
|
||||
for ( int i = 0; i < s; i += 4 ) {
|
||||
_mm_store_ps( mat + i, _mm_xor_ps( _mm_load_ps( mat + i ), (__m128 &) signBit[0] ) );
|
||||
|
||||
Reference in New Issue
Block a user