public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/66094] New: Handle transpose(A) in inline matmul
@ 2015-05-10 20:03 tkoenig at gcc dot gnu.org
  2015-05-10 20:11 ` [Bug fortran/66094] " tkoenig at gcc dot gnu.org
  2015-09-08 10:19 ` dominiq at lps dot ens.fr
  0 siblings, 2 replies; 3+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2015-05-10 20:03 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66094

            Bug ID: 66094
           Summary: Handle transpose(A) in inline matmul
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tkoenig at gcc dot gnu.org
  Target Milestone: ---


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

* [Bug fortran/66094] Handle transpose(A) in inline matmul
  2015-05-10 20:03 [Bug fortran/66094] New: Handle transpose(A) in inline matmul tkoenig at gcc dot gnu.org
@ 2015-05-10 20:11 ` tkoenig at gcc dot gnu.org
  2015-09-08 10:19 ` dominiq at lps dot ens.fr
  1 sibling, 0 replies; 3+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2015-05-10 20:11 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66094

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization
             Blocks|                            |37131

--- Comment #1 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
It would be nice to handle

  c = matmul(transpose(a),b)

This can be changed to

  do i=1,m
     c_t = 0
     do k=1, count
        do j=1,n
           c_t(j) = c_t(j) + at(k,i) * b(j,k)
        end do
     end do
     c(i,:) = c_t
  end do

with a vector temporary c_t

and

 c = matmul(a,transpose(b))

changed to

  c = 0
  do k=1, count
     do j=1,n
        do i=1,m
           c4(i,j) = c4(i,j) + a(i,k)*b(j,k)
        end do
     end do
  end do

(without a vector temporary).


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=37131
[Bug 37131] inline matmul for small matrix sizes


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

* [Bug fortran/66094] Handle transpose(A) in inline matmul
  2015-05-10 20:03 [Bug fortran/66094] New: Handle transpose(A) in inline matmul tkoenig at gcc dot gnu.org
  2015-05-10 20:11 ` [Bug fortran/66094] " tkoenig at gcc dot gnu.org
@ 2015-09-08 10:19 ` dominiq at lps dot ens.fr
  1 sibling, 0 replies; 3+ messages in thread
From: dominiq at lps dot ens.fr @ 2015-09-08 10:19 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66094

Dominique d'Humieres <dominiq at lps dot ens.fr> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2015-09-08
     Ever confirmed|0                           |1

--- Comment #2 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
Marked as NEW (Note that 'at' should be replaced with 'a'!-).


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

end of thread, other threads:[~2015-09-08 10:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-10 20:03 [Bug fortran/66094] New: Handle transpose(A) in inline matmul tkoenig at gcc dot gnu.org
2015-05-10 20:11 ` [Bug fortran/66094] " tkoenig at gcc dot gnu.org
2015-09-08 10:19 ` dominiq at lps dot ens.fr

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