Skip to content

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

Description

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions