blob: d8a6126e5dc6866c35ab6df4d87ab72de244436e [file] [log] [blame]
/* Same as x86gprintrin-3.c, except converted to use #pragma GCC option. */
/* { dg-do compile } */
/* { dg-options "-O0 -Werror-implicit-function-declaration -march=x86-64 -mno-sse -mno-mmx" } */
/* { dg-add-options bind_pic_locally } */
/* Test that the intrinsics in <x86gprintrin.h> compile without optimization.
All of them are defined as inline functions 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
#ifndef DIFFERENT_PRAGMAS
#ifdef __x86_64__
#pragma GCC target ("adx,bmi,bmi2,fsgsbase,fxsr,hreset,lwp,lzcnt,popcnt,rdrnd,rdseed,tbm,rtm,serialize,tsxldtrk,uintr,xsaveopt")
#else
#pragma GCC target ("adx,bmi,bmi2,fsgsbase,fxsr,hreset,lwp,lzcnt,popcnt,rdrnd,rdseed,tbm,rtm,serialize,tsxldtrk,xsaveopt")
#endif
#endif
/* popcnintrin.h (POPCNT). */
#ifdef DIFFERENT_PRAGMAS
#pragma GCC target ("popcnt")
#endif
#include <popcntintrin.h>
/* x86intrin.h (LWP/BMI/BMI2/TBM/LZCNT). */
#ifdef DIFFERENT_PRAGMAS
#pragma GCC target ("lwp,bmi,bmi2,tbm,lzcnt")
#endif
#include <x86gprintrin.h>