gpt4 book ai didi

c - _mm_set1_ps 和 _mm_set_ps1 有什么区别?

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

这些功能有什么区别吗?如果不是,为什么?

__m128 __mm_set1_ps(float a)
__m128 __mm_set_ps1(float a)

Intel Intrinsics Guide上的两个描述是一样的网站。
谢谢你。

最佳答案

有零差异。 _mm_set1_ps是惯用的,使用它。

例如clang 的 xmmintrin.h 定义了 set_ps1set1_ps 方面:

static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_set_ps1(float __w)
{
return _mm_set1_ps(__w);
}

历史猜测

我的猜测是英特尔在 SSE1 的早期还没有确定命名方案,而是切换到 _mm_set1_键入前进。但如果他们已经记录了 _mm_set_ps1 ,他们无法收回。

请注意,没有 _mm_set_epi321_mm_set_ep81 (幸运的是)!因此 _mm_set1_ps是惯用的并且遵循与其他广播内在函数相同的模式,而 _mm_set_ps1是不寻常的,会让人类读者感到惊讶。有 _mm_set_pd1_mm_load_pd1 ,不过,大概它们是同时引入的(使用 SSE2)。

我只知道它,因为前几天我在寻找可以执行严格别名安全广播负载的内在函数时偶然发现了它,就像您可以使用 vpbroadcastd 一样。在组装。 (没有一种可以在任何地方高效编译的可移植的;对内在函数的编译器支持是一个混合包,当您尝试做任何复杂的事情时,会出现脑残的悲观和缺少内在函数。也许再过几年 _mm_loadu_si32(void*) 到零扩展至少会得到广泛支持......)/结束话题咆哮。

关于c - _mm_set1_ps 和 _mm_set_ps1 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60922271/

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