1 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
2 /* { dg-options "-O0 -mssse3 -msse4a" } */
4 /* Test that the intrinsics compile without optimization. All of them are
5 defined as inline functions in mmintrin.h that reference the proper
6 builtin functions. Defining away "static" and "__inline" results in
7 all of them being compiled as proper functions. */
12 /* Following intrinsics require immediate arguments. */
15 #define __builtin_ia32_extrqi(X, I, L) __builtin_ia32_extrqi(X, 1, 1)
16 #define __builtin_ia32_insertqi(X, Y, I, L) __builtin_ia32_insertqi(X, Y, 1, 1)
19 #define __builtin_ia32_palignr128(X, Y, N) __builtin_ia32_palignr128(X, Y, 8)
20 #define __builtin_ia32_palignr(X, Y, N) __builtin_ia32_palignr(X, Y, 8)
23 #define __builtin_ia32_psllwi128(A, B) __builtin_ia32_psllwi128(A, 1)
24 #define __builtin_ia32_psrlqi128(A, B) __builtin_ia32_psrlqi128(A, 1)
25 #define __builtin_ia32_psrlwi128(A, B) __builtin_ia32_psrlwi128(A, 1)
26 #define __builtin_ia32_psrldi128(A, B) __builtin_ia32_psrldi128(A, 1)
27 #define __builtin_ia32_psrldqi128(A, B) __builtin_ia32_psrldqi128(A, 8)
28 #define __builtin_ia32_pslldqi128(A, B) __builtin_ia32_pslldqi128(A, 8)
29 #define __builtin_ia32_psrawi128(A, B) __builtin_ia32_psrawi128(A, 1)
30 #define __builtin_ia32_psradi128(A, B) __builtin_ia32_psradi128(A, 1)
31 #define __builtin_ia32_psllqi128(A, B) __builtin_ia32_psllqi128(A, 1)
32 #define __builtin_ia32_pslldi128(A, B) __builtin_ia32_pslldi128(A, 1)
33 #define __builtin_ia32_pshufhw(A, N) __builtin_ia32_pshufhw(A, 0)
34 #define __builtin_ia32_pshuflw(A, N) __builtin_ia32_pshuflw(A, 0)
35 #define __builtin_ia32_pshufd(A, N) __builtin_ia32_pshufd(A, 0)
36 #define __builtin_ia32_vec_set_v8hi(A, D, N) \
37 __builtin_ia32_vec_set_v8hi(A, D, 0)
38 #define __builtin_ia32_vec_ext_v8hi(A, N) __builtin_ia32_vec_ext_v8hi(A, 0)
39 #define __builtin_ia32_shufpd(A, B, N) __builtin_ia32_shufpd(A, B, 0)
42 #define __builtin_prefetch(P, A, I) __builtin_prefetch(P, A, _MM_HINT_NTA)
43 #define __builtin_ia32_pshufw(A, N) __builtin_ia32_pshufw(A, 0)
44 #define __builtin_ia32_vec_set_v4hi(A, D, N) \
45 __builtin_ia32_vec_set_v4hi(A, D, 0)
46 #define __builtin_ia32_vec_ext_v4hi(A, N) __builtin_ia32_vec_ext_v4hi(A, 0)
47 #define __builtin_ia32_shufps(A, B, N) __builtin_ia32_shufps(A, B, 0)
49 #include <ammintrin.h>
50 #include <tmmintrin.h>