public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 00/10] rs6000: Carry bit improvements
@ 2014-12-08 14:18 Segher Boessenkool
  2014-12-08 14:18 ` [PATCH 03/10] rs6000: Do not use addic in the ctr* splitters Segher Boessenkool
                   ` (9 more replies)
  0 siblings, 10 replies; 33+ messages in thread
From: Segher Boessenkool @ 2014-12-08 14:18 UTC (permalink / raw)
  To: gcc-patches; +Cc: dje.gcc, Segher Boessenkool

This series makes the PowerPC port deal with the {add,subf}{c,ic,e,ze,me}
instructions directly, not as bigger primitives (which used to be emitted as
multiple machine instructions).

It does this by expanding multi-precision add/sub/neg as well as the unsigned
wordlength sCOND to separate machine insns, which are then simplified where
possible by the combine pass and friends.  For eq/ne this series splits after
combine.

This is PR target/64180.

All patches bootstrapped and tested on powerpc64-linux, runtestflags
-m32,-m64,-m32/-mpowerpc64,-m64/-mlra; also a lot of tiny tests that
I'll submit separately.

Comments?  Is this okay for mainline?


Segher


Segher Boessenkool (10):
  rs6000: Clobber XER[CA] in all user asm statements
  rs6000: Remove addic alternative from various lo_sum patterns
  rs6000: Do not use addic in the ctr* splitters
  rs6000: Remove addic from the normal add pattern
  rs6000: Merge and split add and addic
  rs6000: New add/subf carry insns
  rs6000: The big carry insns addition
  rs6000: compare->two for rld*;rld*.
  rs6000: Remove the (now unused) insn type "compare"
  rs6000: Get rid of the weird decimal thing in add

 gcc/config/rs6000/40x.md          |    2 +-
 gcc/config/rs6000/440.md          |    2 +-
 gcc/config/rs6000/476.md          |    2 +-
 gcc/config/rs6000/601.md          |    2 +-
 gcc/config/rs6000/603.md          |    2 +-
 gcc/config/rs6000/6xx.md          |    2 +-
 gcc/config/rs6000/7450.md         |    2 +-
 gcc/config/rs6000/7xx.md          |    2 +-
 gcc/config/rs6000/8540.md         |    2 +-
 gcc/config/rs6000/cell.md         |   10 +-
 gcc/config/rs6000/darwin.md       |   16 +-
 gcc/config/rs6000/e300c2c3.md     |    2 +-
 gcc/config/rs6000/e500mc.md       |    2 +-
 gcc/config/rs6000/e500mc64.md     |    2 +-
 gcc/config/rs6000/e5500.md        |    2 +-
 gcc/config/rs6000/e6500.md        |    2 +-
 gcc/config/rs6000/mpc.md          |    2 +-
 gcc/config/rs6000/power4.md       |    5 +-
 gcc/config/rs6000/power5.md       |    5 +-
 gcc/config/rs6000/power6.md       |    5 +-
 gcc/config/rs6000/power7.md       |    5 +-
 gcc/config/rs6000/power8.md       |    8 +-
 gcc/config/rs6000/predicates.md   |   14 +
 gcc/config/rs6000/rs6000-protos.h |    1 +
 gcc/config/rs6000/rs6000.c        |   49 +-
 gcc/config/rs6000/rs6000.md       | 1909 ++++++++++++-------------------------
 gcc/config/rs6000/rs64.md         |    2 +-
 gcc/config/rs6000/spe.md          |   18 +-
 28 files changed, 733 insertions(+), 1344 deletions(-)

-- 
1.8.1.4

^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2015-01-19 15:00 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-08 14:18 [PATCH 00/10] rs6000: Carry bit improvements Segher Boessenkool
2014-12-08 14:18 ` [PATCH 03/10] rs6000: Do not use addic in the ctr* splitters Segher Boessenkool
2014-12-08 14:28   ` David Edelsohn
2014-12-08 14:18 ` [PATCH 02/10] rs6000: Remove addic alternative from various lo_sum patterns Segher Boessenkool
2014-12-08 14:27   ` David Edelsohn
2014-12-08 14:18 ` [PATCH 01/10] rs6000: Clobber XER[CA] in all user asm statements Segher Boessenkool
2014-12-08 14:25   ` David Edelsohn
2014-12-09 21:48     ` Richard Henderson
2015-01-19  8:41   ` Hans-Peter Nilsson
2015-01-19 15:13     ` Segher Boessenkool
2014-12-08 14:47 ` [PATCH 07/10] rs6000: The big carry insns addition Segher Boessenkool
2014-12-09 18:56   ` David Edelsohn
2014-12-08 14:47 ` [PATCH 10/10] rs6000: Get rid of the weird decimal thing in add Segher Boessenkool
2014-12-09 18:57   ` David Edelsohn
2014-12-08 14:47 ` [PATCH 04/10] rs6000: Remove addic from the normal add pattern Segher Boessenkool
2014-12-08 14:44   ` David Edelsohn
2014-12-08 15:01     ` Segher Boessenkool
2014-12-08 15:10       ` David Edelsohn
2014-12-09 16:25         ` Eric Botcazou
2014-12-09 16:48           ` David Edelsohn
2014-12-09 17:01             ` Segher Boessenkool
2014-12-09 17:12       ` Segher Boessenkool
2014-12-08 14:47 ` [PATCH 05/10] rs6000: Merge and split add and addic Segher Boessenkool
2014-12-08 15:31   ` David Edelsohn
2014-12-08 14:47 ` [PATCH 06/10] rs6000: New add/subf carry insns Segher Boessenkool
2014-12-08 15:41   ` David Edelsohn
2014-12-08 15:53     ` David Edelsohn
2014-12-10 14:00       ` Segher Boessenkool
2014-12-10 14:39         ` David Edelsohn
2014-12-08 14:47 ` [PATCH 08/10] rs6000: compare->two for rld*;rld* Segher Boessenkool
2014-12-09 18:56   ` David Edelsohn
2014-12-08 14:47 ` [PATCH 09/10] rs6000: Remove the (now unused) insn type "compare" Segher Boessenkool
2014-12-09 18:57   ` David Edelsohn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).