public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/39152]  New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed
@ 2009-02-11 19:01 hjl dot tools at gmail dot com
  2009-02-11 20:24 ` [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006 hjl dot tools at gmail dot com
                   ` (21 more replies)
  0 siblings, 22 replies; 23+ messages in thread
From: hjl dot tools at gmail dot com @ 2009-02-11 19:01 UTC (permalink / raw)
  To: gcc-bugs

On Linux/ia32, revision 144101 gave:

gfortran -m32 -c -o mccas.fppized.o    -O2 -ffast-math -mfpmath=sse -mssse3    
    -ffixed-form       mccas.fppized.f
mccas.fppized.f: In function 'cashes':
mccas.fppized.f:1745: error: unrecognizable insn:
(insn 364 296 365 5 mccas.fppized.f:1712 (set (reg/v:SI 4 si [orig:93 ii ]
[93])
        (mem/s:SI (plus:SI (ashift:SI (reg:SI 3 bx)
                    (const_int 2 [0x2]))
                (const:SI (plus:SI (symbol_ref:SI ("ijpair_") <var_decl
0x2b5442f74f00 ijpair>)
                        (const_int -4 [0xfffffffffffffffc])))) [2 ijpair.ia S4
A32])) -1 (nil))
mccas.fppized.f:1745: internal compiler error: in extract_insn, at recog.c:2038
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
specmake: *** [mccas.fppized.o] Error 1

Revision 144092 is OK.


