On Wed 2024-07-10 11:34:44, Richard Biener wrote:
> On Mon, 8 Jul 2024, Filip Kastl wrote:
>
> > Hi,
> >
> > I'm replying to Richard and keeping Andrew in cc since your suggestions
> > overlap.
> >
> >
> > On Tue 2024-06-11 14:48:06, Richard Biener wrote:
> > > On Thu, 30 May 2024, Filip Kastl wrote:
> > > > +/* { dg-do compile } */
> > > > +/* { dg-options "-O2 -fdump-tree-switchconv -march=znver3" } */
> > >
> > > I think it's better to enable -mpopcnt and -mbmi (or what remains
> > > as minimal requirement).
> >
> > Will do. Currently the testcases are in the i386 directory. After I
> > exchange
> > the -march for -mpopcnt -mbmi can I put these testcases into
> > gcc.dg/tree-ssa?
> > Will the -mpopcnt -mbmi options work with all target architectures?
>
> No, those are i386 specific flags. At least for popcount there's
> dejagnu effective targets popcount, popcountl and popcountll so you
> could do
>
> /* { dg-additional-options "-mpopcnt" { target { x86_64-*-* i?86-*-* } } }
> */
>
> and guard the tree dump scan with { target popcount } to cover other
> archs that have popcount (without adding extra flags).
>
How does this take into account the FFS instruction? If -mbmi is i386 specific
then I can't just put it into dg-options, right? And if I wanted to handle it
similarly to how you suggest handling POPCOUNT, there would have to be
something like { target bmi }. Is there something like that?
Note that I commited to adding x & -x == x as a fallback to POPCOUNT so now I
do not require -mpopcount. I now just have to ensure that the testcase only
runs when the target supports FFS (or runs always but scans output only when
target supports FFS).
Cheers,
Filip Kastl