The package rpms/highway.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/highway.git/commit/?id=207f9f85fe3b8....
Change: -%ifnarch riscv64
Thanks.
Full change: ============
commit 207f9f85fe3b8fa42c8d5d7f56b4bbf2923034c7 Author: Robert-André Mauchin zebob.m@gmail.com Date: Sun Jun 2 10:53:40 2024 +0200
Fix s390x tests and RISCV build
- Introduces a patch that fix tests on BigEndian - Introduces a patch that disable RVV runtime dispatch for RISCV builds
diff --git a/3ce50ffa85577140bdf088d8ee7830b76ac2501c.patch b/3ce50ffa85577140bdf088d8ee7830b76ac2501c.patch new file mode 100644 index 0000000..c733035 --- /dev/null +++ b/3ce50ffa85577140bdf088d8ee7830b76ac2501c.patch @@ -0,0 +1,33 @@ +From 2f1e5a23b1facc9aebc3bf71586ca226a80b0e40 Mon Sep 17 00:00:00 2001 +From: John Platts john_platts@hotmail.com +Date: Mon, 3 Jun 2024 07:04:07 -0500 +Subject: [PATCH] Made fixes to generic_ops-inl.h BitShuffle impl on big-endian + +--- + hwy/ops/generic_ops-inl.h | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/hwy/ops/generic_ops-inl.h b/hwy/ops/generic_ops-inl.h +index 0cb83276ea..cd3103345f 100644 +--- a/hwy/ops/generic_ops-inl.h ++++ b/hwy/ops/generic_ops-inl.h +@@ -6922,9 +6922,17 @@ HWY_API V BitShuffle(V v, VI idx) { + static_cast<uint64_t>(0x0102040810204080u); + #endif + ++ const auto k7 = Set(du8, uint8_t{0x07}); ++ ++ auto unmasked_byte_idx = BitCast(du8, ShiftRight<3>(BitCast(d_idx_shr, idx))); ++#if HWY_IS_BIG_ENDIAN ++ // Need to invert the lower 3 bits of unmasked_byte_idx[i] on big-endian ++ // targets ++ unmasked_byte_idx = Xor(unmasked_byte_idx, k7); ++#endif // HWY_IS_BIG_ENDIAN ++ + const auto byte_idx = BitwiseIfThenElse( +- Set(du8, uint8_t{0x07}), +- BitCast(du8, ShiftRight<3>(BitCast(d_idx_shr, idx))), ++ k7, unmasked_byte_idx, + BitCast(du8, Dup128VecFromValues(du64, uint64_t{0}, + uint64_t{0x0808080808080808u}))); + // We want to shift right by idx & 7 to extract the desired bit in `bytes`, diff --git a/c95cc0237d2f7a0f5ca5dc3fb4b5961b2b1dcdfc.patch b/c95cc0237d2f7a0f5ca5dc3fb4b5961b2b1dcdfc.patch new file mode 100644 index 0000000..a32d691 --- /dev/null +++ b/c95cc0237d2f7a0f5ca5dc3fb4b5961b2b1dcdfc.patch @@ -0,0 +1,91 @@ +From c95cc0237d2f7a0f5ca5dc3fb4b5961b2b1dcdfc Mon Sep 17 00:00:00 2001 +From: Jan Wassenberg janwas@google.com +Date: Mon, 3 Jun 2024 02:51:20 -0700 +Subject: [PATCH] Disable RVV runtime dispatch. Fixes #2227 + +Public Clang <= 18 still appears to require compiler flags for RVV. +GCC 13 also has an #error and 14 is missing mulh/mulhu. + +Also split HWY_HAVE_RUNTIME_DISPATCH into multiple macros to enable +overriding parts of the logic. + +PiperOrigin-RevId: 639709709 +--- + hwy/detect_targets.h | 51 ++++++++++++++++++++++++++++++++------------ + 1 file changed, 37 insertions(+), 14 deletions(-) + +diff --git a/hwy/detect_targets.h b/hwy/detect_targets.h +index db4c786489..8914638e67 100644 +--- a/hwy/detect_targets.h ++++ b/hwy/detect_targets.h +@@ -596,23 +596,46 @@ + #endif + #endif // HWY_HAVE_AUXV + ++#ifndef HWY_HAVE_RUNTIME_DISPATCH_RVV // allow override ++// The riscv_vector.h in (at least) Clang 16-18 requires compiler flags, see ++// https://github.com/llvm/llvm-project/issues/56592. GCC 13.3 also has an ++// #error check, whereas 14.1 fails with "argument type 'vuint16m8_t' requires ++// the V ISA extension": https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115325. ++// Hence disable runtime dispatch for now. ++#if HWY_ARCH_RISCV && 0 ++#define HWY_HAVE_RUNTIME_DISPATCH_RVV 1 ++#else ++#define HWY_HAVE_RUNTIME_DISPATCH_RVV 0 ++#endif ++#endif // HWY_HAVE_RUNTIME_DISPATCH_RVV ++ ++#ifndef HWY_HAVE_RUNTIME_DISPATCH_APPLE // allow override ++#if HWY_ARCH_ARM_A64 && HWY_OS_APPLE && \ ++ (HWY_COMPILER_GCC_ACTUAL || HWY_COMPILER_CLANG >= 1700) ++#define HWY_HAVE_RUNTIME_DISPATCH_APPLE 1 ++#else ++#define HWY_HAVE_RUNTIME_DISPATCH_APPLE 0 ++#endif ++#endif // HWY_HAVE_RUNTIME_DISPATCH_APPLE ++ ++#ifndef HWY_HAVE_RUNTIME_DISPATCH_LINUX // allow override ++#if (HWY_ARCH_ARM || HWY_ARCH_PPC || HWY_ARCH_S390X) && HWY_OS_LINUX && \ ++ (HWY_COMPILER_GCC_ACTUAL || HWY_COMPILER_CLANG >= 1700) && HWY_HAVE_AUXV ++#define HWY_HAVE_RUNTIME_DISPATCH_LINUX 1 ++#else ++#define HWY_HAVE_RUNTIME_DISPATCH_LINUX 0 ++#endif ++#endif // HWY_HAVE_RUNTIME_DISPATCH_LINUX ++ + // Allow opting out, and without a guarantee of success, opting-in. + #ifndef HWY_HAVE_RUNTIME_DISPATCH +-// Clang, GCC and MSVC allow runtime dispatch on x86. +-#if HWY_ARCH_X86 +-#define HWY_HAVE_RUNTIME_DISPATCH 1 +-// On Arm, PPC, S390X, and RISC-V: GCC and Clang 17+ do, and we require Linux +-// to detect CPU capabilities. +-#elif (HWY_ARCH_ARM || HWY_ARCH_PPC || HWY_ARCH_S390X || HWY_ARCH_RISCV) && \ +- (HWY_COMPILER_GCC_ACTUAL || HWY_COMPILER_CLANG >= 1700) && HWY_OS_LINUX && \ +- HWY_HAVE_AUXV +-#define HWY_HAVE_RUNTIME_DISPATCH 1 +-#elif HWY_ARCH_ARM_A64 && HWY_OS_APPLE && \ +- (HWY_COMPILER_GCC_ACTUAL || HWY_COMPILER_CLANG >= 1700) ++// Clang, GCC and MSVC allow OS-independent runtime dispatch on x86. ++#if HWY_ARCH_X86 || HWY_HAVE_RUNTIME_DISPATCH_RVV || \ ++ HWY_HAVE_RUNTIME_DISPATCH_APPLE || HWY_HAVE_RUNTIME_DISPATCH_LINUX + #define HWY_HAVE_RUNTIME_DISPATCH 1 + #else + #define HWY_HAVE_RUNTIME_DISPATCH 0 +-#endif // HWY_ARCH_* ++#endif + #endif // HWY_HAVE_RUNTIME_DISPATCH + + // AVX3_DL is not widely available yet. To reduce code size and compile time, +@@ -675,9 +698,9 @@ + #endif + + #if HWY_ARCH_RISCV && HWY_HAVE_RUNTIME_DISPATCH +-#define HWY_ATTAINABLE_RISCV (HWY_RVV) ++#define HWY_ATTAINABLE_RISCV HWY_RVV + #else +-#define HWY_ATTAINABLE_RISCV 0 ++#define HWY_ATTAINABLE_RISCV HWY_BASELINE_RVV + #endif + + // Attainable means enabled and the compiler allows intrinsics (even when not diff --git a/highway.spec b/highway.spec index e4ae212..66e8708 100644 --- a/highway.spec +++ b/highway.spec @@ -19,7 +19,17 @@ Summary: Efficient and performance-portable SIMD
License: Apache-2.0 URL: https://github.com/google/highway -Source0: %url/archive/%{version}/%{name}-%{version}.tar.gz +Source: %url/archive/%{version}/%{name}-%{version}.tar.gz +# [PATCH] Made fixes to generic_ops-inl.h BitShuffle impl on big-endian +Patch: %url/commit/3ce50ffa85577140bdf088d8ee7830b76ac2501c.patch +# [PATCH] Disable RVV runtime dispatch. Fixes #2227 +# +# Public Clang <= 18 still appears to require compiler flags for RVV. +# GCC 13 also has an #error and 14 is missing mulh/mulhu. +# +# Also split HWY_HAVE_RUNTIME_DISPATCH into multiple macros to enable +# overriding parts of the logic. +Patch: %url/commit/c95cc0237d2f7a0f5ca5dc3fb4b5961b2b1dcdfc.patch
BuildRequires: cmake BuildRequires: clang @@ -77,13 +87,7 @@ rm -vf %{buildroot}%{_libdir}/pkgconfig/libhwy-contrib.pc %endif
%check -%ifnarch riscv64 -%ctest --exclude-regex "wyBlockwiseTestGroup/HwyBlockwiseTest.TestAllBroadcast" -%else -# 144 - HwyMulTestGroup/HwyMulTest.TestAllMulHigh/EMU128 # GetParam() = 2305843009213693952 (Failed) -# 145 - HwyMulTestGroup/HwyMulTest.TestAllMulFixedPoint15/EMU128 # GetParam() = 2305843009213693952 (Failed) -%ctest --exclude-regex "wyBlockwiseTestGroup/HwyBlockwiseTest.TestAllBroadcast" || : -%endif +%ctest
%files %license LICENSE
commit 6cef9dac21e969e79e115be10de2ab91b62f2b8d Author: Robert-André Mauchin zebob.m@gmail.com Date: Sat Jun 1 14:58:16 2024 +0200
Update to 1.2.0
Close: rhbz#2284174
diff --git a/.gitignore b/.gitignore index 0f36a2c..efd8830 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /highway-1.0.5.tar.gz /highway-1.0.7.tar.gz /highway-1.1.0.tar.gz +/highway-1.2.0.tar.gz diff --git a/highway.spec b/highway.spec index 027db9d..e4ae212 100644 --- a/highway.spec +++ b/highway.spec @@ -13,7 +13,7 @@ applying the same operation to 'lanes'.} %endif
Name: highway -Version: 1.1.0 +Version: 1.2.0 Release: %autorelease Summary: Efficient and performance-portable SIMD
diff --git a/sources b/sources index 192a2f7..8ef44ea 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (highway-1.1.0.tar.gz) = 513718873ca5d1be5c781f92ef943432da4677582e15d25a247c1d3def087fdbd3fe787608d76f32a9b4f9253df88b40bd8ea570159f8106c338ba37e8a50a8d +SHA512 (highway-1.2.0.tar.gz) = e94b9cc51c81157ccd6bf4d6163445b1acc1a2667dc2650d1c4aea0a5021989c08dafcb92564fcbecb9445ab2f1779051260be2f5b29c3932803b8a42ed2f824
arch-excludes@lists.fedoraproject.org