Hi Carl, On Mon, Jun 18, 2018 at 01:52:15PM -0700, Carl Love wrote: > Per our discussions, the previous patch had issues with the target > !powerpc*-*-aix* not working correctly and thus the instruction count > test was not being done. I have addressed those issues and verified by > inspecting the gcc/testsuite/gcc/gcc.log file to make sure the test was > actually executed. > > As for the issues with the xxlxor being used as a move instruction in > builtins-1.c, I moved vec_or instructions to a new file. The number of > xxlor instructions from the vec_or test cases can now be cleanly > counted without the move instructions from other tests.
:-) > I found in a few places that by qualifying the instruction counts > better, I was able to remove the target for BE and LE and m32 versus > m64. > > I added the -dp option to the vsx-vector-6.p7.c test file. But you do not use the -dp output it seems? If you add it you can see the difference between xxlor generated as an OR or just as a register me (by looking at the pattern name); if you don't use that (like, you moved the ORs to a separate file so you don't need it), don't use -dp. > - vec_andc xxnor > - xxland > + vec_andc xxlnor (vnor AIX) > + xxland (vand AIX) > vec_vxor xxlxor Both vnor and xxlnor are correct everywhere; same for xxlxor and maybe others. Change the comments to just "vec_andc xxlnor/vnor" etc.? > +/* { dg-final { scan-assembler-times {\mxxlnor\M|\mvnor\M} 4 } } */ > +/* { dg-final { scan-assembler-times {\mxxland\M|\mvand\M} 4 } } */ > +/* { dg-final { scan-assembler-times "xxlxor" 5 { target { powerpc*-*-linux* > } } } } */ > +/* { dg-final { scan-assembler-times "xxlxor" 0 { target { powerpc*-*-aix* } > } } } */ Will this work with > +/* { dg-final { scan-assembler-times {\mxxlxor\M|\mvxor\M} 4 } } */ ? > +/* { dg-final { scan-assembler-times "bl __divdi3" 3 { target { ilp32 && > powerpc*-*-linux* } } } } */ > +/* { dg-final { scan-assembler-times "bl __udivdi3" 3 { target {ilp32 && > powerpc*-*-linux* } } } } */ > +/* { dg-final { scan-assembler-times "bl .__divdi3" 2 { target { ilp32 && > powerpc*-*-aix* } } } } */ > +/* { dg-final { scan-assembler-times "bl .__udivdi3" 2 { target { ilp32 && > powerpc*-*-aix* } } } } */ What causes the difference here? (Sorry if that is a dumb question, I didn't look at the testcase). Rest looks good, thanks! Segher