rs6000: Make constant formation a tiny bit better
authorSegher Boessenkool <segher@kernel.crashing.org>
Fri, 19 May 2017 11:29:21 +0000 (13:29 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Fri, 19 May 2017 11:29:21 +0000 (13:29 +0200)
commit5d3ae76af134ab1f901f05223e57fc4ef951b18c
tree58d1e883a54e2e25917097c06c8dd3dc265e9d50
parent3a6461f307f6204f2b415a3fc94fa21dc7cbe3ec
rs6000: Make constant formation a tiny bit better

If we cannot load a constant into a register in one insn, and that
constant is a valid mask (for rotate instructions), we currently
prefer to load -1 and then mask it.  This patch makes us not do that if
instead we could use two add or or instructions, since those are
sometimes faster on certain CPUs (and never are slower).

* config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
use this splitter if two add or or instructions would also work for
the constant we want to generate.

From-SVN: r248265
gcc/ChangeLog
gcc/config/rs6000/rs6000.md