gpt4 book ai didi

c - Intel/ARM 内在函数等价

转载 作者:行者123 更新时间:2023-12-04 12:32:26 25 4
gpt4 key购买 nike

我有一个使用 Intel 内在函数的 C 应用程序,例如:

__m128 _mm_add_ps (__m128 a, __m128 b)
__m128 _mm_sub_ps (__m128 a, __m128 b)
__m128 _mm_mul_ps (__m128 a, __m128 b)
__m128 _mm_set_ps (float e3, float e2, float e1, float e0)
void _mm_store_ps (float* mem_addr, __m128 a)
__m128 _mm_load_ps (float const* mem_addr)

现在,我正在尝试修改我的应用程序,以便使用名为 的模拟器使其在 ARMv8 上运行。 Gem5 .所以,我开始四处寻找 ARM 内在函数,我找到了这本手册 ARM® NEON™ Intrinsics Reference

好吧,我找到了算术内在函数,但是我对设置、存储和加载指令有点迷茫。

任何有 ARM 内在函数经验的人都可以告诉我正确的内在函数吗?

最佳答案

以下是一些可以帮助您入门的等效项:

SSE             ARM

__m128 float32x4_t // 4 x 32 bits floats in a vector

_mm_load_ps vld1q_f32 // load float vector from memory

_mm_store_ps vst1q_f32 // store float vector to memory

_mm_add_ps vaddq_f32 // add float vectors

至于初始化 vector ,就像您可能使用的那样,例如 _mm_set_ps在 SSE 中,诸如 gcc 和 clang 之类的编译器允许您以更类似于 C 的方式使用 Neon 数据类型,例如
const float32x4_t v = { 1.0f, 2.0f, 3.0f, 4.0f };

但是,如果您的编译器不支持此方法,那么您可能必须使用等效的 Neon 内在函数。

关于c - Intel/ARM 内在函数等价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38919663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com