On Wed, Dec 02, 2015 at 01:50:46PM +1030, Alan Modra wrote: > On Wed, Dec 02, 2015 at 01:55:17AM +0000, Segher Boessenkool wrote: > > + emit_insn (gen_subdi3 (tmp, op1, op2)); > > + emit_insn (gen_lshrdi3 (tmp2, tmp, GEN_INT (63))); > > + emit_insn (gen_anddi3 (tmp3, tmp2, const1_rtx)); > > Why the AND? The top 63 bits are already clear.
Ha, yes. Thanks. In a previous version I shifted by less, in which case GCC is smart enough to make it 63 anyway. 63 is always correct as well, and simpler because you don't need the AND. But I forgot to take it out :-) Segher