https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102239
--- Comment #5 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to luoxhu from comment #4) > Simply adjust the sequence of dot instruction could produce expected code, > is this correct? No it isn't. Sorry. > foo: > .LFB0: > .cfi_startproc > rldicr. 3,3,29,1 > beq 0,.L2 This is fine, but only because it tests the EQ bit (not the LT or GT bits). So the generated RTL for this insn (the 2insn one) is not correct.