llvm-project/clang/test/CodeGen/X86/fsgsbase-builtins.c
Aaron Ballman 1ea584377e A significant number of our tests in C accidentally use functions
without prototypes. This patch converts the function signatures to have
a prototype for the situations where the test is not specific to K&R C
declarations. e.g.,

  void func();

becomes

  void func(void);

This is the ninth batch of tests being updated (there are a
significant number of other tests left to be updated).
2022-02-13 08:03:40 -05:00

53 lines
1.0 KiB
C

// RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +fsgsbase -emit-llvm -o - | FileCheck %s
#include <immintrin.h>
unsigned int test_readfsbase_u32(void)
{
// CHECK: @llvm.x86.rdfsbase.32
return _readfsbase_u32();
}
unsigned long long test_readfsbase_u64(void)
{
// CHECK: @llvm.x86.rdfsbase.64
return _readfsbase_u64();
}
unsigned int test_readgsbase_u32(void)
{
// CHECK: @llvm.x86.rdgsbase.32
return _readgsbase_u32();
}
unsigned long long test_readgsbase_u64(void)
{
// 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);
}