Bug 33438 - [4.3 Regression] ICE in cselib_record_set, at cselib.c:1515 on x86
Summary: [4.3 Regression] ICE in cselib_record_set, at cselib.c:1515 on x86
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.3.0
: P3 normal
Target Milestone: 4.2.3
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2007-09-14 17:03 UTC by Serge Belyshev
Modified: 2007-12-03 04:16 UTC (History)
3 users (show)

See Also:
Host:
Target: x86_64-*-*, i?86-*-*
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Serge Belyshev 2007-09-14 17:03:04 UTC
Compile with -O1:

long double f (long double x)
{
  return __builtin_remainderl (x, x);
}

bug.c: In function 'f':
bug.c:4: internal compiler error: in cselib_record_set, at cselib.c:1515
Comment 1 uros 2007-09-14 19:24:38 UTC
Subject: Bug 33438

Author: uros
Date: Fri Sep 14 19:24:26 2007
New Revision: 128502

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128502
Log:
        PR target/33438
        * config/i386/i386.md (fmodxf3): Copy operands[2] to temporary register
        when operands[2] equals operands[1].
        (remainderxf3): Ditto.

testsuite/ChangeLog:

        PR target/33438
        * gcc.target/i386/pr33438.c: New test.


Added:
    trunk/gcc/testsuite/gcc.target/i386/pr33483.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.md
    trunk/gcc/testsuite/ChangeLog

Comment 2 Uroš Bizjak 2007-09-14 19:27:30 UTC
Fixed.
Comment 3 uros 2007-10-10 10:02:10 UTC
Subject: Bug 33438

Author: uros
Date: Wed Oct 10 10:01:53 2007
New Revision: 129201

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129201
Log:
        Backport from mainline:
        2007-09-14  Uros Bizjak  <ubizjak@gmail.com>

        PR target/33438
        * config/i386/i386.md (fmodxf3): Copy operands[2] to temporary
        register when operands[2] equals operands[1].
        (dremxf3): Ditto.

        2007-09-10  Uros Bizjak  <ubizjak@gmail.com>

        PR target/33369
        * gcc/config/i386/sse.md (ashr<mode>3): Change op2 mode to SImode.
        Use 'N' operand constraint for op2.
        (lshr<mode>3): Ditto.
        (ashl<mode>3): Ditto.
        (vec_shl_<mode>): Use const_0_to_255_mul_8_operand predicate for op2.
        (vec_shr_<mode>): Use const_0_to_255_mul_8_operand predicate for op2.

        * gcc/config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLL?128,
        IX86_BUILTIN_PSRA*?128, IX86_BUILTIN_PSRL?128]: Convert op1 to SImode.

testsuite/ChangeLog:

        Backport from mainline:
        2007-09-14  Uros Bizjak  <ubizjak@gmail.com>

        PR target/33438
        * gcc.target/i386/pr33438.c: New test.

        2007-09-10  Uros Bizjak  <ubizjak@gmail.com>

        PR target/33369
        * gcc.dg/vect/pr33369.c: New test.


Added:
    branches/gcc-4_2-branch/gcc/testsuite/gcc.dg/vect/pr33369.c
      - copied unchanged from r128328, trunk/gcc/testsuite/gcc.dg/vect/pr33369.c
    branches/gcc-4_2-branch/gcc/testsuite/gcc.target/i386/pr33483.c
      - copied unchanged from r128502, trunk/gcc/testsuite/gcc.target/i386/pr33483.c
Modified:
    branches/gcc-4_2-branch/gcc/ChangeLog
    branches/gcc-4_2-branch/gcc/config/i386/i386.c
    branches/gcc-4_2-branch/gcc/config/i386/i386.md
    branches/gcc-4_2-branch/gcc/config/i386/sse.md
    branches/gcc-4_2-branch/gcc/testsuite/ChangeLog