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 <ramana....@gmail.com>

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.

So perhaps the bug is that we try to treat this as a homogeneous aggregate at all.

R.

And clang seems to agree with my opinion: https://godbolt.org/z/ncaYfzebM

R.

Reply via email to