From b3f60ed5c41703494b9f3d0fca520232a6c2813c Mon Sep 17 00:00:00 2001 From: uros Date: Wed, 6 Jun 2012 18:11:39 +0000 Subject: [PATCH] * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188275 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 12 ++++++++++-- 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 + + * 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 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 @@ -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 +2012-04-27 Ollie Wild * 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); } -- 2.7.4