2011/9/29 Feng Wei feng.wei@linaro.org:
When I configure the libav, I got -- "... C compiler gcc ARCH arm (generic) big-endian no runtime cpu detection no ARMv5TE enabled yes ARMv6 enabled yes ARMv6T2 enabled yes ARM VFP enabled yes IWMMXT enabled no NEON enabled no debug symbols yes optimize for size no optimizations yes ..."
and i find the log info "... check_asm neon "vadd.i16 q0, q0, q0" check_as BEGIN /tmp/ffconf.55xwYuP7.c 1 void foo(void){ __asm__ volatile("vadd.i16 q0, q0, q0"); } END /tmp/ffconf.55xwYuP7.c gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -c -o /tmp/ffconf.3j1rIVOW.o /tmp/ffconf.55xwYuP7.c /tmp/cc9mWCWX.s: Assembler messages: /tmp/cc9mWCWX.s:29: Error: selected FPU does not support instruction -- `vadd.i16 q0,q0,q0' ..."
This means your compiler doesn't default to NEON, and you didn't add -mfpu=neon manually. Try passing --extra-cflags=-mfpu=neon to configure.
Were your benchmarks done without NEON enabled? I get almost exactly the same speed on Beagle-xm and Panda, both at 1GHz.