Improve x86 instrinsic implementation.
authorErik de Castro Lopo <erikd@mega-nerd.com>
Thu, 3 Oct 2013 15:38:00 +0000 (01:38 +1000)
committerErik de Castro Lopo <erikd@mega-nerd.com>
Thu, 3 Oct 2013 15:41:48 +0000 (01:41 +1000)
commitecd0acba75e7961b60465c5ee3b6876b407803ca
treeb6a1dfa919eab7b35782f5f75ad9a29807873639
parentbd6a920e40b33d7640641aafd02b3d48a08fc4b3
Improve x86 instrinsic implementation.

* Splits lpc_x86intrin.c to lpc_intrin_sse.c and lpc_intrin_sse2.c
* Add FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2()
  function to lpc_intrin_sse2.c
* Add lpc_intrin_sse41.c with two ..._wide_intrin_sse41() functions
  (useful for 24-bit en-/decoding)
* Add precompute_partition_info_sums_intrin_sse2() / ...ssse3() and
  disables precompute_partition_info_sums_32bit_asm_ia32_().
  SSE2 version uses 4 SSE2 instructions instead of 1 SSSE3 instruction
  PABSD so it is slightly slower.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
16 files changed:
include/share/compat.h
src/libFLAC/Makefile.am
src/libFLAC/Makefile.lite
src/libFLAC/include/private/Makefile.am
src/libFLAC/include/private/lpc.h
src/libFLAC/include/private/stream_encoder.h [new file with mode: 0644]
src/libFLAC/libFLAC_dynamic.vcproj
src/libFLAC/libFLAC_static.vcproj
src/libFLAC/lpc_intrin_sse.c [new file with mode: 0644]
src/libFLAC/lpc_intrin_sse2.c [new file with mode: 0644]
src/libFLAC/lpc_intrin_sse41.c [new file with mode: 0644]
src/libFLAC/lpc_x86intrin.c [deleted file]
src/libFLAC/stream_decoder.c
src/libFLAC/stream_encoder.c
src/libFLAC/stream_encoder_intrin_sse2.c [new file with mode: 0644]
src/libFLAC/stream_encoder_intrin_ssse3.c [new file with mode: 0644]