https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88097
--- Comment #6 from Daniel Fruzynski ---
Thanks Joseph for info. godbolt.org now uses glibc 2.27, so no wonder that I
got results which I posted here.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88097
--- Comment #5 from joseph at codesourcery dot com ---
As of glibc 2.28, glibc uses __builtin_bswap* when available on all
architectures.
commit 0d40d0ecba3b1e5b8c3b8da01c708fea3948e193
Author: Joseph Myers
Date: Tue Feb 6 21:55:08 2018 +000
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88097
Daniel Fruzynski changed:
What|Removed |Added
Status|RESOLVED|UNCONFIRMED
Resolution|INVALI
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88097
Richard Biener changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88097
--- Comment #2 from Daniel Fruzynski ---
Please also take a look on code which performs opposite conversion. gcc also
does not use movbe here. Both gcc and clang are not able to optimize this into
one 32-bit store, this is another possible optimi
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88097
--- Comment #1 from Daniel Fruzynski ---
I also tried to swap Word1 and Word2 fields in structure to see what will
happen. It turned out that gcc with -O3 -mmovbe generates code without movbe:
[asm]
test(Test*):
movzx eax, WORD PTR [rdi