| Index: gcc/gcc/testsuite/gcc.target/i386/sse-22.c
|
| diff --git a/gcc/gcc/testsuite/gcc.target/i386/sse-22.c b/gcc/gcc/testsuite/gcc.target/i386/sse-22.c
|
| index f530e54ec3040c82563af21c20dfc3645584737d..6d976972d281a33f6552aac151fd57029cf577be 100644
|
| --- a/gcc/gcc/testsuite/gcc.target/i386/sse-22.c
|
| +++ b/gcc/gcc/testsuite/gcc.target/i386/sse-22.c
|
| @@ -4,10 +4,12 @@
|
|
|
| #include <mm_malloc.h>
|
|
|
| -/* Test that the intrinsics compile without optimization. All of them are
|
| - defined as inline functions in {,x,e,p,t,s,w,a,b}mmintrin.h and mm3dnow.h
|
| - that reference the proper builtin functions. Defining away "extern" and
|
| - "__inline" results in all of them being compiled as proper functions. */
|
| +/* Test that the intrinsics compile without optimization. All of them
|
| + are defined as inline functions in {,x,e,p,t,s,w,a}mmintrin.h,
|
| + xopintrin.h, lwpintrin.h, popcntintrin.h and mm3dnow.h that
|
| + reference the proper builtin functions. Defining away "extern" and
|
| + "__inline" results in all of them being compiled as proper
|
| + functions. */
|
|
|
| #define extern
|
| #define __inline
|
| @@ -37,7 +39,7 @@
|
|
|
|
|
| #ifndef DIFFERENT_PRAGMAS
|
| -#pragma GCC target ("mmx,3dnow,sse,sse2,sse3,ssse3,sse4.1,sse4.2,sse5,aes,pclmul")
|
| +#pragma GCC target ("mmx,3dnow,sse,sse2,sse3,ssse3,sse4.1,sse4.2,sse4a,aes,pclmul,xop,popcnt,abm,lwp")
|
| #endif
|
|
|
| /* Following intrinsics require immediate arguments. They
|
| @@ -146,16 +148,6 @@ test_4 (_mm_cmpestro, int, __m128i, int, __m128i, int, 1)
|
| test_4 (_mm_cmpestrs, int, __m128i, int, __m128i, int, 1)
|
| test_4 (_mm_cmpestrz, int, __m128i, int, __m128i, int, 1)
|
|
|
| -/* bmmintrin.h (SSE5). */
|
| -#ifdef DIFFERENT_PRAGMAS
|
| -#pragma GCC target ("sse5")
|
| -#endif
|
| -#include <bmmintrin.h>
|
| -test_1 (_mm_roti_epi8, __m128i, __m128i, 1)
|
| -test_1 (_mm_roti_epi16, __m128i, __m128i, 1)
|
| -test_1 (_mm_roti_epi32, __m128i, __m128i, 1)
|
| -test_1 (_mm_roti_epi64, __m128i, __m128i, 1)
|
| -
|
| /* wmmintrin.h (AES/PCLMUL). */
|
| #ifdef DIFFERENT_PRAGMAS
|
| #pragma GCC target ("aes,pclmul")
|
| @@ -164,8 +156,26 @@ test_1 (_mm_roti_epi64, __m128i, __m128i, 1)
|
| test_1 (_mm_aeskeygenassist_si128, __m128i, __m128i, 1)
|
| test_2 (_mm_clmulepi64_si128, __m128i, __m128i, __m128i, 1)
|
|
|
| -/* mmintrin-common.h */
|
| +/* smmintrin.h (SSE4.1). */
|
| test_1 (_mm_round_pd, __m128d, __m128d, 1)
|
| test_1 (_mm_round_ps, __m128, __m128, 1)
|
| test_2 (_mm_round_sd, __m128d, __m128d, __m128d, 1)
|
| test_2 (_mm_round_ss, __m128, __m128, __m128, 1)
|
| +
|
| +/* xopintrin.h (XOP). */
|
| +#ifdef DIFFERENT_PRAGMAS
|
| +#pragma GCC target ("xop,lwp")
|
| +#endif
|
| +#include <x86intrin.h>
|
| +test_1 ( _mm_roti_epi8, __m128i, __m128i, 1)
|
| +test_1 ( _mm_roti_epi16, __m128i, __m128i, 1)
|
| +test_1 ( _mm_roti_epi32, __m128i, __m128i, 1)
|
| +test_1 ( _mm_roti_epi64, __m128i, __m128i, 1)
|
| +
|
| +/* lwpintrin.h (LWP). */
|
| +test_2 ( __lwpval32, void, unsigned int, unsigned int, 1)
|
| +test_2 ( __lwpins32, unsigned char, unsigned int, unsigned int, 1)
|
| +#ifdef __x86_64__
|
| +test_2 ( __lwpval64, void, unsigned long long, unsigned int, 1)
|
| +test_2 ( __lwpins64, unsigned char, unsigned long long, unsigned int, 1)
|
| +#endif
|
|
|