[Bug target/25268] ICE on lshrdi3_31 pattern

2005-12-12 Thread pinskia at gcc dot gnu dot org
--- Comment #13 from pinskia at gcc dot gnu dot org 2005-12-12 20:47 --- Fixed. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNE

[Bug target/25268] ICE on lshrdi3_31 pattern

2005-12-08 Thread krebbel at gcc dot gnu dot org
--- Comment #12 from krebbel at gcc dot gnu dot org 2005-12-08 08:56 --- Subject: Bug 25268 Author: krebbel Date: Thu Dec 8 08:56:24 2005 New Revision: 108220 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=108220 Log: 2005-12-08 Andreas Krebbel <[EMAIL PROTECTED]>

[Bug target/25268] ICE on lshrdi3_31 pattern

2005-12-08 Thread krebbel at gcc dot gnu dot org
--- Comment #11 from krebbel at gcc dot gnu dot org 2005-12-08 08:33 --- Subject: Bug 25268 Author: krebbel Date: Thu Dec 8 08:33:39 2005 New Revision: 108217 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=108217 Log: 2005-12-08 Andreas Krebbel <[EMAIL PROTECTED]>

[Bug target/25268] ICE on lshrdi3_31 pattern

2005-12-08 Thread krebbel at gcc dot gnu dot org
--- Comment #10 from krebbel at gcc dot gnu dot org 2005-12-08 08:32 --- Subject: Bug 25268 Author: krebbel Date: Thu Dec 8 08:32:34 2005 New Revision: 108216 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=108216 Log: 2005-12-08 Andreas Krebbel <[EMAIL PROTECTED]>

[Bug target/25268] ICE on lshrdi3_31 pattern

2005-12-07 Thread krebbel at gcc dot gnu dot org
--- Comment #9 from krebbel at gcc dot gnu dot org 2005-12-07 17:33 --- (In reply to comment #8) > Ok (not sure if it really is a good idea to make the *_operand names that > long), Mmmh you are right but I couldn't think of a better name that moment. just I'm afraid ashrdi3_cc_64_and,

[Bug target/25268] ICE on lshrdi3_31 pattern

2005-12-07 Thread jakub at gcc dot gnu dot org
--- Comment #8 from jakub at gcc dot gnu dot org 2005-12-07 16:52 --- Created an attachment (id=10437) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10437&action=view) gcc41-pr25268.patch Ok (not sure if it really is a good idea to make the *_operand names that long), just I'm afr

[Bug target/25268] ICE on lshrdi3_31 pattern

2005-12-07 Thread krebbel at gcc dot gnu dot org
--- Comment #7 from krebbel at gcc dot gnu dot org 2005-12-07 16:26 --- Created an attachment (id=10435) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10435&action=view) Patch without testcase I've bootstrapped the attached patch on s390 and s390x without testsuite regressions. T

[Bug target/25268] ICE on lshrdi3_31 pattern

2005-12-07 Thread jakub at gcc dot gnu dot org
--- Comment #6 from jakub at gcc dot gnu dot org 2005-12-07 15:32 --- Created an attachment (id=10434) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10434&action=view) gcc41-s390-shift-and.patch How does this patch look like then? Sorry for not waiting for your patch, but I need

[Bug target/25268] ICE on lshrdi3_31 pattern

2005-12-07 Thread jakub at gcc dot gnu dot org
--- Comment #5 from jakub at gcc dot gnu dot org 2005-12-07 12:06 --- Oops, sorry for not RTFSing before posting the comment here. All I did was verify that x86_64 doesn't remove useless ANDs. Should we add new peepholes or insns patterns to i386 for this too? -- http://gcc.gnu.org/

[Bug target/25268] ICE on lshrdi3_31 pattern

2005-12-07 Thread krebbel at gcc dot gnu dot org
--- Comment #4 from krebbel at gcc dot gnu dot org 2005-12-07 11:26 --- (In reply to comment #3) > BTW, is the s390 hw really masking the shift count with 63 for all insns, > or just the DImode shifts and with 31 for SImode shifts? On S/390 all shift count operands are masked with 63. SI

[Bug target/25268] ICE on lshrdi3_31 pattern

2005-12-07 Thread jakub at gcc dot gnu dot org
--- Comment #3 from jakub at gcc dot gnu dot org 2005-12-07 08:18 --- BTW, is the s390 hw really masking the shift count with 63 for all insns, or just the DImode shifts and with 31 for SImode shifts? I'd say targets masking the shift count to number of bits of *shift3's mode is very com

[Bug target/25268] ICE on lshrdi3_31 pattern

2005-12-06 Thread jakub at gcc dot gnu dot org
--- Comment #2 from jakub at gcc dot gnu dot org 2005-12-06 14:48 --- Yeah, making separate (define_insn "*di3_and_31" [(set (match_operand:DI 0 "register_operand" "=d") (SHIFT:DI (match_operand:DI 1 "register_operand" "0") (and:SI (match_operand:SI 2 "shift_c

[Bug target/25268] ICE on lshrdi3_31 pattern

2005-12-06 Thread krebbel at gcc dot gnu dot org
--- Comment #1 from krebbel at gcc dot gnu dot org 2005-12-06 14:33 --- Shorter testcase: long long foo (long long x, int y) { return x << ((y + 1) & 63); } The count operand of a shift instruction is a somewhat weird thing on S/390. It is basically an address accepting the sum of an