diff --git a/reco/L1/vectors/L1vec.h b/reco/L1/vectors/L1vec.h index 5c04fc2a4ffb0c69dd1faf9083496e35e28fcb35..901ab2f7fa3ac4f86346bebd928622095e6af2ca 100644 --- a/reco/L1/vectors/L1vec.h +++ b/reco/L1/vectors/L1vec.h @@ -6,5 +6,6 @@ #define L1vec_H #include "vectors/L1vecVc.h" +//#include "vectors/L1vecPseudo.h" #endif diff --git a/reco/L1/vectors/std_alloc.h b/reco/L1/vectors/std_alloc.h index fdd3503379b89c765738f3fe5035656407519b5c..d744dd1f1d8df4fb77c23dcd77ec4069f31cd375 100644 --- a/reco/L1/vectors/std_alloc.h +++ b/reco/L1/vectors/std_alloc.h @@ -6,12 +6,10 @@ #define STD_ALLOC_H // ---------------------- Allocator for using STL ------------------------ +#include <Vc/Vc> #include <limits> #include <vector> -#include "xmmintrin.h" - - namespace nsL1 { @@ -113,10 +111,10 @@ namespace nsL1 void* operator new(size_t size, void* ptr) { return ::operator new(size, ptr); } void* operator new[](size_t size, void* ptr) { return ::operator new(size, ptr); } - void* operator new(size_t size) { return _mm_malloc(size, 16); } - void* operator new[](size_t size) { return _mm_malloc(size, 16); } - void operator delete(void* ptr, size_t) { _mm_free(ptr); } - void operator delete[](void* ptr, size_t) { _mm_free(ptr); } + void* operator new(size_t size) { return Vc::malloc<T, Vc::AlignOnCacheline>(size / sizeof(T) + 1); } + void* operator new[](size_t size) { return Vc::malloc<T, Vc::AlignOnCacheline>(size / sizeof(T) + 1); } + void operator delete(void* ptr, size_t) { Vc::free(ptr); } + void operator delete[](void* ptr, size_t) { Vc::free(ptr); } }; // SimdAlloc // return that all specializations of this allocator are interchangeable