I’m using NEON SIMD instruction to write a part of an Android app, targeting Cortex A8 processors. According to this reference manual, NEON supports 16-bit and 32-bit floats, that is float16_t and float32_t. When I tried using float16_t and all of its associated vector types, I got an error saying that this type is undeclared. When looking through contents of arm_neon.h, I found that this type is indeed undeclared.
Is there a reason for this? ARM’s Advanced SIMD obviously supports such data types and instructions. Has anyone encountered / resolved this? Is it documented anywhere?
Can you specify an example section in the document you linked where these 16 bit float operations are called out? I see quite a few 16 bit integer operations defined. Are you using ARM’s compiler or gcc? And are you talking about SIMD or NEON?
“NEON™ technology builds on the concept of SIMD with a dedicated module to provide 128-bit wide vector operations, compared to the 32bit wide SIMD in the ARMv6 architecture.”
EDIT:
I tried this with no compiler complaints:
using this command line:
Using codesourcery lite 2011.03