From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com [IPv6:2607:f8b0:4864:20::42a]) by sourceware.org (Postfix) with ESMTPS id C47D03858D35 for ; Wed, 28 Jun 2023 18:16:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C47D03858D35 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pf1-x42a.google.com with SMTP id d2e1a72fcca58-6686c74183cso17570b3a.1 for ; Wed, 28 Jun 2023 11:16:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687976177; x=1690568177; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=gI93FBs9W5ikfYoPfHiB1DbdwODCcCqo7/YN1dvDap0=; b=VBaRgTQYkwB+YQz+rq/eZqcHxWp8vmd4fq4t1UGu5xmhd2rBiOPeFBYctde8icUm04 SSiFcPaNomeXLoGIYzcNnsMKUWLX+GL3jVzdgBiGUrCJ8dcvgFesWtVChPJ5Jff0xqoj lbB3SC3HqbgjwDJp9aC/F8bEBH12C85zmz402cbiVFuXcRB7SUD4EBUGxn6NYXLZjjTZ r7BfH/CYMZNjqH1K2P8N2WTtUXggyPElpI4+ZTBXgwo+gdS1JqCmo/V+159YFrA/jTTF wW2U05x7rHjXUUrOKRefAHqJDe9+gtjFwKnRy22jcY5hfEyyZb4LRmGT6ja3OlwkQLM2 wKYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687976177; x=1690568177; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=gI93FBs9W5ikfYoPfHiB1DbdwODCcCqo7/YN1dvDap0=; b=PbkU+fbJriGDqhnGhFy52NsT3EPPaMzgpd5iyzm5LchDemKaoOn8JP5sfFDy92Z1Z3 Qymq0CwUMWyeXv6t29S8gn3gqbnIRmWx3f6p0SqWTx7WKhSw5jgSlA2hzOKb/CC9soYQ ihOwSibRN6sMRWqOUIBpoc7fmYKsc0C6V14Rrb1zJhWAd+0AbHiiGnYjBQEDoYWIb3hi CXz9338vCUTw3kzaOaGF1lg4EnJXuYEDC99/4Rk1wxIs4yEV4JJWBP5gsBE/MI3C0ER5 hE32d7IimhIqelzomxiXTm/p7c2jsp6X0CbNjdi/C5C0XWSVla0XAaG+x+YfyXLnURjj vEEg== X-Gm-Message-State: AC+VfDxQkwXNvOyuYG4bggybNBZH0anfahE9cQKq7TUEU90f0brgq3h1 OeqdEh4UL6H5cJfWplQ4llU= X-Google-Smtp-Source: ACHHUZ48Y3O+be1Z2HaVZFq9t1m1+zLSRtcSqCuocmXV6lB2u76sdNYux2qtBcgGA6juiUKwP+8ciQ== X-Received: by 2002:a05:6a00:ac3:b0:666:e621:d83e with SMTP id c3-20020a056a000ac300b00666e621d83emr42851085pfl.13.1687976176682; Wed, 28 Jun 2023 11:16:16 -0700 (PDT) Received: from [172.31.0.109] ([136.36.130.248]) by smtp.gmail.com with ESMTPSA id s4-20020aa78284000000b00666b012baedsm7291025pfm.158.2023.06.28.11.16.14 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 28 Jun 2023 11:16:15 -0700 (PDT) Message-ID: <2abb91f5-36e0-5024-9b15-a45f8c40b4fe@gmail.com> Date: Wed, 28 Jun 2023 12:16:13 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH] RISC-V: Support vfwnmacc/vfwmsac/vfwnmsac combine lowering Content-Language: en-US To: Juzhe-Zhong , gcc-patches@gcc.gnu.org Cc: kito.cheng@gmail.com, kito.cheng@sifive.com, palmer@dabbelt.com, palmer@rivosinc.com, rdapp.gcc@gmail.com References: <20230628115559.116166-1-juzhe.zhong@rivai.ai> From: Jeff Law In-Reply-To: <20230628115559.116166-1-juzhe.zhong@rivai.ai> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 6/28/23 05:55, Juzhe-Zhong wrote: > Similar to vfwmacc. Add combine patterns as follows: > > For vfwnmsac: > 1. (set (reg) (fma (neg (float_extend (reg))) (float_extend (reg))) (reg) ))) > 2. (set (reg) (fma (neg (float_extend (reg))) (reg) (reg) ))) > > For vfwmsac: > 1. (set (reg) (fma (float_extend (reg)) (float_extend (reg))) (neg (reg)) ))) > 2. (set (reg) (fma (float_extend (reg)) (reg) (neg (reg)) ))) > > For vfwnmacc: > 1. (set (reg) (fma (neg (float_extend (reg))) (float_extend (reg))) (neg (reg)) ))) > 2. (set (reg) (fma (neg (float_extend (reg))) (reg) (neg (reg)) ))) > > gcc/ChangeLog: > > * config/riscv/autovec-opt.md (*double_widen_fnma): New pattern. > (*single_widen_fnma): Ditto. > (*double_widen_fms): Ditto. > (*single_widen_fms): Ditto. > (*double_widen_fnms): Ditto. > (*single_widen_fnms): Ditto. > > + > +;; This helps to match ext + fnma. > +(define_insn_and_split "*single_widen_fnma" > + [(set (match_operand:VWEXTF 0 "register_operand") > + (fma:VWEXTF > + (neg:VWEXTF > + (float_extend:VWEXTF > + (match_operand: 2 "register_operand"))) > + (match_operand:VWEXTF 3 "register_operand") > + (match_operand:VWEXTF 1 "register_operand")))] I'd like to understand this better. It looks like it's meant to be a bridge to another pattern. However, it looks like it would be a 4->1 pattern without needing a bridge. So I'd like to know why that code isn't working. Can you send the before/after combine dumps which show this bridge pattern being used? The same concern exists with the other bridge patterns, but I don't think I need to see the before/after for each of them. Thanks, Jeff