Frank Barchard 790e0634a8 Port HammingDistance_NEON 32 bit code to 64 bit
The 32 bit version of HammingDistance_NEON accumulates
using vertical add and paired adds, which takes 3 instructions
instead of 4.
The instructions are also portable between 32 and 64 bit.

Was BenchmarkHammingDistance_Opt (105 ms)
Now BenchmarkHammingDistance_Opt (90 ms)

TBR=kjellander@chromium.org
BUG=libyuv:701
TEST=BenchmarkHammingDistance

BenchmarkHammingDistance_Opt (90 ms)

Change-Id: If9e621e0bd2fe2492a1532056f8a1b451ba53d7e
Reviewed-on: https://chromium-review.googlesource.com/526365
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-06-07 01:04:35 +00:00
..
compare_common.cc Optimize Hamming Distance C code to do 64 bits at a time. 2017-05-12 17:53:52 +00:00
compare_gcc.cc Remove volatile from variables to improve performance 2017-05-09 18:14:21 +00:00
compare_neon64.cc Port HammingDistance_NEON 32 bit code to 64 bit 2017-06-07 01:04:35 +00:00
compare_neon.cc HammingDistance_NEON optimized looping 2017-06-07 00:09:59 +00:00
compare_win.cc Fix data races in libyuv::TestCpuFlag(). 2017-05-24 02:09:03 +00:00
compare.cc Optimize Hamming Distance C code to do 64 bits at a time. 2017-05-12 17:53:52 +00:00
convert_argb.cc Add MSA optimized I444/I400/J400/YUY2/UYVY to ARGB row functions 2017-02-21 23:22:07 +00:00
convert_from_argb.cc Add MSA optimized Interpolate/MergeUV/Misc functions 2017-02-23 01:42:22 +00:00
convert_from.cc Add I422ToRGB565 2017-04-17 17:51:17 +00:00
convert_jpeg.cc clang-format libyuv 2016-11-07 17:37:23 -08:00
convert_to_argb.cc add Intel Code Analyst markers 2017-01-13 15:50:24 -08:00
convert_to_i420.cc clang-format libyuv 2016-11-07 17:37:23 -08:00
convert.cc lint cleanup for convert RGB24ToI420 2017-03-09 10:32:23 +00:00
cpu_id.cc lint warning fixes for CpuID 2017-05-25 22:00:17 +00:00
mjpeg_decoder.cc scale warning fixes for unused parameters 2017-02-15 21:38:59 +00:00
mjpeg_validate.cc clang-format libyuv 2016-11-07 17:37:23 -08:00
planar_functions.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
rotate_any.cc Add MSA optimized rotate functions (used 16x16 transpose) 2017-01-13 15:50:02 +05:30
rotate_argb.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
rotate_common.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
rotate_dspr2.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
rotate_gcc.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
rotate_msa.cc Add MSA optimized rotate functions (used 16x16 transpose) 2017-01-13 15:50:02 +05:30
rotate_neon64.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
rotate_neon.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
rotate_win.cc make gflags command line parser optional 2017-03-14 01:52:52 +00:00
rotate.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
row_any.cc I422ToRGB565 fix for odd widths 2017-04-11 17:24:05 +00:00
row_common.cc HalfFloat SSE2/AVX2 optimized port scheduling. 2017-02-11 01:02:06 +00:00
row_dspr2.cc mips switch sgtu to sltu for clang in ndk r14 2017-05-02 21:34:13 +00:00
row_gcc.cc HalfFloat SSE2/AVX2 optimized port scheduling. 2017-02-11 01:02:06 +00:00
row_msa.cc Add MSA optimized Interpolate/MergeUV/Misc functions 2017-02-23 01:42:22 +00:00
row_neon64.cc clang-format libyuv 2016-11-07 17:37:23 -08:00
row_neon.cc clang-format libyuv 2016-11-07 17:37:23 -08:00
row_win.cc HalfFloat SSE2/AVX2 optimized port scheduling. 2017-02-11 01:02:06 +00:00
scale_any.cc ScaleDown odd functions adjust math so last pixel is half width source. 2017-06-06 01:37:26 +00:00
scale_argb.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
scale_common.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
scale_dspr2.cc Rename mips source files to dspr2. 2017-01-27 23:11:43 +00:00
scale_gcc.cc scale warning fixes for unused parameters 2017-02-15 21:38:59 +00:00
scale_msa.cc scale warning fixes for unused parameters 2017-02-15 21:38:59 +00:00
scale_neon64.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
scale_neon.cc scale warning fixes for unused parameters 2017-02-15 21:38:59 +00:00
scale_win.cc clang-format libyuv 2016-11-07 17:37:23 -08:00
scale.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
video_common.cc clang-format libyuv 2016-11-07 17:37:23 -08:00