commit 820052b56ccf4763075dd37ec28206db638cbc81 Author: Adrian Schröter Date: Thu Dec 28 01:11:23 2023 +0100 Sync from SUSE:ALP:Source:Standard:1.0 highway revision 06d0542101ceec6635b6a2fdb350cfba diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/1.0.7.tar.gz b/1.0.7.tar.gz new file mode 100644 index 0000000..53367b5 --- /dev/null +++ b/1.0.7.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5434488108186c170a5e2fca5e3c9b6ef59a1caa4d520b008a9b8be6b8abe6c5 +size 2055819 diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..1fb2439 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1 @@ +libhwy1 diff --git a/highway.changes b/highway.changes new file mode 100644 index 0000000..c5fa11a --- /dev/null +++ b/highway.changes @@ -0,0 +1,142 @@ +------------------------------------------------------------------- +Fri Sep 22 01:30:49 UTC 2023 - Jan Engelhardt + +- Update to release 1.0.7 + * Add LoadNOr, GatherIndexN, ScatterIndexN + * Add additional float<->int conversions + * Codegen improvements for 8-bit shift, PPC Compress/Expand + +------------------------------------------------------------------- +Fri Aug 11 15:57:12 UTC 2023 - Jan Engelhardt + +- Update to release 1.0.6 + * Add MaskedGatherIndex, MaskedScatterIndex, LoadN, StoreN, + SatWidenMulPairwiseAdd, SumOfMulQuadAccumulate, + PromoteUpperLowerTo. + * Add F64 for Wasm, F64 AbsDiff + * Validate all D args in x86 function signatures + +------------------------------------------------------------------- +Wed Jul 19 16:33:36 UTC 2023 - Jan Engelhardt + +- Update to release 1.0.5 + * Add Insert/ExtractBlock, BroadcastBlock/Lane, NumBlocks + * Add integer Le/Ge and [Neg]MulAdd, extend DemoteTo/PromoteTo + * Add Leading/TrailingZeroCount, HighestSetBitIndex, ReverseBits + * Add MaskedLoadOr, tuple Get/Set/Create, ReduceSum, + WidenMulPairwiseAdd + * Add [ZeroExtend]ResizeBitCast, BitwiseIfThenElse, + Find[Known]LastTrue + * Add AESRoundInv, AESKeyGenAssist + * Add contrib/math Atan2/SinCos, contrib/unroller + * Add fp16/bf16 support (Armv8, SVE, RVV), HWY_DYNAMIC_POINTER + * Add OrderedTruncate2To, Per4LaneBlockShuffle, + TwoTablesLookupLanes + * Add SlideUp/Down[Blocks/Lanes], Slide1Up/Down, ReverseLaneBytes + * Add SetBeforeFirst, SetAtOrBefore/AfterFirst, SetOnlyFirst + * Add 8-bit Reverse2/4/8, Shl/Shr, RotateRight, Reverse, Mul + * Add 8/16-bit DupEven/Odd, TableLookupLanes + * Add F64 ApproximateReciprocal[Sqrt], 32/64-bit SaturatedAdd/Sub + +------------------------------------------------------------------- +Wed May 24 09:10:51 UTC 2023 - Jan Engelhardt + +- Update memory limiter from 900 to 1400/process. + +------------------------------------------------------------------- +Fri May 12 19:37:01 UTC 2023 - Jan Engelhardt + +- Add memory-constraints to build + +------------------------------------------------------------------- +Wed May 10 10:35:45 UTC 2023 - Jan Engelhardt + +- Add no-forced-inline.diff [boo#1211093] + +------------------------------------------------------------------- +Fri Mar 17 17:09:46 UTC 2023 - Jan Engelhardt + +- Update to release 1.0.4 + * Add PPC8..10, SSE2, AVX3_ZEN4, NEON_WITHOUT_AES targets + * Add Expand, LoadExpand, integer AbsDiff, SumsOf8AbsDiff + * Improved Half/Twice support, codegen for Shift*Same + * Faster KV128 sorting + * Update RISC-V V intrinsics for 1.0-draft +- Remove arm-disable-runtime-dispatch.patch (appears merged) + +------------------------------------------------------------------- +Thu Jan 19 16:21:05 UTC 2023 - Jan Engelhardt + +- Update to release 1.0.3 + * Add RearrangeToOddPlusEven, Xor3, 8-bit CompressStore, + HWY_ASSUME + * Add contrib/bit_pack for 8/16-bit lanes + * Update for new RVV intrinsics; faster WASM min/max and + extmul/q15mul + +------------------------------------------------------------------- +Thu Dec 15 11:32:45 UTC 2022 - Simon Vogl + +- Added missing baselibs.conf so that 32bit library packages + become available + +------------------------------------------------------------------- +Wed Nov 23 23:15:10 UTC 2022 - Bruno Pitrus + +- Fix the library being built for incorrect microarchitecture + on armv{6,7}hl. + * add arm-disable-runtime-dispatch.patch to fix compiler error +- Actually run the testsuite. + +------------------------------------------------------------------- +Tue Nov 8 14:21:25 UTC 2022 - Jan Engelhardt + +- Have armv7 build succeed again. + +------------------------------------------------------------------- +Tue Nov 1 08:29:19 UTC 2022 - Jan Engelhardt + +- Update to release 1.0.2 + * Add ExclusiveNeither, FindKnownFirstTrue, Ne128 + * Add 16-bit SumOfLanes/ReorderWidenMulAccumulate/ReorderDemote2To + * Faster sort for low-entropy input, improved pivot selection + * Support static dispatch to SVE2_128 and SVE_256 +- Leap just needs a modern gcc, no need for clang + +------------------------------------------------------------------- +Wed Oct 26 16:47:07 UTC 2022 - Tom Mbrt + +- Fix build on openSUSE Leap by using clang + +------------------------------------------------------------------- +Thu Sep 22 09:20:14 UTC 2022 - Enrico Belleri + +- Update to 1.0.1: + * Add Eq128, i64 Mul, unsigned->float ConvertTo + * Faster sort for few unique keys, more robust pivot selection + * Fix: floating-point generator for sort tests, Min/MaxOfLanes for i16 + * Fix: avoid always_inline in debug, link atomic + * GCC warnings: string.h, maybe-uninitialized, ignored-attributes + * GCC warnings: preprocessor int overflow, spurious use-after-free/overflow + * Doc: <=HWY_AVX3, Full32/64/128, how to use generic-inl + * ABI change: 64-bit target values, more room for expansion + * Add CompressBlocksNot, CompressNot, Lt128Upper, Min/Max128Upper, TruncateTo + * Add HWY_SVE2_128 target + * Sort speedups especially for 128-bit + * Documentation clarifications + * Faster NEON CountTrue/FindFirstTrue/AllFalse/AllTrue + * Improved SVE codegen + * Fix u16x8 ConcatEven/Odd, SSSE3 i64 Lt + * MSVC 2017 workarounds + * Support for runtime dispatch on Arm/GCC/Linux + +------------------------------------------------------------------- +Wed Jul 13 10:09:10 UTC 2022 - Guillaume GARDET + +- Use GCC11 instead of default GCC12 to build on aarch64 Tumbleweed + until fixed upstream - https://github.com/google/highway/issues/776 + +------------------------------------------------------------------- +Sat Jul 9 12:19:06 UTC 2022 - Jan Engelhardt + +- Initial package (version 0.17.0) for build.opensuse.org diff --git a/highway.spec b/highway.spec new file mode 100644 index 0000000..6c0acf2 --- /dev/null +++ b/highway.spec @@ -0,0 +1,118 @@ +# +# spec file for package highway +# +# Copyright (c) 2023 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define lname libhwy1 + +Name: highway +Version: 1.0.7 +Release: 0 +Summary: C++ library providing SIMD/vector intrinsics +License: Apache-2.0 OR BSD-3-Clause +Group: Development/Libraries/C and C++ +URL: https://github.com/google/highway +Source: https://github.com/google/highway/archive/refs/tags/%version.tar.gz +Source1: baselibs.conf +Patch1: no-forced-inline.diff +# https://github.com/google/highway/issues/776 +%if 0%{?suse_version} > 1550 +BuildRequires: c++_compiler +%else +BuildRequires: gcc10-c++ +%endif +BuildRequires: cmake +BuildRequires: memory-constraints +BuildRequires: pkg-config +BuildRequires: pkgconfig(gtest) + +%description +Highway is a C++ library that provides portable SIMD/vector intrinsics. + +%package -n %lname +Summary: Efficient and performance-portable SIMD +Group: Development/Libraries/C and C++ + +%description -n %lname +Highway is a C++ library that provides portable SIMD/vector intrinsics. + +%package devel +Summary: Development files for Highway +Group: Development/Libraries/C and C++ +Requires: %lname = %version + +%description devel +Highway is a C++ library that provides portable SIMD/vector intrinsics. + +Development files for Highway. + +%package devel-doc +Summary: Documentation for Highway +Group: Documentation/Other +BuildArch: noarch + +%description devel-doc +Highway is a C++ library that provides portable SIMD/vector intrinsics. + +Documentation for Highway development. + +%prep +%autosetup -p1 + +%build +export CFLAGS="%optflags -DHWY_COMPILE_ALL_ATTAINABLE" +%ifarch ppc64 ppc64le +CFLAGS="$CFLAGS -maltivec" +%endif +export CXXFLAGS="$CFLAGS" +%if 0%{?suse_version} < 1550 +export CXX=g++-10 +%endif +%limit_build -m 1400 + +%cmake \ +%ifarch %arm + -DHWY_CMAKE_ARM7:BOOL=OFF \ +%endif + -DCMAKE_SKIP_RPATH:BOOL=OFF \ + -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \ + -DHWY_SYSTEM_GTEST:BOOL=ON +%cmake_build + +%install +%cmake_install + +%check +export CTEST_PARALLEL_LEVEL=2 +%ctest --parallel 2 --verbose || : + +%post -n %lname -p /sbin/ldconfig +%postun -n %lname -p /sbin/ldconfig + +%files -n %lname +%_libdir/libhwy*.so.* +%license LICENSE + +%files devel +%_includedir/hwy/ +%_libdir/libhwy*.so +%_libdir/pkgconfig/*.pc +%_libdir/cmake/ + +%files devel-doc +%doc README.md g3doc/* hwy/examples/ + +%changelog diff --git a/no-forced-inline.diff b/no-forced-inline.diff new file mode 100644 index 0000000..4419294 --- /dev/null +++ b/no-forced-inline.diff @@ -0,0 +1,29 @@ +From: Jan Engelhardt +Date: 2023-05-10 12:35:31.076671893 +0200 +References: https://bugzilla.suse.com/1211093 + +gcc on ppc64le says: + +[ 265s] /home/abuild/rpmbuild/BUILD/highway-1.0.4/hwy/base.h:1029:14: error: inlining failed in call to 'always_inline' 'hwy::PreventElision(int&)void': target specific option mismatch +[ 265s] 1029 | HWY_API void PreventElision(T&& output) { + +Given always_inline is not mandatory but conditional on __OPTIMIZE__, stop making it +mandatory for the __OPTIMIZE__ case too. + +--- + hwy/base.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: highway-1.0.4/hwy/base.h +=================================================================== +--- highway-1.0.4.orig/hwy/base.h ++++ highway-1.0.4/hwy/base.h +@@ -65,7 +65,7 @@ + // force inlining without optimization enabled creates very inefficient code + // that can cause compiler timeout + #ifdef __OPTIMIZE__ +-#define HWY_INLINE inline __attribute__((always_inline)) ++#define HWY_INLINE inline + #else + #define HWY_INLINE inline + #endif