鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

_mm_srli_epi64函数替换

函数功能:基于imm的大小对a进行右移操作,移动后的位以0进行补充,并返回操作的结果。

_mm_srli_epi64 详细说明,请参考Intrinsics Guide

  • x86上代码:
    __m128i _mm_srli_epi64 (__m128i a, int imm) ;
  • 在鲲鹏上替换:
    #include <arm_neon.h>
    int64x2_t Arm_mm_srli_epi64 (int64x2_t a,int imm) 
    { 
    int64x2_t ret; 
    if ((imm) <= 0) { 
    ret = a; 
    } 
    else if ((imm)> 63) { 
    ret = vdupq_n_s64(0); 
    } 
    else { 
    ret = vreinterpretq_s64_u64(vshrq_n_u64(vreinterpretq_u64_s64(a), imm)); 
    } 
    return ret; 
    }