From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6833 invoked by alias); 19 Aug 2013 22:01:25 -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 6823 invoked by uid 89); 19 Aug 2013 22:01:24 -0000 X-Spam-SWARE-Status: No, score=-8.4 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Mon, 19 Aug 2013 22:01:24 +0000 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r7JM1M2B025856 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 19 Aug 2013 18:01:22 -0400 Received: from pebble.twiddle.net (vpn-55-21.rdu2.redhat.com [10.10.55.21]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id r7JM1LX5006576; Mon, 19 Aug 2013 18:01:21 -0400 Message-ID: <521295AF.6050508@redhat.com> Date: Mon, 19 Aug 2013 22:02:00 -0000 From: Richard Henderson User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130805 Thunderbird/17.0.8 MIME-Version: 1.0 To: Kirill Yukhin CC: Uros Bizjak , Vladimir Makarov , Jakub Jelinek , GCC Patches Subject: Re: [PATCH i386 3/8] [AVX512] Add AVX-512 patterns. References: <20130808112524.GA40277@msticlxl57.ims.intel.com> <20130814072638.GD52726@msticlxl57.ims.intel.com> In-Reply-To: <20130814072638.GD52726@msticlxl57.ims.intel.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-SW-Source: 2013-08/txt/msg01071.txt.bz2 > ;; All vector modes including V?TImode, used in move patterns. > (define_mode_iterator V16 > - [(V32QI "TARGET_AVX") V16QI > - (V16HI "TARGET_AVX") V8HI > - (V8SI "TARGET_AVX") V4SI > - (V4DI "TARGET_AVX") V2DI > + [(V64QI "TARGET_AVX512F") (V32QI "TARGET_AVX") V16QI > + (V32HI "TARGET_AVX512F") (V16HI "TARGET_AVX") V8HI > + (V16SI "TARGET_AVX512F") (V8SI "TARGET_AVX") V4SI > + (V8DI "TARGET_AVX512F") (V4DI "TARGET_AVX") V2DI > (V2TI "TARGET_AVX") V1TI > - (V8SF "TARGET_AVX") V4SF > - (V4DF "TARGET_AVX") V2DF]) > + (V16SF "TARGET_AVX512F") (V8SF "TARGET_AVX") V4SF > + (V8DF "TARGET_AVX512F") (V4DF "TARGET_AVX") V2DF]) Let's rename this VMOVE, and apply only that change as a separate patch. > +(define_mode_iterator VF_AVX512F > + [(V16SF "TARGET_AVX512F") (V8SF "TARGET_AVX") V4SF > + (V8DF "TARGET_AVX512F") (V4DF "TARGET_AVX") (V2DF "TARGET_SSE2")]) > + Why aren't you modifying VF instead? Certainly this makes the comment for "VF" be incorrect, as it no longer contains "all vector float modes". > ;; All SFmode vector float modes > (define_mode_iterator VF1 > [(V8SF "TARGET_AVX") V4SF]) > > +(define_mode_iterator VF1_AVX512F > + [(V16SF "TARGET_AVX512F") (V8SF "TARGET_AVX") V4SF]) Likewise. > ;; All DFmode vector float modes > (define_mode_iterator VF2 > [(V4DF "TARGET_AVX") V2DF]) > > +(define_mode_iterator VF2_AVX512F > + [(V8DF "TARGET_AVX512F") (V4DF "TARGET_AVX") V2DF]) Likewise. > +;; 128bit and 512bit float modes > +(define_mode_iterator VF_128_512 > + [V4SF V2DF V16SF V8DF]) Unused? > (define_expand "2" > - [(set (match_operand:VF 0 "register_operand") > - (absneg:VF > - (match_operand:VF 1 "register_operand")))] > + [(set (match_operand:VF_AVX512F 0 "register_operand") > + (absneg:VF_AVX512F > + (match_operand:VF_AVX512F 1 "register_operand")))] > "TARGET_SSE" > "ix86_expand_fp_absneg_operator (, mode, operands); DONE;") Fixing VF as I describe above appears to make a large portion of the patch just go away. r~