[AArch64] Handle HFAs of float16 types properly

James Greenhalgh james.greenhalgh@arm.com
Fri Aug 5 14:17:00 GMT 2016


On Fri, Aug 05, 2016 at 11:15:24AM +0100, James Greenhalgh wrote:
> On Fri, Aug 05, 2016 at 11:00:39AM +0100, Yao Qi wrote:
> > On Tue, Jul 26, 2016 at 2:55 PM, James Greenhalgh
> > <james.greenhalgh@arm.com> wrote:
> > >
> > > OK? As this is an ABI break, I'm not proposing for it to go back to GCC 6,
> > > though it will apply cleanly there if the maintainers support that.
> > >
> > 
> > What do you mean by "ABI break"?  AFAICS, with this patch, it conforms to
> > AAPCS.
> 
> After this patch code generated for GCC 4.9/5/6 will not be ABI

Note that the __fp16 type was only added for AArch64 for GCC 6, so there
would be no break going back to the earlier branches.

The only released compiler we would potentially have an ABI break against
would be GCC 6.1 (and any vendor/distibution compilers that had backported
the __fp16 support).

__fp16 is a fairly corner-case type anyway, so the actual impact of this
break should be reasonably well limited. Especially if we backport the fix
such that GCC 6.2 contains the fix.

Thanks,
James

> compatible with code generated for GCC 7 for HFAs of __fp16. The new
> generated code will conform to AAPCS64, but the old code didn't so there has
> been an ABI change between the GCC versions. We don't like doing that for
> minor releases, so the patch is not really suitable for backporting.
> 
> > The subject leads me thinking about the handling of HVA of float16.
> 
> These are handled like any other vector, the code looking at HVA's doesn't
> care about the inner mode of the vector just the bitsize:
> 



More information about the Gcc-patches mailing list