On Tue, Feb 28, 2023 at 3:02 PM Kwok Cheung Yeung <k...@codesourcery.com> wrote: > > Hello > > This patch implements the TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION > target hook for the AMD GCN architecture, such that when vectorized, > calls to builtin standard math functions such as asinf, exp, pow etc. > are converted to calls to the recently added vectorized math functions > for GCN in Newlib. The -fno-math-errno flag is required in addition to > the usual vectorization optimization flags for this to occur, and some > of the math functions (the larger double-precision ones) require a large > stack size to function properly. > > This patch requires the GCN vector math functions in Newlib to function > - these were included in the recent 4.3.0.20230120 snapshot. As this was > a minimum requirement starting from the patch 'amdgcn, libgomp: Manually > allocated stacks', this should not be a problem. > > I have added new testcases in the testsuite that compare the output of > the vectorized math functions against the scalar, passing if they are > sufficiently close. With the testcase for standalone GCN (without > libgomp) in gcc.target/gcn/, there is a problem since gcn-run currently > cannot set the stack size correctly in DejaGnu testing, so I have made > it a compile test for now - it is still useful to check that calls to > the correct functions are being made. The runtime correctness is still > covered by the libgomp test.
I thought we were moving towards using the simd attribute instead and moving away from these kind of patches. Though since gcn is a special target that including math.h normally does not happen for offloading this might be still usefull. > > Okay for trunk? We are in stage 4 of GCC 13 release cycle, I suspect we want to wait until GCC 13 branches off to apply this. Thanks, Andrew Pinski > > Thanks > > Kwok