On Thu, May 05, 2022 at 03:52:01AM -0300, Alexandre Oliva wrote: > The testcase for pr100106, compiled with optimization for 32-bit > powerpc -mcpu=604 with -mstrict-align expands the initialization of a > union from a float _Complex value into a load from an SCmode > constant pool entry, aligned to 4 bytes, into a DImode pseudo, > requiring 8-byte alignment.
> + else if (reg && MEM_P (reg) > + && STRICT_ALIGNMENT && MEM_ALIGN (reg) < GET_MODE_ALIGNMENT (omode)) > + return false; Please fix the line breaks? Either do a break before every &&, or put as many things as possible on one line? Note that you should never have paradoxical subregs of mem on rs6000 or any other target with INSN_SCHEDULING. > --- /dev/null > +++ b/gcc/testsuite/gcc.target/powerpc/pr100106-sa.c > @@ -0,0 +1,4 @@ > +/* { dg-do compile { target { ilp32 } } } */ > +/* { dg-options "-mcpu=604 -O -mstrict-align" } */ > + > +#include "../../gcc.c-torture/compile/pr100106.c" It is better to copy the 11 lines of code. Please comment what the ilp32 is for (namely, the -mcpu= will barf without it).. The testcase is okay with those changes, thanks! Seghr