From c4b4aad25e707fb68d0eab521dd963f441bc50f5 Mon Sep 17 00:00:00 2001
From: bramas <berenger.bramas@inria.fr>
Date: Wed, 3 Sep 2014 12:29:09 +0200
Subject: [PATCH] Make it compile

---
 Src/Kernels/P2P/FP2PAvx.h   |  8 --------
 Src/Kernels/P2P/FP2PSse.hpp |  8 --------
 Src/Utils/FMath.hpp         | 12 ++++++------
 3 files changed, 6 insertions(+), 22 deletions(-)

diff --git a/Src/Kernels/P2P/FP2PAvx.h b/Src/Kernels/P2P/FP2PAvx.h
index 007bdcee6..57a68679d 100644
--- a/Src/Kernels/P2P/FP2PAvx.h
+++ b/Src/Kernels/P2P/FP2PAvx.h
@@ -25,8 +25,6 @@ static void FullMutual(ContainerClass* const FRestrict inTargets, ContainerClass
     FReal*const targetsForcesZ = inTargets->getForcesZ();
     FReal*const targetsPotentials = inTargets->getPotentials();
 
-
-    const __m256d mOne = _mm256_set1_pd(1.0);
     //P2P between target cells and others ones
     for(int idxNeighbors = 0 ; idxNeighbors < limiteNeighbors ; ++idxNeighbors){
         if( inNeighbors[idxNeighbors] ){
@@ -196,8 +194,6 @@ static void FullRemote(ContainerClass* const FRestrict inTargets, ContainerClass
     FReal*const targetsForcesZ = inTargets->getForcesZ();
     FReal*const targetsPotentials = inTargets->getPotentials();
 
-    const __m256d mOne = _mm256_set1_pd(1.0);
-
     for(int idxNeighbors = 0 ; idxNeighbors < limiteNeighbors ; ++idxNeighbors){
         if( inNeighbors[idxNeighbors] ){
             const int nbParticlesSources = (inNeighbors[idxNeighbors]->getNbParticles()+3)/4;
@@ -266,8 +262,6 @@ static void FullMutual(ContainerClass* const FRestrict inTargets, ContainerClass
     FReal*const targetsForcesZ = inTargets->getForcesZ();
     FReal*const targetsPotentials = inTargets->getPotentials();
 
-    const __m256 mOne = _mm256_set1_ps(1.0);
-
     for(int idxNeighbors = 0 ; idxNeighbors < limiteNeighbors ; ++idxNeighbors){
         if( inNeighbors[idxNeighbors] ){
             const int nbParticlesSources = (inNeighbors[idxNeighbors]->getNbParticles()+7)/8;
@@ -432,8 +426,6 @@ static void FullRemote(ContainerClass* const FRestrict inTargets, ContainerClass
     FReal*const targetsForcesZ = inTargets->getForcesZ();
     FReal*const targetsPotentials = inTargets->getPotentials();
 
-    const __m256 mOne = _mm256_set1_ps(1.0);
-
     for(int idxNeighbors = 0 ; idxNeighbors < limiteNeighbors ; ++idxNeighbors){
         if( inNeighbors[idxNeighbors] ){
             const int nbParticlesSources = (inNeighbors[idxNeighbors]->getNbParticles()+7)/8;
diff --git a/Src/Kernels/P2P/FP2PSse.hpp b/Src/Kernels/P2P/FP2PSse.hpp
index 4f330b911..ee33367ba 100644
--- a/Src/Kernels/P2P/FP2PSse.hpp
+++ b/Src/Kernels/P2P/FP2PSse.hpp
@@ -26,8 +26,6 @@ static void FullMutual(ContainerClass* const FRestrict inTargets, ContainerClass
     FReal*const targetsForcesZ = inTargets->getForcesZ();
     FReal*const targetsPotentials = inTargets->getPotentials();
 
-    const __m128d mOne = _mm_set1_pd(1.0);
-
     for(int idxNeighbors = 0 ; idxNeighbors < limiteNeighbors ; ++idxNeighbors){
         if( inNeighbors[idxNeighbors] ){
             const int nbParticlesSources = (inNeighbors[idxNeighbors]->getNbParticles()+1)/2;
@@ -191,8 +189,6 @@ static void FullRemote(ContainerClass* const FRestrict inTargets, ContainerClass
     FReal*const targetsForcesZ = inTargets->getForcesZ();
     FReal*const targetsPotentials = inTargets->getPotentials();
 
-    const __m128d mOne = _mm_set1_pd(1.0);
-
     for(int idxNeighbors = 0 ; idxNeighbors < limiteNeighbors ; ++idxNeighbors){
         if( inNeighbors[idxNeighbors] ){
             const int nbParticlesSources = (inNeighbors[idxNeighbors]->getNbParticles()+1)/2;
@@ -261,8 +257,6 @@ static void FullMutual(ContainerClass* const FRestrict inTargets, ContainerClass
     FReal*const targetsForcesZ = inTargets->getForcesZ();
     FReal*const targetsPotentials = inTargets->getPotentials();
 
-    const __m128 mOne = _mm_set1_ps(1.0);
-
     for(int idxNeighbors = 0 ; idxNeighbors < limiteNeighbors ; ++idxNeighbors){
         if( inNeighbors[idxNeighbors] ){
             const int nbParticlesSources = (inNeighbors[idxNeighbors]->getNbParticles()+3)/4;
@@ -426,8 +420,6 @@ static void FullRemote(ContainerClass* const FRestrict inTargets, ContainerClass
     FReal*const targetsForcesZ = inTargets->getForcesZ();
     FReal*const targetsPotentials = inTargets->getPotentials();
 
-    const __m128 mOne = _mm_set1_ps(1.0);
-
     for(int idxNeighbors = 0 ; idxNeighbors < limiteNeighbors ; ++idxNeighbors){
         if( inNeighbors[idxNeighbors] ){
             const int nbParticlesSources = (inNeighbors[idxNeighbors]->getNbParticles()+3)/4;
diff --git a/Src/Utils/FMath.hpp b/Src/Utils/FMath.hpp
index a93ef3e68..0d7618d0f 100755
--- a/Src/Utils/FMath.hpp
+++ b/Src/Utils/FMath.hpp
@@ -241,7 +241,7 @@ struct FMath{
     }
 
     static __m128d Rsqrt(const __m128d inV){
-        return FMath::One<__m128d>() / _mm_sqrt_pd(inV);
+        return _mm_set_pd1(1.0) / _mm_sqrt_pd(inV);
     }
 #endif
 #ifdef ScalFMM_USE_AVX
@@ -258,7 +258,7 @@ struct FMath{
     }
 
     static __m256d Rsqrt(const __m256d inV){
-        return FMath::One<__m256d>() / _mm256_sqrt_pd(inV);
+        return _mm256_set_pd1(1.0) / _mm256_sqrt_pd(inV);
     }
 #endif
 
@@ -488,10 +488,10 @@ inline __m128 FMath::One<__m128>(){
     return _mm_set_ps1(1.0);
 }
 
-//template <>
-//__m128d FMath::One<__m128d>(){
-//    return _mm_set_pd1(1.0);
-//}
+template <>
+inline __m128d FMath::One<__m128d>(){
+    return _mm_set_pd1(1.0);
+}
 
 template <>
 inline __m128 FMath::Zero<__m128>(){
-- 
GitLab