/* { dg-do compile } */ /* { dg-options "-O2" } */ int test_ok_pos() { int x = 100; return __builtin_bfin_shl_fr1x32(x,24); } int test_ok_neg() { int x = -100; return __builtin_bfin_shl_fr1x32(x,24); } int test_sat_max() { int x = 10000; return __builtin_bfin_shl_fr1x32(x,24); } int test_sat_min() { int x = -10000; return __builtin_bfin_shl_fr1x32(x,24); } short stest_ok_pos() { short x = 100; return __builtin_bfin_shl_fr1x16(x,8); } short stest_ok_neg() { short x = -100; return __builtin_bfin_shl_fr1x16(x,8); } short stest_sat_max() { short x = 10000; return __builtin_bfin_shl_fr1x16(x,8); } short stest_sat_min() { short x = -10000; return __builtin_bfin_shl_fr1x16(x,8); } /* { dg-final { scan-assembler-not "\\(S\\)" } } */ /* { dg-final { scan-assembler-not "\\(V,S\\)" } } */