我该如何使用_mm256_cos_pd? [重复]

问题描述 投票:0回答:1

我在我的C++项目中导入了immintrin.h头文件,并尝试使用_mm256_cos_pd函数,但遇到了错误“Use of undeclared identifier '_mm256_cos_pd'”。

根据英特尔的文档(https://www.intel.com/content/www/us/en/docs/cpp-compiler/developer-guide-reference/2021-8/mm-cos-pd-mm256-cos -pd.html),_mm256_cos_pd函数是计算256位浮点(双精度)向量的余弦的函数。它是 Intel AVX 扩展指令集的一部分。

我可以成功使用其他命令(例如_mm256_add_pd和_mm256_mul_pd),但不能成功使用_mm256_cos_pd。

我做了以下测试:

  1. 使用的编译器是gcc(13.1),支持AVX2指令集。

  2. 编译器的构建选项启用 AVX2 指令集。我在 CMakeLists.txt 文件中使用 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2") 来启用 AVX2 指令集。

  3. 确保CPU支持AVX2指令集。

c++ intel avx2
1个回答
0
投票

这并不映射到真正的指令,因此 AVX 等无关紧要。这是一条 SVML(伪)指令。

参见 C++ 错误:‘_mm_sin_ps’ 未在此范围内声明

MSVC 和 ICC 都支持 SVML,GCC 或 Clang 不支持。

© www.soinside.com 2019 - 2024. All rights reserved.