Merge pull request #495 from r-a-sattarov/master

E2K: fixed build by MCST lcc compiler when using USE_INTRINSICS=ON
This commit is contained in:
Robert Beckebans 2020-11-05 01:01:56 +01:00 committed by GitHub
commit 87e1944725
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -223,7 +223,11 @@ void idMatX::CopyLowerToUpperTriangle()
const __m128 mask2 = __m128c( _mm_set_epi32( 0, -1, -1, -1 ) );
const __m128 mask3 = __m128c( _mm_set_epi32( -1, -1, -1, -1 ) );
const __m128 bottomMask[2] = { __m128c( _mm_set1_epi32( 0 ) ), __m128c( _mm_set1_epi32( -1 ) ) };
// const __m128 bottomMask[2] = { __m128c( _mm_set1_epi32( 0 ) ), __m128c( _mm_set1_epi32( -1 ) ) };
// compilers (e.g. MCST lcc, Intel icc) that use the C++ Front End from EDG (Edison Design Group) have a bug
// - no suitable conversion function from "__m128c" to "float"
// an explicit type conversion is used as a solution to this bug
const __m128 bottomMask[2] = { (__m128) __m128c( _mm_set1_epi32( 0 ) ), (__m128) __m128c( _mm_set1_epi32( -1 ) ) };
float* __restrict basePtr = ToFloatPtr();