summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/bmi-blsi-2.c
diff options
context:
space:
mode:
authorYukhin Kirill <kirill.yukhin@intel.com>2011-07-27 17:45:41 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2011-07-27 10:45:41 -0700
commit084e45a515a697f61587387c4055d181f3a23e31 (patch)
tree771525ac74d1ea47feef0a9e31de81312d7602dc /gcc/testsuite/gcc.target/i386/bmi-blsi-2.c
parent3689198db0121443b06f1bbe4e1c34286acb3f32 (diff)
downloadgcc-084e45a515a697f61587387c4055d181f3a23e31.tar.gz
Add BMI testcases.
2011-07-27 Yukhin Kirill <kirill.yukhin@intel.com> * gcc.target/i386/i386.exp (check_effective_target_bmi): New. * gcc.target/i386/bmi-andn-1.c: New test. * gcc.target/i386/bmi-andn-1a.c: Likewise. * gcc.target/i386/bmi-andn-2.c: Likewise. * gcc.target/i386/bmi-andn-2a.c: Likewise. * gcc.target/i386/bmi-bextr-1.c: Likewise. * gcc.target/i386/bmi-bextr-1a.c: Likewise. * gcc.target/i386/bmi-bextr-2.c: Likewise. * gcc.target/i386/bmi-bextr-2a.c: Likewise. * gcc.target/i386/bmi-blsi-1.c: Likewise. * gcc.target/i386/bmi-blsi-1a.c: Likewise. * gcc.target/i386/bmi-blsi-2.c: Likewise. * gcc.target/i386/bmi-blsi-2a.c: Likewise. * gcc.target/i386/bmi-blsmsk-1.c: Likewise. * gcc.target/i386/bmi-blsmsk-1a.c: Likewise. * gcc.target/i386/bmi-blsmsk-2.c: Likewise. * gcc.target/i386/bmi-blsmsk-2a.c: Likewise. * gcc.target/i386/bmi-blsr-1.c: Likewise. * gcc.target/i386/bmi-blsr-1a.c: Likewise. * gcc.target/i386/bmi-blsr-2.c: Likewise. * gcc.target/i386/bmi-blsr-2a.c: Likewise. * gcc.target/i386/bmi-tzcnt-1.c: Likewise. * gcc.target/i386/bmi-tzcnt-1a.c: Likewise. * gcc.target/i386/bmi-tzcnt-2.c: Likewise. * gcc.target/i386/bmi-tzcnt-2a.c: Likewise. From-SVN: r176840
Diffstat (limited to 'gcc/testsuite/gcc.target/i386/bmi-blsi-2.c')
-rw-r--r--gcc/testsuite/gcc.target/i386/bmi-blsi-2.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/bmi-blsi-2.c b/gcc/testsuite/gcc.target/i386/bmi-blsi-2.c
new file mode 100644
index 00000000000..b6633a980ab
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/bmi-blsi-2.c
@@ -0,0 +1,30 @@
+/* { dg-do run { target { bmi } } } */
+/* { dg-options "-O2 -mbmi -fno-inline" } */
+
+#include <x86intrin.h>
+
+#include "bmi-check.h"
+
+/* To fool compiler, so it not generate blsi here. */
+int calc_blsi_u32 (int src1, int src2)
+{
+ return (-src1) & (src2);
+}
+
+static void
+bmi_test()
+{
+ unsigned i;
+ int src = 0xfacec0ff;
+ int res, res_ref;
+
+ for (i=0; i<5; ++i) {
+ src = i + src << i;
+
+ res_ref = calc_blsi_u32 (src, src);
+ res = __blsi_u32 (src);
+
+ if (res != res_ref)
+ abort();
+ }
+}