summaryrefslogtreecommitdiff
path: root/libs/pbd
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-05-12 21:07:09 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2015-06-29 14:18:13 -0400
commit6410aa896f974002f8539ee3ca2f70bf66c0a0af (patch)
tree7ef2a62226a6ac5927c563efe21ea6d1ecc0da72 /libs/pbd
parente2a76746e65c42fd10a892ffd82300f1cf776ac6 (diff)
Added optimized AVX function for sample processing
Added AVX versions of existing 5 SSE functions. Added 6th AVX function to copy vectors which is 1.5 times faster then memcpy. Data consistency and validness is fully tested after processing with new AVX functions on aligned and non aligned buffers.
Diffstat (limited to 'libs/pbd')
-rw-r--r--libs/pbd/pbd/fpu.h4
-rw-r--r--libs/pbd/wscript1
2 files changed, 4 insertions, 1 deletions
diff --git a/libs/pbd/pbd/fpu.h b/libs/pbd/pbd/fpu.h
index 6627951e9f..260cf4db85 100644
--- a/libs/pbd/pbd/fpu.h
+++ b/libs/pbd/pbd/fpu.h
@@ -30,7 +30,8 @@ class LIBPBD_API FPU {
HasFlushToZero = 0x1,
HasDenormalsAreZero = 0x2,
HasSSE = 0x4,
- HasSSE2 = 0x8
+ HasSSE2 = 0x8,
+ HasAVX = 0x10
};
public:
@@ -41,6 +42,7 @@ class LIBPBD_API FPU {
bool has_denormals_are_zero () const { return _flags & HasDenormalsAreZero; }
bool has_sse () const { return _flags & HasSSE; }
bool has_sse2 () const { return _flags & HasSSE2; }
+ bool has_avx () const { return _flags & HasAVX; }
private:
Flags _flags;
diff --git a/libs/pbd/wscript b/libs/pbd/wscript
index 8f947fbb26..27617adfa9 100644
--- a/libs/pbd/wscript
+++ b/libs/pbd/wscript
@@ -145,6 +145,7 @@ def build(bld):
if bld.env['build_target'] == 'x86_64':
obj.defines += [ 'USE_X86_64_ASM' ]
if bld.env['build_target'] == 'mingw':
+ obj.defines += [ 'NO_POSIX_MEMALIGN' ]
obj.source += [ 'windows_special_dirs.cc' ]
obj.uselib += ' OLE'