gpt4 book ai didi

c++ - GCC avx2intrin.h(版本 X-9.2)中缺少 _mm_broadcastsd_pd

转载 作者:搜寻专家 更新时间:2023-10-31 02:01:54 24 4
gpt4 key购买 nike

刚刚发现,英特尔内在函数指南 (link) 中列出的 _mm_broadcastsd_pd 并未在 GCC avx2intrin.h 中实现。我用最新的 GCC 版本在 Godbolt 上测试了一个小例子,它不会编译 ( Example GCC )。 Clang 会( Example Clang )。它在我的电脑(GCC 8.3)上是一样的。

我应该提交错误报告,还是有任何特殊原因不包括在内?我的意思是,当然,_mm_movedup_pd 做完全相同的事情并且 clang 实际上为两个内在函数生成相同的程序集,但我认为这不应该成为排除它的理由。

问候

编辑

创建错误报告:link

最佳答案

并不是所有的编译器都有内在的所有别名(同一事物的不同名称)。除了在 Godbolt 上试用它们之外,IDK 如何找出哪些可以跨 4 个主要编译器的当前版本移植。

但是,是的,GCC/clang 确实接受有关缺少 _mm 内在函数的错误,尤其是 Intel 记录的错误。

_mm_broadcastsd_pd 被 Intel 记录为 movddup 的固有内容,因此您不会错过任何内容。更重要的是,它有点误导,因为没有vbroadcastsd xmm, xmm, only with a YMM or ZMM destination . (_mm256_broadcast_sd(double *a);_mm256_broadcastsd_pd(__m128d a);)

asm 引用手册甚至没有在 vbroadcast 或 the movddup entry 中记录 _mm_broadcastsd_pd ;它仅在内在指南中。

GCC 可能想要添加这个,特别是因为 clang 有它。将 _mm_broadcastsd_pd 作为别名对于正在寻找它但不太了解 asm 以了解他们需要 movddup 的人来说会很有用。 (或使用 AVX 3 操作数指令,movlhpsunpcklpd 相同,相同)

关于c++ - GCC avx2intrin.h(版本 X-9.2)中缺少 _mm_broadcastsd_pd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58270381/

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