https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82498
--- Comment #6 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Jack Lloyd from comment #5) > Jakub thank you very much for your comments, this was helpful for me in > getting consistent rol/ror generation. > > Speaking as a user it's frustrating that Clang and GCC don't just have a > builtin for rotations like MSVC does, instead you have to guess what > expressions the optimizer(s) know about. That said there are a lot of > strange ways to right a rotate and probably GCC doesn't need to know all of > them. You can use __rol{b,w,d,q} and __ror{b,w,d,q} (and their aliases) from ia32intrin.h. These are standardized; you have to include x86intrin.h header.