1 /* PR target/51274 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -mno-isel" } */
4 
5 /* { dg-final { scan-assembler-times "addic" 4 } } */
6 /* { dg-final { scan-assembler-times "subfe" 1 } } */
7 /* { dg-final { scan-assembler-times "addze" 3 } } */
8 
ne0(long a)9 long ne0(long a)
10 {
11   return a != 0;
12 }
13 
plus_ne0(long a,long b)14 long plus_ne0(long a, long b)
15 {
16   return (a != 0) + b;
17 }
18 
19 void dummy(void);
20 
cmp_plus_ne0(long a,long b)21 void cmp_plus_ne0(long a, long b)
22 {
23   if ((a != 0) + b)
24     dummy();
25 }
26 
plus_ne0_cmp(long a,long b)27 long plus_ne0_cmp(long a, long b)
28 {
29   a = (a != 0) + b;
30   if (a)
31     dummy();
32   return a;
33 }
34