From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4182 invoked by alias); 21 Jul 2010 08:22:56 -0000 Received: (qmail 4111 invoked by uid 48); 21 Jul 2010 08:22:40 -0000 Date: Wed, 21 Jul 2010 08:22:00 -0000 Message-ID: <20100721082240.4110.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug rtl-optimization/43494] [4.4/4.5/4.6 Regression] Overlooked dependency causes wrong scheduling, wrong code In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "steven 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-07/txt/msg02181.txt.bz2 ------- Comment #16 from steven at gcc dot gnu dot org 2010-07-21 08:22 ------- OK, I think I finally understand what Alexander tried to explain, and I've annotated the code. Alexander, does this look right to you? f1: // vector int f1(vector int t) .mmi mov r15 = r12 // 30: r12 = @temp1 mov r14 = r12 // 29: r14 = @temp1 addl r16 = 1, r0 // 34: r16 = 1 ;; .mmi st8 [r15] = r32, 8 // 36: temp1[0:1] = t[0:1], r15=@temp[2] ;; st8 [r15] = r33, -4 // 37: temp1[2:3] = t[2:3], r15=@temp[1] nop 0 .mii ld8 r8 = [r14], 8 // 21: r8 = temp[0:1] nop 0 ;; nop 0 .mmb ld8 r9 = [r14] // 28: r9 = temp[2:3] st4 [r15] = r16 // 9: temp[1] = 1 br.ret.sptk.many b0 // 40: return r8:r9 .endp f1# -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43494