Text archives Help
- From: abe@sci.utah.edu
- To: manta@sci.utah.edu
- Subject: [MANTA] r1120 - in trunk/Model: Primitives Textures
- Date: Fri, 16 Jun 2006 11:31:27 -0600 (MDT)
Author: abe
Date: Fri Jun 16 11:31:25 2006
New Revision: 1120
Modified:
trunk/Model/Primitives/Parallelogram.cc
trunk/Model/Primitives/Sphere.cc
trunk/Model/Textures/CheckerTexture.cc
Log:
M Model/Textures/CheckerTexture.cc
M Model/Primitives/Parallelogram.cc
M Model/Primitives/Sphere.cc
"Fixed" sse casts. Code now compiles on icc 9.0 and 9.1 in both 32bit and
64bit. (Also compiles on gcc 4.0.2).
Modified: trunk/Model/Primitives/Parallelogram.cc
==============================================================================
--- trunk/Model/Primitives/Parallelogram.cc (original)
+++ trunk/Model/Primitives/Parallelogram.cc Fri Jun 16 11:31:25 2006
@@ -315,8 +315,8 @@
} else {
_mm_maskmoveu_si128((__m128i)_mm_castps_si128(t),
(__m128i)_mm_castps_si128(hit), (char*)&data->minT[i]);
#ifdef __x86_64
- __m128i lohit = (__m128i)_mm_unpacklo_ps(hit, hit);
- __m128i hihit = (__m128i)_mm_unpackhi_ps(hit, hit);
+ __m128i lohit = (__m128i)_mm_castps_si128(_mm_unpacklo_ps(hit,
hit));
+ __m128i hihit = (__m128i)_mm_castps_si128(_mm_unpackhi_ps(hit,
hit));
_mm_maskmoveu_si128(_mm_set1_epi64x((long long)getMaterial()),
lohit, (char*)&data->hitMatl[i]);
_mm_maskmoveu_si128(_mm_set1_epi64x((long long)getMaterial()),
hihit, (char*)&data->hitMatl[i+2]);
Modified: trunk/Model/Primitives/Sphere.cc
==============================================================================
--- trunk/Model/Primitives/Sphere.cc (original)
+++ trunk/Model/Primitives/Sphere.cc Fri Jun 16 11:31:25 2006
@@ -333,8 +333,8 @@
} else {
_mm_maskmoveu_si128((__m128i)_mm_castps_si128(t0),
(__m128i)_mm_castps_si128(hit0), (char*)&data->minT[i]);
#ifdef __x86_64
- __m128i lohit = (__m128i)_mm_unpacklo_ps(hit0, hit0);
- __m128i hihit = (__m128i)_mm_unpackhi_ps(hit0, hit0);
+ __m128i lohit = (__m128i)_mm_castps_si128(_mm_unpacklo_ps(hit0,
hit0));
+ __m128i hihit = (__m128i)_mm_castps_si128(_mm_unpackhi_ps(hit0,
hit0));
_mm_maskmoveu_si128(_mm_set1_epi64x((long long)getMaterial()),
lohit, (char*)&data->hitMatl[i]);
_mm_maskmoveu_si128(_mm_set1_epi64x((long long)getMaterial()),
hihit, (char*)&data->hitMatl[i+2]);
@@ -374,8 +374,8 @@
} else {
_mm_maskmoveu_si128((__m128i)_mm_castps_si128(t1),
(__m128i)_mm_castps_si128(hit1), (char*)&data->minT[i]);
#ifdef __x86_64
- __m128i lohit = (__m128i)_mm_unpacklo_ps(hit1, hit1);
- __m128i hihit = (__m128i)_mm_unpackhi_ps(hit1, hit1);
+ __m128i lohit = (__m128i)_mm_castps_si128(_mm_unpacklo_ps(hit1,
hit1));
+ __m128i hihit = (__m128i)_mm_castps_si128(_mm_unpackhi_ps(hit1,
hit1));
_mm_maskmoveu_si128(_mm_set1_epi64x((long long)getMaterial()),
lohit, (char*)&data->hitMatl[i]);
_mm_maskmoveu_si128(_mm_set1_epi64x((long long)getMaterial()),
hihit, (char*)&data->hitMatl[i+2]);
Modified: trunk/Model/Textures/CheckerTexture.cc
==============================================================================
--- trunk/Model/Textures/CheckerTexture.cc (original)
+++ trunk/Model/Textures/CheckerTexture.cc Fri Jun 16 11:31:25 2006
@@ -55,14 +55,14 @@
__m128i i2 = _mm_cvtps_epi32(vv2);
__m128i which = _mm_and_si128(_mm_add_epi32(i1, i2),
_mm_set1_epi32(1));
__m128i mask = _mm_cmpeq_epi32(which, _mm_setzero_si128());
- __m128 valuer = _mm_or_ps(_mm_and_ps((__m128)mask,
_mm_set1_ps(values[0][0])),
- _mm_andnot_ps((__m128)mask,
_mm_set1_ps(values[1][0])));
+ __m128 valuer = _mm_or_ps(_mm_and_ps((__m128)_mm_castsi128_ps(mask),
_mm_set1_ps(values[0][0])),
+
_mm_andnot_ps((__m128)_mm_castsi128_ps(mask), _mm_set1_ps(values[1][0])));
_mm_store_ps(&results.colordata[0][i], valuer);
- __m128 valueg = _mm_or_ps(_mm_and_ps((__m128)mask,
_mm_set1_ps(values[0][1])),
- _mm_andnot_ps((__m128)mask,
_mm_set1_ps(values[1][1])));
+ __m128 valueg = _mm_or_ps(_mm_and_ps((__m128)_mm_castsi128_ps(mask),
_mm_set1_ps(values[0][1])),
+
_mm_andnot_ps((__m128)_mm_castsi128_ps(mask), _mm_set1_ps(values[1][1])));
_mm_store_ps(&results.colordata[1][i], valueg);
- __m128 valueb = _mm_or_ps(_mm_and_ps((__m128)mask,
_mm_set1_ps(values[0][2])),
- _mm_andnot_ps((__m128)mask,
_mm_set1_ps(values[1][2])));
+ __m128 valueb = _mm_or_ps(_mm_and_ps((__m128)_mm_castsi128_ps(mask),
_mm_set1_ps(values[0][2])),
+
_mm_andnot_ps((__m128)_mm_castsi128_ps(mask), _mm_set1_ps(values[1][2])));
_mm_store_ps(&results.colordata[2][i], valueb);
}
_mm_setcsr(old_csr);
@@ -148,8 +148,8 @@
__m128i i2 = _mm_cvtps_epi32(vv2);
__m128i which = _mm_and_si128(_mm_add_epi32(i1, i2),
_mm_set1_epi32(1));
__m128i mask = _mm_cmpeq_epi32(which, _mm_setzero_si128());
- __m128 value = _mm_or_ps(_mm_and_ps((__m128)mask,
_mm_set1_ps(values[0])),
- _mm_andnot_ps((__m128)mask,
_mm_set1_ps(values[1])));
+ __m128 value = _mm_or_ps(_mm_and_ps((__m128)_mm_castsi128_ps(mask),
_mm_set1_ps(values[0])),
+
_mm_andnot_ps((__m128)_mm_castsi128_ps(mask), _mm_set1_ps(values[1])));
_mm_store_ps(&results.data[i], value);
}
_mm_setcsr(old_csr);
- [MANTA] r1120 - in trunk/Model: Primitives Textures, abe, 06/16/2006
Archive powered by MHonArc 2.6.16.