diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2012-06-06 20:11:39 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2012-06-06 20:11:39 +0200 |
commit | 3c6a5c3f07a77d984eaeee25449e01d179409cfd (patch) | |
tree | 2dca515eb8a5fc03b87d61d1fdf2a9cd6683b544 /gcc | |
parent | ce79b85757ae4dd0db3fb846e1cd6633e5d71375 (diff) | |
download | gcc-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/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/avx-os-support.h | 12 |
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); } |