diff options
author | Matthias Kretz <m.kretz@gsi.de> | 2024-06-14 15:11:25 +0200 |
---|---|---|
committer | Matthias Kretz <m.kretz@gsi.de> | 2024-06-20 12:56:45 +0200 |
commit | 1340ddea0158de3f49aeb75b4013e5fc313ff6f4 (patch) | |
tree | fa2c12e6042c294193ac98ee5798abd7c7593e61 /gcc/config/riscv/iterators.md | |
parent | 301927d93356871f606ff3db2549bb5d44e74516 (diff) | |
download | gcc-1340ddea0158de3f49aeb75b4013e5fc313ff6f4.zip gcc-1340ddea0158de3f49aeb75b4013e5fc313ff6f4.tar.gz gcc-1340ddea0158de3f49aeb75b4013e5fc313ff6f4.tar.bz2 |
libstdc++: Fix find_last_set(simd_mask) to ignore padding bits
With the change to the AVX512 find_last_set implementation, the change
to AVX512 operator!= is unnecessary. However, the latter was not
producing optimal code and unnecessarily set the padding bits. In
theory, the compiler could determine that with the new !=
implementation, the bit operation for clearing the padding bits is a
no-op and can be elided.
Signed-off-by: Matthias Kretz <m.kretz@gsi.de>
libstdc++-v3/ChangeLog:
PR libstdc++/115454
* include/experimental/bits/simd_x86.h (_S_not_equal_to): Use
neq comparison instead of bitwise negation after eq.
(_S_find_last_set): Clear unused high bits before computing
bit_width.
* testsuite/experimental/simd/pr115454_find_last_set.cc: New
test.
Diffstat (limited to 'gcc/config/riscv/iterators.md')
0 files changed, 0 insertions, 0 deletions