Hi, This test has been flaky on both AIX and in older linux based environments. Notably, the number of xxlor instructions generated varies depending on the platform and the specified bit-size (32/64), with older environments generating either 6 or 24 xxlor instructions. The behavior appears to level out on power8 targets, so update this test to target power8-vector and specify the -mpower8-vector option.
[gcc/testsuite] 2017-05-26 Will Schmidt <will_schm...@vnet.ibm.com> * gcc.target/powerpc/fold-vec-logical-ors-longlong.c: Update the target to powerpc_p8vector_ok. Update dg-options value to -mpower8-vector. diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-longlong.c index 7ca23fb..10c69d3 100644 --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-longlong.c +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-longlong.c @@ -2,8 +2,8 @@ * long long inputs produce the right results. */ /* { dg-do compile } */ -/* { dg-require-effective-target powerpc_vsx_ok } */ -/* { dg-options "-mvsx -O2" } */ +/* { dg-require-effective-target powerpc_p8vector_ok } */ +/* { dg-options "-mpower8-vector -O2" } */ #include <altivec.h> @@ -151,11 +151,11 @@ test6_nor (vector unsigned long long x, vector unsigned long long y) return *foo; } -// Codegen on power7 is such that the vec_or() tests generate more xxlor -// instructions than what is seen on power8 or newer. -// Thus, an additional target clause for the xxlor instruction check. -/* { dg-final { scan-assembler-times {\mxxlor\M} 6 { target p8vector_hw } } } */ -/* { dg-final { scan-assembler-times {\mxxlor\M} 24 { target { ! p8vector_hw } } } } */ +// The number of xxlor instructions generated varies between 6 and 24 for +// older systems (power6,power7), as well as for 32-bit versus 64-bit targets. +// For simplicity, this test now only targets "powerpc_p8vector_ok" environments +// where the answer is expected to be 6. +/* { dg-final { scan-assembler-times {\mxxlor\M} 6 } } */ /* { dg-final { scan-assembler-times {\mxxlxor\M} 6 } } */ /* { dg-final { scan-assembler-times {\mxxlnor\M} 6 } } */