How's this?
Segher 2012-09-25 Segher Boessenkool <seg...@kernel.crashing.org> gcc/testsuite/ * gcc.target/powerpc/ppc-ne0-1.c: New. --- gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c | 33 ++++++++++++++++++++++++++ 1 files changed, 33 insertions(+), 0 deletions(-) create mode 100644 gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c diff --git a/gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c b/gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c new file mode 100644 index 0000000..63c4b60 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c @@ -0,0 +1,33 @@ +/* PR target/51274 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -mno-isel" } */ + +/* { dg-final { scan-assembler-times "addic" 4 } } */ +/* { dg-final { scan-assembler-times "subfe" 1 } } */ +/* { dg-final { scan-assembler-times "addze" 3 } } */ + +long ne0(long a) +{ + return a != 0; +} + +long plus_ne0(long a, long b) +{ + return (a != 0) + b; +} + +void dummy(void); + +void cmp_plus_ne0(long a, long b) +{ + if ((a != 0) + b) + dummy(); +} + +long plus_ne0_cmp(long a, long b) +{ + a = (a != 0) + b; + if (a) + dummy(); + return a; +} -- 1.7.7.6