125b3c049e70834cf33790a28643ab058b507b35cBen Cheng// RUN: %clang_cc1 -fsyntax-only -ffreestanding %s -verify 225b3c049e70834cf33790a28643ab058b507b35cBen Cheng// RUN: %clang_cc1 -fsyntax-only -ffreestanding -fno-lax-vector-conversions %s -verify 325b3c049e70834cf33790a28643ab058b507b35cBen Cheng// RUN: %clang_cc1 -fsyntax-only -ffreestanding -x c++ %s -verify 425b3c049e70834cf33790a28643ab058b507b35cBen Cheng// expected-no-diagnostics 525b3c049e70834cf33790a28643ab058b507b35cBen Cheng 625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#if defined(i386) || defined(__x86_64__) 725b3c049e70834cf33790a28643ab058b507b35cBen Cheng 825b3c049e70834cf33790a28643ab058b507b35cBen Cheng// Pretend to enable all features. 925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __3dNOW__ 1025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __3dNOW__ 1125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 1225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __BMI__ 1325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __BMI__ 1425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 1525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __BMI2__ 1625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __BMI2__ 1725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 1825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __LZCNT__ 1925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __LZCNT__ 2025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 2125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __POPCNT__ 2225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __POPCNT__ 2325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 2425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __RDSEED__ 2525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __RDSEED__ 2625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 2725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __PRFCHW__ 2825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __PRFCHW__ 2925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 3025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __SSE4A__ 3125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __SSE4A__ 3225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 3325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __FMA4__ 3425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __FMA4__ 3525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 3625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __XOP__ 3725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __XOP__ 3825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 3925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __F16C__ 4025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __F16C__ 4125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 4225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __MMX__ 4325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __MMX__ 4425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 4525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __SSE__ 4625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __SSE__ 4725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 4825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __SSE2__ 4925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __SSE2__ 5025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 5125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __SSE3__ 5225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __SSE3__ 5325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 5425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __SSSE3__ 5525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __SSSE3__ 5625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 5725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __SSE4_1__ 5825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __SSE4_1__ 5925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 6025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __SSE4_2__ 6125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __SSE4_2__ 6225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 6325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __AES__ 6425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __AES__ 6525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 6625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __AVX__ 6725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __AVX__ 6825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 6925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __AVX2__ 7025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __AVX2__ 7125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 7225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __BMI__ 7325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __BMI__ 7425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 7525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __BMI2__ 7625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __BMI2__ 7725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 7825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __LZCNT__ 7925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __LZCNT__ 8025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 8125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __FMA__ 8225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __FMA__ 8325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 8425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __RDRND__ 8525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __RDRND__ 8625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 8725b3c049e70834cf33790a28643ab058b507b35cBen Cheng 8825b3c049e70834cf33790a28643ab058b507b35cBen Cheng// Now include the metaheader that includes all x86 intrinsic headers. 8925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#include <x86intrin.h> 9025b3c049e70834cf33790a28643ab058b507b35cBen Cheng 9125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif 9225b3c049e70834cf33790a28643ab058b507b35cBen Cheng