// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +fsgsbase -emit-llvm -o - | FileCheck %s

// Don't include mm_malloc.h, it's system specific.
#define __MM_MALLOC_H

#include <x86intrin.h>

unsigned int test_readfsbase_u32()
{
  // CHECK: @llvm.x86.rdfsbase.32
  return _readfsbase_u32();
}

unsigned long long test_readfsbase_u64()
{
  // CHECK: @llvm.x86.rdfsbase.64
  return _readfsbase_u64();
}

unsigned int test_readgsbase_u32()
{
  // CHECK: @llvm.x86.rdgsbase.32
  return _readgsbase_u32();
}

unsigned long long test_readgsbase_u64()
{
  // CHECK: @llvm.x86.rdgsbase.64
  return _readgsbase_u64();
}

void test_writefsbase_u32(unsigned int __X)
{
  // CHECK: @llvm.x86.wrfsbase.32
  _writefsbase_u32(__X);
}

void test_writefsbase_u64(unsigned long long __X)
{
  // CHECK: @llvm.x86.wrfsbase.64
  _writefsbase_u64(__X);
}

void test_writegsbase_u32(unsigned int __X)
{
  // CHECK: @llvm.x86.wrgsbase.32
  _writegsbase_u32(__X);
}

void test_writegsbase_u64(unsigned long long __X)
{
  // CHECK: @llvm.x86.wrgsbase.64
  _writegsbase_u64(__X);
}
