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 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