| 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>
|
|
|