aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2012-06-06 20:11:39 +0200
committerUros Bizjak <uros@gcc.gnu.org>2012-06-06 20:11:39 +0200
commit3c6a5c3f07a77d984eaeee25449e01d179409cfd (patch)
tree2dca515eb8a5fc03b87d61d1fdf2a9cd6683b544 /gcc
parentce79b85757ae4dd0db3fb846e1cd6633e5d71375 (diff)
downloadgcc-3c6a5c3f07a77d984eaeee25449e01d179409cfd.zip
gcc-3c6a5c3f07a77d984eaeee25449e01d179409cfd.tar.gz
gcc-3c6a5c3f07a77d984eaeee25449e01d179409cfd.tar.bz2
avx-os-support.h (XCR_XFEATURE_ENABLED_MASK): New.
* gcc.target/i386/avx-os-support.h (XCR_XFEATURE_ENABLED_MASK): New. (XSTATE_FP): Ditto. (XSTATE_SSE): Ditto. (XSTATE_YMM): Ditto. (avx_os_support): Use new defines. From-SVN: r188275
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog12
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-os-support.h12
2 files changed, 20 insertions, 4 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 73a1de6..0b681b4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2012-06-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/avx-os-support.h (XCR_XFEATURE_ENABLED_MASK): New.
+ (XSTATE_FP): Ditto.
+ (XSTATE_SSE): Ditto.
+ (XSTATE_YMM): Ditto.
+ (avx_os_support): Use new defines.
+
2012-06-06 Richard Guenther <rguenther@suse.de>
PR testsuite/32380
@@ -181,7 +189,7 @@
arm32 to targets.
* gcc.dg/vect/slp-perm-8.c (main): Prevent vectorization
of the initialization loop.
- (dg-final): Adjust the expected number of vectorized loops depending
+ (dg-final): Adjust the expected number of vectorized loops depending
on vect_char_mult target selector.
2012-05-31 Hans-Peter Nilsson <hp@axis.com>
@@ -1113,7 +1121,7 @@
* gcc.target/cris/peep2-andu2.c: Tweak expected assembly
code to match current output and cover new peephole2 pattern.
-2012-04-27 Ollie Wild <aaw@google.com>
+2012-04-27 Ollie Wild <aaw@google.com>
* g++.dg/cpp0x/Wliteral-suffix.c: New test.
diff --git a/gcc/testsuite/gcc.target/i386/avx-os-support.h b/gcc/testsuite/gcc.target/i386/avx-os-support.h
index 21d332f..fb1ce75 100644
--- a/gcc/testsuite/gcc.target/i386/avx-os-support.h
+++ b/gcc/testsuite/gcc.target/i386/avx-os-support.h
@@ -1,10 +1,18 @@
/* Check if the OS supports executing AVX instructions. */
+#define XCR_XFEATURE_ENABLED_MASK 0x0
+
+#define XSTATE_FP 0x1
+#define XSTATE_SSE 0x2
+#define XSTATE_YMM 0x4
+
static int
avx_os_support (void)
{
unsigned int eax, edx;
+ unsigned int ecx = XCR_XFEATURE_ENABLED_MASK;
+
+ __asm__ ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (ecx));
- __asm__ ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (0));
- return (eax & 6) == 6;
+ return (eax & (XSTATE_SSE | XSTATE_YMM)) == (XSTATE_SSE | XSTATE_YMM);
}