diff options
author | Chris Metcalf <cmetcalf@mellanox.com> | 2017-12-05 10:24:56 -0500 |
---|---|---|
committer | Chris Metcalf <cmetcalf@mellanox.com> | 2017-12-05 10:24:56 -0500 |
commit | f18b8dc7d7ef3f01804e241d40f92faf480264c0 (patch) | |
tree | afdff9b17e2e45a11f18d5ea87a22c6705949d73 /sysdeps/tile/tilegx/memchr.c | |
parent | 446d22e91d3113be57a4b0d1151cf337458c3bec (diff) | |
download | glibc-f18b8dc7d7ef3f01804e241d40f92faf480264c0.tar.gz glibc-f18b8dc7d7ef3f01804e241d40f92faf480264c0.tar.xz glibc-f18b8dc7d7ef3f01804e241d40f92faf480264c0.zip |
tilegx: work around vector insn bug in gcc
Avoid an issue in gcc where some of the vector (aka SIMD) ops will sometimes end up getting wrongly optimized out. We use these instructions in many of the string implementations. If/when we have an upstreamed fix for this problem in gcc we can conditionalize the use of the extended assembly workaround in glibc.
Diffstat (limited to 'sysdeps/tile/tilegx/memchr.c')
-rw-r--r-- | sysdeps/tile/tilegx/memchr.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sysdeps/tile/tilegx/memchr.c b/sysdeps/tile/tilegx/memchr.c index 7da0f79da2..38c0da6737 100644 --- a/sysdeps/tile/tilegx/memchr.c +++ b/sysdeps/tile/tilegx/memchr.c @@ -58,7 +58,7 @@ __memchr (const void *s, int c, size_t n) /* Compute the address of the word containing the last byte. */ last_word_ptr = (const uint64_t *) ((uintptr_t) last_byte_ptr & -8); - while ((bits = __insn_v1cmpeq (v, goal)) == 0) + while ((bits = v1cmpeq (v, goal)) == 0) { if (__builtin_expect (p == last_word_ptr, 0)) { |