forked from pool/OpenShadingLanguage
Hans-Peter Jansen
9c17873589
- Add upstream patch to fix build on Arm: * 1605.patch OBS-URL: https://build.opensuse.org/request/show/1030874 OBS-URL: https://build.opensuse.org/package/show/graphics/OpenShadingLanguage?expand=0&rev=42
41 lines
1.3 KiB
Diff
41 lines
1.3 KiB
Diff
From 23ceda5ba82b589ba5f750f8edeb2894b7a6b1e9 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
|
|
Date: Mon, 10 Oct 2022 08:40:18 +0000
|
|
Subject: [PATCH] include the immintrin.h header only when needed
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
The immintrin.h header is required for the implementation of the
|
|
popcount and coutr_zero function only when the Intel compiler is used.
|
|
Move the inclusion accordingly. The current state breaks build on
|
|
platforms that don't provide the header, but provide the alternative
|
|
means (gcc/clang built-ins, etc).
|
|
|
|
Signed-off-by: Dan Horák <dan@danny.cz>
|
|
---
|
|
src/include/OSL/mask.h | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/include/OSL/mask.h b/src/include/OSL/mask.h
|
|
index 24197afb6..b9275f65d 100644
|
|
--- a/src/include/OSL/mask.h
|
|
+++ b/src/include/OSL/mask.h
|
|
@@ -4,7 +4,6 @@
|
|
|
|
#pragma once
|
|
|
|
-#include <immintrin.h>
|
|
#include <type_traits>
|
|
|
|
#include <OSL/oslconfig.h>
|
|
@@ -23,6 +22,8 @@ using std::countr_zero;
|
|
|
|
#elif OSL_INTEL_CLASSIC_COMPILER_VERSION
|
|
|
|
+#include <immintrin.h>
|
|
+
|
|
OSL_FORCEINLINE int popcount(uint32_t x) noexcept { return _mm_popcnt_u32(x);}
|
|
OSL_FORCEINLINE int popcount(uint64_t x) noexcept { return _mm_popcnt_u64(x); }
|
|
OSL_FORCEINLINE int countr_zero(uint32_t x) noexcept { return _bit_scan_forward(x); }
|