1 /* { dg-do compile } */ 2 /* { dg-options "-march=octeon -mgp64" } */ 3 /* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ 4 /* { dg-final { scan-assembler-not "\tsll\t\[^\n\]*,0" } } */ 5 /* { dg-final { scan-assembler-times "\texts\t" 6 } } */ 6 7 #define TEST(ID, TYPE, SHIFT) \ 8 int NOMIPS16 \ 9 f##ID (long long y) \ 10 { \ 11 return (TYPE) ((TYPE) (y >> SHIFT) + 1); \ 12 } \ 13 int NOMIPS16 \ 14 g##ID (unsigned long long y) \ 15 { \ 16 return (TYPE) ((TYPE) (y >> SHIFT) + 1); \ 17 } 18 19 TEST (1, int, 10) 20 TEST (2, short, 5) 21 TEST (3, char, 31) 22