34 lines
527 B
C
34 lines
527 B
C
|
/* 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;
|
||
|
}
|