1/* { dg-do compile } */ 2/* { dg-options "-O2 -mno-tbm" } */ 3 4unsigned array[4]; 5 6#ifdef _WIN64 7__extension__ typedef unsigned long long TYPE; 8#else 9#define TYPE unsigned long 10#endif 11 12unsigned 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