-- 
           Summary: [4.4 regression] 416.gamess in SPEC CPU 2006 failed
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hjl dot tools at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
@ 2009-02-11 20:24 ` hjl dot tools at gmail dot com
  2009-02-11 20:48 ` bonzini at gnu dot org
                   ` (20 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: hjl dot tools at gmail dot com @ 2009-02-11 20:24 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from hjl dot tools at gmail dot com  2009-02-11 20:24 -------
Revision 144098:

http://gcc.gnu.org/ml/gcc-cvs/2009-02/msg00264.html

is the cause. Joey, Xuepeng, can you find a small testcase?


-- 

hjl dot tools at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |Joey dot ye at intel dot
                   |                            |com, xuepeng dot guo at
                   |                            |intel dot com, bonzini at
                   |                            |gnu dot org
            Summary|[4.4 regression] 416.gamess |[4.4 regression] Revision
                   |in SPEC CPU 2006 failed     |144098 breaks 416.gamess in
                   |                            |SPEC CPU 2006


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
  2009-02-11 20:24 ` [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006 hjl dot tools at gmail dot com
@ 2009-02-11 20:48 ` bonzini at gnu dot org
  2009-02-11 21:00 ` hjl dot tools at gmail dot com
                   ` (19 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: bonzini at gnu dot org @ 2009-02-11 20:48 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from bonzini at gnu dot org  2009-02-11 20:48 -------
Why is this unrecognizable?!?  ebx can be an index as well as the base.

Anyway, easily fixed.  Will post a patch tomorrow.


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |bonzini at gnu dot org
                   |dot org                     |
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-02-11 20:48:03
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
  2009-02-11 20:24 ` [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006 hjl dot tools at gmail dot com
  2009-02-11 20:48 ` bonzini at gnu dot org
@ 2009-02-11 21:00 ` hjl dot tools at gmail dot com
  2009-02-11 21:20 ` bonzini at gnu dot org
                   ` (18 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: hjl dot tools at gmail dot com @ 2009-02-11 21:00 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1584 bytes --]



------- Comment #3 from hjl dot tools at gmail dot com  2009-02-11 20:59 -------
A testcase:

[hjl@gnu-27 Docs]$ cat /tmp/x.f
      SUBROUTINE CASHES(E,HESS,FC,FA,NORB,NPR)
      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
      PARAMETER (MXAO=2047)
      DIMENSION HESS(NPR),E(NORB,*),FC(*),FA(*)
      COMMON /IJPAIR/ IA(MXAO)
      COMMON /MCPAR / NFZC,NCORBS,NCI,NORBS,NORBX,NUM
      K=0
      DO 200 IU = 1,NORB - NCORBS
         I = IU + NCORBS
         II=IA(I)+I
         DO 100 J = 1,NCORBS
            IF (I.GT.NORBS) THEN
               HESS(K)=FC(II) + FA(II) - E(J,J)
            ELSE
               HESS(K)=FA(II) - E(I,I) - E(J,J) + FC(JJ) + FA(JJ)
            END IF
  100    CONTINUE
  200 CONTINUE
      RETURN
      END
[hjl@gnu-27 Docs]$ /export/gnu/import/rrs/144098/usr/bin/gfortran -m32 -S -O2
-msse2 -mfpmath=sse -ffast-math         -ffixed-form /tmp/x.f
/tmp/x.f: In function ‘cashes’:
/tmp/x.f:19: error: unrecognizable insn:
(insn 178 144 179 4 /tmp/x.f:10 (set (reg/v:SI 4 si [orig:73 ii ] [73])
        (mem/s:SI (plus:SI (ashift:SI (reg:SI 3 bx)
                    (const_int 2 [0x2]))
                (const:SI (plus:SI (symbol_ref:SI ("ijpair_") <var_decl
0x2b73b1ef0aa0 ijpair>)
                        (const_int -4 [0xfffffffffffffffc])))) [3 ijpair.ia S4
A32])) -1 (nil))
/tmp/x.f:19: internal compiler error: in extract_insn, at recog.c:2038
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
[hjl@gnu-27 Docs]$ 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (2 preceding siblings ...)
  2009-02-11 21:00 ` hjl dot tools at gmail dot com
@ 2009-02-11 21:20 ` bonzini at gnu dot org
  2009-02-11 21:21 ` bonzini at gnu dot org
                   ` (17 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: bonzini at gnu dot org @ 2009-02-11 21:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from bonzini at gnu dot org  2009-02-11 21:20 -------
The problem is that inside mems we use MULT not ASHIFT.

Can you please test this? Thanks!

--- config/i386/i386.md (revision 144098)
+++ config/i386/i386.md (working copy)
@@ -20722,7 +20722,7 @@
    (parallel [(set (match_dup 0)
                    (match_op_dup 3 [(match_dup 0) (match_dup 1)]))
               (clobber (reg:CC FLAGS_REG))])]
-  "operands[4] = simplify_replace_rtx (operands[2], operands[0],
operands[1]);")
+  "operands[4] = replace_rtx (operands[2], operands[0], operands[1]);")

 (define_peephole2
   [(set (match_operand 0 "register_operand" "")


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (3 preceding siblings ...)
  2009-02-11 21:20 ` bonzini at gnu dot org
@ 2009-02-11 21:21 ` bonzini at gnu dot org
  2009-02-11 21:41 ` dominiq at lps dot ens dot fr
                   ` (16 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: bonzini at gnu dot org @ 2009-02-11 21:21 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from bonzini at gnu dot org  2009-02-11 21:20 -------
There was wrapping, all you have to do is remove "simplify_".


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (4 preceding siblings ...)
  2009-02-11 21:21 ` bonzini at gnu dot org
@ 2009-02-11 21:41 ` dominiq at lps dot ens dot fr
  2009-02-12  1:39 ` hjl dot tools at gmail dot com
                   ` (15 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: dominiq at lps dot ens dot fr @ 2009-02-11 21:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from dominiq at lps dot ens dot fr  2009-02-11 21:41 -------
With the patch in comment #4 the test in comment #3 compiles without ICE on
i686-apple-darwin9 (it gave an ICE before the patch).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (5 preceding siblings ...)
  2009-02-11 21:41 ` dominiq at lps dot ens dot fr
@ 2009-02-12  1:39 ` hjl dot tools at gmail dot com
  2009-02-12 12:55 ` bonzini at gnu dot org
                   ` (14 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: hjl dot tools at gmail dot com @ 2009-02-12  1:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from hjl dot tools at gmail dot com  2009-02-12 01:38 -------
(In reply to comment #4)
> The problem is that inside mems we use MULT not ASHIFT.
> 
> Can you please test this? Thanks!
> 
> --- config/i386/i386.md (revision 144098)
> +++ config/i386/i386.md (working copy)
> @@ -20722,7 +20722,7 @@
>     (parallel [(set (match_dup 0)
>                     (match_op_dup 3 [(match_dup 0) (match_dup 1)]))
>                (clobber (reg:CC FLAGS_REG))])]
> -  "operands[4] = simplify_replace_rtx (operands[2], operands[0],
> operands[1]);")
> +  "operands[4] = replace_rtx (operands[2], operands[0], operands[1]);")
> 
>  (define_peephole2
>    [(set (match_operand 0 "register_operand" "")
> 

I verified that this fixed 416.gamess.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (6 preceding siblings ...)
  2009-02-12  1:39 ` hjl dot tools at gmail dot com
@ 2009-02-12 12:55 ` bonzini at gnu dot org
  2009-02-12 14:04 ` hjl at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: bonzini at gnu dot org @ 2009-02-12 12:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from bonzini at gnu dot org  2009-02-12 12:55 -------
Subject: Re:  [4.4 regression] Revision 144098 breaks 
        416.gamess in SPEC CPU 2006

I think you can commit it as obvious.  I can only do so tonight or
tomorrow morning.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (7 preceding siblings ...)
  2009-02-12 12:55 ` bonzini at gnu dot org
@ 2009-02-12 14:04 ` hjl at gcc dot gnu dot org
  2009-02-12 14:32 ` bonzini at gnu dot org
                   ` (12 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: hjl at gcc dot gnu dot org @ 2009-02-12 14:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from hjl at gcc dot gnu dot org  2009-02-12 14:04 -------
Subject: Bug 39152

Author: hjl
Date: Thu Feb 12 14:04:20 2009
New Revision: 144126

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=144126
Log:
gcc/

2009-02-12  Paolo Bonzini  <bonzini@gnu.org>

        PR target/39152
        * config/i386/i386.md: Replace simplify_replace_rtx with
        replace_rtx in the new peephole2.

gcc/testsuite/

2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>

        PR target/39152
        * gfortran.dg/pr39152.f: New.

Added:
    trunk/gcc/testsuite/gfortran.dg/pr39152.f
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.md
    trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (8 preceding siblings ...)
  2009-02-12 14:04 ` hjl at gcc dot gnu dot org
@ 2009-02-12 14:32 ` bonzini at gnu dot org
  2009-02-12 14:35 ` hjl dot tools at gmail dot com
                   ` (11 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: bonzini at gnu dot org @ 2009-02-12 14:32 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from bonzini at gnu dot org  2009-02-12 14:31 -------
thanks h.j.


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (9 preceding siblings ...)
  2009-02-12 14:32 ` bonzini at gnu dot org
@ 2009-02-12 14:35 ` hjl dot tools at gmail dot com
  2009-02-12 15:26 ` hjl dot tools at gmail dot com
                   ` (10 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: hjl dot tools at gmail dot com @ 2009-02-12 14:35 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2020 bytes --]



------- Comment #11 from hjl dot tools at gmail dot com  2009-02-12 14:34 -------
Another regression. But you need -mavx to see it:

./xgcc -B./
/net/gnu-13/export/gnu/src/gcc/gcc/libgomp/testsuite/libgomp.fortran/omp_parse4.f90

-B/export/build/gnu/gcc-avx/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libgomp/
-I/export/build/gnu/gcc-avx/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libgomp
-I/net/gnu-13/export/gnu/src/gcc/gcc/libgomp/testsuite/.. -march=i486
-fmessage-length=0 -fopenmp  -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions  
-B/export/build/gnu/gcc-avx/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libgomp/../libgfortran/.libs
 -S -m32 -mavx
/net/gnu-13/export/gnu/src/gcc/gcc/libgomp/testsuite/libgomp.fortran/omp_parse4.f90:
In function âtest_workshare.1497.omp_fn.0â:
/net/gnu-13/export/gnu/src/gcc/gcc/libgomp/testsuite/libgomp.fortran/omp_parse4.f90:23:
error: insn does not satisfy its constraints:
(insn 2019 2018 1609 173
/net/gnu-13/export/gnu/src/gcc/gcc/libgomp/testsuite/libgomp.fortran/omp_parse4.f90:28
(parallel [
            (set (reg:SI 2 cx [orig:190 D.2207 ] [190])
                (plus:SI (reg:SI 2 cx [orig:190 D.2207 ] [190])
                    (reg:SI 21 xmm0)))
            (clobber (reg:CC 17 flags))
        ]) 285 {*addsi_1} (expr_list:REG_DEAD (reg:SI 21 xmm0)
        (expr_list:REG_UNUSED (reg:CC 17 flags)
            (nil))))
/net/gnu-13/export/gnu/src/gcc/gcc/libgomp/testsuite/libgomp.fortran/omp_parse4.f90:23:
internal compiler error: in build_def_use, at regrename.c:774
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.


-- 

hjl dot tools at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (10 preceding siblings ...)
  2009-02-12 14:35 ` hjl dot tools at gmail dot com
@ 2009-02-12 15:26 ` hjl dot tools at gmail dot com
  2009-02-12 15:41 ` hjl dot tools at gmail dot com
                   ` (9 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: hjl dot tools at gmail dot com @ 2009-02-12 15:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from hjl dot tools at gmail dot com  2009-02-12 15:26 -------
We have

(insn 1988 1119 1121 173
/export/gnu/src/gcc-work/gcc/libgomp/testsuite/libgomp.fortran/omp_parse4.f90:28
(set (reg:SI 2 cx [orig:190 D.2207 ] [190])
        (reg:SI 21 xmm0)) 47 {*movsi_1} (expr_list:REG_DEAD (reg:SI 21 xmm0)
        (nil)))

(note:HI 1121 1988 1600 173 NOTE_INSN_DELETED)

(insn:HI 1600 1121 1609 173
/export/gnu/src/gcc-work/gcc/libgomp/testsuite/libgomp.fortran/omp_parse4.f90:28
(parallel [
            (set (reg:SI 2 cx [orig:190 D.2207 ] [190])
                (plus:SI (reg:SI 2 cx [orig:190 D.2207 ] [190])
                    (mem/s:SI (plus:SI (reg/f:SI 1 dx [orig:511 pretmp.178 ]
[511])
                            (const_int 32 [0x20])) [2 S4 A32])))
            (clobber (reg:CC 17 flags))
        ]) 285 {*addsi_1} (expr_list:REG_UNUSED (reg:CC 17 flags)
        (nil)))

We can't replace Mov+MemOp with Load+RegOp here.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (11 preceding siblings ...)
  2009-02-12 15:26 ` hjl dot tools at gmail dot com
@ 2009-02-12 15:41 ` hjl dot tools at gmail dot com
  2009-02-12 19:05 ` bonzini at gnu dot org
                   ` (8 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: hjl dot tools at gmail dot com @ 2009-02-12 15:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from hjl dot tools at gmail dot com  2009-02-12 15:41 -------
This patch:

--- ./i386.md.class     2009-02-12 06:42:42.000000000 -0800
+++ ./i386.md   2009-02-12 07:39:03.000000000 -0800
@@ -20736,7 +20736,11 @@
                      [(match_dup 0)
                       (match_operand:SI 2 "memory_operand" "")]))
               (clobber (reg:CC FLAGS_REG))])]
-  "operands[0] != operands[1]"
+  "operands[0] != operands[1]
+  && ((GENERAL_REGNO_P (REGNO (operands[0]))
+       && GENERAL_REGNO_P (REGNO (operands[1])))
+      || (SSE_REGNO_P (REGNO (operands[0]))
+         && SSE_REGNO_P (REGNO (operands[1]))))"
   [(set (match_dup 0) (match_dup 4))
    (parallel [(set (match_dup 0)
                    (match_op_dup 3 [(match_dup 0) (match_dup 1)]))

works for me.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (12 preceding siblings ...)
  2009-02-12 15:41 ` hjl dot tools at gmail dot com
@ 2009-02-12 19:05 ` bonzini at gnu dot org
  2009-02-12 19:07 ` bonzini at gnu dot org
                   ` (7 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: bonzini at gnu dot org @ 2009-02-12 19:05 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from bonzini at gnu dot org  2009-02-12 19:05 -------
Subject: Re:  [4.4 regression] Revision 144098 breaks 
        416.gamess in SPEC CPU 2006

> The patch is obviously okay, but it seems weird that this is accepted.
>  I must be missing something on peephole2...

By obviously okay I don't mean that it should not be approved by a
maintainer.  In fact, I wonder if the peephole2 shouldn't even be
restricted to GENERAL_REGNO_P.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (13 preceding siblings ...)
  2009-02-12 19:05 ` bonzini at gnu dot org
@ 2009-02-12 19:07 ` bonzini at gnu dot org
  2009-02-12 19:25 ` hjl dot tools at gmail dot com
                   ` (6 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: bonzini at gnu dot org @ 2009-02-12 19:07 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from bonzini at gnu dot org  2009-02-12 19:07 -------
Subject: Re:  [4.4 regression] Revision 144098 breaks 
        416.gamess in SPEC CPU 2006

The patch is obviously okay, but it seems weird that this is accepted.
 I must be missing something on peephole2...


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (14 preceding siblings ...)
  2009-02-12 19:07 ` bonzini at gnu dot org
@ 2009-02-12 19:25 ` hjl dot tools at gmail dot com
  2009-02-12 20:58 ` hjl dot tools at gmail dot com
                   ` (5 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: hjl dot tools at gmail dot com @ 2009-02-12 19:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from hjl dot tools at gmail dot com  2009-02-12 19:25 -------
Subject: Re:  [4.4 regression] Revision 144098 breaks
        416.gamess in SPEC CPU 2006

On Thu, Feb 12, 2009 at 07:05:27PM -0000, bonzini at gnu dot org wrote:
> Subject: Re:  [4.4 regression] Revision 144098 breaks 
>         416.gamess in SPEC CPU 2006
> 
> > The patch is obviously okay, but it seems weird that this is accepted.
> >  I must be missing something on peephole2...
> 
> By obviously okay I don't mean that it should not be approved by a
> maintainer.  In fact, I wonder if the peephole2 shouldn't even be
> restricted to GENERAL_REGNO_P.
> 

We can't limit it to GENERAL_REGNO_P. See PR 38824. Here is a
different patch.

H.J.
---
--- gcc/config/i386/i386-protos.h.class 2008-10-07 14:03:40.000000000 -0700
+++ gcc/config/i386/i386-protos.h       2009-02-12 10:49:30.000000000 -0800
@@ -160,6 +160,7 @@ extern bool ix86_cannot_change_mode_clas
                                           enum machine_mode, enum reg_class);
 extern enum reg_class ix86_preferred_reload_class (rtx, enum reg_class);
 extern enum reg_class ix86_preferred_output_reload_class (rtx, enum
reg_class);
+extern enum reg_class ix86_hard_reg_class (int regno);
 extern int ix86_memory_move_cost (enum machine_mode, enum reg_class, int);
 extern int ix86_mode_needed (int, rtx);
 extern void emit_i387_cw_initialization (int);
--- gcc/config/i386/i386.c.class        2009-02-12 10:48:41.000000000 -0800
+++ gcc/config/i386/i386.c      2009-02-12 11:21:21.000000000 -0800
@@ -29483,6 +29483,23 @@ ix86_enum_va_list (int idx, const char *
   return 1;
 }

+/* Return GENERAL_REGS, FLOAT_REGS, MMX_REGS or SSE_REGS for hard 
+   register REGNO.  Return FLOAT_REGS for FP stack registers.  */
+
+enum reg_class
+ix86_hard_reg_class (int regno)
+{
+  if (GENERAL_REGNO_P (regno))
+    return GENERAL_REGS;
+  if (FP_REGNO_P (regno))
+    return FLOAT_REGS;
+  if (SSE_REGNO_P (regno))
+    return SSE_REGS;
+  if (MMX_REGNO_P (regno))
+    return MMX_REGS;
+  gcc_unreachable ();
+}
+
 /* Initialize the GCC target structure.  */
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY ix86_return_in_memory
--- gcc/config/i386/i386.md.class       2009-02-12 09:17:09.000000000 -0800
+++ gcc/config/i386/i386.md     2009-02-12 10:51:12.000000000 -0800
@@ -20736,7 +20736,9 @@
                      [(match_dup 0)
                       (match_operand:SI 2 "memory_operand" "")]))
               (clobber (reg:CC FLAGS_REG))])]
-  "operands[0] != operands[1]"
+  "operands[0] != operands[1]
+   && ix86_hard_reg_class (REGNO (operands[0]))
+      == ix86_hard_reg_class (REGNO (operands[1]))"
   [(set (match_dup 0) (match_dup 4))
    (parallel [(set (match_dup 0)
                    (match_op_dup 3 [(match_dup 0) (match_dup 1)]))


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (15 preceding siblings ...)
  2009-02-12 19:25 ` hjl dot tools at gmail dot com
@ 2009-02-12 20:58 ` hjl dot tools at gmail dot com
  2009-02-12 20:59 ` bonzini at gnu dot org
                   ` (4 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: hjl dot tools at gmail dot com @ 2009-02-12 20:58 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from hjl dot tools at gmail dot com  2009-02-12 20:58 -------
A patch is posted at

http://gcc.gnu.org/ml/gcc-patches/2009-02/msg00605.html


-- 

hjl dot tools at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                URL|                            |http://gcc.gnu.org/ml/gcc-
                   |                            |patches/2009-
                   |                            |02/msg00605.html


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (16 preceding siblings ...)
  2009-02-12 20:58 ` hjl dot tools at gmail dot com
@ 2009-02-12 20:59 ` bonzini at gnu dot org
  2009-02-12 21:36 ` hjl dot tools at gmail dot com
                   ` (3 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: bonzini at gnu dot org @ 2009-02-12 20:59 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from bonzini at gnu dot org  2009-02-12 20:59 -------
Subject: Re:  [4.4 regression] Revision 144098 breaks 
        416.gamess in SPEC CPU 2006

> We can't limit it to GENERAL_REGNO_P. See PR 38824. Here is a
> different patch.

H.J., I know, my patch *was* for PR38824. :-)  But I added two
peephole2, one for SImode (including the clobbering of CC, and with
additional replace_rtx handling) and one for MMX/SSE registers.  For
the record, the equivalent one for x87 regs was already there.

So restricting the problematic peephole to GENERAL_REGNO_P would not
cause PR38824 (for which there is a testcase).

Paolo


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (17 preceding siblings ...)
  2009-02-12 20:59 ` bonzini at gnu dot org
@ 2009-02-12 21:36 ` hjl dot tools at gmail dot com
  2009-02-12 21:39 ` bonzini at gnu dot org
                   ` (2 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: hjl dot tools at gmail dot com @ 2009-02-12 21:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #19 from hjl dot tools at gmail dot com  2009-02-12 21:36 -------
(In reply to comment #18)
> Subject: Re:  [4.4 regression] Revision 144098 breaks 
>         416.gamess in SPEC CPU 2006
> 
> > We can't limit it to GENERAL_REGNO_P. See PR 38824. Here is a
> > different patch.
> 
> H.J., I know, my patch *was* for PR38824. :-)  But I added two
> peephole2, one for SImode (including the clobbering of CC, and with
> additional replace_rtx handling) and one for MMX/SSE registers.  For
> the record, the equivalent one for x87 regs was already there.

The updated patch is at

http://gcc.gnu.org/ml/gcc-patches/2009-02/msg00608.html


-- 

hjl dot tools at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                URL|http://gcc.gnu.org/ml/gcc-  |http://gcc.gnu.org/ml/gcc-
                   |patches/2009-               |patches/2009-
                   |02/msg00605.html            |02/msg00608.html


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (18 preceding siblings ...)
  2009-02-12 21:36 ` hjl dot tools at gmail dot com
@ 2009-02-12 21:39 ` bonzini at gnu dot org
  2009-02-13 14:37 ` hjl at gcc dot gnu dot org
  2009-02-13 17:23 ` hjl dot tools at gmail dot com
  21 siblings, 0 replies; 23+ messages in thread
From: bonzini at gnu dot org @ 2009-02-12 21:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #20 from bonzini at gnu dot org  2009-02-12 21:39 -------
Thanks.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (19 preceding siblings ...)
  2009-02-12 21:39 ` bonzini at gnu dot org
@ 2009-02-13 14:37 ` hjl at gcc dot gnu dot org
  2009-02-13 17:23 ` hjl dot tools at gmail dot com
  21 siblings, 0 replies; 23+ messages in thread
From: hjl at gcc dot gnu dot org @ 2009-02-13 14:37 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #21 from hjl at gcc dot gnu dot org  2009-02-13 14:37 -------
Subject: Bug 39152

Author: hjl
Date: Fri Feb 13 14:37:11 2009
New Revision: 144158

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=144158
Log:
gcc/

2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>

        PR target/39152
        * config/i386/i386.md: Restrict the new peephole2 to move
        between the general purpose registers.

gcc/testsuite/

2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>

        PR target/39152
        * gfortran.dg/gomp/pr39152.f90: New.

Added:
    trunk/gcc/testsuite/gfortran.dg/gomp/pr39152.f90
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.md
    trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

* [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006
  2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
                   ` (20 preceding siblings ...)
  2009-02-13 14:37 ` hjl at gcc dot gnu dot org
@ 2009-02-13 17:23 ` hjl dot tools at gmail dot com
  21 siblings, 0 replies; 23+ messages in thread
From: hjl dot tools at gmail dot com @ 2009-02-13 17:23 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #22 from hjl dot tools at gmail dot com  2009-02-13 17:23 -------
Fixed.


-- 

hjl dot tools at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39152


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

end of thread, other threads:[~2009-02-13 17:23 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-02-11 19:01 [Bug target/39152] New: [4.4 regression] 416.gamess in SPEC CPU 2006 failed hjl dot tools at gmail dot com
2009-02-11 20:24 ` [Bug target/39152] [4.4 regression] Revision 144098 breaks 416.gamess in SPEC CPU 2006 hjl dot tools at gmail dot com
2009-02-11 20:48 ` bonzini at gnu dot org
2009-02-11 21:00 ` hjl dot tools at gmail dot com
2009-02-11 21:20 ` bonzini at gnu dot org
2009-02-11 21:21 ` bonzini at gnu dot org
2009-02-11 21:41 ` dominiq at lps dot ens dot fr
2009-02-12  1:39 ` hjl dot tools at gmail dot com
2009-02-12 12:55 ` bonzini at gnu dot org
2009-02-12 14:04 ` hjl at gcc dot gnu dot org
2009-02-12 14:32 ` bonzini at gnu dot org
2009-02-12 14:35 ` hjl dot tools at gmail dot com
2009-02-12 15:26 ` hjl dot tools at gmail dot com
2009-02-12 15:41 ` hjl dot tools at gmail dot com
2009-02-12 19:05 ` bonzini at gnu dot org
2009-02-12 19:07 ` bonzini at gnu dot org
2009-02-12 19:25 ` hjl dot tools at gmail dot com
2009-02-12 20:58 ` hjl dot tools at gmail dot com
2009-02-12 20:59 ` bonzini at gnu dot org
2009-02-12 21:36 ` hjl dot tools at gmail dot com
2009-02-12 21:39 ` bonzini at gnu dot org
2009-02-13 14:37 ` hjl at gcc dot gnu dot org
2009-02-13 17:23 ` hjl dot tools at gmail dot com

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).