1 /* { dg-do compile } */
2 /* { dg-options "-O2 -mno-tbm" } */
3 
4 unsigned array[4];
5 
6 #ifdef _WIN64
7 __extension__ typedef unsigned long long TYPE;
8 #else
9 #define TYPE unsigned long
10 #endif
11 
foo(TYPE x)12 unsigned foo(TYPE x)
13 {
14           return array[(x>>2)&3ul];
15 }
16 
17 /* { dg-final { scan-assembler-not "shr\[^\\n\]*2" } } */
18 /* { dg-final { scan-assembler "and\[^\\n\]*12" } } */
19