From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-il1-x12b.google.com (mail-il1-x12b.google.com [IPv6:2607:f8b0:4864:20::12b]) by sourceware.org (Postfix) with ESMTPS id 1B1D33858D32 for ; Thu, 13 Jul 2023 13:58:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1B1D33858D32 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-il1-x12b.google.com with SMTP id e9e14a558f8ab-3466725f0beso3025865ab.1 for ; Thu, 13 Jul 2023 06:58:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1689256719; x=1691848719; 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=tDtBlmhDFHJhp+JdmYN4rBNirFmbbAmiK+SjB2ICDZQ=; b=BQXfZeszaPgl5ECWNt8sAOxtwDeXL+WZvywEACKz2I9jz0J6H4NQ6loP/LH+SgVgMC CUCet71WFRK594rSBP2+3Pe5VHxhMUFW7MK3HwOlEIKmkLG28m1fe1sySeEUvla/l0AR AemCHikIuNKUI5ogxO5JIbKjK/6zIZCTWcb5lrZfuKZZoZkaVeQhqbFnMhN8/Up5VPuJ 0IMukgmYyUUIROGQdRl+RExEmuKDm9zFfZBKT070DsarAUaPR1K10FyUhjDXIep9J+W3 gdsksDGU8oJ6i2HtiohuAgBAqMS7kEj+DwyYionRh4KsJLlPzV46o3Sqlp/WSfegNJzw lBdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689256719; x=1691848719; 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=tDtBlmhDFHJhp+JdmYN4rBNirFmbbAmiK+SjB2ICDZQ=; b=OzdLy6w6+s1zRsCOkO155CzkOAPtP9HXBaS/HpnlyjppKVdUUHO9xhy+a1V+g1N1ai XfSb0RGRfAB4ZoifCTSS1hg48yYQrSvXrrC9rDpqWNB6DXk89g5bPR+Q96J+ye4W53T4 o0xwyAOLbkuiKDrktDsJaUEGUis+JQ4ueYn+bUaKkipO9ALgeP0g+57UMqbLwIKFRsCI qJydYaUck0r5NrKFnLtRCyIsXJYLeFWCD+624sNHDymKhMUhHJocjkPqYp7D9UHIbslT /9EVX9cMqeh5s58uGSMfKVxomChwC366Y10GGsuO5yi2SsatbShrSEokQVZF7CnTplYy fcxw== X-Gm-Message-State: ABy/qLbP8/3KGr3XvsoCNa2VztpZv/9yDDE3i69/yYkceJDg9YU5jiS1 X/Alyfw5aIUDBwtJRH2Tlx8= X-Google-Smtp-Source: APBJJlHIpEA6ipWzLTYJHcJ/8Tl8RVs+f35tIvlzD+Dn3h5PKRNA07GoH6V/C3hhUzXmVqRj0sGVlQ== X-Received: by 2002:a92:d2c9:0:b0:346:e850:6cc8 with SMTP id w9-20020a92d2c9000000b00346e8506cc8mr1927909ilg.9.1689256718958; Thu, 13 Jul 2023 06:58:38 -0700 (PDT) Received: from [172.31.0.109] ([136.36.130.248]) by smtp.gmail.com with ESMTPSA id p9-20020a17090a74c900b00263ba6a248bsm11920212pjl.1.2023.07.13.06.58.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 13 Jul 2023 06:58:38 -0700 (PDT) Message-ID: Date: Thu, 13 Jul 2023 07:58:37 -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 V7] RISC-V: RISC-V: Support gather_load/scatter RVV auto-vectorization Content-Language: en-US To: =?UTF-8?B?6ZKf5bGF5ZOy?= , gcc-patches Cc: "kito.cheng" , "kito.cheng" , "rdapp.gcc" References: <20230712093849.102131-1-juzhe.zhong@rivai.ai> <66564378DDCC57ED+202307121748494317959@rivai.ai> <08AD6CC79F68996F+2023071305225689203010@rivai.ai> <241ccf47-0579-7d7b-0dcf-7847328fe7a8@gmail.com> <05d9baab-5734-a870-a700-40443a113318@gmail.com> From: Jeff Law In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,BODY_8BITS,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 7/12/23 17:30, 钟居哲 wrote: > I notice vectorizable_call in Loop Vectorizer. > It's vectorizing CALL function for example like fmax/fmin. > From my understanding, we dont have RVV instruction for fmax/fmin? > > So for now, I don't need to support builtin call function vectorization > for RVV. > Am I right? Yes, you are correct. > > I am wondering whether we do have some kind of builtin function call > vectorization by using RVV instructions. It can be advantageous, even if the call doesn't collapse down to a single vector instruction. Consider libmvec which is an API to provide things like sin, cos, exp, log, etc in vector form. Once the library routines are written, those can then be exposed to the compiler in turn allowing vectorization of loops with a subset of calls such as sin, cos, pow, log, etc. jeff