From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5219 invoked by alias); 1 Aug 2010 17:28:25 -0000 Received: (qmail 5168 invoked by uid 48); 1 Aug 2010 17:28:15 -0000 Date: Sun, 01 Aug 2010 17:28:00 -0000 Message-ID: <20100801172815.5167.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug fortran/45159] Unneccessary temporaries In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "burnus at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-08/txt/msg00032.txt.bz2 ------- Comment #2 from burnus at gcc dot gnu dot org 2010-08-01 17:28 ------- (In reply to comment #1) > ! --- FOUR ---- (also occurs for Octopus) > c = matmul(b, c) As pointed out by Dominique, one needs to be careful. I think one can optimize: c = matmul(b, transpose(c)) c = matmul(c,b) where c is a rank-2 matrix. I think one cannot optimize it if c is just a vector. (Add "conj" as you wish.) And check whether I have not confused columns and rows Side remark: sum(array*scalar) = sum(array)*scalar -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45159