Index: gcc/gcc/testsuite/gcc.target/i386/sse-23.c |
diff --git a/gcc/gcc/testsuite/gcc.target/i386/sse-23.c b/gcc/gcc/testsuite/gcc.target/i386/sse-23.c |
index 4488568f45048ac9645cf7b58b4d6262b187d99f..f74d3a71f6eb6c7ae9c4dba27ddcd8dec2d4e1e7 100644 |
--- a/gcc/gcc/testsuite/gcc.target/i386/sse-23.c |
+++ b/gcc/gcc/testsuite/gcc.target/i386/sse-23.c |
@@ -3,10 +3,12 @@ |
#include <mm_malloc.h> |
-/* Test that the intrinsics compile with 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 with 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 |
@@ -21,13 +23,12 @@ |
#define __builtin_ia32_aeskeygenassist128(X, C) __builtin_ia32_aeskeygenassist128(X, 1) |
#define __builtin_ia32_pclmulqdq128(X, Y, I) __builtin_ia32_pclmulqdq128(X, Y, 1) |
-/* mmintrin-common.h */ |
+/* smmintrin.h */ |
#define __builtin_ia32_roundpd(V, M) __builtin_ia32_roundpd(V, 1) |
#define __builtin_ia32_roundsd(D, V, M) __builtin_ia32_roundsd(D, V, 1) |
#define __builtin_ia32_roundps(V, M) __builtin_ia32_roundps(V, 1) |
#define __builtin_ia32_roundss(D, V, M) __builtin_ia32_roundss(D, V, 1) |
-/* smmintrin.h */ |
#define __builtin_ia32_pblendw128(X, Y, M) __builtin_ia32_pblendw128 (X, Y, 1) |
#define __builtin_ia32_blendps(X, Y, M) __builtin_ia32_blendps(X, Y, 1) |
#define __builtin_ia32_blendpd(X, Y, M) __builtin_ia32_blendpd(X, Y, 1) |
@@ -94,15 +95,52 @@ |
#define __builtin_ia32_vec_ext_v4hi(A, N) __builtin_ia32_vec_ext_v4hi(A, 0) |
#define __builtin_ia32_shufps(A, B, N) __builtin_ia32_shufps(A, B, 0) |
-/* bmmintrin.h */ |
-#define __builtin_ia32_protbi(A, B) __builtin_ia32_protbi(A,1) |
-#define __builtin_ia32_protwi(A, B) __builtin_ia32_protwi(A,1) |
-#define __builtin_ia32_protdi(A, B) __builtin_ia32_protdi(A,1) |
-#define __builtin_ia32_protqi(A, B) __builtin_ia32_protqi(A,1) |
+/* immintrin.h */ |
+#define __builtin_ia32_blendpd256(X, Y, M) __builtin_ia32_blendpd256(X, Y, 1) |
+#define __builtin_ia32_blendps256(X, Y, M) __builtin_ia32_blendps256(X, Y, 1) |
+#define __builtin_ia32_dpps256(X, Y, M) __builtin_ia32_dpps256(X, Y, 1) |
+#define __builtin_ia32_shufpd256(X, Y, M) __builtin_ia32_shufpd256(X, Y, 1) |
+#define __builtin_ia32_shufps256(X, Y, M) __builtin_ia32_shufps256(X, Y, 1) |
+#define __builtin_ia32_cmpsd(X, Y, O) __builtin_ia32_cmpsd(X, Y, 1) |
+#define __builtin_ia32_cmpss(X, Y, O) __builtin_ia32_cmpss(X, Y, 1) |
+#define __builtin_ia32_cmppd(X, Y, O) __builtin_ia32_cmppd(X, Y, 1) |
+#define __builtin_ia32_cmpps(X, Y, O) __builtin_ia32_cmpps(X, Y, 1) |
+#define __builtin_ia32_cmppd256(X, Y, O) __builtin_ia32_cmppd256(X, Y, 1) |
+#define __builtin_ia32_cmpps256(X, Y, O) __builtin_ia32_cmpps256(X, Y, 1) |
+#define __builtin_ia32_vextractf128_pd256(X, N) __builtin_ia32_vextractf128_pd256(X, 1) |
+#define __builtin_ia32_vextractf128_ps256(X, N) __builtin_ia32_vextractf128_ps256(X, 1) |
+#define __builtin_ia32_vextractf128_si256(X, N) __builtin_ia32_vextractf128_si256(X, 1) |
+#define __builtin_ia32_vpermilpd(X, N) __builtin_ia32_vpermilpd(X, 1) |
+#define __builtin_ia32_vpermilpd256(X, N) __builtin_ia32_vpermilpd256(X, 1) |
+#define __builtin_ia32_vpermilps(X, N) __builtin_ia32_vpermilps(X, 1) |
+#define __builtin_ia32_vpermilps256(X, N) __builtin_ia32_vpermilps256(X, 1) |
+#define __builtin_ia32_vpermil2pd(X, Y, C, I) __builtin_ia32_vpermil2pd(X, Y, C, 1) |
+#define __builtin_ia32_vpermil2pd256(X, Y, C, I) __builtin_ia32_vpermil2pd256(X, Y, C, 1) |
+#define __builtin_ia32_vpermil2ps(X, Y, C, I) __builtin_ia32_vpermil2ps(X, Y, C, 1) |
+#define __builtin_ia32_vpermil2ps256(X, Y, C, I) __builtin_ia32_vpermil2ps256(X, Y, C, 1) |
+#define __builtin_ia32_vperm2f128_pd256(X, Y, C) __builtin_ia32_vperm2f128_pd256(X, Y, 1) |
+#define __builtin_ia32_vperm2f128_ps256(X, Y, C) __builtin_ia32_vperm2f128_ps256(X, Y, 1) |
+#define __builtin_ia32_vperm2f128_si256(X, Y, C) __builtin_ia32_vperm2f128_si256(X, Y, 1) |
+#define __builtin_ia32_vinsertf128_pd256(X, Y, C) __builtin_ia32_vinsertf128_pd256(X, Y, 1) |
+#define __builtin_ia32_vinsertf128_ps256(X, Y, C) __builtin_ia32_vinsertf128_ps256(X, Y, 1) |
+#define __builtin_ia32_vinsertf128_si256(X, Y, C) __builtin_ia32_vinsertf128_si256(X, Y, 1) |
+#define __builtin_ia32_roundpd256(V, M) __builtin_ia32_roundpd256(V, 1) |
+#define __builtin_ia32_roundps256(V, M) __builtin_ia32_roundps256(V, 1) |
+ |
+/* xopintrin.h */ |
+#define __builtin_ia32_vprotbi(A, B) __builtin_ia32_vprotbi(A,1) |
+#define __builtin_ia32_vprotwi(A, B) __builtin_ia32_vprotwi(A,1) |
+#define __builtin_ia32_vprotdi(A, B) __builtin_ia32_vprotdi(A,1) |
+#define __builtin_ia32_vprotqi(A, B) __builtin_ia32_vprotqi(A,1) |
+/* lwpintrin.h */ |
+#define __builtin_ia32_lwpval32(D2, D1, F) __builtin_ia32_lwpval32 (D2, D1, 1) |
+#define __builtin_ia32_lwpval64(D2, D1, F) __builtin_ia32_lwpval64 (D2, D1, 1) |
+#define __builtin_ia32_lwpins32(D2, D1, F) __builtin_ia32_lwpins32 (D2, D1, 1) |
+#define __builtin_ia32_lwpins64(D2, D1, F) __builtin_ia32_lwpins64 (D2, D1, 1) |
-#pragma GCC target ("3dnow,sse4,sse5,aes,pclmul") |
+#pragma GCC target ("3dnow,sse4,sse4a,aes,pclmul,xop,abm,popcnt,lwp") |
#include <wmmintrin.h> |
-#include <bmmintrin.h> |
#include <smmintrin.h> |
#include <mm3dnow.h> |
+#include <x86intrin.h> |