https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108938
--- Comment #8 from Hongtao.liu <crazylht at gmail dot com> --- (In reply to Jakub Jelinek from comment #6) > Can be just shift. The bswap descriptions are zero byte means the byte is > zero, Yes, I'm also supporting byte permutation as 0x0801020004050607 which is bswap + bit_and + rotate. Shift is just one form of that(with lower/higher part masked with 0), and I hope gimple can simplify bit_and + rotate to shift that so I don't need to specially handle that in the pass.