This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/23649] [4.1 Regression] gcc.dg/ppc-and-1.c failure due to not using rlwinm
- From: "cvs-commit at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 1 Sep 2005 02:48:11 -0000
- Subject: [Bug target/23649] [4.1 Regression] gcc.dg/ppc-and-1.c failure due to not using rlwinm
- References: <20050831090145.23649.amodra@bigpond.net.au>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-09-01 02:48 -------
Subject: Bug 23649
CVSROOT: /cvs/gcc
Module name: gcc
Changes by: amodra@gcc.gnu.org 2005-09-01 02:48:02
Modified files:
gcc : ChangeLog
gcc/config/rs6000: predicates.md rs6000-protos.h rs6000.c
rs6000.h rs6000.md
Log message:
PR target/23649
* config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
(mask64_operand): Reinstate code prior to 2005-06-11 change.
(mask64_2_operand): Reinstate code prior to 2004-11-11 change.
(and64_2_operand): Tweak to use predicate.
(and_operand): Adjust for mask_operand changes.
* config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
(print_operand): Likewise.
(rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
(mask64_1or2_operand): Delete.
* rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
* config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
(EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
(EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
* config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
(rotldi3_internal4): Likewise.
(rotldi3_internal5, rotldi3_internal5 split): Likewise.
(rotldi3_internal6, rotldi3_internal6 split): Likewise.
(ashldi3_internal7): Likewise.
(ashldi3_internal8, ashldi3_internal8 split): Likewise.
(ashldi3_internal, ashldi3_internal9 split): Likewise.
(anddi3 split): Don't match mask64_operand.
(anddi3_internal2): Add rlwinm. Modify 't' splitter predicate.
(anddi3_internal3): Add rlwinm. Use and64_2_operand in non-cr0
splitter and match TARGET_64BIT not TARGET_POWERPC64. Modify
't' splitter predicate.
(movdi_internal64 + 2): Revert 2005-06-11 change.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.9870&r2=2.9871
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/predicates.md.diff?cvsroot=gcc&r1=1.24&r2=1.25
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000-protos.h.diff?cvsroot=gcc&r1=1.107&r2=1.108
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.c.diff?cvsroot=gcc&r1=1.863&r2=1.864
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.h.diff?cvsroot=gcc&r1=1.383&r2=1.384
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.md.diff?cvsroot=gcc&r1=1.405&r2=1.406
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23649