From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13553 invoked by alias); 27 Apr 2010 07:57:37 -0000 Received: (qmail 13539 invoked by uid 22791); 27 Apr 2010 07:57:34 -0000 X-SWARE-Spam-Status: No, hits=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,SARE_MSGID_LONG45 X-Spam-Check-By: sourceware.org Received: from mail-ww0-f47.google.com (HELO mail-ww0-f47.google.com) (74.125.82.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 27 Apr 2010 07:57:29 +0000 Received: by wwb17 with SMTP id 17so1545540wwb.20 for ; Tue, 27 Apr 2010 00:57:27 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.88.143 with SMTP id a15mr4872277wef.6.1272355046834; Tue, 27 Apr 2010 00:57:26 -0700 (PDT) Received: by 10.216.0.145 with HTTP; Tue, 27 Apr 2010 00:57:26 -0700 (PDT) In-Reply-To: References: Date: Tue, 27 Apr 2010 08:04:00 -0000 Message-ID: Subject: Re: vectorization, scheduling and aliasing From: roy rosen To: Richard Guenther Cc: gcc@gcc.gnu.org Content-Type: text/plain; charset=ISO-8859-1 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2010-04/txt/msg00872.txt.bz2 Hi, I have looked a bit more and tried also ia-64 and bfin and actually I can't find a single example where vectorized code using __restrict__ variables would break the dependency between stores and loads. for this simple program: unsigned short xxx(unsigned short* __restrict__ a, unsigned short* __restrict__ b) { int i; for (i = 0; i < 8; i++) { a[i] = b[i]; } return 0; } After unrolling and vectorization I get for all architectures that there is a dependency between the first store (to a) and the second load (from b). since these are restrict variables I think this behavior is incorrect. Can someone please show me such an example? Or is this feature not yet supported? Thanks, Roy.