Log message:
libhighway: update to 1.2.0.
Convert to cmake/build.mk.
1.2.0
Add InterleaveEven/InterleaveOdd, BitShuffle, GatherIndexNOr
Add IsNegative, IfNegativeThenElseZero, IfNegativeThenZeroElse
Add NEON_BF16, HWY_VERSION_GE/LT, HWY_EXPORT_T/HWY_DYNAMIC_DISPATCH_T
Add PromoteInRangeTo/ConvertInRangeTo/DemoteInRangeTo
Add Rol/Ror, RotateLeft/RotateLeftSame/RotateRightSame
Add SatWidenMulPairwiseAccumulate, SatWidenMulAccumFixedPoint
Add stats.h, bit_set.h, IsEitherNaN
Add UI8/UI32/UI64 MulHigh, I64 MulEven/MulOdd/Mul128
Add WidenMulAccumulate, MulEvenAdd, MulOddAdd
contrib/bit_pack: support 32/64-bit lanes
contrib/math: Add Exp2, Hypot
contrib/matvec: Add MatVecAdd
contrib/sort: Add VQ/HeapSelect, partial sort
contrib/topology: add affinity, detect topology/cache size/CPU name
Enable runtime dispatch for NEON/RVV, bazel modules, abort handler
Remove DASSERT for negative Gather indices
Support opting out of GUnit dependency
Use SPR/ZEN4 bf16 dot product
Known GCC 13 RVV issue: parts of sort_test and bit_pack_test disabled
Known Clang RVV/QEMU issue: incorrect rounding mode in upper/lower halves
1.1.0
Add BitCastScalar, DispatchedTarget, Foreach
Add Div/Mod and MaskedDiv/ModOr, SaturatedAbs, SaturatedNeg
Add InterleaveWholeLower/Upper, Dup128VecFromValues
Add IsInteger, IsIntegerLaneType, RemoveVolatile, RemoveCvRef
Add MaskedAdd/Sub/Mul/Div/Gather/Min/Max/SatAdd/SatSubOr
Add MaskFalse, IfNegativeThenNegOrUndefIfZero, PromoteEven/OddTo
Add ReduceMin/Max, 8-bit reductions, f16 <-> f64 conversions
Add Span, AlignedArray, matrix-vector mul
Add SumsOf2/4, I8 SumsOf8, SumsOfAdjQuadAbsDiff, SumsOfShuffledQuadAbsDiff
Add ThreadPool, hierarchical profiler
Build: use bazel_platforms
Enable clang16 Arm/PPC runtime dispatch, F16 for GCC AVX3_SPR
Extend Dot to f32*bf16, FMA to integer
Fix: RVV 8-bit overflow, UB in vqsort, big-endian bugs, PPC HTM
Improved codegen in various ops, fp16/bf16 tests and conversions
New targets: HWY_Z14, HWY_Z15
Test: add foreign_arch builders, CodeQL
|
Log message:
Update libhighway to version 1.0.1
Pkgsrc changes:
Build shared libs.
Use gcc 8 and over to fix build.
Include devel/googletest in
buildlink3.mk since one of the
installed header files include
gtest/gtest.h .
Changes from changelog:
* 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
|
Log message:
graphics/libhighway: import libhighway-0.17.0
Renamed to libhighway due to textproc/highway.
Highway is a C++ library for SIMD (Single Instruction, Multiple Data), i.e.
applying the same operation to 'lanes'.
## Why Highway?
- more portable (same source code) than platform-specific intrinsics,
- works on a wider range of compilers than compiler-specific vector extensions,
- more dependable than autovectorization,
- easier to write/maintain than assembly language,
- supports runtime dispatch,
- supports variable-length vector architectures.
## Current status
Supported targets: scalar, SSE4, AVX2, AVX-512, NEON (ARMv7 and v8), WASM SIMD.
Ports to RVV and SVE/SVE2 are in progress.
|