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