繁体   English   中英

使用 ARM Neon 内在函数从 64 位访问 32 位

[英]Accessing 32bit from 64bit using ARM Neon intrinsics

如何使用 ARM Neon Intrinsics 从 64 位有符号整数访问低 32 位或高 32 位? 另外,我想将此提取的数据分配给另一个 32 位变量。 是否可以?

static inline int32x2_t low32(int64x2_t in)
{
    int32x2_t out;

    out = vmovn_s64(in); // vqmovn for saturating

    return out;
}

static inline int32x2_t high32(int64x2_t in)
{
    int32x2_t out;

    out = vshrn_n_s64(in, 32);

    return out;
}

嘿,在这种情况下,您必须使用 64 位变量进行操作。 看看这个例子:假设我们有一个 64 位变量,其值为 0b00000000000000000000000000000001100000000000000000000000000000001

如果我们拆分上面的变量,那么我们将得到

0000000000000000000000000000011 = 300000000000000000000000000000001 = 1所以这里的前 32 位(MSB)值为 3,接下来的 32 位(LSB)值为

first32_bit = 64bit_var>>32;
next32_bit = 64bit_var&0000000000000000000000000000000011111111111111111111111111111111;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM