Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/include/OpenImageIO/simd.h
Original file line number Diff line number Diff line change
Expand Up @@ -3152,7 +3152,7 @@ vfloat16 nmsub (const vfloat16& a, const vfloat16& b, const vfloat16& c); // -a*
// Try to set the flush_zero_mode CPU flag on x86. Return true if we are
// able, otherwise false (because it's not available on that platform).
inline bool set_flush_zero_mode (bool on) {
#if (defined(__x86_64__) || defined(__i386__)) && !defined(__CUDA_ARCH__)
#if (defined(__x86_64__) || defined(__i386__)) && !defined(__CUDA_ARCH__) && !defined(__arm64ec__)
_MM_SET_FLUSH_ZERO_MODE (on ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF);
return true;
#endif
Expand All @@ -3162,7 +3162,7 @@ inline bool set_flush_zero_mode (bool on) {
// Try to set the denorms_zero_mode CPU flag on x86. Return true if we are
// able, otherwise false (because it's not available on that platform).
inline bool set_denorms_zero_mode (bool on) {
#if (defined(__x86_64__) || defined(__i386__)) && !defined(__CUDA_ARCH__)
#if (defined(__x86_64__) || defined(__i386__)) && !defined(__CUDA_ARCH__) && !defined(__arm64ec__)
_MM_SET_DENORMALS_ZERO_MODE (on ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF);
return true;
#endif
Expand All @@ -3171,15 +3171,15 @@ inline bool set_denorms_zero_mode (bool on) {

// Get the flush_zero_mode CPU flag on x86.
inline bool get_flush_zero_mode () {
#if (defined(__x86_64__) || defined(__i386__)) && !defined(__CUDA_ARCH__)
#if (defined(__x86_64__) || defined(__i386__)) && !defined(__CUDA_ARCH__) && !defined(__arm64ec__)
return _MM_GET_FLUSH_ZERO_MODE() == _MM_FLUSH_ZERO_ON;
#endif
return false;
}

// Get the denorms_zero_mode CPU flag on x86.
inline bool get_denorms_zero_mode () {
#if (defined(__x86_64__) || defined(__i386__)) && !defined(__CUDA_ARCH__)
#if (defined(__x86_64__) || defined(__i386__)) && !defined(__CUDA_ARCH__) && !defined(__arm64ec__)
return _MM_GET_DENORMALS_ZERO_MODE() == _MM_DENORMALS_ZERO_ON;
#endif
return false;
Expand Down
5 changes: 3 additions & 2 deletions src/include/OpenImageIO/thread.h
Original file line number Diff line number Diff line change
Expand Up @@ -154,9 +154,10 @@ pause(int delay) noexcept
#elif defined(_MSC_VER)
// A reimplementation of winnt.h YieldProcessor,
// to avoid including windows headers.
# if defined(_M_AMD64)
# if defined(_M_AMD64) && !defined(_M_ARM64EC)
_mm_pause();
# elif defined(_M_ARM64) || defined(_M_HYBRID_X86_ARM64)
# elif defined(_M_ARM64) || defined(_M_ARM64EC) \
|| defined(_M_HYBRID_X86_ARM64)
__dmb(_ARM64_BARRIER_ISHST);
__yield();
# elif defined(_M_ARM)
Expand Down
Loading