Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Build fails with clang-cl: SVML _mm_pow_ps gated on _MSC_VER alone

未关闭 适合新手
#2,329 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 4 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
82/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
冷清
技术栈
cpp
领域
build-system

调研方向

从 FixedFunctionOpCPU.cpp 开始,找到使用 _MSC_VER 和 OCIO_USE_AVX 的两个 SVML _mm_pow_ps 预处理器门控。使用 clang-cl -c -arch:AVX 复现,然后验证启用 OCIO_USE_AVX 时 clang-cl 构建使用现有的 ssePower() 路径并成功完成。

由索引模型根据 Issue 内容生成。

描述

FixedFunctionOpCPU.cpp gates the SVML _mm_pow_ps path on _MSC_VER >= 1920 alone. clang-cl
defines _MSC_VER (1951 for clang 22.1.8) but ships no SVML, so the build breaks whenever
OCIO_USE_AVX is on.

Minimal:

#include <immintrin.h>
__m128 f(__m128 x, __m128 e) { return _mm_pow_ps(x, e); }
> clang-cl -c -arch:AVX t.cpp
t.cpp(2,39): error: use of undeclared identifier '_mm_pow_ps'

Excluding the compiler in the gate is enough, and clang-cl then takes the existing ssePower() path
like any other non-MSVC compiler:

-#if (_MSC_VER >= 1920) && (OCIO_USE_AVX)
+#if (_MSC_VER >= 1920) && (OCIO_USE_AVX) && !defined(__clang__)

main has 2 such sites; 2.5.2 has 4, the extra two being the dispatch arms in
GetFixedFunctionCPURenderer.

clang 22.1.8, x86_64-pc-windows-msvc. Reproduced against 2.5.2 and main.

主要语言
C++
星标
2.1k
派生
503
平均合并
8 天 3 小时
30 天内合并 PR
10

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

AcademySoftwareFoundation/OpenColorIO 的其他 Issue

查看 AcademySoftwareFoundation/OpenColorIO 的全部 Issue

相似的 Issue

更多 C++ Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。