FSF copyright assignment
Hi, I am writing to request the FSF copyright assignment forms, as they are a legal requirement for contributing to GCC. Cordially, Seyed Sajad Kahani
Question about the SLP vectorizer failed to perform automatic vectorization in one case
Hi, I'm trying to studing the automatic vectorization optimization in GCC, but I found one case that SLP vectorizer failed to do such things. Here is the sample code: (also a simplification version of a function from the 625/525.x264 source code in SPEC CPU 2017) void pixel_sub_wxh(int16_t *diff, uint8_t *pix1, uint8_t *pix2) { for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) diff[x + y * 4] = pix1[x] - pix2[x]; pix1 += 16; pix2 += 32; } } When I compiled with `-O3 -mavx2/-msse4.2`, SLP vectorizer failed to vectorize it, and I got the following message when adding `-fopt-info-vec-all`. (The inner loop will be unrolled) :6:21: optimized: loop vectorized using 8 byte vectors :6:21: optimized: loop versioned for vectorization because of possible aliasing :5:6: note: vectorized 1 loops in function. :5:6: note: * Analysis failed with vector mode V8SI :5:6: note: * The result for vector mode V32QI would be the same :5:6: note: * Re-trying analysis with vector mode V16QI :5:6: note: * Analysis failed with vector mode V16QI :5:6: note: * Re-trying analysis with vector mode V8QI :5:6: note: * Analysis failed with vector mode V8QI :5:6: note: * Re-trying analysis with vector mode V4QI :5:6: note: * Analysis failed with vector mode V4QI If I manually use the type declaration provided by `immintrin.h` to rewrite the code, the code is as follows (which I hope the SLP vectorizer to be able to do) void pixel_sub_wxh_vec(int16_t *diff, uint8_t *pix1, uint8_t *pix2) { for (int y = 0; y < 4; y++) { __v4hi pix1_v = {pix1[0], pix1[1], pix1[2], pix1[3]}; __v4hi pix2_v = {pix2[0], pix2[1], pix2[2], pix2[3]}; __v4hi diff_v = pix1_v - pix2_v; *(long long *)(diff + y * 4) = (long long)diff_v; pix1 += 16; pix2 += 32; } } What I want to know is why SLP vectorizer can't vectorize the code here, and what changes do I need to make to SLP vectorizer or the source code if I want it to do so? Thanks Hanke Zhang
Re: FSF copyright assignment
Hi Seyed, On Sat, May 25, 2024 at 11:34:53AM +0100, Seyed Sajad Kahani via Gcc wrote: > I am writing to request the FSF copyright assignment forms, as they > are a legal requirement for contributing to GCC. At https://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/Copyright you'll find the request-assign.changes file which you can sent to ass...@gnu.org who will help you get the correct copyright assignment and company disclaimer forms. Cheers, Mark
Re: FSF copyright assignment
Hi, Seyed Welcome. Glad that you want to contribute to GCC. GCC accepts contributions from developers who either execute a copyright assignment to the Free Software Foundation OR who certify the Developer Certificate of Origin for their contributions. https://gcc.gnu.org/contribute.html Please choose whichever procedure works best for the needs of you and any organizational affiliation. Thanks, David On Sat, May 25, 2024 at 6:37 AM Seyed Sajad Kahani via Gcc wrote: > Hi, > > I am writing to request the FSF copyright assignment forms, as they > are a legal requirement for contributing to GCC. > > Cordially, > Seyed Sajad Kahani >
gcc-14-20240525 is now available
Snapshot gcc-14-20240525 is now available on https://gcc.gnu.org/pub/gcc/snapshots/14-20240525/ and on various mirrors, see https://gcc.gnu.org/mirrors.html for details. This snapshot has been generated from the GCC 14 git branch with the following options: git://gcc.gnu.org/git/gcc.git branch releases/gcc-14 revision b0b21d5bdfbc7d417b70010a11354b44968bb184 You'll find: gcc-14-20240525.tar.xz Complete GCC SHA256=a358317d5c8b5474633fa1f1503e44bede9c9e3fbd67512ead7aceb93273e0dd SHA1=499c0f320c528f2cce479d7ccee5062ec90c7e81 Diffs from 14-20240518 are available in the diffs/ subdirectory. When a particular snapshot is ready for public consumption the LATEST-14 link is updated and a message is sent to the gcc list. Please do not use a snapshot before it has been announced that way.