From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9171 invoked by alias); 13 Aug 2014 17:40:46 -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 9154 invoked by uid 89); 13 Aug 2014 17:40:44 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-lb0-f175.google.com Received: from mail-lb0-f175.google.com (HELO mail-lb0-f175.google.com) (209.85.217.175) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Wed, 13 Aug 2014 17:40:43 +0000 Received: by mail-lb0-f175.google.com with SMTP id 10so61313lbg.34 for ; Wed, 13 Aug 2014 10:40:38 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.112.219.234 with SMTP id pr10mr5452001lbc.59.1407951638517; Wed, 13 Aug 2014 10:40:38 -0700 (PDT) Received: by 10.152.8.46 with HTTP; Wed, 13 Aug 2014 10:40:38 -0700 (PDT) In-Reply-To: <20140813142335.GC57184@msticlxl57.ims.intel.com> References: <20140812125804.GB916@msticlxl57.ims.intel.com> <20140813121445.GB57184@msticlxl57.ims.intel.com> <20140813142335.GC57184@msticlxl57.ims.intel.com> Date: Wed, 13 Aug 2014 17:40:00 -0000 Message-ID: Subject: Re: [PATCH i386 AVX512] [8/n] Extend substs for new patterns. From: Uros Bizjak To: Kirill Yukhin Cc: Jakub Jelinek , Richard Henderson , GCC Patches Content-Type: text/plain; charset=UTF-8 X-SW-Source: 2014-08/txt/msg01338.txt.bz2 On Wed, Aug 13, 2014 at 4:23 PM, Kirill Yukhin wrote: >> >> In a couple of places, checks are changed to GET_MODE_SIZE >> >> (GET_MODE (operands[0])) and in a similar way, mode checks were >> >> changed to GET_MODE (operands[0]). The previous checks are more >> >> efficient and are preferred. Is there a reason you need to check >> >> operands[0] dynamically? >> > >> > I agree, runtime tests are worse. But this subst attributes are used >> > in patterns which actually do not contain mode iterators at all. >> >> IMO, two different subst patterns should be used in this case, one for >> patterns with and one for patterns w/o mode iterators. > > That was my second thought after I hit `send'. > > Updated patch in the bottom > > Bootstrapped. > > (Regtest w/ new tests is in progress). > > Is it ok if pass? > > gcc/ > * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes. > * config/i386/subst.md > (define_mode_iterator SUBST_V): Update. > (define_mode_iterator SUBST_A): Ditto. > (define_subst_attr "mask_operand7"): New. > (define_subst_attr "mask_operand10"): New. > (define_subst_attr "mask_operand_arg34") : New. > (define_subst_attr "mask_expand_op3"): New. > (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL. > (define_subst_attr "sd_mask_mode512bit_condition"): Ditto. > (define_subst_attr "mask_avx512vl_condition"): New. > (define_subst_attr "round_mask_operand4"): Ditto. > (define_subst_attr "round_mask_scalar_op3"): Delete. > (define_subst_attr "round_mask_op4"): New. > (define_subst_attr "round_mode512bit_condition"): Allow V8DImode, > V16SImode. > (define_subst_attr "round_modev8sf_condition"): New. > (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of > mode. > (define_subst_attr "round_saeonly_mask_operand4"): New. > (define_subst_attr "round_saeonly_mask_op4"): New. > (define_subst_attr "round_saeonly_mode512bit_condition"): Allow > V8DImode, V16SImode. > (define_subst_attr "round_saeonly_modev8sf_condition"): New. > (define_subst_attr "mask_expand4_name" "mask_expand4"): New. > (define_subst_attr "mask_expand4_args"): New. > (define_subst "mask_expand4"): New. This is OK. Thanks, Uros.