From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24725 invoked by alias); 5 May 2009 18:03:21 -0000 Received: (qmail 21979 invoked by uid 48); 5 May 2009 18:03:07 -0000 Date: Tue, 05 May 2009 18:03:00 -0000 Subject: [Bug target/40030] New: vector float * vector float + vector float should produce only vmaddfp X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "pinskia 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: 2009-05/txt/msg00360.txt.bz2 Take: #define vector __vector vector float f(vector float a, vector float b, vector float c) { return a * b + c; } --- CUT --- Currently for Powerpc (with -O2 -maltivec), we get: vspltisw 0,-1 vslw 0,0,0 vmaddfp 3,2,3,0 vaddfp 2,3,4 But this should really just produce: vmaddfp 2,2,3,4 -- Summary: vector float * vector float + vector float should produce only vmaddfp Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: enhancement Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org GCC target triplet: powerpc*-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40030