Enable Intel HRESET Instruction
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / x86gprintrin-5.c
blob9ef66fdad54511a3f6073cf55cf630956adb2b4f
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -Werror-implicit-function-declaration -march=x86-64 -mno-sse -mno-mmx" } */
3 /* { dg-add-options bind_pic_locally } */
5 /* Test that the intrinsics in <x86gprintrin.h> compile with optimization.
6 All of them are defined as inline functions that reference the proper
7 builtin functions.
9 Defining away "extern" and "__inline" results in all of them being
10 compiled as proper functions. */
12 #define extern
13 #define __inline
15 /* Following intrinsics require immediate arguments. */
17 /* lwpintrin.h */
18 #define __builtin_ia32_lwpval32(D2, D1, F) __builtin_ia32_lwpval32 (D2, D1, 1)
19 #define __builtin_ia32_lwpval64(D2, D1, F) __builtin_ia32_lwpval64 (D2, D1, 1)
20 #define __builtin_ia32_lwpins32(D2, D1, F) __builtin_ia32_lwpins32 (D2, D1, 1)
21 #define __builtin_ia32_lwpins64(D2, D1, F) __builtin_ia32_lwpins64 (D2, D1, 1)
23 /* tbmintrin.h */
24 #define __builtin_ia32_bextri_u32(X, Y) __builtin_ia32_bextr_u32 (X, 1)
25 #define __builtin_ia32_bextri_u64(X, Y) __builtin_ia32_bextr_u64 (X, 1)
27 /* rtmintrin.h */
28 #define __builtin_ia32_xabort(M) __builtin_ia32_xabort(1)
30 #ifdef __x86_64__
31 #pragma GCC target ("adx,bmi,bmi2,clflushopt,clwb,clzero,enqcmd,fsgsbase,fxsr,hreset,lwp,lzcnt,mwaitx,pconfig,pku,popcnt,rdpid,rdrnd,rdseed,tbm,rtm,serialize,sgx,tsxldtrk,uintr,xsavec,xsaveopt,xsaves,wbnoinvd")
32 #else
33 #pragma GCC target ("adx,bmi,bmi2,clflushopt,clwb,clzero,enqcmd,fsgsbase,fxsr,hreset,lwp,lzcnt,mwaitx,pconfig,pku,popcnt,rdpid,rdrnd,rdseed,tbm,rtm,serialize,sgx,tsxldtrk,xsavec,xsaveopt,xsaves,wbnoinvd")
34 #endif
36 #include <x86gprintrin.h>