From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id 2330E3858CDA for ; Tue, 13 Jun 2023 15:56:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2330E3858CDA Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="6.00,240,1681200000"; d="scan'208";a="9709536" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 13 Jun 2023 07:56:02 -0800 IronPort-SDR: ioGqnPMQCrrj0IG8ZIa+Vum/icVOMYYyk2r1WATb0s/+0dm0RT8eNsE7qqrDElwnb1+KGiobg7 TRwvLBWVMkvZDX+ih8yzt6ML8V5eRiT3U+R/P5O7UK8yNE6XAbaGLGzxC2+aoSvSlZFDZyuvTH 57y7BxUUlQmOAeNEPE9zvGLos51DKw+GaoxeL/8NAUa4v9aAUj5VGBW7SUjNFeiJeB9EF7XT9x DiOPj18Nsb4bSPU6D0tMe67fdaTDA65QmcyxYv9EUi2dolxbhLADLTkevpM33wUEtTmBntqrzk ceU= Content-Type: multipart/mixed; boundary="------------d67kM1oasRfe8uocMb0lVEnD" Message-ID: <0e5fddf8-8605-a0d6-eede-1a8fcf12535c@codesourcery.com> Date: Tue, 13 Jun 2023 16:55:57 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0 Thunderbird/102.12.0 Content-Language: en-GB From: Andrew Stubbs Subject: [PATCH] vect: Vectorize via libfuncs To: "gcc-patches@gcc.gnu.org" X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) To svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,SPF_HELO_PASS,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: --------------d67kM1oasRfe8uocMb0lVEnD Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit This patch allows vectorization when operators are available as libfuncs, rather that only as insns. This will be useful for amdgcn where we plan to vectorize loops that contain integer division or modulus, but don't want to generate inline instructions for the division algorithm every time. The change should have not affect architectures that do not define vector-mode libfuncs. OK for mainline? Andrew --------------d67kM1oasRfe8uocMb0lVEnD Content-Type: text/plain; charset="UTF-8"; name="230613-vect-allow-libfuncs.patch" Content-Disposition: attachment; filename="230613-vect-allow-libfuncs.patch" Content-Transfer-Encoding: base64 dmVjdDogdmVjdG9yaXplIHZpYSBsaWJmdW5jcwoKVGhpcyBwYXRjaCBhbGxvd3MgdmVjdG9y aXphdGlvbiB3aGVuIHRoZSBsaWJmdW5jcyBhcmUgZGVmaW5lZC4KCmdjYy9DaGFuZ2VMb2c6 CgoJKiB0cmVlLXZlY3QtZ2VuZXJpYy5jYzogSW5jbHVkZSBvcHRhYnMtbGliZnVuY3MuaC4K CShnZXRfY29tcHV0ZV90eXBlKTogQ2hlY2sgb3B0YWJfbGliZnVuYy4KCSogdHJlZS12ZWN0 LXN0bXRzLmNjOiBJbmNsdWRlIG9wdGFicy1saWJmdW5jcy5oLgoJKHZlY3Rvcml6YWJsZV9v cGVyYXRpb24pOiBDaGVjayBvcHRhYl9saWJmdW5jLgoKZGlmZiAtLWdpdCBhL2djYy90cmVl LXZlY3QtZ2VuZXJpYy5jYyBiL2djYy90cmVlLXZlY3QtZ2VuZXJpYy5jYwppbmRleCBiN2Q0 YTkxOWM1NS4uNGQ3ODRhNzBjMGQgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLXZlY3QtZ2VuZXJp Yy5jYworKysgYi9nY2MvdHJlZS12ZWN0LWdlbmVyaWMuY2MKQEAgLTQ0LDYgKzQ0LDcgQEAg YWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKICNp bmNsdWRlICJnaW1wbGUtZm9sZC5oIgogI2luY2x1ZGUgImdpbXBsZS1tYXRjaC5oIgogI2lu Y2x1ZGUgInJlY29nLmgiCQkvKiBGSVhNRTogZm9yIGluc25fZGF0YSAqLworI2luY2x1ZGUg Im9wdGFicy1saWJmdW5jcy5oIgogCiAKIC8qIEJ1aWxkIGEgdGVybmFyeSBvcGVyYXRpb24g YW5kIGdpbXBsaWZ5IGl0LiAgRW1pdCBjb2RlIGJlZm9yZSBHU0kuCkBAIC0xNzE0LDcgKzE3 MTUsOCBAQCBnZXRfY29tcHV0ZV90eXBlIChlbnVtIHRyZWVfY29kZSBjb2RlLCBvcHRhYiBv cCwgdHJlZSB0eXBlKQogICAgICAgbWFjaGluZV9tb2RlIGNvbXB1dGVfbW9kZSA9IFRZUEVf TU9ERSAoY29tcHV0ZV90eXBlKTsKICAgICAgIGlmIChWRUNUT1JfTU9ERV9QIChjb21wdXRl X21vZGUpKQogCXsKLQkgIGlmIChvcCAmJiBvcHRhYl9oYW5kbGVyIChvcCwgY29tcHV0ZV9t b2RlKSAhPSBDT0RFX0ZPUl9ub3RoaW5nKQorCSAgaWYgKG9wICYmIChvcHRhYl9oYW5kbGVy IChvcCwgY29tcHV0ZV9tb2RlKSAhPSBDT0RFX0ZPUl9ub3RoaW5nCisJCSAgICAgfHwgb3B0 YWJfbGliZnVuYyAob3AsIGNvbXB1dGVfbW9kZSkpKQogCSAgICByZXR1cm4gY29tcHV0ZV90 eXBlOwogCSAgaWYgKGNvZGUgPT0gTVVMVF9ISUdIUEFSVF9FWFBSCiAJICAgICAgJiYgY2Fu X211bHRfaGlnaHBhcnRfcCAoY29tcHV0ZV9tb2RlLApkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUt dmVjdC1zdG10cy5jYyBiL2djYy90cmVlLXZlY3Qtc3RtdHMuY2MKaW5kZXggYTdhY2MwMzJk NDcuLjcxYThjZjJjNmQ0IDEwMDY0NAotLS0gYS9nY2MvdHJlZS12ZWN0LXN0bXRzLmNjCisr KyBiL2djYy90cmVlLXZlY3Qtc3RtdHMuY2MKQEAgLTU2LDYgKzU2LDcgQEAgYWxvbmcgd2l0 aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKICNpbmNsdWRlICJn aW1wbGUtZm9sZC5oIgogI2luY2x1ZGUgInJlZ3MuaCIKICNpbmNsdWRlICJhdHRyaWJzLmgi CisjaW5jbHVkZSAib3B0YWJzLWxpYmZ1bmNzLmgiCiAKIC8qIEZvciBsYW5nX2hvb2tzLnR5 cGVzLnR5cGVfZm9yX21vZGUuICAqLwogI2luY2x1ZGUgImxhbmdob29rcy5oIgpAQCAtNjUy OCw4ICs2NTI5LDggQEAgdmVjdG9yaXphYmxlX29wZXJhdGlvbiAodmVjX2luZm8gKnZpbmZv LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm8gb3B0YWIuXG4iKTsKIAkgIHJl dHVybiBmYWxzZTsKIAl9Ci0gICAgICB0YXJnZXRfc3VwcG9ydF9wID0gKG9wdGFiX2hhbmRs ZXIgKG9wdGFiLCB2ZWNfbW9kZSkKLQkJCSAgIT0gQ09ERV9GT1Jfbm90aGluZyk7CisgICAg ICB0YXJnZXRfc3VwcG9ydF9wID0gKG9wdGFiX2hhbmRsZXIgKG9wdGFiLCB2ZWNfbW9kZSkg IT0gQ09ERV9GT1Jfbm90aGluZworCQkJICB8fCBvcHRhYl9saWJmdW5jIChvcHRhYiwgdmVj X21vZGUpKTsKICAgICB9CiAKICAgYm9vbCB1c2luZ19lbXVsYXRlZF92ZWN0b3JzX3AgPSB2 ZWN0X2VtdWxhdGVkX3ZlY3Rvcl9wICh2ZWN0eXBlKTsK --------------d67kM1oasRfe8uocMb0lVEnD--