diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 485057f80a28063db89e7b5895f662bc3928ec55..73e75bc2cc358b0f951ee9468f97a04b6d4b6249 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-28  Jakub Jelinek  <jakub@redhat.com>
+
+	* gcc.target/i386/i386.exp (check_effective_target_bmi): Make sure
+	the builtin isn't optimized away.
+
 2011-07-27  Tobias Burnus  <burnus@net-b.de>
 
 	PR fortran/45586
diff --git a/gcc/testsuite/gcc.target/i386/i386.exp b/gcc/testsuite/gcc.target/i386/i386.exp
index 86c7549fcd7761cbf4d835eb937f9fb2b6d49fb1..13d8cffca4f93280d53b7b30f19efb2e490e32d2 100644
--- a/gcc/testsuite/gcc.target/i386/i386.exp
+++ b/gcc/testsuite/gcc.target/i386/i386.exp
@@ -189,9 +189,9 @@ proc check_effective_target_xop { } {
 # Return 1 if bmi instructions can be compiled.
 proc check_effective_target_bmi { } {
     return [check_no_compiler_messages bmi object {
-	void __bextr_u32 (void)
+	unsigned int __bextr_u32 (unsigned int __X, unsigned int __Y)
 	{
-	  __builtin_ia32_bextr_u32 (0, 0);
+	  return __builtin_ia32_bextr_u32 (__X, __Y);
 	}
     } "-mbmi" ]
 }