Adhemerval Zanella
ac4e838289
powerpc: Remove POWER7 strncasecmp optimization
...
These routines are not extensively used (gnulib documentation even
recommend use a replacement [1]), and there is already a POWER8
version that uses proper vectorized instructions.
[1] https://www.gnu.org/software/gnulib/manual/gnulib.html#C-strings
Checked with a build for some powerpc variations.
Reviewed-by: Peter Bergner <bergner@linux.ibm.com >
2025-05-06 13:31:01 -03:00
Adhemerval Zanella Netto
a46bb1523d
powerpc: Remove strncmp variants
...
The default, power4, and power7 implementation just adds word aligned
access when inputs have the same aligment. The unaligned case
is still done by byte operations.
This is already covered by the generic implementation, which also add
the unaligned input optimization.
Checked on powerpc-linux-gnu built without multi-arch for powerpc,
power4, and power7.
Reviewed-by: Rajalakshmi Srinivasaraghavan <rajis@linux.ibm.com >
2023-03-02 16:41:43 -03:00
Adhemerval Zanella
68122d8a04
powerpc: Remove powerpc32 bzero optimizations
...
The symbol is not present in current POSIX specification and compiler
already generates memset call.
2022-02-23 14:18:18 -03:00
Adhemerval Zanella
f82ed45d7f
powerpc: Use generic wcsrchr optimization
...
This patch removes the power6 wcsrchr optimization and uses generic
implementation instead. Currently, both power6 and power7 IFUNC variant
resulting binary are essentially the same and the generic implementation
with unrolling loop set to 8 also results in similar performance.
Checked on powerpc64-linux-gnu.
* sysdeps/powerpc/Makefile [$(subdir) == wcsmbs] (CFLAGS-wcsrchr.c):
New rule.
* sysdeps/powerpc/power6/wcsrchr.c: Remove file.
* sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c:
Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c:
Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c:
Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power6.c: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/wcsrchr-ppc64.c: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c: Likewise.
* sysdeps/powerpc/powerpc64/power6/wcsrchr.c: Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile
[$(subdir) == wcsmbs] (sysdeps_routines): Remove wcsrchr-power6 and
wcsrchr-power7.
(CFLAGS-wcsrchr-power7.c, CFLAGS-wcsrchr-power6.c): Remove rule.
* sysdeps/powerpc/powerpc64/multiarch/Makefile: Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c:
Remove wcsrchr optimizations.
* sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Likewise.
2019-04-04 16:01:14 +07:00
Adhemerval Zanella
421e3005ca
powerpc: Use generic wcschr optimization
...
This patch removes the power6 wcschr optimization and uses generic
implementation instead. Currently, both power6 and power7 IFUNC variant
resulting binary are essentially the same and the generic implementation
with unrolling loop set to 8 also results in similar performance.
Checked on powerpc64-linux-gnu.
* sysdeps/powerpc/Makefile [$(subdir) == wcsmbs] (CFLAGS-wcschr.c):
New rule.
* sysdeps/powerpc/power6/wcschr.c: Remove file.
* sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power6.c:
Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power7.c:
Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c:
Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/wcschr-power6.c: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/wcschr-power7.c: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/wcschr-ppc64.c: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/wcschr.c: Likewise.
* sysdeps/powerpc/powerpc64/power6/wcschr.c: Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile
[$(subdir) == wcsmbs] (sysdeps_routines): Remove wcschr-power6 and
wcschr-power7.
(CFLAGS-wcschr-power7.c, CFLAGS-wcschr-power6.c): Remove rule.
* sysdeps/powerpc/powerpc64/multiarch/Makefile: Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c:
Remove wcschr optimizations.
* sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Likewise.
2019-04-04 16:01:14 +07:00
Adhemerval Zanella
447a1306c3
powerpc: Use generic wcscpy optimization
...
This patch removes the power6 wcscpy optimization and uses generic
implementation instead. Currently, both power6 and power7 IFUNC variant
resulting binary are essentially the same and the generic implementation
with unrolling loop set to 8 also results in similar performance.
Checked on powerpc64-linux-gnu.
* sysdeps/powerpc/Makefile [$(subdir) == wcsmbs] (CFLAGS-wcscpy.c):
New rule.
* sysdeps/powerpc/power6/wcscpy.c: Remove file.
* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power6.c:
Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power7.c:
Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c:
Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/wcscpy-power6.c: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/wcscpy-power7.c: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/wcscpy-ppc64.c: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/wcscpy.c: Likewise.
* sysdeps/powerpc/powerpc64/power6/wcscpy.c: Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile
[$(subdir) == wcsmbs] (sysdeps_routines): Remove wcscpy-power6 and
wcscpy-power7.
(CFLAGS-wcscpy-power7.c, CFLAGS-wcscpy-power6.c): Remove rule.
* sysdeps/powerpc/powerpc64/multiarch/Makefile: Likewise.
* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c:
Remove wcscpy optimizations.
* sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Likewise.
2019-04-04 16:01:14 +07:00
Adhemerval Zanella
10169938b1
powerpc: wordcopy/memmove cleanup for ppc32
...
This patch cleanup some multiarch code related to memmmove
optimization. Initial IFUNC support added specialized wordcopy
symbols which turned in local IFUNC calls used by memmove default
implementation. The patch removes the internal IFUNC for wordcopy
symbols and uses local branches in the memmmove optimization instead.
2015-02-09 06:42:28 -05:00
Adhemerval Zanella
8548a53d69
powerpc: multiarch Makefile cleanup for powerpc32
...
This patch cleanups the multiarch Makefile by putting the wide chars
implementation to correct wcsmbs rule.
2015-02-09 06:42:28 -05:00
Adhemerval Zanella
07aedd78b0
PowerPC: optimized memmove for POWER7/PPC32
...
This patch adds a optimized memmove for power7 by using the optimized
power7 memcpy for forward copying.
2014-07-07 15:41:27 -05:00
Adhemerval Zanella
ea5a72f882
PowerPC: multiarch wordcopy routines for PowerPC32
2013-12-06 05:47:02 -06:00
Adhemerval Zanella
93be09e725
PowerPC: multiarch wcscpy for PowerPC32
2013-12-06 05:47:02 -06:00
Adhemerval Zanella
bb04e529f6
PowerPC: multiarch wcsrchr for PowerPC32
2013-12-06 05:47:02 -06:00
Adhemerval Zanella
05b5cd1ce5
PowerPC: multiarch wcschr for PowerPC32
2013-12-06 05:47:02 -06:00
Adhemerval Zanella
ba9641477e
PowerPC: multiarch strchr for PowerPC32
2013-12-06 05:47:01 -06:00
Adhemerval Zanella
31c81aaa01
PowerPC: multiarch strchrnul for PowerPC32
2013-12-06 05:47:01 -06:00
Adhemerval Zanella
0d0607d9ab
PowerPC: multiarch strncasecmp for PowerPC32
2013-12-06 05:47:01 -06:00
Adhemerval Zanella
4dfd5c8647
PowerPC: multiarch strcasecmp for PowerPC32
2013-12-06 05:47:01 -06:00
Adhemerval Zanella
a19e01a355
PowerPC: multiarch strncmp for PowerPC32
2013-12-06 05:47:01 -06:00
Adhemerval Zanella
ae9cf7a2e8
PowerPC: multiarch strnlen for PowerPC32
2013-12-06 05:47:00 -06:00
Adhemerval Zanella
3148bb7d2c
PowerPC: multiarch strlen for PowerPC32
2013-12-06 05:47:00 -06:00
Adhemerval Zanella
7af8b94625
PowerPC: multiarch rawmemchr for PowerPC32
2013-12-06 05:47:00 -06:00
Adhemerval Zanella
03a6aa6a63
PowerPC: multiarch memrchr for PowerPC32
2013-12-06 05:47:00 -06:00
Adhemerval Zanella
1c62e6d960
PowerPC: multiarch memchr for PowerPC32
2013-12-06 05:47:00 -06:00
Adhemerval Zanella
87da8bdbe1
PowerPC: multiarch mempcpy for PowerPC32
2013-12-06 05:46:59 -06:00
Adhemerval Zanella
20ed471427
PowerPC: multiarch memset/bzero for PowerPC32
2013-12-06 05:46:59 -06:00
Adhemerval Zanella
ab3e3a46d5
PowerPC: multiarch memcmp for PowerPC32
2013-12-06 05:46:59 -06:00
Adhemerval Zanella
930de6f09e
PowerPC: multiarch memcpy for PowerPC32
2013-12-06 05:46:59 -06:00
Adhemerval Zanella
4c628e0026
PowerPC: initial support for multilib for PowerPC32
...
This patch add a empty Makefile, the C IFUNC helper macros, and a empty
available IFUNC implementation enumeration.
2013-12-06 05:46:59 -06:00