/*===---------------- hresetintrin.h - HRESET intrinsics -------------------===
 *
 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 * See https://llvm.org/LICENSE.txt for license information.
 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 *
 *===-----------------------------------------------------------------------===
 */
#ifndef __X86GPRINTRIN_H
#error "Never use <hresetintrin.h> directly; include <x86gprintrin.h> instead."
#endif

#ifndef __HRESETINTRIN_H
#define __HRESETINTRIN_H

#if __has_extension(gnu_asm)

/* Define the default attributes for the functions in this file. */
#define __DEFAULT_FN_ATTRS \
  __attribute__((__always_inline__, __nodebug__, __target__("hreset")))

/// Provides a hint to the processor to selectively reset the prediction
///    history of the current logical processor specified by a 32-bit integer
///    value \a __eax.
///
/// This intrinsic corresponds to the <c> HRESET </c> instruction.
///
/// \operation
///    IF __eax == 0
///      // nop
///    ELSE
///      FOR i := 0 to 31
///        IF __eax[i]
///          ResetPredictionFeature(i)
///        FI
///      ENDFOR
///    FI
/// \endoperation
static __inline void __DEFAULT_FN_ATTRS
_hreset(int __eax)
{
  __asm__ ("hreset $0" :: "a"(__eax));
}

#undef __DEFAULT_FN_ATTRS

#endif /* __has_extension(gnu_asm) */

#endif /* __HRESETINTRIN_H */
