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.

Reply via email to