1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-optimized" } */
3 /* { dg-final { scan-tree-dump-not "x_\[0-9]+\\\(D\\\) & y_\[0-9]+\\\(D\\\);" "optimized" } } */
4 /* { dg-final { scan-tree-dump-not "x_\[0-9]+\\\(D\\\) \\| y_\[0-9]+\\\(D\\\);" "optimized" } } */
5 /* { dg-final { scan-tree-dump-times "x_\[0-9]+\\\(D\\\) \\^ y_\[0-9]+\\\(D\\\);" 4 "optimized" } } */
6 /* { dg-final { scan-tree-dump-times "_\[0-9] \\^ _\[0-9]" 4 "optimized" } } */
7 /* { dg-final { scan-tree-dump-times "~_\[0-9]\+" 8 "optimized" } } */
12 unsigned char t
= (unsigned char) (x
& y
);
13 unsigned char tt
= (unsigned char) (x
| y
);
15 return (signed char) (t
+ -1);
19 a1 (signed char x
, signed char y
)
21 short t
= (short) (x
& y
);
22 short tt
= (short) (x
| y
);
23 unsigned char t1
= (unsigned char) (t
- tt
);
30 unsigned char t
= (unsigned char) (x
& y
);
31 signed char tt
= (signed char) (x
| y
);
33 return ((signed char) t
- tt
);
39 int t
= (int) (x
& y
);
40 int tt
= (int) (x
| y
);
41 short t1
= (short) (t
- 1);
42 return (short) (t1
- tt
);
46 c (unsigned x
, unsigned y
)
48 unsigned char t
= (unsigned char) (x
& y
);
49 signed char tt
= (signed char) (x
| y
);
51 return (signed char) (t
- tt
);
55 c1 (signed char x
, signed char y
)
57 unsigned char t
= (unsigned char) (x
& y
);
58 short tt
= (short) (x
| y
);
59 unsigned char tt1
= (unsigned char) (tt
+ 1);
64 d (unsigned char x
, unsigned char y
)
66 int t
= (int) (x
& y
);
67 int tt
= (int) (x
| y
);
69 return (signed char) (t
- tt
);
75 signed char t
= (signed char) (x
& y
);
76 signed char tt
= (signed char) (x
| y
);
77 unsigned char tt1
= (unsigned char) (tt
+ 1);
78 return (unsigned char) (t
- tt1
);