cosmopolitan/third_party/intel/movdirintrin.internal.h
2023-05-15 23:12:11 -07:00

42 lines
1.1 KiB
C

#if !defined _IMMINTRIN_H_INCLUDED
#error "Never use <movdirintrin.h> directly; include <x86intrin.h> instead."
#endif
#ifndef _MOVDIRINTRIN_H_INCLUDED
#define _MOVDIRINTRIN_H_INCLUDED
#ifndef __MOVDIRI__
#pragma GCC push_options
#pragma GCC target("movdiri")
#define __DISABLE_MOVDIRI__
#endif /* __MOVDIRI__ */
__funline void _directstoreu_u32(void *__P, unsigned int __A) {
__builtin_ia32_directstoreu_u32((unsigned int *)__P, __A);
}
#ifdef __x86_64__
__funline void _directstoreu_u64(void *__P, unsigned long long __A) {
__builtin_ia32_directstoreu_u64((unsigned long long *)__P, __A);
}
#endif
#ifdef __DISABLE_MOVDIRI__
#undef __DISABLE_MOVDIRI__
#pragma GCC pop_options
#endif /* __DISABLE_MOVDIRI__ */
#ifndef __MOVDIR64B__
#pragma GCC push_options
#pragma GCC target("movdir64b")
#define __DISABLE_MOVDIR64B__
#endif /* __MOVDIR64B__ */
__funline void _movdir64b(void *__P, const void *__Q) {
__builtin_ia32_movdir64b(__P, __Q);
}
#ifdef __DISABLE_MOVDIR64B__
#undef __DISABLE_MOVDIR64B__
#pragma GCC pop_options
#endif /* __DISABLE_MOVDIR64B__ */
#endif /* _MOVDIRINTRIN_H_INCLUDED. */