From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) by sourceware.org (Postfix) with ESMTPS id 645853858D35 for ; Fri, 11 Nov 2022 21:50:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 645853858D35 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=googlemail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=googlemail.com Received: by mail-wr1-x42b.google.com with SMTP id z14so8014590wrn.7 for ; Fri, 11 Nov 2022 13:50:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=CRATbrV3QwxXZTElfsa1hYVirPNJSgMxSO7NyxOhC6g=; b=Zg2R6UuSlMhXEyRFAilvPeOTW7ZMWnzn9x59wUGpOIt8ziuvFBF0weP0CMtFHhMDcF vniNOj/BYGZq67NiWpJZGeKGG7Lw6/QBttoqSTHNU2SLCOU1X61tTdIZAbpf4p4tdwQF Gh2BPdBOv+7V6d2rhGcMwM/TGQHO58eOzH/SpCniYSnZvB/MVrcwvNFjZegEDkTRVo6u SttQf/XPC4MMdGzrHUfF02hKCdI14HpIWdbNwh7/2NuOTLkVKNC8daEgL7tQJCAZOaYy kL+rVFh1OvicP8eBHOYR3rrwlVIBkN1nWLOp4R35RfXxpcHS6FGXxl19ZbH4/swHuinO hhyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=CRATbrV3QwxXZTElfsa1hYVirPNJSgMxSO7NyxOhC6g=; b=u8fixZ1NOehHAKVA3N7Xgg9FnpnE3QisTMYTK6mRlsqcxcwTpRupdUhf0l2U3mjDRa afhSIEsSSw6Rk3C1ZcPlImNbA2XJjGjpK42+Pvkk4V0lDbGdudjZw+nHji6azXDSZa1K eS3aFHTHAC4mfGg+dbb2hXdcJCbywXgLqkB5lc6Tma36/uGdZU+DtI5Ob7Qz2d2N5Ye2 h2/WL+MVg8ybATwq5MKN1xxrZxBaOXCtgcm0JVVZ9HY/6dyksogzcdedHeaWBgLiZZCZ UwVOmmM5/hG0UusvGXpuJ5TBsEpAAYEo/3xA6/H/iwKY34LInJ7BzV2fwbyse8SgJHcS 7cXQ== X-Gm-Message-State: ANoB5pmGbmmooSOHuP/fnVMirfq7tXL50zw1r5qR/gFXnY8murjelHpv f/jOuoNsI6FgyM3YN0Ifgby2ZetQO9f4LW0r1QY= X-Google-Smtp-Source: AA0mqf4XxXtuaaQ8y1KClKIfFsqsms9kYGXRglSpJrwZhazoqv4PcjzgxChvSZm0qBZnzPbii1ur9DcP66+HNsgPcmU= X-Received: by 2002:a5d:60cd:0:b0:236:6dd5:af5d with SMTP id x13-20020a5d60cd000000b002366dd5af5dmr2201317wrt.364.1668203432504; Fri, 11 Nov 2022 13:50:32 -0800 (PST) MIME-Version: 1.0 References: <4119381e-5b4e-5132-8822-e88f8fbb8fc1@foss.arm.com> In-Reply-To: From: Ramana Radhakrishnan Date: Fri, 11 Nov 2022 21:50:21 +0000 Message-ID: Subject: Re: [Patch Arm] Fix PR 92999 To: Richard Earnshaw Cc: gcc-patches , Richard Earnshaw , Alex Coplan Content-Type: multipart/mixed; boundary="0000000000000210fb05ed38e185" X-Spam-Status: No, score=-8.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_NUMSUBJECT,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,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: --0000000000000210fb05ed38e185 Content-Type: text/plain; charset="UTF-8" On Thu, Nov 10, 2022 at 7:46 PM Ramana Radhakrishnan wrote: > > On Thu, Nov 10, 2022 at 6:03 PM Richard Earnshaw > wrote: > > > > > > > > On 10/11/2022 17:21, Richard Earnshaw via Gcc-patches wrote: > > > > > > > > > On 08/11/2022 18:20, Ramana Radhakrishnan via Gcc-patches wrote: > > >> PR92999 is a case where the VFP calling convention does not allocate > > >> enough FP registers for a homogenous aggregate containing FP16 values. > > >> I believe this is the complete fix but would appreciate another set of > > >> eyes on this. > > >> > > >> Could I get a hand with a regression test run on an armhf environment > > >> while I fix my environment ? > > >> > > >> gcc/ChangeLog: > > >> > > >> PR target/92999 > > >> * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Adjust to handle > > >> aggregates with elements smaller than SFmode. > > >> > > >> gcc/testsuite/ChangeLog: > > >> > > >> * gcc.target/arm/pr92999.c: New test. > > >> > > >> > > >> Thanks, > > >> Ramana > > >> > > >> Signed-off-by: Ramana Radhakrishnan > > > > > > I'm not sure about this. The AAPCS does not mention a base type of a > > > half-precision FP type as an appropriate homogeneous aggregate for using > > > VFP registers for either calling or returning. > > Ooh interesting, thanks for taking a look and poking at the AAPCS and > that's a good catch. BF16 should also have the same behaviour as FP16 > , I suspect ? I suspect I got caught out by the definition of the Homogenous aggregate from Section 5.3.5 ((https://github.com/ARM-software/abi-aa/blob/2982a9f3b512a5bfdc9e3fea5d3b298f9165c36b/aapcs32/aapcs32.rst#homogeneous-aggregates) which simply suggests it's an aggregate of fundamental types which lists half precision floating point . FTR, ideally I should have read 7.1.2.1 https://github.com/ARM-software/abi-aa/blob/2982a9f3b512a5bfdc9e3fea5d3b298f9165c36b/aapcs32/aapcs32.rst#procedure-calling) :) > > > > > > > So perhaps the bug is that we try to treat this as a homogeneous > > > aggregate at all. > > Yep I agree - I'll take a look again tomorrow and see if I can get a fix. > > (And thanks Alex for the test run, I might trouble you again while I > still (slowly) get some of my boards back up) and as promised take 2. I'd really prefer another review on this one to see if I've not missed anything in the cases below. regards Ramana > > regards, > Ramana > > > > > > R. --0000000000000210fb05ed38e185 Content-Type: text/plain; charset="US-ASCII"; name="p1.txt" Content-Disposition: attachment; filename="p1.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lad0zzzd0 Y29tbWl0IGMyZWQwMThkMTAzMjhjNWNmOTNhYTU2YjAwYmE0Y2FmNWRhY2U1MzkKQXV0aG9yOiBS YW1hbmEgUmFkaGFrcmlzaG5hbiA8cmFtYW5hLmdjY0BnbWFpbC5jb20+CkRhdGU6ICAgRnJpIE5v diAxMSAyMTozOToyMiAyMDIyICswMDAwCgogICAgW1BhdGNoIEFybV0gRml4IFBSOTI5OTkKICAg IAogICAgUFIgdGFyZ2V0LzkyOTk5IGlzIGEgY2FzZSB3aGVyZSB0aGUgVkZQIFBDUyBpbXBsZW1l bnRhdGlvbiBpcwogICAgaW5jb3JyZWN0bHkgY29uc2lkZXJpbmcgaG9tb2dlbm91cyBmbG9hdGlu ZyBwb2ludCBhZ2dyZWdhdGVzIHdpdGggRlAxNgogICAgYW5kIEJGMTYgdmFsdWVzLgogICAgCiAg ICBDYW4gc29tZW9uZSBoZWxwIG1lIHdpdGggYSBib290c3RyYXAgYW5kIHJlZ3Jlc3Npb24gdGVz dCBvbiBhbiBhcm1oZgogICAgZW52aXJvbm1lbnQgPwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBS YW1hbmEgUmFkaGFrcmlzaG5hbiA8cmFtYW5hLmdjY0BnbWFpbC5jb20+CiAgICBUZXN0ZWQtYnk6 IEFsZXggQ29wbGFuICA8YWxleC5jb3BsYW5AYXJtLmNvbT4KICAgIFJldmlld2VkLWJ5OiBSaWNo YXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KICAgIAogICAgICAgICAgICBQUiB0YXJn ZXQvOTI5OTkKICAgIAogICAgZ2NjL0NoYW5nZUxvZzoKICAgIAogICAgICAgICAgICAqIGNvbmZp Zy9hcm0vYXJtLmNjIChhYXBjc192ZnBfaXNfaW52YWxpZF9zY2FsYXJfaW5faGEpOiBOZXcKICAg ICAgICAgICAgKGFhcGNzX3ZmcF9zdWJfY2FuZGlkYXRlKTogQWRqdXN0LgogICAgCiAgICBnY2Mv dGVzdHN1aXRlL0NoYW5nZUxvZzoKICAgIAogICAgICAgICAgICAqIGdjYy50YXJnZXQvYXJtL3By OTI5OTkuYzogTmV3IHRlc3QuCgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vYXJtLmNjIGIv Z2NjL2NvbmZpZy9hcm0vYXJtLmNjCmluZGV4IDJlYjRkNTFlNGEzLi5jZDNlMWZmZTc3NyAxMDA2 NDQKLS0tIGEvZ2NjL2NvbmZpZy9hcm0vYXJtLmNjCisrKyBiL2djYy9jb25maWcvYXJtL2FybS5j YwpAQCAtNjI4MSw2ICs2MjgxLDMxIEBAIGNvbnN0IHVuc2lnbmVkIGludCBXQVJOX1BTQUJJX0VN UFRZX0NYWDE3X0JBU0UgPSAxVSA8PCAwOwogY29uc3QgdW5zaWduZWQgaW50IFdBUk5fUFNBQklf Tk9fVU5JUVVFX0FERFJFU1MgPSAxVSA8PCAxOwogY29uc3QgdW5zaWduZWQgaW50IFdBUk5fUFNB QklfWkVST19XSURUSF9CSVRGSUVMRCA9IDFVIDw8IDI7CiAKKworLyogVGhlIEFBUENTIFZGUCBB QkkgYWxsb3dzIGhvbW9nZW5vdXMgYWdncmVnYXRlcyB3aXRoIHNjYWxhcgorICAgRlAzMiBhbmQg RlA2NCBtZW1iZXJzLgorICAgUmV0dXJuCisgICAgIHRydWUgaWYgdGhpcyBpcyBhIHNjYWxhciB0 aGF0IGlzIG5vdCBhIHByb3BlciBjYW5kaWRhdGUKKyAgICAgZmFsc2UgaWYgdGhpcyBpcyBhIHNj YWxhciB0aGF0IGlzIGFuIGFjY2VwdGFibGUgc2NhbGFyIGRhdGEKKyAgICAgdHlwZSBpbiBhIGhv bW9nZW5vdXMgYWdncmVnYXRlIG9yIGlmIHRoaXMgaXMgbm90IGEgc2NhbGFyIGFsbG93aW5nCisg ICAgIHRoZSB0cmVlIHdhbGsgaW4gYWFwY3NfdmZwX3N1Yl9jYW5kaWRhdGUgdG8gY29udGludWUu CisgKi8KK3N0YXRpYyBib29sCithYXBjc192ZnBfaXNfaW52YWxpZF9zY2FsYXJfaW5faGEgKGNv bnN0X3RyZWUgaW5uZXJfdHlwZSkKK3sKKworICBtYWNoaW5lX21vZGUgbW9kZSA9IFRZUEVfTU9E RSAoaW5uZXJfdHlwZSk7CisgIGlmIChUUkVFX0NPREUgKGlubmVyX3R5cGUpID09IFJFQUxfVFlQ RSkKKyAgICB7CisgICAgICBpZiAobW9kZSA9PSBERm1vZGUgJiYgbW9kZSA9PSBTRm1vZGUpCisJ cmV0dXJuIGZhbHNlOworICAgICAgZWxzZQorCXJldHVybiB0cnVlOworICAgIH0KKyAgZWxzZQor ICAgIHJldHVybiBmYWxzZTsKK30KKwogLyogV2FsayBkb3duIHRoZSB0eXBlIHRyZWUgb2YgVFlQ RSBjb3VudGluZyBjb25zZWN1dGl2ZSBiYXNlIGVsZW1lbnRzLgogICAgSWYgKk1PREVQIGlzIFZP SURtb2RlLCB0aGVuIHNldCBpdCB0byB0aGUgZmlyc3QgdmFsaWQgZmxvYXRpbmcgcG9pbnQKICAg IHR5cGUuICBJZiBhIG5vbi1mbG9hdGluZyBwb2ludCB0eXBlIGlzIGZvdW5kLCBvciBpZiBhIGZs b2F0aW5nIHBvaW50CkBAIC02MzcyLDYgKzYzOTcsMTAgQEAgYWFwY3NfdmZwX3N1Yl9jYW5kaWRh dGUgKGNvbnN0X3RyZWUgdHlwZSwgbWFjaGluZV9tb2RlICptb2RlcCwKIAkgICAgfHwgVFJFRV9D T0RFIChUWVBFX1NJWkUgKHR5cGUpKSAhPSBJTlRFR0VSX0NTVCkKIAkgIHJldHVybiAtMTsKIAor CS8qIFdlIGlnbm9yZSBIRkEncyBvZiBGUDE2IGFuZCBCRjE2LiAgKi8KKwlpZiAoYWFwY3NfdmZw X2lzX2ludmFsaWRfc2NhbGFyX2luX2hhIChUUkVFX1RZUEUgKHR5cGUpKSkKKwkgIHJldHVybiAt MTsKKwogCWNvdW50ID0gYWFwY3NfdmZwX3N1Yl9jYW5kaWRhdGUgKFRSRUVfVFlQRSAodHlwZSks IG1vZGVwLAogCQkJCQkgd2Fybl9wc2FiaV9mbGFncyk7CiAJaWYgKGNvdW50ID09IC0xCkBAIC02 NDU1LDYgKzY0ODQsMTAgQEAgYWFwY3NfdmZwX3N1Yl9jYW5kaWRhdGUgKGNvbnN0X3RyZWUgdHlw ZSwgbWFjaGluZV9tb2RlICptb2RlcCwKIAkJICB9CiAJICAgICAgfQogCisJICAgIC8qIFdlIGln bm9yZSBIQSdzIG9mIEZQMTYgYW5kIEJGMTYuICAqLworCSAgICBpZiAoYWFwY3NfdmZwX2lzX2lu dmFsaWRfc2NhbGFyX2luX2hhIChUUkVFX1RZUEUgKGZpZWxkKSkpCisJICAgICAgcmV0dXJuIC0x OworCiAJICAgIHN1Yl9jb3VudCA9IGFhcGNzX3ZmcF9zdWJfY2FuZGlkYXRlIChUUkVFX1RZUEUg KGZpZWxkKSwgbW9kZXAsCiAJCQkJCQkgd2Fybl9wc2FiaV9mbGFncyk7CiAJICAgIGlmIChzdWJf Y291bnQgPCAwKQpAQCAtNjQ4OSw2ICs2NTIyLDEwIEBAIGFhcGNzX3ZmcF9zdWJfY2FuZGlkYXRl IChjb25zdF90cmVlIHR5cGUsIG1hY2hpbmVfbW9kZSAqbW9kZXAsCiAJICAgIGlmIChUUkVFX0NP REUgKGZpZWxkKSAhPSBGSUVMRF9ERUNMKQogCSAgICAgIGNvbnRpbnVlOwogCisJICAgIC8qIFdl IGlnbm9yZSBIQSdzIG9mIEZQMTYgYW5kIEJGMTYuICAqLworCSAgICBpZiAoYWFwY3NfdmZwX2lz X2ludmFsaWRfc2NhbGFyX2luX2hhIChUUkVFX1RZUEUgKGZpZWxkKSkpCisJCXJldHVybiAtMTsK KwogCSAgICBzdWJfY291bnQgPSBhYXBjc192ZnBfc3ViX2NhbmRpZGF0ZSAoVFJFRV9UWVBFIChm aWVsZCksIG1vZGVwLAogCQkJCQkJIHdhcm5fcHNhYmlfZmxhZ3MpOwogCSAgICBpZiAoc3ViX2Nv dW50IDwgMCkKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vcHI5Mjk5 OS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9wcjkyOTk5LmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZhYTIxZmRiN2QyCi0tLSAvZGV2L251bGwKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9wcjkyOTk5LmMKQEAgLTAsMCArMSwzMSBA QAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICItbWZwMTYtZm9ybWF0PWll ZWUiIH0gKi8KKworLy8KKy8vIENvbXBpbGUgd2l0aCBnY2MgLW1mcDE2LWZvcm1hdD1pZWVlCisv LyBBbnkgb3B0aW1pemF0aW9uIGxldmVsIGlzIGZpbmUuCisvLworLy8gQ29ycmVjdCBvdXRwdXQg c2hvdWxkIGJlCisvLyAieS5maXJzdCA9IDEsIHkuc2Vjb25kID0gLTk5IgorLy8KKy8vIEJ1Z2d5 IG91dHB1dCBpcworLy8gInkuZmlyc3QgPSAtOTksIHkuc2Vjb25kID0gLTk5IgorLy8KKyNpbmNs dWRlIDxzdGRsaWIuaD4KK3N0cnVjdCBwaGFsZiB7CisgICAgX19mcDE2IGZpcnN0OworICAgIF9f ZnAxNiBzZWNvbmQ7Cit9OworCitzdHJ1Y3QgcGhhbGYgcGhhbGZfY29weShzdHJ1Y3QgcGhhbGYq IHNyYykgX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKTsKK3N0cnVjdCBwaGFsZiBwaGFsZl9jb3B5 KHN0cnVjdCBwaGFsZiogc3JjKSB7CisgICAgcmV0dXJuICpzcmM7Cit9CisKK2ludCBtYWluKCkg eworICAgIHN0cnVjdCBwaGFsZiB4ID0geyAxLjAsIC05OS4wfTsKKyAgICBzdHJ1Y3QgcGhhbGYg eSA9IHBoYWxmX2NvcHkoJngpOworICAgIGlmICh5LmZpcnN0ICE9IDEuMCAmJiB5LnNlY29uZCAh PSAtOTkuMCkKKwlhYm9ydCgpOworICAgIHJldHVybiAwOworfQo= --0000000000000210fb05ed38e185--