ARM-software / ComputeLibrary

The Compute Library is a set of computer vision and machine learning functions optimised for both Arm CPUs and GPUs using SIMD technologies.
MIT License
2.83k stars 774 forks source link

Why does extern ne10_foo(ne10_t bar) asm ("ne10_foo"); generate compiler error? #29

Closed ChuckNXP closed 7 years ago

ChuckNXP commented 7 years ago

I have downloaded and built the library but I cannot successfully compile an application even from the sample programs because of an error I get in the NE10_*.h header files. The simplest way I can display the error is to just try to compile it with gcc in its home directory. The header files called by NE10.h are located one level above in ../inc. The compiler seems to find them okay:

root@ls2088ardb:/home/chuck/ne10/projectNe10-Ne10-0c9f576/samples# gcc -std=c99 -I../inc NE10_sample_matrix_multiply.c In file included from ../inc/NE10.h:175:0, from NE10_sample_matrix_multiply.c:30: ../inc/NE10_math.h: In function 'ne10_addc_float_neon': ../inc/NE10_math.h:76:139: error: expected declaration specifiers before 'asm' extern ne10_result_t ne10_addc_float_neon (ne10_float32_t dst, ne10_float32_t src, const ne10_float32_t cst, ne10_uint32_t count) asm ("ne10_addc_float_neon");

My question is:

What is asm in this function prototype. I’m thinking this line of code declares an external assembly language function named “ne10_addc_float_neon” but why is that name repeated after the asm (macro?).

Is this supposed to work on the A72? The assembly instructions appear to be for the ARMv7 neon.

I’m sure I have some simple fundamental mistake with the build or link.

Matthew DuPuy suggested I post for Joe Savage here.

Thanks

AnthonyBarbier commented 7 years ago

Hi, This issue seems to be related to NE10 rather than the ARM Compute Library. Please report the bug on the NE10's project page: https://github.com/projectNe10/Ne10/issues