https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103743
Jiu Fu Guo <guojiufu at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |guojiufu at gcc dot gnu.org --- Comment #3 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> --- For "in == 0x8000000000000000LL", it would be also ok with: rotldi %r9,%r3,16 cmpldi %cr0,%r9,32768 And it would be similar for "in == 0x8000FFFFFFFFFFFFLL" (highest bit and low48bits are all 1) rotldi %r9,%r3,16 cmpdi %cr0,%r9,-32768