Am Do., 28. Mai 2026 um 16:02 Uhr schrieb Jonathan Yong <[email protected]>: > > On 5/28/26 06:32, oltolm wrote: > > On x86_64-w64-mingw32, PR target/54412 is triggered when GCC creates > > under-aligned stack storage for AVX values that are passed, returned or > > materialized indirectly. > > > > Add coverage for the original by-value cases, for isolated hidden sret > > allocation, for callee-side by-reference parameter setup, for the reduced > > real-world C++ temporary-slot reproducer, and for an aligned(64) AVX512 > > case. > > FYI the new set of patches caused a build error: > > > ../../gcc/gcc/function.cc: In function ‘void > > assign_parm_setup_reg(assign_parm_data_all*, tree, assign_parm_data_one*)’: > > ../../gcc/gcc/function.cc:3396:21: error: comparison of integer expressions > > of different signedness: ‘int’ and ‘unsigned int’ [-Werror=sign-compare] > > 3396 | if (align > MAX_SUPPORTED_STACK_ALIGNMENT > > I missed pushing one of the patches earlier for adding the testcases, > but by the time I realized and pushed it, I saw you sent a new version. > > Please rebase against the master branch, thanks.
I posted v4 of my patch, hopefully the last. I tested the patch with the testsuites of VectorClass, highway, xsimd, simde and Vc. There were not regressions compared to the MSYS2 UCRT64 GCC with the unofficial AVX patch. I did test the first version of my patch with the VectorClass testsuite, but I didn't realize the compiler was inlining all calls. Only after disabling inlining it became a useful testuite for my patch.
