From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id 1784F3857714 for ; Wed, 30 Aug 2023 09:17:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1784F3857714 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 3F60E2F4; Wed, 30 Aug 2023 02:18:21 -0700 (PDT) Received: from [10.57.64.216] (unknown [10.57.64.216]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0BF033F64C; Wed, 30 Aug 2023 02:17:40 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------D11CxD1FQwC3WHC8phWF530x" Message-ID: Date: Wed, 30 Aug 2023 10:17:39 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.14.0 Subject: [PATCH7/8] vect: Add TARGET_SIMD_CLONE_ADJUST_RET_OR_PARAM Content-Language: en-US To: gcc-patches@gcc.gnu.org References: <73b53052-c3a4-4028-2836-ade419431eda@arm.com> Cc: Richard Biener , Richard Sandiford , "jakub@redhat.com" From: "Andre Vieira (lists)" In-Reply-To: <73b53052-c3a4-4028-2836-ade419431eda@arm.com> X-Spam-Status: No, score=-13.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_NONE,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,KAM_LOTSOFHASH,SPF_HELO_NONE,SPF_NONE,TXREP 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: This is a multi-part message in MIME format. --------------D11CxD1FQwC3WHC8phWF530x Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit This patch adds a new target hook to enable us to adapt the types of return and parameters of simd clones. We use this in two ways, the first one is to make sure we can create valid SVE types, including the SVE type attribute, when creating a SVE simd clone, even when the target options do not support SVE. We are following the same behaviour seen with x86 that creates simd clones according to the ABI rules when no simdlen is provided, even if that simdlen is not supported by the current target options. Note that this doesn't mean the simd clone will be used in auto-vectorization. gcc/ChangeLog: (TARGET_SIMD_CLONE_ADJUST_RET_OR_PARAM): Define. * doc/tm.texi (TARGET_SIMD_CLONE_ADJUST_RET_OR_PARAM): Document. * doc/tm.texi.in (TARGET_SIMD_CLONE_ADJUST_RET_OR_PARAM): New. * omp-simd-clone.cc (simd_adjust_return_type): Call new hook. (simd_clone_adjust_argument_types): Likewise. * target.def (adjust_ret_or_param): New hook. * targhooks.cc (default_simd_clone_adjust_ret_or_param): New. * targhooks.h (default_simd_clone_adjust_ret_or_param): New. --------------D11CxD1FQwC3WHC8phWF530x Content-Type: text/plain; charset=UTF-8; name="sve_simd_clones_7.patch" Content-Disposition: attachment; filename="sve_simd_clones_7.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9kb2MvdG0udGV4aSBiL2djYy9kb2MvdG0udGV4aQppbmRleCBi ZGUyMmU1NjJlYmI5MDY5MTIyZWIzYjE0MmFiOGY0YTRhZTU2YTNhLi5iODBjMDllYzM2ZDUx ZjFiYjU1YjE0MjI5ZjQ2MjA3ZmI0NDU3MjIzIDEwMDY0NAotLS0gYS9nY2MvZG9jL3RtLnRl eGkKKysrIGIvZ2NjL2RvYy90bS50ZXhpCkBAIC02MzQzLDYgKzYzNDMsOSBAQCBub24tbmVn YXRpdmUgbnVtYmVyIGlmIGl0IGlzIHVzYWJsZS4gIEluIHRoYXQgY2FzZSwgdGhlIHNtYWxs ZXIgdGhlIG51bWJlciBpcywKIHRoZSBtb3JlIGRlc2lyYWJsZSBpdCBpcyB0byB1c2UgaXQu CiBAZW5kIGRlZnR5cGVmbgogCitAZGVmdHlwZWZuIHtUYXJnZXQgSG9va30gdHJlZSBUQVJH RVRfU0lNRF9DTE9ORV9BREpVU1RfUkVUX09SX1BBUkFNIChzdHJ1Y3QgY2dyYXBoX25vZGUg KkB2YXJ7fSwgQHZhcnt0cmVlfSwgQHZhcntib29sfSkKK0lmIGRlZmluZWQsIHRoaXMgaG9v ayBzaG91bGQgYWRqdXN0IHRoZSB0eXBlIG9mIHRoZSByZXR1cm4gb3IgcGFyYW1ldGVyCitA dmFye3R5cGV9IHRvIGJlIHVzZWQgYnkgdGhlIHNpbWQgY2xvbmUgQHZhcntub2RlfS4KIEBl bmQgZGVmdHlwZWZuCiAKIEBkZWZ0eXBlZm4ge1RhcmdldCBIb29rfSBpbnQgVEFSR0VUX1NJ TVRfVkYgKHZvaWQpCmRpZmYgLS1naXQgYS9nY2MvZG9jL3RtLnRleGkuaW4gYi9nY2MvZG9j L3RtLnRleGkuaW4KaW5kZXggNGFjOTZkYzM1N2QzNWUwZTU3YmI0M2E0MWQxYjFhNGY2NmQw NTk0Ni4uNzQ5NmEzMmQ4NGY3YzQyMmZlN2VhODgyMTVlZTcyZjNjMzU0YTNmNCAxMDA2NDQK LS0tIGEvZ2NjL2RvYy90bS50ZXhpLmluCisrKyBiL2djYy9kb2MvdG0udGV4aS5pbgpAQCAt NDIxMSw2ICs0MjExLDggQEAgYWRkcmVzczsgIGJ1dCBvZnRlbiBhIG1hY2hpbmUtZGVwZW5k ZW50IHN0cmF0ZWd5IGNhbiBnZW5lcmF0ZSBiZXR0ZXIgY29kZS4KIAogQGhvb2sgVEFSR0VU X1NJTURfQ0xPTkVfVVNBQkxFCiAKK0Bob29rIFRBUkdFVF9TSU1EX0NMT05FX0FESlVTVF9S RVRfT1JfUEFSQU0KKwogQGhvb2sgVEFSR0VUX1NJTVRfVkYKIAogQGhvb2sgVEFSR0VUX09N UF9ERVZJQ0VfS0lORF9BUkNIX0lTQQpkaWZmIC0tZ2l0IGEvZ2NjL29tcC1zaW1kLWNsb25l LmNjIGIvZ2NjL29tcC1zaW1kLWNsb25lLmNjCmluZGV4IGVmMGI5YjQ4YzcyMTI5MDAwMjNi YzBlYWViY2E1ZTFmOTM4OWRiNzcuLmMyZmQ0ZDNiZTg3OGU1NmI2Mzk0ZTM0MDk3ZDJkZTgy NmEwYmExZmYgMTAwNjQ0Ci0tLSBhL2djYy9vbXAtc2ltZC1jbG9uZS5jYworKysgYi9nY2Mv b21wLXNpbWQtY2xvbmUuY2MKQEAgLTczNiw2ICs3MzYsNyBAQCBzaW1kX2Nsb25lX2FkanVz dF9yZXR1cm5fdHlwZSAoc3RydWN0IGNncmFwaF9ub2RlICpub2RlKQogICAgICAgdCA9IGJ1 aWxkX2FycmF5X3R5cGVfbmVsdHMgKHQsIGV4YWN0X2RpdiAobm9kZS0+c2ltZGNsb25lLT5z aW1kbGVuLAogCQkJCQkJdmVjbGVuKSk7CiAgICAgfQorICB0ID0gdGFyZ2V0bS5zaW1kX2Ns b25lLmFkanVzdF9yZXRfb3JfcGFyYW0gKG5vZGUsIHQsIGZhbHNlKTsKICAgVFJFRV9UWVBF IChUUkVFX1RZUEUgKGZuZGVjbCkpID0gdDsKICAgaWYgKCFub2RlLT5kZWZpbml0aW9uKQog ICAgIHJldHVybiBOVUxMX1RSRUU7CkBAIC03NDgsNiArNzQ5LDcgQEAgc2ltZF9jbG9uZV9h ZGp1c3RfcmV0dXJuX3R5cGUgKHN0cnVjdCBjZ3JhcGhfbm9kZSAqbm9kZSkKIAogICB0cmVl IGF0eXBlID0gYnVpbGRfYXJyYXlfdHlwZV9uZWx0cyAob3JpZ19yZXR0eXBlLAogCQkJCSAg ICAgICBub2RlLT5zaW1kY2xvbmUtPnNpbWRsZW4pOworICBhdHlwZSA9IHRhcmdldG0uc2lt ZF9jbG9uZS5hZGp1c3RfcmV0X29yX3BhcmFtIChub2RlLCBhdHlwZSwgZmFsc2UpOwogICBp ZiAobWF5YmVfbmUgKHZlY2xlbiwgbm9kZS0+c2ltZGNsb25lLT5zaW1kbGVuKSkKICAgICBy ZXR1cm4gYnVpbGQxIChWSUVXX0NPTlZFUlRfRVhQUiwgYXR5cGUsIHQpOwogCkBAIC04ODAs NiArODgyLDggQEAgc2ltZF9jbG9uZV9hZGp1c3RfYXJndW1lbnRfdHlwZXMgKHN0cnVjdCBj Z3JhcGhfbm9kZSAqbm9kZSkKIAkJCQkgICAgICAgPyBJREVOVElGSUVSX1BPSU5URVIgKERF Q0xfTkFNRSAocGFybSkpCiAJCQkJICAgICAgIDogTlVMTCwgcGFybV90eXBlLCBzYy0+c2lt ZGxlbik7CiAJfQorICAgICAgYWRqLnR5cGUgPSB0YXJnZXRtLnNpbWRfY2xvbmUuYWRqdXN0 X3JldF9vcl9wYXJhbSAobm9kZSwgYWRqLnR5cGUsCisJCQkJCQkJIGZhbHNlKTsKICAgICAg IHZlY19zYWZlX3B1c2ggKG5ld19wYXJhbXMsIGFkaik7CiAgICAgfQogCkBAIC05MTIsNiAr OTE2LDggQEAgc2ltZF9jbG9uZV9hZGp1c3RfYXJndW1lbnRfdHlwZXMgKHN0cnVjdCBjZ3Jh cGhfbm9kZSAqbm9kZSkKIAlhZGoudHlwZSA9IGJ1aWxkX3ZlY3Rvcl90eXBlIChwb2ludGVy X3NpemVkX2ludF9ub2RlLCB2ZWNsZW4pOwogICAgICAgZWxzZQogCWFkai50eXBlID0gYnVp bGRfdmVjdG9yX3R5cGUgKGJhc2VfdHlwZSwgdmVjbGVuKTsKKyAgICAgIGFkai50eXBlID0g dGFyZ2V0bS5zaW1kX2Nsb25lLmFkanVzdF9yZXRfb3JfcGFyYW0gKG5vZGUsIGFkai50eXBl LAorCQkJCQkJCSB0cnVlKTsKICAgICAgIHZlY19zYWZlX3B1c2ggKG5ld19wYXJhbXMsIGFk aik7CiAKICAgICAgIGsgPSB2ZWN0b3JfdW5yb2xsX2ZhY3RvciAoc2MtPnNpbWRsZW4sIHZl Y2xlbik7CkBAIC05MzcsNiArOTQzLDcgQEAgc2ltZF9jbG9uZV9hZGp1c3RfYXJndW1lbnRf dHlwZXMgKHN0cnVjdCBjZ3JhcGhfbm9kZSAqbm9kZSkKIAkgICAgc2MtPmFyZ3NbaV0uc2lt ZF9hcnJheSA9IE5VTExfVFJFRTsKIAl9CiAgICAgICBzYy0+YXJnc1tpXS5vcmlnX3R5cGUg PSBiYXNlX3R5cGU7CisgICAgICBzYy0+YXJnc1tpXS52ZWN0b3JfdHlwZSA9IGFkai50eXBl OwogICAgICAgc2MtPmFyZ3NbaV0uYXJnX3R5cGUgPSBTSU1EX0NMT05FX0FSR19UWVBFX01B U0s7CiAgICAgICBzYy0+YXJnc1tpXS52ZWN0b3JfdHlwZSA9IGFkai50eXBlOwogICAgIH0K ZGlmZiAtLWdpdCBhL2djYy90YXJnZXQuZGVmIGIvZ2NjL3RhcmdldC5kZWYKaW5kZXggNmEw Y2JjNDU0NTI2ZWUyOTAxMTQ1MWI1NzAzNTRiZjIzNGE0ZWFiZC4uNjY1MDgzY2UwMzVkYTAz YjQwYjE1ZjIzNjg0Y2NkYWNjZTMzYzlkMyAxMDA2NDQKLS0tIGEvZ2NjL3RhcmdldC5kZWYK KysrIGIvZ2NjL3RhcmdldC5kZWYKQEAgLTE2NTAsNiArMTY1MCwxMyBAQCBub24tbmVnYXRp dmUgbnVtYmVyIGlmIGl0IGlzIHVzYWJsZS4gIEluIHRoYXQgY2FzZSwgdGhlIHNtYWxsZXIg dGhlIG51bWJlciBpcyxcbgogdGhlIG1vcmUgZGVzaXJhYmxlIGl0IGlzIHRvIHVzZSBpdC4i LAogaW50LCAoc3RydWN0IGNncmFwaF9ub2RlICosIG1hY2hpbmVfbW9kZSksIE5VTEwpCiAK K0RFRkhPT0sKKyhhZGp1c3RfcmV0X29yX3BhcmFtLAorIklmIGRlZmluZWQsIHRoaXMgaG9v ayBzaG91bGQgYWRqdXN0IHRoZSB0eXBlIG9mIHRoZSByZXR1cm4gb3IgcGFyYW1ldGVyXG5c CitAdmFye3R5cGV9IHRvIGJlIHVzZWQgYnkgdGhlIHNpbWQgY2xvbmUgQHZhcntub2RlfS4i LAordHJlZSwgKHN0cnVjdCBjZ3JhcGhfbm9kZSAqLCB0cmVlLCBib29sKSwKK2RlZmF1bHRf c2ltZF9jbG9uZV9hZGp1c3RfcmV0X29yX3BhcmFtKQorCiAKIEhPT0tfVkVDVE9SX0VORCAo c2ltZF9jbG9uZSkKIApkaWZmIC0tZ2l0IGEvZ2NjL3Rhcmdob29rcy5oIGIvZ2NjL3Rhcmdo b29rcy5oCmluZGV4IDFhMGRiOGRkZGQ1OTRkOWIxZmIwNGFlMGQ5YTY2YWQ2YjdhMzk2ZGMu LjU1ODE1NzUxNDgxNDIyOGVmMmVkNDFhZTA4NjFlMWMwODhlZWE5ZWYgMTAwNjQ0Ci0tLSBh L2djYy90YXJnaG9va3MuaAorKysgYi9nY2MvdGFyZ2hvb2tzLmgKQEAgLTc1LDYgKzc1LDkg QEAgZXh0ZXJuIHZvaWQgZGVmYXVsdF9wcmludF9vcGVyYW5kIChGSUxFICosIHJ0eCwgaW50 KTsKIGV4dGVybiB2b2lkIGRlZmF1bHRfcHJpbnRfb3BlcmFuZF9hZGRyZXNzIChGSUxFICos IG1hY2hpbmVfbW9kZSwgcnR4KTsKIGV4dGVybiBib29sIGRlZmF1bHRfcHJpbnRfb3BlcmFu ZF9wdW5jdF92YWxpZF9wICh1bnNpZ25lZCBjaGFyKTsKIGV4dGVybiB0cmVlIGRlZmF1bHRf bWFuZ2xlX2Fzc2VtYmxlcl9uYW1lIChjb25zdCBjaGFyICopOworZXh0ZXJuIHRyZWUgZGVm YXVsdF9zaW1kX2Nsb25lX2FkanVzdF9yZXRfb3JfcGFyYW0KKyAgKHN0cnVjdCBjZ3JhcGhf bm9kZSAqLHRyZWUgLCBib29sKTsKKwogCiBleHRlcm4gbWFjaGluZV9tb2RlIGRlZmF1bHRf dHJhbnNsYXRlX21vZGVfYXR0cmlidXRlIChtYWNoaW5lX21vZGUpOwogZXh0ZXJuIGJvb2wg ZGVmYXVsdF9zY2FsYXJfbW9kZV9zdXBwb3J0ZWRfcCAoc2NhbGFyX21vZGUpOwpkaWZmIC0t Z2l0IGEvZ2NjL3Rhcmdob29rcy5jYyBiL2djYy90YXJnaG9va3MuY2MKaW5kZXggZTE5MDM2 OWY4N2E5MmU2YTkyMzcyZGMzNDhkOTM3NGMzYTk2NWMwYS4uNmI2ZjYxMzJjNmRjNjJiOTJh ZDhkNDQ4ZDYzY2E2MDQxMzg2Nzg4ZiAxMDA2NDQKLS0tIGEvZ2NjL3Rhcmdob29rcy5jYwor KysgYi9nY2MvdGFyZ2hvb2tzLmNjCkBAIC0zOTksNiArMzk5LDE2IEBAIGRlZmF1bHRfbWFu Z2xlX2Fzc2VtYmxlcl9uYW1lIChjb25zdCBjaGFyICpuYW1lIEFUVFJJQlVURV9VTlVTRUQp CiAgIHJldHVybiBnZXRfaWRlbnRpZmllciAoc3RyaXBwZWQpOwogfQogCisvKiBUaGUgZGVm YXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBUQVJHRVRfU0lNRF9DTE9ORV9BREpVU1RfUkVUX09S X1BBUkFNLiAgKi8KKwordHJlZQorZGVmYXVsdF9zaW1kX2Nsb25lX2FkanVzdF9yZXRfb3Jf cGFyYW0gKHN0cnVjdCBjZ3JhcGhfbm9kZSAqbm9kZSBBVFRSSUJVVEVfVU5VU0VELAorCQkJ CQl0cmVlIHR5cGUsCisJCQkJCWJvb2wgaXNfcmV0dXJuIEFUVFJJQlVURV9VTlVTRUQpCit7 CisgIHJldHVybiB0eXBlOworfQorCiAvKiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBv ZiBUQVJHRVRfVFJBTlNMQVRFX01PREVfQVRUUklCVVRFLiAgKi8KIAogbWFjaGluZV9tb2Rl Cg== --------------D11CxD1FQwC3WHC8phWF530x--