zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

pkuintrin.h (934B) - Raw


      1 /*===---- pkuintrin.h - PKU intrinsics -------------------------------------===
      2  *
      3  *
      4  * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
      5  * See https://llvm.org/LICENSE.txt for license information.
      6  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
      7  *
      8  *===-----------------------------------------------------------------------===
      9  */
     10 #ifndef __IMMINTRIN_H
     11 #error "Never use <pkuintrin.h> directly; include <immintrin.h> instead."
     12 #endif
     13 
     14 #ifndef __PKUINTRIN_H
     15 #define __PKUINTRIN_H
     16 
     17 /* Define the default attributes for the functions in this file. */
     18 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("pku")))
     19 
     20 static __inline__ unsigned int __DEFAULT_FN_ATTRS
     21 _rdpkru_u32(void)
     22 {
     23   return __builtin_ia32_rdpkru();
     24 }
     25 
     26 static __inline__ void __DEFAULT_FN_ATTRS
     27 _wrpkru(unsigned int __val)
     28 {
     29   __builtin_ia32_wrpkru(__val);
     30 }
     31 
     32 #undef __DEFAULT_FN_ATTRS
     33 
     34 #endif