From patchwork Fri Nov 3 16:20:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Sandiford X-Patchwork-Id: 117942 Delivered-To: patch@linaro.org Received: by 10.140.22.164 with SMTP id 33csp3654962qgn; Fri, 3 Nov 2017 09:20:30 -0700 (PDT) X-Google-Smtp-Source: ABhQp+SJqgSVU8vXmRmhCGizOCKVwkgHv7oqEl0MxV6ir/b6YVFaizNu+xXjFotMWL17cQ5Lm6rp X-Received: by 10.84.224.132 with SMTP id s4mr7234784plj.409.1509726030516; Fri, 03 Nov 2017 09:20:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1509726030; cv=none; d=google.com; s=arc-20160816; b=XuuIBSdIPJIDITlRVd8h/yQ9cKW7oIJXeiSJbf0RaEU9YraK6Xr0r94/PeL418ptZT TXfZznlV5JE9wwg8O0CNOQzTdanYvRgbIakA2TE1IChLVElED7SrXILs6uZkvrHq6Qrk C0oJRLalBDBvxX5b2re6oeDx5CAUHBC389KEZXGePmNFe5uAVK9Ns7mKGsK3UA+oIiny mzJg7RzDoZYKKIA4TfdZKW4S+o7QRViszmhoFdHU8tTCfcAA0n8JQH4jSOdCCea3EcIp /2yTwPAH0OGPSoB/gEILqGE7zo/26nC7FXTF2rz0d5ptlOAFQXbb+6pdIBaYGJ6vM5Ee 0K+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:user-agent:message-id:in-reply-to:date:references :subject:mail-followup-to:to:from:delivered-to:sender:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence :mailing-list:dkim-signature:domainkey-signature :arc-authentication-results; bh=l9M2Gih1JTqNRQH7lZP9w6uyIQsd8n71FFhQ74LixBM=; b=Pe/ptwz6/qt0+fd08UXKbfSpynoxoDj68jTYQqn2+jIdCWDAkvruKtV0pBc2hGUquq lgoOqJEgj5DgkcWTJZz/5aZJ7F7K9c99c/o1lJGCzxdvd6P7RPPdyIMMvpc5zkpztplD g0ywbrebLr/Zcg1T5lq9EN1Dlp4QuU4uA600KkWSjPpSc4CBLBWW2QcsmxVv44qmBdS6 1wyavOSmjLyxI1JBppKuJ2Ft400OpqIQTnyngpurEQf3hdshvg3Oas9IyoUoUTvKVX69 TXqomn8VTOd6gg01vLWpz4nnn3dw/1bsoyno8qI3+0RgTi61FukKLicvi5Va2EBxwyVY NjYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=ae//omyb; spf=pass (google.com: domain of gcc-patches-return-465877-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-465877-patch=linaro.org@gcc.gnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id r10si6833125pfd.323.2017.11.03.09.20.30 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 03 Nov 2017 09:20:30 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-return-465877-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=ae//omyb; spf=pass (google.com: domain of gcc-patches-return-465877-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-465877-patch=linaro.org@gcc.gnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=default; b=dGIDC0+beVg8XR/r4wNsi4u4TE6EF EydiMsmAgn8YM0Ks3ZMlrJm/AEROEhHXHs90UjCL4VgRq0GZD2GjVlFq3XgZS5KX J0erBx/hnbPHayAPrh5Qpn3Rq3nqHB+g6yFKgRAs3/PZaUi99cqOugtSdzU+EPit KocixGMKTHGM/Q= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:references:date:in-reply-to:message-id:mime-version :content-type; s=default; bh=/DifDBee2FmljIXeE+/uDml+dM8=; b=ae/ /omybhE6zBZR+LB+nv5HweQorAD3W595VfkisbjMTRtEuFlq68Hcv4CD1p8Azaxi +c7aAJPWXQprW6TTJms1a4G1kvgndwvwchM+f1wD+uFjjmvFc7lcjSMUgCap+pF1 0Nm3y9bHYWAFKlGV8698/yO2VZ5CsN5TS2bi4Ioc= Received: (qmail 40436 invoked by alias); 3 Nov 2017 16:20:12 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 40427 invoked by uid 89); 3 Nov 2017 16:20:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-10.5 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, KAM_ASCII_DIVIDERS, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-wm0-f51.google.com Received: from mail-wm0-f51.google.com (HELO mail-wm0-f51.google.com) (74.125.82.51) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 03 Nov 2017 16:20:09 +0000 Received: by mail-wm0-f51.google.com with SMTP id z3so2625867wme.5 for ; Fri, 03 Nov 2017 09:20:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:mail-followup-to:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=l9M2Gih1JTqNRQH7lZP9w6uyIQsd8n71FFhQ74LixBM=; b=N7BrKgFcWZaxKof+kRBDFHIkOJl55CVOzjL4QNqAcfs0M01DWfyiyf3Rto5XSfzgot oF/z0L+igJ6WK60y0Tj2lm0K26jJ64QX8Ns+yhHnZ7ctyj2gHtkP9oXkOscjE4lhCfFS +Wse+GwiMS58T0c86IHglkXOORJ7cBdA7FInbY200cEnbcPRUY8mDJT9wdu/lVRo/mct MZUDpL8Wfh2bECwo7oD7k8MLX+190JRU+JNw2xV3rQY00cP0jRqtDBvY4TaPeKkcGTVV n2gYqrHIPPRPzMlQ4BeNhRNf++muPY11hU2LKkROfV3k29vrZIC3utdwAIYCU0DpdnjZ VWEg== X-Gm-Message-State: AJaThX4XzNgcKmKML+S6yz7t3gRMSyjQuoigHOhbvqLUqUF3Pv3dSa3o O3TqOHrQ2FMxDfxLter89ps8pW1ohcQ= X-Received: by 10.28.139.144 with SMTP id n138mr278599wmd.78.1509726006586; Fri, 03 Nov 2017 09:20:06 -0700 (PDT) Received: from localhost (188.29.164.162.threembb.co.uk. [188.29.164.162]) by smtp.gmail.com with ESMTPSA id p28sm5011596wmf.2.2017.11.03.09.20.05 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 03 Nov 2017 09:20:05 -0700 (PDT) From: Richard Sandiford To: gcc-patches@gcc.gnu.org Mail-Followup-To: gcc-patches@gcc.gnu.org, richard.sandiford@linaro.org Subject: [6/10] Add a vect_element_align_preferred target selector References: <87inerqqyz.fsf@linaro.org> Date: Fri, 03 Nov 2017 16:20:03 +0000 In-Reply-To: <87inerqqyz.fsf@linaro.org> (Richard Sandiford's message of "Fri, 03 Nov 2017 16:14:44 +0000") Message-ID: <87r2tfpc5o.fsf@linaro.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 This patch adds a target selector for targets whose preferred_vector_alignment is the alignment of one element. We'll never peel in that case, and the step of a loop that operates on normal (as opposed to packed) elements will always divide the preferred alignment. 2017-11-03 Richard Sandiford Alan Hayward David Sherwood gcc/ * doc/sourcebuild.texi (vect_element_align_preferred): Document. gcc/testsuite/ * lib/target-supports.exp (check_effective_target_vect_element_align_preferred): New proc. (check_effective_target_vect_peeling_profitable): Test it. * gcc.dg/vect/no-section-anchors-vect-31.c: Don't expect peeling if vect_element_align_preferred. * gcc.dg/vect/no-section-anchors-vect-64.c: Likewise. * gcc.dg/vect/pr65310.c: Likewise. * gcc.dg/vect/vect-26.c: Likewise. * gcc.dg/vect/vect-54.c: Likewise. * gcc.dg/vect/vect-56.c: Likewise. * gcc.dg/vect/vect-58.c: Likewise. * gcc.dg/vect/vect-60.c: Likewise. * gcc.dg/vect/vect-89-big-array.c: Likewise. * gcc.dg/vect/vect-89.c: Likewise. * gcc.dg/vect/vect-92.c: Likewise. * gcc.dg/vect/vect-peel-1.c: Likewise. * gcc.dg/vect/vect-outer-3a-big-array.c: Expect the step to divide the alignment if vect_element_align_preferred. * gcc.dg/vect/vect-outer-3a.c: Likewise. Index: gcc/doc/sourcebuild.texi =================================================================== --- gcc/doc/sourcebuild.texi 2017-11-03 16:06:19.377029536 +0000 +++ gcc/doc/sourcebuild.texi 2017-11-03 16:06:22.561036988 +0000 @@ -1383,6 +1383,10 @@ have different type from the value opera @item vect_double Target supports hardware vectors of @code{double}. +@item vect_element_align_preferred +The target's preferred vector alignment is the same as the element +alignment. + @item vect_float Target supports hardware vectors of @code{float}. Index: gcc/testsuite/lib/target-supports.exp =================================================================== --- gcc/testsuite/lib/target-supports.exp 2017-11-03 16:06:19.378029224 +0000 +++ gcc/testsuite/lib/target-supports.exp 2017-11-03 16:06:22.564036053 +0000 @@ -3290,7 +3290,8 @@ proc check_effective_target_vect_peeling } else { set et_vect_peeling_profitable_saved($et_index) 1 if { ([istarget s390*-*-*] - && [check_effective_target_s390_vx]) } { + && [check_effective_target_s390_vx]) + || [check_effective_target_vect_element_align_preferred] } { set et_vect_peeling_profitable_saved($et_index) 0 } } @@ -6342,6 +6343,13 @@ proc check_effective_target_vect_natural return $et_vect_natural_alignment } +# Return 1 if the target doesn't prefer any alignment beyond element +# alignment during vectorization. + +proc check_effective_target_vect_element_align_preferred { } { + return [check_effective_target_vect_variable_length] +} + # Return 1 if vector alignment (for types of size 32 bit or less) is reachable, 0 otherwise. proc check_effective_target_vector_alignment_reachable { } { Index: gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c =================================================================== --- gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c 2017-11-03 16:06:08.010089752 +0000 +++ gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c 2017-11-03 16:06:22.561036988 +0000 @@ -94,4 +94,4 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { xfail vect_element_align_preferred } } } */ Index: gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c =================================================================== --- gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c 2017-11-03 16:06:08.010089752 +0000 +++ gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c 2017-11-03 16:06:22.562036677 +0000 @@ -91,4 +91,4 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { xfail vect_element_align_preferred } } } */ Index: gcc/testsuite/gcc.dg/vect/pr65310.c =================================================================== --- gcc/testsuite/gcc.dg/vect/pr65310.c 2015-06-02 23:53:38.000000000 +0100 +++ gcc/testsuite/gcc.dg/vect/pr65310.c 2017-11-03 16:06:22.562036677 +0000 @@ -18,5 +18,5 @@ int t(b *a) /* The memory access is through a pointer of type c which means *ptr is not aligned. */ -/* { dg-final { scan-tree-dump "can't force alignment" "vect" } } */ -/* { dg-final { scan-tree-dump-not "misalign = 0" "vect" } } */ +/* { dg-final { scan-tree-dump "can't force alignment" "vect" { xfail vect_element_align_preferred } } } */ +/* { dg-final { scan-tree-dump-not "misalign = 0" "vect" { xfail vect_element_align_preferred } } } */ Index: gcc/testsuite/gcc.dg/vect/vect-26.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-26.c 2015-06-02 23:53:38.000000000 +0100 +++ gcc/testsuite/gcc.dg/vect/vect-26.c 2017-11-03 16:06:22.562036677 +0000 @@ -37,4 +37,4 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_element_align_preferred } } } */ Index: gcc/testsuite/gcc.dg/vect/vect-54.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-54.c 2015-06-02 23:53:38.000000000 +0100 +++ gcc/testsuite/gcc.dg/vect/vect-54.c 2017-11-03 16:06:22.562036677 +0000 @@ -61,4 +61,4 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_element_align_preferred } } } */ Index: gcc/testsuite/gcc.dg/vect/vect-56.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-56.c 2015-06-02 23:53:38.000000000 +0100 +++ gcc/testsuite/gcc.dg/vect/vect-56.c 2017-11-03 16:06:22.562036677 +0000 @@ -70,5 +70,5 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align || vect_element_align } } } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { target { vect_element_align } } } } */ -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" { xfail { vect_element_align } } } } */ -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { vect_element_align } } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" { target { { ! vect_element_align } || vect_element_align_preferred} } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { vect_element_align && { ! vect_element_align_preferred } } } } } */ Index: gcc/testsuite/gcc.dg/vect/vect-58.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-58.c 2015-06-02 23:53:38.000000000 +0100 +++ gcc/testsuite/gcc.dg/vect/vect-58.c 2017-11-03 16:06:22.562036677 +0000 @@ -59,4 +59,4 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_element_align_preferred } } } */ Index: gcc/testsuite/gcc.dg/vect/vect-60.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-60.c 2015-06-02 23:53:38.000000000 +0100 +++ gcc/testsuite/gcc.dg/vect/vect-60.c 2017-11-03 16:06:22.562036677 +0000 @@ -71,5 +71,5 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align || vect_element_align } } } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { target { vect_element_align } } } } */ -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" { xfail { vect_element_align } } } } */ -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { vect_element_align } } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" { target { { ! vect_element_align } || vect_element_align_preferred } } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { vect_element_align && { ! vect_element_align_preferred } } } } } */ Index: gcc/testsuite/gcc.dg/vect/vect-89-big-array.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-89-big-array.c 2015-06-02 23:53:38.000000000 +0100 +++ gcc/testsuite/gcc.dg/vect/vect-89-big-array.c 2017-11-03 16:06:22.562036677 +0000 @@ -46,4 +46,4 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_element_align_preferred } } } */ Index: gcc/testsuite/gcc.dg/vect/vect-89.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-89.c 2017-11-03 16:06:08.013090240 +0000 +++ gcc/testsuite/gcc.dg/vect/vect-89.c 2017-11-03 16:06:22.562036677 +0000 @@ -50,4 +50,4 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_element_align_preferred } } } */ Index: gcc/testsuite/gcc.dg/vect/vect-92.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-92.c 2017-11-03 16:06:08.013090240 +0000 +++ gcc/testsuite/gcc.dg/vect/vect-92.c 2017-11-03 16:06:22.563036365 +0000 @@ -98,4 +98,4 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 3 "vect" } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" { xfail vect_element_align_preferred } } } */ Index: gcc/testsuite/gcc.dg/vect/vect-peel-1.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-peel-1.c 2015-06-02 23:53:38.000000000 +0100 +++ gcc/testsuite/gcc.dg/vect/vect-peel-1.c 2017-11-03 16:06:22.563036365 +0000 @@ -49,4 +49,4 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { target { { vect_element_align } && { vect_aligned_arrays } } } } } */ -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_element_align_preferred } } } */ Index: gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c 2017-09-22 17:44:23.043135080 +0100 +++ gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c 2017-11-03 16:06:22.563036365 +0000 @@ -49,4 +49,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ -/* { dg-final { scan-tree-dump-times "step doesn't divide the vector alignment" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "step doesn't divide the vector alignment" 1 "vect" { xfail vect_element_align_preferred } } } */ Index: gcc/testsuite/gcc.dg/vect/vect-outer-3a.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-outer-3a.c 2017-09-22 17:44:23.043135080 +0100 +++ gcc/testsuite/gcc.dg/vect/vect-outer-3a.c 2017-11-03 16:06:22.563036365 +0000 @@ -49,4 +49,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ -/* { dg-final { scan-tree-dump-times "step doesn't divide the vector alignment" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "step doesn't divide the vector alignment" 1 "vect" { xfail vect_element_align_preferred } } } */