OSDN Git Service

Add BMI2 support.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / i386 / i386.exp
index 86c7549..cff8a9a 100644 (file)
@@ -186,16 +186,37 @@ proc check_effective_target_xop { } {
     } "-O2 -mxop" ]
 }
 
+# Return 1 if lzcnt instruction can be compiled.
+proc check_effective_target_lzcnt { } {
+    return [check_no_compiler_messages lzcnt object {
+       unsigned short _lzcnt (unsigned short __X)
+       {
+          return __builtin_clzs (__X);
+       }
+    } "-mlzcnt" ]
+}
+
 # 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" ]
 }
 
+# Return 1 if bmi2 instructions can be compiled.
+proc check_effective_target_bmi2 { } {
+    return [check_no_compiler_messages bmi2 object {
+       unsigned int
+       _bzhi_u32 (unsigned int __X, unsigned int __Y)
+       {
+           return __builtin_ia32_bzhi_si (__X, __Y);
+       }
+    } "-mbmi2" ]
+}
+
 # If the linker used understands -M <mapfile>, pass it to clear hardware
 # capabilities set by the Sun assembler.
 set clearcap_ldflags "-Wl,-M,$srcdir/$subdir/clearcap.map"