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