1 /* PR tree-optimization/45903 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2" } */
4
5 unsigned long long a, b;
6 unsigned char c;
7
8 void
f1(void)9 f1 (void)
10 {
11 c = (a >> 8) + (b >> 8);
12 }
13
14 void
f2(void)15 f2 (void)
16 {
17 c = (a >> 8) | (b >> 8);
18 }
19
20 void
f3(void)21 f3 (void)
22 {
23 c = (a >> 16) ^ (b >> 56);
24 }
25
26 unsigned char
f4(void)27 f4 (void)
28 {
29 return (a >> 48) + (b >> 40);
30 }
31
32 unsigned char
f5(void)33 f5 (void)
34 {
35 return (a >> 32) | (b >> 16);
36 }
37
38 unsigned char
f6(void)39 f6 (void)
40 {
41 return (a >> 24) ^ (b >> 32);
42 }
43
44 /* { dg-final { scan-assembler-not "shr\[qdl\]" } } */
45