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