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 |