From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14491 invoked by alias); 11 Apr 2008 14:26:32 -0000 Received: (qmail 13702 invoked by uid 48); 11 Apr 2008 14:25:37 -0000 Date: Fri, 11 Apr 2008 14:26:00 -0000 Message-ID: <20080411142537.13700.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/35907] [4.3/4.4 Regression] 64-bit power6 glibc miscompilation In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "jakub 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: 2008-04/txt/msg00828.txt.bz2 ------- Comment #2 from jakub at gcc dot gnu dot org 2008-04-11 14:25 ------- Smaller testcase: /* { dg-do run } */ /* { dg-options "-O2 -mcpu=power6" } */ #define vector __attribute__((vector_size (16))) union { vector int k; int c[16]; } u, v, w; vector int m; void __attribute__((noinline)) bar (void *i, vector int j) { asm volatile ("" : : "r" (i), "r" (&j) : "memory"); } int __attribute__((noinline)) foo (int i, vector int j) { char *p = __builtin_alloca (64 + i); m += u.k; v.k = m; w.k = j; if (__builtin_memcmp (&v.c, &w.c, 16) != 0) __builtin_abort (); j += u.k; bar (p, j); j += u.k; bar (p, j); return 0; } int main (void) { vector int l; int i; for (i = 0; i < 4; i++) u.c[i] = i; l = u.k; if (foo (64, l)) __builtin_abort (); l += u.k; if (foo (64, l)) __builtin_abort (); return 0; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35907