Hi Segher, Thanks for your suggestions!
>> + for (unsigned i = 0; i < and_insns.length (); ++i) > > "i++" is used more often, is more traditional. > Updated. >> --- /dev/null >> +++ b/gcc/testsuite/gcc.target/powerpc/pr97019.c >> @@ -0,0 +1,82 @@ >> +/* This issue can only exist on little-endian P8 targets, since >> + the built-in functions vec_ld/vec_st will use lxvd2x/stxvd2x >> + (P8 big-endian) or lxv/stxv (P9 and later). */ >> +/* { dg-do compile { target { powerpc_p8vector_ok && le } } } */ >> +/* { dg-options "-O2 -mdejagnu-cpu=power8" } */ > > Do you need to test for LE? If not, just always run it? If it works, > it works, it doesn't matter that you do not expect it to ever fail (we > do not really expect *any* test we have to ever fail *anywhere*, heh). > Yes, I did test it on P8 BE, it can generate lxvd2x/stxvd2x on some paths fed by rldicr ...0,59 which are necessary, but they will make the not-rldicr testing fail unexpectedly. >> +/* { dg-final { scan-assembler-not "rldicr\[ \t\]+\[0-9\]+,\[0-9\]+,0,59" } >> } */ > > Please use {} quotes, and \s and \d. > > You can also use {(?n)rldicr.*,0,59} since (?n) makes . not match > newlines anymore. Updated with /* { dg-final { scan-assembler-not {(?n)rldicr.*,0,59} } } */ Re-tested and committed it in r11-3217. Thanks! BR, Kewen