On Tue, Apr 25, 2023 at 01:33:18PM +0800, Kewen.Lin via Gcc-patches wrote: > For the associated test case, it looks it's valid to make use of rldicr. > (rolt with dot), so an alternative seems to relax the condition of > *rotldi3_mask_dot. Considering this is also targeted for 13.1, I think > this proposed fix is much more conservative, thus this looks good to me! > I also expect Segher/David can give a final say. :)
I admit I couldn't find the reason for that condition (it appears on multiple patterns), but for release branches I think we need to stay as conservative as possible. > > + /* *rotldi3_mask_dot requires for -m32 -mpowerpc64 that the mask is > > + <= 0x7ffffff. */ > > typo, a "f" is missing in "0x7ffffff". Thanks for catching this. Added to my patch copy. > > + return (UINTVAL (mask) << (63 - nb)) <= 0x7fffffff; > > + } > > + else > > + return false; > > } > > > > /* Return whether MASK (a CONST_INT) is a valid mask for any rlwinm, > > rldicl, > > --- gcc/testsuite/gcc.target/powerpc/pr109566.c.jj 2023-04-24 > > 12:54:48.293266468 +0200 > > +++ gcc/testsuite/gcc.target/powerpc/pr109566.c 2023-04-24 > > 12:34:34.306006418 +0200 > > @@ -0,0 +1,15 @@ > > +/* PR target/109566 */ > > +/* { dg-do compile } */ > > +/* { dg-options "-O2 -mpowerpc64" } */ > > /* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */ > > Like 749140af5d072a, we have to exclude this to be tested on aix, otherwise > the > -maix32 and -mpowerpc64 can cause an error message on aix like: > > error: '-maix64' required: 64-bit computation with 32-bit addressing not yet > supported Added +/* Skip this on aix, otherwise it emits the error message like "64-bit + computation with 32-bit addressing not yet supported" on aix. */ +/* { dg-skip-if "" { powerpc*-*-aix* } } */ to my copy from another testcase. Jakub