Chip Kerchner
4a58f30aa0
Fix pre-POWER8_VECTOR bugs in pcmp_lt and pnegate and reactivate psqrt.
2023-01-31 19:40:24 +00:00
Chip Kerchner
ab8725d947
Turn off vectorize version of rsqrt - doesn't match generic version
2023-01-27 18:28:54 +00:00
Sean McBride
d70b4864d9
issue #2581 : review and cleanup of compiler version checks
2023-01-17 18:58:34 +00:00
Sergey Fedorov
4d05765345
Altivec fixes for Darwin: do not use unsupported VSX insns
2023-01-12 16:33:33 +00:00
Chip Kerchner
399ce1ed63
Fix duplicate execution code for Power 8 Altivec in pstore_partial.
2022-11-16 13:41:42 +00:00
Antonio Sanchez
5eacb9e117
Put brackets around unsigned type names.
2022-11-15 09:09:45 -08:00
Antonio Sánchez
37e40dca85
Fix ambiguity in PPC for vec_splats call.
2022-11-14 18:58:16 +00:00
Charles Schlosser
82b152dbe7
Add signbit function
2022-11-04 00:31:20 +00:00
Antonio Sánchez
886aad1361
Disable patan for double on PPC.
2022-10-27 17:56:08 +00:00
Rasmus Munk Larsen
c475228b28
Vectorize atan() for double.
2022-10-01 01:49:30 +00:00
Rasmus Munk Larsen
bd393e15c3
Vectorize acos, asin, and atan for float.
2022-08-29 19:49:33 +00:00
Charles Schlosser
e5af9f87f2
Vectorize pow for integer base / exponent types
2022-08-29 19:23:54 +00:00
Chip Kerchner
9e0afe0f02
Fix non-VSX PowerPC build
2022-08-08 18:18:17 +00:00
Chip Kerchner
ce60a7be83
Partial Packet support for GEMM real-only (PowerPC). Also fix compilation warnings & errors for some conditions in new API.
2022-08-03 18:15:19 +00:00
Chip Kerchner
84cf3ff18d
Add pload_partial, pstore_partial (and unaligned versions), pgather_partial, pscatter_partial, loadPacketPartial and storePacketPartial.
2022-06-27 19:18:00 +00:00
Chip Kerchner
4d1c16eab8
Fix tanh and erf to use vectorized version for EIGEN_FAST_MATH in VSX.
2022-06-15 16:06:43 +00:00
Eisuke Kawashima
ac5c83a3f5
unset executable flag
2022-05-22 22:47:43 +09:00
Chip Kerchner
b02c384ef4
Add fused multiply functions for PowerPC - pmsub, pnmadd and pnmsub
2022-04-18 16:16:32 +00:00
Chip Kerchner
403fa33409
Performance improvements in GEMM for Power
2022-04-05 12:18:53 +00:00
Erik Schultheis
421cbf0866
Replace Eigen type metaprogramming with corresponding std types and make use of alias templates
2022-03-16 16:43:40 +00:00
Kolja Brix
8d81a2339c
Reduce usage of reserved names
2022-01-10 20:53:29 +00:00
Rasmus Munk Larsen
d7d0bf832d
Issue an error in case of direct inclusion of internal headers.
2021-09-10 19:12:26 +00:00
Antonio Sanchez
2cc6ee0d2e
Add missing PPC packet comparisons.
...
This is to fix the packetmath tests on the ppc pipeline.
2021-08-17 07:42:04 -07:00
Chip-Kerchner
e07227c411
Reverse compare logic in F32ToBf16 since vec_cmpne is not available in Power8 - now compiles for clang10 default (P8).
2021-08-13 11:21:28 -05:00
ChipKerchner
413bc491f1
Fix errors on older compilers (gcc 7.5 - lack of vec_neg, clang10 - can not use const pointers with vec_xl).
2021-08-10 15:03:18 -05:00
Rasmus Munk Larsen
bffd267d17
Small cleanup: Get rid of the macros EIGEN_HAS_SINGLE_INSTRUCTION_CJMADD and CJMADD, which were effectively unused, apart from on x86, where the change results in identically performing code.
2021-06-24 18:52:17 -07:00
Antonio Sanchez
9e94c59570
Add missing ppc pcmp_lt_or_nan<Packet8bf>
2021-06-15 13:42:17 -07:00
Rasmus Munk Larsen
fc87e2cbaa
Use bit_cast to create -0.0 for floating point types to avoid compiler optimization changing sign with --ffast-math enabled.
2021-06-11 02:35:53 +00:00
Chip Kerchner
c9d4367fa4
Fix pround and add print
2021-03-15 19:07:43 +00:00
Chip Kerchner
9b51dc7972
Fixed performance issues for VSX and P10 MMA in general_matrix_matrix_product
2021-02-17 17:49:23 +00:00
Antonio Sanchez
7ff0b7a980
Updated pfrexp implementation.
...
The original implementation fails for 0, denormals, inf, and NaN.
See #2150
2021-02-17 02:23:24 +00:00
Antonio Sanchez
4cb563a01e
Fix ldexp implementations.
...
The previous implementations produced garbage values if the exponent did
not fit within the exponent bits. See #2131 for a complete discussion,
and !375 for other possible implementations.
Here we implement the 4-factor version. See `pldexp_impl` in
`GenericPacketMathFunctions.h` for a full description.
The SSE `pcmp*` methods were moved down since `pcmp_le<Packet4i>`
requires `por`.
Left as a "TODO" is to delegate to a faster version if we know the
exponent does fit within the exponent bits.
Fixes #2131 .
2021-02-10 22:45:41 +00:00
Antonio Sanchez
1615a27993
Fix altivec packetmath.
...
Allows the altivec packetmath tests to pass. There were a few issues:
- `pstoreu` was missing MSQ on `_BIG_ENDIAN` systems
- `cmp_*` didn't properly handle conversion of bool flags (0x7FC instead
of 0xFFFF)
- `pfrexp` needed to set the `exponent` argument.
Related to !370 , #2128
cc: @ChipKerchner @pdrocaldeira
Tested on `_BIG_ENDIAN` running on QEMU with VSX. Couldn't figure out build
flags to get it to work for little endian.
2021-01-28 18:37:09 +00:00
Chip Kerchner
1414e2212c
Fix clang compilation for AltiVec from previous check-in
2021-01-28 18:36:40 +00:00
Chip Kerchner
0784d9f87b
Fix sqrt, ldexp and frexp compilation errors.
2021-01-25 15:22:19 -06:00
Pedro Caldeira
35d149e34c
Add missing functions for Packet8bf in Altivec architecture.
...
Including new tests for bfloat16 Packets.
Fix prsqrt on GenericPacketMath.
2020-09-08 09:22:11 -05:00
Everton Constantino
6568856275
Changing u/int8_t to un/signed char because clang does not understand
...
it.
Implementing pcmp_eq to Packet8 and Packet16.
2020-09-02 17:02:15 -03:00
Chip Kerchner
e5886457c8
Change Packet8s and Packet8us to use vector commands on Power for pmadd, pmul and psub.
2020-08-28 19:27:32 +00:00
Pedro Caldeira
704798d1df
Add support for Bfloat16 to use vector instructions on Altivec
...
architecture
2020-08-10 13:22:01 -05:00
Pedro Caldeira
2d67af2d2b
Add pscatter for Packet16{u}c (int8)
2020-05-20 17:29:34 -03:00
Pedro Caldeira
5fdc179241
Altivec template functions to better code reusability
2020-05-11 21:04:51 +00:00
Rasmus Munk Larsen
225ab040e0
Remove unused packet op "palign".
...
Clean up a compiler warning in c++03 mode in AVX512/Complex.h.
2020-05-07 17:14:26 -07:00
Pedro Caldeira
29f0917a43
Add support to vector instructions to Packet16uc and Packet16c
2020-04-27 12:48:08 -03:00
Rasmus Munk Larsen
e80ec24357
Remove unused packet op "preduxp".
2020-04-23 18:17:14 +00:00
Pedro Caldeira
0c67b855d2
Add Packet8s and Packet8us to support signed/unsigned int16/short Altivec vector operations
2020-04-21 14:52:46 -03:00
Everton Constantino
deb93ed1bf
Adhere to recommended load/store intrinsics for pp64le
2020-03-23 15:18:15 -03:00
Everton Constantino
5afdaa473a
Fixing float32's pround halfway criteria to match STL's criteria.
2020-03-21 22:30:54 -05:00
Joel Holdsworth
232f904082
Add shift_left<N> and shift_right<N> coefficient-wise unary Array functions
2020-03-19 17:24:06 +00:00
Everton Constantino
5a8b97b401
Switching unpacket_traits<Packet4i> to vectorizable=true.
2020-01-13 16:08:20 -03:00
Rasmus Munk Larsen
6de5ed08d8
Add generic PacketMath implementation of the Error Function (erf).
2019-09-19 12:48:30 -07:00