This code was never used and vectorization is handled by Orc anyway. --- src/.gitignore | 1 - src/Makefile.am | 8 +--- src/pulsecore/vector.h | 98 ----------------------------------------------- src/tests/vector-test.c | 83 --------------------------------------- 4 files changed, 1 insertions(+), 189 deletions(-) delete mode 100644 src/pulsecore/vector.h delete mode 100644 src/tests/vector-test.c diff --git a/src/.gitignore b/src/.gitignore index e7e5880..4a66969 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -69,5 +69,4 @@ thread-mainloop-test thread-test usergroup-test utf8-test -vector-test volume-test diff --git a/src/Makefile.am b/src/Makefile.am index edeb6e3..a5cfe94 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -219,7 +219,6 @@ TESTS = \ mainloop-test \ strlist-test \ close-test \ - vector-test \ memblockq-test \ channelmap-test \ thread-mainloop-test \ @@ -407,11 +406,6 @@ volume_test_CFLAGS = $(AM_CFLAGS) volume_test_LDADD = $(AM_LDADD) libpulse.la libpulsecommon- at PA_MAJORMINOR@.la volume_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) -vector_test_SOURCES = tests/vector-test.c -vector_test_CFLAGS = $(AM_CFLAGS) -vector_test_LDADD = $(AM_LDADD) libpulsecore- at PA_MAJORMINOR@.la libpulse.la libpulsecommon- at PA_MAJORMINOR@.la -vector_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) - channelmap_test_SOURCES = tests/channelmap-test.c channelmap_test_CFLAGS = $(AM_CFLAGS) channelmap_test_LDADD = $(AM_LDADD) libpulse.la libpulsecommon- at PA_MAJORMINOR@.la @@ -570,7 +564,7 @@ libpulsecommon_ at PA_MAJORMINOR@_la_SOURCES = \ pulsecore/lock-autospawn.c pulsecore/lock-autospawn.h \ pulsecore/log.c pulsecore/log.h \ pulsecore/ratelimit.c pulsecore/ratelimit.h \ - pulsecore/macro.h pulsecore/vector.h \ + pulsecore/macro.h \ pulsecore/mcalign.c pulsecore/mcalign.h \ pulsecore/memblock.c pulsecore/memblock.h \ pulsecore/memblockq.c pulsecore/memblockq.h \ diff --git a/src/pulsecore/vector.h b/src/pulsecore/vector.h deleted file mode 100644 index 2af79ec..0000000 --- a/src/pulsecore/vector.h +++ /dev/null @@ -1,98 +0,0 @@ -/*** - This file is part of PulseAudio. - - Copyright 2004-2006 Lennart Poettering - Copyright 2006 Pierre Ossman <ossman at cendio.se> for Cendio AB - - PulseAudio is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 2.1 of the License, - or (at your option) any later version. - - PulseAudio is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with PulseAudio; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - USA. -***/ - -#include <inttypes.h> - -/* First, define HAVE_VECTOR if we have the gcc vector extensions at all */ -#if defined(__SSE2__) - /* || defined(__ALTIVEC__)*/ -#define HAVE_VECTOR - - -/* This is supposed to be portable to different SIMD instruction - * sets. We define vector types for different base types: uint8_t, - * int16_t, int32_t, float. The vector type is a union. The fields .i, - * .u, .f are arrays for accessing the separate elements of a - * vector. .v is a gcc vector type of the right format. .m is the - * vector in the type the SIMD extension specific intrinsic API - * expects. PA_xxx_VECTOR_SIZE is the size of the - * entries. PA_xxxx_VECTOR_MAKE constructs a gcc vector variable with - * the same value in all elements. */ - -#ifdef __SSE2__ - -#include <xmmintrin.h> -#include <emmintrin.h> - -#define PA_UINT8_VECTOR_SIZE 16 -#define PA_INT16_VECTOR_SIZE 8 -#define PA_INT32_VECTOR_SIZE 4 -#define PA_FLOAT_VECTOR_SIZE 4 - -#define PA_UINT8_VECTOR_MAKE(x) (pa_v16qi) { x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x } -#define PA_INT16_VECTOR_MAKE(x) (pa_v8hi) { x, x, x, x, x, x, x, x } -#define PA_INT32_VECTOR_MAKE(x) (pa_v4si) { x, x, x, x } -#define PA_FLOAT_VECTOR_MAKE(x) (pa_v4fi) { x, x, x, x } - -#endif - -/* uint8_t vector */ -typedef uint8_t pa_v16qi __attribute__ ((vector_size (PA_UINT8_VECTOR_SIZE * sizeof(uint8_t)))); -typedef union pa_uint8_vector { - uint8_t u[PA_UINT8_VECTOR_SIZE]; - pa_v16qi v; -#ifdef __SSE2__ - __m128i m; -#endif -} pa_uint8_vector_t; - -/* int16_t vector*/ -typedef int16_t pa_v8hi __attribute__ ((vector_size (PA_INT16_VECTOR_SIZE * sizeof(int16_t)))); -typedef union pa_int16_vector { - int16_t i[PA_INT16_VECTOR_SIZE]; - pa_v8hi v; -#ifdef __SSE2__ - __m128i m; -#endif -} pa_int16_vector_t; - -/* int32_t vector */ -typedef int32_t pa_v4si __attribute__ ((vector_size (PA_INT32_VECTOR_SIZE * sizeof(int32_t)))); -typedef union pa_int32_vector { - int32_t i[PA_INT32_VECTOR_SIZE]; - pa_v4si v; -#ifdef __SSE2__ - __m128i m; -#endif -} pa_int32_vector_t; - -/* float vector */ -typedef float pa_v4sf __attribute__ ((vector_size (PA_FLOAT_VECTOR_SIZE * sizeof(float)))); -typedef union pa_float_vector { - float f[PA_FLOAT_VECTOR_SIZE]; - pa_v4sf v; -#ifdef __SSE2__ - __m128 m; -#endif -} pa_float_vector_t; - -#endif diff --git a/src/tests/vector-test.c b/src/tests/vector-test.c deleted file mode 100644 index 7494348..0000000 --- a/src/tests/vector-test.c +++ /dev/null @@ -1,83 +0,0 @@ -/*** - This file is part of PulseAudio. - - Copyright 2009 Lennart Poettering - - PulseAudio is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - PulseAudio is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with PulseAudio; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - USA. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <pulsecore/vector.h> -#include <pulsecore/log.h> - -int main(int argc, char *argv[]) { - -#ifdef __SSE2__ - pa_int16_vector_t input, zero; - pa_int32_vector_t unpacked1, unpacked2; - pa_int32_vector_t volume1, volume2, volume1_hi, volume1_lo, volume2_hi, volume2_lo, reduce, mask; - pa_int16_vector_t output; - - unsigned u; - - zero.v = PA_INT16_VECTOR_MAKE(0); - reduce.v = PA_INT32_VECTOR_MAKE(0x10000); - volume1.v = volume2.v = PA_INT32_VECTOR_MAKE(0x10000*2+7); - mask.v = PA_INT32_VECTOR_MAKE(0xFFFF); - - volume1_lo.m = _mm_and_si128(volume1.m, mask.m); - volume2_lo.m = _mm_and_si128(volume2.m, mask.m); - volume1_hi.m = _mm_srli_epi32(volume1.m, 16); - volume2_hi.m = _mm_srli_epi32(volume2.m, 16); - - input.v = PA_INT16_VECTOR_MAKE(32000); - - for (u = 0; u < PA_INT16_VECTOR_SIZE; u++) - pa_log("input=%i\n", input.i[u]); - - unpacked1.m = _mm_unpackhi_epi16(zero.m, input.m); - unpacked2.m = _mm_unpacklo_epi16(zero.m, input.m); - - for (u = 0; u < PA_INT32_VECTOR_SIZE; u++) - pa_log("unpacked1=%i\n", unpacked1.i[u]); - - unpacked1.v /= reduce.v; - unpacked2.v /= reduce.v; - - for (u = 0; u < PA_INT32_VECTOR_SIZE; u++) - pa_log("unpacked1=%i\n", unpacked1.i[u]); - - for (u = 0; u < PA_INT32_VECTOR_SIZE; u++) - pa_log("volume1=%i\n", volume1.i[u]); - - unpacked1.v = (unpacked1.v * volume1_lo.v) / reduce.v + unpacked1.v * volume1_hi.v; - unpacked2.v = (unpacked2.v * volume2_lo.v) / reduce.v + unpacked2.v * volume2_hi.v; - - for (u = 0; u < PA_INT32_VECTOR_SIZE; u++) - pa_log("unpacked1=%i\n", unpacked1.i[u]); - - output.m = _mm_packs_epi32(unpacked1.m, unpacked2.m); - - for (u = 0; u < PA_INT16_VECTOR_SIZE; u++) - pa_log("output=%i\n", output.i[u]); - -#endif - - return 0; -} -- 1.7.4.1