Im компилирования следующий ARM код NEON встроенные функции тест (в Eclipse, с Android NDK):Constant вне диапазона с неоновой встроенными функциями
void foo(uint64_t* Res)
{
uint64_t x = 0xff12aa8902acf78dULL;
uint64x1_t a,b;
a = vld1_u64 (&x);
b = vext_u64 (a, a, 3);
vst1_u64 (Res,b);
}
, но я получаю следующее сообщение об ошибке компилятора:
/home/developer/adt/ndk/ndk-build all
Install : libneon_test.so => libs/armeabi/libneon_test.so
Compile thumb : neon_test <= neon.c
jni/neon.c: In function 'foo':
jni/neon.c:17:1: error: constant out of range
make: *** [obj/local/armeabi-v7a/objs/neon_test/neon.o] Error 1`
Строка 17 - последняя }
скобка foo()
.
Есть ли у кого-нибудь идеи, что может быть причиной этой странной ошибки?
, о чем постоянно говорит речь? Строка 17 кода, который вы опубликовали, - это} скобка. Это значение 3? – ThePosey
Это проблема, я тоже не знаю. Компилятор всегда указывает эту ошибку на последнюю скобку, которая не имеет смысла. Я думаю, что это может быть ошибка GCC с NEON, поэтому я, возможно, искал какой-нибудь обходной путь. – NumberFour
Я думаю, что удаленный ответ ThePosey находится на правильном пути. Что вы ожидаете от 'vext_u64 (a, a, 3)' делать? –