On Wed, May 25, 2016 at 10:37:43AM -0500, Bill Seurer wrote: > This patch adds support for the vec_cmpne altivec builtins from the Power > Architecture 64-Bit ELF V2 ABI OpenPOWER ABI for Linux Supplement (16 July > 2015 Version 1.1). There are many of the builtins that are missing and this > is part of a series of patches to add them. > > There aren't instructions for vec_cmpne so the output code is built from other > built-ins that do have instructions which in this case is the following. > > vec_cmpneq (va, vb) == vec_nor (vec_cmpeq (va, vb), vec_cmpeq (va, vb)) > > The new test cases are executable tests which verify that the generated > code produces expected values. C macros were used so that the same > test case could be used for both the signed and unsigned versions of various > basic types. A separate executable test case is used for the long long > versions > of vec_cmpne because of some differences in loading and storing the vectors. > > Bootstrapped and tested on powerpc64le-unknown-linux-gnu (power8) and > powerpc64-unknown-linux-gnu (both power7 and power8) with no regressions. Is > this ok for trunk?
Okay for trunk, thanks! One formatting nit, one question... > + /* call = vec_cmpeq (va, vb) > + result = vec_nor (call, call) > + */ Please put the */ at the end of the last line, not on its own. > --- gcc/testsuite/gcc.target/powerpc/vec-cmpne-long.c (revision 0) > +++ gcc/testsuite/gcc.target/powerpc/vec-cmpne-long.c (working copy) > @@ -0,0 +1,110 @@ > +/* { dg-do run { target { powerpc64*-*-* } } } */ > +/* { dg-require-effective-target powerpc_p8vector_ok } */ > +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { > "-mcpu=power8" } } */ > +/* { dg-options "-mcpu=power8 -mpower8-vector -O3" } */ Just a question: does this need -O3 to work? Segher