android – NEON内在类型在C中工作但在C中抛出无效参数错误

android – NEON内在类型在C中工作但在C中抛出无效参数错误,第1张

概述我在 Android NDK中使用NEON内在函数和内联汇编时遇到问题. 当使用GCC 4.6和4.8编译C代码时,像float32x4_t这样的NEON类型给出了“无效参数”错误,但是,如果编译为C,则代码编译正常. 例如,这里有一些代码: inline float32x4_t VectorAdd(float32x4_t a, float32x4_t b){ return vaddq_f3 我在 Android NDK中使用NEON内在函数和内联汇编时遇到问题.

当使用GCC 4.6和4.8编译C代码时,像float32x4_t这样的NEON类型给出了“无效参数”错误,但是,如果编译为C,则代码编译正常.

例如,这里有一些代码:

inline float32x4_t VectorAdd(float32x4_t a,float32x4_t b){  return vaddq_f32(a,b);}

我在这里得到两个错误:

>在函数本身:无效的参数’候选人是:? vaddq_f32(?,?)’.
>调用函数的位置:无效参数’候选者是:? VectorAdd(?,?)’.

所有NEON类型都显示为?在错误消息中,正确显示非NEON类型.

同样奇怪的是,只使用NEON类型作为返回值的函数(例如,vld1q_f32和我的抽象包装器)不会受到错误的影响.

我在GCC Explorer 4.6和4.5中尝试了相同的代码,并且没有错误,并且生成了正确和优化的程序集,它不适用于AndroID NDK.

解决方法 作为解决方法,在Window / Preferences / C/C++ / Code Analysis中,将“InvalID Arguments”错误的严重性设置为Warning,以便这些虚假错误不会阻止启动应用程序. 总结

以上是内存溢出为你收集整理的android – NEON内在类型在C中工作但在C中抛出无效参数错误全部内容,希望文章能够帮你解决android – NEON内在类型在C中工作但在C中抛出无效参数错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1138257.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存