【问题标题】:Wrong data type for _mm_rsqrt_pd()?_mm_rsqrt_pd() 的数据类型错误?
【发布时间】:2016-02-27 18:53:07
【问题描述】:

我是这些 Intrinsics 的新手,但想知道您是否可以帮助我。由于这个错误,我的程序无法编译。关于如何解决它的任何想法?我认为这应该可行,因为 r2_v 也是数据类型 __m128d

error: initializing '__m128d' (vector of 2 'double' values)
with an expression of incompatible type 'int'
                    __m128d r2inv_v = _mm_rsqrt_pd(r2_v);
                            ^         ~~~~~~~~~~~~~~~~~~

谢谢。

这是它出错的代码

__m128d r2_v = _mm_add_pd(_mm_add_pd(_mm_mul_pd(rx_v, rx_v),_mm_mul_pd(ry_v, ry_v)),_mm_add_pd(_mm_mul_pd(rz_v, rz_v),eps_v));
__m128d r2inv_v = _mm_rsqrt_pd(r2_v);

【问题讨论】:

标签: c intrinsics


【解决方案1】:

您需要创建一个__m128d 类型的变量。你可以创建一个使用

__m128d _mm_set_pd (double e1, double e0)

或者直接在调用中使用

_mm_rsqrt_pd( _mm_set_pd( d1, d2 ) );

【讨论】:

    猜你喜欢
    • 2012-01-02
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多