llvm-project/clang/lib/Headers
Michael Spencer 16af23fae8 [clang][Headers] Use __has_builtin instead of _MSC_VER.
arm_acle.h relied on `_MSC_VER` to determine if a given function was
already defined as a builtin. This was incorrect because
`-fms-extensions` enables these builtins, but is not responsible for
defining `_MSC_VER` on any target. The next closest thing is
`_MSC_EXTENSIONS`, which is only defined on Windows targets, but even
this is suboptimal. What this conditional is actually trying to
determine is if the given functions are defined as builtins, so just
check that directly.

I also attempted to do this for `__nop`, but in that case intrin.h,
which is only includable if `_MSC_VER` is defined, has its own
definition. So in that case `_MSC_VER` is correct.

Differential Revision: https://reviews.llvm.org/D75719
rdar://60102353
2020-03-06 13:48:09 -08:00
..
cuda_wrappers [CUDA] Added missing 'inline' for functions defined in a header. 2018-12-07 22:20:53 +00:00
openmp_wrappers [OPENMP][NVPTX]Add NVPTX specific definitions for new/delete operators. 2020-02-05 09:57:53 -05:00
ppc_wrappers Work around PR43337: don't try to use the vec_sel overloads for vector long long, since clang's <altivec.h> doesn't provide it yet! 2020-01-15 13:14:57 -08:00
CMakeLists.txt [OPENMP][NVPTX]Add NVPTX specific definitions for new/delete operators. 2020-02-05 09:57:53 -05:00
__clang_cuda_builtin_vars.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
__clang_cuda_cmath.h [OpenMP][bugfix] Add missing math functions variants for log and abs. 2019-05-17 19:15:53 +00:00
__clang_cuda_complex_builtins.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
__clang_cuda_device_functions.h [OpenMP][bugfix] Fix issues with C++ 17 compilation when handling math functions 2019-05-15 20:18:21 +00:00
__clang_cuda_intrinsics.h [CUDA] Fix order of memcpy arguments in __shfl_*(<64-bit type>). 2020-01-23 13:17:52 -08:00
__clang_cuda_libdevice_declares.h [OpenMP][Clang] Support for target math functions 2019-05-08 15:52:33 +00:00
__clang_cuda_math_forward_declares.h [OpenMP][bugfix] Add missing math functions variants for log and abs. 2019-05-17 19:15:53 +00:00
__clang_cuda_runtime_wrapper.h [CUDA] Assume the latest known CUDA version if we've found an unknown one. 2020-01-28 10:11:42 -08:00
__stddef_max_align_t.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
__wmmintrin_aes.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
__wmmintrin_pclmul.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
adxintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
altivec.h [PowerPC][Altivec] Fix offsets for vec_xl and vec_xst 2019-11-07 20:58:11 -06:00
ammintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
arm64intr.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
arm_acle.h [clang][Headers] Use __has_builtin instead of _MSC_VER. 2020-03-06 13:48:09 -08:00
arm_cmse.h [ARM][CMSE] Add CMSE header and builtins 2019-12-12 15:01:14 +00:00
armintr.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx2intrin.h [X86] Restore the pavg intrinsics. 2019-04-15 17:17:35 +00:00
avx512bf16intrin.h [X86] Enable intrinsics that convert float and bf16 data to each other 2019-06-11 01:17:28 +00:00
avx512bitalgintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512bwintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
avx512cdintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512dqintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512erintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512fintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
avx512ifmaintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512ifmavlintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512pfintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vbmi2intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vbmiintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vbmivlintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vlbf16intrin.h [X86] Enable intrinsics that convert float and bf16 data to each other 2019-06-11 01:17:28 +00:00
avx512vlbitalgintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vlbwintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
avx512vlcdintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vldqintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vlintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
avx512vlvbmi2intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vlvnniintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vlvp2intersectintrin.h [X86] Add VP2INTERSECT instructions 2019-05-31 06:09:35 +00:00
avx512vnniintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vp2intersectintrin.h [X86] Add VP2INTERSECT instructions 2019-05-31 06:09:35 +00:00
avx512vpopcntdqintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vpopcntdqvlintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avxintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
bmi2intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
bmiintrin.h [X86] Always define the tzcnt intrinsics even when _MSC_VER is defined. 2019-10-11 06:07:53 +00:00
cetintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
cldemoteintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
clflushoptintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
clwbintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
clzerointrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
cpuid.h [clang] Fixed x86 cpuid NSC signature 2019-08-10 10:14:01 +00:00
emmintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
enqcmdintrin.h [X86] Add ENQCMD instructions 2019-06-06 08:28:42 +00:00
f16cintrin.h [X86] Remove semicolons at the end of intrinsics implemented as macros so they can be used as arguments to other intrinsics. 2019-05-19 01:01:52 +00:00
float.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
fma4intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
fmaintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
fxsrintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
gfniintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
htmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
htmxlintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
ia32intrin.h [x86] Adding support for some missing intrinsics: _castf32_u32, _castf64_u64, _castu32_f32, _castu64_f64 2019-09-25 02:24:05 +00:00
immintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
intrin.h [X86] Remove forward declaration of _invpcid from intrin.h. Rely on inline version from immintrin.h 2019-11-25 16:27:39 -08:00
inttypes.h AIX system headers need stdint.h and inttypes.h to be re-enterable 2019-06-20 15:36:32 +00:00
invpcidintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
iso646.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
limits.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
lwpintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
lzcntintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
mm3dnow.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
mm_malloc.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
mmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
module.modulemap [OpenCL] Split type and macro definitions into opencl-c-base.h 2019-06-19 12:48:22 +00:00
movdirintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
msa.h [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores. 2020-02-11 11:47:30 +01:00
mwaitxintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
nmmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
opencl-c-base.h [OpenCL] Fix lang mode predefined macros for C++ mode. 2019-08-12 10:44:07 +00:00
opencl-c.h [OpenCL] Remove spurious atomic_fetch_min/max builtins 2020-03-02 15:56:48 +00:00
pconfigintrin.h [X86] Make `x86intrin.h`, `immintrin.h` includable with `-fno-gnu-inline-asm`. 2019-05-13 22:40:11 +00:00
pkuintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
pmmintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
popcntintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
prfchwintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
ptwriteintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
rdseedintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
rtmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
s390intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
sgxintrin.h [X86] Make `x86intrin.h`, `immintrin.h` includable with `-fno-gnu-inline-asm`. 2019-05-13 22:40:11 +00:00
shaintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
smmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
stdalign.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
stdarg.h Revert Include corecrt.h in stddef.h and vcruntime.h in stdarg.h to improve MS compatibility. 2019-05-08 22:01:20 +00:00
stdatomic.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
stdbool.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
stddef.h Revert Include corecrt.h in stddef.h and vcruntime.h in stdarg.h to improve MS compatibility. 2019-05-08 22:01:20 +00:00
stdint.h AIX system headers need stdint.h and inttypes.h to be re-enterable 2019-06-20 15:36:32 +00:00
stdnoreturn.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
tbmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
tgmath.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
tmmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
unwind.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
vadefs.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
vaesintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
varargs.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
vecintrin.h [SystemZ] Avoid unnecessary conversions in vecintrin.h 2020-01-16 18:58:14 +01:00
vpclmulqdqintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
waitpkgintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
wbnoinvdintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
wmmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
x86intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
xmmintrin.h [X86] Cast to __v4hi instead of __m64 in the implementation of _mm_extract_pi16 and _mm_insert_pi16. 2020-01-22 16:00:23 -06:00
xopintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
xsavecintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
xsaveintrin.h [X86] Remove semicolons at the end of intrinsics implemented as macros so they can be used as arguments to other intrinsics. 2019-05-19 01:01:52 +00:00
xsaveoptintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
xsavesintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
xtestintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00