about summary refs log tree commit diff
path: root/ChangeLog.tile
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2012-05-11 18:03:58 -0400
committerChris Metcalf <cmetcalf@tilera.com>2012-05-14 15:46:12 -0400
commit64d76ca0647fc8f2a8709be957a551e9b92f5b1b (patch)
treea56a70006d79bbb06d75e7048d956552e2cedc4b /ChangeLog.tile
parent575298fcd298bb3ff7d7ba0d0bceac9429ae2b5d (diff)
downloadglibc-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.tile11
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".