From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7413 invoked by alias); 13 Nov 2004 17:42:09 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 7390 invoked by uid 48); 13 Nov 2004 17:42:06 -0000 Date: Sat, 13 Nov 2004 17:42:00 -0000 Message-ID: <20041113174206.7389.qmail@sourceware.org> From: "pinskia at gcc dot gnu dot org" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20041113170938.18463.steven@gcc.gnu.org> References: <20041113170938.18463.steven@gcc.gnu.org> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug tree-optimization/18463] [4.0 Regression] Moving floating point through an integer register X-Bugzilla-Reason: CC X-SW-Source: 2004-11/txt/msg01657.txt.bz2 List-Id: ------- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-13 17:42 ------- Though I should note that PPC is much better on the mainline than before: gcc 4.0.0: L4: lfsx f0,r3,r2 stfsx f0,r5,r2 lfsx f13,r4,r2 stfsx f13,r6,r2 addi r2,r2,4 bdnz L4 gcc 3.3 (Apple's): L9: slwi r7,r11,2 addi r11,r11,1 lfsx f0,r7,r3 stfsx f0,r7,r5 lfsx f1,r7,r4 stfsx f1,r7,r6 bdnz L9 So really this is a target specific bug :). Also here the loop for x86_64: .L4: movl (%rdx,%r10), %eax incl %ecx movl %eax, (%rdx,%r9) movl (%rdx,%rdi), %eax movl %eax, (%rdx,%rsi) addq $4, %rdx cmpl %ecx, %r8d jg .L4 Note changing the type of n and i to be unsigned we get slightly better code: .L4: movl -16(%ebp), %ebx leal 0(,%ecx,4), %eax incl %ecx cmpl %ecx, 24(%ebp) movl (%ebx,%eax), %edx movl -20(%ebp), %ebx movl %edx, (%edi,%eax) movl (%esi,%eax), %edx movl %edx, (%ebx,%eax) jne .L4 So IV-OPTs is not doing its job correctly in one place. -- What |Removed |Added ---------------------------------------------------------------------------- GCC target triplet| |i?86-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18463