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 B54323858C83 for ; Wed, 9 Mar 2022 16:29:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B54323858C83 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="5.90,167,1643702400"; d="diff'?scan'208";a="72950264" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa2.mentor.iphmx.com with ESMTP; 09 Mar 2022 08:29:50 -0800 IronPort-SDR: ZTU2+Ec0P1ZhKC/UAkb7InWYcw0AECrHH8s4egHLWwja1iTN5PSvtiRonQ4upLjybCaf/CUNWD DFkcTuk7G1u4Auzl4znc7yI/k1pzHkS+DFzUH11vlhA3cVKrbrvZ7lbW6Mey8FdnXbVgqmhjvH UepMx2kOAxkajbOq+URAgzwxNbh6M98I6c08EsbuD65v0P4b+Rz7DkTejU4kMvqwQ8VbNH9Omr dwDYtCSAnJrOVvQZXSX3KyOdjNd1Ba70JAQzx7/LfzxFNRZYaHn2vYE6+7Whg+N8d//0Od/7sZ nBQ= Content-Type: multipart/mixed; boundary="------------VoUD41JeC3iHRStapGiK3cb0" Message-ID: Date: Wed, 9 Mar 2022 17:29:44 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.2 Content-Language: en-US To: gcc-patches , Andrew Stubbs From: Tobias Burnus Subject: [Patch] GCN: Implement __atomic_compare_exchange_{1,2} in libgcc [PR102215] X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-13.mgc.mentorg.com (139.181.222.13) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Mar 2022 16:29:54 -0000 --------------VoUD41JeC3iHRStapGiK3cb0 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable This shows up with with OpenMP offloading as libgomp since a couple of months uses __atomic_compare_exchange (see PR for details), causing link errors when the gcn libgomp.a is linked. It also shows up with sollve_vv. The implementation does a bit copy'n'paste from the current implementation + calls the existing word/uint32_t-wide version of the atomic intrinsic. The semantic is described at https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html In terms of the args, the _4 has: DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_4, "__atomic_compare_exchange_4", BT_FN_BOOL_VPTR_PTR_I4_BOOL_INT_INT, ATTR_NOTHROWCALL_LEAF_LIST) and the arg names try to match the GCC manual. OK for mainline? Tested with libgomp + sollve_vv and -march=3Dgfx908. Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------VoUD41JeC3iHRStapGiK3cb0 Content-Type: text/x-patch; charset="UTF-8"; name="gcn-atomic.diff" Content-Disposition: attachment; filename="gcn-atomic.diff" Content-Transfer-Encoding: base64 R0NOOiBJbXBsZW1lbnQgX19hdG9taWNfY29tcGFyZV9leGNoYW5nZV97MSwyfSBpbiBsaWJn Y2MgW1BSMTAyMjE1XQoKbGliZ2NjL0NoYW5nZUxvZzoKCglQUiB0YXJnZXQvMTAyMjE1Cgkq IGNvbmZpZy9nY24vYXRvbWljLmMgKF9fc3luY192YWxfY29tcGFyZV9hbmRfc3dhcF8jI1NJ WkUpOiBNb3ZlCglhIGxpbmUgdXAgdG8gbm9uLWFyZy1kZXBlbmRlbnQgdmFsdWUgZmlyc3Qu CgkoX19BVE9NSUNfQ09NUEFSRV9FWENIQU5HRSk6IERlZmluZSArIGNhbGwgdG8gZ2VuZXJh dGUKCV9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2VfezEsMn0uCgpkaWZmIC0tZ2l0IGEvbGli Z2NjL2NvbmZpZy9nY24vYXRvbWljLmMgYi9saWJnY2MvY29uZmlnL2djbi9hdG9taWMuYwpp bmRleCA4Nzg0ZjkwZGZlMi4uY2YyOWZhODJhYmEgMTAwNjQ0Ci0tLSBhL2xpYmdjYy9jb25m aWcvZ2NuL2F0b21pYy5jCisrKyBiL2xpYmdjYy9jb25maWcvZ2NuL2F0b21pYy5jCkBAIC0x OCw0MiArMTgsNjkgQEAKIAogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYW5kCiAgICBhIGNvcHkgb2YgdGhl IEdDQyBSdW50aW1lIExpYnJhcnkgRXhjZXB0aW9uIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt OwogICAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3Bl Y3RpdmVseS4gIElmIG5vdCwgc2VlCiAgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uICAqLwogCiAjaW5jbHVkZSA8c3RkYm9vbC5oPgogCiAjZGVmaW5lIF9fU1lOQ19TVUJX T1JEX0NPTVBBUkVfQU5EX1NXQVAoVFlQRSwgU0laRSkJCQkgICAgIFwKIAkJCQkJCQkJCSAg ICAgXAogVFlQRQkJCQkJCQkJCSAgICAgXAogX19zeW5jX3ZhbF9jb21wYXJlX2FuZF9zd2Fw XyMjU0laRSAoVFlQRSAqcHRyLCBUWVBFIG9sZHZhbCwgVFlQRSBuZXd2YWwpICAgICBcCiB7 CQkJCQkJCQkJICAgICBcCisgIHVuc2lnbmVkIGludCB2YWxtYXNrID0gKDEgPDwgKFNJWkUg KiA4KSkgLSAxOwkJCQkgICAgIFwKICAgdW5zaWduZWQgaW50ICp3b3JkcHRyID0gKHVuc2ln bmVkIGludCAqKSgoX19VSU5UUFRSX1RZUEVfXyApIHB0ciAmIH4zVUwpOyAgXAogICBpbnQg c2hpZnQgPSAoKF9fVUlOVFBUUl9UWVBFX18gKSBwdHIgJiAzVUwpICogODsJCQkgICAgIFwK LSAgdW5zaWduZWQgaW50IHZhbG1hc2sgPSAoMSA8PCAoU0laRSAqIDgpKSAtIDE7CQkJCSAg ICAgXAogICB1bnNpZ25lZCBpbnQgd29yZG1hc2sgPSB+KHZhbG1hc2sgPDwgc2hpZnQpOwkJ CQkgICAgIFwKICAgdW5zaWduZWQgaW50IG9sZHdvcmQgPSAqd29yZHB0cjsJCQkJCSAgICAg XAogICBmb3IgKDs7KQkJCQkJCQkJICAgICBcCiAgICAgewkJCQkJCQkJCSAgICAgXAogICAg ICAgVFlQRSBwcmV2dmFsID0gKG9sZHdvcmQgPj4gc2hpZnQpICYgdmFsbWFzazsJCQkgICAg IFwKICAgICAgIGlmIChfX2J1aWx0aW5fZXhwZWN0IChwcmV2dmFsICE9IG9sZHZhbCwgMCkp CQkJICAgICBcCiAJcmV0dXJuIHByZXZ2YWw7CQkJCQkJCSAgICAgXAogICAgICAgdW5zaWdu ZWQgaW50IG5ld3dvcmQgPSBvbGR3b3JkICYgd29yZG1hc2s7CQkJICAgICBcCiAgICAgICBu ZXd3b3JkIHw9ICgodW5zaWduZWQgaW50KSBuZXd2YWwpIDw8IHNoaWZ0OwkJCSAgICAgXAog ICAgICAgdW5zaWduZWQgaW50IHByZXZ3b3JkCQkJCQkJICAgICBcCiAJICA9IF9fc3luY192 YWxfY29tcGFyZV9hbmRfc3dhcF80ICh3b3JkcHRyLCBvbGR3b3JkLCBuZXd3b3JkKTsJICAg ICBcCiAgICAgICBpZiAoX19idWlsdGluX2V4cGVjdCAocHJldndvcmQgPT0gb2xkd29yZCwg MSkpCQkJICAgICBcCiAJcmV0dXJuIG9sZHZhbDsJCQkJCQkJICAgICBcCiAgICAgICBvbGR3 b3JkID0gcHJldndvcmQ7CQkJCQkJICAgICBcCiAgICAgfQkJCQkJCQkJCSAgICAgXAogfQkJ CQkJCQkJCSAgICAgXAogCQkJCQkJCQkJICAgICBcCiBib29sCQkJCQkJCQkJICAgICBcCiBf X3N5bmNfYm9vbF9jb21wYXJlX2FuZF9zd2FwXyMjU0laRSAoVFlQRSAqcHRyLCBUWVBFIG9s ZHZhbCwgVFlQRSBuZXd2YWwpICAgIFwKIHsJCQkJCQkJCQkgICAgIFwKICAgcmV0dXJuIF9f c3luY192YWxfY29tcGFyZV9hbmRfc3dhcF8jI1NJWkUgKHB0ciwgb2xkdmFsLCBuZXd2YWwp ID09IG9sZHZhbDsgXAogfQogCiBfX1NZTkNfU1VCV09SRF9DT01QQVJFX0FORF9TV0FQICh1 bnNpZ25lZCBjaGFyLCAxKQogX19TWU5DX1NVQldPUkRfQ09NUEFSRV9BTkRfU1dBUCAodW5z aWduZWQgc2hvcnQsIDIpCiAKKworI2RlZmluZSBfX0FUT01JQ19DT01QQVJFX0VYQ0hBTkdF KFRZUEUsU0laRSkJCQkJICAgICAgXAorYm9vbAkJCQkJCQkJCSAgICAgIFwKK19fYXRvbWlj X2NvbXBhcmVfZXhjaGFuZ2VfIyNTSVpFIChUWVBFICpwdHIsIFRZUEUgKmV4cGVjdGVkLAkJ ICAgICAgXAorCQkJCSAgVFlQRSBkZXNpcmVkLCBib29sIHdlYWssCQkgICAgICBcCisJCQkJ ICBpbnQgc3VjY2Vzc19tZW1vcmRlciwgaW50IGZhaWx1cmVfbWVtb3JkZXIpIFwKK3sJCQkJ CQkJCQkgICAgICBcCisgIHVuc2lnbmVkIGludCB2YWxtYXNrID0gKDEgPDwgKFNJWkUgKiA4 KSkgLSAxOwkJCQkgICAgICBcCisJCQkJCQkJCQkgICAgICBcCisgIHVuc2lnbmVkIGludCAq d29yZHB0ciA9ICh1bnNpZ25lZCBpbnQgKikoKF9fVUlOVFBUUl9UWVBFX18gKSBwdHIgJiB+ M1VMKTsgICBcCisgIGludCBwdHJzaGlmdCA9ICgoX19VSU5UUFRSX1RZUEVfXyApIHB0ciAm IDNVTCkgKiA4OwkJCSAgICAgIFwKKyAgdW5zaWduZWQgaW50IHdvcmRtYXNrID0gfih2YWxt YXNrIDw8IHB0cnNoaWZ0KTsJCQkgICAgICBcCisJCQkJCQkJCQkgICAgICBcCisgIHVuc2ln bmVkIGludCBwdHJ3b3JkID0gKndvcmRwdHI7CQkJCQkgICAgICBcCisgIHVuc2lnbmVkIGlu dCBleHB0d29yZCA9IHB0cndvcmQgJiB3b3JkbWFzazsJCQkJICAgICAgXAorICB1bnNpZ25l ZCBpbnQgbmV3d29yZCA9IHB0cndvcmQgJiB3b3JkbWFzazsJCQkJICAgICAgXAorICBleHB0 d29yZCB8PSAoKHVuc2lnbmVkIGludCkgKmV4cGVjdGVkKSA8PCBwdHJzaGlmdDsJCQkgICAg ICBcCisgIG5ld3dvcmQgfD0gKCh1bnNpZ25lZCBpbnQpIGRlc2lyZWQpIDw8IHB0cnNoaWZ0 OwkJCSAgICAgIFwKKyAgaWYgKF9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2VfNCAod29yZHB0 ciwgJmV4cHR3b3JkLCBuZXd3b3JkLCB3ZWFrLAkgICAgICBcCisJCQkJICAgc3VjY2Vzc19t ZW1vcmRlciwgZmFpbHVyZV9tZW1vcmRlcikpCSAgICAgIFwKKyAgICByZXR1cm4gdHJ1ZTsJ CQkJCQkJICAgICAgXAorICAqZXhwZWN0ZWQgPSAoVFlQRSkgKChleHB0d29yZCA+PiBwdHJz aGlmdCkgJiB2YWxtYXNrKTsJCSAgICAgIFwKKyAgcmV0dXJuIGZhbHNlOwkJCQkJCQkJICAg ICAgXAorfQorCitfX0FUT01JQ19DT01QQVJFX0VYQ0hBTkdFICh1bnNpZ25lZCBjaGFyLCAx KQorX19BVE9NSUNfQ09NUEFSRV9FWENIQU5HRSAodW5zaWduZWQgc2hvcnQsIDIpCg== --------------VoUD41JeC3iHRStapGiK3cb0--