Commit 675a960e authored by Andreas Marek's avatar Andreas Marek
Browse files

Revert buggy commit

parent e5967820
......@@ -65,8 +65,6 @@
#define _SSE_MUL _mm_mul_pd
#define _SSE_XOR _mm_xor_pd
#define _SSE_STORE _mm_store_pd
#define _SSE_SET _mm_set_pd
#define _SSE_SET1 _mm_set1_pd
#define offset 2
#endif
......@@ -77,8 +75,6 @@
#define _SSE_MUL _mm_mul_ps
#define _SSE_XOR _mm_xor_ps
#define _SSE_STORE _mm_store_ps
#define _SSE_SET _mm_set_ps
#define _SSE_SET1 _mm_set1_ps
#define offset 4
#endif
......@@ -473,10 +469,20 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
__SSE_DATATYPE x6 = _SSE_LOAD(&q[ldq+5*offset]);
#ifdef HAVE_SSE_INTRINSICS
__SSE_DATATYPE h1 = _SSE_SET1(hh[ldh+1]);
#ifdef DOUBLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set1_pd(hh[ldh+1]);
#endif
#ifdef SINGLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set1_ps(hh[ldh+1]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
__SSE_DATATYPE h1 = _SSE_SET(hh[ldh+1], hh[ldh+1]);
#ifdef DOUBLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set_pd(hh[ldh+1], hh[ldh+1]);
#endif
#ifdef SINGLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set_ps(hh[ldh+1], hh[ldh+1]);
#endif
#endif
__SSE_DATATYPE h2;
......@@ -496,12 +502,24 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
for(i = 2; i < nb; i++)
{
#ifdef HAVE_SSE_INTRINSICS
h1 = _SSE_SET1(hh[i-1]);
h2 = _SSE_SET1(hh[ldh+i]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set1_pd(hh[i-1]);
h2 = _mm_set1_pd(hh[ldh+i]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set1_ps(hh[i-1]);
h2 = _mm_set1_ps(hh[ldh+i]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h1 = _SSE_SET(hh[i-1], hh[i-1]);
h2 = _SSE_SET(hh[ldh+i], hh[ldh+i]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set_pd(hh[i-1], hh[i-1]);
h2 = _mm_set_pd(hh[ldh+i], hh[ldh+i]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set_ps(hh[i-1], hh[i-1]);
h2 = _mm_set_ps(hh[ldh+i], hh[ldh+i]);
#endif
#endif
q1 = _SSE_LOAD(&q[i*ldq]);
......@@ -524,10 +542,20 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
y6 = _SSE_ADD(y6, _SSE_MUL(q6,h2));
}
#ifdef HAVE_SSE_INTRINSICS
h1 = _SSE_SET1(hh[nb-1]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set1_pd(hh[nb-1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set1_ps(hh[nb-1]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h1 = _SSE_SET(hh[nb-1], hh[nb-1]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set_pd(hh[nb-1], hh[nb-1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set_ps(hh[nb-1], hh[nb-1]);
#endif
#endif
q1 = _SSE_LOAD(&q[nb*ldq]);
......@@ -546,14 +574,28 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
// Rank-2 update of Q [12 x nb+1]
/////////////////////////////////////////////////////
#ifdef HAVE_SSE_INTRINSICS
__SSE_DATATYPE tau1 = _SSE_SET1(hh[0]);
__SSE_DATATYPE tau2 = _SSE_SET1(hh[ldh]);
__SSE_DATATYPE vs = _SSE_SET1(s);
#ifdef DOUBLE_PRECISION_REAL
__SSE_DATATYPE tau1 = _mm_set1_pd(hh[0]);
__SSE_DATATYPE tau2 = _mm_set1_pd(hh[ldh]);
__SSE_DATATYPE vs = _mm_set1_pd(s);
#endif
#ifdef SINGLE_PRECISION_REAL
__SSE_DATATYPE tau1 = _mm_set1_ps(hh[0]);
__SSE_DATATYPE tau2 = _mm_set1_ps(hh[ldh]);
__SSE_DATATYPE vs = _mm_set1_ps(s);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
__SSE_DATATYPE tau1 = _SSE_SET(hh[0], hh[0]);
__SSE_DATATYPE tau2 = _SSE_SET(hh[ldh], hh[ldh]);
__SSE_DATATYPE vs = _SSE_SET(s, s);
#ifdef DOUBLE_PRECISION_REAL
__SSE_DATATYPE tau1 = _mm_set_pd(hh[0], hh[0]);
__SSE_DATATYPE tau2 = _mm_set_pd(hh[ldh], hh[ldh]);
__SSE_DATATYPE vs = _mm_set_pd(s, s);
#endif
#ifdef SINGLE_PRECISION_REAL
__SSE_DATATYPE tau1 = _mm_set_ps(hh[0], hh[0]);
__SSE_DATATYPE tau2 = _mm_set_ps(hh[ldh], hh[ldh]);
__SSE_DATATYPE vs = _mm_set_ps(s, s);
#endif
#endif
#ifdef HAVE_SSE_INTRINSICS
......@@ -602,11 +644,21 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
_SSE_STORE(&q[5*offset],q6);
#ifdef HAVE_SSE_INTRINSICS
h2 = _SSE_SET1(hh[ldh+1]);
#ifdef DOUBLE_PRECISION_REAL
h2 = _mm_set1_pd(hh[ldh+1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h2 = _mm_set1_ps(hh[ldh+1]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h2 = _SSE_SET(hh[ldh+1], hh[ldh+1]);
#ifdef DOUBLE_PRECISION_REAL
h2 = _mm_set_pd(hh[ldh+1], hh[ldh+1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h2 = _mm_set_ps(hh[ldh+1], hh[ldh+1]);
#endif
#endif
q1 = _SSE_LOAD(&q[ldq]);
......@@ -631,12 +683,24 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
for (i = 2; i < nb; i++)
{
#ifdef HAVE_SSE_INTRINSICS
h1 = _SSE_SET1(hh[i-1]);
h2 = _SSE_SET1(hh[ldh+i]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set1_pd(hh[i-1]);
h2 = _mm_set1_pd(hh[ldh+i]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set1_ps(hh[i-1]);
h2 = _mm_set1_ps(hh[ldh+i]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h1 = _SSE_SET(hh[i-1], hh[i-1]);
h2 = _SSE_SET(hh[ldh+i], hh[ldh+i]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set_pd(hh[i-1], hh[i-1]);
h2 = _mm_set_pd(hh[ldh+i], hh[ldh+i]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set_ps(hh[i-1], hh[i-1]);
h2 = _mm_set_ps(hh[ldh+i], hh[ldh+i]);
#endif
#endif
q1 = _SSE_LOAD(&q[i*ldq]);
......@@ -659,10 +723,20 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
_SSE_STORE(&q[(i*ldq)+5*offset],q6);
}
#ifdef HAVE_SSE_INTRINSICS
h1 = _SSE_SET1(hh[nb-1]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set1_pd(hh[nb-1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set1_ps(hh[nb-1]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h1 = _SSE_SET(hh[nb-1], hh[nb-1]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set_pd(hh[nb-1], hh[nb-1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set_ps(hh[nb-1], hh[nb-1]);
#endif
#endif
......@@ -739,10 +813,20 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
__SSE_DATATYPE x5 = _SSE_LOAD(&q[ldq+4*offset]);
#ifdef HAVE_SSE_INTRINSICS
__SSE_DATATYPE h1 = _SSE_SET1(hh[ldh+1]);
#ifdef DOUBLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set1_pd(hh[ldh+1]);
#endif
#ifdef SINGLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set1_ps(hh[ldh+1]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
__SSE_DATATYPE h1 = _SSE_SET(hh[ldh+1], hh[ldh+1]);
#ifdef DOUBLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set_pd(hh[ldh+1], hh[ldh+1]);
#endif
#ifdef SINGLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set_ps(hh[ldh+1], hh[ldh+1]);
#endif
#endif
__SSE_DATATYPE h2;
......@@ -760,12 +844,24 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
for(i = 2; i < nb; i++)
{
#ifdef HAVE_SSE_INTRINSICS
h1 = _SSE_SET1(hh[i-1]);
h2 = _SSE_SET1(hh[ldh+i]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set1_pd(hh[i-1]);
h2 = _mm_set1_pd(hh[ldh+i]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set1_ps(hh[i-1]);
h2 = _mm_set1_ps(hh[ldh+i]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h1 = _SSE_SET(hh[i-1], hh[i-1]);
h2 = _SSE_SET(hh[ldh+i], hh[ldh+i]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set_pd(hh[i-1], hh[i-1]);
h2 = _mm_set_pd(hh[ldh+i], hh[ldh+i]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set_ps(hh[i-1], hh[i-1]);
h2 = _mm_set_ps(hh[ldh+i], hh[ldh+i]);
#endif
#endif
......@@ -787,10 +883,20 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
}
#ifdef HAVE_SSE_INTRINSICS
h1 = _SSE_SET1(hh[nb-1]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set1_pd(hh[nb-1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set1_ps(hh[nb-1]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h1 = _SSE_SET(hh[nb-1], hh[nb-1]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set_pd(hh[nb-1], hh[nb-1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set_ps(hh[nb-1], hh[nb-1]);
#endif
#endif
q1 = _SSE_LOAD(&q[nb*ldq]);
......@@ -807,14 +913,30 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
// Rank-2 update of Q [12 x nb+1]
/////////////////////////////////////////////////////
#ifdef HAVE_SSE_INTRINSICS
__SSE_DATATYPE tau1 = _SSE_SET1(hh[0]);
__SSE_DATATYPE tau2 = _SSE_SET1(hh[ldh]);
__SSE_DATATYPE vs = _SSE_SET1(s);
#ifdef DOUBLE_PRECISION_REAL
__SSE_DATATYPE tau1 = _mm_set1_pd(hh[0]);
__SSE_DATATYPE tau2 = _mm_set1_pd(hh[ldh]);
__SSE_DATATYPE vs = _mm_set1_pd(s);
#endif
#ifdef SINGLE_PRECISION_REAL
__SSE_DATATYPE tau1 = _mm_set1_ps(hh[0]);
__SSE_DATATYPE tau2 = _mm_set1_ps(hh[ldh]);
__SSE_DATATYPE vs = _mm_set1_ps(s);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
__SSE_DATATYPE tau1 = _SSE_SET(hh[0], hh[0]);
__SSE_DATATYPE tau2 = _SSE_SET(hh[ldh], hh[ldh]);
__SSE_DATATYPE vs = _SSE_SET(s, s);
#ifdef DOUBLE_PRECISION_REAL
__SSE_DATATYPE tau1 = _mm_set_pd(hh[0], hh[0]);
__SSE_DATATYPE tau2 = _mm_set_pd(hh[ldh], hh[ldh]);
__SSE_DATATYPE vs = _mm_set_pd(s, s);
#endif
#ifdef SINGLE_PRECISION_REAL
__SSE_DATATYPE tau1 = _mm_set_ps(hh[0], hh[0]);
__SSE_DATATYPE tau2 = _mm_set_ps(hh[ldh], hh[ldh]);
__SSE_DATATYPE vs = _mm_set_ps(s, s);
#endif
#endif
#ifdef HAVE_SSE_INTRINSICS
......@@ -858,10 +980,20 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
_SSE_STORE(&q[4*offset],q5);
#ifdef HAVE_SSE_INTRINSICS
h2 = _SSE_SET1(hh[ldh+1]);
#ifdef DOUBLE_PRECISION_REAL
h2 = _mm_set1_pd(hh[ldh+1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h2 = _mm_set1_ps(hh[ldh+1]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h2 = _SSE_SET(hh[ldh+1], hh[ldh+1]);
#ifdef DOUBLE_PRECISION_REAL
h2 = _mm_set_pd(hh[ldh+1], hh[ldh+1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h2 = _mm_set_ps(hh[ldh+1], hh[ldh+1]);
#endif
#endif
q1 = _SSE_LOAD(&q[ldq]);
......@@ -883,12 +1015,24 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
for (i = 2; i < nb; i++)
{
#ifdef HAVE_SSE_INTRINSICS
h1 = _SSE_SET1(hh[i-1]);
h2 = _SSE_SET1(hh[ldh+i]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set1_pd(hh[i-1]);
h2 = _mm_set1_pd(hh[ldh+i]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set1_ps(hh[i-1]);
h2 = _mm_set1_ps(hh[ldh+i]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h1 = _SSE_SET(hh[i-1], hh[i-1]);
h2 = _SSE_SET(hh[ldh+i], hh[ldh+i]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set_pd(hh[i-1], hh[i-1]);
h2 = _mm_set_pd(hh[ldh+i], hh[ldh+i]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set_ps(hh[i-1], hh[i-1]);
h2 = _mm_set_ps(hh[ldh+i], hh[ldh+i]);
#endif
#endif
q1 = _SSE_LOAD(&q[i*ldq]);
......@@ -908,10 +1052,20 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
_SSE_STORE(&q[(i*ldq)+4*offset],q5);
}
#ifdef HAVE_SSE_INTRINSICS
h1 = _SSE_SET1(hh[nb-1]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set1_pd(hh[nb-1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set1_ps(hh[nb-1]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h1 = _SSE_SET(hh[nb-1], hh[nb-1]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set_pd(hh[nb-1], hh[nb-1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set_ps(hh[nb-1], hh[nb-1]);
#endif
#endif
q1 = _SSE_LOAD(&q[nb*ldq]);
......@@ -981,10 +1135,20 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
__SSE_DATATYPE x4 = _SSE_LOAD(&q[ldq+3*offset]);
#ifdef HAVE_SSE_INTRINSICS
__SSE_DATATYPE h1 = _SSE_SET1(hh[ldh+1]);
#ifdef DOUBLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set1_pd(hh[ldh+1]);
#endif
#ifdef SINGLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set1_ps(hh[ldh+1]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
__SSE_DATATYPE h1 = _SSE_SET(hh[ldh+1], hh[ldh+1]);
#ifdef DOUBLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set_pd(hh[ldh+1], hh[ldh+1]);
#endif
#ifdef SINGLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set_ps(hh[ldh+1], hh[ldh+1]);
#endif
#endif
__SSE_DATATYPE h2;
......@@ -1000,12 +1164,24 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
for(i = 2; i < nb; i++)
{
#ifdef HAVE_SSE_INTRINSICS
h1 = _SSE_SET1(hh[i-1]);
h2 = _SSE_SET1(hh[ldh+i]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set1_pd(hh[i-1]);
h2 = _mm_set1_pd(hh[ldh+i]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set1_ps(hh[i-1]);
h2 = _mm_set1_ps(hh[ldh+i]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h1 = _SSE_SET(hh[i-1], hh[i-1]);
h2 = _SSE_SET(hh[ldh+i], hh[ldh+i]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set_pd(hh[i-1], hh[i-1]);
h2 = _mm_set_pd(hh[ldh+i], hh[ldh+i]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set_ps(hh[i-1], hh[i-1]);
h2 = _mm_set_ps(hh[ldh+i], hh[ldh+i]);
#endif
#endif
......@@ -1023,10 +1199,20 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
y4 = _SSE_ADD(y4, _SSE_MUL(q4,h2));
}
#ifdef HAVE_SSE_INTRINSICS
h1 = _SSE_SET1(hh[nb-1]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set1_pd(hh[nb-1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set1_ps(hh[nb-1]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h1 = _SSE_SET(hh[nb-1], hh[nb-1]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set_pd(hh[nb-1], hh[nb-1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set_ps(hh[nb-1], hh[nb-1]);
#endif
#endif
q1 = _SSE_LOAD(&q[nb*ldq]);
x1 = _SSE_ADD(x1, _SSE_MUL(q1,h1));
......@@ -1040,14 +1226,30 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
// Rank-2 update of Q [12 x nb+1]
/////////////////////////////////////////////////////
#ifdef HAVE_SSE_INTRINSICS
__SSE_DATATYPE tau1 = _SSE_SET1(hh[0]);
__SSE_DATATYPE tau2 = _SSE_SET1(hh[ldh]);
__SSE_DATATYPE vs = _SSE_SET1(s);
#ifdef DOUBLE_PRECISION_REAL
__SSE_DATATYPE tau1 = _mm_set1_pd(hh[0]);
__SSE_DATATYPE tau2 = _mm_set1_pd(hh[ldh]);
__SSE_DATATYPE vs = _mm_set1_pd(s);
#endif
#ifdef SINGLE_PRECISION_REAL
__SSE_DATATYPE tau1 = _mm_set1_ps(hh[0]);
__SSE_DATATYPE tau2 = _mm_set1_ps(hh[ldh]);
__SSE_DATATYPE vs = _mm_set1_ps(s);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
__SSE_DATATYPE tau1 = _SSE_SET(hh[0], hh[0]);
__SSE_DATATYPE tau2 = _SSE_SET(hh[ldh], hh[ldh]);
__SSE_DATATYPE vs = _SSE_SET(s, s);
#ifdef DOUBLE_PRECISION_REAL
__SSE_DATATYPE tau1 = _mm_set_pd(hh[0], hh[0]);
__SSE_DATATYPE tau2 = _mm_set_pd(hh[ldh], hh[ldh]);
__SSE_DATATYPE vs = _mm_set_pd(s, s);
#endif
#ifdef SINGLE_PRECISION_REAL
__SSE_DATATYPE tau1 = _mm_set_ps(hh[0], hh[0]);
__SSE_DATATYPE tau2 = _mm_set_ps(hh[ldh], hh[ldh]);
__SSE_DATATYPE vs = _mm_set_ps(s, s);
#endif
#endif
#ifdef HAVE_SSE_INTRINSICS
......@@ -1086,10 +1288,20 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
_SSE_STORE(&q[3*offset],q4);
#ifdef HAVE_SSE_INTRINSICS
h2 = _SSE_SET1(hh[ldh+1]);
#ifdef DOUBLE_PRECISION_REAL
h2 = _mm_set1_pd(hh[ldh+1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h2 = _mm_set1_ps(hh[ldh+1]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h2 = _SSE_SET(hh[ldh+1], hh[ldh+1]);
#ifdef DOUBLE_PRECISION_REAL
h2 = _mm_set_pd(hh[ldh+1], hh[ldh+1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h2 = _mm_set_ps(hh[ldh+1], hh[ldh+1]);
#endif
#endif
q1 = _SSE_LOAD(&q[ldq]);
......@@ -1108,12 +1320,24 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
for (i = 2; i < nb; i++)
{
#ifdef HAVE_SSE_INTRINSICS
h1 = _SSE_SET1(hh[i-1]);
h2 = _SSE_SET1(hh[ldh+i]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set1_pd(hh[i-1]);
h2 = _mm_set1_pd(hh[ldh+i]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set1_ps(hh[i-1]);
h2 = _mm_set1_ps(hh[ldh+i]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h1 = _SSE_SET(hh[i-1], hh[i-1]);
h2 = _SSE_SET(hh[ldh+i], hh[ldh+i]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set_pd(hh[i-1], hh[i-1]);
h2 = _mm_set_pd(hh[ldh+i], hh[ldh+i]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set1_ps(hh[i-1], hh[i-1]);
h2 = _mm_set1_ps(hh[ldh+i], hh[ldh+i]);
#endif
#endif
......@@ -1131,10 +1355,20 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
_SSE_STORE(&q[(i*ldq)+3*offset],q4);
}
#ifdef HAVE_SSE_INTRINSICS
h1 = _SSE_SET1(hh[nb-1]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set1_pd(hh[nb-1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set1_ps(hh[nb-1]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
h1 = _SSE_SET(hh[nb-1], hh[nb-1]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set_pd(hh[nb-1], hh[nb-1]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set_ps(hh[nb-1], hh[nb-1]);
#endif
#endif
q1 = _SSE_LOAD(&q[nb*ldq]);
......@@ -1200,10 +1434,20 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
__SSE_DATATYPE x3 = _SSE_LOAD(&q[ldq+2*offset]);
#ifdef HAVE_SSE_INTRINSICS
__SSE_DATATYPE h1 = _SSE_SET1(hh[ldh+1]);
#ifdef DOUBLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set1_pd(hh[ldh+1]);
#endif
#ifdef SINGLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set1_ps(hh[ldh+1]);
#endif
#endif
#ifdef HAVE_SPARC64_SSE
__SSE_DATATYPE h1 = _SSE_SET(hh[ldh+1], hh[ldh+1]);
#ifdef DOUBLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set_pd(hh[ldh+1], hh[ldh+1]);
#endif
#ifdef SINGLE_PRECISION_REAL
__SSE_DATATYPE h1 = _mm_set_ps(hh[ldh+1], hh[ldh+1]);
#endif
#endif
__SSE_DATATYPE h2;
......@@ -1216,12 +1460,24 @@ void double_hh_trafo_real_sparc64_2hv_single(float* q, float* hh, int* pnb, int*
for(i = 2; i < nb; i++)
{
#ifdef HAVE_SSE_INTRINSICS
h1 = _SSE_SET1(hh[i-1]);
h2 = _SSE_SET1(hh[ldh+i]);
#ifdef DOUBLE_PRECISION_REAL
h1 = _mm_set1_pd(hh[i-1]);
h2 = _mm_set1_pd(hh[ldh+i]);
#endif
#ifdef SINGLE_PRECISION_REAL
h1 = _mm_set1_ps(hh[i-1]);
h2 = _mm_set1_ps(hh[ldh+i]);