Thursday, February 16, 2012

[android-developers] How to solve bad instruction `vadd.i16 q0,q0,q0' when attempting to check gcc for neon instruction

Checking gcc supports failed for neon instruction vadd.i16 q0,q0,q0
test.c

int main ()
{
__asm__("vadd.i16 q0, q0, q0"); return 0;
}

arm-linux-androideabi-gcc test.c
/tmp/ccfc8m0G.s: Assembler messages:
/tmp/ccfc8m0G.s:24: Error: bad instruction `vadd.i16 q0,q0,q0'

Tried with flags -mcpu=cortex-a8 -mfpu=neon but stil no success

Above code was used to test gcc support for neon instruction.

Actually i am trying to build x264 with NEON support for ARM
platformAfter running configure script
x264 config log file contains

Command line options: "--cross-prefix=arm-linux-androideabi-" "--
enable-pic" "--extra- cflags=-mcpu=cortex-a8" "--host=arm-linux"

checking whether arm-linux-androideabi-gcc works... yes
checking whether arm-linux-androideabi-gcc supports for( int i = 0; i
< 9; i++ ); with -std=gnu99... yes
checking whether arm-linux-androideabi-gcc supports __asm__("rev ip,
ip");... yes
checking whether arm-linux-androideabi-gcc supports __asm__("movt r0,
#0");... yes
checking whether arm-linux-androideabi-gcc supports __asm__("vadd.i16
q0, q0, q0");... no

arm-linux-androideabi-gcc conftest.c -Wall -I. -I$(SRCPATH) -
mcpu=cortex-a8 -std=gnu99 -lm -o conftest
E:\cygwin\tmp\ccVtVI1i.s: Assembler messages:
E:\cygwin\tmp\ccVtVI1i.s:24: Error: bad instruction `vadd.i16
q0,q0,q0'
--------------------------------------------------
Failed program was:
--------------------------------------------------
int main () { __asm__("vadd.i16 q0, q0, q0"); return 0; }
--------------------------------------------------


config.h contains

#define HAVE_MALLOC_H 1
#define HAVE_ARMV6 1
#define HAVE_ARMV6T2 1
#define ARCH_ARM 1
#define SYS_LINUX 1
#define HAVE_VECTOREXT 1
#define fseek fseeko
#define ftell ftello
#define HAVE_GPL 1
#define HAVE_INTERLACED 1
#define HAVE_ALTIVEC 0
#define HAVE_ALTIVEC_H 0
#define HAVE_MMX 0
#define HAVE_NEON 0
#define HAVE_BEOSTHREAD 0
#define HAVE_POSIXTHREAD 0
#define HAVE_WIN32THREAD 0
#define HAVE_THREAD 0
#define HAVE_LOG2F 0
#define HAVE_VISUALIZE 0
#define HAVE_SWSCALE 0
#define HAVE_LAVF 0
#define HAVE_FFMS 0
#define HAVE_GPAC 0
#define HAVE_GF_MALLOC 0
#define HAVE_AVS 0
#define HAVE_CPU_COUNT 0


Running make command build x264 static lib based on above config.h
which contains HAVE_NEON 0


**Compiler Version**

arm-linux-androideabi-gcc -v
Using built-in specs.
Target: arm-linux-androideabi
Configured with: /tmp/ndk-digit/src/build/../gcc/gcc-4.4.3/configure --
prefix=/usr/local/google/digit/repo/opensource/ndk/toolchains/arm-
linux-androideabi-4.4.3/prebuilt/windows --target=arm-linux-
androideabi --host=i586-mingw32msvc --build=x86_64-linux-gnu --with-
gnu-as --with-gnu-ld --enable-languages=c,c++ --with-gmp=/tmp/ndk-
digit/build/toolchain/temp-install --with-mpfr=/tmp/ndk-digit/build/
toolchain/temp-install --disable-libssp --enable-threads --disable-nls
--disable-libmudflap --disable
-libgomp --disable-libstdc__-v3 --disable-sjlj-exceptions --disable-
shared --disable-tls --with-float=soft --with-fpu=vfp --with-
arch=armv5te --enable-target-optspace --enable-initfini-array --
disable-nls --prefix=/usr/local/google/digit/repo/opensource/ndk/
toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows --with-
sysroot=/usr/local/google/digit/repo/opensource/ndk/toolchains/arm-
linux-androideabi-4.4.3/prebuilt/windows/sysroot --with-binutils-
version=2.20.1 --with-mpfr-version=2.4.1 --with
-gmp-version=4.2.4 --with-gcc-version=4.4.3 --with-gdb-version=6.6 --
with-arch=armv5te --program-transform-name='s,^,arm-linux-
androideabi-,'
Thread model: posix
gcc version 4.4.3 (GCC)

Goal is to utilize neon enabled ARM processor to boost x264 encoder
performance...

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

No comments:

Post a Comment