From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22588 invoked by alias); 2 Sep 2017 21:58:49 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 22576 invoked by uid 89); 2 Sep 2017 21:58:48 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.7 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 spammy=HTo:U*jon X-HELO: mail-out.m-online.net Received: from mail-out.m-online.net (HELO mail-out.m-online.net) (212.18.0.10) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 02 Sep 2017 21:58:43 +0000 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 3xl93g5tDZz1qsgm; Sat, 2 Sep 2017 23:58:39 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 3xl93g3KnJz3jgYr; Sat, 2 Sep 2017 23:58:39 +0200 (CEST) Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id 7VdSskAVyUh5; Sat, 2 Sep 2017 23:58:38 +0200 (CEST) X-Auth-Info: p9LearsTEw8oJuevYUEmCwLdlpzzkp/DDVSQPgLJiMS/tarkXV/TQ2TwkYZ3yPeQ Received: from igel.home (ppp-88-217-14-86.dynamic.mnet-online.de [88.217.14.86]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Sat, 2 Sep 2017 23:58:38 +0200 (CEST) Received: by igel.home (Postfix, from userid 1000) id C30F22C312D; Sat, 2 Sep 2017 23:58:37 +0200 (CEST) From: Andreas Schwab To: "Jon Beniston" Cc: "'Richard Biener'" , Subject: Re: [RFC, vectorizer] Allow single element vector types for vector reduction operations References: <015b01d31f6b$c3651620$4a2f4260$@beniston.com> <000001d31fd7$b239abb0$16ad0310$@beniston.com> <004501d3217d$119d81c0$34d88540$@beniston.com> <00ba01d321a2$3fd81260$bf883720$@beniston.com> X-Yow: Yow! Now we can become alcoholics! Date: Sat, 02 Sep 2017 21:58:00 -0000 In-Reply-To: <00ba01d321a2$3fd81260$bf883720$@beniston.com> (Jon Beniston's message of "Wed, 30 Aug 2017 16:11:24 +0100") Message-ID: <874lskiwz6.fsf@linux-m68k.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2017-09/txt/msg00109.txt.bz2 On Aug 30 2017, "Jon Beniston" wrote: > gcc/ > 2017-08-30 Jon Beniston > Richard Biener > > diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c > index cfdb72c..5ebeac2 100644 > --- a/gcc/tree-vect-patterns.c > +++ b/gcc/tree-vect-patterns.c > @@ -4150,7 +4150,7 @@ vect_pattern_recog_1 (vect_recog_func *recog_func, > loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info); > > if (VECTOR_BOOLEAN_TYPE_P (type_in) > - || VECTOR_MODE_P (TYPE_MODE (type_in))) > + || VECTOR_TYPE_P (type_in)) > { > /* No need to check target support (already checked by the pattern > recognition function). */ > diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c > index 013fb1f..fc62efb 100644 > --- a/gcc/tree-vect-stmts.c > +++ b/gcc/tree-vect-stmts.c > @@ -9098,7 +9098,8 @@ get_vectype_for_scalar_type_and_size (tree > scalar_type, unsigned size) > else > simd_mode = mode_for_vector (inner_mode, size / nbytes); > nunits = GET_MODE_SIZE (simd_mode) / nbytes; > - if (nunits <= 1) > + /* NOTE: nunits == 1 is allowed to support single element vector types. > */ > + if (nunits < 1) > return NULL_TREE; > > vectype = build_vector_type (scalar_type, nunits); > > > That breaks vect/pr68577.c on aarch64. during RTL pass: expand /opt/gcc/gcc-20170902/gcc/testsuite/gcc.dg/vect/pr68577.c: In function 'slp_test': /opt/gcc/gcc-20170902/gcc/testsuite/gcc.dg/vect/pr68577.c:20:12: internal compiler error: in simplify_subreg, at simplify-rtx.c:6050 0xb55983 simplify_subreg(machine_mode, rtx_def*, machine_mode, unsigned int) ../../gcc/simplify-rtx.c:6049 0xb595f7 simplify_gen_subreg(machine_mode, rtx_def*, machine_mode, unsigned int) ../../gcc/simplify-rtx.c:6278 0x81d277 store_bit_field_1 ../../gcc/expmed.c:798 0x81d55f store_bit_field(rtx_def*, unsigned long, unsigned long, unsigned long, unsigned long, machine_mode, rtx_def*, bool) ../../gcc/expmed.c:1133 0x840bf7 store_field ../../gcc/expr.c:6950 0x84792f store_constructor_field ../../gcc/expr.c:6142 0x83edbf store_constructor ../../gcc/expr.c:6726 0x840443 expand_constructor ../../gcc/expr.c:8027 0x82d5bf expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:10133 0x82eaeb expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:9819 0x82dadf expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:10942 0x82eaeb expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:9819 0x83d197 expand_expr ../../gcc/expr.h:276 0x83d197 expand_assignment(tree_node*, tree_node*, bool) ../../gcc/expr.c:4971 0x71e2f3 expand_gimple_stmt_1 ../../gcc/cfgexpand.c:3653 0x71e2f3 expand_gimple_stmt ../../gcc/cfgexpand.c:3751 0x721cdb expand_gimple_basic_block ../../gcc/cfgexpand.c:5750 0x726b07 execute ../../gcc/cfgexpand.c:6357 Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."