This is a show stopper for me because the code is the same for all platform, I can not use C code because I will have to rewrite the entire code base,
basically I have a set of Macros the defined instisics
fo exmple, for SSE it is like this
- Code: Select all
#define simd_type __m128
#define simd_env dgInt32
#define simd_add_v(a,b) _mm_add_ps (a, b)
.....
for x87 it is liek this
- Code: Select all
#define simd_type dVector
#define simd_env int
#define simd_add_v(a,b) (a + b)
for altivet it is
- Code: Select all
#define simd_type vFloat
#define simd_char vUInt8
#define simd_add_v(a,b) vec_add (a, b)
so for me to change that to C I will have to chaneg a lot of stuff, maybe I am doing something wrong but I I wrote a test function in CPP I get compiler error, the same function in C compile fine.
It is still better than the Iphone SDK 2.2.1 because the new SDK 3.0 generate code for universal binary ARM6 and ARM7
so maybe the auto vectorization use the neon stuff, untill them I can not use the intrinsics for arm7 cpus