【问题标题】:_mm_mulhi_epi16 equivalent on ARM_mm_mulhi_epi16 等效于 ARM
【发布时间】:2021-12-01 05:57:43
【问题描述】:

我正在开展一个项目,以使用 NEON 内在函数加速 ARM 平台上的性能。

我找不到以下内在函数的直接等效项 _mm_mulhi_epi16 _mm_hadd_epi32 _mm_maddubs_epi16 _mm_madd_epi16 _mm_extract_epi8

等效的内在函数对我的工作有很大帮助

【问题讨论】:

  • 不一定存在直接等价物,例如我所知道的_mm_mulhi_epi16 没有。您可以使用smull 和一些排列来模拟它,但最好退后一步看看您的实际算法,而不是尝试一对一地替换指令。可能还有另一种实现方式,更符合 ARM64 实际拥有的指令。
  • vqdmulh_s16 是。您甚至可以使用 vqrdmulh_s16 对值进行四舍五入
  • 请注意,该指令会导致 q15,而 Intel 会导致 q14。
  • 总的来说这是一个很好的灵感来源github.com/DLTcollab/sse2neon

标签: c arm arm64 neon


【解决方案1】:

_mm_hadd_epi32 似乎与 vpaddq_s32 匹配。

_mm_extract_epi8 似乎与 vgetq_lane_s8 匹配。

不确定其他人的副手。

【讨论】:

    猜你喜欢
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多