[PATCH] amdgcn: Add vectorized math routines

Jeff Johnston jjohnstn@redhat.com
Mon Dec 12 22:32:49 GMT 2022


Hi Kwok,

You need to provide headers in all the source and include files.  Some
files mention they are based on an existing
newlib file.  Those files should copy the license header over and not just
have a reference (imagine if
someone were to delete the original file or rename it).  You are not
allowed to change the licensing
of a file you have based off of but you can add additional copyright info
for your additions if you wish.

As mentioned you need to add a license header for the new amdgcnmatch.h
header file that is used everywhere.

-- Jeff J.

On Fri, Dec 2, 2022 at 5:04 PM Kwok Cheung Yeung <kcy@codesourcery.com>
wrote:

> Hello
>
> This patch implements a set of vectorized math routines for use by the
> auto-vectorizer in GCC for the AMD GCN architecture. The implementation
> is located in libm/machine/amdgcn, and is based on the current set of
> scalar math routines in Newlib, from libm/common, libm/math and
> libm/mathfp (where the level of accuracy was deemed sufficient for our
> purposes). I have ensured that the copyright notices from the original
> were retained.
>
> The vectorized routines make extensive use of the GCC vector extensions
> for C, some GCN-specific builtins in GCC, and a SIMD abstraction library
> located in libm/machine/amdgcn/amdgcnmach.h. As the builtins are a
> recent addition to GCC, I have added #if statements to skip compilation
> of the routines that use them to ensure that Newlib will still build for
> older versions of GCC.
>
> Versions for 2-lane vectors up to 64-lane vectors (in powers of 2) are
> provided for all public functions. Versions with <64 lanes (which is the
> 'natural' vector width for AMD GCN) are shims that call the 64-lane
> version with the unused lanes masked out.
>
> Okay for inclusion into Newlib?
>
> Thanks
>
> Kwok Yeung


More information about the Newlib mailing list