blob: 89a4c44db5d9f33f7e1a2ba6952520e09a95787e [file] [log] [blame]
Craig Topper934f86a2018-05-04 21:45:25 +00001/*===---- xsaveoptintrin.h - XSAVEOPT intrinsic ----------------------------===
Peter Collingbournee919b0f2015-10-15 10:33:27 +00002 *
Chandler Carruth4cf57432019-04-08 20:51:30 +00003 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 * See https://llvm.org/LICENSE.txt for license information.
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
Peter Collingbournee919b0f2015-10-15 10:33:27 +00006 *
7 *===-----------------------------------------------------------------------===
8 */
9
10#ifndef __IMMINTRIN_H
11#error "Never use <xsaveoptintrin.h> directly; include <immintrin.h> instead."
12#endif
13
14#ifndef __XSAVEOPTINTRIN_H
15#define __XSAVEOPTINTRIN_H
16
17/* Define the default attributes for the functions in this file. */
18#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("xsaveopt")))
19
20static __inline__ void __DEFAULT_FN_ATTRS
21_xsaveopt(void *__p, unsigned long long __m) {
Craig Topper819f2a22018-05-30 17:23:45 +000022 __builtin_ia32_xsaveopt(__p, __m);
Peter Collingbournee919b0f2015-10-15 10:33:27 +000023}
24
25#ifdef __x86_64__
26static __inline__ void __DEFAULT_FN_ATTRS
27_xsaveopt64(void *__p, unsigned long long __m) {
Craig Topper819f2a22018-05-30 17:23:45 +000028 __builtin_ia32_xsaveopt64(__p, __m);
Peter Collingbournee919b0f2015-10-15 10:33:27 +000029}
30#endif
31
32#undef __DEFAULT_FN_ATTRS
33
34#endif