On Wed, May 6, 2015 at 9:36 AM, Segher Boessenkool <seg...@kernel.crashing.org> wrote: > This patch makes cstore expand all comparisons against a constant > (that aren't already handled by a subfc;subfe sequence) as an > addi ; [n]{and,or}[c] ; sr[wd]i sequence. It expands all the > possible inversions separately (as well as add to zero); combine > and friends will take care of all that. > > The two new expanders take a const_int_operand; this is more than > they can handle, but much less than its only caller (cstore) will > give it. cstore should handle more than just short operands as > it does now, but this patch doesn't touch that. > > Bootstrapped and tested on powerpc64-linux, with the usual set of flags > (-m32,-m32/-mpowerpc64,-m64,-m64/-mlra); no regressions. This code is > used thousands of times in the compiler itself, so no testcases. > > Okay for trunk? > > > Segher > > > 2015-05-06 Segher Boessenkool <seg...@kernel.crashing.org> > > * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander. > (cstore<mode>4_unsigned_imm): New expander. > (cstore<mode>4): Remove empty constraint strings. Use the new > expanders.
Okay. Thanks, David