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.