* [Bug libfortran/26985] incorrect matmul result
2006-04-02 10:47 [Bug libfortran/26985] New: incorrect matmul result fxcoudert at gcc dot gnu dot org
@ 2006-04-02 10:49 ` fxcoudert at gcc dot gnu dot org
2006-04-02 18:41 ` tkoenig at gcc dot gnu dot org
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: fxcoudert at gcc dot gnu dot org @ 2006-04-02 10:49 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from fxcoudert at gcc dot gnu dot org 2006-04-02 10:49 -------
Analysis and patch idea here:
http://gcc.gnu.org/ml/fortran/2006-04/msg00029.html
--
fxcoudert at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |fxcoudert at gcc dot gnu dot
|dot org |org
Status|UNCONFIRMED |ASSIGNED
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2006-04-02 10:49:37
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26985
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libfortran/26985] incorrect matmul result
2006-04-02 10:47 [Bug libfortran/26985] New: incorrect matmul result fxcoudert at gcc dot gnu dot org
2006-04-02 10:49 ` [Bug libfortran/26985] " fxcoudert at gcc dot gnu dot org
@ 2006-04-02 18:41 ` tkoenig at gcc dot gnu dot org
2006-04-02 19:21 ` tkoenig at gcc dot gnu dot org
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-04-02 18:41 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from tkoenig at gcc dot gnu dot org 2006-04-02 18:41 -------
The test case also exposes a problem with the way that
the result is stored.
Look at this:
$ cat matmul.f90
program main
implicit none
real(8) :: a(2,9), b(9,7), c(2,7)
integer :: i, j
a = 1.d0
b = 2.d0
c = 1789789.d0
c(:,1:7:2) = matmul(a,b(:,1:7:2))
do i = 1, 7
print *, c(:,i)
end do
end program main
$ gfortran matmul.f90 && ./a.out
18.0000000000000 18.0000000000000
0.00000000000000 0.00000000000000
18.0000000000000 18.0000000000000
0.00000000000000 0.00000000000000
1789807.00000000 1789807.00000000
1789789.00000000 1789789.00000000
1789807.00000000 1789807.00000000
$ ifort matmul.f90 && ./a.out
18.0000000000000 18.0000000000000
1789789.00000000 1789789.00000000
18.0000000000000 18.0000000000000
1789789.00000000 1789789.00000000
18.0000000000000 18.0000000000000
1789789.00000000 1789789.00000000
18.0000000000000 18.0000000000000
--
tkoenig at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |tkoenig at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26985
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libfortran/26985] incorrect matmul result
2006-04-02 10:47 [Bug libfortran/26985] New: incorrect matmul result fxcoudert at gcc dot gnu dot org
2006-04-02 10:49 ` [Bug libfortran/26985] " fxcoudert at gcc dot gnu dot org
2006-04-02 18:41 ` tkoenig at gcc dot gnu dot org
@ 2006-04-02 19:21 ` tkoenig at gcc dot gnu dot org
2006-04-29 16:31 ` tkoenig at gcc dot gnu dot org
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-04-02 19:21 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from tkoenig at gcc dot gnu dot org 2006-04-02 19:21 -------
(In reply to comment #2)
> The test case also exposes a problem with the way that
> the result is stored.
Actually, it doesn't. Storing the result is OK, clearing beforehand isn't.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26985
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libfortran/26985] incorrect matmul result
2006-04-02 10:47 [Bug libfortran/26985] New: incorrect matmul result fxcoudert at gcc dot gnu dot org
` (2 preceding siblings ...)
2006-04-02 19:21 ` tkoenig at gcc dot gnu dot org
@ 2006-04-29 16:31 ` tkoenig at gcc dot gnu dot org
2006-05-05 11:08 ` fxcoudert at gcc dot gnu dot org
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-04-29 16:31 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from tkoenig at gcc dot gnu dot org 2006-04-29 16:30 -------
Hi FX,
would you care to replace rystride == ycount with rystride == xcount
as a fix for this, independent of the matmul BLAS issue?
I think this is definitely worth it, especially for 4.1.
Pre-approved if you do so :-)
Thomas
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26985
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libfortran/26985] incorrect matmul result
2006-04-02 10:47 [Bug libfortran/26985] New: incorrect matmul result fxcoudert at gcc dot gnu dot org
` (3 preceding siblings ...)
2006-04-29 16:31 ` tkoenig at gcc dot gnu dot org
@ 2006-05-05 11:08 ` fxcoudert at gcc dot gnu dot org
2006-05-05 11:08 ` fxcoudert at gcc dot gnu dot org
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: fxcoudert at gcc dot gnu dot org @ 2006-05-05 11:08 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from fxcoudert at gcc dot gnu dot org 2006-05-05 11:08 -------
Subject: Bug 26985
Author: fxcoudert
Date: Fri May 5 11:08:23 2006
New Revision: 113552
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113552
Log:
PR libfortran/26985
* m4/matmul.m4: Correct the condition for the memset call,
and remove the unneeded call to size0.
* generated/matmul_r4.c: Regenerate.
* generated/matmul_r8.c: Regenerate.
* generated/matmul_r10.c: Regenerate.
* generated/matmul_r16.c: Regenerate.
* generated/matmul_c4.c: Regenerate.
* generated/matmul_c8.c: Regenerate.
* generated/matmul_c10.c: Regenerate.
* generated/matmul_c16.c: Regenerate.
* generated/matmul_i4.c: Regenerate.
* generated/matmul_i8.c: Regenerate.
* generated/matmul_i16.c: Regenerate.
* gfortran.dg/matmul_2.f90: New test.
Added:
trunk/gcc/testsuite/gfortran.dg/matmul_2.f90
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/libgfortran/ChangeLog
trunk/libgfortran/generated/matmul_c10.c
trunk/libgfortran/generated/matmul_c16.c
trunk/libgfortran/generated/matmul_c4.c
trunk/libgfortran/generated/matmul_c8.c
trunk/libgfortran/generated/matmul_i16.c
trunk/libgfortran/generated/matmul_i4.c
trunk/libgfortran/generated/matmul_i8.c
trunk/libgfortran/generated/matmul_r10.c
trunk/libgfortran/generated/matmul_r16.c
trunk/libgfortran/generated/matmul_r4.c
trunk/libgfortran/generated/matmul_r8.c
trunk/libgfortran/m4/matmul.m4
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26985
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libfortran/26985] incorrect matmul result
2006-04-02 10:47 [Bug libfortran/26985] New: incorrect matmul result fxcoudert at gcc dot gnu dot org
` (4 preceding siblings ...)
2006-05-05 11:08 ` fxcoudert at gcc dot gnu dot org
@ 2006-05-05 11:08 ` fxcoudert at gcc dot gnu dot org
2006-05-05 21:34 ` [Bug libfortran/26985] [4.1 only] " fxcoudert at gcc dot gnu dot org
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: fxcoudert at gcc dot gnu dot org @ 2006-05-05 11:08 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from fxcoudert at gcc dot gnu dot org 2006-05-05 11:07 -------
(In reply to comment #4)
> would you care to replace rystride == ycount with rystride == xcount
> as a fix for this, independent of the matmul BLAS issue?
>
> I think this is definitely worth it, especially for 4.1.
>
> Pre-approved if you do so :-)
Commiting on mainline first, after regtesting on i686-linux and adding the
corresponding testcase. I will commit on 4.1 branch in a few days.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26985
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libfortran/26985] [4.1 only] incorrect matmul result
2006-04-02 10:47 [Bug libfortran/26985] New: incorrect matmul result fxcoudert at gcc dot gnu dot org
` (5 preceding siblings ...)
2006-05-05 11:08 ` fxcoudert at gcc dot gnu dot org
@ 2006-05-05 21:34 ` fxcoudert at gcc dot gnu dot org
2006-05-07 13:03 ` fxcoudert at gcc dot gnu dot org
2006-05-07 15:50 ` [Bug libfortran/26985] " fxcoudert at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: fxcoudert at gcc dot gnu dot org @ 2006-05-05 21:34 UTC (permalink / raw)
To: gcc-bugs
--
fxcoudert at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |patch
Known to fail| |4.1.1
Known to work| |4.2.0
Summary|incorrect matmul result |[4.1 only] incorrect matmul
| |result
Target Milestone|--- |4.1.1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26985
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libfortran/26985] [4.1 only] incorrect matmul result
2006-04-02 10:47 [Bug libfortran/26985] New: incorrect matmul result fxcoudert at gcc dot gnu dot org
` (6 preceding siblings ...)
2006-05-05 21:34 ` [Bug libfortran/26985] [4.1 only] " fxcoudert at gcc dot gnu dot org
@ 2006-05-07 13:03 ` fxcoudert at gcc dot gnu dot org
2006-05-07 15:50 ` [Bug libfortran/26985] " fxcoudert at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: fxcoudert at gcc dot gnu dot org @ 2006-05-07 13:03 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from fxcoudert at gcc dot gnu dot org 2006-05-07 13:02 -------
Subject: Bug 26985
Author: fxcoudert
Date: Sun May 7 13:02:39 2006
New Revision: 113600
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113600
Log:
PR libfortran/26985
* m4/matmul.m4: Correct the condition for the memset call,
and remove the unneeded call to size0.
* generated/matmul_r4.c: Regenerate.
* generated/matmul_r8.c: Regenerate.
* generated/matmul_r10.c: Regenerate.
* generated/matmul_r16.c: Regenerate.
* generated/matmul_c4.c: Regenerate.
* generated/matmul_c8.c: Regenerate.
* generated/matmul_c10.c: Regenerate.
* generated/matmul_c16.c: Regenerate.
* generated/matmul_i4.c: Regenerate.
* generated/matmul_i8.c: Regenerate.
* generated/matmul_i16.c: Regenerate.
* gfortran.dg/matmul_2.f90: New test.
Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/matmul_2.f90
- copied unchanged from r113552,
trunk/gcc/testsuite/gfortran.dg/matmul_2.f90
Modified:
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
branches/gcc-4_1-branch/libgfortran/ChangeLog
branches/gcc-4_1-branch/libgfortran/generated/matmul_c10.c
branches/gcc-4_1-branch/libgfortran/generated/matmul_c16.c
branches/gcc-4_1-branch/libgfortran/generated/matmul_c4.c
branches/gcc-4_1-branch/libgfortran/generated/matmul_c8.c
branches/gcc-4_1-branch/libgfortran/generated/matmul_i16.c
branches/gcc-4_1-branch/libgfortran/generated/matmul_i4.c
branches/gcc-4_1-branch/libgfortran/generated/matmul_i8.c
branches/gcc-4_1-branch/libgfortran/generated/matmul_r10.c
branches/gcc-4_1-branch/libgfortran/generated/matmul_r16.c
branches/gcc-4_1-branch/libgfortran/generated/matmul_r4.c
branches/gcc-4_1-branch/libgfortran/generated/matmul_r8.c
branches/gcc-4_1-branch/libgfortran/m4/matmul.m4
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26985
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libfortran/26985] incorrect matmul result
2006-04-02 10:47 [Bug libfortran/26985] New: incorrect matmul result fxcoudert at gcc dot gnu dot org
` (7 preceding siblings ...)
2006-05-07 13:03 ` fxcoudert at gcc dot gnu dot org
@ 2006-05-07 15:50 ` fxcoudert at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: fxcoudert at gcc dot gnu dot org @ 2006-05-07 15:50 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from fxcoudert at gcc dot gnu dot org 2006-05-07 15:49 -------
Fixed on both 4.1 and mainline.
--
fxcoudert at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Keywords|patch |
Known to fail|4.1.1 |
Known to work|4.2.0 |4.2.0 4.1.1
Resolution| |FIXED
Summary|[4.1 only] incorrect matmul |incorrect matmul result
|result |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26985
^ permalink raw reply [flat|nested] 10+ messages in thread