xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGen/fsgsbase-builtins.c (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 %s -O3 -triple=x86_64-apple-darwin -target-feature +fsgsbase -emit-llvm -o - | FileCheck %s
2*0a6a1f1dSLionel Sambuc 
3*0a6a1f1dSLionel Sambuc // Don't include mm_malloc.h, it's system specific.
4*0a6a1f1dSLionel Sambuc #define __MM_MALLOC_H
5*0a6a1f1dSLionel Sambuc 
6*0a6a1f1dSLionel Sambuc #include <x86intrin.h>
7*0a6a1f1dSLionel Sambuc 
test_readfsbase_u32()8*0a6a1f1dSLionel Sambuc unsigned int test_readfsbase_u32()
9*0a6a1f1dSLionel Sambuc {
10*0a6a1f1dSLionel Sambuc   // CHECK: @llvm.x86.rdfsbase.32
11*0a6a1f1dSLionel Sambuc   return _readfsbase_u32();
12*0a6a1f1dSLionel Sambuc }
13*0a6a1f1dSLionel Sambuc 
test_readfsbase_u64()14*0a6a1f1dSLionel Sambuc unsigned long long test_readfsbase_u64()
15*0a6a1f1dSLionel Sambuc {
16*0a6a1f1dSLionel Sambuc   // CHECK: @llvm.x86.rdfsbase.64
17*0a6a1f1dSLionel Sambuc   return _readfsbase_u64();
18*0a6a1f1dSLionel Sambuc }
19*0a6a1f1dSLionel Sambuc 
test_readgsbase_u32()20*0a6a1f1dSLionel Sambuc unsigned int test_readgsbase_u32()
21*0a6a1f1dSLionel Sambuc {
22*0a6a1f1dSLionel Sambuc   // CHECK: @llvm.x86.rdgsbase.32
23*0a6a1f1dSLionel Sambuc   return _readgsbase_u32();
24*0a6a1f1dSLionel Sambuc }
25*0a6a1f1dSLionel Sambuc 
test_readgsbase_u64()26*0a6a1f1dSLionel Sambuc unsigned long long test_readgsbase_u64()
27*0a6a1f1dSLionel Sambuc {
28*0a6a1f1dSLionel Sambuc   // CHECK: @llvm.x86.rdgsbase.64
29*0a6a1f1dSLionel Sambuc   return _readgsbase_u64();
30*0a6a1f1dSLionel Sambuc }
31*0a6a1f1dSLionel Sambuc 
test_writefsbase_u32(unsigned int __X)32*0a6a1f1dSLionel Sambuc void test_writefsbase_u32(unsigned int __X)
33*0a6a1f1dSLionel Sambuc {
34*0a6a1f1dSLionel Sambuc   // CHECK: @llvm.x86.wrfsbase.32
35*0a6a1f1dSLionel Sambuc   _writefsbase_u32(__X);
36*0a6a1f1dSLionel Sambuc }
37*0a6a1f1dSLionel Sambuc 
test_writefsbase_u64(unsigned long long __X)38*0a6a1f1dSLionel Sambuc void test_writefsbase_u64(unsigned long long __X)
39*0a6a1f1dSLionel Sambuc {
40*0a6a1f1dSLionel Sambuc   // CHECK: @llvm.x86.wrfsbase.64
41*0a6a1f1dSLionel Sambuc   _writefsbase_u64(__X);
42*0a6a1f1dSLionel Sambuc }
43*0a6a1f1dSLionel Sambuc 
test_writegsbase_u32(unsigned int __X)44*0a6a1f1dSLionel Sambuc void test_writegsbase_u32(unsigned int __X)
45*0a6a1f1dSLionel Sambuc {
46*0a6a1f1dSLionel Sambuc   // CHECK: @llvm.x86.wrgsbase.32
47*0a6a1f1dSLionel Sambuc   _writegsbase_u32(__X);
48*0a6a1f1dSLionel Sambuc }
49*0a6a1f1dSLionel Sambuc 
test_writegsbase_u64(unsigned long long __X)50*0a6a1f1dSLionel Sambuc void test_writegsbase_u64(unsigned long long __X)
51*0a6a1f1dSLionel Sambuc {
52*0a6a1f1dSLionel Sambuc   // CHECK: @llvm.x86.wrgsbase.64
53*0a6a1f1dSLionel Sambuc   _writegsbase_u64(__X);
54*0a6a1f1dSLionel Sambuc }
55