diff options
author | Chris Metcalf <cmetcalf@tilera.com> | 2012-05-11 18:03:58 -0400 |
---|---|---|
committer | Chris Metcalf <cmetcalf@tilera.com> | 2012-05-14 15:46:12 -0400 |
commit | 64d76ca0647fc8f2a8709be957a551e9b92f5b1b (patch) | |
tree | a56a70006d79bbb06d75e7048d956552e2cedc4b /ChangeLog.tile | |
parent | 575298fcd298bb3ff7d7ba0d0bceac9429ae2b5d (diff) | |
download | glibc-64d76ca0647fc8f2a8709be957a551e9b92f5b1b.tar.gz glibc-64d76ca0647fc8f2a8709be957a551e9b92f5b1b.tar.xz glibc-64d76ca0647fc8f2a8709be957a551e9b92f5b1b.zip |
tilegx: small performance fix for string routines
We were multiplying a byte by 0x0101010101010101ULL to create a constant for SIMD ops, but the compiler isn't good at optimizing this case (the fact that one operand is a byte is lost by the time it would be possible to do the optimization). So instead we add a helper routine that explicitly uses SIMD ops to create the constant.
Diffstat (limited to 'ChangeLog.tile')
-rw-r--r-- | ChangeLog.tile | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog.tile b/ChangeLog.tile index 83136aa6c3..3c192e908a 100644 --- a/ChangeLog.tile +++ b/ChangeLog.tile @@ -1,5 +1,16 @@ 2012-05-12 Chris Metcalf <cmetcalf@tilera.com> + * sysdeps/tile/tilegx/memchr.c: Use new copy_byte() function + to efficiently generate a large constant for masking. + * sysdeps/tile/tilegx/memset.c: Likewise. + * sysdeps/tile/tilegx/rawmemchr.c: Likewise. + * sysdeps/tile/tilegx/strchr.c: Likewise. + * sysdeps/tile/tilegx/strchrnul.c: Likewise. + * sysdeps/tile/tilegx/strrchr.c: Likewise. + * sysdeps/tile/tilegx/string-endian.h (copy_byte): New function. + +2012-05-12 Chris Metcalf <cmetcalf@tilera.com> + * sysdeps/tile/tilegx/memcpy.c: Allow memcpy(p, p, n) without corrupting memory at "p". |